Warning: file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json): failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php on line 88

Warning: Cannot modify header information - headers already sent by (output started at /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php:88) in /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php on line 215

Warning: Cannot modify header information - headers already sent by (output started at /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php:88) in /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php on line 216

Warning: Cannot modify header information - headers already sent by (output started at /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php:88) in /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php on line 217

Warning: Cannot modify header information - headers already sent by (output started at /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php:88) in /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php on line 218

Warning: Cannot modify header information - headers already sent by (output started at /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php:88) in /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php on line 219

Warning: Cannot modify header information - headers already sent by (output started at /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php:88) in /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php on line 220
PK!:vU5U5unixccompiler.pynu["""distutils.unixccompiler Contains the UnixCCompiler class, a subclass of CCompiler that handles the "typical" Unix-style command-line C compiler: * macros defined with -Dname[=value] * macros undefined with -Uname * include search directories specified with -Idir * libraries specified with -lllib * library search directories specified with -Ldir * compile handled by 'cc' (or similar) executable with -c option: compiles .c to .o * link static library handled by 'ar' command (possibly with 'ranlib') * link shared library handled by 'cc -shared' """ import os, sys, re from distutils import sysconfig from distutils.dep_util import newer from distutils.ccompiler import \ CCompiler, gen_preprocess_options, gen_lib_options from distutils.errors import \ DistutilsExecError, CompileError, LibError, LinkError from distutils import log if sys.platform == 'darwin': import _osx_support # XXX Things not currently handled: # * optimization/debug/warning flags; we just use whatever's in Python's # Makefile and live with it. Is this adequate? If not, we might # have to have a bunch of subclasses GNUCCompiler, SGICCompiler, # SunCCompiler, and I suspect down that road lies madness. # * even if we don't know a warning flag from an optimization flag, # we need some way for outsiders to feed preprocessor/compiler/linker # flags in to us -- eg. a sysadmin might want to mandate certain flags # via a site config file, or a user might want to set something for # compiling this module distribution only via the setup.py command # line, whatever. As long as these options come from something on the # current system, they can be as system-dependent as they like, and we # should just happily stuff them into the preprocessor/compiler/linker # options and carry on. class UnixCCompiler(CCompiler): compiler_type = 'unix' # These are used by CCompiler in two places: the constructor sets # instance attributes 'preprocessor', 'compiler', etc. from them, and # 'set_executable()' allows any of these to be set. The defaults here # are pretty generic; they will probably have to be set by an outsider # (eg. using information discovered by the sysconfig about building # Python extensions). executables = {'preprocessor' : None, 'compiler' : ["cc"], 'compiler_so' : ["cc"], 'compiler_cxx' : ["cc"], 'linker_so' : ["cc", "-shared"], 'linker_exe' : ["cc"], 'archiver' : ["ar", "-cr"], 'ranlib' : None, } if sys.platform[:6] == "darwin": executables['ranlib'] = ["ranlib"] # Needed for the filename generation methods provided by the base # class, CCompiler. NB. whoever instantiates/uses a particular # UnixCCompiler instance should set 'shared_lib_ext' -- we set a # reasonable common default here, but it's not necessarily used on all # Unices! src_extensions = [".c",".C",".cc",".cxx",".cpp",".m"] obj_extension = ".o" static_lib_extension = ".a" shared_lib_extension = ".so" dylib_lib_extension = ".dylib" static_lib_format = shared_lib_format = dylib_lib_format = "lib%s%s" if sys.platform == "cygwin": exe_extension = ".exe" def _fix_lib_args(self, libraries, library_dirs, runtime_library_dirs): """Remove standard library path from rpath""" libraries, library_dirs, runtime_library_dirs = super( self.__class__, self)._fix_lib_args(libraries, library_dirs, runtime_library_dirs) libdir = sysconfig.get_config_var('LIBDIR') if runtime_library_dirs and (libdir in runtime_library_dirs): runtime_library_dirs.remove(libdir) return libraries, library_dirs, runtime_library_dirs def preprocess(self, source, output_file=None, macros=None, include_dirs=None, extra_preargs=None, extra_postargs=None): fixed_args = self._fix_compile_args(None, macros, include_dirs) ignore, macros, include_dirs = fixed_args pp_opts = gen_preprocess_options(macros, include_dirs) pp_args = self.preprocessor + pp_opts if output_file: pp_args.extend(['-o', output_file]) if extra_preargs: pp_args[:0] = extra_preargs if extra_postargs: pp_args.extend(extra_postargs) pp_args.append(source) # We need to preprocess: either we're being forced to, or we're # generating output to stdout, or there's a target output file and # the source file is newer than the target (or the target doesn't # exist). if self.force or output_file is None or newer(source, output_file): if output_file: self.mkpath(os.path.dirname(output_file)) try: self.spawn(pp_args) except DistutilsExecError as msg: raise CompileError(msg) def _compile(self, obj, src, ext, cc_args, extra_postargs, pp_opts): compiler_so = self.compiler_so if sys.platform == 'darwin': compiler_so = _osx_support.compiler_fixup(compiler_so, cc_args + extra_postargs) try: self.spawn(compiler_so + cc_args + [src, '-o', obj] + extra_postargs) except DistutilsExecError as msg: raise CompileError(msg) def create_static_lib(self, objects, output_libname, output_dir=None, debug=0, target_lang=None): objects, output_dir = self._fix_object_args(objects, output_dir) output_filename = \ self.library_filename(output_libname, output_dir=output_dir) if self._need_link(objects, output_filename): self.mkpath(os.path.dirname(output_filename)) self.spawn(self.archiver + [output_filename] + objects + self.objects) # Not many Unices required ranlib anymore -- SunOS 4.x is, I # think the only major Unix that does. Maybe we need some # platform intelligence here to skip ranlib if it's not # needed -- or maybe Python's configure script took care of # it for us, hence the check for leading colon. if self.ranlib: try: self.spawn(self.ranlib + [output_filename]) except DistutilsExecError as msg: raise LibError(msg) else: log.debug("skipping %s (up-to-date)", output_filename) def link(self, target_desc, objects, output_filename, output_dir=None, libraries=None, library_dirs=None, runtime_library_dirs=None, export_symbols=None, debug=0, extra_preargs=None, extra_postargs=None, build_temp=None, target_lang=None): objects, output_dir = self._fix_object_args(objects, output_dir) fixed_args = self._fix_lib_args(libraries, library_dirs, runtime_library_dirs) libraries, library_dirs, runtime_library_dirs = fixed_args lib_opts = gen_lib_options(self, library_dirs, runtime_library_dirs, libraries) if not isinstance(output_dir, (str, type(None))): raise TypeError("'output_dir' must be a string or None") if output_dir is not None: output_filename = os.path.join(output_dir, output_filename) if self._need_link(objects, output_filename): ld_args = (objects + self.objects + lib_opts + ['-o', output_filename]) if debug: ld_args[:0] = ['-g'] if extra_preargs: ld_args[:0] = extra_preargs if extra_postargs: ld_args.extend(extra_postargs) self.mkpath(os.path.dirname(output_filename)) try: if target_desc == CCompiler.EXECUTABLE: linker = self.linker_exe[:] else: linker = self.linker_so[:] if target_lang == "c++" and self.compiler_cxx: # skip over environment variable settings if /usr/bin/env # is used to set up the linker's environment. # This is needed on OSX. Note: this assumes that the # normal and C++ compiler have the same environment # settings. i = 0 if os.path.basename(linker[0]) == "env": i = 1 while '=' in linker[i]: i += 1 linker[i] = self.compiler_cxx[i] if sys.platform == 'darwin': linker = _osx_support.compiler_fixup(linker, ld_args) self.spawn(linker + ld_args) except DistutilsExecError as msg: raise LinkError(msg) else: log.debug("skipping %s (up-to-date)", output_filename) # -- Miscellaneous methods ----------------------------------------- # These are all used by the 'gen_lib_options() function, in # ccompiler.py. def library_dir_option(self, dir): return "-L" + dir def _is_gcc(self, compiler_name): return "gcc" in compiler_name or "g++" in compiler_name def runtime_library_dir_option(self, dir): # XXX Hackish, at the very least. See Python bug #445902: # http://sourceforge.net/tracker/index.php # ?func=detail&aid=445902&group_id=5470&atid=105470 # Linkers on different platforms need different options to # specify that directories need to be added to the list of # directories searched for dependencies when a dynamic library # is sought. GCC on GNU systems (Linux, FreeBSD, ...) has to # be told to pass the -R option through to the linker, whereas # other compilers and gcc on other systems just know this. # Other compilers may need something slightly different. At # this time, there's no way to determine this information from # the configuration data stored in the Python installation, so # we use this hack. compiler = os.path.basename(sysconfig.get_config_var("CC")) if sys.platform[:6] == "darwin": # MacOSX's linker doesn't understand the -R flag at all return "-L" + dir elif sys.platform[:5] == "hp-ux": if self._is_gcc(compiler): return ["-Wl,+s", "-L" + dir] return ["+s", "-L" + dir] elif sys.platform[:7] == "irix646" or sys.platform[:6] == "osf1V5": return ["-rpath", dir] else: if self._is_gcc(compiler): # gcc on non-GNU systems does not need -Wl, but can # use it anyway. Since distutils has always passed in # -Wl whenever gcc was used in the past it is probably # safest to keep doing so. if sysconfig.get_config_var("GNULD") == "yes": # GNU ld needs an extra option to get a RUNPATH # instead of just an RPATH. return "-Wl,--enable-new-dtags,-R" + dir else: return "-Wl,-R" + dir else: # No idea how --enable-new-dtags would be passed on to # ld if this system was using GNU ld. Don't know if a # system like this even exists. return "-R" + dir def library_option(self, lib): return "-l" + lib def find_library_file(self, dirs, lib, debug=0): shared_f = self.library_filename(lib, lib_type='shared') dylib_f = self.library_filename(lib, lib_type='dylib') static_f = self.library_filename(lib, lib_type='static') if sys.platform == 'darwin': # On OSX users can specify an alternate SDK using # '-isysroot', calculate the SDK root if it is specified # (and use it further on) cflags = sysconfig.get_config_var('CFLAGS') m = re.search(r'-isysroot\s+(\S+)', cflags) if m is None: sysroot = '/' else: sysroot = m.group(1) for dir in dirs: shared = os.path.join(dir, shared_f) dylib = os.path.join(dir, dylib_f) static = os.path.join(dir, static_f) if sys.platform == 'darwin' and ( dir.startswith('/System/') or ( dir.startswith('/usr/') and not dir.startswith('/usr/local/'))): shared = os.path.join(sysroot, dir[1:], shared_f) dylib = os.path.join(sysroot, dir[1:], dylib_f) static = os.path.join(sysroot, dir[1:], static_f) # We're second-guessing the linker here, with not much hard # data to go on: GCC seems to prefer the shared library, so I'm # assuming that *all* Unix C compilers do. And of course I'm # ignoring even GCC's "-static" option. So sue me. if os.path.exists(dylib): return dylib elif os.path.exists(shared): return shared elif os.path.exists(static): return static # Oops, didn't find it in *any* of 'dirs' return None PK![ __init__.pynu["""distutils The main package for the Python Module Distribution Utilities. Normally used from a setup script as from distutils.core import setup setup (...) """ import sys __version__ = sys.version[:sys.version.index(' ')] PK!1}@}@cygwinccompiler.pynu["""distutils.cygwinccompiler Provides the CygwinCCompiler class, a subclass of UnixCCompiler that handles the Cygwin port of the GNU C compiler to Windows. It also contains the Mingw32CCompiler class which handles the mingw32 port of GCC (same as cygwin in no-cygwin mode). """ # problems: # # * if you use a msvc compiled python version (1.5.2) # 1. you have to insert a __GNUC__ section in its config.h # 2. you have to generate a import library for its dll # - create a def-file for python??.dll # - create a import library using # dlltool --dllname python15.dll --def python15.def \ # --output-lib libpython15.a # # see also http://starship.python.net/crew/kernr/mingw32/Notes.html # # * We put export_symbols in a def-file, and don't use # --export-all-symbols because it doesn't worked reliable in some # tested configurations. And because other windows compilers also # need their symbols specified this no serious problem. # # tested configurations: # # * cygwin gcc 2.91.57/ld 2.9.4/dllwrap 0.2.4 works # (after patching python's config.h and for C++ some other include files) # see also http://starship.python.net/crew/kernr/mingw32/Notes.html # * mingw32 gcc 2.95.2/ld 2.9.4/dllwrap 0.2.4 works # (ld doesn't support -shared, so we use dllwrap) # * cygwin gcc 2.95.2/ld 2.10.90/dllwrap 2.10.90 works now # - its dllwrap doesn't work, there is a bug in binutils 2.10.90 # see also http://sources.redhat.com/ml/cygwin/2000-06/msg01274.html # - using gcc -mdll instead dllwrap doesn't work without -static because # it tries to link against dlls instead their import libraries. (If # it finds the dll first.) # By specifying -static we force ld to link against the import libraries, # this is windows standard and there are normally not the necessary symbols # in the dlls. # *** only the version of June 2000 shows these problems # * cygwin gcc 3.2/ld 2.13.90 works # (ld supports -shared) # * mingw gcc 3.2/ld 2.13 works # (ld supports -shared) import os import sys import copy from subprocess import Popen, PIPE, check_output import re from distutils.ccompiler import gen_preprocess_options, gen_lib_options from distutils.unixccompiler import UnixCCompiler from distutils.file_util import write_file from distutils.errors import DistutilsExecError, CompileError, UnknownFileError from distutils import log from distutils.version import LooseVersion from distutils.spawn import find_executable def get_msvcr(): """Include the appropriate MSVC runtime library if Python was built with MSVC 7.0 or later. """ msc_pos = sys.version.find('MSC v.') if msc_pos != -1: msc_ver = sys.version[msc_pos+6:msc_pos+10] if msc_ver == '1300': # MSVC 7.0 return ['msvcr70'] elif msc_ver == '1310': # MSVC 7.1 return ['msvcr71'] elif msc_ver == '1400': # VS2005 / MSVC 8.0 return ['msvcr80'] elif msc_ver == '1500': # VS2008 / MSVC 9.0 return ['msvcr90'] elif msc_ver == '1600': # VS2010 / MSVC 10.0 return ['msvcr100'] else: raise ValueError("Unknown MS Compiler version %s " % msc_ver) class CygwinCCompiler(UnixCCompiler): """ Handles the Cygwin port of the GNU C compiler to Windows. """ compiler_type = 'cygwin' obj_extension = ".o" static_lib_extension = ".a" shared_lib_extension = ".dll" static_lib_format = "lib%s%s" shared_lib_format = "%s%s" exe_extension = ".exe" def __init__(self, verbose=0, dry_run=0, force=0): UnixCCompiler.__init__(self, verbose, dry_run, force) status, details = check_config_h() self.debug_print("Python's GCC status: %s (details: %s)" % (status, details)) if status is not CONFIG_H_OK: self.warn( "Python's pyconfig.h doesn't seem to support your compiler. " "Reason: %s. " "Compiling may fail because of undefined preprocessor macros." % details) self.gcc_version, self.ld_version, self.dllwrap_version = \ get_versions() self.debug_print(self.compiler_type + ": gcc %s, ld %s, dllwrap %s\n" % (self.gcc_version, self.ld_version, self.dllwrap_version) ) # ld_version >= "2.10.90" and < "2.13" should also be able to use # gcc -mdll instead of dllwrap # Older dllwraps had own version numbers, newer ones use the # same as the rest of binutils ( also ld ) # dllwrap 2.10.90 is buggy if self.ld_version >= "2.10.90": self.linker_dll = "gcc" else: self.linker_dll = "dllwrap" # ld_version >= "2.13" support -shared so use it instead of # -mdll -static if self.ld_version >= "2.13": shared_option = "-shared" else: shared_option = "-mdll -static" # Hard-code GCC because that's what this is all about. # XXX optimization, warnings etc. should be customizable. self.set_executables(compiler='gcc -mcygwin -O -Wall', compiler_so='gcc -mcygwin -mdll -O -Wall', compiler_cxx='g++ -mcygwin -O -Wall', linker_exe='gcc -mcygwin', linker_so=('%s -mcygwin %s' % (self.linker_dll, shared_option))) # cygwin and mingw32 need different sets of libraries if self.gcc_version == "2.91.57": # cygwin shouldn't need msvcrt, but without the dlls will crash # (gcc version 2.91.57) -- perhaps something about initialization self.dll_libraries=["msvcrt"] self.warn( "Consider upgrading to a newer version of gcc") else: # Include the appropriate MSVC runtime library if Python was built # with MSVC 7.0 or later. self.dll_libraries = get_msvcr() def _compile(self, obj, src, ext, cc_args, extra_postargs, pp_opts): """Compiles the source by spawning GCC and windres if needed.""" if ext == '.rc' or ext == '.res': # gcc needs '.res' and '.rc' compiled to object files !!! try: self.spawn(["windres", "-i", src, "-o", obj]) except DistutilsExecError as msg: raise CompileError(msg) else: # for other files use the C-compiler try: self.spawn(self.compiler_so + cc_args + [src, '-o', obj] + extra_postargs) except DistutilsExecError as msg: raise CompileError(msg) def link(self, target_desc, objects, output_filename, output_dir=None, libraries=None, library_dirs=None, runtime_library_dirs=None, export_symbols=None, debug=0, extra_preargs=None, extra_postargs=None, build_temp=None, target_lang=None): """Link the objects.""" # use separate copies, so we can modify the lists extra_preargs = copy.copy(extra_preargs or []) libraries = copy.copy(libraries or []) objects = copy.copy(objects or []) # Additional libraries libraries.extend(self.dll_libraries) # handle export symbols by creating a def-file # with executables this only works with gcc/ld as linker if ((export_symbols is not None) and (target_desc != self.EXECUTABLE or self.linker_dll == "gcc")): # (The linker doesn't do anything if output is up-to-date. # So it would probably better to check if we really need this, # but for this we had to insert some unchanged parts of # UnixCCompiler, and this is not what we want.) # we want to put some files in the same directory as the # object files are, build_temp doesn't help much # where are the object files temp_dir = os.path.dirname(objects[0]) # name of dll to give the helper files the same base name (dll_name, dll_extension) = os.path.splitext( os.path.basename(output_filename)) # generate the filenames for these files def_file = os.path.join(temp_dir, dll_name + ".def") lib_file = os.path.join(temp_dir, 'lib' + dll_name + ".a") # Generate .def file contents = [ "LIBRARY %s" % os.path.basename(output_filename), "EXPORTS"] for sym in export_symbols: contents.append(sym) self.execute(write_file, (def_file, contents), "writing %s" % def_file) # next add options for def-file and to creating import libraries # dllwrap uses different options than gcc/ld if self.linker_dll == "dllwrap": extra_preargs.extend(["--output-lib", lib_file]) # for dllwrap we have to use a special option extra_preargs.extend(["--def", def_file]) # we use gcc/ld here and can be sure ld is >= 2.9.10 else: # doesn't work: bfd_close build\...\libfoo.a: Invalid operation #extra_preargs.extend(["-Wl,--out-implib,%s" % lib_file]) # for gcc/ld the def-file is specified as any object files objects.append(def_file) #end: if ((export_symbols is not None) and # (target_desc != self.EXECUTABLE or self.linker_dll == "gcc")): # who wants symbols and a many times larger output file # should explicitly switch the debug mode on # otherwise we let dllwrap/ld strip the output file # (On my machine: 10KB < stripped_file < ??100KB # unstripped_file = stripped_file + XXX KB # ( XXX=254 for a typical python extension)) if not debug: extra_preargs.append("-s") UnixCCompiler.link(self, target_desc, objects, output_filename, output_dir, libraries, library_dirs, runtime_library_dirs, None, # export_symbols, we do this in our def-file debug, extra_preargs, extra_postargs, build_temp, target_lang) # -- Miscellaneous methods ----------------------------------------- def object_filenames(self, source_filenames, strip_dir=0, output_dir=''): """Adds supports for rc and res files.""" if output_dir is None: output_dir = '' obj_names = [] for src_name in source_filenames: # use normcase to make sure '.rc' is really '.rc' and not '.RC' base, ext = os.path.splitext(os.path.normcase(src_name)) if ext not in (self.src_extensions + ['.rc','.res']): raise UnknownFileError("unknown file type '%s' (from '%s')" % \ (ext, src_name)) if strip_dir: base = os.path.basename (base) if ext in ('.res', '.rc'): # these need to be compiled to object files obj_names.append (os.path.join(output_dir, base + ext + self.obj_extension)) else: obj_names.append (os.path.join(output_dir, base + self.obj_extension)) return obj_names # the same as cygwin plus some additional parameters class Mingw32CCompiler(CygwinCCompiler): """ Handles the Mingw32 port of the GNU C compiler to Windows. """ compiler_type = 'mingw32' def __init__(self, verbose=0, dry_run=0, force=0): CygwinCCompiler.__init__ (self, verbose, dry_run, force) # ld_version >= "2.13" support -shared so use it instead of # -mdll -static if self.ld_version >= "2.13": shared_option = "-shared" else: shared_option = "-mdll -static" # A real mingw32 doesn't need to specify a different entry point, # but cygwin 2.91.57 in no-cygwin-mode needs it. if self.gcc_version <= "2.91.57": entry_point = '--entry _DllMain@12' else: entry_point = '' if self.gcc_version < '4' or is_cygwingcc(): no_cygwin = ' -mno-cygwin' else: no_cygwin = '' self.set_executables(compiler='gcc%s -O -Wall' % no_cygwin, compiler_so='gcc%s -mdll -O -Wall' % no_cygwin, compiler_cxx='g++%s -O -Wall' % no_cygwin, linker_exe='gcc%s' % no_cygwin, linker_so='%s%s %s %s' % (self.linker_dll, no_cygwin, shared_option, entry_point)) # Maybe we should also append -mthreads, but then the finished # dlls need another dll (mingwm10.dll see Mingw32 docs) # (-mthreads: Support thread-safe exception handling on `Mingw32') # no additional libraries needed self.dll_libraries=[] # Include the appropriate MSVC runtime library if Python was built # with MSVC 7.0 or later. self.dll_libraries = get_msvcr() # Because these compilers aren't configured in Python's pyconfig.h file by # default, we should at least warn the user if he is using a unmodified # version. CONFIG_H_OK = "ok" CONFIG_H_NOTOK = "not ok" CONFIG_H_UNCERTAIN = "uncertain" def check_config_h(): """Check if the current Python installation appears amenable to building extensions with GCC. Returns a tuple (status, details), where 'status' is one of the following constants: - CONFIG_H_OK: all is well, go ahead and compile - CONFIG_H_NOTOK: doesn't look good - CONFIG_H_UNCERTAIN: not sure -- unable to read pyconfig.h 'details' is a human-readable string explaining the situation. Note there are two ways to conclude "OK": either 'sys.version' contains the string "GCC" (implying that this Python was built with GCC), or the installed "pyconfig.h" contains the string "__GNUC__". """ # XXX since this function also checks sys.version, it's not strictly a # "pyconfig.h" check -- should probably be renamed... from distutils import sysconfig # if sys.version contains GCC then python was compiled with GCC, and the # pyconfig.h file should be OK if "GCC" in sys.version: return CONFIG_H_OK, "sys.version mentions 'GCC'" # let's see if __GNUC__ is mentioned in python.h fn = sysconfig.get_config_h_filename() try: config_h = open(fn) try: if "__GNUC__" in config_h.read(): return CONFIG_H_OK, "'%s' mentions '__GNUC__'" % fn else: return CONFIG_H_NOTOK, "'%s' does not mention '__GNUC__'" % fn finally: config_h.close() except IOError as exc: return (CONFIG_H_UNCERTAIN, "couldn't read '%s': %s" % (fn, exc.strerror)) RE_VERSION = re.compile(b'(\d+\.\d+(\.\d+)*)') def _find_exe_version(cmd): """Find the version of an executable by running `cmd` in the shell. If the command is not found, or the output does not match `RE_VERSION`, returns None. """ executable = cmd.split()[0] if find_executable(executable) is None: return None out = Popen(cmd, shell=True, stdout=PIPE).stdout try: out_string = out.read() finally: out.close() result = RE_VERSION.search(out_string) if result is None: return None # LooseVersion works with strings # so we need to decode our bytes return LooseVersion(result.group(1).decode()) def get_versions(): """ Try to find out the versions of gcc, ld and dllwrap. If not possible it returns None for it. """ commands = ['gcc -dumpversion', 'ld -v', 'dllwrap --version'] return tuple([_find_exe_version(cmd) for cmd in commands]) def is_cygwingcc(): '''Try to determine if the gcc that would be used is from cygwin.''' out_string = check_output(['gcc', '-dumpmachine']) return out_string.strip().endswith(b'cygwin') PK!_H%debug.pynu[import os # If DISTUTILS_DEBUG is anything other than the empty string, we run in # debug mode. DEBUG = os.environ.get('DISTUTILS_DEBUG') PK! K00 text_file.pynu["""text_file provides the TextFile class, which gives an interface to text files that (optionally) takes care of stripping comments, ignoring blank lines, and joining lines with backslashes.""" import sys, os, io class TextFile: """Provides a file-like object that takes care of all the things you commonly want to do when processing a text file that has some line-by-line syntax: strip comments (as long as "#" is your comment character), skip blank lines, join adjacent lines by escaping the newline (ie. backslash at end of line), strip leading and/or trailing whitespace. All of these are optional and independently controllable. Provides a 'warn()' method so you can generate warning messages that report physical line number, even if the logical line in question spans multiple physical lines. Also provides 'unreadline()' for implementing line-at-a-time lookahead. Constructor is called as: TextFile (filename=None, file=None, **options) It bombs (RuntimeError) if both 'filename' and 'file' are None; 'filename' should be a string, and 'file' a file object (or something that provides 'readline()' and 'close()' methods). It is recommended that you supply at least 'filename', so that TextFile can include it in warning messages. If 'file' is not supplied, TextFile creates its own using 'io.open()'. The options are all boolean, and affect the value returned by 'readline()': strip_comments [default: true] strip from "#" to end-of-line, as well as any whitespace leading up to the "#" -- unless it is escaped by a backslash lstrip_ws [default: false] strip leading whitespace from each line before returning it rstrip_ws [default: true] strip trailing whitespace (including line terminator!) from each line before returning it skip_blanks [default: true} skip lines that are empty *after* stripping comments and whitespace. (If both lstrip_ws and rstrip_ws are false, then some lines may consist of solely whitespace: these will *not* be skipped, even if 'skip_blanks' is true.) join_lines [default: false] if a backslash is the last non-newline character on a line after stripping comments and whitespace, join the following line to it to form one "logical line"; if N consecutive lines end with a backslash, then N+1 physical lines will be joined to form one logical line. collapse_join [default: false] strip leading whitespace from lines that are joined to their predecessor; only matters if (join_lines and not lstrip_ws) errors [default: 'strict'] error handler used to decode the file content Note that since 'rstrip_ws' can strip the trailing newline, the semantics of 'readline()' must differ from those of the builtin file object's 'readline()' method! In particular, 'readline()' returns None for end-of-file: an empty string might just be a blank line (or an all-whitespace line), if 'rstrip_ws' is true but 'skip_blanks' is not.""" default_options = { 'strip_comments': 1, 'skip_blanks': 1, 'lstrip_ws': 0, 'rstrip_ws': 1, 'join_lines': 0, 'collapse_join': 0, 'errors': 'strict', } def __init__(self, filename=None, file=None, **options): """Construct a new TextFile object. At least one of 'filename' (a string) and 'file' (a file-like object) must be supplied. They keyword argument options are described above and affect the values returned by 'readline()'.""" if filename is None and file is None: raise RuntimeError("you must supply either or both of 'filename' and 'file'") # set values for all options -- either from client option hash # or fallback to default_options for opt in self.default_options.keys(): if opt in options: setattr(self, opt, options[opt]) else: setattr(self, opt, self.default_options[opt]) # sanity check client option hash for opt in options.keys(): if opt not in self.default_options: raise KeyError("invalid TextFile option '%s'" % opt) if file is None: self.open(filename) else: self.filename = filename self.file = file self.current_line = 0 # assuming that file is at BOF! # 'linebuf' is a stack of lines that will be emptied before we # actually read from the file; it's only populated by an # 'unreadline()' operation self.linebuf = [] def open(self, filename): """Open a new file named 'filename'. This overrides both the 'filename' and 'file' arguments to the constructor.""" self.filename = filename self.file = io.open(self.filename, 'r', errors=self.errors) self.current_line = 0 def close(self): """Close the current file and forget everything we know about it (filename, current line number).""" self.file.close() self.file = None self.filename = None self.current_line = None def gen_error(self, msg, line=None): outmsg = [] if line is None: line = self.current_line outmsg.append(self.filename + ", ") if isinstance(line, (list, tuple)): outmsg.append("lines %d-%d: " % tuple(line)) else: outmsg.append("line %d: " % line) outmsg.append(str(msg)) return "".join(outmsg) def error(self, msg, line=None): raise ValueError("error: " + self.gen_error(msg, line)) def warn(self, msg, line=None): """Print (to stderr) a warning message tied to the current logical line in the current file. If the current logical line in the file spans multiple physical lines, the warning refers to the whole range, eg. "lines 3-5". If 'line' supplied, it overrides the current line number; it may be a list or tuple to indicate a range of physical lines, or an integer for a single physical line.""" sys.stderr.write("warning: " + self.gen_error(msg, line) + "\n") def readline(self): """Read and return a single logical line from the current file (or from an internal buffer if lines have previously been "unread" with 'unreadline()'). If the 'join_lines' option is true, this may involve reading multiple physical lines concatenated into a single string. Updates the current line number, so calling 'warn()' after 'readline()' emits a warning about the physical line(s) just read. Returns None on end-of-file, since the empty string can occur if 'rstrip_ws' is true but 'strip_blanks' is not.""" # If any "unread" lines waiting in 'linebuf', return the top # one. (We don't actually buffer read-ahead data -- lines only # get put in 'linebuf' if the client explicitly does an # 'unreadline()'. if self.linebuf: line = self.linebuf[-1] del self.linebuf[-1] return line buildup_line = '' while True: # read the line, make it None if EOF line = self.file.readline() if line == '': line = None if self.strip_comments and line: # Look for the first "#" in the line. If none, never # mind. If we find one and it's the first character, or # is not preceded by "\", then it starts a comment -- # strip the comment, strip whitespace before it, and # carry on. Otherwise, it's just an escaped "#", so # unescape it (and any other escaped "#"'s that might be # lurking in there) and otherwise leave the line alone. pos = line.find("#") if pos == -1: # no "#" -- no comments pass # It's definitely a comment -- either "#" is the first # character, or it's elsewhere and unescaped. elif pos == 0 or line[pos-1] != "\\": # Have to preserve the trailing newline, because it's # the job of a later step (rstrip_ws) to remove it -- # and if rstrip_ws is false, we'd better preserve it! # (NB. this means that if the final line is all comment # and has no trailing newline, we will think that it's # EOF; I think that's OK.) eol = (line[-1] == '\n') and '\n' or '' line = line[0:pos] + eol # If all that's left is whitespace, then skip line # *now*, before we try to join it to 'buildup_line' -- # that way constructs like # hello \\ # # comment that should be ignored # there # result in "hello there". if line.strip() == "": continue else: # it's an escaped "#" line = line.replace("\\#", "#") # did previous line end with a backslash? then accumulate if self.join_lines and buildup_line: # oops: end of file if line is None: self.warn("continuation line immediately precedes " "end-of-file") return buildup_line if self.collapse_join: line = line.lstrip() line = buildup_line + line # careful: pay attention to line number when incrementing it if isinstance(self.current_line, list): self.current_line[1] = self.current_line[1] + 1 else: self.current_line = [self.current_line, self.current_line + 1] # just an ordinary line, read it as usual else: if line is None: # eof return None # still have to be careful about incrementing the line number! if isinstance(self.current_line, list): self.current_line = self.current_line[1] + 1 else: self.current_line = self.current_line + 1 # strip whitespace however the client wants (leading and # trailing, or one or the other, or neither) if self.lstrip_ws and self.rstrip_ws: line = line.strip() elif self.lstrip_ws: line = line.lstrip() elif self.rstrip_ws: line = line.rstrip() # blank line (whether we rstrip'ed or not)? skip to next line # if appropriate if (line == '' or line == '\n') and self.skip_blanks: continue if self.join_lines: if line[-1] == '\\': buildup_line = line[:-1] continue if line[-2:] == '\\\n': buildup_line = line[0:-2] + '\n' continue # well, I guess there's some actual content there: return it return line def readlines(self): """Read and return the list of all logical lines remaining in the current file.""" lines = [] while True: line = self.readline() if line is None: return lines lines.append(line) def unreadline(self, line): """Push 'line' (a string) onto an internal buffer that will be checked by future 'readline()' calls. Handy for implementing a parser with line-at-a-time lookahead.""" self.linebuf.append(line) PK!1xExEfancy_getopt.pynu["""distutils.fancy_getopt Wrapper around the standard getopt module that provides the following additional features: * short and long options are tied together * options have help strings, so fancy_getopt could potentially create a complete usage summary * options set attributes of a passed-in object """ import sys, string, re import getopt from distutils.errors import * # Much like command_re in distutils.core, this is close to but not quite # the same as a Python NAME -- except, in the spirit of most GNU # utilities, we use '-' in place of '_'. (The spirit of LISP lives on!) # The similarities to NAME are again not a coincidence... longopt_pat = r'[a-zA-Z](?:[a-zA-Z0-9-]*)' longopt_re = re.compile(r'^%s$' % longopt_pat) # For recognizing "negative alias" options, eg. "quiet=!verbose" neg_alias_re = re.compile("^(%s)=!(%s)$" % (longopt_pat, longopt_pat)) # This is used to translate long options to legitimate Python identifiers # (for use as attributes of some object). longopt_xlate = str.maketrans('-', '_') class FancyGetopt: """Wrapper around the standard 'getopt()' module that provides some handy extra functionality: * short and long options are tied together * options have help strings, and help text can be assembled from them * options set attributes of a passed-in object * boolean options can have "negative aliases" -- eg. if --quiet is the "negative alias" of --verbose, then "--quiet" on the command line sets 'verbose' to false """ def __init__(self, option_table=None): # The option table is (currently) a list of tuples. The # tuples may have 3 or four values: # (long_option, short_option, help_string [, repeatable]) # if an option takes an argument, its long_option should have '=' # appended; short_option should just be a single character, no ':' # in any case. If a long_option doesn't have a corresponding # short_option, short_option should be None. All option tuples # must have long options. self.option_table = option_table # 'option_index' maps long option names to entries in the option # table (ie. those 3-tuples). self.option_index = {} if self.option_table: self._build_index() # 'alias' records (duh) alias options; {'foo': 'bar'} means # --foo is an alias for --bar self.alias = {} # 'negative_alias' keeps track of options that are the boolean # opposite of some other option self.negative_alias = {} # These keep track of the information in the option table. We # don't actually populate these structures until we're ready to # parse the command-line, since the 'option_table' passed in here # isn't necessarily the final word. self.short_opts = [] self.long_opts = [] self.short2long = {} self.attr_name = {} self.takes_arg = {} # And 'option_order' is filled up in 'getopt()'; it records the # original order of options (and their values) on the command-line, # but expands short options, converts aliases, etc. self.option_order = [] def _build_index(self): self.option_index.clear() for option in self.option_table: self.option_index[option[0]] = option def set_option_table(self, option_table): self.option_table = option_table self._build_index() def add_option(self, long_option, short_option=None, help_string=None): if long_option in self.option_index: raise DistutilsGetoptError( "option conflict: already an option '%s'" % long_option) else: option = (long_option, short_option, help_string) self.option_table.append(option) self.option_index[long_option] = option def has_option(self, long_option): """Return true if the option table for this parser has an option with long name 'long_option'.""" return long_option in self.option_index def get_attr_name(self, long_option): """Translate long option name 'long_option' to the form it has as an attribute of some object: ie., translate hyphens to underscores.""" return long_option.translate(longopt_xlate) def _check_alias_dict(self, aliases, what): assert isinstance(aliases, dict) for (alias, opt) in aliases.items(): if alias not in self.option_index: raise DistutilsGetoptError(("invalid %s '%s': " "option '%s' not defined") % (what, alias, alias)) if opt not in self.option_index: raise DistutilsGetoptError(("invalid %s '%s': " "aliased option '%s' not defined") % (what, alias, opt)) def set_aliases(self, alias): """Set the aliases for this option parser.""" self._check_alias_dict(alias, "alias") self.alias = alias def set_negative_aliases(self, negative_alias): """Set the negative aliases for this option parser. 'negative_alias' should be a dictionary mapping option names to option names, both the key and value must already be defined in the option table.""" self._check_alias_dict(negative_alias, "negative alias") self.negative_alias = negative_alias def _grok_option_table(self): """Populate the various data structures that keep tabs on the option table. Called by 'getopt()' before it can do anything worthwhile. """ self.long_opts = [] self.short_opts = [] self.short2long.clear() self.repeat = {} for option in self.option_table: if len(option) == 3: long, short, help = option repeat = 0 elif len(option) == 4: long, short, help, repeat = option else: # the option table is part of the code, so simply # assert that it is correct raise ValueError("invalid option tuple: %r" % (option,)) # Type- and value-check the option names if not isinstance(long, str) or len(long) < 2: raise DistutilsGetoptError(("invalid long option '%s': " "must be a string of length >= 2") % long) if (not ((short is None) or (isinstance(short, str) and len(short) == 1))): raise DistutilsGetoptError("invalid short option '%s': " "must a single character or None" % short) self.repeat[long] = repeat self.long_opts.append(long) if long[-1] == '=': # option takes an argument? if short: short = short + ':' long = long[0:-1] self.takes_arg[long] = 1 else: # Is option is a "negative alias" for some other option (eg. # "quiet" == "!verbose")? alias_to = self.negative_alias.get(long) if alias_to is not None: if self.takes_arg[alias_to]: raise DistutilsGetoptError( "invalid negative alias '%s': " "aliased option '%s' takes a value" % (long, alias_to)) self.long_opts[-1] = long # XXX redundant?! self.takes_arg[long] = 0 # If this is an alias option, make sure its "takes arg" flag is # the same as the option it's aliased to. alias_to = self.alias.get(long) if alias_to is not None: if self.takes_arg[long] != self.takes_arg[alias_to]: raise DistutilsGetoptError( "invalid alias '%s': inconsistent with " "aliased option '%s' (one of them takes a value, " "the other doesn't" % (long, alias_to)) # Now enforce some bondage on the long option name, so we can # later translate it to an attribute name on some object. Have # to do this a bit late to make sure we've removed any trailing # '='. if not longopt_re.match(long): raise DistutilsGetoptError( "invalid long option name '%s' " "(must be letters, numbers, hyphens only" % long) self.attr_name[long] = self.get_attr_name(long) if short: self.short_opts.append(short) self.short2long[short[0]] = long def getopt(self, args=None, object=None): """Parse command-line options in args. Store as attributes on object. If 'args' is None or not supplied, uses 'sys.argv[1:]'. If 'object' is None or not supplied, creates a new OptionDummy object, stores option values there, and returns a tuple (args, object). If 'object' is supplied, it is modified in place and 'getopt()' just returns 'args'; in both cases, the returned 'args' is a modified copy of the passed-in 'args' list, which is left untouched. """ if args is None: args = sys.argv[1:] if object is None: object = OptionDummy() created_object = True else: created_object = False self._grok_option_table() short_opts = ' '.join(self.short_opts) try: opts, args = getopt.getopt(args, short_opts, self.long_opts) except getopt.error as msg: raise DistutilsArgError(msg) for opt, val in opts: if len(opt) == 2 and opt[0] == '-': # it's a short option opt = self.short2long[opt[1]] else: assert len(opt) > 2 and opt[:2] == '--' opt = opt[2:] alias = self.alias.get(opt) if alias: opt = alias if not self.takes_arg[opt]: # boolean option? assert val == '', "boolean option can't have value" alias = self.negative_alias.get(opt) if alias: opt = alias val = 0 else: val = 1 attr = self.attr_name[opt] # The only repeating option at the moment is 'verbose'. # It has a negative option -q quiet, which should set verbose = 0. if val and self.repeat.get(attr) is not None: val = getattr(object, attr, 0) + 1 setattr(object, attr, val) self.option_order.append((opt, val)) # for opts if created_object: return args, object else: return args def get_option_order(self): """Returns the list of (option, value) tuples processed by the previous run of 'getopt()'. Raises RuntimeError if 'getopt()' hasn't been called yet. """ if self.option_order is None: raise RuntimeError("'getopt()' hasn't been called yet") else: return self.option_order def generate_help(self, header=None): """Generate help text (a list of strings, one per suggested line of output) from the option table for this FancyGetopt object. """ # Blithely assume the option table is good: probably wouldn't call # 'generate_help()' unless you've already called 'getopt()'. # First pass: determine maximum length of long option names max_opt = 0 for option in self.option_table: long = option[0] short = option[1] l = len(long) if long[-1] == '=': l = l - 1 if short is not None: l = l + 5 # " (-x)" where short == 'x' if l > max_opt: max_opt = l opt_width = max_opt + 2 + 2 + 2 # room for indent + dashes + gutter # Typical help block looks like this: # --foo controls foonabulation # Help block for longest option looks like this: # --flimflam set the flim-flam level # and with wrapped text: # --flimflam set the flim-flam level (must be between # 0 and 100, except on Tuesdays) # Options with short names will have the short name shown (but # it doesn't contribute to max_opt): # --foo (-f) controls foonabulation # If adding the short option would make the left column too wide, # we push the explanation off to the next line # --flimflam (-l) # set the flim-flam level # Important parameters: # - 2 spaces before option block start lines # - 2 dashes for each long option name # - min. 2 spaces between option and explanation (gutter) # - 5 characters (incl. space) for short option name # Now generate lines of help text. (If 80 columns were good enough # for Jesus, then 78 columns are good enough for me!) line_width = 78 text_width = line_width - opt_width big_indent = ' ' * opt_width if header: lines = [header] else: lines = ['Option summary:'] for option in self.option_table: long, short, help = option[:3] text = wrap_text(help, text_width) if long[-1] == '=': long = long[0:-1] # Case 1: no short option at all (makes life easy) if short is None: if text: lines.append(" --%-*s %s" % (max_opt, long, text[0])) else: lines.append(" --%-*s " % (max_opt, long)) # Case 2: we have a short option, so we have to include it # just after the long option else: opt_names = "%s (-%s)" % (long, short) if text: lines.append(" --%-*s %s" % (max_opt, opt_names, text[0])) else: lines.append(" --%-*s" % opt_names) for l in text[1:]: lines.append(big_indent + l) return lines def print_help(self, header=None, file=None): if file is None: file = sys.stdout for line in self.generate_help(header): file.write(line + "\n") def fancy_getopt(options, negative_opt, object, args): parser = FancyGetopt(options) parser.set_negative_aliases(negative_opt) return parser.getopt(args, object) WS_TRANS = {ord(_wschar) : ' ' for _wschar in string.whitespace} def wrap_text(text, width): """wrap_text(text : string, width : int) -> [string] Split 'text' into multiple lines of no more than 'width' characters each, and return the list of strings that results. """ if text is None: return [] if len(text) <= width: return [text] text = text.expandtabs() text = text.translate(WS_TRANS) chunks = re.split(r'( +|-+)', text) chunks = [ch for ch in chunks if ch] # ' - ' results in empty strings lines = [] while chunks: cur_line = [] # list of chunks (to-be-joined) cur_len = 0 # length of current line while chunks: l = len(chunks[0]) if cur_len + l <= width: # can squeeze (at least) this chunk in cur_line.append(chunks[0]) del chunks[0] cur_len = cur_len + l else: # this line is full # drop last chunk if all space if cur_line and cur_line[-1][0] == ' ': del cur_line[-1] break if chunks: # any chunks left to process? # if the current line is still empty, then we had a single # chunk that's too big too fit on a line -- so we break # down and break it up at the line width if cur_len == 0: cur_line.append(chunks[0][0:width]) chunks[0] = chunks[0][width:] # all-whitespace chunks at the end of a line can be discarded # (and we know from the re.split above that if a chunk has # *any* whitespace, it is *all* whitespace) if chunks[0][0] == ' ': del chunks[0] # and store this line in the list-of-all-lines -- as a single # string, of course! lines.append(''.join(cur_line)) return lines def translate_longopt(opt): """Convert a long option name to a valid Python identifier by changing "-" to "_". """ return opt.translate(longopt_xlate) class OptionDummy: """Dummy class just used as a place to hold command-line option values as instance attributes.""" def __init__(self, options=[]): """Create a new OptionDummy instance. The attributes listed in 'options' will be initialized to None.""" for opt in options: setattr(self, opt, None) if __name__ == "__main__": text = """\ Tra-la-la, supercalifragilisticexpialidocious. How *do* you spell that odd word, anyways? (Someone ask Mary -- she'll know [or she'll say, "How should I know?"].)""" for w in (10, 20, 30, 40): print("width: %d" % w) print("\n".join(wrap_text(text, w))) print() PK!/archive_util.pynu["""distutils.archive_util Utility functions for creating archive files (tarballs, zip files, that sort of thing).""" import os from warnings import warn import sys try: import zipfile except ImportError: zipfile = None from distutils.errors import DistutilsExecError from distutils.spawn import spawn from distutils.dir_util import mkpath from distutils import log def make_tarball(base_name, base_dir, compress="gzip", verbose=0, dry_run=0): """Create a (possibly compressed) tar file from all the files under 'base_dir'. 'compress' must be "gzip" (the default), "compress", "bzip2", or None. Both "tar" and the compression utility named by 'compress' must be on the default program search path, so this is probably Unix-specific. The output tar file will be named 'base_dir' + ".tar", possibly plus the appropriate compression extension (".gz", ".bz2" or ".Z"). Returns the output filename. """ tar_compression = {'gzip': 'gz', 'bzip2': 'bz2', None: '', 'compress': ''} compress_ext = {'gzip': '.gz', 'bzip2': '.bz2', 'compress': '.Z'} # flags for compression program, each element of list will be an argument if compress is not None and compress not in compress_ext.keys(): raise ValueError( "bad value for 'compress': must be None, 'gzip', 'bzip2' " "or 'compress'") archive_name = base_name + '.tar' if compress != 'compress': archive_name += compress_ext.get(compress, '') mkpath(os.path.dirname(archive_name), dry_run=dry_run) # creating the tarball import tarfile # late import so Python build itself doesn't break log.info('Creating tar archive') if not dry_run: tar = tarfile.open(archive_name, 'w|%s' % tar_compression[compress]) try: tar.add(base_dir) finally: tar.close() # compression using `compress` if compress == 'compress': warn("'compress' will be deprecated.", PendingDeprecationWarning) # the option varies depending on the platform compressed_name = archive_name + compress_ext[compress] if sys.platform == 'win32': cmd = [compress, archive_name, compressed_name] else: cmd = [compress, '-f', archive_name] spawn(cmd, dry_run=dry_run) return compressed_name return archive_name def make_zipfile(base_name, base_dir, verbose=0, dry_run=0): """Create a zip file from all the files under 'base_dir'. The output zip file will be named 'base_name' + ".zip". Uses either the "zipfile" Python module (if available) or the InfoZIP "zip" utility (if installed and found on the default search path). If neither tool is available, raises DistutilsExecError. Returns the name of the output zip file. """ zip_filename = base_name + ".zip" mkpath(os.path.dirname(zip_filename), dry_run=dry_run) # If zipfile module is not available, try spawning an external # 'zip' command. if zipfile is None: if verbose: zipoptions = "-r" else: zipoptions = "-rq" try: spawn(["zip", zipoptions, zip_filename, base_dir], dry_run=dry_run) except DistutilsExecError: # XXX really should distinguish between "couldn't find # external 'zip' command" and "zip failed". raise DistutilsExecError(("unable to create zip file '%s': " "could neither import the 'zipfile' module nor " "find a standalone zip utility") % zip_filename) else: log.info("creating '%s' and adding '%s' to it", zip_filename, base_dir) if not dry_run: try: zip = zipfile.ZipFile(zip_filename, "w", compression=zipfile.ZIP_DEFLATED) except RuntimeError: zip = zipfile.ZipFile(zip_filename, "w", compression=zipfile.ZIP_STORED) for dirpath, dirnames, filenames in os.walk(base_dir): for name in filenames: path = os.path.normpath(os.path.join(dirpath, name)) if os.path.isfile(path): zip.write(path, path) log.info("adding '%s'" % path) zip.close() return zip_filename ARCHIVE_FORMATS = { 'gztar': (make_tarball, [('compress', 'gzip')], "gzip'ed tar-file"), 'bztar': (make_tarball, [('compress', 'bzip2')], "bzip2'ed tar-file"), 'ztar': (make_tarball, [('compress', 'compress')], "compressed tar file"), 'tar': (make_tarball, [('compress', None)], "uncompressed tar file"), 'zip': (make_zipfile, [],"ZIP file") } def check_archive_formats(formats): """Returns the first format from the 'format' list that is unknown. If all formats are known, returns None """ for format in formats: if format not in ARCHIVE_FORMATS: return format return None def make_archive(base_name, format, root_dir=None, base_dir=None, verbose=0, dry_run=0): """Create an archive file (eg. zip or tar). 'base_name' is the name of the file to create, minus any format-specific extension; 'format' is the archive format: one of "zip", "tar", "ztar", or "gztar". 'root_dir' is a directory that will be the root directory of the archive; ie. we typically chdir into 'root_dir' before creating the archive. 'base_dir' is the directory where we start archiving from; ie. 'base_dir' will be the common prefix of all files and directories in the archive. 'root_dir' and 'base_dir' both default to the current directory. Returns the name of the archive file. """ save_cwd = os.getcwd() if root_dir is not None: log.debug("changing into '%s'", root_dir) base_name = os.path.abspath(base_name) if not dry_run: os.chdir(root_dir) if base_dir is None: base_dir = os.curdir kwargs = {'dry_run': dry_run} try: format_info = ARCHIVE_FORMATS[format] except KeyError: raise ValueError("unknown archive format '%s'" % format) func = format_info[0] for arg, val in format_info[1]: kwargs[arg] = val try: filename = func(base_name, base_dir, **kwargs) finally: if root_dir is not None: log.debug("changing back to '%s'", save_cwd) os.chdir(save_cwd) return filename PK!(>dist.pynu["""distutils.dist Provides the Distribution class, which represents the module distribution being built/installed/distributed. """ import sys, os, re from email import message_from_file try: import warnings except ImportError: warnings = None from distutils.errors import * from distutils.fancy_getopt import FancyGetopt, translate_longopt from distutils.util import check_environ, strtobool, rfc822_escape from distutils import log from distutils.debug import DEBUG # Regex to define acceptable Distutils command names. This is not *quite* # the same as a Python NAME -- I don't allow leading underscores. The fact # that they're very similar is no coincidence; the default naming scheme is # to look for a Python module named after the command. command_re = re.compile (r'^[a-zA-Z]([a-zA-Z0-9_]*)$') class Distribution: """The core of the Distutils. Most of the work hiding behind 'setup' is really done within a Distribution instance, which farms the work out to the Distutils commands specified on the command line. Setup scripts will almost never instantiate Distribution directly, unless the 'setup()' function is totally inadequate to their needs. However, it is conceivable that a setup script might wish to subclass Distribution for some specialized purpose, and then pass the subclass to 'setup()' as the 'distclass' keyword argument. If so, it is necessary to respect the expectations that 'setup' has of Distribution. See the code for 'setup()', in core.py, for details. """ # 'global_options' describes the command-line options that may be # supplied to the setup script prior to any actual commands. # Eg. "./setup.py -n" or "./setup.py --quiet" both take advantage of # these global options. This list should be kept to a bare minimum, # since every global option is also valid as a command option -- and we # don't want to pollute the commands with too many options that they # have minimal control over. # The fourth entry for verbose means that it can be repeated. global_options = [('verbose', 'v', "run verbosely (default)", 1), ('quiet', 'q', "run quietly (turns verbosity off)"), ('dry-run', 'n', "don't actually do anything"), ('help', 'h', "show detailed help message"), ] # 'common_usage' is a short (2-3 line) string describing the common # usage of the setup script. common_usage = """\ Common commands: (see '--help-commands' for more) setup.py build will build the package underneath 'build/' setup.py install will install the package """ # options that are not propagated to the commands display_options = [ ('help-commands', None, "list all available commands"), ('name', None, "print package name"), ('version', 'V', "print package version"), ('fullname', None, "print -"), ('author', None, "print the author's name"), ('author-email', None, "print the author's email address"), ('maintainer', None, "print the maintainer's name"), ('maintainer-email', None, "print the maintainer's email address"), ('contact', None, "print the maintainer's name if known, else the author's"), ('contact-email', None, "print the maintainer's email address if known, else the author's"), ('url', None, "print the URL for this package"), ('license', None, "print the license of the package"), ('licence', None, "alias for --license"), ('description', None, "print the package description"), ('long-description', None, "print the long package description"), ('platforms', None, "print the list of platforms"), ('classifiers', None, "print the list of classifiers"), ('keywords', None, "print the list of keywords"), ('provides', None, "print the list of packages/modules provided"), ('requires', None, "print the list of packages/modules required"), ('obsoletes', None, "print the list of packages/modules made obsolete") ] display_option_names = [translate_longopt(x[0]) for x in display_options] # negative options are options that exclude other options negative_opt = {'quiet': 'verbose'} # -- Creation/initialization methods ------------------------------- def __init__ (self, attrs=None): """Construct a new Distribution instance: initialize all the attributes of a Distribution, and then use 'attrs' (a dictionary mapping attribute names to values) to assign some of those attributes their "real" values. (Any attributes not mentioned in 'attrs' will be assigned to some null value: 0, None, an empty list or dictionary, etc.) Most importantly, initialize the 'command_obj' attribute to the empty dictionary; this will be filled in with real command objects by 'parse_command_line()'. """ # Default values for our command-line options self.verbose = 1 self.dry_run = 0 self.help = 0 for attr in self.display_option_names: setattr(self, attr, 0) # Store the distribution meta-data (name, version, author, and so # forth) in a separate object -- we're getting to have enough # information here (and enough command-line options) that it's # worth it. Also delegate 'get_XXX()' methods to the 'metadata' # object in a sneaky and underhanded (but efficient!) way. self.metadata = DistributionMetadata() for basename in self.metadata._METHOD_BASENAMES: method_name = "get_" + basename setattr(self, method_name, getattr(self.metadata, method_name)) # 'cmdclass' maps command names to class objects, so we # can 1) quickly figure out which class to instantiate when # we need to create a new command object, and 2) have a way # for the setup script to override command classes self.cmdclass = {} # 'command_packages' is a list of packages in which commands # are searched for. The factory for command 'foo' is expected # to be named 'foo' in the module 'foo' in one of the packages # named here. This list is searched from the left; an error # is raised if no named package provides the command being # searched for. (Always access using get_command_packages().) self.command_packages = None # 'script_name' and 'script_args' are usually set to sys.argv[0] # and sys.argv[1:], but they can be overridden when the caller is # not necessarily a setup script run from the command-line. self.script_name = None self.script_args = None # 'command_options' is where we store command options between # parsing them (from config files, the command-line, etc.) and when # they are actually needed -- ie. when the command in question is # instantiated. It is a dictionary of dictionaries of 2-tuples: # command_options = { command_name : { option : (source, value) } } self.command_options = {} # 'dist_files' is the list of (command, pyversion, file) that # have been created by any dist commands run so far. This is # filled regardless of whether the run is dry or not. pyversion # gives sysconfig.get_python_version() if the dist file is # specific to a Python version, 'any' if it is good for all # Python versions on the target platform, and '' for a source # file. pyversion should not be used to specify minimum or # maximum required Python versions; use the metainfo for that # instead. self.dist_files = [] # These options are really the business of various commands, rather # than of the Distribution itself. We provide aliases for them in # Distribution as a convenience to the developer. self.packages = None self.package_data = {} self.package_dir = None self.py_modules = None self.libraries = None self.headers = None self.ext_modules = None self.ext_package = None self.include_dirs = None self.extra_path = None self.scripts = None self.data_files = None self.password = '' # And now initialize bookkeeping stuff that can't be supplied by # the caller at all. 'command_obj' maps command names to # Command instances -- that's how we enforce that every command # class is a singleton. self.command_obj = {} # 'have_run' maps command names to boolean values; it keeps track # of whether we have actually run a particular command, to make it # cheap to "run" a command whenever we think we might need to -- if # it's already been done, no need for expensive filesystem # operations, we just check the 'have_run' dictionary and carry on. # It's only safe to query 'have_run' for a command class that has # been instantiated -- a false value will be inserted when the # command object is created, and replaced with a true value when # the command is successfully run. Thus it's probably best to use # '.get()' rather than a straight lookup. self.have_run = {} # Now we'll use the attrs dictionary (ultimately, keyword args from # the setup script) to possibly override any or all of these # distribution options. if attrs: # Pull out the set of command options and work on them # specifically. Note that this order guarantees that aliased # command options will override any supplied redundantly # through the general options dictionary. options = attrs.get('options') if options is not None: del attrs['options'] for (command, cmd_options) in options.items(): opt_dict = self.get_option_dict(command) for (opt, val) in cmd_options.items(): opt_dict[opt] = ("setup script", val) if 'licence' in attrs: attrs['license'] = attrs['licence'] del attrs['licence'] msg = "'licence' distribution option is deprecated; use 'license'" if warnings is not None: warnings.warn(msg) else: sys.stderr.write(msg + "\n") # Now work on the rest of the attributes. Any attribute that's # not already defined is invalid! for (key, val) in attrs.items(): if hasattr(self.metadata, "set_" + key): getattr(self.metadata, "set_" + key)(val) elif hasattr(self.metadata, key): setattr(self.metadata, key, val) elif hasattr(self, key): setattr(self, key, val) else: msg = "Unknown distribution option: %s" % repr(key) if warnings is not None: warnings.warn(msg) else: sys.stderr.write(msg + "\n") self.finalize_options() def get_option_dict(self, command): """Get the option dictionary for a given command. If that command's option dictionary hasn't been created yet, then create it and return the new dictionary; otherwise, return the existing option dictionary. """ dict = self.command_options.get(command) if dict is None: dict = self.command_options[command] = {} return dict def dump_option_dicts(self, header=None, commands=None, indent=""): from pprint import pformat if commands is None: # dump all command option dicts commands = sorted(self.command_options.keys()) if header is not None: self.announce(indent + header) indent = indent + " " if not commands: self.announce(indent + "no commands known yet") return for cmd_name in commands: opt_dict = self.command_options.get(cmd_name) if opt_dict is None: self.announce(indent + "no option dict for '%s' command" % cmd_name) else: self.announce(indent + "option dict for '%s' command:" % cmd_name) out = pformat(opt_dict) for line in out.split('\n'): self.announce(indent + " " + line) # -- Config file finding/parsing methods --------------------------- def find_config_files(self): """Find as many configuration files as should be processed for this platform, and return a list of filenames in the order in which they should be parsed. The filenames returned are guaranteed to exist (modulo nasty race conditions). There are three possible config files: distutils.cfg in the Distutils installation directory (ie. where the top-level Distutils __inst__.py file lives), a file in the user's home directory named .pydistutils.cfg on Unix and pydistutils.cfg on Windows/Mac, and setup.cfg in the current directory. """ files = [] check_environ() # Where to look for the system-wide Distutils config file sys_dir = os.path.dirname(sys.modules['distutils'].__file__) # Look for the system config file sys_file = os.path.join(sys_dir, "distutils.cfg") if os.path.isfile(sys_file): files.append(sys_file) # What to call the per-user config file if os.name == 'posix': user_filename = ".pydistutils.cfg" else: user_filename = "pydistutils.cfg" # And look for the user config file user_file = os.path.join(os.path.expanduser('~'), user_filename) if os.path.isfile(user_file): files.append(user_file) # All platforms support local setup.cfg local_file = "setup.cfg" if os.path.isfile(local_file): files.append(local_file) return files def parse_config_files(self, filenames=None): from configparser import ConfigParser # Ignore install directory options if we have a venv if sys.prefix != sys.base_prefix: ignore_options = [ 'install-base', 'install-platbase', 'install-lib', 'install-platlib', 'install-purelib', 'install-headers', 'install-scripts', 'install-data', 'prefix', 'exec-prefix', 'home', 'user', 'root'] else: ignore_options = [] ignore_options = frozenset(ignore_options) if filenames is None: filenames = self.find_config_files() if DEBUG: self.announce("Distribution.parse_config_files():") parser = ConfigParser() for filename in filenames: if DEBUG: self.announce(" reading %s" % filename) parser.read(filename) for section in parser.sections(): options = parser.options(section) opt_dict = self.get_option_dict(section) for opt in options: if opt != '__name__' and opt not in ignore_options: val = parser.get(section,opt) opt = opt.replace('-', '_') opt_dict[opt] = (filename, val) # Make the ConfigParser forget everything (so we retain # the original filenames that options come from) parser.__init__() # If there was a "global" section in the config file, use it # to set Distribution options. if 'global' in self.command_options: for (opt, (src, val)) in self.command_options['global'].items(): alias = self.negative_opt.get(opt) try: if alias: setattr(self, alias, not strtobool(val)) elif opt in ('verbose', 'dry_run'): # ugh! setattr(self, opt, strtobool(val)) else: setattr(self, opt, val) except ValueError as msg: raise DistutilsOptionError(msg) # -- Command-line parsing methods ---------------------------------- def parse_command_line(self): """Parse the setup script's command line, taken from the 'script_args' instance attribute (which defaults to 'sys.argv[1:]' -- see 'setup()' in core.py). This list is first processed for "global options" -- options that set attributes of the Distribution instance. Then, it is alternately scanned for Distutils commands and options for that command. Each new command terminates the options for the previous command. The allowed options for a command are determined by the 'user_options' attribute of the command class -- thus, we have to be able to load command classes in order to parse the command line. Any error in that 'options' attribute raises DistutilsGetoptError; any error on the command-line raises DistutilsArgError. If no Distutils commands were found on the command line, raises DistutilsArgError. Return true if command-line was successfully parsed and we should carry on with executing commands; false if no errors but we shouldn't execute commands (currently, this only happens if user asks for help). """ # # We now have enough information to show the Macintosh dialog # that allows the user to interactively specify the "command line". # toplevel_options = self._get_toplevel_options() # We have to parse the command line a bit at a time -- global # options, then the first command, then its options, and so on -- # because each command will be handled by a different class, and # the options that are valid for a particular class aren't known # until we have loaded the command class, which doesn't happen # until we know what the command is. self.commands = [] parser = FancyGetopt(toplevel_options + self.display_options) parser.set_negative_aliases(self.negative_opt) parser.set_aliases({'licence': 'license'}) args = parser.getopt(args=self.script_args, object=self) option_order = parser.get_option_order() log.set_verbosity(self.verbose) # for display options we return immediately if self.handle_display_options(option_order): return while args: args = self._parse_command_opts(parser, args) if args is None: # user asked for help (and got it) return # Handle the cases of --help as a "global" option, ie. # "setup.py --help" and "setup.py --help command ...". For the # former, we show global options (--verbose, --dry-run, etc.) # and display-only options (--name, --version, etc.); for the # latter, we omit the display-only options and show help for # each command listed on the command line. if self.help: self._show_help(parser, display_options=len(self.commands) == 0, commands=self.commands) return # Oops, no commands found -- an end-user error if not self.commands: raise DistutilsArgError("no commands supplied") # All is well: return true return True def _get_toplevel_options(self): """Return the non-display options recognized at the top level. This includes options that are recognized *only* at the top level as well as options recognized for commands. """ return self.global_options + [ ("command-packages=", None, "list of packages that provide distutils commands"), ] def _parse_command_opts(self, parser, args): """Parse the command-line options for a single command. 'parser' must be a FancyGetopt instance; 'args' must be the list of arguments, starting with the current command (whose options we are about to parse). Returns a new version of 'args' with the next command at the front of the list; will be the empty list if there are no more commands on the command line. Returns None if the user asked for help on this command. """ # late import because of mutual dependence between these modules from distutils.cmd import Command # Pull the current command from the head of the command line command = args[0] if not command_re.match(command): raise SystemExit("invalid command name '%s'" % command) self.commands.append(command) # Dig up the command class that implements this command, so we # 1) know that it's a valid command, and 2) know which options # it takes. try: cmd_class = self.get_command_class(command) except DistutilsModuleError as msg: raise DistutilsArgError(msg) # Require that the command class be derived from Command -- want # to be sure that the basic "command" interface is implemented. if not issubclass(cmd_class, Command): raise DistutilsClassError( "command class %s must subclass Command" % cmd_class) # Also make sure that the command object provides a list of its # known options. if not (hasattr(cmd_class, 'user_options') and isinstance(cmd_class.user_options, list)): raise DistutilsClassError(("command class %s must provide " + "'user_options' attribute (a list of tuples)") % \ cmd_class) # If the command class has a list of negative alias options, # merge it in with the global negative aliases. negative_opt = self.negative_opt if hasattr(cmd_class, 'negative_opt'): negative_opt = negative_opt.copy() negative_opt.update(cmd_class.negative_opt) # Check for help_options in command class. They have a different # format (tuple of four) so we need to preprocess them here. if (hasattr(cmd_class, 'help_options') and isinstance(cmd_class.help_options, list)): help_options = fix_help_options(cmd_class.help_options) else: help_options = [] # All commands support the global options too, just by adding # in 'global_options'. parser.set_option_table(self.global_options + cmd_class.user_options + help_options) parser.set_negative_aliases(negative_opt) (args, opts) = parser.getopt(args[1:]) if hasattr(opts, 'help') and opts.help: self._show_help(parser, display_options=0, commands=[cmd_class]) return if (hasattr(cmd_class, 'help_options') and isinstance(cmd_class.help_options, list)): help_option_found=0 for (help_option, short, desc, func) in cmd_class.help_options: if hasattr(opts, parser.get_attr_name(help_option)): help_option_found=1 if callable(func): func() else: raise DistutilsClassError( "invalid help function %r for help option '%s': " "must be a callable object (function, etc.)" % (func, help_option)) if help_option_found: return # Put the options from the command-line into their official # holding pen, the 'command_options' dictionary. opt_dict = self.get_option_dict(command) for (name, value) in vars(opts).items(): opt_dict[name] = ("command line", value) return args def finalize_options(self): """Set final values for all the options on the Distribution instance, analogous to the .finalize_options() method of Command objects. """ for attr in ('keywords', 'platforms'): value = getattr(self.metadata, attr) if value is None: continue if isinstance(value, str): value = [elm.strip() for elm in value.split(',')] setattr(self.metadata, attr, value) def _show_help(self, parser, global_options=1, display_options=1, commands=[]): """Show help for the setup script command-line in the form of several lists of command-line options. 'parser' should be a FancyGetopt instance; do not expect it to be returned in the same state, as its option table will be reset to make it generate the correct help text. If 'global_options' is true, lists the global options: --verbose, --dry-run, etc. If 'display_options' is true, lists the "display-only" options: --name, --version, etc. Finally, lists per-command help for every command name or command class in 'commands'. """ # late import because of mutual dependence between these modules from distutils.core import gen_usage from distutils.cmd import Command if global_options: if display_options: options = self._get_toplevel_options() else: options = self.global_options parser.set_option_table(options) parser.print_help(self.common_usage + "\nGlobal options:") print('') if display_options: parser.set_option_table(self.display_options) parser.print_help( "Information display options (just display " + "information, ignore any commands)") print('') for command in self.commands: if isinstance(command, type) and issubclass(command, Command): klass = command else: klass = self.get_command_class(command) if (hasattr(klass, 'help_options') and isinstance(klass.help_options, list)): parser.set_option_table(klass.user_options + fix_help_options(klass.help_options)) else: parser.set_option_table(klass.user_options) parser.print_help("Options for '%s' command:" % klass.__name__) print('') print(gen_usage(self.script_name)) def handle_display_options(self, option_order): """If there were any non-global "display-only" options (--help-commands or the metadata display options) on the command line, display the requested info and return true; else return false. """ from distutils.core import gen_usage # User just wants a list of commands -- we'll print it out and stop # processing now (ie. if they ran "setup --help-commands foo bar", # we ignore "foo bar"). if self.help_commands: self.print_commands() print('') print(gen_usage(self.script_name)) return 1 # If user supplied any of the "display metadata" options, then # display that metadata in the order in which the user supplied the # metadata options. any_display_options = 0 is_display_option = {} for option in self.display_options: is_display_option[option[0]] = 1 for (opt, val) in option_order: if val and is_display_option.get(opt): opt = translate_longopt(opt) value = getattr(self.metadata, "get_"+opt)() if opt in ['keywords', 'platforms']: print(','.join(value)) elif opt in ('classifiers', 'provides', 'requires', 'obsoletes'): print('\n'.join(value)) else: print(value) any_display_options = 1 return any_display_options def print_command_list(self, commands, header, max_length): """Print a subset of the list of all commands -- used by 'print_commands()'. """ print(header + ":") for cmd in commands: klass = self.cmdclass.get(cmd) if not klass: klass = self.get_command_class(cmd) try: description = klass.description except AttributeError: description = "(no description available)" print(" %-*s %s" % (max_length, cmd, description)) def print_commands(self): """Print out a help message listing all available commands with a description of each. The list is divided into "standard commands" (listed in distutils.command.__all__) and "extra commands" (mentioned in self.cmdclass, but not a standard command). The descriptions come from the command class attribute 'description'. """ import distutils.command std_commands = distutils.command.__all__ is_std = {} for cmd in std_commands: is_std[cmd] = 1 extra_commands = [] for cmd in self.cmdclass.keys(): if not is_std.get(cmd): extra_commands.append(cmd) max_length = 0 for cmd in (std_commands + extra_commands): if len(cmd) > max_length: max_length = len(cmd) self.print_command_list(std_commands, "Standard commands", max_length) if extra_commands: print() self.print_command_list(extra_commands, "Extra commands", max_length) def get_command_list(self): """Get a list of (command, description) tuples. The list is divided into "standard commands" (listed in distutils.command.__all__) and "extra commands" (mentioned in self.cmdclass, but not a standard command). The descriptions come from the command class attribute 'description'. """ # Currently this is only used on Mac OS, for the Mac-only GUI # Distutils interface (by Jack Jansen) import distutils.command std_commands = distutils.command.__all__ is_std = {} for cmd in std_commands: is_std[cmd] = 1 extra_commands = [] for cmd in self.cmdclass.keys(): if not is_std.get(cmd): extra_commands.append(cmd) rv = [] for cmd in (std_commands + extra_commands): klass = self.cmdclass.get(cmd) if not klass: klass = self.get_command_class(cmd) try: description = klass.description except AttributeError: description = "(no description available)" rv.append((cmd, description)) return rv # -- Command class/object methods ---------------------------------- def get_command_packages(self): """Return a list of packages from which commands are loaded.""" pkgs = self.command_packages if not isinstance(pkgs, list): if pkgs is None: pkgs = '' pkgs = [pkg.strip() for pkg in pkgs.split(',') if pkg != ''] if "distutils.command" not in pkgs: pkgs.insert(0, "distutils.command") self.command_packages = pkgs return pkgs def get_command_class(self, command): """Return the class that implements the Distutils command named by 'command'. First we check the 'cmdclass' dictionary; if the command is mentioned there, we fetch the class object from the dictionary and return it. Otherwise we load the command module ("distutils.command." + command) and fetch the command class from the module. The loaded class is also stored in 'cmdclass' to speed future calls to 'get_command_class()'. Raises DistutilsModuleError if the expected module could not be found, or if that module does not define the expected class. """ klass = self.cmdclass.get(command) if klass: return klass for pkgname in self.get_command_packages(): module_name = "%s.%s" % (pkgname, command) klass_name = command try: __import__ (module_name) module = sys.modules[module_name] except ImportError: continue try: klass = getattr(module, klass_name) except AttributeError: raise DistutilsModuleError( "invalid command '%s' (no class '%s' in module '%s')" % (command, klass_name, module_name)) self.cmdclass[command] = klass return klass raise DistutilsModuleError("invalid command '%s'" % command) def get_command_obj(self, command, create=1): """Return the command object for 'command'. Normally this object is cached on a previous call to 'get_command_obj()'; if no command object for 'command' is in the cache, then we either create and return it (if 'create' is true) or return None. """ cmd_obj = self.command_obj.get(command) if not cmd_obj and create: if DEBUG: self.announce("Distribution.get_command_obj(): " \ "creating '%s' command object" % command) klass = self.get_command_class(command) cmd_obj = self.command_obj[command] = klass(self) self.have_run[command] = 0 # Set any options that were supplied in config files # or on the command line. (NB. support for error # reporting is lame here: any errors aren't reported # until 'finalize_options()' is called, which means # we won't report the source of the error.) options = self.command_options.get(command) if options: self._set_command_options(cmd_obj, options) return cmd_obj def _set_command_options(self, command_obj, option_dict=None): """Set the options for 'command_obj' from 'option_dict'. Basically this means copying elements of a dictionary ('option_dict') to attributes of an instance ('command'). 'command_obj' must be a Command instance. If 'option_dict' is not supplied, uses the standard option dictionary for this command (from 'self.command_options'). """ command_name = command_obj.get_command_name() if option_dict is None: option_dict = self.get_option_dict(command_name) if DEBUG: self.announce(" setting options for '%s' command:" % command_name) for (option, (source, value)) in option_dict.items(): if DEBUG: self.announce(" %s = %s (from %s)" % (option, value, source)) try: bool_opts = [translate_longopt(o) for o in command_obj.boolean_options] except AttributeError: bool_opts = [] try: neg_opt = command_obj.negative_opt except AttributeError: neg_opt = {} try: is_string = isinstance(value, str) if option in neg_opt and is_string: setattr(command_obj, neg_opt[option], not strtobool(value)) elif option in bool_opts and is_string: setattr(command_obj, option, strtobool(value)) elif hasattr(command_obj, option): setattr(command_obj, option, value) else: raise DistutilsOptionError( "error in %s: command '%s' has no such option '%s'" % (source, command_name, option)) except ValueError as msg: raise DistutilsOptionError(msg) def reinitialize_command(self, command, reinit_subcommands=0): """Reinitializes a command to the state it was in when first returned by 'get_command_obj()': ie., initialized but not yet finalized. This provides the opportunity to sneak option values in programmatically, overriding or supplementing user-supplied values from the config files and command line. You'll have to re-finalize the command object (by calling 'finalize_options()' or 'ensure_finalized()') before using it for real. 'command' should be a command name (string) or command object. If 'reinit_subcommands' is true, also reinitializes the command's sub-commands, as declared by the 'sub_commands' class attribute (if it has one). See the "install" command for an example. Only reinitializes the sub-commands that actually matter, ie. those whose test predicates return true. Returns the reinitialized command object. """ from distutils.cmd import Command if not isinstance(command, Command): command_name = command command = self.get_command_obj(command_name) else: command_name = command.get_command_name() if not command.finalized: return command command.initialize_options() command.finalized = 0 self.have_run[command_name] = 0 self._set_command_options(command) if reinit_subcommands: for sub in command.get_sub_commands(): self.reinitialize_command(sub, reinit_subcommands) return command # -- Methods that operate on the Distribution ---------------------- def announce(self, msg, level=log.INFO): log.log(level, msg) def run_commands(self): """Run each command that was seen on the setup script command line. Uses the list of commands found and cache of command objects created by 'get_command_obj()'. """ for cmd in self.commands: self.run_command(cmd) # -- Methods that operate on its Commands -------------------------- def run_command(self, command): """Do whatever it takes to run a command (including nothing at all, if the command has already been run). Specifically: if we have already created and run the command named by 'command', return silently without doing anything. If the command named by 'command' doesn't even have a command object yet, create one. Then invoke 'run()' on that command object (or an existing one). """ # Already been here, done that? then return silently. if self.have_run.get(command): return log.info("running %s", command) cmd_obj = self.get_command_obj(command) cmd_obj.ensure_finalized() cmd_obj.run() self.have_run[command] = 1 # -- Distribution query methods ------------------------------------ def has_pure_modules(self): return len(self.packages or self.py_modules or []) > 0 def has_ext_modules(self): return self.ext_modules and len(self.ext_modules) > 0 def has_c_libraries(self): return self.libraries and len(self.libraries) > 0 def has_modules(self): return self.has_pure_modules() or self.has_ext_modules() def has_headers(self): return self.headers and len(self.headers) > 0 def has_scripts(self): return self.scripts and len(self.scripts) > 0 def has_data_files(self): return self.data_files and len(self.data_files) > 0 def is_pure(self): return (self.has_pure_modules() and not self.has_ext_modules() and not self.has_c_libraries()) # -- Metadata query methods ---------------------------------------- # If you're looking for 'get_name()', 'get_version()', and so forth, # they are defined in a sneaky way: the constructor binds self.get_XXX # to self.metadata.get_XXX. The actual code is in the # DistributionMetadata class, below. class DistributionMetadata: """Dummy class to hold the distribution meta-data: name, version, author, and so forth. """ _METHOD_BASENAMES = ("name", "version", "author", "author_email", "maintainer", "maintainer_email", "url", "license", "description", "long_description", "keywords", "platforms", "fullname", "contact", "contact_email", "license", "classifiers", "download_url", # PEP 314 "provides", "requires", "obsoletes", ) def __init__(self, path=None): if path is not None: self.read_pkg_file(open(path)) else: self.name = None self.version = None self.author = None self.author_email = None self.maintainer = None self.maintainer_email = None self.url = None self.license = None self.description = None self.long_description = None self.keywords = None self.platforms = None self.classifiers = None self.download_url = None # PEP 314 self.provides = None self.requires = None self.obsoletes = None def read_pkg_file(self, file): """Reads the metadata values from a file object.""" msg = message_from_file(file) def _read_field(name): value = msg[name] if value == 'UNKNOWN': return None return value def _read_list(name): values = msg.get_all(name, None) if values == []: return None return values metadata_version = msg['metadata-version'] self.name = _read_field('name') self.version = _read_field('version') self.description = _read_field('summary') # we are filling author only. self.author = _read_field('author') self.maintainer = None self.author_email = _read_field('author-email') self.maintainer_email = None self.url = _read_field('home-page') self.license = _read_field('license') if 'download-url' in msg: self.download_url = _read_field('download-url') else: self.download_url = None self.long_description = _read_field('description') self.description = _read_field('summary') if 'keywords' in msg: self.keywords = _read_field('keywords').split(',') self.platforms = _read_list('platform') self.classifiers = _read_list('classifier') # PEP 314 - these fields only exist in 1.1 if metadata_version == '1.1': self.requires = _read_list('requires') self.provides = _read_list('provides') self.obsoletes = _read_list('obsoletes') else: self.requires = None self.provides = None self.obsoletes = None def write_pkg_info(self, base_dir): """Write the PKG-INFO file into the release tree. """ with open(os.path.join(base_dir, 'PKG-INFO'), 'w', encoding='UTF-8') as pkg_info: self.write_pkg_file(pkg_info) def write_pkg_file(self, file): """Write the PKG-INFO format data to a file object. """ version = '1.0' if (self.provides or self.requires or self.obsoletes or self.classifiers or self.download_url): version = '1.1' file.write('Metadata-Version: %s\n' % version) file.write('Name: %s\n' % self.get_name() ) file.write('Version: %s\n' % self.get_version() ) file.write('Summary: %s\n' % self.get_description() ) file.write('Home-page: %s\n' % self.get_url() ) file.write('Author: %s\n' % self.get_contact() ) file.write('Author-email: %s\n' % self.get_contact_email() ) file.write('License: %s\n' % self.get_license() ) if self.download_url: file.write('Download-URL: %s\n' % self.download_url) long_desc = rfc822_escape(self.get_long_description()) file.write('Description: %s\n' % long_desc) keywords = ','.join(self.get_keywords()) if keywords: file.write('Keywords: %s\n' % keywords ) self._write_list(file, 'Platform', self.get_platforms()) self._write_list(file, 'Classifier', self.get_classifiers()) # PEP 314 self._write_list(file, 'Requires', self.get_requires()) self._write_list(file, 'Provides', self.get_provides()) self._write_list(file, 'Obsoletes', self.get_obsoletes()) def _write_list(self, file, name, values): for value in values: file.write('%s: %s\n' % (name, value)) # -- Metadata query methods ---------------------------------------- def get_name(self): return self.name or "UNKNOWN" def get_version(self): return self.version or "0.0.0" def get_fullname(self): return "%s-%s" % (self.get_name(), self.get_version()) def get_author(self): return self.author or "UNKNOWN" def get_author_email(self): return self.author_email or "UNKNOWN" def get_maintainer(self): return self.maintainer or "UNKNOWN" def get_maintainer_email(self): return self.maintainer_email or "UNKNOWN" def get_contact(self): return self.maintainer or self.author or "UNKNOWN" def get_contact_email(self): return self.maintainer_email or self.author_email or "UNKNOWN" def get_url(self): return self.url or "UNKNOWN" def get_license(self): return self.license or "UNKNOWN" get_licence = get_license def get_description(self): return self.description or "UNKNOWN" def get_long_description(self): return self.long_description or "UNKNOWN" def get_keywords(self): return self.keywords or [] def get_platforms(self): return self.platforms or ["UNKNOWN"] def get_classifiers(self): return self.classifiers or [] def get_download_url(self): return self.download_url or "UNKNOWN" # PEP 314 def get_requires(self): return self.requires or [] def set_requires(self, value): import distutils.versionpredicate for v in value: distutils.versionpredicate.VersionPredicate(v) self.requires = value def get_provides(self): return self.provides or [] def set_provides(self, value): value = [v.strip() for v in value] for v in value: import distutils.versionpredicate distutils.versionpredicate.split_provision(v) self.provides = value def get_obsoletes(self): return self.obsoletes or [] def set_obsoletes(self, value): import distutils.versionpredicate for v in value: distutils.versionpredicate.VersionPredicate(v) self.obsoletes = value def fix_help_options(options): """Convert a 4-tuple 'help_options' list as found in various command classes to the 3-tuple form required by FancyGetopt. """ new_options = [] for help_tuple in options: new_options.append(help_tuple[0:3]) return new_options PK!薊_(_( extension.pynu["""distutils.extension Provides the Extension class, used to describe C/C++ extension modules in setup scripts.""" import os import sys import warnings # This class is really only used by the "build_ext" command, so it might # make sense to put it in distutils.command.build_ext. However, that # module is already big enough, and I want to make this class a bit more # complex to simplify some common cases ("foo" module in "foo.c") and do # better error-checking ("foo.c" actually exists). # # Also, putting this in build_ext.py means every setup script would have to # import that large-ish module (indirectly, through distutils.core) in # order to do anything. class Extension: """Just a collection of attributes that describes an extension module and everything needed to build it (hopefully in a portable way, but there are hooks that let you be as unportable as you need). Instance attributes: name : string the full name of the extension, including any packages -- ie. *not* a filename or pathname, but Python dotted name sources : [string] list of source filenames, relative to the distribution root (where the setup script lives), in Unix form (slash-separated) for portability. Source files may be C, C++, SWIG (.i), platform-specific resource files, or whatever else is recognized by the "build_ext" command as source for a Python extension. include_dirs : [string] list of directories to search for C/C++ header files (in Unix form for portability) define_macros : [(name : string, value : string|None)] list of macros to define; each macro is defined using a 2-tuple, where 'value' is either the string to define it to or None to define it without a particular value (equivalent of "#define FOO" in source or -DFOO on Unix C compiler command line) undef_macros : [string] list of macros to undefine explicitly library_dirs : [string] list of directories to search for C/C++ libraries at link time libraries : [string] list of library names (not filenames or paths) to link against runtime_library_dirs : [string] list of directories to search for C/C++ libraries at run time (for shared extensions, this is when the extension is loaded) extra_objects : [string] list of extra files to link with (eg. object files not implied by 'sources', static library that must be explicitly specified, binary resource files, etc.) extra_compile_args : [string] any extra platform- and compiler-specific information to use when compiling the source files in 'sources'. For platforms and compilers where "command line" makes sense, this is typically a list of command-line arguments, but for other platforms it could be anything. extra_link_args : [string] any extra platform- and compiler-specific information to use when linking object files together to create the extension (or to create a new static Python interpreter). Similar interpretation as for 'extra_compile_args'. export_symbols : [string] list of symbols to be exported from a shared extension. Not used on all platforms, and not generally necessary for Python extensions, which typically export exactly one symbol: "init" + extension_name. swig_opts : [string] any extra options to pass to SWIG if a source file has the .i extension. depends : [string] list of files that the extension depends on language : string extension language (i.e. "c", "c++", "objc"). Will be detected from the source extensions if not provided. optional : boolean specifies that a build failure in the extension should not abort the build process, but simply not install the failing extension. """ # When adding arguments to this constructor, be sure to update # setup_keywords in core.py. def __init__(self, name, sources, include_dirs=None, define_macros=None, undef_macros=None, library_dirs=None, libraries=None, runtime_library_dirs=None, extra_objects=None, extra_compile_args=None, extra_link_args=None, export_symbols=None, swig_opts = None, depends=None, language=None, optional=None, **kw # To catch unknown keywords ): if not isinstance(name, str): raise AssertionError("'name' must be a string") if not (isinstance(sources, list) and all(isinstance(v, str) for v in sources)): raise AssertionError("'sources' must be a list of strings") self.name = name self.sources = sources self.include_dirs = include_dirs or [] self.define_macros = define_macros or [] self.undef_macros = undef_macros or [] self.library_dirs = library_dirs or [] self.libraries = libraries or [] self.runtime_library_dirs = runtime_library_dirs or [] self.extra_objects = extra_objects or [] self.extra_compile_args = extra_compile_args or [] self.extra_link_args = extra_link_args or [] self.export_symbols = export_symbols or [] self.swig_opts = swig_opts or [] self.depends = depends or [] self.language = language self.optional = optional # If there are unknown keyword options, warn about them if len(kw) > 0: options = [repr(option) for option in kw] options = ', '.join(sorted(options)) msg = "Unknown Extension options: %s" % options warnings.warn(msg) def read_setup_file(filename): """Reads a Setup file and returns Extension instances.""" from distutils.sysconfig import (parse_makefile, expand_makefile_vars, _variable_rx) from distutils.text_file import TextFile from distutils.util import split_quoted # First pass over the file to gather "VAR = VALUE" assignments. vars = parse_makefile(filename) # Second pass to gobble up the real content: lines of the form # ... [ ...] [ ...] [ ...] file = TextFile(filename, strip_comments=1, skip_blanks=1, join_lines=1, lstrip_ws=1, rstrip_ws=1) try: extensions = [] while True: line = file.readline() if line is None: # eof break if _variable_rx.match(line): # VAR=VALUE, handled in first pass continue if line[0] == line[-1] == "*": file.warn("'%s' lines not handled yet" % line) continue line = expand_makefile_vars(line, vars) words = split_quoted(line) # NB. this parses a slightly different syntax than the old # makesetup script: here, there must be exactly one extension per # line, and it must be the first word of the line. I have no idea # why the old syntax supported multiple extensions per line, as # they all wind up being the same. module = words[0] ext = Extension(module, []) append_next_word = None for word in words[1:]: if append_next_word is not None: append_next_word.append(word) append_next_word = None continue suffix = os.path.splitext(word)[1] switch = word[0:2] ; value = word[2:] if suffix in (".c", ".cc", ".cpp", ".cxx", ".c++", ".m", ".mm"): # hmm, should we do something about C vs. C++ sources? # or leave it up to the CCompiler implementation to # worry about? ext.sources.append(word) elif switch == "-I": ext.include_dirs.append(value) elif switch == "-D": equals = value.find("=") if equals == -1: # bare "-DFOO" -- no value ext.define_macros.append((value, None)) else: # "-DFOO=blah" ext.define_macros.append((value[0:equals], value[equals+2:])) elif switch == "-U": ext.undef_macros.append(value) elif switch == "-C": # only here 'cause makesetup has it! ext.extra_compile_args.append(word) elif switch == "-l": ext.libraries.append(value) elif switch == "-L": ext.library_dirs.append(value) elif switch == "-R": ext.runtime_library_dirs.append(value) elif word == "-rpath": append_next_word = ext.runtime_library_dirs elif word == "-Xlinker": append_next_word = ext.extra_link_args elif word == "-Xcompiler": append_next_word = ext.extra_compile_args elif switch == "-u": ext.extra_link_args.append(word) if not value: append_next_word = ext.extra_link_args elif suffix in (".a", ".so", ".sl", ".o", ".dylib"): # NB. a really faithful emulation of makesetup would # append a .o file to extra_objects only if it # had a slash in it; otherwise, it would s/.o/.c/ # and append it to sources. Hmmmm. ext.extra_objects.append(word) else: file.warn("unrecognized argument '%s'" % word) extensions.append(ext) finally: file.close() return extensions PK!,n:Q:Qutil.pynu["""distutils.util Miscellaneous utility functions -- anything that doesn't fit into one of the other *util.py modules. """ import os import re import imp import sys import string from distutils.errors import DistutilsPlatformError from distutils.dep_util import newer from distutils.spawn import spawn from distutils import log from distutils.errors import DistutilsByteCompileError def get_platform (): """Return a string that identifies the current platform. This is used mainly to distinguish platform-specific build directories and platform-specific built distributions. Typically includes the OS name and version and the architecture (as supplied by 'os.uname()'), although the exact information included depends on the OS; eg. for IRIX the architecture isn't particularly important (IRIX only runs on SGI hardware), but for Linux the kernel version isn't particularly important. Examples of returned values: linux-i586 linux-alpha (?) solaris-2.6-sun4u irix-5.3 irix64-6.2 Windows will return one of: win-amd64 (64bit Windows on AMD64 (aka x86_64, Intel64, EM64T, etc) win-ia64 (64bit Windows on Itanium) win32 (all others - specifically, sys.platform is returned) For other non-POSIX platforms, currently just returns 'sys.platform'. """ if os.name == 'nt': # sniff sys.version for architecture. prefix = " bit (" i = sys.version.find(prefix) if i == -1: return sys.platform j = sys.version.find(")", i) look = sys.version[i+len(prefix):j].lower() if look == 'amd64': return 'win-amd64' if look == 'itanium': return 'win-ia64' return sys.platform # Set for cross builds explicitly if "_PYTHON_HOST_PLATFORM" in os.environ: return os.environ["_PYTHON_HOST_PLATFORM"] if os.name != "posix" or not hasattr(os, 'uname'): # XXX what about the architecture? NT is Intel or Alpha, # Mac OS is M68k or PPC, etc. return sys.platform # Try to distinguish various flavours of Unix (osname, host, release, version, machine) = os.uname() # Convert the OS name to lowercase, remove '/' characters # (to accommodate BSD/OS), and translate spaces (for "Power Macintosh") osname = osname.lower().replace('/', '') machine = machine.replace(' ', '_') machine = machine.replace('/', '-') if osname[:5] == "linux": # At least on Linux/Intel, 'machine' is the processor -- # i386, etc. # XXX what about Alpha, SPARC, etc? return "%s-%s" % (osname, machine) elif osname[:5] == "sunos": if release[0] >= "5": # SunOS 5 == Solaris 2 osname = "solaris" release = "%d.%s" % (int(release[0]) - 3, release[2:]) # We can't use "platform.architecture()[0]" because a # bootstrap problem. We use a dict to get an error # if some suspicious happens. bitness = {2147483647:"32bit", 9223372036854775807:"64bit"} machine += ".%s" % bitness[sys.maxsize] # fall through to standard osname-release-machine representation elif osname[:4] == "irix": # could be "irix64"! return "%s-%s" % (osname, release) elif osname[:3] == "aix": return "%s-%s.%s" % (osname, version, release) elif osname[:6] == "cygwin": osname = "cygwin" rel_re = re.compile (r'[\d.]+', re.ASCII) m = rel_re.match(release) if m: release = m.group() elif osname[:6] == "darwin": import _osx_support, distutils.sysconfig osname, release, machine = _osx_support.get_platform_osx( distutils.sysconfig.get_config_vars(), osname, release, machine) return "%s-%s-%s" % (osname, release, machine) # get_platform () def convert_path (pathname): """Return 'pathname' as a name that will work on the native filesystem, i.e. split it on '/' and put it back together again using the current directory separator. Needed because filenames in the setup script are always supplied in Unix style, and have to be converted to the local convention before we can actually use them in the filesystem. Raises ValueError on non-Unix-ish systems if 'pathname' either starts or ends with a slash. """ if os.sep == '/': return pathname if not pathname: return pathname if pathname[0] == '/': raise ValueError("path '%s' cannot be absolute" % pathname) if pathname[-1] == '/': raise ValueError("path '%s' cannot end with '/'" % pathname) paths = pathname.split('/') while '.' in paths: paths.remove('.') if not paths: return os.curdir return os.path.join(*paths) # convert_path () def change_root (new_root, pathname): """Return 'pathname' with 'new_root' prepended. If 'pathname' is relative, this is equivalent to "os.path.join(new_root,pathname)". Otherwise, it requires making 'pathname' relative and then joining the two, which is tricky on DOS/Windows and Mac OS. """ if os.name == 'posix': if not os.path.isabs(pathname): return os.path.join(new_root, pathname) else: return os.path.join(new_root, pathname[1:]) elif os.name == 'nt': (drive, path) = os.path.splitdrive(pathname) if path[0] == '\\': path = path[1:] return os.path.join(new_root, path) elif os.name == 'os2': (drive, path) = os.path.splitdrive(pathname) if path[0] == os.sep: path = path[1:] return os.path.join(new_root, path) else: raise DistutilsPlatformError("nothing known about platform '%s'" % os.name) _environ_checked = 0 def check_environ (): """Ensure that 'os.environ' has all the environment variables we guarantee that users can use in config files, command-line options, etc. Currently this includes: HOME - user's home directory (Unix only) PLAT - description of the current platform, including hardware and OS (see 'get_platform()') """ global _environ_checked if _environ_checked: return if os.name == 'posix' and 'HOME' not in os.environ: import pwd os.environ['HOME'] = pwd.getpwuid(os.getuid())[5] if 'PLAT' not in os.environ: os.environ['PLAT'] = get_platform() _environ_checked = 1 def subst_vars (s, local_vars): """Perform shell/Perl-style variable substitution on 'string'. Every occurrence of '$' followed by a name is considered a variable, and variable is substituted by the value found in the 'local_vars' dictionary, or in 'os.environ' if it's not in 'local_vars'. 'os.environ' is first checked/augmented to guarantee that it contains certain values: see 'check_environ()'. Raise ValueError for any variables not found in either 'local_vars' or 'os.environ'. """ check_environ() def _subst (match, local_vars=local_vars): var_name = match.group(1) if var_name in local_vars: return str(local_vars[var_name]) else: return os.environ[var_name] try: return re.sub(r'\$([a-zA-Z_][a-zA-Z_0-9]*)', _subst, s) except KeyError as var: raise ValueError("invalid variable '$%s'" % var) # subst_vars () def grok_environment_error (exc, prefix="error: "): # Function kept for backward compatibility. # Used to try clever things with EnvironmentErrors, # but nowadays str(exception) produces good messages. return prefix + str(exc) # Needed by 'split_quoted()' _wordchars_re = _squote_re = _dquote_re = None def _init_regex(): global _wordchars_re, _squote_re, _dquote_re _wordchars_re = re.compile(r'[^\\\'\"%s ]*' % string.whitespace) _squote_re = re.compile(r"'(?:[^'\\]|\\.)*'") _dquote_re = re.compile(r'"(?:[^"\\]|\\.)*"') def split_quoted (s): """Split a string up according to Unix shell-like rules for quotes and backslashes. In short: words are delimited by spaces, as long as those spaces are not escaped by a backslash, or inside a quoted string. Single and double quotes are equivalent, and the quote characters can be backslash-escaped. The backslash is stripped from any two-character escape sequence, leaving only the escaped character. The quote characters are stripped from any quoted string. Returns a list of words. """ # This is a nice algorithm for splitting up a single string, since it # doesn't require character-by-character examination. It was a little # bit of a brain-bender to get it working right, though... if _wordchars_re is None: _init_regex() s = s.strip() words = [] pos = 0 while s: m = _wordchars_re.match(s, pos) end = m.end() if end == len(s): words.append(s[:end]) break if s[end] in string.whitespace: # unescaped, unquoted whitespace: now words.append(s[:end]) # we definitely have a word delimiter s = s[end:].lstrip() pos = 0 elif s[end] == '\\': # preserve whatever is being escaped; # will become part of the current word s = s[:end] + s[end+1:] pos = end+1 else: if s[end] == "'": # slurp singly-quoted string m = _squote_re.match(s, end) elif s[end] == '"': # slurp doubly-quoted string m = _dquote_re.match(s, end) else: raise RuntimeError("this can't happen (bad char '%c')" % s[end]) if m is None: raise ValueError("bad string (mismatched %s quotes?)" % s[end]) (beg, end) = m.span() s = s[:beg] + s[beg+1:end-1] + s[end:] pos = m.end() - 2 if pos >= len(s): words.append(s) break return words # split_quoted () def execute (func, args, msg=None, verbose=0, dry_run=0): """Perform some action that affects the outside world (eg. by writing to the filesystem). Such actions are special because they are disabled by the 'dry_run' flag. This method takes care of all that bureaucracy for you; all you have to do is supply the function to call and an argument tuple for it (to embody the "external action" being performed), and an optional message to print. """ if msg is None: msg = "%s%r" % (func.__name__, args) if msg[-2:] == ',)': # correct for singleton tuple msg = msg[0:-2] + ')' log.info(msg) if not dry_run: func(*args) def strtobool (val): """Convert a string representation of truth to true (1) or false (0). True values are 'y', 'yes', 't', 'true', 'on', and '1'; false values are 'n', 'no', 'f', 'false', 'off', and '0'. Raises ValueError if 'val' is anything else. """ val = val.lower() if val in ('y', 'yes', 't', 'true', 'on', '1'): return 1 elif val in ('n', 'no', 'f', 'false', 'off', '0'): return 0 else: raise ValueError("invalid truth value %r" % (val,)) def byte_compile (py_files, optimize=0, force=0, prefix=None, base_dir=None, verbose=1, dry_run=0, direct=None): """Byte-compile a collection of Python source files to either .pyc or .pyo files in a __pycache__ subdirectory. 'py_files' is a list of files to compile; any files that don't end in ".py" are silently skipped. 'optimize' must be one of the following: 0 - don't optimize (generate .pyc) 1 - normal optimization (like "python -O") 2 - extra optimization (like "python -OO") If 'force' is true, all files are recompiled regardless of timestamps. The source filename encoded in each bytecode file defaults to the filenames listed in 'py_files'; you can modify these with 'prefix' and 'basedir'. 'prefix' is a string that will be stripped off of each source filename, and 'base_dir' is a directory name that will be prepended (after 'prefix' is stripped). You can supply either or both (or neither) of 'prefix' and 'base_dir', as you wish. If 'dry_run' is true, doesn't actually do anything that would affect the filesystem. Byte-compilation is either done directly in this interpreter process with the standard py_compile module, or indirectly by writing a temporary script and executing it. Normally, you should let 'byte_compile()' figure out to use direct compilation or not (see the source for details). The 'direct' flag is used by the script generated in indirect mode; unless you know what you're doing, leave it set to None. """ # nothing is done if sys.dont_write_bytecode is True if sys.dont_write_bytecode: raise DistutilsByteCompileError('byte-compiling is disabled.') # First, if the caller didn't force us into direct or indirect mode, # figure out which mode we should be in. We take a conservative # approach: choose direct mode *only* if the current interpreter is # in debug mode and optimize is 0. If we're not in debug mode (-O # or -OO), we don't know which level of optimization this # interpreter is running with, so we can't do direct # byte-compilation and be certain that it's the right thing. Thus, # always compile indirectly if the current interpreter is in either # optimize mode, or if either optimization level was requested by # the caller. if direct is None: direct = (__debug__ and optimize == 0) # "Indirect" byte-compilation: write a temporary script and then # run it with the appropriate flags. if not direct: try: from tempfile import mkstemp (script_fd, script_name) = mkstemp(".py") except ImportError: from tempfile import mktemp (script_fd, script_name) = None, mktemp(".py") log.info("writing byte-compilation script '%s'", script_name) if not dry_run: if script_fd is not None: script = os.fdopen(script_fd, "w") else: script = open(script_name, "w") script.write("""\ from distutils.util import byte_compile files = [ """) # XXX would be nice to write absolute filenames, just for # safety's sake (script should be more robust in the face of # chdir'ing before running it). But this requires abspath'ing # 'prefix' as well, and that breaks the hack in build_lib's # 'byte_compile()' method that carefully tacks on a trailing # slash (os.sep really) to make sure the prefix here is "just # right". This whole prefix business is rather delicate -- the # problem is that it's really a directory, but I'm treating it # as a dumb string, so trailing slashes and so forth matter. #py_files = map(os.path.abspath, py_files) #if prefix: # prefix = os.path.abspath(prefix) script.write(",\n".join(map(repr, py_files)) + "]\n") script.write(""" byte_compile(files, optimize=%r, force=%r, prefix=%r, base_dir=%r, verbose=%r, dry_run=0, direct=1) """ % (optimize, force, prefix, base_dir, verbose)) script.close() cmd = [sys.executable, script_name] if optimize == 1: cmd.insert(1, "-O") elif optimize == 2: cmd.insert(1, "-OO") spawn(cmd, dry_run=dry_run) execute(os.remove, (script_name,), "removing %s" % script_name, dry_run=dry_run) # "Direct" byte-compilation: use the py_compile module to compile # right here, right now. Note that the script generated in indirect # mode simply calls 'byte_compile()' in direct mode, a weird sort of # cross-process recursion. Hey, it works! else: from py_compile import compile for file in py_files: if file[-3:] != ".py": # This lets us be lazy and not filter filenames in # the "install_lib" command. continue # Terminology from the py_compile module: # cfile - byte-compiled file # dfile - purported source filename (same as 'file' by default) if optimize >= 0: cfile = imp.cache_from_source(file, debug_override=not optimize) else: cfile = imp.cache_from_source(file) dfile = file if prefix: if file[:len(prefix)] != prefix: raise ValueError("invalid prefix: filename %r doesn't start with %r" % (file, prefix)) dfile = dfile[len(prefix):] if base_dir: dfile = os.path.join(base_dir, dfile) cfile_base = os.path.basename(cfile) if direct: if force or newer(file, cfile): log.info("byte-compiling %s to %s", file, cfile_base) if not dry_run: compile(file, cfile, dfile) else: log.debug("skipping byte-compilation of %s to %s", file, cfile_base) # byte_compile () def rfc822_escape (header): """Return a version of the string escaped for inclusion in an RFC-822 header, by ensuring there are 8 spaces space after each newline. """ lines = header.split('\n') sep = '\n' + 8 * ' ' return sep.join(lines) # 2to3 support def run_2to3(files, fixer_names=None, options=None, explicit=None): """Invoke 2to3 on a list of Python files. The files should all come from the build area, as the modification is done in-place. To reduce the build time, only files modified since the last invocation of this function should be passed in the files argument.""" if not files: return # Make this class local, to delay import of 2to3 from lib2to3.refactor import RefactoringTool, get_fixers_from_package class DistutilsRefactoringTool(RefactoringTool): def log_error(self, msg, *args, **kw): log.error(msg, *args) def log_message(self, msg, *args): log.info(msg, *args) def log_debug(self, msg, *args): log.debug(msg, *args) if fixer_names is None: fixer_names = get_fixers_from_package('lib2to3.fixes') r = DistutilsRefactoringTool(fixer_names, options=options) r.refactor(files, write=True) def copydir_run_2to3(src, dest, template=None, fixer_names=None, options=None, explicit=None): """Recursively copy a directory, only copying new and changed files, running run_2to3 over all newly copied Python modules afterward. If you give a template string, it's parsed like a MANIFEST.in. """ from distutils.dir_util import mkpath from distutils.file_util import copy_file from distutils.filelist import FileList filelist = FileList() curdir = os.getcwd() os.chdir(src) try: filelist.findall() finally: os.chdir(curdir) filelist.files[:] = filelist.allfiles if template: for line in template.splitlines(): line = line.strip() if not line: continue filelist.process_template_line(line) copied = [] for filename in filelist.files: outname = os.path.join(dest, filename) mkpath(os.path.dirname(outname)) res = copy_file(os.path.join(src, filename), outname, update=1) if res[1]: copied.append(outname) run_2to3([fn for fn in copied if fn.lower().endswith('.py')], fixer_names=fixer_names, options=options, explicit=explicit) return copied class Mixin2to3: '''Mixin class for commands that run 2to3. To configure 2to3, setup scripts may either change the class variables, or inherit from individual commands to override how 2to3 is invoked.''' # provide list of fixers to run; # defaults to all from lib2to3.fixers fixer_names = None # options dictionary options = None # list of fixers to invoke even though they are marked as explicit explicit = None def run_2to3(self, files): return run_2to3(files, self.fixer_names, self.options, self.explicit) PK!\[J[Jcmd.pynu["""distutils.cmd Provides the Command class, the base class for the command classes in the distutils.command package. """ import sys, os, re from distutils.errors import DistutilsOptionError from distutils import util, dir_util, file_util, archive_util, dep_util from distutils import log class Command: """Abstract base class for defining command classes, the "worker bees" of the Distutils. A useful analogy for command classes is to think of them as subroutines with local variables called "options". The options are "declared" in 'initialize_options()' and "defined" (given their final values, aka "finalized") in 'finalize_options()', both of which must be defined by every command class. The distinction between the two is necessary because option values might come from the outside world (command line, config file, ...), and any options dependent on other options must be computed *after* these outside influences have been processed -- hence 'finalize_options()'. The "body" of the subroutine, where it does all its work based on the values of its options, is the 'run()' method, which must also be implemented by every command class. """ # 'sub_commands' formalizes the notion of a "family" of commands, # eg. "install" as the parent with sub-commands "install_lib", # "install_headers", etc. The parent of a family of commands # defines 'sub_commands' as a class attribute; it's a list of # (command_name : string, predicate : unbound_method | string | None) # tuples, where 'predicate' is a method of the parent command that # determines whether the corresponding command is applicable in the # current situation. (Eg. we "install_headers" is only applicable if # we have any C header files to install.) If 'predicate' is None, # that command is always applicable. # # 'sub_commands' is usually defined at the *end* of a class, because # predicates can be unbound methods, so they must already have been # defined. The canonical example is the "install" command. sub_commands = [] # -- Creation/initialization methods ------------------------------- def __init__(self, dist): """Create and initialize a new Command object. Most importantly, invokes the 'initialize_options()' method, which is the real initializer and depends on the actual command being instantiated. """ # late import because of mutual dependence between these classes from distutils.dist import Distribution if not isinstance(dist, Distribution): raise TypeError("dist must be a Distribution instance") if self.__class__ is Command: raise RuntimeError("Command is an abstract class") self.distribution = dist self.initialize_options() # Per-command versions of the global flags, so that the user can # customize Distutils' behaviour command-by-command and let some # commands fall back on the Distribution's behaviour. None means # "not defined, check self.distribution's copy", while 0 or 1 mean # false and true (duh). Note that this means figuring out the real # value of each flag is a touch complicated -- hence "self._dry_run" # will be handled by __getattr__, below. # XXX This needs to be fixed. self._dry_run = None # verbose is largely ignored, but needs to be set for # backwards compatibility (I think)? self.verbose = dist.verbose # Some commands define a 'self.force' option to ignore file # timestamps, but methods defined *here* assume that # 'self.force' exists for all commands. So define it here # just to be safe. self.force = None # The 'help' flag is just used for command-line parsing, so # none of that complicated bureaucracy is needed. self.help = 0 # 'finalized' records whether or not 'finalize_options()' has been # called. 'finalize_options()' itself should not pay attention to # this flag: it is the business of 'ensure_finalized()', which # always calls 'finalize_options()', to respect/update it. self.finalized = 0 # XXX A more explicit way to customize dry_run would be better. def __getattr__(self, attr): if attr == 'dry_run': myval = getattr(self, "_" + attr) if myval is None: return getattr(self.distribution, attr) else: return myval else: raise AttributeError(attr) def ensure_finalized(self): if not self.finalized: self.finalize_options() self.finalized = 1 # Subclasses must define: # initialize_options() # provide default values for all options; may be customized by # setup script, by options from config file(s), or by command-line # options # finalize_options() # decide on the final values for all options; this is called # after all possible intervention from the outside world # (command-line, option file, etc.) has been processed # run() # run the command: do whatever it is we're here to do, # controlled by the command's various option values def initialize_options(self): """Set default values for all the options that this command supports. Note that these defaults may be overridden by other commands, by the setup script, by config files, or by the command-line. Thus, this is not the place to code dependencies between options; generally, 'initialize_options()' implementations are just a bunch of "self.foo = None" assignments. This method must be implemented by all command classes. """ raise RuntimeError("abstract method -- subclass %s must override" % self.__class__) def finalize_options(self): """Set final values for all the options that this command supports. This is always called as late as possible, ie. after any option assignments from the command-line or from other commands have been done. Thus, this is the place to code option dependencies: if 'foo' depends on 'bar', then it is safe to set 'foo' from 'bar' as long as 'foo' still has the same value it was assigned in 'initialize_options()'. This method must be implemented by all command classes. """ raise RuntimeError("abstract method -- subclass %s must override" % self.__class__) def dump_options(self, header=None, indent=""): from distutils.fancy_getopt import longopt_xlate if header is None: header = "command options for '%s':" % self.get_command_name() self.announce(indent + header, level=log.INFO) indent = indent + " " for (option, _, _) in self.user_options: option = option.translate(longopt_xlate) if option[-1] == "=": option = option[:-1] value = getattr(self, option) self.announce(indent + "%s = %s" % (option, value), level=log.INFO) def run(self): """A command's raison d'etre: carry out the action it exists to perform, controlled by the options initialized in 'initialize_options()', customized by other commands, the setup script, the command-line, and config files, and finalized in 'finalize_options()'. All terminal output and filesystem interaction should be done by 'run()'. This method must be implemented by all command classes. """ raise RuntimeError("abstract method -- subclass %s must override" % self.__class__) def announce(self, msg, level=1): """If the current verbosity level is of greater than or equal to 'level' print 'msg' to stdout. """ log.log(level, msg) def debug_print(self, msg): """Print 'msg' to stdout if the global DEBUG (taken from the DISTUTILS_DEBUG environment variable) flag is true. """ from distutils.debug import DEBUG if DEBUG: print(msg) sys.stdout.flush() # -- Option validation methods ------------------------------------- # (these are very handy in writing the 'finalize_options()' method) # # NB. the general philosophy here is to ensure that a particular option # value meets certain type and value constraints. If not, we try to # force it into conformance (eg. if we expect a list but have a string, # split the string on comma and/or whitespace). If we can't force the # option into conformance, raise DistutilsOptionError. Thus, command # classes need do nothing more than (eg.) # self.ensure_string_list('foo') # and they can be guaranteed that thereafter, self.foo will be # a list of strings. def _ensure_stringlike(self, option, what, default=None): val = getattr(self, option) if val is None: setattr(self, option, default) return default elif not isinstance(val, str): raise DistutilsOptionError("'%s' must be a %s (got `%s`)" % (option, what, val)) return val def ensure_string(self, option, default=None): """Ensure that 'option' is a string; if not defined, set it to 'default'. """ self._ensure_stringlike(option, "string", default) def ensure_string_list(self, option): """Ensure that 'option' is a list of strings. If 'option' is currently a string, we split it either on /,\s*/ or /\s+/, so "foo bar baz", "foo,bar,baz", and "foo, bar baz" all become ["foo", "bar", "baz"]. """ val = getattr(self, option) if val is None: return elif isinstance(val, str): setattr(self, option, re.split(r',\s*|\s+', val)) else: if isinstance(val, list): ok = all(isinstance(v, str) for v in val) else: ok = False if not ok: raise DistutilsOptionError( "'%s' must be a list of strings (got %r)" % (option, val)) def _ensure_tested_string(self, option, tester, what, error_fmt, default=None): val = self._ensure_stringlike(option, what, default) if val is not None and not tester(val): raise DistutilsOptionError(("error in '%s' option: " + error_fmt) % (option, val)) def ensure_filename(self, option): """Ensure that 'option' is the name of an existing file.""" self._ensure_tested_string(option, os.path.isfile, "filename", "'%s' does not exist or is not a file") def ensure_dirname(self, option): self._ensure_tested_string(option, os.path.isdir, "directory name", "'%s' does not exist or is not a directory") # -- Convenience methods for commands ------------------------------ def get_command_name(self): if hasattr(self, 'command_name'): return self.command_name else: return self.__class__.__name__ def set_undefined_options(self, src_cmd, *option_pairs): """Set the values of any "undefined" options from corresponding option values in some other command object. "Undefined" here means "is None", which is the convention used to indicate that an option has not been changed between 'initialize_options()' and 'finalize_options()'. Usually called from 'finalize_options()' for options that depend on some other command rather than another option of the same command. 'src_cmd' is the other command from which option values will be taken (a command object will be created for it if necessary); the remaining arguments are '(src_option,dst_option)' tuples which mean "take the value of 'src_option' in the 'src_cmd' command object, and copy it to 'dst_option' in the current command object". """ # Option_pairs: list of (src_option, dst_option) tuples src_cmd_obj = self.distribution.get_command_obj(src_cmd) src_cmd_obj.ensure_finalized() for (src_option, dst_option) in option_pairs: if getattr(self, dst_option) is None: setattr(self, dst_option, getattr(src_cmd_obj, src_option)) def get_finalized_command(self, command, create=1): """Wrapper around Distribution's 'get_command_obj()' method: find (create if necessary and 'create' is true) the command object for 'command', call its 'ensure_finalized()' method, and return the finalized command object. """ cmd_obj = self.distribution.get_command_obj(command, create) cmd_obj.ensure_finalized() return cmd_obj # XXX rename to 'get_reinitialized_command()'? (should do the # same in dist.py, if so) def reinitialize_command(self, command, reinit_subcommands=0): return self.distribution.reinitialize_command(command, reinit_subcommands) def run_command(self, command): """Run some other command: uses the 'run_command()' method of Distribution, which creates and finalizes the command object if necessary and then invokes its 'run()' method. """ self.distribution.run_command(command) def get_sub_commands(self): """Determine the sub-commands that are relevant in the current distribution (ie., that need to be run). This is based on the 'sub_commands' class attribute: each tuple in that list may include a method that we call to determine if the subcommand needs to be run for the current distribution. Return a list of command names. """ commands = [] for (cmd_name, method) in self.sub_commands: if method is None or method(self): commands.append(cmd_name) return commands # -- External world manipulation ----------------------------------- def warn(self, msg): log.warn("warning: %s: %s\n" % (self.get_command_name(), msg)) def execute(self, func, args, msg=None, level=1): util.execute(func, args, msg, dry_run=self.dry_run) def mkpath(self, name, mode=0o777): dir_util.mkpath(name, mode, dry_run=self.dry_run) def copy_file(self, infile, outfile, preserve_mode=1, preserve_times=1, link=None, level=1): """Copy a file respecting verbose, dry-run and force flags. (The former two default to whatever is in the Distribution object, and the latter defaults to false for commands that don't define it.)""" return file_util.copy_file(infile, outfile, preserve_mode, preserve_times, not self.force, link, dry_run=self.dry_run) def copy_tree(self, infile, outfile, preserve_mode=1, preserve_times=1, preserve_symlinks=0, level=1): """Copy an entire directory tree respecting verbose, dry-run, and force flags. """ return dir_util.copy_tree(infile, outfile, preserve_mode, preserve_times, preserve_symlinks, not self.force, dry_run=self.dry_run) def move_file (self, src, dst, level=1): """Move a file respecting dry-run flag.""" return file_util.move_file(src, dst, dry_run=self.dry_run) def spawn(self, cmd, search_path=1, level=1): """Spawn an external command respecting dry-run flag.""" from distutils.spawn import spawn spawn(cmd, search_path, dry_run=self.dry_run) def make_archive(self, base_name, format, root_dir=None, base_dir=None): return archive_util.make_archive(base_name, format, root_dir, base_dir, dry_run=self.dry_run) def make_file(self, infiles, outfile, func, args, exec_msg=None, skip_msg=None, level=1): """Special case of 'execute()' for operations that process one or more input files and generate one output file. Works just like 'execute()', except the operation is skipped and a different message printed if 'outfile' already exists and is newer than all files listed in 'infiles'. If the command defined 'self.force', and it is true, then the command is unconditionally run -- does no timestamp checks. """ if skip_msg is None: skip_msg = "skipping %s (inputs unchanged)" % outfile # Allow 'infiles' to be a single string if isinstance(infiles, str): infiles = (infiles,) elif not isinstance(infiles, (list, tuple)): raise TypeError( "'infiles' must be a string, or a list or tuple of strings") if exec_msg is None: exec_msg = "generating %s from %s" % (outfile, ', '.join(infiles)) # If 'outfile' must be regenerated (either because it doesn't # exist, is out-of-date, or the 'force' flag is true) then # perform the action that presumably regenerates it if self.force or dep_util.newer_group(infiles, outfile): self.execute(func, args, exec_msg, level) # Otherwise, print the "skip" message else: log.debug(skip_msg) # XXX 'install_misc' class not currently used -- it was the base class for # both 'install_scripts' and 'install_data', but they outgrew it. It might # still be useful for 'install_headers', though, so I'm keeping it around # for the time being. class install_misc(Command): """Common base class for installing some files in a subdirectory. Currently used by install_data and install_scripts. """ user_options = [('install-dir=', 'd', "directory to install the files to")] def initialize_options (self): self.install_dir = None self.outfiles = [] def _install_dir_from(self, dirname): self.set_undefined_options('install', (dirname, 'install_dir')) def _copy_files(self, filelist): self.outfiles = [] if not filelist: return self.mkpath(self.install_dir) for f in filelist: self.copy_file(f, self.install_dir) self.outfiles.append(os.path.join(self.install_dir, f)) def get_outputs(self): return self.outfiles PK! ư*__pycache__/file_util.cpython-36.opt-2.pycnu[3 \@sVddlZddlmZddlmZddddZdd d Zdd dZdddZddZ dS)N)DistutilsFileError)logZcopyingz hard linkingzsymbolically linking)NhardsymicNCsd}d}zvyt|d}Wn4tk rN}ztd||jfWYdd}~XnXtjj|rytj|Wn4tk r}ztd||jfWYdd}~XnXyt|d}Wn4tk r}ztd||jfWYdd}~XnXxy|j|}Wn6tk r*}ztd||jfWYdd}~XnX|s4Py|j |Wqtk rx}ztd||jfWYdd}~XqXqWWd|r|j |r|j XdS)Nrbzcould not open '%s': %szcould not delete '%s': %swbzcould not create '%s': %szcould not read from '%s': %szcould not write to '%s': %s) openOSErrorrstrerrorospathexistsunlinkreadwriteclose)srcdst buffer_sizeZfsrcZfdsteZbufr+/usr/lib64/python3.6/distutils/file_util.py_copy_file_contentssF $ """*rcCsddlm}ddlm} m} m} m} tjj |s %srr)Zdistutils.dep_utilrstatrrrrr r isfilerisdirjoinbasenamedirnamerdebug _copy_actionKeyError ValueErrorinforsamefilelinkr symlinkrutimechmod)rrZ preserve_modeZpreserve_timesupdater,verbosedry_runrrrrrdiractionstrrr copy_fileCsT!               r6c(Csddlm}m}m}m}m}ddl} |dkr:tjd|||rB|S||sVt d|||rrt j j |||}n||rt d||f|||st d||fd} yt j ||WnPtk r } z2| j\} } | | jkrd } nt d ||| fWYdd} ~ XnX| rt|||d yt j|Wnhtk r} zJ| j\} } yt j|Wntk rpYnXt d |||| fWYdd} ~ XnX|S) Nr)rr!r"r$r%rzmoving %s -> %sz#can't move '%s': not a regular filez0can't move '%s': destination '%s' already existsz2can't move '%s': destination '%s' not a valid pathFTzcouldn't move '%s' to '%s': %s)r1zAcouldn't move '%s' to '%s' by copy/delete: delete '%s' failed: %s)Zos.pathrr!r"r$r%errnorr*rr r r#renamer argsZEXDEVr6r)rrr1r2rr!r"r$r%r7Zcopy_itrZnummsgrrr move_filesR       " "r;c Cs:t|d}z x|D]}|j|dqWWd|jXdS)Nw )r rr)filenamecontentsflinerrr write_files   rB@)rC)rrrNrr)rr) r Zdistutils.errorsrZ distutilsrr'rr6r;rBrrrrs   3 c =PK!Fӎ##$__pycache__/cmd.cpython-36.opt-2.pycnu[3 \J@snddlZddlZddlZddlmZddlmZmZmZm Z m Z ddlm Z GdddZ Gddde Z dS) N)DistutilsOptionError)utildir_util file_util archive_utildep_util)logc@seZdZgZddZddZddZddZd d ZdBd dZ ddZ dCddZ ddZ dDddZ dEddZddZdFddZddZd d!Zd"d#Zd$d%ZdGd&d'ZdHd)d*Zd+d,Zd-d.Zd/d0ZdId1d2ZdJd4d5ZdKd6d7ZdLd8d9ZdMd:d;ZdNdd?Z dPd@dAZ!d S)QCommandcCsbddlm}t||std|jtkr0td||_|jd|_ |j |_ d|_ d|_ d|_ dS)Nr) Distributionz$dist must be a Distribution instancezCommand is an abstract class)Zdistutils.distr isinstance TypeError __class__r RuntimeError distributioninitialize_optionsZ_dry_runverboseforcehelp finalized)selfZdistr r%/usr/lib64/python3.6/distutils/cmd.py__init__/s    zCommand.__init__cCs<|dkr0t|d|}|dkr*t|j|S|Snt|dS)Ndry_run_)getattrrAttributeError)rattrZmyvalrrr __getattr___s  zCommand.__getattr__cCs|js|jd|_dS)N)rfinalize_options)rrrrensure_finalizediszCommand.ensure_finalizedcCstd|jdS)Nz,abstract method -- subclass %s must override)rr )rrrrr{s zCommand.initialize_optionscCstd|jdS)Nz,abstract method -- subclass %s must override)rr )rrrrr s zCommand.finalize_optionsNcCsddlm}|dkr d|j}|j||tjd|d}x\|jD]R\}}}|j|}|d dkrp|dd }t||}|j|d||ftjdqDWdS) Nr) longopt_xlatezcommand options for '%s':)levelz r=z%s = %sr&) Zdistutils.fancy_getoptr#get_command_nameannouncerINFO user_options translater)rheaderindentr#optionrvaluerrr dump_optionss      zCommand.dump_optionscCstd|jdS)Nz,abstract method -- subclass %s must override)rr )rrrrruns z Command.runrcCstj||dS)N)r)rmsgr$rrrr(szCommand.announcecCs&ddlm}|r"t|tjjdS)Nr)DEBUG)Zdistutils.debugr3printsysstdoutflush)rr2r3rrr debug_prints zCommand.debug_printcCsBt||}|dkr"t||||St|ts>td|||f|S)Nz'%s' must be a %s (got `%s`))rsetattrr strr)rr.whatdefaultvalrrr_ensure_stringlikes   zCommand._ensure_stringlikecCs|j|d|dS)Nstring)r>)rr.r<rrr ensure_stringszCommand.ensure_stringcCspt||}|dkrdSt|tr6t||tjd|n6t|trTtdd|D}nd}|sltd||fdS)Nz,\s*|\s+css|]}t|tVqdS)N)r r:).0vrrr sz-Command.ensure_string_list..Fz''%s' must be a list of strings (got %r)) rr r:r9resplitlistallr)rr.r=okrrrensure_string_lists   zCommand.ensure_string_listcCs8|j|||}|dk r4|| r4td|||fdS)Nzerror in '%s' option: )r>r)rr.Ztesterr;Z error_fmtr<r=rrr_ensure_tested_stringszCommand._ensure_tested_stringcCs|j|tjjdddS)Nfilenamez$'%s' does not exist or is not a file)rJospathisfile)rr.rrrensure_filenames zCommand.ensure_filenamecCs|j|tjjdddS)Nzdirectory namez)'%s' does not exist or is not a directory)rJrLrMisdir)rr.rrrensure_dirnames zCommand.ensure_dirnamecCst|dr|jS|jjSdS)N command_name)hasattrrRr __name__)rrrrr' s zCommand.get_command_namecGsJ|jj|}|jx0|D](\}}t||dkrt||t||qWdS)N)rget_command_objr!rr9)rZsrc_cmdZ option_pairsZ src_cmd_objZ src_optionZ dst_optionrrrset_undefined_optionss  zCommand.set_undefined_optionscCs|jj||}|j|S)N)rrUr!)rcommandZcreateZcmd_objrrrget_finalized_command$szCommand.get_finalized_commandrcCs|jj||S)N)rreinitialize_command)rrWZreinit_subcommandsrrrrY0szCommand.reinitialize_commandcCs|jj|dS)N)r run_command)rrWrrrrZ4szCommand.run_commandcCs6g}x,|jD]"\}}|dks$||r |j|q W|S)N) sub_commandsappend)rZcommandsZcmd_namemethodrrrget_sub_commands;s zCommand.get_sub_commandscCstjd|j|dS)Nzwarning: %s: %s )rwarnr')rr2rrrr_Ksz Command.warncCstj||||jddS)N)r)rexecuter)rfuncargsr2r$rrrr`NszCommand.executecCstj|||jddS)N)r)rmkpathr)rnamemoderrrrdQszCommand.mkpathc Cstj|||||j ||jdS)N)r)r copy_filerr)rinfileoutfile preserve_modepreserve_timeslinkr$rrrrgTs  zCommand.copy_filec Cstj||||||j |jdS)N)r)r copy_treerr)rrhrirjrkZpreserve_symlinksr$rrrrm]s zCommand.copy_treecCstj|||jdS)N)r)r move_filer)rsrcdstr$rrrrnfszCommand.move_filecCs ddlm}||||jddS)Nr)spawn)r)Zdistutils.spawnrqr)rcmdZ search_pathr$rqrrrrqjs z Command.spawnc Cstj|||||j||dS)N)rownergroup)r make_archiver)rZ base_nameformatZroot_dirZbase_dirrsrtrrrruos zCommand.make_archivecCs|dkrd|}t|tr"|f}nt|ttfs8td|dkrRd|dj|f}|jsdtj||rv|j ||||n t j |dS)Nzskipping %s (inputs unchanged)z9'infiles' must be a string, or a list or tuple of stringszgenerating %s from %sz, ) r r:rFtupler joinrrZ newer_groupr`rdebug)rZinfilesrirarbZexec_msgZskip_msgr$rrr make_fileus  zCommand.make_file)Nr")r)N)N)N)r)r)Nr)rc)rrNr)rrrr)r)rr)NNNN)NNr)"rT __module__ __qualname__r[rrr!rr r0r1r(r8r>r@rIrJrOrQr'rVrXrYrZr^r_r`rdrgrmrnrqrurzrrrrr sD0              r c@s2eZdZd gZddZddZdd Zd d Zd S) install_misc install-dir=d!directory to install the files tocCsd|_g|_dS)N) install_diroutfiles)rrrrrszinstall_misc.initialize_optionscCs|jd|dfdS)NZinstallr)rV)rdirnamerrr_install_dir_fromszinstall_misc._install_dir_fromcCsRg|_|sdS|j|jx2|D]*}|j||j|jjtjj|j|q WdS)N)rrdrrgr\rLrMrx)rZfilelistfrrr _copy_filess  zinstall_misc._copy_filescCs|jS)N)r)rrrr get_outputsszinstall_misc.get_outputsN)r~rr)rTr{r|r*rrrrrrrrr}s  r})r5rLrDZdistutils.errorsrZ distutilsrrrrrrr r}rrrrs  PK!樤,44(__pycache__/_msvccompiler.cpython-36.pycnu[3 \KT@sdZddlZddlZddlZddlZddlZddlmZmZm Z m Z m Z ddl m Z mZddlmZddlmZddlmZdd Zd d Zd d ZddZdddZdddZedgZGddde ZdS)adistutils._msvccompiler Contains MSVCCompiler, an implementation of the abstract CCompiler class for Microsoft Visual Studio 2015. The module is compatible with VS 2015 and later. You can find legacy support for older versions in distutils.msvc9compiler and distutils.msvccompiler. N)DistutilsExecErrorDistutilsPlatformError CompileErrorLibError LinkError) CCompilergen_lib_options)log) get_platform)countc$CsytjtjdtjtjBd}Wntk r<tjddSXd}d}|xtD]}ytj ||\}}}Wntk rPYnX|rT|tj krTt j j |rTytt|}Wnttfk rwTYnX|dkrT||krT||}}qTWWdQRX||fS)Nz'Software\Microsoft\VisualStudio\SxS\VC7)accesszVisual C++ is not registeredr)NN)winregZ OpenKeyExHKEY_LOCAL_MACHINEZKEY_READZKEY_WOW64_32KEYOSErrorr debugr Z EnumValueZREG_SZospathisdirintfloat ValueError TypeError)key best_versionbest_dirivvc_dirZvtversionr //usr/lib64/python3.6/distutils/_msvccompiler.py _find_vc2015s0  r"c sddlddl}d }d}gfdd}|j|d}|j|jxD]~\}}}}d|krLtjj|ddd} tjj| sqLytd d |j d D} Wnt t fk rwLYnX| |krL| | }}qLWy |d}Wnt k rd}YnX||fS) NrcsjjdS)N)extendfindallr )_distutils_findvs all_packagesr r!_getallDsz_find_vc2017.._getall)targetz1Microsoft.VisualStudio.Component.VC.Tools.x86.x64ZVCZ AuxiliaryZBuildcss|]}t|VqdS)N)r).0rr r r! Psz_find_vc2017...)r) r% threadingZThreadstartjoinrrrtuplesplitrr IndexError) r,rrr'tnameZ version_strrZpackagesrrr )r%r&r! _find_vc2017:s2    r4cCs t\}}d}d|krdnd}|rztjj|ddddddd }yd dl}|j|d d d}Wntttfk rxd}YnX|st\}}|rtjj|d|dd }|st j ddStjj|d}tjj |st j d|dS| ptjj | rt j d|d}||fS)Namd64Zx64x86z..ZredistZMSVCz**zMicrosoft.VC141.CRTzvcruntime140.dllrT) recursivezMicrosoft.VC140.CRTz$No suitable Visual C++ version foundz vcvarsall.batz%s cannot be found)NN)NN) r4rrr.glob ImportErrorr LookupErrorr"r risfile) plat_specrr vcruntimeZvcruntime_platZvcredistr: vcvarsallr r r!_find_vcvarsall[s6        rAcCstjdrddtjjDSt|\}}|s6tdy&tjdj||tj dj ddd }Wn@tj k r}z"t j |jtd j|jWYdd}~XnXd dd d |jDD}|r||d<|S)NZDISTUTILS_USE_SDKcSsi|]\}}||jqSr )lower)r)rvaluer r r! sz_get_vc_env..zUnable to find vcvarsall.batzcmd /u /c "{}" {} && set)stderrzutf-16lereplace)errorszError executing {}cSs$i|]\}}}|r|r||jqSr )rB)r)r_rCr r r!rDscss|]}|jdVqdS)=N) partition)r)liner r r!r*sz_get_vc_env..py_vcruntime_redist)rgetenvenvironitemsrAr subprocessZ check_outputformatZSTDOUTdecodeZCalledProcessErrorr erroroutputcmd splitlines)r>r@r?outexcenvr r r! _get_vc_env}s(     rZcCsN|stjdjtj}x2|D]*}tjjtjj||}tjj|r|SqW|S)atReturn path to an MSVC executable program. Tries to find the program in several places: first, one of the MSVC program search paths from the registry; next, the directories in the PATH environment variable. If any of those work, return an absolute path that is known to exist. If none of them work, just return the original program name, 'exe'. r)rrMr0pathseprr.abspathr=)Zexepathspfnr r r! _find_exes   r`r6Z x86_amd64)Zwin32z win-amd64zvcruntime140.dllc seZdZdZdZiZdgZdddgZdgZdgZ eeee Z d Z d Z d Z d Zd ZZdZd*ddZd+ddZd,ddZd-ddZd.ddZd/ddZddZfd d!Zd"d#Zd$d%Zd&d'Zd0d(d)ZZS)1 MSVCCompilerzwConcrete class that implements an interface to Microsoft Visual C++, as defined by the CCompiler abstract class.Zmsvcz.cz.ccz.cppz.cxxz.rcz.mcz.resz.objz.libz.dllz%s%sz.exercCs tj||||d|_d|_dS)NF)r__init__ plat_name initialized)selfverboseZdry_runZforcer r r!rbszMSVCCompiler.__init__NcCsN|j std|dkrt}|tkr8tdjttt|}t|}|sTtd|jdd|_ |j j t j }t d||_t d||_t d||_t d ||_t d ||_t d ||_|jd d|_x2|jd dj t j D]}|r|j|jt jqWx6|jddj t j D]}|r|j|jt jqWd|_dddddg|_|jj|jrZdndddddddg|_dddg}|js|jd%ddddg}|d&|_|d'|_|d(|_ |d)|_!||_"||_#t$j%df|jt$j%d#f|jt$j%d$f|jt$j&df|j t$j&d#f|j t$j&d$f|j!t$j'df|j"t$j'd#f|j"t$j'd$f|j#i |_(d$|_dS)*Nzdon't init multiple timesz--plat-name must be one of {}z7Unable to find a compatible Visual Studio installation.rzcl.exezlink.exezlib.exezrc.exezmc.exezmt.exerLincludelibz/nologoz/Oxz/W3z/GLz/DNDEBUGz/MDz/MTz/Odz/MDdz/Ziz/D_DEBUGz/INCREMENTAL:NOz/LTCG/nodefaultlib:libucrt.libucrt.libz /DEBUG:FULL/MANIFEST:EMBED,ID=1/DLL/MANIFEST:EMBED,ID=2/MANIFESTUAC:NOFT)rjrk)rl)rl)rmrnro)rmrnro))rdAssertionErrorr PLAT_TO_VCVARSrrQr/rZget_pathsr0rr[r`cclinkerrircmcZmt_vcruntime_redistZadd_include_dirrstripsepZadd_library_dirZpreprocess_optionscompile_optionsappendcompile_options_debugr#Z ldflags_exeZldflags_exe_debugZldflags_sharedZldflags_shared_debugZldflags_staticZldflags_static_debugrZ EXECUTABLEZ SHARED_OBJECTZSHARED_LIBRARY_ldflags)rercr>Zvc_envr]dirldflagsZ ldflags_debugr r r! initializesb                      zMSVCCompiler.initializergcsTfddjDfddjjDp4dfdd}tt||S)Ncsi|] }j|qSr ) obj_extension)r)ext)rer r!rD8sz1MSVCCompiler.object_filenames..csi|] }j|qSr ) res_extension)r)r)rer r!rD9srgc stjj|\}}r"tjj|}n2tjj|\}}|jtjjtjjfrT|dd}ytjj||St k rt dj |YnXdS)Nr8zDon't know how to compile {}) rrsplitextbasename splitdrive startswithrzaltsepr.r<rrQ)r^baserrH)ext_map output_dir strip_dirr r! make_out_path>s z4MSVCCompiler.object_filenames..make_out_path)src_extensions_rc_extensions_mc_extensionslistmap)reZsource_filenamesrrrr )rrrerr!object_filenames3s zMSVCCompiler.object_filenamesc Cs|js|j|j||||||} | \}} }} } |p6g} | jd|rT| j|jn | j|jd}x| D]}y| |\}}Wntk rwlYnX|rtj j |}||j krd|}nD||j krd|}d}n*||j krB|}d|}y|j|jg| ||gWqltk r<}zt|WYdd}~XqlXqln||jkrtj j|}tj j|}y\|j|jd|d||gtj jtj j|\}}tj j||d }|j|jd||gWqltk r}zt|WYdd}~XqlXqlntd j|||jg| | }|r$|jd |j||jd ||j|y|j|Wqltk r}zt|WYdd}~XqlXqlW| S) Nz/cFz/Tcz/TpTz/foz-hz-rz.rcz"Don't know how to compile {} to {}z/EHscz/Fo)rdrZ_setup_compiler|r#r}r{KeyErrorrrr\ _c_extensions_cpp_extensionsrspawnrvrrrdirnamerwrrr.rQrt)reZsourcesrZmacrosZ include_dirsr extra_preargsextra_postargsZdependsZ compile_infoobjectsZpp_optsZbuildZ compile_optsZ add_cpp_optsobjsrcrZ input_optZ output_optmsgZh_dirZrc_dirrrHZrc_fileargsr r r!compileTsn               zMSVCCompiler.compilec Cs|js|j|j||\}}|j||d}|j||r|d|g}|rJy,tjd|jdj||j |jg|Wqt k r}zt |WYdd}~XqXn tjd|dS)N)rz/OUT:zExecuting "%s" %s zskipping %s (up-to-date)) rdr_fix_object_argslibrary_filename _need_linkr rrir.rrr) rerZoutput_libnamerr target_langoutput_filenameZlib_argsrr r r!create_static_libs zMSVCCompiler.create_static_libcCs|js|j|j||\}}|j|||}|\}}}|rL|jdt|t||||}|dk rptjj ||}|j ||r|j || f}dd|pgD}||||d|g}tjj |d} |dk r tjj tjj|\}}tjj | |j|}|jd|| r| |dd<| r.|j| tjj tjj|}|j|y6tjd|jdj ||j|jg||j|Wn,tk r}zt|WYdd}~XnXn tjd |dS) Nz5I don't know what to do with 'runtime_library_dirs': cSsg|] }d|qS)z/EXPORT:r )r)Zsymr r r! sz%MSVCCompiler.link..z/OUT:rz/IMPLIB:zExecuting "%s" %srzskipping %s (up-to-date))rdrrZ _fix_lib_argswarnstrrrrr.rr~rrrrr|r#r\Zmkpathr rrur_copy_vcruntimerr)reZ target_descrrrZ librariesZ library_dirsZruntime_library_dirsZexport_symbolsrrrZ build_temprZ fixed_argsZlib_optsrZ export_optsZld_argsZdll_nameZdll_extZ implib_filerr r r!linksN       zMSVCCompiler.linkcCs`|j}| stjj| rdStjj|jtkr6dStjd|t j ||}tj |t j dS)Nz Copying "%s")rxrrr=rrB _BUNDLED_DLLSr rshutilcopychmodstatS_IWRITE)rerr?r r r!rs  zMSVCCompiler._copy_vcruntimec s4tjd}z|jtjd<tj|S|tjd<XdS)Nr)rrMrsrNsuperr)rerUZold_path) __class__r r!rs    zMSVCCompiler.spawncCsd|S)Nz /LIBPATH:r )rerr r r!library_dir_option&szMSVCCompiler.library_dir_optioncCs tddS)Nz:don't know how to set runtime library search path for MSVC)r)rerr r r!runtime_library_dir_option)sz'MSVCCompiler.runtime_library_dir_optioncCs |j|S)N)r)rerir r r!library_option-szMSVCCompiler.library_optioncCs`|r|d|g}n|g}xB|D]6}x0|D](}tjj||j|}tjj|r(|Sq(WqWdSdS)NZ_d)rrr.rr=)redirsrirZ try_namesrr3Zlibfiler r r!find_library_file0s    zMSVCCompiler.find_library_file)rrr)N)rrg)NNNrNNN)NrN) NNNNNrNNNN)r)__name__ __module__ __qualname____doc__Z compiler_typeZ executablesrrrrrrrZstatic_lib_extensionZshared_lib_extensionZstatic_lib_formatZshared_lib_formatZ exe_extensionrbrrrrrrrrrrr __classcell__r r )rr!rasN   T  [  9 ra)N)rrrrrPrZdistutils.errorsrrrrrZdistutils.ccompilerrrZ distutilsr Zdistutils.utilr itertoolsr r"r4rArZr`rq frozensetrrar r r r!s&   !"  PK!f  $__pycache__/file_util.cpython-36.pycnu[3 \@sZdZddlZddlmZddlmZddddZdd d ZdddZdddZ ddZ dS)zFdistutils.file_util Utility functions for operating on single files. N)DistutilsFileError)logZcopyingz hard linkingzsymbolically linking)NhardsymicNCsd}d}zvyt|d}Wn4tk rN}ztd||jfWYdd}~XnXtjj|rytj|Wn4tk r}ztd||jfWYdd}~XnXyt|d}Wn4tk r}ztd||jfWYdd}~XnXxy|j|}Wn6tk r*}ztd||jfWYdd}~XnX|s4Py|j |Wqtk rx}ztd||jfWYdd}~XqXqWWd|r|j |r|j XdS) a5Copy the file 'src' to 'dst'; both must be filenames. Any error opening either file, reading from 'src', or writing to 'dst', raises DistutilsFileError. Data is read/written in chunks of 'buffer_size' bytes (default 16k). No attempt is made to handle anything apart from regular files. Nrbzcould not open '%s': %szcould not delete '%s': %swbzcould not create '%s': %szcould not read from '%s': %szcould not write to '%s': %s) openOSErrorrstrerrorospathexistsunlinkreadwriteclose)srcdst buffer_sizeZfsrcZfdsteZbufr+/usr/lib64/python3.6/distutils/file_util.py_copy_file_contentssF $ """*rcCsddlm}ddlm} m} m} m} tjj |s %srr)Zdistutils.dep_utilrstatrrrrr r isfilerisdirjoinbasenamedirnamerdebug _copy_actionKeyError ValueErrorinforsamefilelinkr symlinkrutimechmod)rrZ preserve_modeZpreserve_timesupdater,verbosedry_runrrrrrdiractionstrrr copy_fileCsT!               r6c(Csddlm}m}m}m}m}ddl} |dkr:tjd|||rB|S||sVt d|||rrt j j |||}n||rt d||f|||st d||fd } yt j ||WnPtk r } z2| j\} } | | jkrd } nt d ||| fWYdd} ~ XnX| rt|||d yt j|Wnhtk r} zJ| j\} } yt j|Wntk rpYnXt d |||| fWYdd} ~ XnX|S)a%Move a file 'src' to 'dst'. If 'dst' is a directory, the file will be moved into it with the same name; otherwise, 'src' is just renamed to 'dst'. Return the new full name of the file. Handles cross-device moves on Unix using 'copy_file()'. What about other systems??? r)rr!r"r$r%Nrzmoving %s -> %sz#can't move '%s': not a regular filez0can't move '%s': destination '%s' already existsz2can't move '%s': destination '%s' not a valid pathFTzcouldn't move '%s' to '%s': %s)r1zAcouldn't move '%s' to '%s' by copy/delete: delete '%s' failed: %s)Zos.pathrr!r"r$r%errnorr*rr r r#renamer argsZEXDEVr6r)rrr1r2rr!r"r$r%r7Zcopy_itrZnummsgrrr move_filesR       " "r;c Cs:t|d}z x|D]}|j|dqWWd|jXdS)z{Create a file with the specified name and write 'contents' (a sequence of strings without line terminators) to it. w N)r rr)filenamecontentsflinerrr write_files   rB@)rC)rrrNrr)rr) __doc__r Zdistutils.errorsrZ distutilsrr'rr6r;rBrrrrs   3 c =PK!ECC.__pycache__/msvc9compiler.cpython-36.opt-1.pycnu[3 \w@sTdZddlZddlZddlZddlZddlmZmZmZm Z m Z ddl m Z m Z mZddlmZddlmZddlZejZejZejZejZejejejejfZ ej!dkoej"d&kZ#e#rd Z$d Z%d Z&n d Z$dZ%dZ&ddddZ'GdddZ(GdddZ)ddZ*ddZ+ddZ,ddZ-d'd d!Z.e*Z/e/d"kr@ed#e/Gd$d%d%e Z0dS)(a distutils.msvc9compiler Contains MSVCCompiler, an implementation of the abstract CCompiler class for the Microsoft Visual Studio 2008. The module is compatible with VS 2005 and VS 2008. You can find legacy support for older versions of VS in distutils.msvccompiler. N)DistutilsExecErrorDistutilsPlatformError CompileErrorLibError LinkError) CCompilergen_preprocess_optionsgen_lib_options)log) get_platformwin32 z1Software\Wow6432Node\Microsoft\VisualStudio\%0.1fz5Software\Wow6432Node\Microsoft\Microsoft SDKs\Windowsz,Software\Wow6432Node\Microsoft\.NETFrameworkz%Software\Microsoft\VisualStudio\%0.1fz)Software\Microsoft\Microsoft SDKs\Windowsz Software\Microsoft\.NETFrameworkx86amd64Zia64)r z win-amd64zwin-ia64c@sPeZdZdZddZeeZddZeeZddZeeZdd Ze eZd S) Regz2Helper class to read values from the registry cCs:x,tD]$}|j||}|r||kr||SqWt|dS)N)HKEYS read_valuesKeyError)clspathkeybasedr//usr/lib64/python3.6/distutils/msvc9compiler.py get_valueAs     z Reg.get_valuecCsnyt||}Wntk r"dSXg}d}xz$(FrameworkVersion)) r@r;NET_BASErr WINSDK_BASErrrr rrr9)r=r>prhrrrrrr<s.    zMacroExpander.load_macroscCs(x"|jjD]\}}|j||}q W|S)N)r9itemsreplace)r=r1r%vrrrsubszMacroExpander.subN)r2r3r4r?r@r<rIrrrrr8{sr8cCsd}tjj|}|d krdS|t|}tj|djdd\}}t|dd d}|dkrf|d7}t|ddd }|dkrd }|dkr||SdS) zReturn the version of MSVC that was used to build Python. For Python 2.3 and up, the version number is included in sys.version. For earlier versions, assume the compiler is MSVC 6. zMSC v.rN r g$@r)sysr>findlensplitint)prefixr$r1restZ majorVersionZ minorVersionrrrget_build_versions  rWcCs4g}x*|D]"}tjj|}||kr |j|q W|S)znReturn a list of normalized paths with duplicates removed. The current order of paths is maintained. )osrnormpathr!)pathsZ reduced_pathsrDZnprrrnormalize_and_reduce_pathss   r[cCs@|jtj}g}x|D]}||kr|j|qWtjj|}|S)z8Remove duplicate values of an environment variable. )rSrXpathsepr!join)ZvariableZoldListZnewListr$Z newVariablerrrremoveDuplicatess   r^c Cst|}ytjd|d}Wn"tk r>tjdd}YnX| sTtjj| rd|}tj j |d}|rtjj|rtjj |tj tj d}tjj |}tjj|stjd|dSntjd||stjd dStjj |d }tjj|r|Stjd dS) zFind the vcvarsall.bat file At first it tries to find the productdir of VS 2008 in the registry. If that fails it falls back to the VS90COMNTOOLS env var. z %s\Setup\VCrAz%Unable to find productdir in registryNzVS%0.f0COMNTOOLSZVCz%s is not a valid directoryz Env var %s is not set or invalidzNo productdir foundz vcvarsall.batzUnable to find vcvarsall.bat)r:rrrr debugrXrisdirenvirongetr]pardirabspathisfile)r>r;rAZtoolskeyZtoolsdir vcvarsallrrrfind_vcvarsalls2         rgc Cs8t|}td}i}|dkr$tdtjd||tjd||ftjtjd }z|j\}}|j d krvt|j d |j d }xr|j d D]d}t j |}d |krq|j}|j d d\} } | j} | |kr| jtjr| dd} t| || <qWWd|jj|jjXt|t|kr4ttt|j|S)zDLaunch vcvarsall.bat and read the settings from its environment includeliblibpathrNzUnable to find vcvarsall.batz'Calling 'vcvarsall.bat %s' (version=%s)z "%s" %s & set)stdoutstderrrr. =r)rhrirjrrN)rgsetrr r_ subprocessPopenPIPEZ communicatewaitr-rSrr)stripr(endswithrXr\r^rkcloserlrR ValueErrorstrlistkeys) r>ZarchrfZ interestingresultpopenrkrllinerr+rrrquery_vcvarsalls<         r~g @z(VC %0.1f is not supported by this modulec @seZdZdZdZiZdgZdddgZdgZdgZ eeee Z d Z d Z d Z d Zd ZZdZd.ddZd/ddZd0ddZd1ddZd2ddZd3ddZddZd d!Zd"d#Zd$d%Zd&d'Zd(d)Zd4d*d+Zd,d-ZdS)5 MSVCCompilerzwConcrete class that implements an interface to Microsoft Visual C++, as defined by the CCompiler abstract class.Zmsvcz.cz.ccz.cppz.cxxz.rcz.mcz.resz.objz.libz.dllz%s%sz.exercCs8tj||||t|_d|_g|_d|_d|_d|_dS)NzSoftware\Microsoft\VisualStudioF) rr?VERSION_MSVCCompiler__versionZ_MSVCCompiler__root_MSVCCompiler__paths plat_name_MSVCCompiler__arch initialized)r=verboseZdry_runZforcerrrr?JszMSVCCompiler.__init__NcCs|dkrt}d$}||kr(td|fdtjkrfdtjkrf|jdrfd|_d|_d |_d |_d |_ n|tksx|dkrt |}nt td t |}t t |}|d j tj|_|dtjd<|dtjd<t|jdkrtd|j|jd|_|jd|_|jd |_|jd |_|jd |_ y,x&tjd j dD]}|jj|q||j kr>|}d|}y"|j|jg| |g|gWqhtk r8}zt|WYdd}~XqhXqhn||jkrtj j|}tj j|}yl|j|jgd|d|g|gtj jtj j|\}}tj j||d}|j|jgd|g|gWqhtk r}zt|WYdd}~XqhXqhntd||fd |}y&|j|jg| | ||g|Wqhtk rj}zt|WYdd}~XqhXqhW| S) Nz/cz/Tcz/Tpz/foz-hz-rz.rcz"Don't know how to compile %s to %sz/Fo)rrZ_setup_compiler!extendrrrrXrrd _c_extensions_cpp_extensionsrspawnrrrrdirnamerrrr]r)r=Zsourcesrr9Z include_dirsr_ extra_preargsextra_postargsZdependsZ compile_infoobjectsZpp_optsZbuildZ compile_optsobjsrcrZ input_optZ output_optmsgZh_dirZrc_dirrrZrc_filerrrcompilesj              zMSVCCompiler.compilec Cs|js|j|j||\}}|j||d}|j||r|d|g}|rJy|j|jg|Wqtk r}zt|WYdd}~XqXn t j d|dS)N)rz/OUT:zskipping %s (up-to-date)) rr_fix_object_argslibrary_filename _need_linkrrirrr r_) r=rZoutput_libnamerr_ target_langoutput_filenameZlib_argsrrrrcreate_static_libs zMSVCCompiler.create_static_libcCsX|js|j|j||\}}|j|||}|\}}}|rL|jdt|t||||}|dk rptjj ||}|j ||rH|t j kr| r|j dd}q|jdd}n| r|j }n|j}g}x|pgD]}|jd|qW||||d|g}tjj|d} |dk rPtjjtjj|\}}tjj | |j|}|jd||j|| || rp| |dd<| r|j| |jtjj|y|j|jg|Wn,tk r}zt|WYdd}~XnX|j||}|dk rT|\}}d||f}y|jdd d ||gWn,tk rD}zt|WYdd}~XnXn tjd |dS) Nz5I don't know what to do with 'runtime_library_dirs': rz/EXPORT:z/OUT:rz/IMPLIB:z-outputresource:%s;%szmt.exez-nologoz -manifestzskipping %s (up-to-date))rrrZ _fix_lib_argswarnrxr rXrr]rr EXECUTABLErrr!rrrrmanifest_setup_ldargsrZmkpathrrrrmanifest_get_embed_infor r_)r= target_descrrrZ librariesZ library_dirsZruntime_library_dirsZexport_symbolsr_rr build_temprZ fixed_argsZlib_optsZldflagsZ export_optsZsymld_argsZdll_nameZdll_extZ implib_filerZmfinfoZ mffilenamemfidZout_argrrrlink8sl           zMSVCCompiler.linkcCs,tjj|tjj|d}|jd|dS)Nz .manifestz/MANIFESTFILE:)rXrr]rr!)r=rrr temp_manifestrrrrsz"MSVCCompiler.manifest_setup_ldargscCs`x,|D] }|jdr|jddd}PqWdS|tjkr>d}nd}|j|}|dkrXdS||fS)Nz/MANIFESTFILE::rr ) startswithrSrr_remove_visual_c_ref)r=rrargrrrrrrs    z$MSVCCompiler.manifest_get_embed_infocCsyt|}z |j}Wd|jXtjdtj}tj|d|}d}tj|d|}tjdtj}tj||dkrrdSt|d}z|j||S|jXWnt k rYnXdS)NzU|)rz*\s*zI|)w) openreadrvrerDOTALLrIsearchwriteOSError)r=Z manifest_fileZ manifest_fZ manifest_bufpatternrrrrs.     z!MSVCCompiler._remove_visual_c_refcCsd|S)Nz /LIBPATH:r)r=dirrrrlibrary_dir_optionszMSVCCompiler.library_dir_optioncCs tddS)NztjdjdD]*}tjjtjj||}tjj|rH|SqHW|S)aReturn path to an MSVC executable program. Tries to find the program in several places: first, one of the MSVC program search paths from the registry; next, the directories in the PATH environment variable. If any of those work, return an absolute path that is known to exist. If none of them work, just return the original program name, 'exe'. ZPathr)rrXrr]rdrerarS)r=ZexerDfnrrrrs   zMSVCCompiler.find_exe)rrr)N)rr)NNNrNNN)NrN) NNNNNrNNNN)r) r2r3r4r5Z compiler_typeZ executablesrrrrrrrZstatic_lib_extensionZshared_lib_extensionZstatic_lib_formatZshared_lib_formatZ exe_extensionr?rrrrrrrrrrrrrrrrrr,sR  X  V  R + rl)r)1r5rXrprPrZdistutils.errorsrrrrrZdistutils.ccompilerrrr Z distutilsr Zdistutils.utilr winregZ OpenKeyExrZEnumKeyr Z EnumValuer'errorrZ HKEY_USERSHKEY_CURRENT_USERHKEY_LOCAL_MACHINEZHKEY_CLASSES_ROOTrplatformmaxsizeZ NATIVE_WIN64r:rCrBrrr8rWr[r^rgr~rrrrrrsN  >. # )  PK!*&(__pycache__/version.cpython-36.opt-1.pycnu[3 \90@s>dZddlZGdddZGdddeZGdddeZdS) aProvides classes to represent module version numbers (one class for each style of version numbering). There are currently two such classes implemented: StrictVersion and LooseVersion. Every version number class implements the following interface: * the 'parse' method takes a string and parses it to some internal representation; if the string is an invalid version number, 'parse' raises a ValueError exception * the class constructor takes an optional string argument which, if supplied, is passed to 'parse' * __str__ reconstructs the string that was passed to 'parse' (or an equivalent string -- ie. one that will generate an equivalent version number instance) * __repr__ generates Python code to recreate the version number instance * _cmp compares the current instance with either another instance of the same class or a string (which will be parsed to an instance of the same class, thus must follow the same rules) Nc@sJeZdZdZdddZddZddZd d Zd d Zd dZ ddZ dS)VersionzAbstract base class for version numbering classes. Just provides constructor (__init__) and reproducer (__repr__), because those seem to be the same for all version numbering classes; and route rich comparisons to _cmp. NcCs|r|j|dS)N)parse)selfvstringr)/usr/lib64/python3.6/distutils/version.py__init__&szVersion.__init__cCsd|jjt|fS)Nz %s ('%s')) __class____name__str)rrrr__repr__*szVersion.__repr__cCs|j|}|tkr|S|dkS)Nr)_cmpNotImplemented)rothercrrr__eq__-s zVersion.__eq__cCs|j|}|tkr|S|dkS)Nr)r r)rrrrrr__lt__3s zVersion.__lt__cCs|j|}|tkr|S|dkS)Nr)r r)rrrrrr__le__9s zVersion.__le__cCs|j|}|tkr|S|dkS)Nr)r r)rrrrrr__gt__?s zVersion.__gt__cCs|j|}|tkr|S|dkS)Nr)r r)rrrrrr__ge__Es zVersion.__ge__)N) r __module__ __qualname____doc__rr rrrrrrrrrrs rc@s<eZdZdZejdejejBZddZ ddZ ddZ d S) StrictVersiona?Version numbering for anal retentives and software idealists. Implements the standard interface for version number classes as described above. A version number consists of two or three dot-separated numeric components, with an optional "pre-release" tag on the end. The pre-release tag consists of the letter 'a' or 'b' followed by a number. If the numeric components of two version numbers are equal, then one with a pre-release tag will always be deemed earlier (lesser) than one without. The following are valid version numbers (shown in the order that would be obtained by sorting according to the supplied cmp function): 0.4 0.4.0 (these two are equivalent) 0.4.1 0.5a1 0.5b3 0.5 0.9.6 1.0 1.0.4a3 1.0.4b1 1.0.4 The following are examples of invalid version numbers: 1 2.7.2.2 1.3.a4 1.3pl1 1.3c4 The rationale for this version numbering system will be explained in the distutils documentation. z)^(\d+) \. (\d+) (\. (\d+))? ([ab](\d+))?$cCs|jj|}|std||jddddd\}}}}}|rTttt|||g|_nttt||gd|_|r|dt|f|_nd|_dS) Nzinvalid version number '%s'r)r) version_rematch ValueErrorgrouptuplemapintversion prerelease)rrr majorminorZpatchr'Zprerelease_numrrrrs  zStrictVersion.parsecCsb|jddkr*djtt|jdd}ndjtt|j}|jr^||jdt|jd}|S)Nrr.r)r&joinr$r r')rrrrr__str__s zStrictVersion.__str__cCst|trt|}|j|jkr2|j|jkr.dSdS|j rF|j rFdS|jrX|j rXdS|j rj|jrjdS|jr|jr|j|jkrdS|j|jkrdSdSndS)Nrrr-r-) isinstancer rr&r')rrrrrr s&      zStrictVersion._cmpN) r rrrrecompileVERBOSEASCIIrrr,r rrrrr]s # rc@sHeZdZdZejdejZdddZddZ dd Z d d Z d d Z dS) LooseVersionaVersion numbering for anarchists and software realists. Implements the standard interface for version number classes as described above. A version number consists of a series of numbers, separated by either periods or strings of letters. When comparing version numbers, the numeric components will be compared numerically, and the alphabetic components lexically. The following are all valid version numbers, in no particular order: 1.5.1 1.5.2b2 161 3.10a 8.02 3.4j 1996.07.12 3.2.pl0 3.1.1.6 2g6 11g 0.960923 2.2beta29 1.13++ 5.5.kw 2.0b1pl0 In fact, there is no such thing as an invalid version number under this scheme; the rules for comparison are simple and predictable, but may not always give the results you want (for some definition of "want"). z(\d+ | [a-z]+ | \.)NcCs|r|j|dS)N)r)rrrrrr.szLooseVersion.__init__c Csb||_dd|jj|D}x:t|D].\}}yt|||<Wq&tk rRYq&Xq&W||_dS)NcSsg|]}|r|dkr|qS)r*r).0xrrr 8sz&LooseVersion.parse..)r component_resplit enumerater%r!r&)rrZ componentsiobjrrrr3s zLooseVersion.parsecCs|jS)N)r)rrrrr,CszLooseVersion.__str__cCs dt|S)NzLooseVersion ('%s'))r )rrrrr GszLooseVersion.__repr__cCsFt|trt|}|j|jkr"dS|j|jkr2dS|j|jkrBdSdS)Nrrr-)r.r r3r&)rrrrrr Ks    zLooseVersion._cmp)N) r rrrr/r0r1r7rrr,r r rrrrr3 s r3)rr/rrr3rrrrs >/PK!6bb'__pycache__/errors.cpython-36.opt-1.pycnu[3 \ @s8dZGdddeZGdddeZGdddeZGdddeZGd d d eZGd d d eZGd ddeZGdddeZ GdddeZ GdddeZ GdddeZ GdddeZ GdddeZGdddeZGdddeZGdd d eZGd!d"d"eZGd#d$d$eZGd%d&d&eZd'S)(adistutils.errors Provides exceptions used by the Distutils modules. Note that Distutils modules may raise standard exceptions; in particular, SystemExit is usually raised for errors that are obviously the end-user's fault (eg. bad command-line arguments). This module is safe to use in "from ... import *" mode; it only exports symbols whose names start with "Distutils" and end with "Error".c@seZdZdZdS)DistutilsErrorzThe root of all Distutils evil.N)__name__ __module__ __qualname____doc__rr(/usr/lib64/python3.6/distutils/errors.pyr src@seZdZdZdS)DistutilsModuleErrorzUnable to load an expected module, or to find an expected class within some module (in particular, command modules and classes).N)rrrrrrrrrsrc@seZdZdZdS)DistutilsClassErrorzSome command class (or possibly distribution class, if anyone feels a need to subclass Distribution) is found not to be holding up its end of the bargain, ie. implementing some part of the "command "interface.N)rrrrrrrrr sr c@seZdZdZdS)DistutilsGetoptErrorz7The option table provided to 'fancy_getopt()' is bogus.N)rrrrrrrrr sr c@seZdZdZdS)DistutilsArgErrorzaRaised by fancy_getopt in response to getopt.error -- ie. an error in the command line usage.N)rrrrrrrrr sr c@seZdZdZdS)DistutilsFileErrorzAny problems in the filesystem: expected file not found, etc. Typically this is for problems that we detect before OSError could be raised.N)rrrrrrrrr $sr c@seZdZdZdS)DistutilsOptionErroraSyntactic/semantic errors in command options, such as use of mutually conflicting options, or inconsistent options, badly-spelled values, etc. No distinction is made between option values originating in the setup script, the command line, config files, or what-have-you -- but if we *know* something originated in the setup script, we'll raise DistutilsSetupError instead.N)rrrrrrrrr *sr c@seZdZdZdS)DistutilsSetupErrorzqFor errors that can be definitely blamed on the setup script, such as invalid keyword arguments to 'setup()'.N)rrrrrrrrr3src@seZdZdZdS)DistutilsPlatformErrorzWe don't know how to do something on the current platform (but we do know how to do it on some platform) -- eg. trying to compile C files on a platform not supported by a CCompiler subclass.N)rrrrrrrrr8src@seZdZdZdS)DistutilsExecErrorz`Any problems executing an external program (such as the C compiler, when compiling C files).N)rrrrrrrrr>src@seZdZdZdS)DistutilsInternalErrorzoInternal inconsistencies or impossibilities (obviously, this should never be seen if the code is working!).N)rrrrrrrrrCsrc@seZdZdZdS)DistutilsTemplateErrorz%Syntax error in a file list template.N)rrrrrrrrrHsrc@seZdZdZdS)DistutilsByteCompileErrorzByte compile error.N)rrrrrrrrrKsrc@seZdZdZdS)CCompilerErrorz#Some compile/link operation failed.N)rrrrrrrrrOsrc@seZdZdZdS)PreprocessErrorz.Failure to preprocess one or more C/C++ files.N)rrrrrrrrrRsrc@seZdZdZdS) CompileErrorz2Failure to compile one or more C/C++ source files.N)rrrrrrrrrUsrc@seZdZdZdS)LibErrorzKFailure to create a static library from one or more C/C++ object files.N)rrrrrrrrrXsrc@seZdZdZdS) LinkErrorz]Failure to link one or more C/C++ object files into an executable or shared library file.N)rrrrrrrrr\src@seZdZdZdS)UnknownFileErrorz(Attempt to process an unknown file type.N)rrrrrrrrr`srN)r Exceptionrrr r r r r rrrrrrrrrrrrrrrr s& PK!DA88-__pycache__/msvccompiler.cpython-36.opt-1.pycnu[3 \\@sdZddlZddlZddlmZmZmZmZmZddl m Z m Z m Z ddl mZdZy,ddlZdZeZejZejZejZejZWnhek ry4ddlZddlZdZeZejZejZejZejZWnek rejdYnXYnXerejejej ej!fZ"d d Z#d d Z$d dZ%GdddZ&ddZ'ddZ(ddZ)Gddde Z*e'dkrej+de*Z,ddl-m*Z*ddl-m&Z&dS)zdistutils.msvccompiler Contains MSVCCompiler, an implementation of the abstract CCompiler class for the Microsoft Visual Studio. N)DistutilsExecErrorDistutilsPlatformError CompileErrorLibError LinkError) CCompilergen_preprocess_optionsgen_lib_options)logFTzWarning: Can't read registry to find the necessary compiler setting Make sure that Python modules winreg, win32api or win32con are installed.cCsnyt||}Wntk r"dSXg}d}x||j kr>|}d|}y"|j|jg| |g|gWqhtk r8}zt|WYdd}~XqhXqhn||jkrtj j|}tj j|}yl|j|jgd|d|g|gtj jtj j|\}}tj j||d}|j|jgd|g|gWqhtk r}zt|WYdd}~XqhXqhntd||fd |}y&|j|jg| | ||g|Wqhtk rj}zt|WYdd}~XqhXqhW| S) Nz/cz/Tcz/Tpz/foz-hz-rz.rcz"Don't know how to compile %s to %sz/Fo)rXrkZ_setup_compilerextendrhrgr/rMr-abspath _c_extensions_cpp_extensionsrrspawnrbrrrtdirnamercrmrqrfr`)r)Zsourcesrvr'Z include_dirsdebug extra_preargsextra_postargsZdependsZ compile_infoobjectsZpp_optsZbuildZ compile_optsobjsrcrwZ input_optZ output_optmsgZh_dirZrc_dirr_Zrc_filerrrcompileWsj              zMSVCCompiler.compilec Cs|js|j|j||\}}|j||d}|j||r|d|g}|rJy|j|jg|Wqtk r}zt|WYdd}~XqXn t j d|dS)N)rvz/OUT:zskipping %s (up-to-date)) rXrk_fix_object_argslibrary_filename _need_linkr}rZrrr r) r)rZoutput_libnamervr target_langoutput_filenameZlib_argsrrrrcreate_static_libs zMSVCCompiler.create_static_libcCs|js|j|j||\}}|j|||}|\}}}|rL|jdt|t||||}|dk rptjj ||}|j ||r|t j kr| r|j dd}q|jdd}n| r|j }n|j}g}x|pgD]}|jd|qW||||d|g}|dk rLtjjtjj|\}}tjj tjj|d|j|}|jd|| r^| |dd<| rn|j| |jtjj|y|j|jg|Wn,tk r}zt|WYdd}~XnXn tjd|dS)Nz5I don't know what to do with 'runtime_library_dirs': r z/EXPORT:z/OUT:rz/IMPLIB:zskipping %s (up-to-date))rXrkrZ _fix_lib_argswarnstrr rMr-rfrrZ EXECUTABLErjrirrmrqr~rryZmkpathr}rarrr r)r)Z target_descrrrvZ librariesZ library_dirsZruntime_library_dirsZexport_symbolsrrrZ build_temprZ fixed_argsZlib_optsZldflagsZ export_optsZsymZld_argsZdll_nameZdll_extZ implib_filerrrrlinksV       zMSVCCompiler.linkcCsd|S)Nz /LIBPATH:r)r)dirrrrlibrary_dir_optionszMSVCCompiler.library_dir_optioncCs tddS)NztjdjdD]*}tjjtjj||}tjj|rH|SqHW|S)aReturn path to an MSVC executable program. Tries to find the program in several places: first, one of the MSVC program search paths from the registry; next, the directories in the PATH environment variable. If any of those work, return an absolute path that is known to exist. If none of them work, just return the original program name, 'exe'. ZPathr\)r]rMr-rfrzisfiler^rD)r)Zexer1fnrrrr_5s   zMSVCCompiler.find_exex86cCstsgS|d}|jdkr,d|j|jf}nd|j|f}xHtD]@}t||}|r@|jdkrr|jj||jdS||jdSq@W|jdkrx,tD]$}t|d|jdk r|jd PqWgS) zGet a list of devstudio directories (include, lib or path). Return a list of strings. The list will be empty if unable to access the registry or appropriate registry keys not found. z dirsrRz6%s\%0.1f\VC\VC_OBJECTS_PLATFORM_INFO\Win32\Directoriesz?%s\6.0\Build System\Components\Platforms\Win32 (%s)\Directoriesr\r:z%s\6.0NzIt seems you have Visual Studio 6 installed, but the expected registry settings are not present. You must at least run the Visual Studio GUI once so that these entries are created.) _can_read_regrSrUr,r rVr6rDr)r)r-platformrrrrrrrdKs(        zMSVCCompiler.get_msvc_pathscCs6|dkr|jd}n |j|}|r2dj|tj|<dS)zSet environment variable 'name' to an MSVC path type value. This is equivalent to a SET command prior to execution of spawned commands. rZZlibraryr\N)rdrfrMr^)r)rr1rrrreos   zMSVCCompiler.set_path_env_var)rrr)rrl)NNNrNNN)NrN) NNNNNrNNNN)r)r)r7r8r9__doc__Z compiler_typeZ executablesr{r|rrrtrprsruZstatic_lib_extensionZshared_lib_extensionZstatic_lib_formatZshared_lib_formatZ exe_extensionr+rkrxrrrrrrrr_rdrerrrrrQsP  B  V  F  $rQg @z3Importing new compiler from distutils.msvc9compiler)rQ)r&).rrArMZdistutils.errorsrrrrrZdistutils.ccompilerrrr Z distutilsr rwinregZhkey_modZ OpenKeyExr ZEnumKeyrZ EnumValuererrorr ImportErrorZwin32apiZwin32coninfoZ HKEY_USERSHKEY_CURRENT_USERHKEY_LOCAL_MACHINEZHKEY_CLASSES_ROOTr,rr rr&rHrLrPrQrZOldMSVCCompilerZdistutils.msvc9compilerrrrrs^      - 9   PK!GPX X %__pycache__/core.cpython-36.opt-2.pycnu[3 \"@sddlZddlZddlmZddlTddlmZddlmZddl m Z ddl m Z dZ d d Zdadad3Zd4Zd.d/Zd5d1d2ZdS)6N)DEBUG)*) Distribution)Command) PyPIRCCommand) Extensionzusage: %(script)s [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...] or: %(script)s --help [cmd1 cmd2 ...] or: %(script)s --help-commands or: %(script)s cmd --help cCstjj|}ttS)N)ospathbasenameUSAGEvars) script_nameZscriptr&/usr/lib64/python3.6/distutils/core.py gen_usage s r distclassr script_argsoptionsnameversionauthor author_email maintainermaintainer_emailurllicense descriptionlong_descriptionkeywords platforms classifiers download_urlrequiresprovides obsoletessources include_dirs define_macros undef_macros library_dirs librariesruntime_library_dirs extra_objectsextra_compile_argsextra_link_args swig_optsexport_symbolsdependslanguagec,Ks|jd}|r|d=nt}d|kr8tjjtjd|d<d|krRtjdd|d<y||a}WnLtk r}z0d|krt d|nt d|d|fWYdd}~XnXt d kr|S|j t rt d |jt d kr|Sy |j}Wn:tk r*}zt t|jd |WYdd}~XnXt rBt d |jt dkrP|S|ry |jWntk rt dYntk r}z0t rtjjd|fnt d|fWYdd}~XnBttfk r }z t rnt dt|WYdd}~XnX|S)Nrr rrrzerror in setup command: %szerror in %s setup command: %sinitz%options (after parsing config files):configz error: %sz%options (after parsing command line): commandlineZ interruptedz error: %s z error: %szerror: )getrrr r sysargv_setup_distributionZDistutilsSetupError SystemExit_setup_stop_afterZparse_config_filesrprintZdump_option_dictsZparse_command_lineZDistutilsArgErrorrr Z run_commandsKeyboardInterruptOSErrorstderrwriteZDistutilsErrorZCCompilerErrorstr)ZattrsklassZdistmsgokexcrrrsetup9s`% " (   "rGruncCs|d krtd|f|atjj}d|i}yZzH|tjd<|dk rP|tjdd<t|d }t|j|WdQRXWd|t_daXWntk rYnXt dkrt d |t S) Nr4r5r6rHz"invalid value for 'stop_after': %r__file__rr3rbzZ'distutils.core.setup()' was never called -- perhaps '%s' is not a Distutils setup script?)r4r5r6rH) ValueErrorr<r8r9copyopenexecreadr;r: RuntimeError)r rZ stop_afterZ save_argvgfrrr run_setups(    rS)rr rrrrrrrrrrrrrrr r!r"r#r$)rr%r&r'r(r)r*r+r,r-r.r/r0r1r2)NrH)rr8Zdistutils.debugrZdistutils.errorsZdistutils.distrZ distutils.cmdrZdistutils.configrZdistutils.extensionrr rr<r:Zsetup_keywordsZextension_keywordsrGrSrrrr s0     qPK!yk)__pycache__/__init__.cpython-36.opt-2.pycnu[3 \@s"ddlZejdejjdZdS)N )sysversionindex __version__rr*/usr/lib64/python3.6/distutils/__init__.py sPK!(ߟ '__pycache__/config.cpython-36.opt-1.pycnu[3 \@s<dZddlZddlmZddlmZdZGdddeZdS)zdistutils.pypirc Provides the PyPIRCCommand class, the base class for the command classes that uses .pypirc in the distutils.command package. N)RawConfigParser)CommandzE[distutils] index-servers = pypi [pypi] username:%s password:%s c@sheZdZdZdZdZdZdZdddefdgZdgZ d d Z d d Z ddZ ddZ ddZddZdS) PyPIRCCommandz;Base command that knows how to handle the .pypirc file zhttps://upload.pypi.org/legacy/pypiNz repository=rzurl of repository [default: %s] show-response&display full response text from servercCstjjtjjddS)zReturns rc file path.~z.pypirc)ospathjoin expanduser)selfr(/usr/lib64/python3.6/distutils/config.py _get_rc_file&szPyPIRCCommand._get_rc_filec CsH|j}tjtj|tjtjBdd}|jt||fWdQRXdS)zCreates a default .pypirc file.iwN)rr fdopenopenO_CREATO_WRONLYwriteDEFAULT_PYPIRC)rusernamepasswordrcfrrr _store_pypirc*s zPyPIRCCommand._store_pypircc Cs|j}tjj|r|jd||jp.|j}|jp:|j}t }|j ||j }d|krR|j dd}dd|j dD}|gkrd|krdg}niSx|D]}d|i} |j |d | d <xHd |jfd |jfdfD].\} } |j|| r|j || | | <q| | | <qW|dkr.||jdfkr.|j| d <| S| d|ksH| d |kr| SqWnRd|krd}|j|d r||j |d }n|j}|j |d |j |d |||jdSiS)zReads the .pypirc file.zUsing PyPI login from %sZ distutilsz index-serverscSs g|]}|jdkr|jqS))strip).0serverrrr >sz.PyPIRCCommand._read_pypirc.. rr!r repositoryrealmrNz server-login)rrr$r!r%)rN)rr r existsZannouncer$DEFAULT_REPOSITORYr% DEFAULT_REALMrreadsectionsgetsplitZ has_option) rrr$r%configr*Z index_serversZ_serversr!Zcurrentkeydefaultrrr _read_pypirc0sX                zPyPIRCCommand._read_pypirccCs8ddl}|jdd}|j|djdd}|jj|S)z%Read and decode a PyPI HTTP response.rNz content-typez text/plaincharsetascii)cgiZ getheaderZ parse_headerr+r)decode)rZresponser4Z content_typeencodingrrr_read_pypi_responseqs z!PyPIRCCommand._read_pypi_responsecCsd|_d|_d|_dS)zInitialize options.Nr)r$r%Z show_response)rrrrinitialize_optionsxsz PyPIRCCommand.initialize_optionscCs(|jdkr|j|_|jdkr$|j|_dS)zFinalizes options.N)r$r'r%r()rrrrfinalize_options~s  zPyPIRCCommand.finalize_options)rNr)__name__ __module__ __qualname____doc__r'r(r$r%Z user_optionsZboolean_optionsrrr0r7r8r9rrrrrs"Ar)r=r Z configparserrZ distutils.cmdrrrrrrrs   PK!nQQ-__pycache__/bcppcompiler.cpython-36.opt-1.pycnu[3 \W:@sxdZddlZddlmZmZmZmZmZmZddl m Z m Z m Z ddl mZddlmZddlmZGdd d e ZdS) zdistutils.bcppcompiler Contains BorlandCCompiler, an implementation of the abstract CCompiler class for the Borland C++ compiler. N)DistutilsExecErrorDistutilsPlatformError CompileErrorLibError LinkErrorUnknownFileError) CCompilergen_preprocess_optionsgen_lib_options) write_file)newer)logc @seZdZdZdZiZdgZdddgZeeZdZ dZ d Z d Z Z d Zdd dZdddZdddZd ddZd!ddZd"ddZd#ddZdS)$ BCPPCompilerzConcrete class that implements an interface to the Borland C/C++ compiler, as defined by the CCompiler abstract class. Zbcppz.cz.ccz.cppz.cxxz.objz.libz.dllz%s%sz.exercCstj||||d|_d|_d|_d|_ddddg|_ddddg|_d d dd g|_d d dd g|_ g|_ d dd g|_ d dd d g|_ dS) Nz bcc32.exez ilink32.exeztlib.exez/tWMz/O2z/qz/g0z/Odz/Tpdz/Gnz/xz/r) r__init__cclinkerlibZpreprocess_optionscompile_optionscompile_options_debugldflags_sharedldflags_shared_debugZldflags_static ldflags_exeldflags_exe_debug)selfverboseZdry_runforcer./usr/lib64/python3.6/distutils/bcppcompiler.pyr5s zBCPPCompiler.__init__Nc Cs|j||||||\}} }} } |p$g} | jd|rB| j|jn | j|jxD| D]:} y| | \}}Wntk rwVYnXtjj|}tjj| } |j tjj | |dkrqV|dkry|j dd| |gWqVt k r}zt |WYdd}~XqVXqV||jkrd}n||jkr,d}nd}d| }y,|j |jg| | ||g||gWqVt k r}zt |WYdd}~XqVXqVW| S) Nz-cz.resz.rcZbrcc32z-foz-Pz-o)Z_setup_compileappendextendrrKeyErrorospathnormpathmkpathdirnamespawnrr _c_extensions_cpp_extensionsr)rZsources output_dirmacros include_dirsdebug extra_preargsextra_postargsZdependsobjectspp_optsZbuildZ compile_optsobjsrcextmsgZ input_optZ output_optrrrcompileQsF        (zBCPPCompiler.compilec Cs|j||\}}|j||d}|j||r~|dg|}|r:y|j|jg|Wqtk rz}zt|WYdd}~XqXn tjd|dS)N)r*z/uzskipping %s (up-to-date)) _fix_object_argslibrary_filename _need_linkr'rrrr r-) rr0Zoutput_libnamer*r- target_langoutput_filenameZlib_argsr5rrrcreate_static_libs  zBCPPCompiler.create_static_libc Cs|j||\}}|j|||\}}}|r8tjdt||dk rNtjj||}|j||r|t j krd}| r~|j dd}q|j dd}n&d}| r|j dd}n|jdd}|dkrd}ntjj|\}}tjj|\}}tjj|d}tjj|d|}dg}x&|pgD]}|jd||fqW|jt||fd |ttjj|}|g}g}xF|D]>}tjjtjj|\}}|d kr|j|n |j|qfWx$|D]}|jd tjj|qW|jd |j||jd |g|jdx<|D]4}|j||| }|dkr(|j|n |j|qW|jd|jd|jd |g|jd |j|| r| |dd<| r|j| |jtjj|y|j|jg|Wn,tk r}zt|WYdd}~XnXn tjd|dS)Nz7I don't know what to do with 'runtime_library_dirs': %sZc0w32Zc0d32rrz%s.defZEXPORTSz %s=_%sz writing %sz.resz/L%sz/L.,z,,Zimport32Zcw32mtzskipping %s (up-to-date)) r7Z _fix_lib_argsr warnstrr"r#joinr9rZ EXECUTABLErrrrsplitsplitextr&rZexecuter mapr$normcaser find_library_filer%r'rrrr-) rZ target_descr0r;r*Z librariesZ library_dirsZruntime_library_dirsZexport_symbolsr-r.r/Z build_tempr:Z startup_objZld_argsZdef_fileheadtailmodnamer4Ztemp_dircontentsZsymZobjects2Z resourcesfilebaselrlibfiler5rrrlinks|                    zBCPPCompiler.linkc Csv|r"|d}|d|d||f}n |d|f}xB|D]6}x0|D](}tjj||j|}tjj|r>|Sq>Wq4WdSdS)NZ_dZ_bcpp)r"r#r@r8exists) rdirsrr-ZdlibZ try_namesdirnamerMrrrrE4s      zBCPPCompiler.find_library_filercCs|dkr d}g}x|D]}tjjtjj|\}}||jddgkrTtd||f|rdtjj|}|dkr|jtjj|||q|dkr|jtjj||dq|jtjj|||j qW|S)Nrz.rcz.resz"unknown file type '%s' (from '%s')) r"r#rBrDsrc_extensionsrbasenamerr@ obj_extension)rZsource_filenamesZ strip_dirr*Z obj_namesZsrc_namerKr4rrrobject_filenamesNs"    zBCPPCompiler.object_filenamesc Cs|jd||\}}}t||}dg|} |dk r>| jd||rN|| dd<|r\| j|| j||js~|dks~t||r|r|jtjj |y|j | Wn2t k r} zt | t | WYdd} ~ XnXdS)Nz cpp32.exez-or)Z_fix_compile_argsr rr rr r%r"r#r&r'rprintr) rsourceZ output_filer+r,r.r/_r1Zpp_argsr5rrr preprocessis$      zBCPPCompiler.preprocess)rrr)NNNrNNN)NrN) NNNNNrNNNN)r)rr)NNNNN)__name__ __module__ __qualname____doc__Z compiler_typeZ executablesr(r)rSrUZstatic_lib_extensionZshared_lib_extensionZstatic_lib_formatZshared_lib_formatZ exe_extensionrr6r<rNrErVrZrrrrrsJ   B  |  r)r^r"Zdistutils.errorsrrrrrrZdistutils.ccompilerrr r Zdistutils.file_utilr Zdistutils.dep_utilr Z distutilsr rrrrrs     PK!q))'__pycache__/fancy_getopt.cpython-36.pycnu[3 \xE@sdZddlZddlZddlZddlZddlTdZejdeZejdeefZ e j ddZ Gd d d Z d d Zd dejDZddZddZGdddZedkrdZx2dD]*ZedeedjeeeeqWdS)a6distutils.fancy_getopt Wrapper around the standard getopt module that provides the following additional features: * short and long options are tied together * options have help strings, so fancy_getopt could potentially create a complete usage summary * options set attributes of a passed-in object N)*z[a-zA-Z](?:[a-zA-Z0-9-]*)z^%s$z ^(%s)=!(%s)$-_c@seZdZdZdddZddZddZd d d Zd d Zd dZ ddZ ddZ ddZ ddZ d!ddZddZd"ddZd#ddZdS)$ FancyGetoptaWrapper around the standard 'getopt()' module that provides some handy extra functionality: * short and long options are tied together * options have help strings, and help text can be assembled from them * options set attributes of a passed-in object * boolean options can have "negative aliases" -- eg. if --quiet is the "negative alias" of --verbose, then "--quiet" on the command line sets 'verbose' to false NcCsN||_i|_|jr|ji|_i|_g|_g|_i|_i|_i|_ g|_ dS)N) option_table option_index _build_indexaliasnegative_alias short_opts long_opts short2long attr_name takes_arg option_order)selfrr./usr/lib64/python3.6/distutils/fancy_getopt.py__init__)s zFancyGetopt.__init__cCs,|jjx|jD]}||j|d<qWdS)Nr)rclearr)roptionrrrrQs  zFancyGetopt._build_indexcCs||_|jdS)N)rr)rrrrrset_option_tableVszFancyGetopt.set_option_tablecCs<||jkrtd|n |||f}|jj|||j|<dS)Nz'option conflict: already an option '%s')rDistutilsGetoptErrorrappend)r long_optionZ short_optionZ help_stringrrrr add_optionZs     zFancyGetopt.add_optioncCs ||jkS)zcReturn true if the option table for this parser has an option with long name 'long_option'.)r)rrrrr has_optioncszFancyGetopt.has_optioncCs |jtS)zTranslate long option name 'long_option' to the form it has as an attribute of some object: ie., translate hyphens to underscores.) translate longopt_xlate)rrrrr get_attr_namehszFancyGetopt.get_attr_namecCs`t|tstxL|jD]@\}}||jkr= 2Nz:invalid short option '%s': must a single character or None=:z>invalid negative alias '%s': aliased option '%s' takes a valuezginvalid alias '%s': inconsistent with aliased option '%s' (one of them takes a value, the other doesn'tzEinvalid long option name '%s' (must be letters, numbers, hyphens onlyr/r/)r r r rrepeatrlen ValueErrorr strrrrr getr longopt_rematchrr)rrlongshorthelpr0Zalias_torrr_grok_option_tables^                   zFancyGetopt._grok_option_tablec Cs|dkrtjdd}|dkr*t}d}nd}|jdj|j}ytj|||j\}}Wn,tjk r}zt |WYdd}~XnXx|D]\}}t |dkr|ddkr|j |d}n,t |dkr|ddd kst |dd}|j j|} | r| }|j|sB|d ks"t d |jj|} | r>| }d}nd}|j|} |rt|jj| dk rtt|| dd}t|| ||jj||fqW|r||fS|SdS) aParse command-line options in args. Store as attributes on object. If 'args' is None or not supplied, uses 'sys.argv[1:]'. If 'object' is None or not supplied, creates a new OptionDummy object, stores option values there, and returns a tuple (args, object). If 'object' is supplied, it is modified in place and 'getopt()' just returns 'args'; in both cases, the returned 'args' is a modified copy of the passed-in 'args' list, which is left untouched. Nr,TF r+rrz--zboolean option can't have value)sysargv OptionDummyr:joinr getoptr errorZDistutilsArgErrorr1r r"r r4rr rr0getattrsetattrrr) rargsobjectZcreated_objectr Zoptsmsgr%valr attrrrrrAsF         zFancyGetopt.getoptcCs|jdkrtdn|jSdS)zReturns the list of (option, value) tuples processed by the previous run of 'getopt()'. Raises RuntimeError if 'getopt()' hasn't been called yet. Nz!'getopt()' hasn't been called yet)r RuntimeError)rrrrget_option_orders  zFancyGetopt.get_option_ordercCsxd}xV|jD]L}|d}|d}t|}|ddkr<|d}|dk rL|d}||kr |}q W|ddd}d}||} d|} |r|g} nd g} x|jD]}|dd \}}} t| | } |ddkr|dd}|dkr| r| jd ||| dfn| jd ||fn:d ||f}| r<| jd ||| dfn| jd|x$| ddD]}| j| |qXWqW| S)zGenerate help text (a list of strings, one per suggested line of output) from the option table for this FancyGetopt object. rr,r-Nr+Nr;zOption summary:r)z --%-*s %sz --%-*s z%s (-%s)z --%-*sr/r/r/)rr1 wrap_textr)rheaderZmax_optrr7r8lZ opt_widthZ line_widthZ text_widthZ big_indentlinesr9textZ opt_namesrrr generate_helpsF        zFancyGetopt.generate_helpcCs4|dkrtj}x |j|D]}|j|dqWdS)N )r=stdoutrSwrite)rrOfilelinerrr print_helphszFancyGetopt.print_help)N)NN)NN)N)NN)__name__ __module__ __qualname____doc__rrrrrrr&r'r(r:rArKrSrYrrrrrs  (  M = OrcCst|}|j||j||S)N)rr(rA)optionsZ negative_optrFrEparserrrr fancy_getoptos r`cCsi|]}dt|qS)r;)ord).0Z_wscharrrr usrccCs"|dkr gSt||kr|gS|j}|jt}tjd|}dd|D}g}x|rg}d}xZ|rt|d}|||kr|j|d|d=||}q`|r|d ddkr|d =Pq`W|r |dkr|j|dd||d|d|d<|dddkr |d=|jdj|qPW|S) zwrap_text(text : string, width : int) -> [string] Split 'text' into multiple lines of no more than 'width' characters each, and return the list of strings that results. Nz( +|-+)cSsg|] }|r|qSrr)rbZchrrr szwrap_text..rr,r;r<r/r/)r1 expandtabsrWS_TRANSresplitrr@)rRwidthZchunksrQZcur_lineZcur_lenrPrrrrNws:      rNcCs |jtS)zXConvert a long option name to a valid Python identifier by changing "-" to "_". )rr)r%rrrtranslate_longoptsrjc@seZdZdZgfddZdS)r?z_Dummy class just used as a place to hold command-line option values as instance attributes.cCsx|D]}t||dqWdS)zkCreate a new OptionDummy instance. The attributes listed in 'options' will be initialized to None.N)rD)rr^r%rrrrs zOptionDummy.__init__N)rZr[r\r]rrrrrr?sr?__main__zTra-la-la, supercalifragilisticexpialidocious. How *do* you spell that odd word, anyways? (Someone ask Mary -- she'll know [or she'll say, "How should I know?"].) (z width: %drT)rlrmrnro)r]r=stringrgrAZdistutils.errorsZ longopt_patcompiler5Z neg_alias_rer3 maketransrrr`Z whitespacerfrNrjr?rZrRwprintr@rrrr s* T6   PK! &__pycache__/debug.cpython-36.opt-1.pycnu[3 \@sddlZejjdZdS)NZDISTUTILS_DEBUG)osenvirongetDEBUGrr'/usr/lib64/python3.6/distutils/debug.pysPK!D;^AA*__pycache__/ccompiler.cpython-36.opt-2.pycnu[3 \7@sddlZddlZddlZddlTddlmZddlmZddlm Z ddl m Z m Z ddl mZmZddlmZGd d d Zd,Zd-ddZd.d/d0d1d2d Zd!d"Zd3d#d$Zd%d&Zd'd(ZdS)4N)*)spawn) move_file)mkpath)newer_pairwise newer_group) split_quotedexecute)logc @seZdZdZdZdZdZdZdZdZ dZ ddddddZ dddgZ dpddZ d d Zd d Zd dZddZdqddZddZddZddZddZddZddZdd Zd!d"Zd#d$Zd%d&Zd'd(Zd)d*Zd+d,Zd-d.Z drd/d0Z!d1d2Z"d3d4Z#d5d6Z$d7d8Z%dsd9d:Z&dtd;d<Z'd=d>Z(dud?d@Z)dAZ*dBZ+dCZ,dvdDdEZ-dwdFdGZ.dxdHdIZ/dydJdKZ0dLdMZ1dNdOZ2dPdQZ3dzdRdSZ4d{dTdUZ5d|dWdXZ6d}dYdZZ7d~d[d\Z8dd^d_Z9ddadbZ:dcddZ;dedfZdkdlZ?ddndoZ@dS) CCompilerNczc++Zobjc)z.cz.ccz.cppz.cxxz.mrcCsf||_||_||_d|_g|_g|_g|_g|_g|_g|_ x$|j j D]}|j ||j |qHWdS)N) dry_runforceverbose output_dirmacros include_dirs libraries library_dirsruntime_library_dirsobjects executableskeysset_executable)selfrr rkeyr+/usr/lib64/python3.6/distutils/ccompiler.py__init__UszCCompiler.__init__cKs@x:|D]2}||jkr(td||jjf|j|||qWdS)Nz$unknown executable '%s' for class %s)r ValueError __class____name__r)rkwargsrrrrset_executablesys   zCCompiler.set_executablescCs,t|trt||t|n t|||dS)N) isinstancestrsetattrr)rrvaluerrrrs zCCompiler.set_executablecCs0d}x&|jD]}|d|kr |S|d7}q WdS)Nr)r)rnameidefnrrr _find_macros    zCCompiler._find_macrocCsdx^|D]V}t|toFt|dkoFt|dts:|ddkoFt|dtstd|ddqWdS)Nr(rzinvalid macro definition '%s': z.must be tuple (string,), (string, string), or z(string, None))r(r-)r$tuplelenr% TypeError)rZ definitionsr+rrr_check_macro_definitionss    z"CCompiler._check_macro_definitionscCs.|j|}|dk r|j|=|jj||fdS)N)r,rappend)rr)r'r*rrr define_macros zCCompiler.define_macrocCs0|j|}|dk r|j|=|f}|jj|dS)N)r,rr2)rr)r*Zundefnrrrundefine_macros zCCompiler.undefine_macrocCs|jj|dS)N)rr2)rdirrrradd_include_dirszCCompiler.add_include_dircCs|dd|_dS)N)r)rdirsrrrset_include_dirsszCCompiler.set_include_dirscCs|jj|dS)N)rr2)rlibnamerrr add_libraryszCCompiler.add_librarycCs|dd|_dS)N)r)rZlibnamesrrr set_librariesszCCompiler.set_librariescCs|jj|dS)N)rr2)rr5rrradd_library_dirszCCompiler.add_library_dircCs|dd|_dS)N)r)rr7rrrset_library_dirs szCCompiler.set_library_dirscCs|jj|dS)N)rr2)rr5rrradd_runtime_library_dirsz!CCompiler.add_runtime_library_dircCs|dd|_dS)N)r)rr7rrrset_runtime_library_dirssz"CCompiler.set_runtime_library_dirscCs|jj|dS)N)rr2)robjectrrradd_link_object szCCompiler.add_link_objectcCs|dd|_dS)N)r)rrrrrset_link_objects(szCCompiler.set_link_objectscCs|dkr|j}nt|ts"td|dkr2|j}n"t|trL||jpFg}ntd|dkrd|j}n*t|ttfrt||jpg}ntd|dkrg}|j|d|d}t ||}i} xRt t |D]B} || } || } t j j| d} |jt j j| | | f| | <qW||||| fS)Nz%'output_dir' must be a string or Nonez/'macros' (if supplied) must be a list of tuplesz6'include_dirs' (if supplied) must be a list of stringsr) strip_dirrr()rr$r%r0rlistrr.object_filenamesgen_preprocess_optionsranger/ospathsplitextrdirname)rZoutdirrZincdirssourcesdependsZextrarpp_optsbuildr*srcobjextrrr_setup_compile6s8   zCCompiler._setup_compilecCs0|dg}|rdg|dd<|r,||dd<|S)Nz-cz-grr)rrNdebugZbeforecc_argsrrr _get_cc_argsas   zCCompiler._get_cc_argscCs|dkr|j}nt|ts"td|dkr2|j}n"t|trL||jpFg}ntd|dkrd|j}n*t|ttfrt||jpg}ntd|||fS)Nz%'output_dir' must be a string or Nonez/'macros' (if supplied) must be a list of tuplesz6'include_dirs' (if supplied) must be a list of strings)rr$r%r0rrDrr.)rrrrrrr_fix_compile_argsjs   zCCompiler._fix_compile_argscCs|j||d}|ifS)N)r)rE)rrLrrMrrrr _prep_compiles zCCompiler._prep_compilecCsHt|ttfstdt|}|dkr.|j}nt|ts@td||fS)Nz,'objects' must be a list or tuple of stringsz%'output_dir' must be a string or None)r$rDr.r0rr%)rrrrrr_fix_object_argss zCCompiler._fix_object_argscCs|dkr|j}n*t|ttfr2t||jp,g}ntd|dkrJ|j}n*t|ttfrlt||jpfg}ntd|dkr|j}n*t|ttfrt||jpg}ntd|||fS)Nz3'libraries' (if supplied) must be a list of stringsz6'library_dirs' (if supplied) must be a list of stringsz>'runtime_library_dirs' (if supplied) must be a list of strings)rr$rDr.r0rr)rrrrrrr _fix_lib_argss&zCCompiler._fix_lib_argscCs2|jr dS|jr t||dd}n t||}|SdS)NTnewer)Zmissing)rr r)rr output_filer[rrr _need_links  zCCompiler._need_linkc Cst|ts|g}d}t|j}x^|D]V}tjj|\}}|jj|}y |jj |}||krb|}|}Wq$t k rxYq$Xq$W|S)N) r$rDr/language_orderrHrIrJ language_mapgetindexr) rrLZlangrasourcebaserRZextlangZextindexrrrdetect_languages      zCCompiler.detect_languagecCsdS)Nr)rrbr\rr extra_preargsextra_postargsrrr preprocesss zCCompiler.preprocessc Csz|j||||||\}} }} } |j| ||} xH| D]@} y| | \}}Wntk r\w2YnX|j| ||| || q2W| S)N)rSrVKeyError_compile)rrLrrrrTrerfrMrrNrOrUrQrPrRrrrcompiles6  zCCompiler.compilecCsdS)Nr)rrQrPrRrUrfrNrrrriCszCCompiler._compilecCsdS)Nr)rroutput_libnamerrT target_langrrrcreate_static_libIszCCompiler.create_static_libZ shared_objectZshared_library executablecCstdS)N)NotImplementedError)rZ target_descroutput_filenamerrrrexport_symbolsrTrerf build_temprlrrrlinkis9zCCompiler.linkc Cs2|jtj||j|dd||||||| | | | dS)Nshared)lib_type)rsr SHARED_LIBRARYlibrary_filename) rrrkrrrrrqrTrerfrrrlrrrlink_shared_libs  zCCompiler.link_shared_libc Cs(|jtj||||||||| | | | dS)N)rsr SHARED_OBJECT) rrrprrrrrqrTrerfrrrlrrrlink_shared_objects zCCompiler.link_shared_objectc Cs.|jtj||j|||||d||| d| dS)N)rsr EXECUTABLEexecutable_filename) rrZoutput_prognamerrrrrTrerfrlrrrlink_executables  zCCompiler.link_executablecCstdS)N)ro)rr5rrrlibrary_dir_optionszCCompiler.library_dir_optioncCstdS)N)ro)rr5rrrruntime_library_dir_optionsz$CCompiler.runtime_library_dir_optioncCstdS)N)ro)rlibrrrlibrary_optionszCCompiler.library_optionc Csddl}|dkrg}|dkr g}|dkr,g}|dkr8g}|jd|dd\}}tj|d} z.x|D]} | jd| q`W| jd|Wd| jXy|j|g|d} Wntk rd SXy|j| d ||d Wnt t fk rd SXdS) Nrz.cT)textwz#include "%s" z+main (int argc, char **argv) { %s(); } )rFza.out)rr) tempfileZmkstemprHfdopenwritecloserjZ CompileErrorr}Z LinkErrorr0) rfuncnameZincludesrrrrfdZfnamefZinclrrrr has_functions8     zCCompiler.has_functioncCstdS)N)ro)rr7rrTrrrfind_library_file#szCCompiler.find_library_filecCs|dkr d}g}x|D]|}tjj|\}}tjj|d}|tjj|d}||jkrhtd||f|rxtjj|}|jtjj |||j qW|S)Nrr(z"unknown file type '%s' (from '%s')) rHrIrJ splitdriveisabssrc_extensionsZUnknownFileErrorbasenamer2join obj_extension)rZsource_filenamesrCrZ obj_namesZsrc_namercrRrrrrENs    zCCompiler.object_filenamescCs$|rtjj|}tjj|||jS)N)rHrIrrshared_lib_extension)rrrCrrrrshared_object_filename_s z CCompiler.shared_object_filenamecCs(|rtjj|}tjj|||jp"dS)Nr)rHrIrr exe_extension)rrrCrrrrr|es zCCompiler.executable_filenamestaticc Cs`|d krtdt||d}t||d}tjj|\}}|||f} |rPd}tjj||| S) Nrrtdylib xcode_stubz?'lib_type' must be "static", "shared", "dylib", or "xcode_stub"Z _lib_formatZ_lib_extensionr)rrtrr)rgetattrrHrIsplitr) rr9rurCrZfmtrRr5rcfilenamerrrrwks zCCompiler.library_filenamer(cCstj|dS)N)r rT)rmsglevelrrrannounce~szCCompiler.announcecCsddlm}|rt|dS)Nr)DEBUG)Zdistutils.debugrprint)rrrrrr debug_prints zCCompiler.debug_printcCstjjd|dS)Nz warning: %s )sysstderrr)rrrrrwarnszCCompiler.warncCst||||jdS)N)r r )rfuncargsrrrrrr szCCompiler.executecCst||jddS)N)r )rr )rcmdrrrrszCCompiler.spawncCst|||jdS)N)r )rr )rrPdstrrrrszCCompiler.move_filecCst|||jddS)N)r )rr )rr)moderrrrszCCompiler.mkpath)rrr)N)N)NNNNN)NNNrNNN)NrN) NNNNNrNNNN) NNNNNrNNNN) NNNNNrNNNN)NNNNrNNN)NNNN)r)rr)rr)rr)rrr)r()Nr()r)Ar! __module__ __qualname__Z compiler_typerrZstatic_lib_extensionrZstatic_lib_formatZshared_lib_formatrr_r^rr#rr,r1r3r4r6r8r:r;r<r=r>r?rArBrSrVrWrXrYrZr]rdrgrjrirmryrvr{rsrxrzr}r~rrrrrErr|rwrrrr rrrrrrrr s  $   +  "   B  4    * +      r cygwin.*unixposixntmsvccCsV|dkrtj}|dkrtj}x4tD],\}}tj||dk sJtj||dk r"|Sq"WdS)Nr)rHr)rplatform_default_compilersrematch)osnamerpatterncompilerrrrget_default_compilers r unixccompiler UnixCCompilerstandard UNIX-style compiler _msvccompiler MSVCCompilerMicrosoft Visual C++cygwinccompilerCygwinCCompiler'Cygwin port of GNU C Compiler for Win32Mingw32CCompiler(Mingw32 port of GNU C Compiler for Win32 bcppcompiler BCPPCompilerBorland C++ Compiler)rrcygwinZmingw32ZbcppcCs\ddlm}g}x,tjD] }|jd|dt|dfqW|j||}|jddS)Nr) FancyGetoptz compiler=r-zList of available compilers:)Zdistutils.fancy_getoptrcompiler_classrr2sortZ print_help)rZ compilersrZpretty_printerrrrshow_compilerss  rc Cs|dkrtj}y"|dkr t|}t|\}}}Wn8tk rhd|}|dk r\|d|}t|YnXy*d|}t|tj|} t | |} WnBt k rt d|Yn$tk rt d||fYnX| d||S)Nz5don't know how to compile C/C++ code on platform '%s'z with '%s' compilerz distutils.z4can't compile C/C++ code: unable to load module '%s'zBcan't compile C/C++ code: unable to find class '%s' in module '%s') rHr)rrrhZDistutilsPlatformError __import__rmodulesvars ImportErrorZDistutilsModuleError) Zplatrrr rZ module_name class_nameZlong_descriptionrmoduleklassrrr new_compilers2    rcCsg}x|D]}t|to2dt|ko.dkns@td|t|dkr`|jd|dq t|dkr |ddkr|jd|dq |jd|q Wx|D]}|jd|qW|S) Nr(r-zPbad macro definition '%s': each element of 'macros' list must be a 1- or 2-tuplez-U%srz-D%sz-D%s=%sz-I%s)r$r.r/r0r2)rrrNZmacror5rrrrF s &    rFc Csg}x|D]}|j|j|q Wx4|D],}|j|}t|trJ||}q(|j|q(Wx^|D]V}tjj|\}} |r|j|g| } | r|j| q|j d|q^|j|j |q^W|S)Nz6no library file corresponding to '%s' found (skipping)) r2r~rr$rDrHrIrrrr) rrrrZlib_optsr5optrZlib_dirZlib_nameZlib_filerrrgen_lib_options7s$        rrrrrrr)rrr)NN)rrr)rrr)rrr)rrr)rrr)NNrrr)rrHrZdistutils.errorsZdistutils.spawnrZdistutils.file_utilrZdistutils.dir_utilrZdistutils.dep_utilrrZdistutils.utilrr Z distutilsr r rrrrrrFrrrrrsB      --PK!W6=__pycache__/log.cpython-36.pycnu[3 \@sldZdZdZdZdZdZddlZGdd d ZeZej Z ej Z ej Z ej Z ej Z ejZd d Zd d ZdS)z,A simple log mechanism styled after PEP 282.Nc@sPeZdZefddZddZddZddZd d Zd d Z d dZ ddZ dS)LogcCs ||_dS)N) threshold)selfrr %/usr/lib64/python3.6/distutils/log.py__init__sz Log.__init__c Cs|tttttfkr"tdt|||jkr|r8||}|tttfkrNtj }ntj }y|j d|Wn:t k r|j }|j|dj|}|j d|YnX|jdS)Nz%s wrong log levelz%s backslashreplace)DEBUGINFOWARNERRORFATAL ValueErrorstrrsysstderrstdoutwriteUnicodeEncodeErrorencodingencodedecodeflush)r levelmsgargsstreamrr r r _logs zLog._logcGs|j|||dS)N)r")r rrr r r r log'szLog.logcGs|jt||dS)N)r"r)r rr r r r debug*sz Log.debugcGs|jt||dS)N)r"r)r rr r r r info-szLog.infocGs|jt||dS)N)r"r)r rr r r r warn0szLog.warncGs|jt||dS)N)r"r)r rr r r r error3sz Log.errorcGs|jt||dS)N)r"r)r rr r r r fatal6sz Log.fatalN) __name__ __module__ __qualname__rr r"r#r$r%r&r'r(r r r r rs rcCstj}|t_|S)N) _global_logr)roldr r r set_thresholdAsr.cCs8|dkrttn"|dkr$ttn|dkr4ttdS)Nrrr)r.rrr)vr r r set_verbosityGs   r0)__doc__rrrrrrrr,r#r$r%r&r'r(r.r0r r r r s +PK!eo  '__pycache__/config.cpython-36.opt-2.pycnu[3 \@s8ddlZddlmZddlmZdZGdddeZdS)N)RawConfigParser)CommandzE[distutils] index-servers = pypi [pypi] username:%s password:%s c@sdeZdZdZdZdZdZdddefdgZdgZd d Z d d Z d dZ ddZ ddZ ddZdS) PyPIRCCommandzhttps://upload.pypi.org/legacy/pypiNz repository=rzurl of repository [default: %s] show-response&display full response text from servercCstjjtjjddS)N~z.pypirc)ospathjoin expanduser)selfr(/usr/lib64/python3.6/distutils/config.py _get_rc_file&szPyPIRCCommand._get_rc_filec CsH|j}tjtj|tjtjBdd}|jt||fWdQRXdS)Niw)rr fdopenopenO_CREATO_WRONLYwriteDEFAULT_PYPIRC)rusernamepasswordrcfrrr _store_pypirc*s zPyPIRCCommand._store_pypircc Cs|j}tjj|r|jd||jp.|j}|jp:|j}t }|j ||j }d|krR|j dd}dd|j dD}|gkrd|krdg}niSx|D]}d|i} |j |d | d <xHd |jfd |jfdfD].\} } |j|| r|j || | | <q| | | <qW|dkr.||jdfkr.|j| d <| S| d|ksH| d |kr| SqWnRd |krd }|j|d r||j |d }n|j}|j |d |j |d |||jdSiS)NzUsing PyPI login from %sZ distutilsz index-serverscSs g|]}|jdkr|jqS))strip).0serverrrr >sz.PyPIRCCommand._read_pypirc.. rr!r repositoryrealmrz server-login)rrr$r!r%)rN)rr r existsZannouncer$DEFAULT_REPOSITORYr% DEFAULT_REALMrreadsectionsgetsplitZ has_option) rrr$r%configr*Z index_serversZ_serversr!Zcurrentkeydefaultrrr _read_pypirc0sX                zPyPIRCCommand._read_pypirccCs8ddl}|jdd}|j|djdd}|jj|S)Nrz content-typez text/plaincharsetascii)cgiZ getheaderZ parse_headerr+r)decode)rZresponser4Z content_typeencodingrrr_read_pypi_responseqs z!PyPIRCCommand._read_pypi_responsecCsd|_d|_d|_dS)Nr)r$r%Z show_response)rrrrinitialize_optionsxsz PyPIRCCommand.initialize_optionscCs(|jdkr|j|_|jdkr$|j|_dS)N)r$r'r%r()rrrrfinalize_options~s  zPyPIRCCommand.finalize_options)rNr)__name__ __module__ __qualname__r'r(r$r%Z user_optionsZboolean_optionsrrr0r7r8r9rrrrrs Ar)r Z configparserrZ distutils.cmdrrrrrrrs  PK!0Ah(__pycache__/version.cpython-36.opt-2.pycnu[3 \90@s:ddlZGdddZGdddeZGdddeZdS)Nc@sFeZdZdddZddZddZdd Zd d Zd d ZddZ dS)VersionNcCs|r|j|dS)N)parse)selfvstringr)/usr/lib64/python3.6/distutils/version.py__init__&szVersion.__init__cCsd|jjt|fS)Nz %s ('%s')) __class____name__str)rrrr__repr__*szVersion.__repr__cCs|j|}|tkr|S|dkS)Nr)_cmpNotImplemented)rothercrrr__eq__-s zVersion.__eq__cCs|j|}|tkr|S|dkS)Nr)r r)rrrrrr__lt__3s zVersion.__lt__cCs|j|}|tkr|S|dkS)Nr)r r)rrrrrr__le__9s zVersion.__le__cCs|j|}|tkr|S|dkS)Nr)r r)rrrrrr__gt__?s zVersion.__gt__cCs|j|}|tkr|S|dkS)Nr)r r)rrrrrr__ge__Es zVersion.__ge__)N) r __module__ __qualname__rr rrrrrrrrrrs rc@s8eZdZejdejejBZddZddZ ddZ dS) StrictVersionz)^(\d+) \. (\d+) (\. (\d+))? ([ab](\d+))?$cCs|jj|}|std||jddddd\}}}}}|rTttt|||g|_nttt||gd|_|r|dt|f|_nd|_dS) Nzinvalid version number '%s'r)r) version_rematch ValueErrorgrouptuplemapintversion prerelease)rrrmajorminorZpatchr&Zprerelease_numrrrrs  zStrictVersion.parsecCsb|jddkr*djtt|jdd}ndjtt|j}|jr^||jdt|jd}|S)Nrr.r)r%joinr#r r&)rrrrr__str__s zStrictVersion.__str__cCst|trt|}|j|jkr2|j|jkr.dSdS|j rF|j rFdS|jrX|j rXdS|j rj|jrjdS|jr|jr|j|jkrdS|j|jkrdSdSndS)Nrrr,r,) isinstancer rr%r&)rrrrrr s&      zStrictVersion._cmpN) r rrrecompileVERBOSEASCIIrrr+r rrrrr]s % rc@sDeZdZejdejZd ddZddZddZ d d Z d d Z dS) LooseVersionz(\d+ | [a-z]+ | \.)NcCs|r|j|dS)N)r)rrrrrr.szLooseVersion.__init__c Csb||_dd|jj|D}x:t|D].\}}yt|||<Wq&tk rRYq&Xq&W||_dS)NcSsg|]}|r|dkr|qS)r)r).0xrrr 8sz&LooseVersion.parse..)r component_resplit enumerater$r r%)rrZ componentsiobjrrrr3s zLooseVersion.parsecCs|jS)N)r)rrrrr+CszLooseVersion.__str__cCs dt|S)NzLooseVersion ('%s'))r )rrrrr GszLooseVersion.__repr__cCsFt|trt|}|j|jkr"dS|j|jkr2dS|j|jkrBdSdS)Nrrr,)r-r r2r%)rrrrrr Ks    zLooseVersion._cmp)N) r rrr.r/r0r6rrr+r r rrrrr2 s ! r2)r.rrr2rrrrs>/PK!f7-__pycache__/archive_util.cpython-36.opt-2.pycnu[3 \F! @s@ddlZddlmZddlZy ddlZWnek r@dZYnXddlmZddlm Z ddl m Z ddl m Z yddlmZWnek rdZYnXyddlmZWnek rdZYnXd d Zd d Zd ddZd!ddZed"gdfed#gdfed$gdfed%gdfed&gdfegdfdZddZd'ddZdS)(N)warn)DistutilsExecError)spawn)mkpath)log)getpwnam)getgrnamc CsNtdks|dkrdSy t|}Wntk r8d}YnX|dk rJ|dSdS)N)rKeyError)nameresultr ./usr/lib64/python3.6/distutils/archive_util.py_get_gids  rc CsNtdks|dkrdSy t|}Wntk r8d}YnX|dk rJ|dSdS)Nr )rr )r r r r r_get_uid+s  rgzipc s.dddddd}dddd d }|dk r:||jkr:td |d } |d krZ| |j|d7} ttjj| |dddl} tj dt t fdd} |s| j | d||} z| j || dWd| jX|d kr*tdt| ||} tjdkr|| | g}n |d| g}t||d| S| S)NZgzbz2xz)rbzip2rNcompressz.gzz.bz2z.xzz.Z)rrrrzKbad value for 'compress': must be None, 'gzip', 'bzip2', 'xz' or 'compress'z.tarr)dry_runrzCreating tar archivecs,dk r|_|_dk r(|_|_|S)N)gidZgnameuiduname)Ztarinfo)rgroupownerrr r _set_uid_gidasz"make_tarball.._set_uid_gidzw|%s)filterz'compress' will be deprecated.Zwin32z-f)keys ValueErrorgetrospathdirnametarfilerinforropenaddcloserPendingDeprecationWarningsysplatformr) base_namebase_dirrverboserrrZtar_compressionZ compress_extZ archive_namer%rtarZcompressed_namecmdr )rrrrr make_tarball7s<          r2c Cs|d}ttjj||dtdkrp|r.d}nd}ytd|||g|dWn tk rjtd|YnXn:tjd|||sytj |dtj d }Wn&t k rtj |dtj d }YnX|tj krtjjtjj|d }|j||tjd |xtj|D]\}} } x>| D]6} tjjtjj|| d }|j||tjd |qWxJ| D]B} tjjtjj|| }tjj|rV|j||tjd |qVWqW|j|S) Nz.zip)rz-rz-rqzipzkunable to create zip file '%s': could neither import the 'zipfile' module nor find a standalone zip utilityz#creating '%s' and adding '%s' to itw)Z compressionrz adding '%s')rr"r#r$zipfilerrrr&ZZipFileZ ZIP_DEFLATED RuntimeErrorZ ZIP_STOREDcurdirnormpathjoinwritewalkisfiler)) r-r.r/rZ zip_filenameZ zipoptionsr3r#dirpathZdirnames filenamesr r r r make_zipfilesJ          r?rzgzip'ed tar-filerzbzip2'ed tar-filerzxz'ed tar-filezcompressed tar filezuncompressed tar filezZIP file)ZgztarZbztarZxztarZztarr0r3cCsx|D]}|tkr|SqWdS)N)ARCHIVE_FORMATS)Zformatsformatr r rcheck_archive_formatss rBcCstj}|dk r6tjd|tjj|}|s6tj||dkrDtj}d|i} y t|} Wn t k rxt d|YnX| d} x| dD]\} } | | | <qW|dkr|| d<|| d<z| ||f| }Wd|dk rtjd |tj|X|S) Nzchanging into '%s'rzunknown archive format '%s'rr3rrzchanging back to '%s') r"getcwdrdebugr#abspathchdirr7r@r r )r-rAZroot_dirr.r/rrrZsave_cwdkwargsZ format_infofuncargvalfilenamer r r make_archives2       rM)rrrNN)rr)rr)rr)rr)rr)rN)NNrrNN)r"warningsrr+r5 ImportErrorZdistutils.errorsrZdistutils.spawnrZdistutils.dir_utilrZ distutilsrpwdrZgrprrrr2r?r@rBrMr r r rs@            G =      PK!4Scr@normcaseZsrc_extensionsr rArCrB obj_extension)r/Zsource_filenamesZ strip_dirrEZ obj_namesZsrc_namebaser6rrrobject_filenamess      z CygwinCCompiler.object_filenames)rrr) NNNNNrNNNN)rrH)__name__ __module__ __qualname____doc__r+rLZstatic_lib_extensionZshared_lib_extensionZstatic_lib_formatZshared_lib_formatZ exe_extensionr$r9rDrNrrrrrYs ; Krc@seZdZdZdZdddZdS)Mingw32CCompilerz@ Handles the Mingw32 port of the GNU C compiler to Windows. Zmingw32rc Csxtj|||||jdkr d}nd}|jdkr4d}nd}trFtd|jdd d d d |j||fd g|_t |_dS)Nz2.13z-sharedz -mdll -staticz2.91.57z--entry _DllMain@12rHz1Cygwin gcc cannot be used with --compiler=mingw32z gcc -O -Wallzgcc -mdll -O -Wallz g++ -O -Wallrz%s %s %s)rr r!r"r#) rr$r*r) is_cygwingccr r-r,r.r)r/r0r1r2r3Z entry_pointrrrr$s&   zMingw32CCompiler.__init__N)rrr)rOrPrQrRr+r$rrrrrSsrSokznot okZ uncertaincCsddlm}dtjkrtdfS|j}y@t|}z(d|jkrJtd|fStd|fSWd|j XWn.t k r}zt d ||j ffSd}~XnXdS) awCheck if the current Python installation appears amenable to building extensions with GCC. Returns a tuple (status, details), where 'status' is one of the following constants: - CONFIG_H_OK: all is well, go ahead and compile - CONFIG_H_NOTOK: doesn't look good - CONFIG_H_UNCERTAIN: not sure -- unable to read pyconfig.h 'details' is a human-readable string explaining the situation. Note there are two ways to conclude "OK": either 'sys.version' contains the string "GCC" (implying that this Python was built with GCC), or the installed "pyconfig.h" contains the string "__GNUC__". r) sysconfigZGCCzsys.version mentions 'GCC'Z__GNUC__z'%s' mentions '__GNUC__'z '%s' does not mention '__GNUC__'Nzcouldn't read '%s': %s) distutilsrVrrr&get_config_h_filenameopenreadCONFIG_H_NOTOKcloseOSErrorCONFIG_H_UNCERTAINstrerror)rVfnconfig_hexcrrrr%Hs    r%s(\d+\.\d+(\.\d+)*)c Csl|jd}t|dkrdSt|dtdj}z |j}Wd|jXtj|}|dkrZdSt |j dj S)zFind the version of an executable by running `cmd` in the shell. If the command is not found, or the output does not match `RE_VERSION`, returns None. rNT)shellstdoutr) splitrrrrdrZr\ RE_VERSIONsearchrgroupdecode)cmd executableout out_stringresultrrr_find_exe_versionus     rocCsdddg}tdd|DS)zg Try to find out the versions of gcc, ld and dllwrap. If not possible it returns None for it. zgcc -dumpversionzld -vzdllwrap --versioncSsg|] }t|qSr)ro).0rjrrr sz get_versions..)tuple)Zcommandsrrrr(s r(cCstddg}|jjdS)z>Try to determine if the gcc that would be used is from cygwin.rz -dumpmachinescygwin)rstripendswith)rmrrrrTs rT)'rRr=rr; subprocessrrrreZdistutils.ccompilerrrZdistutils.unixccompilerrZdistutils.file_utilrZdistutils.errorsr r r r rWr Zdistutils.versionrZdistutils.spawnrrrrSr&r[r^r%compilerfror(rTrrrrs0)     ;1+ PK!OS  *__pycache__/text_file.cpython-36.opt-2.pycnu[3 \0@s"ddlZddlZGdddZdS)Nc@speZdZddddddddZdddZdd Zd d Zdd d ZdddZdddZ ddZ ddZ ddZ dS)TextFilerstrict)strip_comments skip_blanks lstrip_ws rstrip_ws join_lines collapse_joinerrorsNcKs|dkr|dkrtdx>|jjD]0}||krBt||||q$t|||j|q$Wx&|jD]}||jkrbtd|qbW|dkr|j|n||_||_d|_g|_ dS)Nz7you must supply either or both of 'filename' and 'file'zinvalid TextFile option '%s'r) RuntimeErrordefault_optionskeyssetattrKeyErroropenfilenamefile current_linelinebuf)selfrrZoptionsoptr+/usr/lib64/python3.6/distutils/text_file.py__init__Ns  zTextFile.__init__cCs&||_tj|jd|jd|_d|_dS)Nr)r r)riorr rr)rrrrrrosz TextFile.opencCs$|j}d|_d|_d|_|jdS)N)rrrclose)rrrrrrvs zTextFile.closecCsjg}|dkr|j}|j|jdt|ttfrD|jdt|n|jd||jt|dj|S)Nz, z lines %d-%d: z line %d: )rappendr isinstancelisttuplestrjoin)rmsglineZoutmsgrrr gen_errorszTextFile.gen_errorcCstd|j||dS)Nzerror: ) ValueErrorr')rr%r&rrrerrorszTextFile.errorcCs tjjd|j||ddS)Nz warning:  )sysstderrwriter')rr%r&rrrwarnsz TextFile.warncCs|jr|jd }|jd =|Sd}x|jj}|dkr:d}|jr|r|jd}|d krXnX|dksp||ddkr|ddkrdpd}|d||}|jdkrq$n |jdd}|jo|r |dkr|jd|S|j r|j }||}t |j t r |j dd|j d<n|j |j dg|_ n:|dkr.dSt |j t rN|j dd|_ n |j d|_ |jrt|jrt|j}n"|jr|j }n|jr|j}|dks|dkr|jrq$|jr|ddkr|dd}q$|ddd kr|ddd}q$|SdS)Nrr#r\r*z\#z2continuation line immediately precedes end-of-filez\ r2r2r2r2r2r3)rrreadlinerfindstripreplacer r.r lstripr rr!rrrstripr)rr&Z buildup_lineposZeolrrrr4sf            zTextFile.readlinecCs,g}x"|j}|dkr|S|j|qWdS)N)r4r)rlinesr&rrr readliness zTextFile.readlinescCs|jj|dS)N)rr)rr&rrr unreadlineszTextFile.unreadline)NN)N)N)N) __name__ __module__ __qualname__r rrrr'r)r.r4r<r=rrrrr s ; !  x r)r+rrrrrrsPK!n7#Fāā*__pycache__/ccompiler.cpython-36.opt-1.pycnu[3 \7@sdZddlZddlZddlZddlTddlmZddlmZddl m Z ddl m Z m Z ddlmZmZdd lmZGd d d Zd-Zd.ddZd/d0d1d2d3d!Zd"d#Zd4d$d%Zd&d'Zd(d)ZdS)5zdistutils.ccompiler Contains CCompiler, an abstract base class that defines the interface for the Distutils compiler abstraction model.N)*)spawn) move_file)mkpath)newer_pairwise newer_group) split_quotedexecute)logc @seZdZdZdZdZdZdZdZdZ dZ dZ ddddddZ dddgZ dqdd Zd d Zd d ZddZddZdrddZddZddZddZddZddZddZd d!Zd"d#Zd$d%Zd&d'Zd(d)Zd*d+Zd,d-Z d.d/Z!dsd0d1Z"d2d3Z#d4d5Z$d6d7Z%d8d9Z&dtd:d;Z'dudd?Z)dvd@dAZ*dBZ+dCZ,dDZ-dwdEdFZ.dxdGdHZ/dydIdJZ0dzdKdLZ1dMdNZ2dOdPZ3dQdRZ4d{dSdTZ5d|dUdVZ6d}dXdYZ7d~dZd[Z8dd\d]Z9dd_d`Z:ddbdcZ;dddeZdjdkZ?dldmZ@ddodpZAdS) CCompileraAbstract base class to define the interface that must be implemented by real compiler classes. Also has some utility methods used by several compiler classes. The basic idea behind a compiler abstraction class is that each instance can be used for all the compile/link steps in building a single project. Thus, attributes common to all of those compile and link steps -- include directories, macros to define, libraries to link against, etc. -- are attributes of the compiler instance. To allow for variability in how individual files are treated, most of those attributes may be varied on a per-compilation or per-link basis. Nczc++Zobjc)z.cz.ccz.cppz.cxxz.mrcCsf||_||_||_d|_g|_g|_g|_g|_g|_g|_ x$|j j D]}|j ||j |qHWdS)N) dry_runforceverbose output_dirmacros include_dirs libraries library_dirsruntime_library_dirsobjects executableskeysset_executable)selfrr rkeyr+/usr/lib64/python3.6/distutils/ccompiler.py__init__UszCCompiler.__init__cKs@x:|D]2}||jkr(td||jjf|j|||qWdS)aDefine the executables (and options for them) that will be run to perform the various stages of compilation. The exact set of executables that may be specified here depends on the compiler class (via the 'executables' class attribute), but most will have: compiler the C/C++ compiler linker_so linker used to create shared objects and libraries linker_exe linker used to create binary executables archiver static library creator On platforms with a command-line (Unix, DOS/Windows), each of these is a string that will be split into executable name and (optional) list of arguments. (Splitting the string is done similarly to how Unix shells operate: words are delimited by spaces, but quotes and backslashes can override this. See 'distutils.util.split_quoted()'.) z$unknown executable '%s' for class %sN)r ValueError __class____name__r)rkwargsrrrrset_executablesys   zCCompiler.set_executablescCs,t|trt||t|n t|||dS)N) isinstancestrsetattrr)rrvaluerrrrs zCCompiler.set_executablecCs0d}x&|jD]}|d|kr |S|d7}q WdS)Nr)r)rnameidefnrrr _find_macros    zCCompiler._find_macrocCsdx^|D]V}t|toFt|dkoFt|dts:|ddkoFt|dtstd|ddqWdS) zEnsures that every element of 'definitions' is a valid macro definition, ie. either (name,value) 2-tuple or a (name,) tuple. Do nothing if all definitions are OK, raise TypeError otherwise. r(Nrzinvalid macro definition '%s': z.must be tuple (string,), (string, string), or z(string, None))r(r-)r$tuplelenr% TypeError)rZ definitionsr+rrr_check_macro_definitionss    z"CCompiler._check_macro_definitionscCs.|j|}|dk r|j|=|jj||fdS)a_Define a preprocessor macro for all compilations driven by this compiler object. The optional parameter 'value' should be a string; if it is not supplied, then the macro will be defined without an explicit value and the exact outcome depends on the compiler used (XXX true? does ANSI say anything about this?) N)r,rappend)rr)r'r*rrr define_macros zCCompiler.define_macrocCs0|j|}|dk r|j|=|f}|jj|dS)aUndefine a preprocessor macro for all compilations driven by this compiler object. If the same macro is defined by 'define_macro()' and undefined by 'undefine_macro()' the last call takes precedence (including multiple redefinitions or undefinitions). If the macro is redefined/undefined on a per-compilation basis (ie. in the call to 'compile()'), then that takes precedence. N)r,rr2)rr)r*Zundefnrrrundefine_macros zCCompiler.undefine_macrocCs|jj|dS)zAdd 'dir' to the list of directories that will be searched for header files. The compiler is instructed to search directories in the order in which they are supplied by successive calls to 'add_include_dir()'. N)rr2)rdirrrradd_include_dirszCCompiler.add_include_dircCs|dd|_dS)aySet the list of directories that will be searched to 'dirs' (a list of strings). Overrides any preceding calls to 'add_include_dir()'; subsequence calls to 'add_include_dir()' add to the list passed to 'set_include_dirs()'. This does not affect any list of standard include directories that the compiler may search by default. N)r)rdirsrrrset_include_dirsszCCompiler.set_include_dirscCs|jj|dS)aAdd 'libname' to the list of libraries that will be included in all links driven by this compiler object. Note that 'libname' should *not* be the name of a file containing a library, but the name of the library itself: the actual filename will be inferred by the linker, the compiler, or the compiler class (depending on the platform). The linker will be instructed to link against libraries in the order they were supplied to 'add_library()' and/or 'set_libraries()'. It is perfectly valid to duplicate library names; the linker will be instructed to link against libraries as many times as they are mentioned. N)rr2)rlibnamerrr add_libraryszCCompiler.add_librarycCs|dd|_dS)zSet the list of libraries to be included in all links driven by this compiler object to 'libnames' (a list of strings). This does not affect any standard system libraries that the linker may include by default. N)r)rZlibnamesrrr set_librariesszCCompiler.set_librariescCs|jj|dS)a'Add 'dir' to the list of directories that will be searched for libraries specified to 'add_library()' and 'set_libraries()'. The linker will be instructed to search for libraries in the order they are supplied to 'add_library_dir()' and/or 'set_library_dirs()'. N)rr2)rr5rrradd_library_dirszCCompiler.add_library_dircCs|dd|_dS)zSet the list of library search directories to 'dirs' (a list of strings). This does not affect any standard library search path that the linker may search by default. N)r)rr7rrrset_library_dirs szCCompiler.set_library_dirscCs|jj|dS)zlAdd 'dir' to the list of directories that will be searched for shared libraries at runtime. N)rr2)rr5rrradd_runtime_library_dirsz!CCompiler.add_runtime_library_dircCs|dd|_dS)zSet the list of directories to search for shared libraries at runtime to 'dirs' (a list of strings). This does not affect any standard search path that the runtime linker may search by default. N)r)rr7rrrset_runtime_library_dirssz"CCompiler.set_runtime_library_dirscCs|jj|dS)zAdd 'object' to the list of object files (or analogues, such as explicitly named library files or the output of "resource compilers") to be included in every link driven by this compiler object. N)rr2)robjectrrradd_link_object szCCompiler.add_link_objectcCs|dd|_dS)zSet the list of object files (or analogues) to be included in every link to 'objects'. This does not affect any standard object files that the linker may include by default (such as system libraries). N)r)rrrrrset_link_objects(szCCompiler.set_link_objectscCs|dkr|j}nt|ts"td|dkr2|j}n"t|trL||jpFg}ntd|dkrd|j}n*t|ttfrt||jpg}ntd|dkrg}|j|d|d}t ||}i} xRt t |D]B} || } || } t j j| d} |jt j j| | | f| | <qW||||| fS)z;Process arguments and decide which source files to compile.Nz%'output_dir' must be a string or Nonez/'macros' (if supplied) must be a list of tuplesz6'include_dirs' (if supplied) must be a list of stringsr) strip_dirrr()rr$r%r0rlistrr.object_filenamesgen_preprocess_optionsranger/ospathsplitextrdirname)rZoutdirrZincdirssourcesdependsZextrarpp_optsbuildr*srcobjextrrr_setup_compile6s8   zCCompiler._setup_compilecCs0|dg}|rdg|dd<|r,||dd<|S)Nz-cz-grr)rrNdebugZbeforecc_argsrrr _get_cc_argsas   zCCompiler._get_cc_argscCs|dkr|j}nt|ts"td|dkr2|j}n"t|trL||jpFg}ntd|dkrd|j}n*t|ttfrt||jpg}ntd|||fS)a'Typecheck and fix-up some of the arguments to the 'compile()' method, and return fixed-up values. Specifically: if 'output_dir' is None, replaces it with 'self.output_dir'; ensures that 'macros' is a list, and augments it with 'self.macros'; ensures that 'include_dirs' is a list, and augments it with 'self.include_dirs'. Guarantees that the returned values are of the correct type, i.e. for 'output_dir' either string or None, and for 'macros' and 'include_dirs' either list or None. Nz%'output_dir' must be a string or Nonez/'macros' (if supplied) must be a list of tuplesz6'include_dirs' (if supplied) must be a list of strings)rr$r%r0rrDrr.)rrrrrrr_fix_compile_argsjs   zCCompiler._fix_compile_argscCs|j||d}|ifS)a+Decide which souce files must be recompiled. Determine the list of object files corresponding to 'sources', and figure out which ones really need to be recompiled. Return a list of all object files and a dictionary telling which source files can be skipped. )r)rE)rrLrrMrrrr _prep_compiles zCCompiler._prep_compilecCsHt|ttfstdt|}|dkr.|j}nt|ts@td||fS)zTypecheck and fix up some arguments supplied to various methods. Specifically: ensure that 'objects' is a list; if output_dir is None, replace with self.output_dir. Return fixed versions of 'objects' and 'output_dir'. z,'objects' must be a list or tuple of stringsNz%'output_dir' must be a string or None)r$rDr.r0rr%)rrrrrr_fix_object_argss zCCompiler._fix_object_argscCs|dkr|j}n*t|ttfr2t||jp,g}ntd|dkrJ|j}n*t|ttfrlt||jpfg}ntd|dkr|j}n*t|ttfrt||jpg}ntd|||fS)a;Typecheck and fix up some of the arguments supplied to the 'link_*' methods. Specifically: ensure that all arguments are lists, and augment them with their permanent versions (eg. 'self.libraries' augments 'libraries'). Return a tuple with fixed versions of all arguments. Nz3'libraries' (if supplied) must be a list of stringsz6'library_dirs' (if supplied) must be a list of stringsz>'runtime_library_dirs' (if supplied) must be a list of strings)rr$rDr.r0rr)rrrrrrr _fix_lib_argss&zCCompiler._fix_lib_argscCs2|jr dS|jr t||dd}n t||}|SdS)zjReturn true if we need to relink the files listed in 'objects' to recreate 'output_file'. Tnewer)ZmissingN)rr r)rr output_filer[rrr _need_links  zCCompiler._need_linkc Cst|ts|g}d}t|j}x^|D]V}tjj|\}}|jj|}y |jj |}||krb|}|}Wq$t k rxYq$Xq$W|S)z|Detect the language of a given file, or list of files. Uses language_map, and language_order to do the job. N) r$rDr/language_orderrHrIrJ language_mapgetindexr) rrLZlangrasourcebaserRZextlangZextindexrrrdetect_languages      zCCompiler.detect_languagecCsdS)aPreprocess a single C/C++ source file, named in 'source'. Output will be written to file named 'output_file', or stdout if 'output_file' not supplied. 'macros' is a list of macro definitions as for 'compile()', which will augment the macros set with 'define_macro()' and 'undefine_macro()'. 'include_dirs' is a list of directory names that will be added to the default list. Raises PreprocessError on failure. Nr)rrbr\rr extra_preargsextra_postargsrrr preprocesss zCCompiler.preprocessc Csz|j||||||\}} }} } |j| ||} xH| D]@} y| | \}}Wntk r\w2YnX|j| ||| || q2W| S)aK Compile one or more source files. 'sources' must be a list of filenames, most likely C/C++ files, but in reality anything that can be handled by a particular compiler and compiler class (eg. MSVCCompiler can handle resource files in 'sources'). Return a list of object filenames, one per source filename in 'sources'. Depending on the implementation, not all source files will necessarily be compiled, but all corresponding object filenames will be returned. If 'output_dir' is given, object files will be put under it, while retaining their original path component. That is, "foo/bar.c" normally compiles to "foo/bar.o" (for a Unix implementation); if 'output_dir' is "build", then it would compile to "build/foo/bar.o". 'macros', if given, must be a list of macro definitions. A macro definition is either a (name, value) 2-tuple or a (name,) 1-tuple. The former defines a macro; if the value is None, the macro is defined without an explicit value. The 1-tuple case undefines a macro. Later definitions/redefinitions/ undefinitions take precedence. 'include_dirs', if given, must be a list of strings, the directories to add to the default include file search path for this compilation only. 'debug' is a boolean; if true, the compiler will be instructed to output debug symbols in (or alongside) the object file(s). 'extra_preargs' and 'extra_postargs' are implementation- dependent. On platforms that have the notion of a command-line (e.g. Unix, DOS/Windows), they are most likely lists of strings: extra command-line arguments to prepand/append to the compiler command line. On other platforms, consult the implementation class documentation. In any event, they are intended as an escape hatch for those occasions when the abstract compiler framework doesn't cut the mustard. 'depends', if given, is a list of filenames that all targets depend on. If a source file is older than any file in depends, then the source file will be recompiled. This supports dependency tracking, but only at a coarse granularity. Raises CompileError on failure. )rSrVKeyError_compile)rrLrrrrTrerfrMrrNrOrUrQrPrRrrrcompiles6  zCCompiler.compilecCsdS)zCompile 'src' to product 'obj'.Nr)rrQrPrRrUrfrNrrrriCszCCompiler._compilecCsdS)a&Link a bunch of stuff together to create a static library file. The "bunch of stuff" consists of the list of object files supplied as 'objects', the extra object files supplied to 'add_link_object()' and/or 'set_link_objects()', the libraries supplied to 'add_library()' and/or 'set_libraries()', and the libraries supplied as 'libraries' (if any). 'output_libname' should be a library name, not a filename; the filename will be inferred from the library name. 'output_dir' is the directory where the library file will be put. 'debug' is a boolean; if true, debugging information will be included in the library (note that on most platforms, it is the compile step where this matters: the 'debug' flag is included here just for consistency). 'target_lang' is the target language for which the given objects are being compiled. This allows specific linkage time treatment of certain languages. Raises LibError on failure. Nr)rroutput_libnamerrT target_langrrrcreate_static_libIszCCompiler.create_static_libZ shared_objectZshared_library executablecCstdS)auLink a bunch of stuff together to create an executable or shared library file. The "bunch of stuff" consists of the list of object files supplied as 'objects'. 'output_filename' should be a filename. If 'output_dir' is supplied, 'output_filename' is relative to it (i.e. 'output_filename' can provide directory components if needed). 'libraries' is a list of libraries to link against. These are library names, not filenames, since they're translated into filenames in a platform-specific way (eg. "foo" becomes "libfoo.a" on Unix and "foo.lib" on DOS/Windows). However, they can include a directory component, which means the linker will look in that specific directory rather than searching all the normal locations. 'library_dirs', if supplied, should be a list of directories to search for libraries that were specified as bare library names (ie. no directory component). These are on top of the system default and those supplied to 'add_library_dir()' and/or 'set_library_dirs()'. 'runtime_library_dirs' is a list of directories that will be embedded into the shared library and used to search for other shared libraries that *it* depends on at run-time. (This may only be relevant on Unix.) 'export_symbols' is a list of symbols that the shared library will export. (This appears to be relevant only on Windows.) 'debug' is as for 'compile()' and 'create_static_lib()', with the slight distinction that it actually matters on most platforms (as opposed to 'create_static_lib()', which includes a 'debug' flag mostly for form's sake). 'extra_preargs' and 'extra_postargs' are as for 'compile()' (except of course that they supply command-line arguments for the particular linker being used). 'target_lang' is the target language for which the given objects are being compiled. This allows specific linkage time treatment of certain languages. Raises LinkError on failure. N)NotImplementedError)rZ target_descroutput_filenamerrrrexport_symbolsrTrerf build_temprlrrrlinkis9zCCompiler.linkc Cs2|jtj||j|dd||||||| | | | dS)Nshared)lib_type)rsr SHARED_LIBRARYlibrary_filename) rrrkrrrrrqrTrerfrrrlrrrlink_shared_libs  zCCompiler.link_shared_libc Cs(|jtj||||||||| | | | dS)N)rsr SHARED_OBJECT) rrrprrrrrqrTrerfrrrlrrrlink_shared_objects zCCompiler.link_shared_objectc Cs.|jtj||j|||||d||| d| dS)N)rsr EXECUTABLEexecutable_filename) rrZoutput_prognamerrrrrTrerfrlrrrlink_executables  zCCompiler.link_executablecCstdS)zkReturn the compiler option to add 'dir' to the list of directories searched for libraries. N)ro)rr5rrrlibrary_dir_optionszCCompiler.library_dir_optioncCstdS)zsReturn the compiler option to add 'dir' to the list of directories searched for runtime libraries. N)ro)rr5rrrruntime_library_dir_optionsz$CCompiler.runtime_library_dir_optioncCstdS)zReturn the compiler option to add 'lib' to the list of libraries linked into the shared library or executable. N)ro)rlibrrrlibrary_optionszCCompiler.library_optionc Csddl}|dkrg}|dkr g}|dkr,g}|dkr8g}|jd|dd\}}tj|d} z.x|D]} | jd| q`W| jd|Wd| jXy|j|g|d } Wntk rd SXy|j| d ||d Wnt t fk rd SXdS) zReturn a boolean indicating whether funcname is supported on the current platform. The optional arguments can be used to augment the compilation environment. rNz.cT)textwz#include "%s" z+main (int argc, char **argv) { %s(); } )rFza.out)rr) tempfileZmkstemprHfdopenwritecloserjZ CompileErrorr}Z LinkErrorr0) rfuncnameZincludesrrrrfdZfnamefZinclrrrr has_functions8     zCCompiler.has_functioncCstdS)aHSearch the specified list of directories for a static or shared library file 'lib' and return the full path to that file. If 'debug' true, look for a debugging version (if that makes sense on the current platform). Return None if 'lib' wasn't found in any of the specified directories. N)ro)rr7rrTrrrfind_library_file#szCCompiler.find_library_filecCs|dkr d}g}x|D]|}tjj|\}}tjj|d}|tjj|d}||jkrhtd||f|rxtjj|}|jtjj |||j qW|S)Nrr(z"unknown file type '%s' (from '%s')) rHrIrJ splitdriveisabssrc_extensionsZUnknownFileErrorbasenamer2join obj_extension)rZsource_filenamesrCrZ obj_namesZsrc_namercrRrrrrENs    zCCompiler.object_filenamescCs$|rtjj|}tjj|||jS)N)rHrIrrshared_lib_extension)rrrCrrrrshared_object_filename_s z CCompiler.shared_object_filenamecCs(|rtjj|}tjj|||jp"dS)Nr)rHrIrr exe_extension)rrrCrrrrr|es zCCompiler.executable_filenamestaticc Cs`|d krtdt||d}t||d}tjj|\}}|||f} |rPd}tjj||| S) Nrrtdylib xcode_stubz?'lib_type' must be "static", "shared", "dylib", or "xcode_stub"Z _lib_formatZ_lib_extensionr)rrtrr)rgetattrrHrIsplitr) rr9rurCrZfmtrRr5rcfilenamerrrrwks zCCompiler.library_filenamer(cCstj|dS)N)r rT)rmsglevelrrrannounce~szCCompiler.announcecCsddlm}|rt|dS)Nr)DEBUG)Zdistutils.debugrprint)rrrrrr debug_prints zCCompiler.debug_printcCstjjd|dS)Nz warning: %s )sysstderrr)rrrrrwarnszCCompiler.warncCst||||jdS)N)r r )rfuncargsrrrrrr szCCompiler.executecCst||jddS)N)r )rr )rcmdrrrrszCCompiler.spawncCst|||jdS)N)r )rr )rrPdstrrrrszCCompiler.move_filecCst|||jddS)N)r )rr )rr)moderrrrszCCompiler.mkpath)rrr)N)N)NNNNN)NNNrNNN)NrN) NNNNNrNNNN) NNNNNrNNNN) NNNNNrNNNN)NNNNrNNN)NNNN)r)rr)rr)rr)rrr)r()Nr()r)Br! __module__ __qualname____doc__Z compiler_typerrZstatic_lib_extensionrZstatic_lib_formatZshared_lib_formatrr_r^rr#rr,r1r3r4r6r8r:r;r<r=r>r?rArBrSrVrWrXrYrZr]rdrgrjrirmryrvr{rsrxrzr}r~rrrrrErr|rwrrrr rrrrrrrr s    $   +  "   B  4    * +      r cygwin.*unixposixntmsvccCsV|dkrtj}|dkrtj}x4tD],\}}tj||dk sJtj||dk r"|Sq"WdS)akDetermine the default compiler to use for the given platform. osname should be one of the standard Python OS names (i.e. the ones returned by os.name) and platform the common value returned by sys.platform for the platform in question. The default values are os.name and sys.platform in case the parameters are not given. Nr)rHr)rplatform_default_compilersrematch)osnamerpatterncompilerrrrget_default_compilers r unixccompiler UnixCCompilerstandard UNIX-style compiler _msvccompiler MSVCCompilerMicrosoft Visual C++cygwinccompilerCygwinCCompiler'Cygwin port of GNU C Compiler for Win32Mingw32CCompiler(Mingw32 port of GNU C Compiler for Win32 bcppcompiler BCPPCompilerBorland C++ Compiler)rrcygwinZmingw32ZbcppcCs\ddlm}g}x,tjD] }|jd|dt|dfqW|j||}|jddS)zyPrint list of available compilers (used by the "--help-compiler" options to "build", "build_ext", "build_clib"). r) FancyGetoptz compiler=Nr-zList of available compilers:)Zdistutils.fancy_getoptrcompiler_classrr2sortZ print_help)rZ compilersrZpretty_printerrrrshow_compilerss  rc Cs|dkrtj}y"|dkr t|}t|\}}}Wn8tk rhd|}|dk r\|d|}t|YnXy*d|}t|tj|} t | |} WnBt k rt d|Yn$tk rt d||fYnX| d||S)a[Generate an instance of some CCompiler subclass for the supplied platform/compiler combination. 'plat' defaults to 'os.name' (eg. 'posix', 'nt'), and 'compiler' defaults to the default compiler for that platform. Currently only 'posix' and 'nt' are supported, and the default compilers are "traditional Unix interface" (UnixCCompiler class) and Visual C++ (MSVCCompiler class). Note that it's perfectly possible to ask for a Unix compiler object under Windows, and a Microsoft compiler object under Unix -- if you supply a value for 'compiler', 'plat' is ignored. Nz5don't know how to compile C/C++ code on platform '%s'z with '%s' compilerz distutils.z4can't compile C/C++ code: unable to load module '%s'zBcan't compile C/C++ code: unable to find class '%s' in module '%s') rHr)rrrhZDistutilsPlatformError __import__rmodulesvars ImportErrorZDistutilsModuleError) Zplatrrr rZ module_name class_nameZlong_descriptionrmoduleklassrrr new_compilers2    rcCsg}x|D]}t|to2dt|ko.dkns@td|t|dkr`|jd|dq t|dkr |ddkr|jd|dq |jd|q Wx|D]}|jd |qW|S) aGenerate C pre-processor options (-D, -U, -I) as used by at least two types of compilers: the typical Unix compiler and Visual C++. 'macros' is the usual thing, a list of 1- or 2-tuples, where (name,) means undefine (-U) macro 'name', and (name,value) means define (-D) macro 'name' to 'value'. 'include_dirs' is just a list of directory names to be added to the header file search path (-I). Returns a list of command-line options suitable for either Unix compilers or Visual C++. r(r-zPbad macro definition '%s': each element of 'macros' list must be a 1- or 2-tuplez-U%srNz-D%sz-D%s=%sz-I%s)r$r.r/r0r2)rrrNZmacror5rrrrF s &    rFc Csg}x|D]}|j|j|q Wx4|D],}|j|}t|trJ||}q(|j|q(Wx^|D]V}tjj|\}} |r|j|g| } | r|j| q|j d|q^|j|j |q^W|S)acGenerate linker options for searching library directories and linking with specific libraries. 'libraries' and 'library_dirs' are, respectively, lists of library names (not filenames!) and search directories. Returns a list of command-line options suitable for use with some compiler (depending on the two format strings passed in). z6no library file corresponding to '%s' found (skipping)) r2r~rr$rDrHrIrrrr) rrrrZlib_optsr5optrZlib_dirZlib_nameZlib_filerrrgen_lib_options7s$        rrrrrrr)rrr)NN)rrr)rrr)rrr)rrr)rrr)NNrrr)rrrHrZdistutils.errorsZdistutils.spawnrZdistutils.file_utilrZdistutils.dir_utilrZdistutils.dep_utilrrZdistutils.utilrr Z distutilsr r rrrrrrFrrrrrsD      --PK!(ߟ !__pycache__/config.cpython-36.pycnu[3 \@s<dZddlZddlmZddlmZdZGdddeZdS)zdistutils.pypirc Provides the PyPIRCCommand class, the base class for the command classes that uses .pypirc in the distutils.command package. N)RawConfigParser)CommandzE[distutils] index-servers = pypi [pypi] username:%s password:%s c@sheZdZdZdZdZdZdZdddefdgZdgZ d d Z d d Z ddZ ddZ ddZddZdS) PyPIRCCommandz;Base command that knows how to handle the .pypirc file zhttps://upload.pypi.org/legacy/pypiNz repository=rzurl of repository [default: %s] show-response&display full response text from servercCstjjtjjddS)zReturns rc file path.~z.pypirc)ospathjoin expanduser)selfr(/usr/lib64/python3.6/distutils/config.py _get_rc_file&szPyPIRCCommand._get_rc_filec CsH|j}tjtj|tjtjBdd}|jt||fWdQRXdS)zCreates a default .pypirc file.iwN)rr fdopenopenO_CREATO_WRONLYwriteDEFAULT_PYPIRC)rusernamepasswordrcfrrr _store_pypirc*s zPyPIRCCommand._store_pypircc Cs|j}tjj|r|jd||jp.|j}|jp:|j}t }|j ||j }d|krR|j dd}dd|j dD}|gkrd|krdg}niSx|D]}d|i} |j |d | d <xHd |jfd |jfdfD].\} } |j|| r|j || | | <q| | | <qW|dkr.||jdfkr.|j| d <| S| d|ksH| d |kr| SqWnRd|krd}|j|d r||j |d }n|j}|j |d |j |d |||jdSiS)zReads the .pypirc file.zUsing PyPI login from %sZ distutilsz index-serverscSs g|]}|jdkr|jqS))strip).0serverrrr >sz.PyPIRCCommand._read_pypirc.. rr!r repositoryrealmrNz server-login)rrr$r!r%)rN)rr r existsZannouncer$DEFAULT_REPOSITORYr% DEFAULT_REALMrreadsectionsgetsplitZ has_option) rrr$r%configr*Z index_serversZ_serversr!Zcurrentkeydefaultrrr _read_pypirc0sX                zPyPIRCCommand._read_pypirccCs8ddl}|jdd}|j|djdd}|jj|S)z%Read and decode a PyPI HTTP response.rNz content-typez text/plaincharsetascii)cgiZ getheaderZ parse_headerr+r)decode)rZresponser4Z content_typeencodingrrr_read_pypi_responseqs z!PyPIRCCommand._read_pypi_responsecCsd|_d|_d|_dS)zInitialize options.Nr)r$r%Z show_response)rrrrinitialize_optionsxsz PyPIRCCommand.initialize_optionscCs(|jdkr|j|_|jdkr$|j|_dS)zFinalizes options.N)r$r'r%r()rrrrfinalize_options~s  zPyPIRCCommand.finalize_options)rNr)__name__ __module__ __qualname____doc__r'r(r$r%Z user_optionsZboolean_optionsrrr0r7r8r9rrrrrs"Ar)r=r Z configparserrZ distutils.cmdrrrrrrrs   PK!c  -__pycache__/fancy_getopt.cpython-36.opt-2.pycnu[3 \xE@sddlZddlZddlZddlZddlTdZejdeZejdeefZe j ddZ Gdd d Z d d Z d d ejDZddZddZGdddZedkrdZx2dD]*ZedeedjeeeeqWdS)N)*z[a-zA-Z](?:[a-zA-Z0-9-]*)z^%s$z ^(%s)=!(%s)$-_c@seZdZdddZddZddZddd Zd d Zd d ZddZ ddZ ddZ ddZ d ddZ ddZd!ddZd"ddZdS)# FancyGetoptNcCsN||_i|_|jr|ji|_i|_g|_g|_i|_i|_i|_ g|_ dS)N) option_table option_index _build_indexaliasnegative_alias short_opts long_opts short2long attr_name takes_arg option_order)selfrr./usr/lib64/python3.6/distutils/fancy_getopt.py__init__)s zFancyGetopt.__init__cCs,|jjx|jD]}||j|d<qWdS)Nr)rclearr)roptionrrrrQs  zFancyGetopt._build_indexcCs||_|jdS)N)rr)rrrrrset_option_tableVszFancyGetopt.set_option_tablecCs<||jkrtd|n |||f}|jj|||j|<dS)Nz'option conflict: already an option '%s')rDistutilsGetoptErrorrappend)r long_optionZ short_optionZ help_stringrrrr add_optionZs     zFancyGetopt.add_optioncCs ||jkS)N)r)rrrrr has_optioncszFancyGetopt.has_optioncCs |jtS)N) translate longopt_xlate)rrrrr get_attr_namehszFancyGetopt.get_attr_namecCsRxL|jD]@\}}||jkr.td|||f||jkr td|||fq WdS)Nz(invalid %s '%s': option '%s' not definedz0invalid %s '%s': aliased option '%s' not defined)itemsrr)raliasesZwhatr optrrr_check_alias_dictns  zFancyGetopt._check_alias_dictcCs|j|d||_dS)Nr )r#r )rr rrr set_aliasesxs zFancyGetopt.set_aliasescCs|j|d||_dS)Nznegative alias)r#r )rr rrrset_negative_aliases}s z FancyGetopt.set_negative_aliasescCsg|_g|_|jji|_x|jD]}t|dkrH|\}}}d}n(t|dkrb|\}}}}ntd|ft|t  st|dkrt d||dkpt|t ot|dkst d|||j|<|jj ||dd kr|r|d }|dd}d|j |<nF|j j|}|dk rB|j |r8t d ||f||jd<d|j |<|jj|}|dk r|j ||j |krt d ||ftj|st d ||j||j|<|r&|jj |||j|d<q&WdS)Nrzinvalid option tuple: %rz9invalid long option '%s': must be a string of length >= 2z:invalid short option '%s': must a single character or None=:z>invalid negative alias '%s': aliased option '%s' takes a valuezginvalid alias '%s': inconsistent with aliased option '%s' (one of them takes a value, the other doesn'tzEinvalid long option name '%s' (must be letters, numbers, hyphens onlyr,r,)r r r rrepeatrlen ValueError isinstancestrrrrr getr longopt_rematchrr)rrlongshorthelpr-Zalias_torrr_grok_option_tables^                   zFancyGetopt._grok_option_tablec Csr|dkrtjdd}|dkr*t}d}nd}|jdj|j}ytj|||j\}}Wn,tjk r}zt |WYdd}~XnXx|D]\}}t |dkr|ddkr|j |d}n |dd}|j j |} | r| }|j|s |jj |} | r| }d}nd}|j|} |r<|jj | dk rsB        zFancyGetopt.getoptcCs|jdkrtdn|jSdS)Nz!'getopt()' hasn't been called yet)r RuntimeError)rrrrget_option_orders  zFancyGetopt.get_option_ordercCsxd}xV|jD]L}|d}|d}t|}|ddkr<|d}|dk rL|d}||kr |}q W|ddd}d}||} d|} |r|g} ndg} x|jD]}|dd \}}} t| | } |ddkr|dd}|dkr| r| jd ||| dfn| jd ||fn:d ||f}| r<| jd ||| dfn| jd |x$| ddD]}| j| |qXWqW| S)Nrr)r*r(Nr9zOption summary:r&z --%-*s %sz --%-*s z%s (-%s)z --%-*sr,r,r,)rr. wrap_textr)rheaderZmax_optrr5r6lZ opt_widthZ line_widthZ text_widthZ big_indentlinesr7textZ opt_namesrrr generate_helpsF        zFancyGetopt.generate_helpcCs4|dkrtj}x |j|D]}|j|dqWdS)N )r:stdoutrPwrite)rrLfilelinerrr print_helphszFancyGetopt.print_help)N)NN)NN)N)NN)__name__ __module__ __qualname__rrrrrrr#r$r%r8r>rHrPrVrrrrrs (  M = OrcCst|}|j||j||S)N)rr%r>)optionsZ negative_optrCrBparserrrr fancy_getoptos r\cCsi|]}dt|qS)r9)ord).0Z_wscharrrr usr_cCs"|dkr gSt||kr|gS|j}|jt}tjd|}dd|D}g}x|rg}d}xZ|rt|d}|||kr|j|d|d=||}q`|r|dddkr|d =Pq`W|r |dkr|j|dd||d|d|d<|dddkr |d=|jdj|qPW|S) Nz( +|-+)cSsg|] }|r|qSrr)r^Zchrrr szwrap_text..rr)r9r,r,)r. expandtabsrWS_TRANSresplitrr=)rOwidthZchunksrNZcur_lineZcur_lenrMrrrrKws:      rKcCs |jtS)N)rr)r"rrrtranslate_longoptsrgc@seZdZgfddZdS)r<cCsx|D]}t||dqWdS)N)rA)rrZr"rrrrs zOptionDummy.__init__N)rWrXrYrrrrrr<sr<__main__zTra-la-la, supercalifragilisticexpialidocious. How *do* you spell that odd word, anyways? (Someone ask Mary -- she'll know [or she'll say, "How should I know?"].) (z width: %drQ)rirjrkrl)r:stringrdr>Zdistutils.errorsZ longopt_patcompiler3Z neg_alias_rer1 maketransrrr\Z whitespacercrKrgr<rWrOwprintr=rrrr s( T6   PK!& )__pycache__/filelist.cpython-36.opt-2.pycnu[3 \ 2@sddlZddlZddlZddlZddlmZddlmZmZddl m Z GdddZ ddZ ej fd d Zd d ZdddZdS)N) convert_path)DistutilsTemplateErrorDistutilsInternalError)logc@sxeZdZdddZddZejfddZdd Zd d Z d d Z ddZ ddZ ddZ ddZdddZdddZdS)FileListNcCsd|_g|_dS)N)allfilesfiles)selfwarn debug_printr */usr/lib64/python3.6/distutils/filelist.py__init__szFileList.__init__cCs ||_dS)N)r)r rr r r set_allfiles#szFileList.set_allfilescCst||_dS)N)findallr)r dirr r r r&szFileList.findallcCsddlm}|rt|dS)Nr)DEBUG)Zdistutils.debugrprint)r msgrr r r r )s zFileList.debug_printcCs|jj|dS)N)rappend)r itemr r r r3szFileList.appendcCs|jj|dS)N)rextend)r itemsr r r r6szFileList.extendcCs@tttjj|j}g|_x |D]}|jjtjj|q WdS)N)sortedmapospathsplitrrjoin)r Zsortable_filesZ sort_tupler r r sort9s z FileList.sortcCsDx>tt|jdddD]$}|j||j|dkr|j|=qWdS)Nr)rangelenr)r ir r r remove_duplicatesCszFileList.remove_duplicatescCs|j}|d}d}}}|dkrTt|dkr ...cSsg|] }t|qSr )r).0wr r r Wsz1FileList._parse_template_line..r recursive-includerecursive-excludez,'%s' expects ...cSsg|] }t|qSr )r)r+r,r r r r-]sgraftprunez#'%s' expects a single zunknown action '%s')r&r'r(r))r.r/)r1r2)rr#rr)r lineZwordsactionpatternsr dir_patternr r r _parse_template_lineLs,         zFileList._parse_template_linecCsX|j|\}}}}|dkrZ|jddj|x&|D]}|j|dds4tjd|q4Wn|dkr|jddj|x&|D]}|j|dds|tjd |q|Wn|d kr|jd dj|x&|D]}|j|d dstjd |qWnj|dkr8|jddj|x*|D]"}|j|d dstjd|qWn|dkr|jd|dj|fx,|D]$}|j||ds`tjd||q`Wn|dkr|jd|dj|fx|D]$}|j||dstjd||qWnx|dkr|jd||jd|dsTtjd|nB|dkrH|jd||jd|dsTtjd|n td|dS)Nr&zinclude  r )anchorz%warning: no files found matching '%s'r'zexclude z9warning: no previously-included files found matching '%s'zglobal-includezglobal-include rz>warning: no files found matching '%s' anywhere in distributionzglobal-excludezglobal-exclude zRwarning: no previously-included files matching '%s' found anywhere in distributionzrecursive-includezrecursive-include %s %s)prefixz:warning: no files found matching '%s' under directory '%s'zrecursive-excludezrecursive-exclude %s %szNwarning: no previously-included files matching '%s' found under directory '%s'r1zgraft z+warning: no directories found matching '%s'r2zprune z6no previously-included directories found matching '%s'z'this cannot happen: invalid action '%s')r7r rinclude_patternrr exclude_patternr)r r3r4r5rr6patternr r r process_template_linehsf           zFileList.process_template_liner rcCspd}t||||}|jd|j|jdkr4|jx6|jD],}|j|r<|jd||jj|d}qr;r<r r r r rs    L ,rcCs&ddtj|ddD}ttjj|S)Ncss,|]$\}}}|D]}tjj||VqqdS)N)rrr)r+basedirsrfiler r r sz#_find_all_simple..T) followlinks)rwalkfilterrisfile)rZresultsr r r _find_all_simplesrQcCs6t|}|tjkr.tjtjj|d}t||}t|S)N)start) rQrrH functoolspartialrrelpathrlist)rrZmake_relr r r rs   rcCs8tj|}tj}tjdkrd}d|}tjd||}|S)N\z\\\\z\1[^%s]z((?t|}nd}|dk rt|}|t|t|t|}tj} tjdkrd} |t|t|t|}d||| ||f}n|rd||t|df}tj|S)N_rWz\\z%s\A%s%s.*%s%sz%s\A%s) isinstancestrr[compiler] partitionr#rrZ) r=r9r:rArRr^endrCZ prefix_rerZr r r r?%s(   r?)r Nr)rr[rXrSZdistutils.utilrZdistutils.errorsrrZ distutilsrrrQrHrr]r?r r r r s  i  PK!5L ! !*__pycache__/text_file.cpython-36.opt-1.pycnu[3 \0@s&dZddlZddlZGdddZdS)ztext_file provides the TextFile class, which gives an interface to text files that (optionally) takes care of stripping comments, ignoring blank lines, and joining lines with backslashes.Nc@steZdZdZddddddddZdddZd d Zd d Zdd dZdddZ dddZ ddZ ddZ ddZ dS)TextFilea Provides a file-like object that takes care of all the things you commonly want to do when processing a text file that has some line-by-line syntax: strip comments (as long as "#" is your comment character), skip blank lines, join adjacent lines by escaping the newline (ie. backslash at end of line), strip leading and/or trailing whitespace. All of these are optional and independently controllable. Provides a 'warn()' method so you can generate warning messages that report physical line number, even if the logical line in question spans multiple physical lines. Also provides 'unreadline()' for implementing line-at-a-time lookahead. Constructor is called as: TextFile (filename=None, file=None, **options) It bombs (RuntimeError) if both 'filename' and 'file' are None; 'filename' should be a string, and 'file' a file object (or something that provides 'readline()' and 'close()' methods). It is recommended that you supply at least 'filename', so that TextFile can include it in warning messages. If 'file' is not supplied, TextFile creates its own using 'io.open()'. The options are all boolean, and affect the value returned by 'readline()': strip_comments [default: true] strip from "#" to end-of-line, as well as any whitespace leading up to the "#" -- unless it is escaped by a backslash lstrip_ws [default: false] strip leading whitespace from each line before returning it rstrip_ws [default: true] strip trailing whitespace (including line terminator!) from each line before returning it skip_blanks [default: true} skip lines that are empty *after* stripping comments and whitespace. (If both lstrip_ws and rstrip_ws are false, then some lines may consist of solely whitespace: these will *not* be skipped, even if 'skip_blanks' is true.) join_lines [default: false] if a backslash is the last non-newline character on a line after stripping comments and whitespace, join the following line to it to form one "logical line"; if N consecutive lines end with a backslash, then N+1 physical lines will be joined to form one logical line. collapse_join [default: false] strip leading whitespace from lines that are joined to their predecessor; only matters if (join_lines and not lstrip_ws) errors [default: 'strict'] error handler used to decode the file content Note that since 'rstrip_ws' can strip the trailing newline, the semantics of 'readline()' must differ from those of the builtin file object's 'readline()' method! In particular, 'readline()' returns None for end-of-file: an empty string might just be a blank line (or an all-whitespace line), if 'rstrip_ws' is true but 'skip_blanks' is not.rstrict)strip_comments skip_blanks lstrip_ws rstrip_ws join_lines collapse_joinerrorsNcKs|dkr|dkrtdx>|jjD]0}||krBt||||q$t|||j|q$Wx&|jD]}||jkrbtd|qbW|dkr|j|n||_||_d|_g|_ dS)zConstruct a new TextFile object. At least one of 'filename' (a string) and 'file' (a file-like object) must be supplied. They keyword argument options are described above and affect the values returned by 'readline()'.Nz7you must supply either or both of 'filename' and 'file'zinvalid TextFile option '%s'r) RuntimeErrordefault_optionskeyssetattrKeyErroropenfilenamefile current_linelinebuf)selfrrZoptionsoptr+/usr/lib64/python3.6/distutils/text_file.py__init__Ns  zTextFile.__init__cCs&||_tj|jd|jd|_d|_dS)zyOpen a new file named 'filename'. This overrides both the 'filename' and 'file' arguments to the constructor.r)r rN)riorr rr)rrrrrrosz TextFile.opencCs$|j}d|_d|_d|_|jdS)ziClose the current file and forget everything we know about it (filename, current line number).N)rrrclose)rrrrrrvs zTextFile.closecCsjg}|dkr|j}|j|jdt|ttfrD|jdt|n|jd||jt|dj|S)Nz, z lines %d-%d: z line %d: )rappendr isinstancelisttuplestrjoin)rmsglineZoutmsgrrr gen_errorszTextFile.gen_errorcCstd|j||dS)Nzerror: ) ValueErrorr')rr%r&rrrerrorszTextFile.errorcCs tjjd|j||ddS)aPrint (to stderr) a warning message tied to the current logical line in the current file. If the current logical line in the file spans multiple physical lines, the warning refers to the whole range, eg. "lines 3-5". If 'line' supplied, it overrides the current line number; it may be a list or tuple to indicate a range of physical lines, or an integer for a single physical line.z warning:  N)sysstderrwriter')rr%r&rrrwarnsz TextFile.warncCs|jr|jd }|jd =|Sd}x|jj}|dkr:d}|jr|r|jd}|dkrXnX|dksp||ddkr|ddkrdpd}|d||}|jdkrq$n |jdd}|jo|r |dkr|jd |S|j r|j }||}t |j t r |j dd|j d<n|j |j dg|_ n:|dkr.dSt |j t rN|j dd|_ n |j d|_ |jrt|jrt|j}n"|jr|j }n|jr|j}|dks|dkr|jrq$|jr|ddkr|dd}q$|ddd kr|ddd}q$|SdS)aURead and return a single logical line from the current file (or from an internal buffer if lines have previously been "unread" with 'unreadline()'). If the 'join_lines' option is true, this may involve reading multiple physical lines concatenated into a single string. Updates the current line number, so calling 'warn()' after 'readline()' emits a warning about the physical line(s) just read. Returns None on end-of-file, since the empty string can occur if 'rstrip_ws' is true but 'strip_blanks' is not.rrN#r\r*z\#z2continuation line immediately precedes end-of-filez\ r2r2r2r2r2r3)rrreadlinerfindstripreplacer r.r lstripr rr!rrrstripr)rr&Z buildup_lineposZeolrrrr4sf            zTextFile.readlinecCs,g}x"|j}|dkr|S|j|qWdS)zWRead and return the list of all logical lines remaining in the current file.N)r4r)rlinesr&rrr readliness zTextFile.readlinescCs|jj|dS)zPush 'line' (a string) onto an internal buffer that will be checked by future 'readline()' calls. Handy for implementing a parser with line-at-a-time lookahead.N)rr)rr&rrr unreadlineszTextFile.unreadline)NN)N)N)N)__name__ __module__ __qualname____doc__r rrrr'r)r.r4r<r=rrrrr s"9 !  x r)rAr+rrrrrrsPK!5L ! !$__pycache__/text_file.cpython-36.pycnu[3 \0@s&dZddlZddlZGdddZdS)ztext_file provides the TextFile class, which gives an interface to text files that (optionally) takes care of stripping comments, ignoring blank lines, and joining lines with backslashes.Nc@steZdZdZddddddddZdddZd d Zd d Zdd dZdddZ dddZ ddZ ddZ ddZ dS)TextFilea Provides a file-like object that takes care of all the things you commonly want to do when processing a text file that has some line-by-line syntax: strip comments (as long as "#" is your comment character), skip blank lines, join adjacent lines by escaping the newline (ie. backslash at end of line), strip leading and/or trailing whitespace. All of these are optional and independently controllable. Provides a 'warn()' method so you can generate warning messages that report physical line number, even if the logical line in question spans multiple physical lines. Also provides 'unreadline()' for implementing line-at-a-time lookahead. Constructor is called as: TextFile (filename=None, file=None, **options) It bombs (RuntimeError) if both 'filename' and 'file' are None; 'filename' should be a string, and 'file' a file object (or something that provides 'readline()' and 'close()' methods). It is recommended that you supply at least 'filename', so that TextFile can include it in warning messages. If 'file' is not supplied, TextFile creates its own using 'io.open()'. The options are all boolean, and affect the value returned by 'readline()': strip_comments [default: true] strip from "#" to end-of-line, as well as any whitespace leading up to the "#" -- unless it is escaped by a backslash lstrip_ws [default: false] strip leading whitespace from each line before returning it rstrip_ws [default: true] strip trailing whitespace (including line terminator!) from each line before returning it skip_blanks [default: true} skip lines that are empty *after* stripping comments and whitespace. (If both lstrip_ws and rstrip_ws are false, then some lines may consist of solely whitespace: these will *not* be skipped, even if 'skip_blanks' is true.) join_lines [default: false] if a backslash is the last non-newline character on a line after stripping comments and whitespace, join the following line to it to form one "logical line"; if N consecutive lines end with a backslash, then N+1 physical lines will be joined to form one logical line. collapse_join [default: false] strip leading whitespace from lines that are joined to their predecessor; only matters if (join_lines and not lstrip_ws) errors [default: 'strict'] error handler used to decode the file content Note that since 'rstrip_ws' can strip the trailing newline, the semantics of 'readline()' must differ from those of the builtin file object's 'readline()' method! In particular, 'readline()' returns None for end-of-file: an empty string might just be a blank line (or an all-whitespace line), if 'rstrip_ws' is true but 'skip_blanks' is not.rstrict)strip_comments skip_blanks lstrip_ws rstrip_ws join_lines collapse_joinerrorsNcKs|dkr|dkrtdx>|jjD]0}||krBt||||q$t|||j|q$Wx&|jD]}||jkrbtd|qbW|dkr|j|n||_||_d|_g|_ dS)zConstruct a new TextFile object. At least one of 'filename' (a string) and 'file' (a file-like object) must be supplied. They keyword argument options are described above and affect the values returned by 'readline()'.Nz7you must supply either or both of 'filename' and 'file'zinvalid TextFile option '%s'r) RuntimeErrordefault_optionskeyssetattrKeyErroropenfilenamefile current_linelinebuf)selfrrZoptionsoptr+/usr/lib64/python3.6/distutils/text_file.py__init__Ns  zTextFile.__init__cCs&||_tj|jd|jd|_d|_dS)zyOpen a new file named 'filename'. This overrides both the 'filename' and 'file' arguments to the constructor.r)r rN)riorr rr)rrrrrrosz TextFile.opencCs$|j}d|_d|_d|_|jdS)ziClose the current file and forget everything we know about it (filename, current line number).N)rrrclose)rrrrrrvs zTextFile.closecCsjg}|dkr|j}|j|jdt|ttfrD|jdt|n|jd||jt|dj|S)Nz, z lines %d-%d: z line %d: )rappendr isinstancelisttuplestrjoin)rmsglineZoutmsgrrr gen_errorszTextFile.gen_errorcCstd|j||dS)Nzerror: ) ValueErrorr')rr%r&rrrerrorszTextFile.errorcCs tjjd|j||ddS)aPrint (to stderr) a warning message tied to the current logical line in the current file. If the current logical line in the file spans multiple physical lines, the warning refers to the whole range, eg. "lines 3-5". If 'line' supplied, it overrides the current line number; it may be a list or tuple to indicate a range of physical lines, or an integer for a single physical line.z warning:  N)sysstderrwriter')rr%r&rrrwarnsz TextFile.warncCs|jr|jd }|jd =|Sd}x|jj}|dkr:d}|jr|r|jd}|dkrXnX|dksp||ddkr|ddkrdpd}|d||}|jdkrq$n |jdd}|jo|r |dkr|jd |S|j r|j }||}t |j t r |j dd|j d<n|j |j dg|_ n:|dkr.dSt |j t rN|j dd|_ n |j d|_ |jrt|jrt|j}n"|jr|j }n|jr|j}|dks|dkr|jrq$|jr|ddkr|dd}q$|ddd kr|ddd}q$|SdS)aURead and return a single logical line from the current file (or from an internal buffer if lines have previously been "unread" with 'unreadline()'). If the 'join_lines' option is true, this may involve reading multiple physical lines concatenated into a single string. Updates the current line number, so calling 'warn()' after 'readline()' emits a warning about the physical line(s) just read. Returns None on end-of-file, since the empty string can occur if 'rstrip_ws' is true but 'strip_blanks' is not.rrN#r\r*z\#z2continuation line immediately precedes end-of-filez\ r2r2r2r2r2r3)rrreadlinerfindstripreplacer r.r lstripr rr!rrrstripr)rr&Z buildup_lineposZeolrrrr4sf            zTextFile.readlinecCs,g}x"|j}|dkr|S|j|qWdS)zWRead and return the list of all logical lines remaining in the current file.N)r4r)rlinesr&rrr readliness zTextFile.readlinescCs|jj|dS)zPush 'line' (a string) onto an internal buffer that will be checked by future 'readline()' calls. Handy for implementing a parser with line-at-a-time lookahead.N)rr)rr&rrr unreadlineszTextFile.unreadline)NN)N)N)N)__name__ __module__ __qualname____doc__r rrrr'r)r.r4r<r=rrrrr s"9 !  x r)rAr+rrrrrrsPK!=[Ä *__pycache__/extension.cpython-36.opt-2.pycnu[3 \)@s*ddlZddlZGdddZddZdS)Nc@seZdZdddZddZdS) ExtensionNcKst|tstdt|to,tdd|Ds6td||_||_|pHg|_|pRg|_|p\g|_ |pfg|_ |ppg|_ |pzg|_ | pg|_ | pg|_| pg|_| pg|_| pg|_|pg|_||_||_t|dkrdd|D}djt|}d |}tj|dS) Nz'name' must be a stringcss|]}t|tVqdS)N) isinstancestr).0vr+/usr/lib64/python3.6/distutils/extension.py jsz%Extension.__init__..z#'sources' must be a list of stringsrcSsg|] }t|qSr)repr)rZoptionrrr sz&Extension.__init__..z, zUnknown Extension options: %s)rrAssertionErrorlistallnamesources include_dirs define_macros undef_macros library_dirs librariesruntime_library_dirs extra_objectsextra_compile_argsextra_link_argsexport_symbols swig_optsdependslanguageoptionallenjoinsortedwarningswarn)selfrrrrrrrrrrrrrrrrkwZoptionsmsgrrr__init__Vs4              zExtension.__init__cCsd|jj|jj|jt|fS)Nz<%s.%s(%r) at %#x>) __class__ __module__ __qualname__rid)r$rrr__repr__s zExtension.__repr__)NNNNNNNNNNNNNN)__name__r)r*r'r,rrrrrsD !rcCsddlm}m}m}ddlm}ddlm}||}||dddddd}zhg}x\|j} | dkrfP|j | rrqT| d| d#kodknr|j d| qT|| |} || } | d} t | g} d} x| ddD]}| dk r| j |d} qt jj|d}|dd }|d d}|d$kr8| jj |q|dkrP| jj |q|dkr|jd}|d%kr| jj |dfn$| jj |d|||d dfq|dkr| jj |q|dkr| jj |q|dkr| jj |q|dkr| jj |q|dkr| jj |q|dkr0| j} q|dkrB| j} q|dkrT| j} q|dkrx| jj ||s| j} q|d&kr| jj |q|j d"|qW|j | qTWWd|jX|S)'Nr)parse_makefileexpand_makefile_vars _variable_rx)TextFile) split_quoted)Zstrip_commentsZ skip_blanksZ join_linesZ lstrip_wsZ rstrip_ws*z'%s' lines not handled yet.c.cc.cpp.cxx.c++.m.mmz-Iz-D=z-Uz-Cz-lz-Lz-Rz-rpathz-Xlinkerz -Xcompilerz-u.a.so.sl.o.dylibzunrecognized argument '%s')r6r7r8r9r:r;r<rC)r>r?r@rArB)Zdistutils.sysconfigr.r/r0Zdistutils.text_filer1Zdistutils.utilr2readlinematchr#rappendospathsplitextrrfindrrrrrrrrclose)filenamer.r/r0r1r2varsfile extensionslineZwordsmoduleZextZappend_next_wordZwordsuffixZswitchvalueZequalsrrrread_setup_files                          rT)rGr"rrTrrrrs zPK!J(__pycache__/unixccompiler.cpython-36.pycnu[3 Ii:@sdZddlZddlZddlZddlmZddlmZddlm Z m Z m Z ddl m Z mZmZmZddlmZejdkr~ddlZGd d d e ZdS) a9distutils.unixccompiler Contains the UnixCCompiler class, a subclass of CCompiler that handles the "typical" Unix-style command-line C compiler: * macros defined with -Dname[=value] * macros undefined with -Uname * include search directories specified with -Idir * libraries specified with -lllib * library search directories specified with -Ldir * compile handled by 'cc' (or similar) executable with -c option: compiles .c to .o * link static library handled by 'ar' command (possibly with 'ranlib') * link shared library handled by 'cc -shared' N) sysconfig)newer) CCompilergen_preprocess_optionsgen_lib_options)DistutilsExecError CompileErrorLibError LinkError)logdarwinc seZdZdZddgdgdgddgdgddgddZejddd krNd ged <d d d dddgZdZdZ dZ dZ dZ dZ ZZeZejdkrdZfddZd.ddZddZd/d d!Zd0d"d#Zd$d%Zd&d'Zd(d)Zd*d+Zd1d,d-ZZS)2 UnixCCompilerZunixNZccz-sharedarz-cr) preprocessorcompiler compiler_so compiler_cxx linker_so linker_exearchiverranlibr rz.cz.Cz.ccz.cxxz.cppz.mz.oz.az.soz.dylibz.tbdzlib%s%scygwinz.execs@tj|||\}}}tjd}|r6||kr6|j||||fS)z'Remove standard library path from rpathLIBDIR)super _fix_lib_argsrget_config_varremove)self libraries library_dirsruntime_library_dirsZlibdir) __class__//usr/lib64/python3.6/distutils/unixccompiler.pyrUs    zUnixCCompiler._fix_lib_argsc Cs|jd||}|\}}}t||} |j| } |r>| jd|g|rN|| dd<|r\| j|| j||js~|dks~t||r|r|jtj j |y|j | Wn*t k r} zt | WYdd} ~ XnXdS)Nz-or)Z_fix_compile_argsrrextendappendZforcermkpathospathdirnamespawnrr) rsourceZ output_fileZmacrosZ include_dirs extra_preargsextra_postargs fixed_argsignorepp_optsZpp_argsmsgr#r#r$ preprocess^s$      zUnixCCompiler.preprocessc Csp|j}tjdkr tj|||}y |j|||d|g|Wn*tk rj}zt|WYdd}~XnXdS)Nr z-o)rsysplatform _osx_supportcompiler_fixupr+rr) robjsrcZextZcc_argsr.r1rr2r#r#r$_compilexs   zUnixCCompiler._compilercCs|j||\}}|j||d}|j||r|jtjj||j|j|g||j |j ry|j|j |gWqt k r}zt |WYdd}~XqXn t jd|dS)N) output_dirzskipping %s (up-to-date))_fix_object_argslibrary_filename _need_linkr'r(r)r*r+robjectsrrr r debug)rr?Zoutput_libnamer;r@ target_langoutput_filenamer2r#r#r$create_static_libs zUnixCCompiler.create_static_libcCs|j||\}}|j|||}|\}}}t||||}t|ttdfsPtd|dk rftjj ||}|j ||r||j |d|g}| rdg|dd<| r| |dd<| r|j | |j tjj|y|tjkr|jdd}n|jdd}| dkrR|jrRd}tjj|ddkrDd}xd||krB|d7}q(W|j|||<tjd krjtj||}|j||Wn,tk r}zt|WYdd}~XnXn tjd |dS) Nz%'output_dir' must be a string or Nonez-oz-grzc++env=r zskipping %s (up-to-date))r<rr isinstancestrtype TypeErrorr(r)joinr>r?r%r'r*rZ EXECUTABLErrrbasenamer4r5r6r7r+rr r r@)rZ target_descr?rBr;rr r!Zexport_symbolsr@r-r.Z build_temprAr/Zlib_optsZld_argsZlinkerir2r#r#r$linksH      zUnixCCompiler.linkcCsd|S)Nz-Lr#)rdirr#r#r$library_dir_optionsz UnixCCompiler.library_dir_optioncCsd|kpd|kS)Ngcczg++r#)rZ compiler_namer#r#r$_is_gccszUnixCCompiler._is_gcccCstjjtjd}tjdddkr,d|StjdddkrFd|Stjddd krz|j|rnd d|gSd d|gStjddd kstjddd krd|gS|j|rtjddkrd|Sd|Snd|SdS)NCCrr z-LZfreebsdz -Wl,-rpath=zhp-uxz-Wl,+sz+sZirix646Zosf1V5z-rpathGNULDyesz-Wl,--enable-new-dtags,-Rz-Wl,-Rz-R)r(r)rLrrr4r5rR)rrOrr#r#r$runtime_library_dir_options    $  z(UnixCCompiler.runtime_library_dir_optioncCsd|S)Nz-lr#)rlibr#r#r$library_option szUnixCCompiler.library_optioncCs|j|dd}|j|dd}|j|dd}|j|dd}tjdkrptjd}tjd|} | dkrfd } n | jd } x|D]} tj j | |} tj j | |} tj j | |}tj j | |}tjdko| j d s| j d o| j d  rBtj j | | d d|} tj j | | d d|} tj j | | d d|}tj j | | d d|}tj j | rT| Stj j |rf|Stj j | rx| Stj j |rx|SqxWdS)Nshared)Zlib_typedylib xcode_stubstaticr CFLAGSz-isysroot\s+(\S+)/rEz/System/z/usr/z /usr/local/) r=r4r5rrresearchgroupr(r)rK startswithexists)rdirsrYr@Zshared_fZdylib_fZ xcode_stub_fZstatic_fZcflagsmZsysrootrOr[r\r^r]r#r#r$find_library_file s>       zUnixCCompiler.find_library_file)NNNNN)NrN) NNNNNrNNNN)r)__name__ __module__ __qualname__Z compiler_typeZ executablesr4r5Zsrc_extensionsZ obj_extensionZstatic_lib_extensionZshared_lib_extensionZdylib_lib_extensionZxcode_stub_lib_extensionZstatic_lib_formatZshared_lib_formatZdylib_lib_formatZxcode_stub_lib_formatZ exe_extensionrr3r:rCrNrPrRrXrZrh __classcell__r#r#)r"r$r -sF       6,r )__doc__r(r4raZ distutilsrZdistutils.dep_utilrZdistutils.ccompilerrrrZdistutils.errorsrrr r r r5r6r r#r#r#r$s    PK!Fk&__pycache__/spawn.cpython-36.opt-1.pycnu[3 \@sdZddlZddlZddlmZmZddlmZddlm Z dddZ d d Z dd d Z ej d krvddlmZdadadddZdddZdS)zdistutils.spawn Provides the 'spawn()' function, a front-end to various platform- specific functions for launching another program in a sub-process. Also provides the 'find_executable()' to search the path for a given executable name. N)DistutilsPlatformErrorDistutilsExecError)DEBUG)logcCsNt|}tjdkr"t|||dn(tjdkresz _spawn_posix...cSsg|] }t|qSr)r()r)r*rrrr+kszF$MACOSX_DEPLOYMENT_TARGET mismatch: now "%s" but "%s" during configure)r&zunable to execute %r: %s rz(unable to execute %r for unknown reasonszcommand %r failed: %sz"command %r terminated by signal %dz%command %r failed with exit status %dz1unknown error executing %r: termination status %dr)"rrrr execvpexecvsysplatform _cfg_targetr%get_config_varsplit_cfg_target_splitenvirongetrdictexecvpeexecveforkr!rstderrwritestrerror_exitwaitpidrr WIFSIGNALEDWTERMSIG WIFEXITED WEXITSTATUS WIFSTOPPED)rrrrr"Zexec_fnenvZ cur_targetZmy_msgpideZstatusr#Z exit_statusrrrr Xs     &     r cCs|dkrtjjdtj}|jtj}tjj|\}}tj dkrN|dkrN|d}tjj |sx*|D]"}tjj ||}tjj |r`|Sq`WdS|SdS)zTries to find 'executable' in the directories listed in 'path'. A string listing directories separated by 'os.pathsep'; defaults to os.environ['PATH']. Returns the complete filename or None if not found. NPATHZwin32z.exe) r r5r6defpathr3pathseppathsplitextr/r0isfiler)r"rKpathsbaseZextpfrrrrs    r)rrr)rrr)rrr)N)__doc__r/r Zdistutils.errorsrrZdistutils.debugrZ distutilsrrrrr0r%r1r4r rrrrrs       QPK!xx22-__pycache__/msvccompiler.cpython-36.opt-2.pycnu[3 \\@sddlZddlZddlmZmZmZmZmZddlm Z m Z m Z ddl m Z dZy,ddlZdZeZejZejZejZejZWnhek ry4ddlZddlZdZeZejZejZejZejZWnek re jdYnXYnXerejejejej fZ!dd Z"d d Z#d d Z$GdddZ%ddZ&ddZ'ddZ(Gddde Z)e&dkr~e j*de)Z+ddl,m)Z)ddl,m%Z%dS)N)DistutilsExecErrorDistutilsPlatformError CompileErrorLibError LinkError) CCompilergen_preprocess_optionsgen_lib_options)logFTzWarning: Can't read registry to find the necessary compiler setting Make sure that Python modules winreg, win32api or win32con are installed.cCsnyt||}Wntk r"dSXg}d}x||j kr>|}d|}y"|j|jg| |g|gWqhtk r8}zt|WYdd}~XqhXqhn||jkrtj j|}tj j|}yl|j|jgd|d|g|gtj jtj j|\}}tj j||d}|j|jgd|g|gWqhtk r}zt|WYdd}~XqhXqhntd||fd |}y&|j|jg| | ||g|Wqhtk rj}zt|WYdd}~XqhXqhW| S) Nz/cz/Tcz/Tpz/foz-hz-rz.rcz"Don't know how to compile %s to %sz/Fo)rXrkZ_setup_compilerextendrhrgr/rMr-abspath _c_extensions_cpp_extensionsrrspawnrbrrrtdirnamercrmrqrfr`)r)Zsourcesrvr'Z include_dirsdebug extra_preargsextra_postargsZdependsZ compile_infoobjectsZpp_optsZbuildZ compile_optsobjsrcrwZ input_optZ output_optmsgZh_dirZrc_dirr_Zrc_filerrrcompileWsj              zMSVCCompiler.compilec Cs|js|j|j||\}}|j||d}|j||r|d|g}|rJy|j|jg|Wqtk r}zt|WYdd}~XqXn t j d|dS)N)rvz/OUT:zskipping %s (up-to-date)) rXrk_fix_object_argslibrary_filename _need_linkr}rZrrr r) r)rZoutput_libnamervr target_langoutput_filenameZlib_argsrrrrcreate_static_libs zMSVCCompiler.create_static_libcCs|js|j|j||\}}|j|||}|\}}}|rL|jdt|t||||}|dk rptjj ||}|j ||r|t j kr| r|j dd}q|jdd}n| r|j }n|j}g}x|pgD]}|jd|qW||||d|g}|dk rLtjjtjj|\}}tjj tjj|d|j|}|jd|| r^| |dd<| rn|j| |jtjj|y|j|jg|Wn,tk r}zt|WYdd}~XnXn tjd|dS)Nz5I don't know what to do with 'runtime_library_dirs': r z/EXPORT:z/OUT:rz/IMPLIB:zskipping %s (up-to-date))rXrkrZ _fix_lib_argswarnstrr rMr-rfrrZ EXECUTABLErjrirrmrqr~rryZmkpathr}rarrr r)r)Z target_descrrrvZ librariesZ library_dirsZruntime_library_dirsZexport_symbolsrrrZ build_temprZ fixed_argsZlib_optsZldflagsZ export_optsZsymZld_argsZdll_nameZdll_extZ implib_filerrrrlinksV       zMSVCCompiler.linkcCsd|S)Nz /LIBPATH:r)r)dirrrrlibrary_dir_optionszMSVCCompiler.library_dir_optioncCs tddS)NztjdjdD]*}tjjtjj||}tjj|rH|SqHW|S)NZPathr\)r]rMr-rfrzisfiler^rD)r)Zexer1fnrrrr_5s   zMSVCCompiler.find_exex86cCstsgS|d}|jdkr,d|j|jf}nd|j|f}xHtD]@}t||}|r@|jdkrr|jj||jdS||jdSq@W|jdkrx,tD]$}t|d|jdk r|jdPqWgS) Nz dirsrRz6%s\%0.1f\VC\VC_OBJECTS_PLATFORM_INFO\Win32\Directoriesz?%s\6.0\Build System\Components\Platforms\Win32 (%s)\Directoriesr\r:z%s\6.0zIt seems you have Visual Studio 6 installed, but the expected registry settings are not present. You must at least run the Visual Studio GUI once so that these entries are created.) _can_read_regrSrUr,r rVr6rDr)r)r-platformrrrrrrrdKs(        zMSVCCompiler.get_msvc_pathscCs6|dkr|jd}n |j|}|r2dj|tj|<dS)NrZZlibraryr\)rdrfrMr^)r)rr1rrrreos   zMSVCCompiler.set_path_env_var)rrr)rrl)NNNrNNN)NrN) NNNNNrNNNN)r)r)r7r8r9Z compiler_typeZ executablesr{r|rrrtrprsruZstatic_lib_extensionZshared_lib_extensionZstatic_lib_formatZshared_lib_formatZ exe_extensionr+rkrxrrrrrrrr_rdrerrrrrQsN  B  V  F  $rQg @z3Importing new compiler from distutils.msvc9compiler)rQ)r&)-rArMZdistutils.errorsrrrrrZdistutils.ccompilerrrr Z distutilsr rwinregZhkey_modZ OpenKeyExr ZEnumKeyrZ EnumValuererrorr ImportErrorZwin32apiZwin32coninfoZ HKEY_USERSHKEY_CURRENT_USERHKEY_LOCAL_MACHINEZHKEY_CLASSES_ROOTr,rr rr&rHrLrPrQrZOldMSVCCompilerZdistutils.msvc9compilerrrrr s\      - 9   PK!`E(11-__pycache__/bcppcompiler.cpython-36.opt-2.pycnu[3 \W:@stddlZddlmZmZmZmZmZmZddlm Z m Z m Z ddl m Z ddlmZddlmZGddde ZdS) N)DistutilsExecErrorDistutilsPlatformError CompileErrorLibError LinkErrorUnknownFileError) CCompilergen_preprocess_optionsgen_lib_options) write_file)newer)logc @seZdZdZiZdgZdddgZeeZdZdZ dZ d Z Z d Z dd d ZdddZdddZdddZd ddZd!ddZd"ddZdS)# BCPPCompilerZbcppz.cz.ccz.cppz.cxxz.objz.libz.dllz%s%sz.exercCstj||||d|_d|_d|_d|_ddddg|_ddddg|_d d dd g|_d d dd g|_ g|_ d dd g|_ d dd d g|_ dS) Nz bcc32.exez ilink32.exeztlib.exez/tWMz/O2z/qz/g0z/Odz/Tpdz/Gnz/xz/r) r__init__cclinkerlibZpreprocess_optionscompile_optionscompile_options_debugldflags_sharedldflags_shared_debugZldflags_static ldflags_exeldflags_exe_debug)selfverboseZdry_runforcer./usr/lib64/python3.6/distutils/bcppcompiler.pyr5s zBCPPCompiler.__init__Nc Cs|j||||||\}} }} } |p$g} | jd|rB| j|jn | j|jxD| D]:} y| | \}}Wntk rwVYnXtjj|}tjj| } |j tjj | |dkrqV|dkry|j dd| |gWqVt k r}zt |WYdd}~XqVXqV||jkrd}n||jkr,d}nd}d| }y,|j |jg| | ||g||gWqVt k r}zt |WYdd}~XqVXqVW| S) Nz-cz.resz.rcZbrcc32z-foz-Pz-o)Z_setup_compileappendextendrrKeyErrorospathnormpathmkpathdirnamespawnrr _c_extensions_cpp_extensionsr)rZsources output_dirmacros include_dirsdebug extra_preargsextra_postargsZdependsobjectspp_optsZbuildZ compile_optsobjsrcextmsgZ input_optZ output_optrrrcompileQsF        (zBCPPCompiler.compilec Cs|j||\}}|j||d}|j||r~|dg|}|r:y|j|jg|Wqtk rz}zt|WYdd}~XqXn tjd|dS)N)r*z/uzskipping %s (up-to-date)) _fix_object_argslibrary_filename _need_linkr'rrrr r-) rr0Zoutput_libnamer*r- target_langoutput_filenameZlib_argsr5rrrcreate_static_libs  zBCPPCompiler.create_static_libc Cs|j||\}}|j|||\}}}|r8tjdt||dk rNtjj||}|j||r|t j krd}| r~|j dd}q|j dd}n&d}| r|j dd}n|jdd}|dkrd}ntjj|\}}tjj|\}}tjj|d}tjj|d|}dg}x&|pgD]}|jd||fqW|jt||fd |ttjj|}|g}g}xF|D]>}tjjtjj|\}}|d kr|j|n |j|qfWx$|D]}|jd tjj|qW|jd |j||jd |g|jdx<|D]4}|j||| }|dkr(|j|n |j|qW|jd|jd|jd |g|jd |j|| r| |dd<| r|j| |jtjj|y|j|jg|Wn,tk r}zt|WYdd}~XnXn tjd|dS)Nz7I don't know what to do with 'runtime_library_dirs': %sZc0w32Zc0d32rrz%s.defZEXPORTSz %s=_%sz writing %sz.resz/L%sz/L.,z,,Zimport32Zcw32mtzskipping %s (up-to-date)) r7Z _fix_lib_argsr warnstrr"r#joinr9rZ EXECUTABLErrrrsplitsplitextr&rZexecuter mapr$normcaser find_library_filer%r'rrrr-) rZ target_descr0r;r*Z librariesZ library_dirsZruntime_library_dirsZexport_symbolsr-r.r/Z build_tempr:Z startup_objZld_argsZdef_fileheadtailmodnamer4Ztemp_dircontentsZsymZobjects2Z resourcesfilebaselrlibfiler5rrrlinks|                    zBCPPCompiler.linkc Csv|r"|d}|d|d||f}n |d|f}xB|D]6}x0|D](}tjj||j|}tjj|r>|Sq>Wq4WdSdS)NZ_dZ_bcpp)r"r#r@r8exists) rdirsrr-ZdlibZ try_namesdirnamerMrrrrE4s      zBCPPCompiler.find_library_filercCs|dkr d}g}x|D]}tjjtjj|\}}||jddgkrTtd||f|rdtjj|}|dkr|jtjj|||q|dkr|jtjj||dq|jtjj|||j qW|S)Nrz.rcz.resz"unknown file type '%s' (from '%s')) r"r#rBrDsrc_extensionsrbasenamerr@ obj_extension)rZsource_filenamesZ strip_dirr*Z obj_namesZsrc_namerKr4rrrobject_filenamesNs"    zBCPPCompiler.object_filenamesc Cs|jd||\}}}t||}dg|} |dk r>| jd||rN|| dd<|r\| j|| j||js~|dks~t||r|r|jtjj |y|j | Wn2t k r} zt | t | WYdd} ~ XnXdS)Nz cpp32.exez-or)Z_fix_compile_argsr rr rr r%r"r#r&r'rprintr) rsourceZ output_filer+r,r.r/_r1Zpp_argsr5rrr preprocessis$      zBCPPCompiler.preprocess)rrr)NNNrNNN)NrN) NNNNNrNNNN)r)rr)NNNNN)__name__ __module__ __qualname__Z compiler_typeZ executablesr(r)rSrUZstatic_lib_extensionZshared_lib_extensionZstatic_lib_formatZshared_lib_formatZ exe_extensionrr6r<rNrErVrZrrrrrsH   B  |  r)r"Zdistutils.errorsrrrrrrZdistutils.ccompilerrr r Zdistutils.file_utilr Zdistutils.dep_utilr Z distutilsr rrrrrs     PK!͢%__pycache__/dist.cpython-36.opt-1.pycnu[3 \ @sdZddlZddlZddlZddlmZy ddlZWnek rLdZYnXddlTddl m Z m Z ddl m Z mZmZddlmZddlmZejd ZGd d d ZGd d d ZddZdS)z}distutils.dist Provides the Distribution class, which represents the module distribution being built/installed/distributed. N)message_from_file)*) FancyGetopttranslate_longopt) check_environ strtobool rfc822_escape)log)DEBUGz^[a-zA-Z]([a-zA-Z0-9_]*)$c@speZdZdZd~ddddgZdZdddddddddddddddddddddgZd>d?eDZddiZdd@dAZ dBdCZ ddEdFZ dGdHZ ddIdJZ dKdLZdMdNZdOdPZdQdRZddgfdSdTZdUdVZdWdXZdYdZZd[d\Zd]d^Zd_d`ZddadbZddcddZddfdgZejfdhdiZdjdkZdldmZ dndoZ!dpdqZ"drdsZ#dtduZ$dvdwZ%dxdyZ&dzd{Z'd|d}Z(dS) DistributionaThe core of the Distutils. Most of the work hiding behind 'setup' is really done within a Distribution instance, which farms the work out to the Distutils commands specified on the command line. Setup scripts will almost never instantiate Distribution directly, unless the 'setup()' function is totally inadequate to their needs. However, it is conceivable that a setup script might wish to subclass Distribution for some specialized purpose, and then pass the subclass to 'setup()' as the 'distclass' keyword argument. If so, it is necessary to respect the expectations that 'setup' has of Distribution. See the code for 'setup()', in core.py, for details. verbosevrun verbosely (default)quietq!run quietly (turns verbosity off)dry-runndon't actually do anythinghelphshow detailed help message no-user-cfgN-ignore pydistutils.cfg in your home directoryzCommon commands: (see '--help-commands' for more) setup.py build will build the package underneath 'build/' setup.py install will install the package help-commandslist all available commandsnameprint package nameversionVprint package versionfullnameprint -authorprint the author's name author-email print the author's email address maintainerprint the maintainer's namemaintainer-email$print the maintainer's email addresscontact7print the maintainer's name if known, else the author's contact-email@print the maintainer's email address if known, else the author'surlprint the URL for this packagelicense print the license of the packagelicencealias for --license descriptionprint the package descriptionlong-description"print the long package description platformsprint the list of platforms classifiersprint the list of classifierskeywordsprint the list of keywordsprovides+print the list of packages/modules providedrequires+print the list of packages/modules required obsoletes0print the list of packages/modules made obsoletecCsg|]}t|dqS)r)r).0xrH&/usr/lib64/python3.6/distutils/dist.py sszDistribution.cCsd|_d|_d|_x|jD]}t||dqWt|_x,|jjD] }d|}t||t|j|q@Wi|_ d|_ d|_ d|_ i|_ g|_d|_i|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_i|_i|_|r8|jd}|dk rH|d=xD|jD]8\}}|j |}x"|jD]\} } d| f|| <q(Wq Wd|kr|d|d <|d=d } t!dk r~t!j"| nt#j$j%| d x|jD]\} } t&|jd | rt|jd | | njt&|j| rt|j| | nLt&|| rt|| | n2d t'| } t!dk r"t!j"| nt#j$j%| d qWd|_(|j dk r|x0|j D]&} | j)dsdP| dkrRd|_(PqRW|j*dS)a0Construct a new Distribution instance: initialize all the attributes of a Distribution, and then use 'attrs' (a dictionary mapping attribute names to values) to assign some of those attributes their "real" values. (Any attributes not mentioned in 'attrs' will be assigned to some null value: 0, None, an empty list or dictionary, etc.) Most importantly, initialize the 'command_obj' attribute to the empty dictionary; this will be filled in with real command objects by 'parse_command_line()'. rrget_Noptionsz setup scriptr4r2z:'licence' distribution option is deprecated; use 'license' Zset_zUnknown distribution option: %sT-z --no-user-cfgF)+r dry_runrdisplay_option_namessetattrDistributionMetadatametadata_METHOD_BASENAMESgetattrcmdclasscommand_packages script_name script_argscommand_optionsZ dist_filespackagesZ package_dataZ package_dir py_modules librariesheaders ext_modulesZ ext_packageZ include_dirsZ extra_pathscripts data_filesZpassword command_objhave_rungetitemsget_option_dictwarningswarnsysstderrwritehasattrrepr want_user_cfg startswithfinalize_options)selfZattrsattrbasenameZ method_namerMcommandZ cmd_optionsopt_dictoptvalmsgkeyargrHrHrI__init__zs                   zDistribution.__init__cCs&|jj|}|dkr"i}|j|<|S)zGet the option dictionary for a given command. If that command's option dictionary hasn't been created yet, then create it and return the new dictionary; otherwise, return the existing option dictionary. N)r[re)rrrudictrHrHrIrgs zDistribution.get_option_dictrLc Csddlm}|dkr"t|jj}|dk r@|j|||d}|sV|j|ddSxt|D]l}|jj|}|dkr|j|d|q\|j|d|||}x$|jdD]}|j|d|qWq\WdS)Nr)pformatz zno commands known yetzno option dict for '%s' commandzoption dict for '%s' command:rN)pprintr~sortedr[keysannounceresplit) rrheadercommandsindentr~Zcmd_namervoutlinerHrHrIdump_option_dicts&s&    zDistribution.dump_option_dictscCsg}ttjjtjdj}tjj|d}tjj|rB|j |tj dkrRd}nd}|j rtjjtjj d|}tjj|r|j |d}tjj|r|j |t r|jdd j||S) aFind as many configuration files as should be processed for this platform, and return a list of filenames in the order in which they should be parsed. The filenames returned are guaranteed to exist (modulo nasty race conditions). There are three possible config files: distutils.cfg in the Distutils installation directory (ie. where the top-level Distutils __inst__.py file lives), a file in the user's home directory named .pydistutils.cfg on Unix and pydistutils.cfg on Windows/Mac; and setup.cfg in the current directory. The file in the user's home directory can be disabled with the --no-user-cfg option. distutilsz distutils.cfgposixz.pydistutils.cfgzpydistutils.cfg~z setup.cfgzusing config files: %sz, )rospathdirnamerjmodules__file__joinisfileappendrro expanduserr r)rrfilesZsys_dirZsys_fileZ user_filenameZ user_fileZ local_filerHrHrIfind_config_filesBs&       zDistribution.find_config_filescCsddlm}tjtjkr8ddddddd d d d d ddg }ng}t|}|dkrT|j}trb|jd|}x|D]}tr|jd||j |xf|j D]Z}|j |}|j |}x@|D]8} | dkr| |kr|j || } | jdd} || f|| <qWqW|jqnWd|jkrx|jdjD]\} \} } |jj | } yF| rRt|| t|  n(| dkrnt|| t| n t|| | Wn,tk r} zt| WYdd} ~ XnXqWdS)Nr) ConfigParserz install-basezinstall-platbasez install-libzinstall-platlibzinstall-purelibzinstall-headerszinstall-scriptsz install-dataprefixz exec-prefixhomeuserrootz"Distribution.parse_config_files():z reading %s__name__rO_globalr rP)r rP)Z configparserrrjr base_prefix frozensetrr rreadZsectionsrMrgrereplacer|r[rf negative_optrRr ValueErrorDistutilsOptionError)rr filenamesrZignore_optionsparserfilenameZsectionrMrvrwrxsrcaliasryrHrHrIparse_config_filesrsJ               zDistribution.parse_config_filescCs|j}g|_t||j}|j|j|jddi|j|j|d}|j }t j |j |j |rhdSx |r|j||}|dkrjdSqjW|jr|j|t|jdk|jddS|jstddS) aParse the setup script's command line, taken from the 'script_args' instance attribute (which defaults to 'sys.argv[1:]' -- see 'setup()' in core.py). This list is first processed for "global options" -- options that set attributes of the Distribution instance. Then, it is alternately scanned for Distutils commands and options for that command. Each new command terminates the options for the previous command. The allowed options for a command are determined by the 'user_options' attribute of the command class -- thus, we have to be able to load command classes in order to parse the command line. Any error in that 'options' attribute raises DistutilsGetoptError; any error on the command-line raises DistutilsArgError. If no Distutils commands were found on the command line, raises DistutilsArgError. Return true if command-line was successfully parsed and we should carry on with executing commands; false if no errors but we shouldn't execute commands (currently, this only happens if user asks for help). r4r2)argsobjectNr)display_optionsrzno commands suppliedT)_get_toplevel_optionsrrrset_negative_aliasesrZ set_aliasesgetoptrZZget_option_orderr Z set_verbosityr handle_display_options_parse_command_optsr _show_helplenDistutilsArgError)rrZtoplevel_optionsrr option_orderrHrHrIparse_command_lines,       zDistribution.parse_command_linecCs |jdgS)zReturn the non-display options recognized at the top level. This includes options that are recognized *only* at the top level as well as options recognized for commands. command-packages=N0list of packages that provide distutils commands)rNr)global_options)rrrHrHrIrsz"Distribution._get_toplevel_optionscCsddlm}|d}tj|s*td||jj|y|j|}Wn*tk rn}zt |WYdd}~XnXt ||st d|t |dot |jtsd}t |||j}t |dr|j}|j|jt |d rt |jtrt|j}ng}|j|j|j||j||j|d d\}} t | d rV| jrV|j|d|gd dSt |d rt |jtrd} xP|jD]F\} } } }t | |j| r|d } t|r|nt d || fq|W| rdS|j|}x&t| jD]\}}d|f||<qW|S)aParse the command-line options for a single command. 'parser' must be a FancyGetopt instance; 'args' must be the list of arguments, starting with the current command (whose options we are about to parse). Returns a new version of 'args' with the next command at the front of the list; will be the empty list if there are no more commands on the command line. Returns None if the user asked for help on this command. r)Commandzinvalid command name '%s'Nz&command class %s must subclass Command user_optionszIcommand class %s must provide 'user_options' attribute (a list of tuples)r help_optionsrr)rrzYinvalid help function %r for help option '%s': must be a callable object (function, etc.)z command line) distutils.cmdr command_rematch SystemExitrrget_command_classDistutilsModuleErrorr issubclassZDistutilsClassErrorrm isinstancerlistrcopyupdaterfix_help_optionsset_option_tablerrrrrZ get_attr_namecallablergvarsrf)rrrrrruZ cmd_classryrrZoptsZhelp_option_foundZ help_optionZshortZdescfuncrvrvaluerHrHrIrsb                   z Distribution._parse_command_optscCsTxNdD]F}t|j|}|dkr qt|trdd|jdD}t|j||qWdS)zSet final values for all the options on the Distribution instance, analogous to the .finalize_options() method of Command objects. r>r:NcSsg|] }|jqSrH)strip)rFZelmrHrHrIrJ_sz1Distribution.finalize_options..,)r>r:)rVrTrstrrrR)rrrsrrHrHrIrqUs   zDistribution.finalize_optionsc Cs ddlm}ddlm}|rR|r*|j}n|j}|j||j|jdt d|rt|j|j |jd t dx|j D]z}t |t rt||r|} n |j|} t| drt | jtr|j| jt| jn |j| j|jd | jt dq|Wt ||jd S) abShow help for the setup script command-line in the form of several lists of command-line options. 'parser' should be a FancyGetopt instance; do not expect it to be returned in the same state, as its option table will be reset to make it generate the correct help text. If 'global_options' is true, lists the global options: --verbose, --dry-run, etc. If 'display_options' is true, lists the "display-only" options: --name, --version, etc. Finally, lists per-command help for every command name or command class in 'commands'. r) gen_usage)rz Global options:rLz*Information display options (just display z!information, ignore any commands)rzOptions for '%s' command:NzKInformation display options (just display information, ignore any commands))distutils.corerrrrrrZ print_help common_usageprintrrrtyperrrmrrrrrrY) rrrrrrrrrMruklassrHrHrIrbs6           zDistribution._show_helpc Csddlm}|jr4|jtdt||jdSd}i}x|jD]}d||d<qDWxt|D]l\}}|r^|j|r^t|}t |j d|}|dkrtdj |n |dkrtd j |nt|d}q^W|S)zIf there were any non-global "display-only" options (--help-commands or the metadata display options) on the command line, display the requested info and return true; else return false. r)rrLrrKr>r:rr<r@rBrDrN)r>r:)r<r@rBrD) rrZ help_commandsprint_commandsrrYrrerrVrTr) rrrrZany_display_optionsZis_display_optionoptionrwrxrrHrHrIrs,  z#Distribution.handle_display_optionscCsnt|dx\|D]T}|jj|}|s0|j|}y |j}Wntk rRd}YnXtd|||fqWdS)zZPrint a subset of the list of all commands -- used by 'print_commands()'. :z(no description available)z %-*s %sN)rrWrerr6AttributeError)rrrr max_lengthcmdrr6rHrHrIprint_command_lists      zDistribution.print_command_listcCsddl}|jj}i}x|D] }d||<qWg}x&|jjD]}|j|s:|j|q:Wd}x$||D]}t||krdt|}qdW|j|d||rt |j|d|dS)anPrint out a help message listing all available commands with a description of each. The list is divided into "standard commands" (listed in distutils.command.__all__) and "extra commands" (mentioned in self.cmdclass, but not a standard command). The descriptions come from the command class attribute 'description'. rNrzStandard commandszExtra commands) distutils.commandru__all__rWrrerrrr)rrr std_commandsis_stdrextra_commandsrrHrHrIrs*     zDistribution.print_commandsc Csddl}|jj}i}x|D] }d||<qWg}x&|jjD]}|j|s:|j|q:Wg}x\||D]P}|jj|}|s|j|}y |j}Wnt k rd}YnX|j||fqdW|S)a>Get a list of (command, description) tuples. The list is divided into "standard commands" (listed in distutils.command.__all__) and "extra commands" (mentioned in self.cmdclass, but not a standard command). The descriptions come from the command class attribute 'description'. rNrz(no description available)) rrurrWrrerrr6r) rrrrrrrrvrr6rHrHrIget_command_lists(        zDistribution.get_command_listcCsN|j}t|tsJ|dkrd}dd|jdD}d|krD|jdd||_|S)z9Return a list of packages from which commands are loaded.NrLcSsg|]}|dkr|jqS)rL)r)rFZpkgrHrHrIrJsz5Distribution.get_command_packages..rzdistutils.commandr)rXrrrinsert)rrZpkgsrHrHrIget_command_packagess  z!Distribution.get_command_packagescCs|jj|}|r|Sx|jD]}d||f}|}yt|tj|}Wntk r^wYnXyt||}Wn&tk rt d|||fYnX||j|<|SWt d|dS)aoReturn the class that implements the Distutils command named by 'command'. First we check the 'cmdclass' dictionary; if the command is mentioned there, we fetch the class object from the dictionary and return it. Otherwise we load the command module ("distutils.command." + command) and fetch the command class from the module. The loaded class is also stored in 'cmdclass' to speed future calls to 'get_command_class()'. Raises DistutilsModuleError if the expected module could not be found, or if that module does not define the expected class. z%s.%sz3invalid command '%s' (no class '%s' in module '%s')zinvalid command '%s'N) rWrer __import__rjr ImportErrorrVrr)rrrurZpkgnameZ module_nameZ klass_namemodulerHrHrIrs(   zDistribution.get_command_classcCsn|jj|}| rj|rjtr(|jd||j|}||}|j|<d|j|<|jj|}|rj|j|||S)aReturn the command object for 'command'. Normally this object is cached on a previous call to 'get_command_obj()'; if no command object for 'command' is in the cache, then we either create and return it (if 'create' is true) or return None. z.z1error in %s: command '%s' has no such option '%s')get_command_namergr rrfZboolean_optionsrrrrrRrrmrr) rrrcZ option_dict command_namersourcerZ bool_optsZneg_optZ is_stringryrHrHrIr]s>           z!Distribution._set_command_optionsrcCsddlm}t||s&|}|j|}n|j}|js8|S|jd|_d|j|<|j||r|x|j D]}|j ||qhW|S)aReinitializes a command to the state it was in when first returned by 'get_command_obj()': ie., initialized but not yet finalized. This provides the opportunity to sneak option values in programmatically, overriding or supplementing user-supplied values from the config files and command line. You'll have to re-finalize the command object (by calling 'finalize_options()' or 'ensure_finalized()') before using it for real. 'command' should be a command name (string) or command object. If 'reinit_subcommands' is true, also reinitializes the command's sub-commands, as declared by the 'sub_commands' class attribute (if it has one). See the "install" command for an example. Only reinitializes the sub-commands that actually matter, ie. those whose test predicates return true. Returns the reinitialized command object. r)r) rrrrrZ finalizedZinitialize_optionsrdrZget_sub_commandsreinitialize_command)rrruZreinit_subcommandsrrsubrHrHrIrs     z!Distribution.reinitialize_commandcCstj||dS)N)r )rrrylevelrHrHrIrszDistribution.announcecCsx|jD]}|j|qWdS)zRun each command that was seen on the setup script command line. Uses the list of commands found and cache of command objects created by 'get_command_obj()'. N)r run_command)rrrrHrHrI run_commandss zDistribution.run_commandscCsD|jj|rdStjd||j|}|j|jd|j|<dS)aDo whatever it takes to run a command (including nothing at all, if the command has already been run). Specifically: if we have already created and run the command named by 'command', return silently without doing anything. If the command named by 'command' doesn't even have a command object yet, create one. Then invoke 'run()' on that command object (or an existing one). Nz running %sr)rdrer inforZensure_finalizedZrun)rrrurrHrHrIrs   zDistribution.run_commandcCst|jp|jpgdkS)Nr)rr\r])rrrHrHrIhas_pure_modulesszDistribution.has_pure_modulescCs|jot|jdkS)Nr)r`r)rrrHrHrIhas_ext_modulesszDistribution.has_ext_modulescCs|jot|jdkS)Nr)r^r)rrrHrHrIhas_c_librariesszDistribution.has_c_librariescCs|jp|jS)N)rr)rrrHrHrI has_modulesszDistribution.has_modulescCs|jot|jdkS)Nr)r_r)rrrHrHrI has_headersszDistribution.has_headerscCs|jot|jdkS)Nr)rar)rrrHrHrI has_scriptsszDistribution.has_scriptscCs|jot|jdkS)Nr)rbr)rrrHrHrIhas_data_filesszDistribution.has_data_filescCs|jo|j o|j S)N)rrr)rrrHrHrIis_pures zDistribution.is_pure)r r rr)rrr)rrr)rrr)rNr)rNr)rNr)rr r!)r"Nr#)r$Nr%)r&Nr')r(Nr))r*Nr+)r,Nr-)r.Nr/)r0Nr1)r2Nr3)r4Nr5)r6Nr7)r8Nr9)r:Nr;)r<Nr=)r>Nr?)r@NrA)rBNrC)rDNrE)N)NNrL)N)r)N)r))r __module__ __qualname____doc__rrrrQrr|rgrrrrrrrqrrrrrrrrrrr INFOrrrrrrrrrrrrHrHrHrIr s    " 0 :C [  1(!" &  , ) r c@seZdZdZdOZdPddZddZddZddZdd Z d!d"Z d#d$Z d%d&Z d'd(Z d)d*Zd+d,Zd-d.Zd/d0Zd1d2Zd3d4Zd5d6ZeZd7d8Zd9d:Zd;d<Zd=d>Zd?d@ZdAdBZdCdDZdEdFZdGdHZdIdJZdKdLZ dMdNZ!dS)QrSz]Dummy class to hold the distribution meta-data: name, version, author, and so forth. rrr$ author_emailr(maintainer_emailr0r2r6long_descriptionr>r:r"r, contact_emailr< download_urlr@rBrDNcCs|dk r|jt|nfd|_d|_d|_d|_d|_d|_d|_d|_ d|_ d|_ d|_ d|_ d|_d|_d|_d|_d|_dS)N) read_pkg_fileopenrrr$rr(rr0r2r6rr>r:r<r r@rBrD)rrrrHrHrIr|s&zDistributionMetadata.__init__cst|fdd}fdd}d}|d|_|d|_|d|_|d |_d |_|d |_d |_|d |_|d |_ dkr|d|_ nd |_ |d|_ |d|_dkr|dj d|_ |d|_|d|_|dkr|d|_|d|_|d|_nd |_d |_d |_d S)z-Reads the metadata values from a file object.cs|}|dkrdS|S)NUNKNOWNrH)rr)ryrHrI _read_fieldsz7DistributionMetadata.read_pkg_file.._read_fieldcsj|d}|gkrdS|S)N)Zget_all)rvalues)ryrHrI _read_list#s z6DistributionMetadata.read_pkg_file.._read_listzmetadata-versionrrZsummaryr$Nz author-emailz home-pager2z download-urlr6r>rplatformZ classifierz1.1rBr@rD)rrrr6r$r(rrr0r2r rrr>r:r<rBr@rD)rrfilerrZmetadata_versionrH)ryrIr s:                 z"DistributionMetadata.read_pkg_filec Cs2ttjj|dddd}|j|WdQRXdS)z7Write the PKG-INFO file into the release tree. zPKG-INFOwzUTF-8)encodingN)r rrrwrite_pkg_file)rrZbase_dirZpkg_inforHrHrIwrite_pkg_infoMs z#DistributionMetadata.write_pkg_infocCsbd}|js"|js"|js"|js"|jr&d}|jd||jd|j|jd|j|jd|j|jd|j |jd|j |jd |j |jd |j |jr|jd |jt |j}|jd |d j|j}|r|jd||j|d|j|j|d|j|j|d|j|j|d|j|j|d|jdS)z9Write the PKG-INFO format data to a file object. z1.0z1.1zMetadata-Version: %s z Name: %s z Version: %s z Summary: %s zHome-page: %s z Author: %s zAuthor-email: %s z License: %s zDownload-URL: %s zDescription: %s rz Keywords: %s ZPlatformZ ClassifierZRequiresZProvidesZ ObsoletesN)r@rBrDr<r rlget_name get_versionget_descriptionget_url get_contactget_contact_email get_licenserget_long_descriptionr get_keywords _write_list get_platformsget_classifiers get_requires get_provides get_obsoletes)rrrrZ long_descr>rHrHrIrTs0  z#DistributionMetadata.write_pkg_filecCs$x|D]}|jd||fqWdS)Nz%s: %s )rl)rrrrrrrHrHrIr vs z DistributionMetadata._write_listcCs |jpdS)Nr )r)rrrHrHrIr|szDistributionMetadata.get_namecCs |jpdS)Nz0.0.0)r)rrrHrHrIrsz DistributionMetadata.get_versioncCsd|j|jfS)Nz%s-%s)rr)rrrHrHrI get_fullnamesz!DistributionMetadata.get_fullnamecCs |jpdS)Nr )r$)rrrHrHrI get_authorszDistributionMetadata.get_authorcCs |jpdS)Nr )r)rrrHrHrIget_author_emailsz%DistributionMetadata.get_author_emailcCs |jpdS)Nr )r()rrrHrHrIget_maintainersz#DistributionMetadata.get_maintainercCs |jpdS)Nr )r)rrrHrHrIget_maintainer_emailsz)DistributionMetadata.get_maintainer_emailcCs|jp|jpdS)Nr )r(r$)rrrHrHrIrsz DistributionMetadata.get_contactcCs|jp|jpdS)Nr )rr)rrrHrHrIrsz&DistributionMetadata.get_contact_emailcCs |jpdS)Nr )r0)rrrHrHrIrszDistributionMetadata.get_urlcCs |jpdS)Nr )r2)rrrHrHrIrsz DistributionMetadata.get_licensecCs |jpdS)Nr )r6)rrrHrHrIrsz$DistributionMetadata.get_descriptioncCs |jpdS)Nr )r)rrrHrHrIrsz)DistributionMetadata.get_long_descriptioncCs |jpgS)N)r>)rrrHrHrIrsz!DistributionMetadata.get_keywordscCs |jp dgS)Nr )r:)rrrHrHrIr!sz"DistributionMetadata.get_platformscCs |jpgS)N)r<)rrrHrHrIr"sz$DistributionMetadata.get_classifierscCs |jpdS)Nr )r )rrrHrHrIget_download_urlsz%DistributionMetadata.get_download_urlcCs |jpgS)N)rB)rrrHrHrIr#sz!DistributionMetadata.get_requirescCs,ddl}x|D]}|jj|qW||_dS)Nr)distutils.versionpredicateversionpredicateVersionPredicaterB)rrrrr rHrHrI set_requiress z!DistributionMetadata.set_requirescCs |jpgS)N)r@)rrrHrHrIr$sz!DistributionMetadata.get_providescCs:dd|D}x |D]}ddl}|jj|qW||_dS)NcSsg|] }|jqSrH)r)rFr rHrHrIrJsz5DistributionMetadata.set_provides..r)r,r-Zsplit_provisionr@)rrrr rrHrHrI set_providess  z!DistributionMetadata.set_providescCs |jpgS)N)rD)rrrHrHrIr%sz"DistributionMetadata.get_obsoletescCs,ddl}x|D]}|jj|qW||_dS)Nr)r,r-r.rD)rrrrr rHrHrI set_obsoletess z"DistributionMetadata.set_obsoletes)rrr$rr(rr0r2r6rr>r:r"r,r r<r r@rBrD)N)"rrrrrUr|r rrr rrr&r'r(r)r*rrrrZ get_licencerrrr!r"r+r#r/r$r0r%r1rHrHrHrIrSsH 4"rScCs(g}x|D]}|j|ddq W|S)zConvert a 4-tuple 'help_options' list as found in various command classes to the 3-tuple form required by FancyGetopt. r)r)rMZ new_optionsZ help_tuplerHrHrIrs r)rrjrreZemailrrhrZdistutils.errorsZdistutils.fancy_getoptrrZdistutils.utilrrrrr Zdistutils.debugr compilerr rSrrHrHrHrIs2      ]ZPK!Vf__pycache__/core.cpython-36.pycnu[3 \"@sdZddlZddlZddlmZddlTddlmZddlm Z ddl m Z ddl m Z d Zd d Zdadad4Zd5Zd/d0Zd6d2d3ZdS)7a#distutils.core The only module that needs to be imported to use the Distutils; provides the 'setup' function (which is to be called from the setup script). Also indirectly provides the Distribution and Command classes, although they are really defined in distutils.dist and distutils.cmd. N)DEBUG)*) Distribution)Command) PyPIRCCommand) Extensionzusage: %(script)s [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...] or: %(script)s --help [cmd1 cmd2 ...] or: %(script)s --help-commands or: %(script)s cmd --help cCstjj|}ttS)N)ospathbasenameUSAGEvars) script_nameZscriptr&/usr/lib64/python3.6/distutils/core.py gen_usage s r distclassr script_argsoptionsnameversionauthor author_email maintainermaintainer_emailurllicense descriptionlong_descriptionkeywords platforms classifiers download_urlrequiresprovides obsoletessources include_dirs define_macros undef_macros library_dirs librariesruntime_library_dirs extra_objectsextra_compile_argsextra_link_args swig_optsexport_symbolsdependslanguagec,Ks|jd}|r|d=nt}d|kr8tjjtjd|d<d|krRtjdd|d<y||a}WnLtk r}z0d|krt d|nt d |d|fWYdd}~XnXt d kr|S|j t rt d |jt d kr|Sy |j}Wn:tk r*}zt t|jd |WYdd}~XnXt rBt d|jt dkrP|S|ry |jWntk rt dYntk r}z0t rtjjd|fnt d|fWYdd}~XnBttfk r }z t rnt dt|WYdd}~XnX|S)aThe gateway to the Distutils: do everything your setup script needs to do, in a highly flexible and user-driven way. Briefly: create a Distribution instance; find and parse config files; parse the command line; run each Distutils command found there, customized by the options supplied to 'setup()' (as keyword arguments), in config files, and on the command line. The Distribution instance might be an instance of a class supplied via the 'distclass' keyword argument to 'setup'; if no such class is supplied, then the Distribution class (in dist.py) is instantiated. All other arguments to 'setup' (except for 'cmdclass') are used to set attributes of the Distribution instance. The 'cmdclass' argument, if supplied, is a dictionary mapping command names to command classes. Each command encountered on the command line will be turned into a command class, which is in turn instantiated; any class found in 'cmdclass' is used in place of the default, which is (for command 'foo_bar') class 'foo_bar' in module 'distutils.command.foo_bar'. The command class must provide a 'user_options' attribute which is a list of option specifiers for 'distutils.fancy_getopt'. Any command-line options between the current and the next command are used to set attributes of the current command object. When the entire command-line has been successfully parsed, calls the 'run()' method on each command object in turn. This method will be driven entirely by the Distribution object (which each command object has a reference to, thanks to its constructor), and the command-specific options that became attributes of each command object. rr rrNrzerror in setup command: %szerror in %s setup command: %sinitz%options (after parsing config files):configz error: %sz%options (after parsing command line): commandlineZ interruptedz error: %s z error: %szerror: )getrrr r sysargv_setup_distributionZDistutilsSetupError SystemExit_setup_stop_afterZparse_config_filesrprintZdump_option_dictsZparse_command_lineZDistutilsArgErrorrr Z run_commandsKeyboardInterruptOSErrorstderrwriteZDistutilsErrorZCCompilerErrorstr)ZattrsklassZdistmsgokexcrrrsetup9s`% " (   "rGruncCs|d krtd|f|atjj}d|i}yZzH|tjd<|dk rP|tjd d<t|d }t|j|WdQRXWd|t_daXWntk rYnXt dkrt d |t S) a.Run a setup script in a somewhat controlled environment, and return the Distribution instance that drives things. This is useful if you need to find out the distribution meta-data (passed as keyword args from 'script' to 'setup()', or the contents of the config files or command-line. 'script_name' is a file that will be read and run with 'exec()'; 'sys.argv[0]' will be replaced with 'script' for the duration of the call. 'script_args' is a list of strings; if supplied, 'sys.argv[1:]' will be replaced by 'script_args' for the duration of the call. 'stop_after' tells 'setup()' when to stop processing; possible values: init stop after the Distribution instance has been created and populated with the keyword arguments to 'setup()' config stop after config files have been parsed (and their data stored in the Distribution instance) commandline stop after the command-line ('sys.argv[1:]' or 'script_args') have been parsed (and the data stored in the Distribution) run [default] stop after all commands have been run (the same as if 'setup()' had been called in the usual way Returns the Distribution instance, which provides all information used to drive the Distutils. r4r5r6rHz"invalid value for 'stop_after': %r__file__rNr3rbzZ'distutils.core.setup()' was never called -- perhaps '%s' is not a Distutils setup script?)r4r5r6rH) ValueErrorr<r8r9copyopenexecreadr;r: RuntimeError)r rZ stop_afterZ save_argvgfrrr run_setups(    rS)rr rrrrrrrrrrrrrrr r!r"r#r$)rr%r&r'r(r)r*r+r,r-r.r/r0r1r2)NrH)__doc__rr8Zdistutils.debugrZdistutils.errorsZdistutils.distrZ distutils.cmdrZdistutils.configrZdistutils.extensionrr rr<r:Zsetup_keywordsZextension_keywordsrGrSrrrrs2     qPK!Cֺ"__pycache__/version.cpython-36.pycnu[3 \90@s>dZddlZGdddZGdddeZGdddeZdS) aProvides classes to represent module version numbers (one class for each style of version numbering). There are currently two such classes implemented: StrictVersion and LooseVersion. Every version number class implements the following interface: * the 'parse' method takes a string and parses it to some internal representation; if the string is an invalid version number, 'parse' raises a ValueError exception * the class constructor takes an optional string argument which, if supplied, is passed to 'parse' * __str__ reconstructs the string that was passed to 'parse' (or an equivalent string -- ie. one that will generate an equivalent version number instance) * __repr__ generates Python code to recreate the version number instance * _cmp compares the current instance with either another instance of the same class or a string (which will be parsed to an instance of the same class, thus must follow the same rules) Nc@sJeZdZdZdddZddZddZd d Zd d Zd dZ ddZ dS)VersionzAbstract base class for version numbering classes. Just provides constructor (__init__) and reproducer (__repr__), because those seem to be the same for all version numbering classes; and route rich comparisons to _cmp. NcCs|r|j|dS)N)parse)selfvstringr)/usr/lib64/python3.6/distutils/version.py__init__&szVersion.__init__cCsd|jjt|fS)Nz %s ('%s')) __class____name__str)rrrr__repr__*szVersion.__repr__cCs|j|}|tkr|S|dkS)Nr)_cmpNotImplemented)rothercrrr__eq__-s zVersion.__eq__cCs|j|}|tkr|S|dkS)Nr)r r)rrrrrr__lt__3s zVersion.__lt__cCs|j|}|tkr|S|dkS)Nr)r r)rrrrrr__le__9s zVersion.__le__cCs|j|}|tkr|S|dkS)Nr)r r)rrrrrr__gt__?s zVersion.__gt__cCs|j|}|tkr|S|dkS)Nr)r r)rrrrrr__ge__Es zVersion.__ge__)N) r __module__ __qualname____doc__rr rrrrrrrrrrs rc@s<eZdZdZejdejejBZddZ ddZ ddZ d S) StrictVersiona?Version numbering for anal retentives and software idealists. Implements the standard interface for version number classes as described above. A version number consists of two or three dot-separated numeric components, with an optional "pre-release" tag on the end. The pre-release tag consists of the letter 'a' or 'b' followed by a number. If the numeric components of two version numbers are equal, then one with a pre-release tag will always be deemed earlier (lesser) than one without. The following are valid version numbers (shown in the order that would be obtained by sorting according to the supplied cmp function): 0.4 0.4.0 (these two are equivalent) 0.4.1 0.5a1 0.5b3 0.5 0.9.6 1.0 1.0.4a3 1.0.4b1 1.0.4 The following are examples of invalid version numbers: 1 2.7.2.2 1.3.a4 1.3pl1 1.3c4 The rationale for this version numbering system will be explained in the distutils documentation. z)^(\d+) \. (\d+) (\. (\d+))? ([ab](\d+))?$cCs|jj|}|std||jddddd\}}}}}|rTttt|||g|_nttt||gd|_|r|dt|f|_nd|_dS) Nzinvalid version number '%s'r)r) version_rematch ValueErrorgrouptuplemapintversion prerelease)rrr majorminorZpatchr'Zprerelease_numrrrrs  zStrictVersion.parsecCsb|jddkr*djtt|jdd}ndjtt|j}|jr^||jdt|jd}|S)Nrr.r)r&joinr$r r')rrrrr__str__s zStrictVersion.__str__cCst|trt|}|j|jkr2|j|jkr.dSdS|j rF|j rFdS|jrX|j rXdS|j rj|jrjdS|jr|jr|j|jkrdS|j|jkrdSdSn dstddS)NrrFznever get herer-r-) isinstancer rr&r'AssertionError)rrrrrr s&      zStrictVersion._cmpN) r rrrrecompileVERBOSEASCIIrrr,r rrrrr]s # rc@sHeZdZdZejdejZdddZddZ dd Z d d Z d d Z dS) LooseVersionaVersion numbering for anarchists and software realists. Implements the standard interface for version number classes as described above. A version number consists of a series of numbers, separated by either periods or strings of letters. When comparing version numbers, the numeric components will be compared numerically, and the alphabetic components lexically. The following are all valid version numbers, in no particular order: 1.5.1 1.5.2b2 161 3.10a 8.02 3.4j 1996.07.12 3.2.pl0 3.1.1.6 2g6 11g 0.960923 2.2beta29 1.13++ 5.5.kw 2.0b1pl0 In fact, there is no such thing as an invalid version number under this scheme; the rules for comparison are simple and predictable, but may not always give the results you want (for some definition of "want"). z(\d+ | [a-z]+ | \.)NcCs|r|j|dS)N)r)rrrrrr.szLooseVersion.__init__c Csb||_dd|jj|D}x:t|D].\}}yt|||<Wq&tk rRYq&Xq&W||_dS)NcSsg|]}|r|dkr|qS)r*r).0xrrr 8sz&LooseVersion.parse..)r component_resplit enumerater%r!r&)rrZ componentsiobjrrrr3s zLooseVersion.parsecCs|jS)N)r)rrrrr,CszLooseVersion.__str__cCs dt|S)NzLooseVersion ('%s'))r )rrrrr GszLooseVersion.__repr__cCsFt|trt|}|j|jkr"dS|j|jkr2dS|j|jkrBdSdS)Nrrr-)r.r r4r&)rrrrrr Ks    zLooseVersion._cmp)N) r rrrr0r1r2r8rrr,r r rrrrr4 s r4)rr0rrr4rrrrs >/PK!;T>$__pycache__/log.cpython-36.opt-2.pycnu[3 \@shdZdZdZdZdZddlZGdddZeZejZej Z ej Z ej Z ej Z ej Z d d Zd d ZdS) Nc@sPeZdZefddZddZddZddZd d Zd d Z d dZ ddZ dS)LogcCs ||_dS)N) threshold)selfrr %/usr/lib64/python3.6/distutils/log.py__init__sz Log.__init__c Cs|tttttfkr"tdt|||jkr|r8||}|tttfkrNtj }ntj }y|j d|Wn:t k r|j }|j|dj|}|j d|YnX|jdS)Nz%s wrong log levelz%s backslashreplace)DEBUGINFOWARNERRORFATAL ValueErrorstrrsysstderrstdoutwriteUnicodeEncodeErrorencodingencodedecodeflush)r levelmsgargsstreamrr r r _logs zLog._logcGs|j|||dS)N)r")r rrr r r r log'szLog.logcGs|jt||dS)N)r"r)r rr r r r debug*sz Log.debugcGs|jt||dS)N)r"r)r rr r r r info-szLog.infocGs|jt||dS)N)r"r)r rr r r r warn0szLog.warncGs|jt||dS)N)r"r)r rr r r r error3sz Log.errorcGs|jt||dS)N)r"r)r rr r r r fatal6sz Log.fatalN) __name__ __module__ __qualname__rr r"r#r$r%r&r'r(r r r r rs rcCstj}|t_|S)N) _global_logr)roldr r r set_thresholdAsr.cCs8|dkrttn"|dkr$ttn|dkr4ttdS)Nrrr)r.rrr)vr r r set_verbosityGs   r0)rrrrrrrr,r#r$r%r&r'r(r.r0r r r r s+PK!B::__pycache__/cmd.cpython-36.pycnu[3 \J@srdZddlZddlZddlZddlmZddlmZmZm Z m Z m Z ddlm Z GdddZ Gdd d e ZdS) ztdistutils.cmd Provides the Command class, the base class for the command classes in the distutils.command package. N)DistutilsOptionError)utildir_util file_util archive_utildep_util)logc@s"eZdZdZgZddZddZddZdd Zd d Z dCddZ ddZ dDddZ ddZ dEddZdFddZddZdGddZdd Zd!d"Zd#d$Zd%d&ZdHd'd(ZdId*d+Zd,d-Zd.d/Zd0d1ZdJd2d3ZdKd5d6ZdLd7d8ZdMd9d:ZdNd;d<ZdOd=d>Z dPd?d@Z!dQdAdBZ"d S)RCommanda}Abstract base class for defining command classes, the "worker bees" of the Distutils. A useful analogy for command classes is to think of them as subroutines with local variables called "options". The options are "declared" in 'initialize_options()' and "defined" (given their final values, aka "finalized") in 'finalize_options()', both of which must be defined by every command class. The distinction between the two is necessary because option values might come from the outside world (command line, config file, ...), and any options dependent on other options must be computed *after* these outside influences have been processed -- hence 'finalize_options()'. The "body" of the subroutine, where it does all its work based on the values of its options, is the 'run()' method, which must also be implemented by every command class. cCsbddlm}t||std|jtkr0td||_|jd|_ |j |_ d|_ d|_ d|_ dS)zCreate and initialize a new Command object. Most importantly, invokes the 'initialize_options()' method, which is the real initializer and depends on the actual command being instantiated. r) Distributionz$dist must be a Distribution instancezCommand is an abstract classN)Zdistutils.distr isinstance TypeError __class__r RuntimeError distributioninitialize_optionsZ_dry_runverboseforcehelp finalized)selfZdistr r%/usr/lib64/python3.6/distutils/cmd.py__init__/s    zCommand.__init__cCs<|dkr0t|d|}|dkr*t|j|S|Snt|dS)Ndry_run_)getattrrAttributeError)rattrZmyvalrrr __getattr___s  zCommand.__getattr__cCs|js|jd|_dS)N)rfinalize_options)rrrrensure_finalizediszCommand.ensure_finalizedcCstd|jdS)aSet default values for all the options that this command supports. Note that these defaults may be overridden by other commands, by the setup script, by config files, or by the command-line. Thus, this is not the place to code dependencies between options; generally, 'initialize_options()' implementations are just a bunch of "self.foo = None" assignments. This method must be implemented by all command classes. z,abstract method -- subclass %s must overrideN)rr )rrrrr{s zCommand.initialize_optionscCstd|jdS)aSet final values for all the options that this command supports. This is always called as late as possible, ie. after any option assignments from the command-line or from other commands have been done. Thus, this is the place to code option dependencies: if 'foo' depends on 'bar', then it is safe to set 'foo' from 'bar' as long as 'foo' still has the same value it was assigned in 'initialize_options()'. This method must be implemented by all command classes. z,abstract method -- subclass %s must overrideN)rr )rrrrr s zCommand.finalize_optionsNcCsddlm}|dkr d|j}|j||tjd|d}x\|jD]R\}}}|j|}|d dkrp|dd }t||}|j|d||ftjdqDWdS) Nr) longopt_xlatezcommand options for '%s':)levelz r=z%s = %sr&) Zdistutils.fancy_getoptr#get_command_nameannouncerINFO user_options translater)rheaderindentr#optionrvaluerrr dump_optionss      zCommand.dump_optionscCstd|jdS)aA command's raison d'etre: carry out the action it exists to perform, controlled by the options initialized in 'initialize_options()', customized by other commands, the setup script, the command-line, and config files, and finalized in 'finalize_options()'. All terminal output and filesystem interaction should be done by 'run()'. This method must be implemented by all command classes. z,abstract method -- subclass %s must overrideN)rr )rrrrruns z Command.runrcCstj||dS)zmIf the current verbosity level is of greater than or equal to 'level' print 'msg' to stdout. N)r)rmsgr$rrrr(szCommand.announcecCs&ddlm}|r"t|tjjdS)z~Print 'msg' to stdout if the global DEBUG (taken from the DISTUTILS_DEBUG environment variable) flag is true. r)DEBUGN)Zdistutils.debugr3printsysstdoutflush)rr2r3rrr debug_prints zCommand.debug_printcCsBt||}|dkr"t||||St|ts>td|||f|S)Nz'%s' must be a %s (got `%s`))rsetattrr strr)rr.whatdefaultvalrrr_ensure_stringlikes   zCommand._ensure_stringlikecCs|j|d|dS)zWEnsure that 'option' is a string; if not defined, set it to 'default'. stringN)r>)rr.r<rrr ensure_stringszCommand.ensure_stringcCspt||}|dkrdSt|tr6t||tjd|n6t|trTtdd|D}nd}|sltd||fdS)zEnsure that 'option' is a list of strings. If 'option' is currently a string, we split it either on /,\s*/ or /\s+/, so "foo bar baz", "foo,bar,baz", and "foo, bar baz" all become ["foo", "bar", "baz"]. Nz,\s*|\s+css|]}t|tVqdS)N)r r:).0vrrr sz-Command.ensure_string_list..Fz''%s' must be a list of strings (got %r)) rr r:r9resplitlistallr)rr.r=okrrrensure_string_lists   zCommand.ensure_string_listcCs8|j|||}|dk r4|| r4td|||fdS)Nzerror in '%s' option: )r>r)rr.Ztesterr;Z error_fmtr<r=rrr_ensure_tested_stringszCommand._ensure_tested_stringcCs|j|tjjdddS)z5Ensure that 'option' is the name of an existing file.filenamez$'%s' does not exist or is not a fileN)rJospathisfile)rr.rrrensure_filenames zCommand.ensure_filenamecCs|j|tjjdddS)Nzdirectory namez)'%s' does not exist or is not a directory)rJrLrMisdir)rr.rrrensure_dirnames zCommand.ensure_dirnamecCst|dr|jS|jjSdS)N command_name)hasattrrRr __name__)rrrrr' s zCommand.get_command_namecGsJ|jj|}|jx0|D](\}}t||dkrt||t||qWdS)a>Set the values of any "undefined" options from corresponding option values in some other command object. "Undefined" here means "is None", which is the convention used to indicate that an option has not been changed between 'initialize_options()' and 'finalize_options()'. Usually called from 'finalize_options()' for options that depend on some other command rather than another option of the same command. 'src_cmd' is the other command from which option values will be taken (a command object will be created for it if necessary); the remaining arguments are '(src_option,dst_option)' tuples which mean "take the value of 'src_option' in the 'src_cmd' command object, and copy it to 'dst_option' in the current command object". N)rget_command_objr!rr9)rZsrc_cmdZ option_pairsZ src_cmd_objZ src_optionZ dst_optionrrrset_undefined_optionss  zCommand.set_undefined_optionscCs|jj||}|j|S)zWrapper around Distribution's 'get_command_obj()' method: find (create if necessary and 'create' is true) the command object for 'command', call its 'ensure_finalized()' method, and return the finalized command object. )rrUr!)rcommandZcreateZcmd_objrrrget_finalized_command$szCommand.get_finalized_commandrcCs|jj||S)N)rreinitialize_command)rrWZreinit_subcommandsrrrrY0szCommand.reinitialize_commandcCs|jj|dS)zRun some other command: uses the 'run_command()' method of Distribution, which creates and finalizes the command object if necessary and then invokes its 'run()' method. N)r run_command)rrWrrrrZ4szCommand.run_commandcCs6g}x,|jD]"\}}|dks$||r |j|q W|S)akDetermine the sub-commands that are relevant in the current distribution (ie., that need to be run). This is based on the 'sub_commands' class attribute: each tuple in that list may include a method that we call to determine if the subcommand needs to be run for the current distribution. Return a list of command names. N) sub_commandsappend)rZcommandsZcmd_namemethodrrrget_sub_commands;s zCommand.get_sub_commandscCstjd|j|dS)Nzwarning: %s: %s )rwarnr')rr2rrrr_Ksz Command.warncCstj||||jddS)N)r)rexecuter)rfuncargsr2r$rrrr`NszCommand.executecCstj|||jddS)N)r)rmkpathr)rnamemoderrrrdQszCommand.mkpathc Cstj|||||j ||jdS)zCopy a file respecting verbose, dry-run and force flags. (The former two default to whatever is in the Distribution object, and the latter defaults to false for commands that don't define it.))r)r copy_filerr)rinfileoutfile preserve_modepreserve_timeslinkr$rrrrgTs  zCommand.copy_filec Cstj||||||j |jdS)z\Copy an entire directory tree respecting verbose, dry-run, and force flags. )r)r copy_treerr)rrhrirjrkZpreserve_symlinksr$rrrrm]s zCommand.copy_treecCstj|||jdS)z$Move a file respecting dry-run flag.)r)r move_filer)rsrcdstr$rrrrnfszCommand.move_filecCs ddlm}||||jddS)z2Spawn an external command respecting dry-run flag.r)spawn)rN)Zdistutils.spawnrqr)rcmdZ search_pathr$rqrrrrqjs z Command.spawnc Cstj|||||j||dS)N)rownergroup)r make_archiver)rZ base_nameformatZroot_dirZbase_dirrsrtrrrruos zCommand.make_archivecCs|dkrd|}t|tr"|f}nt|ttfs8td|dkrRd|dj|f}|jsdtj||rv|j ||||n t j |dS)aSpecial case of 'execute()' for operations that process one or more input files and generate one output file. Works just like 'execute()', except the operation is skipped and a different message printed if 'outfile' already exists and is newer than all files listed in 'infiles'. If the command defined 'self.force', and it is true, then the command is unconditionally run -- does no timestamp checks. Nzskipping %s (inputs unchanged)z9'infiles' must be a string, or a list or tuple of stringszgenerating %s from %sz, ) r r:rFtupler joinrrZ newer_groupr`rdebug)rZinfilesrirarbZexec_msgZskip_msgr$rrr make_fileus  zCommand.make_file)Nr")r)N)N)N)r)r)Nr)rc)rrNr)rrrr)r)rr)NNNN)NNr)#rT __module__ __qualname____doc__r[rrr!rr r0r1r(r8r>r@rIrJrOrQr'rVrXrYrZr^r_r`rdrgrmrnrqrurzrrrrr sF0              r c@s6eZdZdZdgZddZddZd d Zd d Zd S) install_miscz{Common base class for installing some files in a subdirectory. Currently used by install_data and install_scripts. install-dir=d!directory to install the files tocCsd|_g|_dS)N) install_diroutfiles)rrrrrszinstall_misc.initialize_optionscCs|jd|dfdS)NZinstallr)rV)rdirnamerrr_install_dir_fromszinstall_misc._install_dir_fromcCsRg|_|sdS|j|jx2|D]*}|j||j|jjtjj|j|q WdS)N)rrdrrgr\rLrMrx)rZfilelistfrrr _copy_filess  zinstall_misc._copy_filescCs|jS)N)r)rrrr get_outputsszinstall_misc.get_outputsN)rrr) rTr{r|r}r*rrrrrrrrr~s  r~)r}r5rLrDZdistutils.errorsrZ distutilsrrrrrrr r~rrrrs  PK!^9b b )__pycache__/dir_util.cpython-36.opt-2.pycnu[3 \b@slddlZddlZddlmZmZddlmZiadddZddd Z dd d Z d d Z dddZ ddZ dS)N)DistutilsFileErrorDistutilsInternalError)logc Cspt|tstd|ftjj|}g}tjj|s<|dkr@|Stjtjj |rV|Stjj |\}}|g}x6|r|rtjj| rtjj |\}}|j d|qnWx|D]}tjj ||}tjj |} tj| rq|dkrt jd||s`ytj||WnVtk rT} z8| jtjko*tjj|sDtd|| jdfWYdd} ~ XnX|j|dt| <qW|S)Nz(mkpath: 'name' must be a string (got %r)rrz creating %szcould not create '%s': %s) isinstancestrrospathnormpathisdir _path_createdgetabspathsplitinsertjoinrinfomkdirOSErrorerrnoZEEXISTrargsappend) namemodeverbosedry_runZ created_dirsheadtailZtailsdZabs_headexcr#*/usr/lib64/python3.6/distutils/dir_util.pymkpaths>       &  r%cCsVt}x(|D] }|jtjj|tjj|q Wx t|D]}t||||dq:WdS)N)rr)setaddr r rdirnamesortedr%)Zbase_dirfilesrrrZneed_dirfiledirr#r#r$ create_treePs   r-cCsfddlm}| r,tjj| r,td|ytj|} Wn>tk rx} z"|rVg} ntd|| jfWYdd} ~ XnX|st ||dg} x| D]} tjj || } tjj || }| j drq|otjj | rtj | }|dkrtjd|||stj||| j|qtjj| r>| jt| |||||||d q|| ||||||d | j|qW| S) Nr) copy_filez&cannot copy tree '%s': not a directoryzerror listing files in '%s': %s)rz.nfsrzlinking %s -> %s)rr)Zdistutils.file_utilr.r r rrlistdirrstrerrorr%r startswithislinkreadlinkrrsymlinkrextend copy_tree)srcdstZ preserve_modeZpreserve_timesZpreserve_symlinksupdaterrr.nameseZoutputsnZsrc_nameZdst_nameZ link_destr#r#r$r6csH  "      r6cCslxVtj|D]H}tjj||}tjj|rDtjj| rDt||q |jtj|fq W|jtj |fdS)N) r r/r rrr2_build_cmdtuplerremovermdir)r cmdtuplesfZreal_fr#r#r$r=s  r=cCs|dkrtjd||rdSg}t||xp|D]h}y2|d|dtjj|d}|tkrdt|=Wq0tk r}ztjd||WYdd}~Xq0Xq0WdS)Nrz'removing '%s' (and everything under it)rzerror removing %s: %s) rrr=r r rrrwarn)Z directoryrrr@cmdrr"r#r#r$ remove_trees    rDcCs6tjj|\}}|ddtjkr2||dd}|S)Nrr)r r splitdrivesep)r Zdriver#r#r$ensure_relativesrG)rrr)rrr)rrrrrr)rr)r rZdistutils.errorsrrZ distutilsrrr%r-r6r=rDrGr#r#r#r$s  ?  D PK!nQQ'__pycache__/bcppcompiler.cpython-36.pycnu[3 \W:@sxdZddlZddlmZmZmZmZmZmZddl m Z m Z m Z ddl mZddlmZddlmZGdd d e ZdS) zdistutils.bcppcompiler Contains BorlandCCompiler, an implementation of the abstract CCompiler class for the Borland C++ compiler. N)DistutilsExecErrorDistutilsPlatformError CompileErrorLibError LinkErrorUnknownFileError) CCompilergen_preprocess_optionsgen_lib_options) write_file)newer)logc @seZdZdZdZiZdgZdddgZeeZdZ dZ d Z d Z Z d Zdd dZdddZdddZd ddZd!ddZd"ddZd#ddZdS)$ BCPPCompilerzConcrete class that implements an interface to the Borland C/C++ compiler, as defined by the CCompiler abstract class. Zbcppz.cz.ccz.cppz.cxxz.objz.libz.dllz%s%sz.exercCstj||||d|_d|_d|_d|_ddddg|_ddddg|_d d dd g|_d d dd g|_ g|_ d dd g|_ d dd d g|_ dS) Nz bcc32.exez ilink32.exeztlib.exez/tWMz/O2z/qz/g0z/Odz/Tpdz/Gnz/xz/r) r__init__cclinkerlibZpreprocess_optionscompile_optionscompile_options_debugldflags_sharedldflags_shared_debugZldflags_static ldflags_exeldflags_exe_debug)selfverboseZdry_runforcer./usr/lib64/python3.6/distutils/bcppcompiler.pyr5s zBCPPCompiler.__init__Nc Cs|j||||||\}} }} } |p$g} | jd|rB| j|jn | j|jxD| D]:} y| | \}}Wntk rwVYnXtjj|}tjj| } |j tjj | |dkrqV|dkry|j dd| |gWqVt k r}zt |WYdd}~XqVXqV||jkrd}n||jkr,d}nd}d| }y,|j |jg| | ||g||gWqVt k r}zt |WYdd}~XqVXqVW| S) Nz-cz.resz.rcZbrcc32z-foz-Pz-o)Z_setup_compileappendextendrrKeyErrorospathnormpathmkpathdirnamespawnrr _c_extensions_cpp_extensionsr)rZsources output_dirmacros include_dirsdebug extra_preargsextra_postargsZdependsobjectspp_optsZbuildZ compile_optsobjsrcextmsgZ input_optZ output_optrrrcompileQsF        (zBCPPCompiler.compilec Cs|j||\}}|j||d}|j||r~|dg|}|r:y|j|jg|Wqtk rz}zt|WYdd}~XqXn tjd|dS)N)r*z/uzskipping %s (up-to-date)) _fix_object_argslibrary_filename _need_linkr'rrrr r-) rr0Zoutput_libnamer*r- target_langoutput_filenameZlib_argsr5rrrcreate_static_libs  zBCPPCompiler.create_static_libc Cs|j||\}}|j|||\}}}|r8tjdt||dk rNtjj||}|j||r|t j krd}| r~|j dd}q|j dd}n&d}| r|j dd}n|jdd}|dkrd}ntjj|\}}tjj|\}}tjj|d}tjj|d|}dg}x&|pgD]}|jd||fqW|jt||fd |ttjj|}|g}g}xF|D]>}tjjtjj|\}}|d kr|j|n |j|qfWx$|D]}|jd tjj|qW|jd |j||jd |g|jdx<|D]4}|j||| }|dkr(|j|n |j|qW|jd|jd|jd |g|jd |j|| r| |dd<| r|j| |jtjj|y|j|jg|Wn,tk r}zt|WYdd}~XnXn tjd|dS)Nz7I don't know what to do with 'runtime_library_dirs': %sZc0w32Zc0d32rrz%s.defZEXPORTSz %s=_%sz writing %sz.resz/L%sz/L.,z,,Zimport32Zcw32mtzskipping %s (up-to-date)) r7Z _fix_lib_argsr warnstrr"r#joinr9rZ EXECUTABLErrrrsplitsplitextr&rZexecuter mapr$normcaser find_library_filer%r'rrrr-) rZ target_descr0r;r*Z librariesZ library_dirsZruntime_library_dirsZexport_symbolsr-r.r/Z build_tempr:Z startup_objZld_argsZdef_fileheadtailmodnamer4Ztemp_dircontentsZsymZobjects2Z resourcesfilebaselrlibfiler5rrrlinks|                    zBCPPCompiler.linkc Csv|r"|d}|d|d||f}n |d|f}xB|D]6}x0|D](}tjj||j|}tjj|r>|Sq>Wq4WdSdS)NZ_dZ_bcpp)r"r#r@r8exists) rdirsrr-ZdlibZ try_namesdirnamerMrrrrE4s      zBCPPCompiler.find_library_filercCs|dkr d}g}x|D]}tjjtjj|\}}||jddgkrTtd||f|rdtjj|}|dkr|jtjj|||q|dkr|jtjj||dq|jtjj|||j qW|S)Nrz.rcz.resz"unknown file type '%s' (from '%s')) r"r#rBrDsrc_extensionsrbasenamerr@ obj_extension)rZsource_filenamesZ strip_dirr*Z obj_namesZsrc_namerKr4rrrobject_filenamesNs"    zBCPPCompiler.object_filenamesc Cs|jd||\}}}t||}dg|} |dk r>| jd||rN|| dd<|r\| j|| j||js~|dks~t||r|r|jtjj |y|j | Wn2t k r} zt | t | WYdd} ~ XnXdS)Nz cpp32.exez-or)Z_fix_compile_argsr rr rr r%r"r#r&r'rprintr) rsourceZ output_filer+r,r.r/_r1Zpp_argsr5rrr preprocessis$      zBCPPCompiler.preprocess)rrr)NNNrNNN)NrN) NNNNNrNNNN)r)rr)NNNNN)__name__ __module__ __qualname____doc__Z compiler_typeZ executablesr(r)rSrUZstatic_lib_extensionZshared_lib_extensionZstatic_lib_formatZshared_lib_formatZ exe_extensionrr6r<rNrErVrZrrrrrsJ   B  |  r)r^r"Zdistutils.errorsrrrrrrZdistutils.ccompilerrr r Zdistutils.file_utilr Zdistutils.dep_utilr Z distutilsr rrrrrs     PK!fY &&$__pycache__/extension.cpython-36.pycnu[3 \)@s.dZddlZddlZGdddZddZdS)zmdistutils.extension Provides the Extension class, used to describe C/C++ extension modules in setup scripts.Nc@s"eZdZdZdddZddZdS) Extensiona Just a collection of attributes that describes an extension module and everything needed to build it (hopefully in a portable way, but there are hooks that let you be as unportable as you need). Instance attributes: name : string the full name of the extension, including any packages -- ie. *not* a filename or pathname, but Python dotted name sources : [string] list of source filenames, relative to the distribution root (where the setup script lives), in Unix form (slash-separated) for portability. Source files may be C, C++, SWIG (.i), platform-specific resource files, or whatever else is recognized by the "build_ext" command as source for a Python extension. include_dirs : [string] list of directories to search for C/C++ header files (in Unix form for portability) define_macros : [(name : string, value : string|None)] list of macros to define; each macro is defined using a 2-tuple, where 'value' is either the string to define it to or None to define it without a particular value (equivalent of "#define FOO" in source or -DFOO on Unix C compiler command line) undef_macros : [string] list of macros to undefine explicitly library_dirs : [string] list of directories to search for C/C++ libraries at link time libraries : [string] list of library names (not filenames or paths) to link against runtime_library_dirs : [string] list of directories to search for C/C++ libraries at run time (for shared extensions, this is when the extension is loaded) extra_objects : [string] list of extra files to link with (eg. object files not implied by 'sources', static library that must be explicitly specified, binary resource files, etc.) extra_compile_args : [string] any extra platform- and compiler-specific information to use when compiling the source files in 'sources'. For platforms and compilers where "command line" makes sense, this is typically a list of command-line arguments, but for other platforms it could be anything. extra_link_args : [string] any extra platform- and compiler-specific information to use when linking object files together to create the extension (or to create a new static Python interpreter). Similar interpretation as for 'extra_compile_args'. export_symbols : [string] list of symbols to be exported from a shared extension. Not used on all platforms, and not generally necessary for Python extensions, which typically export exactly one symbol: "init" + extension_name. swig_opts : [string] any extra options to pass to SWIG if a source file has the .i extension. depends : [string] list of files that the extension depends on language : string extension language (i.e. "c", "c++", "objc"). Will be detected from the source extensions if not provided. optional : boolean specifies that a build failure in the extension should not abort the build process, but simply not install the failing extension. NcKst|tstdt|to,tdd|Ds6td||_||_|pHg|_|pRg|_|p\g|_ |pfg|_ |ppg|_ |pzg|_ | pg|_ | pg|_| pg|_| pg|_| pg|_|pg|_||_||_t|dkrdd|D}djt|}d |}tj|dS) Nz'name' must be a stringcss|]}t|tVqdS)N) isinstancestr).0vr+/usr/lib64/python3.6/distutils/extension.py jsz%Extension.__init__..z#'sources' must be a list of stringsrcSsg|] }t|qSr)repr)rZoptionrrr sz&Extension.__init__..z, zUnknown Extension options: %s)rrAssertionErrorlistallnamesources include_dirs define_macros undef_macros library_dirs librariesruntime_library_dirs extra_objectsextra_compile_argsextra_link_argsexport_symbols swig_optsdependslanguageoptionallenjoinsortedwarningswarn)selfrrrrrrrrrrrrrrrrkwZoptionsmsgrrr__init__Vs4              zExtension.__init__cCsd|jj|jj|jt|fS)Nz<%s.%s(%r) at %#x>) __class__ __module__ __qualname__rid)r$rrr__repr__s zExtension.__repr__)NNNNNNNNNNNNNN)__name__r)r*__doc__r'r,rrrrrs ? !rcCsddlm}m}m}ddlm}ddlm}||}||dddddd}zhg}x\|j} | dkrfP|j | rrqT| d| d$kodknr|j d | qT|| |} || } | d} t | g} d} x| ddD]}| dk r| j |d} qt jj|d}|dd }|d d}|d%kr8| jj |q|dkrP| jj |q|dkr|jd}|d&kr| jj |dfn$| jj |d|||d dfq|dkr| jj |q|dkr| jj |q|dkr| jj |q|dkr| jj |q|dkr| jj |q|dkr0| j} q|dkrB| j} q|dkrT| j} q|dkrx| jj ||s| j} q|d'kr| jj |q|j d#|qW|j | qTWWd|jX|S)(z3Reads a Setup file and returns Extension instances.r)parse_makefileexpand_makefile_vars _variable_rx)TextFile) split_quoted)Zstrip_commentsZ skip_blanksZ join_linesZ lstrip_wsZ rstrip_wsN*z'%s' lines not handled yet.c.cc.cpp.cxx.c++.m.mmz-Iz-D=z-Uz-Cz-lz-Lz-Rz-rpathz-Xlinkerz -Xcompilerz-u.a.so.sl.o.dylibzunrecognized argument '%s')r7r8r9r:r;r<r=rD)r?r@rArBrC)Zdistutils.sysconfigr/r0r1Zdistutils.text_filer2Zdistutils.utilr3readlinematchr#rappendospathsplitextrrfindrrrrrrrrclose)filenamer/r0r1r2r3varsfile extensionslineZwordsmoduleZextZappend_next_wordZwordsuffixZswitchvalueZequalsrrrread_setup_files                          rU)r.rHr"rrUrrrrs zPK!͢__pycache__/dist.cpython-36.pycnu[3 \ @sdZddlZddlZddlZddlmZy ddlZWnek rLdZYnXddlTddl m Z m Z ddl m Z mZmZddlmZddlmZejd ZGd d d ZGd d d ZddZdS)z}distutils.dist Provides the Distribution class, which represents the module distribution being built/installed/distributed. N)message_from_file)*) FancyGetopttranslate_longopt) check_environ strtobool rfc822_escape)log)DEBUGz^[a-zA-Z]([a-zA-Z0-9_]*)$c@speZdZdZd~ddddgZdZdddddddddddddddddddddgZd>d?eDZddiZdd@dAZ dBdCZ ddEdFZ dGdHZ ddIdJZ dKdLZdMdNZdOdPZdQdRZddgfdSdTZdUdVZdWdXZdYdZZd[d\Zd]d^Zd_d`ZddadbZddcddZddfdgZejfdhdiZdjdkZdldmZ dndoZ!dpdqZ"drdsZ#dtduZ$dvdwZ%dxdyZ&dzd{Z'd|d}Z(dS) DistributionaThe core of the Distutils. Most of the work hiding behind 'setup' is really done within a Distribution instance, which farms the work out to the Distutils commands specified on the command line. Setup scripts will almost never instantiate Distribution directly, unless the 'setup()' function is totally inadequate to their needs. However, it is conceivable that a setup script might wish to subclass Distribution for some specialized purpose, and then pass the subclass to 'setup()' as the 'distclass' keyword argument. If so, it is necessary to respect the expectations that 'setup' has of Distribution. See the code for 'setup()', in core.py, for details. verbosevrun verbosely (default)quietq!run quietly (turns verbosity off)dry-runndon't actually do anythinghelphshow detailed help message no-user-cfgN-ignore pydistutils.cfg in your home directoryzCommon commands: (see '--help-commands' for more) setup.py build will build the package underneath 'build/' setup.py install will install the package help-commandslist all available commandsnameprint package nameversionVprint package versionfullnameprint -authorprint the author's name author-email print the author's email address maintainerprint the maintainer's namemaintainer-email$print the maintainer's email addresscontact7print the maintainer's name if known, else the author's contact-email@print the maintainer's email address if known, else the author'surlprint the URL for this packagelicense print the license of the packagelicencealias for --license descriptionprint the package descriptionlong-description"print the long package description platformsprint the list of platforms classifiersprint the list of classifierskeywordsprint the list of keywordsprovides+print the list of packages/modules providedrequires+print the list of packages/modules required obsoletes0print the list of packages/modules made obsoletecCsg|]}t|dqS)r)r).0xrH&/usr/lib64/python3.6/distutils/dist.py sszDistribution.cCsd|_d|_d|_x|jD]}t||dqWt|_x,|jjD] }d|}t||t|j|q@Wi|_ d|_ d|_ d|_ i|_ g|_d|_i|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_i|_i|_|r8|jd}|dk rH|d=xD|jD]8\}}|j |}x"|jD]\} } d| f|| <q(Wq Wd|kr|d|d <|d=d } t!dk r~t!j"| nt#j$j%| d x|jD]\} } t&|jd | rt|jd | | njt&|j| rt|j| | nLt&|| rt|| | n2d t'| } t!dk r"t!j"| nt#j$j%| d qWd|_(|j dk r|x0|j D]&} | j)dsdP| dkrRd|_(PqRW|j*dS)a0Construct a new Distribution instance: initialize all the attributes of a Distribution, and then use 'attrs' (a dictionary mapping attribute names to values) to assign some of those attributes their "real" values. (Any attributes not mentioned in 'attrs' will be assigned to some null value: 0, None, an empty list or dictionary, etc.) Most importantly, initialize the 'command_obj' attribute to the empty dictionary; this will be filled in with real command objects by 'parse_command_line()'. rrget_Noptionsz setup scriptr4r2z:'licence' distribution option is deprecated; use 'license' Zset_zUnknown distribution option: %sT-z --no-user-cfgF)+r dry_runrdisplay_option_namessetattrDistributionMetadatametadata_METHOD_BASENAMESgetattrcmdclasscommand_packages script_name script_argscommand_optionsZ dist_filespackagesZ package_dataZ package_dir py_modules librariesheaders ext_modulesZ ext_packageZ include_dirsZ extra_pathscripts data_filesZpassword command_objhave_rungetitemsget_option_dictwarningswarnsysstderrwritehasattrrepr want_user_cfg startswithfinalize_options)selfZattrsattrbasenameZ method_namerMcommandZ cmd_optionsopt_dictoptvalmsgkeyargrHrHrI__init__zs                   zDistribution.__init__cCs&|jj|}|dkr"i}|j|<|S)zGet the option dictionary for a given command. If that command's option dictionary hasn't been created yet, then create it and return the new dictionary; otherwise, return the existing option dictionary. N)r[re)rrrudictrHrHrIrgs zDistribution.get_option_dictrLc Csddlm}|dkr"t|jj}|dk r@|j|||d}|sV|j|ddSxt|D]l}|jj|}|dkr|j|d|q\|j|d|||}x$|jdD]}|j|d|qWq\WdS)Nr)pformatz zno commands known yetzno option dict for '%s' commandzoption dict for '%s' command:rN)pprintr~sortedr[keysannounceresplit) rrheadercommandsindentr~Zcmd_namervoutlinerHrHrIdump_option_dicts&s&    zDistribution.dump_option_dictscCsg}ttjjtjdj}tjj|d}tjj|rB|j |tj dkrRd}nd}|j rtjjtjj d|}tjj|r|j |d}tjj|r|j |t r|jdd j||S) aFind as many configuration files as should be processed for this platform, and return a list of filenames in the order in which they should be parsed. The filenames returned are guaranteed to exist (modulo nasty race conditions). There are three possible config files: distutils.cfg in the Distutils installation directory (ie. where the top-level Distutils __inst__.py file lives), a file in the user's home directory named .pydistutils.cfg on Unix and pydistutils.cfg on Windows/Mac; and setup.cfg in the current directory. The file in the user's home directory can be disabled with the --no-user-cfg option. distutilsz distutils.cfgposixz.pydistutils.cfgzpydistutils.cfg~z setup.cfgzusing config files: %sz, )rospathdirnamerjmodules__file__joinisfileappendrro expanduserr r)rrfilesZsys_dirZsys_fileZ user_filenameZ user_fileZ local_filerHrHrIfind_config_filesBs&       zDistribution.find_config_filescCsddlm}tjtjkr8ddddddd d d d d ddg }ng}t|}|dkrT|j}trb|jd|}x|D]}tr|jd||j |xf|j D]Z}|j |}|j |}x@|D]8} | dkr| |kr|j || } | jdd} || f|| <qWqW|jqnWd|jkrx|jdjD]\} \} } |jj | } yF| rRt|| t|  n(| dkrnt|| t| n t|| | Wn,tk r} zt| WYdd} ~ XnXqWdS)Nr) ConfigParserz install-basezinstall-platbasez install-libzinstall-platlibzinstall-purelibzinstall-headerszinstall-scriptsz install-dataprefixz exec-prefixhomeuserrootz"Distribution.parse_config_files():z reading %s__name__rO_globalr rP)r rP)Z configparserrrjr base_prefix frozensetrr rreadZsectionsrMrgrereplacer|r[rf negative_optrRr ValueErrorDistutilsOptionError)rr filenamesrZignore_optionsparserfilenameZsectionrMrvrwrxsrcaliasryrHrHrIparse_config_filesrsJ               zDistribution.parse_config_filescCs|j}g|_t||j}|j|j|jddi|j|j|d}|j }t j |j |j |rhdSx |r|j||}|dkrjdSqjW|jr|j|t|jdk|jddS|jstddS) aParse the setup script's command line, taken from the 'script_args' instance attribute (which defaults to 'sys.argv[1:]' -- see 'setup()' in core.py). This list is first processed for "global options" -- options that set attributes of the Distribution instance. Then, it is alternately scanned for Distutils commands and options for that command. Each new command terminates the options for the previous command. The allowed options for a command are determined by the 'user_options' attribute of the command class -- thus, we have to be able to load command classes in order to parse the command line. Any error in that 'options' attribute raises DistutilsGetoptError; any error on the command-line raises DistutilsArgError. If no Distutils commands were found on the command line, raises DistutilsArgError. Return true if command-line was successfully parsed and we should carry on with executing commands; false if no errors but we shouldn't execute commands (currently, this only happens if user asks for help). r4r2)argsobjectNr)display_optionsrzno commands suppliedT)_get_toplevel_optionsrrrset_negative_aliasesrZ set_aliasesgetoptrZZget_option_orderr Z set_verbosityr handle_display_options_parse_command_optsr _show_helplenDistutilsArgError)rrZtoplevel_optionsrr option_orderrHrHrIparse_command_lines,       zDistribution.parse_command_linecCs |jdgS)zReturn the non-display options recognized at the top level. This includes options that are recognized *only* at the top level as well as options recognized for commands. command-packages=N0list of packages that provide distutils commands)rNr)global_options)rrrHrHrIrsz"Distribution._get_toplevel_optionscCsddlm}|d}tj|s*td||jj|y|j|}Wn*tk rn}zt |WYdd}~XnXt ||st d|t |dot |jtsd}t |||j}t |dr|j}|j|jt |d rt |jtrt|j}ng}|j|j|j||j||j|d d\}} t | d rV| jrV|j|d|gd dSt |d rt |jtrd} xP|jD]F\} } } }t | |j| r|d } t|r|nt d || fq|W| rdS|j|}x&t| jD]\}}d|f||<qW|S)aParse the command-line options for a single command. 'parser' must be a FancyGetopt instance; 'args' must be the list of arguments, starting with the current command (whose options we are about to parse). Returns a new version of 'args' with the next command at the front of the list; will be the empty list if there are no more commands on the command line. Returns None if the user asked for help on this command. r)Commandzinvalid command name '%s'Nz&command class %s must subclass Command user_optionszIcommand class %s must provide 'user_options' attribute (a list of tuples)r help_optionsrr)rrzYinvalid help function %r for help option '%s': must be a callable object (function, etc.)z command line) distutils.cmdr command_rematch SystemExitrrget_command_classDistutilsModuleErrorr issubclassZDistutilsClassErrorrm isinstancerlistrcopyupdaterfix_help_optionsset_option_tablerrrrrZ get_attr_namecallablergvarsrf)rrrrrruZ cmd_classryrrZoptsZhelp_option_foundZ help_optionZshortZdescfuncrvrvaluerHrHrIrsb                   z Distribution._parse_command_optscCsTxNdD]F}t|j|}|dkr qt|trdd|jdD}t|j||qWdS)zSet final values for all the options on the Distribution instance, analogous to the .finalize_options() method of Command objects. r>r:NcSsg|] }|jqSrH)strip)rFZelmrHrHrIrJ_sz1Distribution.finalize_options..,)r>r:)rVrTrstrrrR)rrrsrrHrHrIrqUs   zDistribution.finalize_optionsc Cs ddlm}ddlm}|rR|r*|j}n|j}|j||j|jdt d|rt|j|j |jd t dx|j D]z}t |t rt||r|} n |j|} t| drt | jtr|j| jt| jn |j| j|jd | jt dq|Wt ||jd S) abShow help for the setup script command-line in the form of several lists of command-line options. 'parser' should be a FancyGetopt instance; do not expect it to be returned in the same state, as its option table will be reset to make it generate the correct help text. If 'global_options' is true, lists the global options: --verbose, --dry-run, etc. If 'display_options' is true, lists the "display-only" options: --name, --version, etc. Finally, lists per-command help for every command name or command class in 'commands'. r) gen_usage)rz Global options:rLz*Information display options (just display z!information, ignore any commands)rzOptions for '%s' command:NzKInformation display options (just display information, ignore any commands))distutils.corerrrrrrZ print_help common_usageprintrrrtyperrrmrrrrrrY) rrrrrrrrrMruklassrHrHrIrbs6           zDistribution._show_helpc Csddlm}|jr4|jtdt||jdSd}i}x|jD]}d||d<qDWxt|D]l\}}|r^|j|r^t|}t |j d|}|dkrtdj |n |dkrtd j |nt|d}q^W|S)zIf there were any non-global "display-only" options (--help-commands or the metadata display options) on the command line, display the requested info and return true; else return false. r)rrLrrKr>r:rr<r@rBrDrN)r>r:)r<r@rBrD) rrZ help_commandsprint_commandsrrYrrerrVrTr) rrrrZany_display_optionsZis_display_optionoptionrwrxrrHrHrIrs,  z#Distribution.handle_display_optionscCsnt|dx\|D]T}|jj|}|s0|j|}y |j}Wntk rRd}YnXtd|||fqWdS)zZPrint a subset of the list of all commands -- used by 'print_commands()'. :z(no description available)z %-*s %sN)rrWrerr6AttributeError)rrrr max_lengthcmdrr6rHrHrIprint_command_lists      zDistribution.print_command_listcCsddl}|jj}i}x|D] }d||<qWg}x&|jjD]}|j|s:|j|q:Wd}x$||D]}t||krdt|}qdW|j|d||rt |j|d|dS)anPrint out a help message listing all available commands with a description of each. The list is divided into "standard commands" (listed in distutils.command.__all__) and "extra commands" (mentioned in self.cmdclass, but not a standard command). The descriptions come from the command class attribute 'description'. rNrzStandard commandszExtra commands) distutils.commandru__all__rWrrerrrr)rrr std_commandsis_stdrextra_commandsrrHrHrIrs*     zDistribution.print_commandsc Csddl}|jj}i}x|D] }d||<qWg}x&|jjD]}|j|s:|j|q:Wg}x\||D]P}|jj|}|s|j|}y |j}Wnt k rd}YnX|j||fqdW|S)a>Get a list of (command, description) tuples. The list is divided into "standard commands" (listed in distutils.command.__all__) and "extra commands" (mentioned in self.cmdclass, but not a standard command). The descriptions come from the command class attribute 'description'. rNrz(no description available)) rrurrWrrerrr6r) rrrrrrrrvrr6rHrHrIget_command_lists(        zDistribution.get_command_listcCsN|j}t|tsJ|dkrd}dd|jdD}d|krD|jdd||_|S)z9Return a list of packages from which commands are loaded.NrLcSsg|]}|dkr|jqS)rL)r)rFZpkgrHrHrIrJsz5Distribution.get_command_packages..rzdistutils.commandr)rXrrrinsert)rrZpkgsrHrHrIget_command_packagess  z!Distribution.get_command_packagescCs|jj|}|r|Sx|jD]}d||f}|}yt|tj|}Wntk r^wYnXyt||}Wn&tk rt d|||fYnX||j|<|SWt d|dS)aoReturn the class that implements the Distutils command named by 'command'. First we check the 'cmdclass' dictionary; if the command is mentioned there, we fetch the class object from the dictionary and return it. Otherwise we load the command module ("distutils.command." + command) and fetch the command class from the module. The loaded class is also stored in 'cmdclass' to speed future calls to 'get_command_class()'. Raises DistutilsModuleError if the expected module could not be found, or if that module does not define the expected class. z%s.%sz3invalid command '%s' (no class '%s' in module '%s')zinvalid command '%s'N) rWrer __import__rjr ImportErrorrVrr)rrrurZpkgnameZ module_nameZ klass_namemodulerHrHrIrs(   zDistribution.get_command_classcCsn|jj|}| rj|rjtr(|jd||j|}||}|j|<d|j|<|jj|}|rj|j|||S)aReturn the command object for 'command'. Normally this object is cached on a previous call to 'get_command_obj()'; if no command object for 'command' is in the cache, then we either create and return it (if 'create' is true) or return None. z.z1error in %s: command '%s' has no such option '%s')get_command_namergr rrfZboolean_optionsrrrrrRrrmrr) rrrcZ option_dict command_namersourcerZ bool_optsZneg_optZ is_stringryrHrHrIr]s>           z!Distribution._set_command_optionsrcCsddlm}t||s&|}|j|}n|j}|js8|S|jd|_d|j|<|j||r|x|j D]}|j ||qhW|S)aReinitializes a command to the state it was in when first returned by 'get_command_obj()': ie., initialized but not yet finalized. This provides the opportunity to sneak option values in programmatically, overriding or supplementing user-supplied values from the config files and command line. You'll have to re-finalize the command object (by calling 'finalize_options()' or 'ensure_finalized()') before using it for real. 'command' should be a command name (string) or command object. If 'reinit_subcommands' is true, also reinitializes the command's sub-commands, as declared by the 'sub_commands' class attribute (if it has one). See the "install" command for an example. Only reinitializes the sub-commands that actually matter, ie. those whose test predicates return true. Returns the reinitialized command object. r)r) rrrrrZ finalizedZinitialize_optionsrdrZget_sub_commandsreinitialize_command)rrruZreinit_subcommandsrrsubrHrHrIrs     z!Distribution.reinitialize_commandcCstj||dS)N)r )rrrylevelrHrHrIrszDistribution.announcecCsx|jD]}|j|qWdS)zRun each command that was seen on the setup script command line. Uses the list of commands found and cache of command objects created by 'get_command_obj()'. N)r run_command)rrrrHrHrI run_commandss zDistribution.run_commandscCsD|jj|rdStjd||j|}|j|jd|j|<dS)aDo whatever it takes to run a command (including nothing at all, if the command has already been run). Specifically: if we have already created and run the command named by 'command', return silently without doing anything. If the command named by 'command' doesn't even have a command object yet, create one. Then invoke 'run()' on that command object (or an existing one). Nz running %sr)rdrer inforZensure_finalizedZrun)rrrurrHrHrIrs   zDistribution.run_commandcCst|jp|jpgdkS)Nr)rr\r])rrrHrHrIhas_pure_modulesszDistribution.has_pure_modulescCs|jot|jdkS)Nr)r`r)rrrHrHrIhas_ext_modulesszDistribution.has_ext_modulescCs|jot|jdkS)Nr)r^r)rrrHrHrIhas_c_librariesszDistribution.has_c_librariescCs|jp|jS)N)rr)rrrHrHrI has_modulesszDistribution.has_modulescCs|jot|jdkS)Nr)r_r)rrrHrHrI has_headersszDistribution.has_headerscCs|jot|jdkS)Nr)rar)rrrHrHrI has_scriptsszDistribution.has_scriptscCs|jot|jdkS)Nr)rbr)rrrHrHrIhas_data_filesszDistribution.has_data_filescCs|jo|j o|j S)N)rrr)rrrHrHrIis_pures zDistribution.is_pure)r r rr)rrr)rrr)rrr)rNr)rNr)rNr)rr r!)r"Nr#)r$Nr%)r&Nr')r(Nr))r*Nr+)r,Nr-)r.Nr/)r0Nr1)r2Nr3)r4Nr5)r6Nr7)r8Nr9)r:Nr;)r<Nr=)r>Nr?)r@NrA)rBNrC)rDNrE)N)NNrL)N)r)N)r))r __module__ __qualname____doc__rrrrQrr|rgrrrrrrrqrrrrrrrrrrr INFOrrrrrrrrrrrrHrHrHrIr s    " 0 :C [  1(!" &  , ) r c@seZdZdZdOZdPddZddZddZddZdd Z d!d"Z d#d$Z d%d&Z d'd(Z d)d*Zd+d,Zd-d.Zd/d0Zd1d2Zd3d4Zd5d6ZeZd7d8Zd9d:Zd;d<Zd=d>Zd?d@ZdAdBZdCdDZdEdFZdGdHZdIdJZdKdLZ dMdNZ!dS)QrSz]Dummy class to hold the distribution meta-data: name, version, author, and so forth. rrr$ author_emailr(maintainer_emailr0r2r6long_descriptionr>r:r"r, contact_emailr< download_urlr@rBrDNcCs|dk r|jt|nfd|_d|_d|_d|_d|_d|_d|_d|_ d|_ d|_ d|_ d|_ d|_d|_d|_d|_d|_dS)N) read_pkg_fileopenrrr$rr(rr0r2r6rr>r:r<r r@rBrD)rrrrHrHrIr|s&zDistributionMetadata.__init__cst|fdd}fdd}d}|d|_|d|_|d|_|d |_d |_|d |_d |_|d |_|d |_ dkr|d|_ nd |_ |d|_ |d|_dkr|dj d|_ |d|_|d|_|dkr|d|_|d|_|d|_nd |_d |_d |_d S)z-Reads the metadata values from a file object.cs|}|dkrdS|S)NUNKNOWNrH)rr)ryrHrI _read_fieldsz7DistributionMetadata.read_pkg_file.._read_fieldcsj|d}|gkrdS|S)N)Zget_all)rvalues)ryrHrI _read_list#s z6DistributionMetadata.read_pkg_file.._read_listzmetadata-versionrrZsummaryr$Nz author-emailz home-pager2z download-urlr6r>rplatformZ classifierz1.1rBr@rD)rrrr6r$r(rrr0r2r rrr>r:r<rBr@rD)rrfilerrZmetadata_versionrH)ryrIr s:                 z"DistributionMetadata.read_pkg_filec Cs2ttjj|dddd}|j|WdQRXdS)z7Write the PKG-INFO file into the release tree. zPKG-INFOwzUTF-8)encodingN)r rrrwrite_pkg_file)rrZbase_dirZpkg_inforHrHrIwrite_pkg_infoMs z#DistributionMetadata.write_pkg_infocCsbd}|js"|js"|js"|js"|jr&d}|jd||jd|j|jd|j|jd|j|jd|j |jd|j |jd |j |jd |j |jr|jd |jt |j}|jd |d j|j}|r|jd||j|d|j|j|d|j|j|d|j|j|d|j|j|d|jdS)z9Write the PKG-INFO format data to a file object. z1.0z1.1zMetadata-Version: %s z Name: %s z Version: %s z Summary: %s zHome-page: %s z Author: %s zAuthor-email: %s z License: %s zDownload-URL: %s zDescription: %s rz Keywords: %s ZPlatformZ ClassifierZRequiresZProvidesZ ObsoletesN)r@rBrDr<r rlget_name get_versionget_descriptionget_url get_contactget_contact_email get_licenserget_long_descriptionr get_keywords _write_list get_platformsget_classifiers get_requires get_provides get_obsoletes)rrrrZ long_descr>rHrHrIrTs0  z#DistributionMetadata.write_pkg_filecCs$x|D]}|jd||fqWdS)Nz%s: %s )rl)rrrrrrrHrHrIr vs z DistributionMetadata._write_listcCs |jpdS)Nr )r)rrrHrHrIr|szDistributionMetadata.get_namecCs |jpdS)Nz0.0.0)r)rrrHrHrIrsz DistributionMetadata.get_versioncCsd|j|jfS)Nz%s-%s)rr)rrrHrHrI get_fullnamesz!DistributionMetadata.get_fullnamecCs |jpdS)Nr )r$)rrrHrHrI get_authorszDistributionMetadata.get_authorcCs |jpdS)Nr )r)rrrHrHrIget_author_emailsz%DistributionMetadata.get_author_emailcCs |jpdS)Nr )r()rrrHrHrIget_maintainersz#DistributionMetadata.get_maintainercCs |jpdS)Nr )r)rrrHrHrIget_maintainer_emailsz)DistributionMetadata.get_maintainer_emailcCs|jp|jpdS)Nr )r(r$)rrrHrHrIrsz DistributionMetadata.get_contactcCs|jp|jpdS)Nr )rr)rrrHrHrIrsz&DistributionMetadata.get_contact_emailcCs |jpdS)Nr )r0)rrrHrHrIrszDistributionMetadata.get_urlcCs |jpdS)Nr )r2)rrrHrHrIrsz DistributionMetadata.get_licensecCs |jpdS)Nr )r6)rrrHrHrIrsz$DistributionMetadata.get_descriptioncCs |jpdS)Nr )r)rrrHrHrIrsz)DistributionMetadata.get_long_descriptioncCs |jpgS)N)r>)rrrHrHrIrsz!DistributionMetadata.get_keywordscCs |jp dgS)Nr )r:)rrrHrHrIr!sz"DistributionMetadata.get_platformscCs |jpgS)N)r<)rrrHrHrIr"sz$DistributionMetadata.get_classifierscCs |jpdS)Nr )r )rrrHrHrIget_download_urlsz%DistributionMetadata.get_download_urlcCs |jpgS)N)rB)rrrHrHrIr#sz!DistributionMetadata.get_requirescCs,ddl}x|D]}|jj|qW||_dS)Nr)distutils.versionpredicateversionpredicateVersionPredicaterB)rrrrr rHrHrI set_requiress z!DistributionMetadata.set_requirescCs |jpgS)N)r@)rrrHrHrIr$sz!DistributionMetadata.get_providescCs:dd|D}x |D]}ddl}|jj|qW||_dS)NcSsg|] }|jqSrH)r)rFr rHrHrIrJsz5DistributionMetadata.set_provides..r)r,r-Zsplit_provisionr@)rrrr rrHrHrI set_providess  z!DistributionMetadata.set_providescCs |jpgS)N)rD)rrrHrHrIr%sz"DistributionMetadata.get_obsoletescCs,ddl}x|D]}|jj|qW||_dS)Nr)r,r-r.rD)rrrrr rHrHrI set_obsoletess z"DistributionMetadata.set_obsoletes)rrr$rr(rr0r2r6rr>r:r"r,r r<r r@rBrD)N)"rrrrrUr|r rrr rrr&r'r(r)r*rrrrZ get_licencerrrr!r"r+r#r/r$r0r%r1rHrHrHrIrSsH 4"rScCs(g}x|D]}|j|ddq W|S)zConvert a 4-tuple 'help_options' list as found in various command classes to the 3-tuple form required by FancyGetopt. r)r)rMZ new_optionsZ help_tuplerHrHrIrs r)rrjrreZemailrrhrZdistutils.errorsZdistutils.fancy_getoptrrZdistutils.utilrrrrr Zdistutils.debugr compilerr rSrrHrHrHrIs2      ]ZPK!Y/&/&)__pycache__/filelist.cpython-36.opt-1.pycnu[3 \ 2@sdZddlZddlZddlZddlZddlmZddlmZm Z ddl m Z GdddZ dd Z ejfd d Zd d ZdddZdS)zsdistutils.filelist Provides the FileList class, used for poking about the filesystem and building lists of files. N) convert_path)DistutilsTemplateErrorDistutilsInternalError)logc@s|eZdZdZdddZddZejfddZd d Z d d Z d dZ ddZ ddZ ddZddZdddZdddZdS) FileListaA list of files built by on exploring the filesystem and filtered by applying various patterns to what we find there. Instance attributes: dir directory from which files will be taken -- only used if 'allfiles' not supplied to constructor files list of filenames currently being built/filtered/manipulated allfiles complete list of files under consideration (ie. without any filtering applied) NcCsd|_g|_dS)N)allfilesfiles)selfwarn debug_printr */usr/lib64/python3.6/distutils/filelist.py__init__szFileList.__init__cCs ||_dS)N)r)r rr r r set_allfiles#szFileList.set_allfilescCst||_dS)N)findallr)r dirr r r r&szFileList.findallcCsddlm}|rt|dS)z~Print 'msg' to stdout if the global DEBUG (taken from the DISTUTILS_DEBUG environment variable) flag is true. r)DEBUGN)Zdistutils.debugrprint)r msgrr r r r )s zFileList.debug_printcCs|jj|dS)N)rappend)r itemr r r r3szFileList.appendcCs|jj|dS)N)rextend)r itemsr r r r6szFileList.extendcCs@tttjj|j}g|_x |D]}|jjtjj|q WdS)N)sortedmapospathsplitrrjoin)r Zsortable_filesZ sort_tupler r r sort9s z FileList.sortcCsDx>tt|jdddD]$}|j||j|dkr|j|=qWdS)Nr)rangelenr)r ir r r remove_duplicatesCszFileList.remove_duplicatescCs|j}|d}d}}}|dkrTt|dkr ...cSsg|] }t|qSr )r).0wr r r Wsz1FileList._parse_template_line..r recursive-includerecursive-excludez,'%s' expects ...cSsg|] }t|qSr )r)r+r,r r r r-]sgraftprunez#'%s' expects a single zunknown action '%s')r&r'r(r))r.r/)r1r2)rr#rr)r lineZwordsactionpatternsr dir_patternr r r _parse_template_lineLs,         zFileList._parse_template_linecCsX|j|\}}}}|dkrZ|jddj|x&|D]}|j|dds4tjd|q4Wn|dkr|jddj|x&|D]}|j|dds|tjd |q|Wn|d kr|jd dj|x&|D]}|j|d dstjd |qWnj|dkr8|jddj|x*|D]"}|j|d dstjd|qWn|dkr|jd|dj|fx,|D]$}|j||ds`tjd||q`Wn|dkr|jd|dj|fx|D]$}|j||dstjd||qWnx|dkr|jd||jd|dsTtjd|nB|dkrH|jd||jd|dsTtjd|n td|dS)Nr&zinclude  r )anchorz%warning: no files found matching '%s'r'zexclude z9warning: no previously-included files found matching '%s'zglobal-includezglobal-include rz>warning: no files found matching '%s' anywhere in distributionzglobal-excludezglobal-exclude zRwarning: no previously-included files matching '%s' found anywhere in distributionzrecursive-includezrecursive-include %s %s)prefixz:warning: no files found matching '%s' under directory '%s'zrecursive-excludezrecursive-exclude %s %szNwarning: no previously-included files matching '%s' found under directory '%s'r1zgraft z+warning: no directories found matching '%s'r2zprune z6no previously-included directories found matching '%s'z'this cannot happen: invalid action '%s')r7r rinclude_patternrr exclude_patternr)r r3r4r5rr6patternr r r process_template_linehsf           zFileList.process_template_liner rcCspd}t||||}|jd|j|jdkr4|jx6|jD],}|j|r<|jd||jj|d}qr;r<r r r r rs     L ,rcCs&ddtj|ddD}ttjj|S)z% Find all files under 'path' css,|]$\}}}|D]}tjj||VqqdS)N)rrr)r+basedirsrfiler r r sz#_find_all_simple..T) followlinks)rwalkfilterrisfile)rZresultsr r r _find_all_simplesrRcCs6t|}|tjkr.tjtjj|d}t||}t|S)z Find all files under 'dir' and return the list of full filenames. Unless dir is '.', return full filenames with dir prepended. )start) rRrrI functoolspartialrrelpathrlist)rrZmake_relr r r rs   rcCs8tj|}tj}tjdkrd}d|}tjd||}|S)zTranslate a shell-like glob pattern to a regular expression; return a string containing the regex. Differs from 'fnmatch.translate()' in that '*' does not match "special characters" (which are platform-specific). \z\\\\z\1[^%s]z((?t|}nd}|dk rt|}|t|t|t|}tj} tjdkrd} |t|t|t|}d||| ||f}n|rd||t|df}tj|S)aTranslate a shell-like wildcard pattern to a compiled regular expression. Return the compiled regex. If 'is_regex' true, then 'pattern' is directly compiled to a regex (if it's a string) or just returned as-is (assumes it's a regex object). _NrXz\\z%s\A%s%s.*%s%sz%s\A%s) isinstancestrr\compiler^ partitionr#rr[) r=r9r:rArSr_endrCZ prefix_rer[r r r r?%s(   r?)r Nr)rHrr\rYrTZdistutils.utilrZdistutils.errorsrrZ distutilsrrrRrIrr^r?r r r r s  i  PK!wm)__pycache__/dep_util.cpython-36.opt-2.pycnu[3 \ @s2ddlZddlmZddZddZd dd ZdS) N)DistutilsFileErrorcCs`tjj|s tdtjj|tjj|s0dSddlm}tj||}tj||}||kS)Nzfile '%s' does not existr)ST_MTIME)ospathexistsrabspathstatr)sourcetargetrZmtime1Zmtime2r */usr/lib64/python3.6/distutils/dep_util.pynewer s   rcCslt|t|krtdg}g}xBtt|D]2}t||||r.|j|||j||q.W||fS)Nz+'sources' and 'targets' must be same length)len ValueErrorrangerappend)sourcesZtargetsZ n_sourcesZ n_targetsir r r newer_pairwise srerrorcCstjj|sdSddlm}tj||}xX|D]L}tjj|sb|dkrJn|dkrVq0n |dkrbdStj||}||kr0dSq0WdSdS)Nrr)rrignorer)rrrr r)rr ZmissingrZ target_mtimer source_mtimer r r newer_group6s     r)r)rZdistutils.errorsrrrrr r r r s PK!y+__pycache__/versionpredicate.cpython-36.pycnu[3 \ @sdZddlZddlZddlZejdejZejdZejdZ ddZ ej ej ej ejejejdZGd d d Zdad d ZdS) zBModule for parsing and testing package version predicate strings. Nz'(?i)^\s*([a-z_]\w*(?:\.[a-z_]\w*)*)(.*)z^\s*\((.*)\)\s*$z%^\s*(<=|>=|<|>|!=|==)\s*([^\s,]+)\s*$cCs6tj|}|std||j\}}|tjj|fS)zVParse a single version comparison. Return (comparison string, StrictVersion) z"bad package restriction syntax: %r)re_splitComparisonmatch ValueErrorgroups distutilsversion StrictVersion)predrescompZverStrr 2/usr/lib64/python3.6/distutils/versionpredicate.pysplitUps    r)z>=z!=c@s(eZdZdZddZddZddZdS) VersionPredicateaParse and test package version predicates. >>> v = VersionPredicate('pyepat.abc (>1.0, <3333.3a1, !=1555.1b3)') The `name` attribute provides the full dotted name that is given:: >>> v.name 'pyepat.abc' The str() of a `VersionPredicate` provides a normalized human-readable version of the expression:: >>> print(v) pyepat.abc (> 1.0, < 3333.3a1, != 1555.1b3) The `satisfied_by()` method can be used to determine with a given version number is included in the set described by the version restrictions:: >>> v.satisfied_by('1.1') True >>> v.satisfied_by('1.4') True >>> v.satisfied_by('1.0') False >>> v.satisfied_by('4444.4') False >>> v.satisfied_by('1555.1b3') False `VersionPredicate` is flexible in accepting extra whitespace:: >>> v = VersionPredicate(' pat( == 0.1 ) ') >>> v.name 'pat' >>> v.satisfied_by('0.1') True >>> v.satisfied_by('0.2') False If any version numbers passed in do not conform to the restrictions of `StrictVersion`, a `ValueError` is raised:: >>> v = VersionPredicate('p1.p2.p3.p4(>=1.0, <=1.3a1, !=1.2zb3)') Traceback (most recent call last): ... ValueError: invalid version number '1.2zb3' It the module or package name given does not conform to what's allowed as a legal module or package name, `ValueError` is raised:: >>> v = VersionPredicate('foo-bar') Traceback (most recent call last): ... ValueError: expected parenthesized list: '-bar' >>> v = VersionPredicate('foo bar (12.21)') Traceback (most recent call last): ... ValueError: expected parenthesized list: 'bar (12.21)' cCs|j}|stdtj|}|s.td||j\|_}|j}|rtj|}|sbtd||jd}dd|jdD|_|jstd|ng|_d S) z*Parse a version predicate string. zempty package restrictionzbad package name in %rzexpected parenthesized list: %rrcSsg|] }t|qSr )r).0ZaPredr r r tsz-VersionPredicate.__init__..,zempty parenthesized list in %rN) striprre_validPackagerrnamere_parensplitr )selfZversionPredicateStrrZparenstrr r r __init__`s$      zVersionPredicate.__init__cCs8|jr.dd|jD}|jddj|dS|jSdS)NcSs g|]\}}|dt|qS) )r)rcondverr r r r}sz,VersionPredicate.__str__..z (z, ))r rjoin)rseqr r r __str__{szVersionPredicate.__str__cCs*x$|jD]\}}t|||sdSqWdS)zTrue if version is compatible with all the predicates in self. The parameter version must be acceptable to the StrictVersion constructor. It may be either a string or StrictVersion. FT)r compmap)rrrrr r r satisfied_byszVersionPredicate.satisfied_byN)__name__ __module__ __qualname____doc__rr#r%r r r r rs?rcCsdtdkrtjdtja|j}tj|}|s8td||jdpDd}|rVtj j |}|jd|fS)a9Return the name and optional version number of a provision. The version number, if given, will be returned as a `StrictVersion` instance, otherwise it will be `None`. >>> split_provision('mypkg') ('mypkg', None) >>> split_provision(' mypkg( 1.2 ) ') ('mypkg', StrictVersion ('1.2')) Nz=([a-zA-Z_]\w*(?:\.[a-zA-Z_]\w*)*)(?:\s*\(\s*([^)\s]+)\s*\))?$z"illegal provides specification: %r) _provision_rxrecompileASCIIrrrgrouprrr)valuemrr r r split_provisions    r3)r)r-Zdistutils.versionroperatorr.r/rrrrltleeqgtgener$rr,r3r r r r s   nPK!u>UaUa%__pycache__/dist.cpython-36.opt-2.pycnu[3 \ @sddlZddlZddlZddlmZy ddlZWnek rHdZYnXddlTddlm Z m Z ddl m Z m Z mZddlmZddlmZejdZGd d d ZGd d d Zd dZdS)N)message_from_file)*) FancyGetopttranslate_longopt) check_environ strtobool rfc822_escape)log)DEBUGz^[a-zA-Z]([a-zA-Z0-9_]*)$c@sleZdZd}d~dddgZdZdddddddddddddddddddddgZd=d>eDZddiZdd?d@ZdAdBZ ddDdEZ dFdGZ ddHdIZ dJdKZ dLdMZdNdOZdPdQZddgfdRdSZdTdUZdVdWZdXdYZdZd[Zd\d]Zd^d_Zdd`daZddbdcZddedfZejfdgdhZdidjZdkdlZdmdnZ dodpZ!dqdrZ"dsdtZ#dudvZ$dwdxZ%dydzZ&d{d|Z'dS) Distributionverbosevrun verbosely (default)quietq!run quietly (turns verbosity off)dry-runndon't actually do anythinghelphshow detailed help message no-user-cfgN-ignore pydistutils.cfg in your home directoryzCommon commands: (see '--help-commands' for more) setup.py build will build the package underneath 'build/' setup.py install will install the package help-commandslist all available commandsnameprint package nameversionVprint package versionfullnameprint -authorprint the author's name author-email print the author's email address maintainerprint the maintainer's namemaintainer-email$print the maintainer's email addresscontact7print the maintainer's name if known, else the author's contact-email@print the maintainer's email address if known, else the author'surlprint the URL for this packagelicense print the license of the packagelicencealias for --license descriptionprint the package descriptionlong-description"print the long package description platformsprint the list of platforms classifiersprint the list of classifierskeywordsprint the list of keywordsprovides+print the list of packages/modules providedrequires+print the list of packages/modules required obsoletes0print the list of packages/modules made obsoletecCsg|]}t|dqS)r)r).0xrH&/usr/lib64/python3.6/distutils/dist.py sszDistribution.cCsd|_d|_d|_x|jD]}t||dqWt|_x,|jjD] }d|}t||t|j|q@Wi|_ d|_ d|_ d|_ i|_ g|_d|_i|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_i|_i|_|r8|jd}|dk rH|d=xD|jD]8\}}|j |}x"|jD]\} } d| f|| <q(Wq Wd|kr|d|d<|d=d } t!dk r~t!j"| nt#j$j%| d x|jD]\} } t&|jd | rt|jd | | njt&|j| rt|j| | nLt&|| rt|| | n2d t'| } t!dk r"t!j"| nt#j$j%| d qWd |_(|j dk r|x0|j D]&} | j)dsdP| dkrRd|_(PqRW|j*dS)Nrrget_optionsz setup scriptr4r2z:'licence' distribution option is deprecated; use 'license' Zset_zUnknown distribution option: %sT-z --no-user-cfgF)+r dry_runrdisplay_option_namessetattrDistributionMetadatametadata_METHOD_BASENAMESgetattrcmdclasscommand_packages script_name script_argscommand_optionsZ dist_filespackagesZ package_dataZ package_dir py_modules librariesheaders ext_modulesZ ext_packageZ include_dirsZ extra_pathscripts data_filesZpassword command_objhave_rungetitemsget_option_dictwarningswarnsysstderrwritehasattrrepr want_user_cfg startswithfinalize_options)selfZattrsattrbasenameZ method_namerMcommandZ cmd_optionsopt_dictoptvalmsgkeyargrHrHrI__init__zs                   zDistribution.__init__cCs&|jj|}|dkr"i}|j|<|S)N)r[re)rrrudictrHrHrIrgs zDistribution.get_option_dictrLc Csddlm}|dkr"t|jj}|dk r@|j|||d}|sV|j|ddSxt|D]l}|jj|}|dkr|j|d|q\|j|d|||}x$|jdD]}|j|d|qWq\WdS)Nr)pformatz zno commands known yetzno option dict for '%s' commandzoption dict for '%s' command:rN)pprintr~sortedr[keysannounceresplit) rrheadercommandsindentr~Zcmd_namervoutlinerHrHrIdump_option_dicts&s&    zDistribution.dump_option_dictscCsg}ttjjtjdj}tjj|d}tjj|rB|j |tj dkrRd}nd}|j rtjjtjj d|}tjj|r|j |d}tjj|r|j |t r|jdd j||S) N distutilsz distutils.cfgposixz.pydistutils.cfgzpydistutils.cfg~z setup.cfgzusing config files: %sz, )rospathdirnamerjmodules__file__joinisfileappendrro expanduserr r)rrfilesZsys_dirZsys_fileZ user_filenameZ user_fileZ local_filerHrHrIfind_config_filesBs&       zDistribution.find_config_filescCsddlm}tjtjkr8ddddddd d d d d ddg }ng}t|}|dkrT|j}trb|jd|}x|D]}tr|jd||j |xf|j D]Z}|j |}|j |}x@|D]8} | dkr| |kr|j || } | jdd} || f|| <qWqW|jqnWd|jkrx|jdjD]\} \} } |jj | } yF| rRt|| t|  n(| dkrnt|| t| n t|| | Wn,tk r} zt| WYdd} ~ XnXqWdS)Nr) ConfigParserz install-basezinstall-platbasez install-libzinstall-platlibzinstall-purelibzinstall-headerszinstall-scriptsz install-dataprefixz exec-prefixhomeuserrootz"Distribution.parse_config_files():z reading %s__name__rO_globalr rP)r rP)Z configparserrrjr base_prefix frozensetrr rreadZsectionsrMrgrereplacer|r[rf negative_optrRr ValueErrorDistutilsOptionError)rr filenamesrZignore_optionsparserfilenameZsectionrMrvrwrxsrcaliasryrHrHrIparse_config_filesrsJ               zDistribution.parse_config_filescCs|j}g|_t||j}|j|j|jddi|j|j|d}|j }t j |j |j |rhdSx |r|j||}|dkrjdSqjW|jr|j|t|jdk|jddS|jstddS)Nr4r2)argsobjectr)display_optionsrzno commands suppliedT)_get_toplevel_optionsrrrset_negative_aliasesrZ set_aliasesgetoptrZZget_option_orderr Z set_verbosityr handle_display_options_parse_command_optsr _show_helplenDistutilsArgError)rrZtoplevel_optionsrr option_orderrHrHrIparse_command_lines,       zDistribution.parse_command_linecCs |jdgS)Ncommand-packages=0list of packages that provide distutils commands)rNr)global_options)rrrHrHrIrsz"Distribution._get_toplevel_optionscCsddlm}|d}tj|s*td||jj|y|j|}Wn*tk rn}zt |WYdd}~XnXt ||st d|t |dot |jtsd}t |||j}t |dr|j}|j|jt |drt |jtrt|j}ng}|j|j|j||j||j|d d\}} t | d rV| jrV|j|d|gd dSt |drt |jtrd} xP|jD]F\} } } }t | |j| r|d } t|r|nt d || fq|W| rdS|j|}x&t| jD]\}}d |f||<qW|S)Nr)Commandzinvalid command name '%s'z&command class %s must subclass Command user_optionszIcommand class %s must provide 'user_options' attribute (a list of tuples)r help_optionsrr)rrzYinvalid help function %r for help option '%s': must be a callable object (function, etc.)z command line) distutils.cmdr command_rematch SystemExitrrget_command_classDistutilsModuleErrorr issubclassZDistutilsClassErrorrm isinstancerlistrcopyupdaterfix_help_optionsset_option_tablerrrrrZ get_attr_namecallablergvarsrf)rrrrrruZ cmd_classryrrZoptsZhelp_option_foundZ help_optionZshortZdescfuncrvrvaluerHrHrIrsb                   z Distribution._parse_command_optscCsTxNdD]F}t|j|}|dkr qt|trdd|jdD}t|j||qWdS)Nr>r:cSsg|] }|jqSrH)strip)rFZelmrHrHrIrJ_sz1Distribution.finalize_options..,)r>r:)rVrTrstrrrR)rrrsrrHrHrIrqUs   zDistribution.finalize_optionsc Cs ddlm}ddlm}|rR|r*|j}n|j}|j||j|jdt d|rt|j|j |jd t dx|j D]z}t |t rt||r|} n |j|} t| drt | jtr|j| jt| jn |j| j|jd | jt dq|Wt ||jdS) Nr) gen_usage)rz Global options:rLz*Information display options (just display z!information, ignore any commands)rzOptions for '%s' command:zKInformation display options (just display information, ignore any commands))distutils.corerrrrrrZ print_help common_usageprintrrrtyperrrmrrrrrrY) rrrrrrrrrMruklassrHrHrIrbs6           zDistribution._show_helpc Csddlm}|jr4|jtdt||jdSd}i}x|jD]}d||d<qDWxt|D]l\}}|r^|j|r^t|}t |j d|}|dkrtdj |n |dkrtd j |nt|d}q^W|S)Nr)rrLrrKr>r:rr<r@rBrDrN)r>r:)r<r@rBrD) rrZ help_commandsprint_commandsrrYrrerrVrTr) rrrrZany_display_optionsZis_display_optionoptionrwrxrrHrHrIrs,  z#Distribution.handle_display_optionscCsnt|dx\|D]T}|jj|}|s0|j|}y |j}Wntk rRd}YnXtd|||fqWdS)N:z(no description available)z %-*s %s)rrWrerr6AttributeError)rrrr max_lengthcmdrr6rHrHrIprint_command_lists      zDistribution.print_command_listcCsddl}|jj}i}x|D] }d||<qWg}x&|jjD]}|j|s:|j|q:Wd}x$||D]}t||krdt|}qdW|j|d||rt |j|d|dS)NrrzStandard commandszExtra commands) distutils.commandru__all__rWrrerrrr)rrr std_commandsis_stdrextra_commandsrrHrHrIrs*     zDistribution.print_commandsc Csddl}|jj}i}x|D] }d||<qWg}x&|jjD]}|j|s:|j|q:Wg}x\||D]P}|jj|}|s|j|}y |j}Wnt k rd}YnX|j||fqdW|S)Nrrz(no description available)) rrurrWrrerrr6r) rrrrrrrrvrr6rHrHrIget_command_lists(        zDistribution.get_command_listcCsN|j}t|tsJ|dkrd}dd|jdD}d|krD|jdd||_|S)NrLcSsg|]}|dkr|jqS)rL)r)rFZpkgrHrHrIrJsz5Distribution.get_command_packages..rzdistutils.commandr)rXrrrinsert)rrZpkgsrHrHrIget_command_packagess  z!Distribution.get_command_packagescCs|jj|}|r|Sx|jD]}d||f}|}yt|tj|}Wntk r^wYnXyt||}Wn&tk rt d|||fYnX||j|<|SWt d|dS)Nz%s.%sz3invalid command '%s' (no class '%s' in module '%s')zinvalid command '%s') rWrer __import__rjr ImportErrorrVrr)rrrurZpkgnameZ module_nameZ klass_namemodulerHrHrIrs(   zDistribution.get_command_classcCsn|jj|}| rj|rjtr(|jd||j|}||}|j|<d|j|<|jj|}|rj|j|||S)Nz.z1error in %s: command '%s' has no such option '%s')get_command_namergr rrfZboolean_optionsrrrrrRrrmrr) rrrcZ option_dict command_namersourcerZ bool_optsZneg_optZ is_stringryrHrHrIr]s>           z!Distribution._set_command_optionsrcCsddlm}t||s&|}|j|}n|j}|js8|S|jd|_d|j|<|j||r|x|j D]}|j ||qhW|S)Nr)r) rrrrrZ finalizedZinitialize_optionsrdrZget_sub_commandsreinitialize_command)rrruZreinit_subcommandsrrsubrHrHrIrs     z!Distribution.reinitialize_commandcCstj||dS)N)r )rrrylevelrHrHrIrszDistribution.announcecCsx|jD]}|j|qWdS)N)r run_command)rrrrHrHrI run_commandss zDistribution.run_commandscCsD|jj|rdStjd||j|}|j|jd|j|<dS)Nz running %sr)rdrer inforZensure_finalizedZrun)rrrurrHrHrIrs   zDistribution.run_commandcCst|jp|jpgdkS)Nr)rr\r])rrrHrHrIhas_pure_modulesszDistribution.has_pure_modulescCs|jot|jdkS)Nr)r`r)rrrHrHrIhas_ext_modulesszDistribution.has_ext_modulescCs|jot|jdkS)Nr)r^r)rrrHrHrIhas_c_librariesszDistribution.has_c_librariescCs|jp|jS)N)rr)rrrHrHrI has_modulesszDistribution.has_modulescCs|jot|jdkS)Nr)r_r)rrrHrHrI has_headersszDistribution.has_headerscCs|jot|jdkS)Nr)rar)rrrHrHrI has_scriptsszDistribution.has_scriptscCs|jot|jdkS)Nr)rbr)rrrHrHrIhas_data_filesszDistribution.has_data_filescCs|jo|j o|j S)N)rrr)rrrHrHrIis_pures zDistribution.is_pure)r r rr)rrr)rrr)rrr)rNr)rNr)rNr)rr r!)r"Nr#)r$Nr%)r&Nr')r(Nr))r*Nr+)r,Nr-)r.Nr/)r0Nr1)r2Nr3)r4Nr5)r6Nr7)r8Nr9)r:Nr;)r<Nr=)r>Nr?)r@NrA)rBNrC)rDNrE)N)NNrL)N)r)N)r)(r __module__ __qualname__rrrrQrr|rgrrrrrrrqrrrrrrrrrrr INFOrrrrrrrrrrrrHrHrHrIr s  " 0 :C [  1(!" &  , ) r c@seZdZdNZdOddZddZddZddZddZd d!Z d"d#Z d$d%Z d&d'Z d(d)Z d*d+Zd,d-Zd.d/Zd0d1Zd2d3Zd4d5ZeZd6d7Zd8d9Zd:d;Zdd?Zd@dAZdBdCZdDdEZdFdGZdHdIZdJdKZdLdMZ dS)PrSrrr$ author_emailr(maintainer_emailr0r2r6long_descriptionr>r:r"r, contact_emailr< download_urlr@rBrDNcCs|dk r|jt|nfd|_d|_d|_d|_d|_d|_d|_d|_ d|_ d|_ d|_ d|_ d|_d|_d|_d|_d|_dS)N) read_pkg_fileopenrrr$rr(rr0r2r6rr>r:r<r r@rBrD)rrrrHrHrIr|s&zDistributionMetadata.__init__cst|fdd}fdd}d}|d|_|d|_|d|_|d |_d|_|d |_d|_|d |_|d |_ d kr|d |_ nd|_ |d|_ |d|_dkr|dj d|_ |d|_|d|_|dkr|d|_|d|_|d|_nd|_d|_d|_dS)Ncs|}|dkrdS|S)NUNKNOWNrH)rr)ryrHrI _read_fieldsz7DistributionMetadata.read_pkg_file.._read_fieldcsj|d}|gkrdS|S)N)Zget_all)rvalues)ryrHrI _read_list#s z6DistributionMetadata.read_pkg_file.._read_listzmetadata-versionrrZsummaryr$z author-emailz home-pager2z download-urlr6r>rplatformZ classifierz1.1rBr@rD)rrrr6r$r(rrr0r2r rrr>r:r<rBr@rD)rrfiler rZmetadata_versionrH)ryrIr s:                 z"DistributionMetadata.read_pkg_filec Cs2ttjj|dddd}|j|WdQRXdS)NzPKG-INFOwzUTF-8)encoding)r rrrwrite_pkg_file)rrZbase_dirZpkg_inforHrHrIwrite_pkg_infoMs z#DistributionMetadata.write_pkg_infocCsbd}|js"|js"|js"|js"|jr&d}|jd||jd|j|jd|j|jd|j|jd|j |jd|j |jd |j |jd |j |jr|jd |jt |j}|jd |d j|j}|r|jd||j|d|j|j|d|j|j|d|j|j|d|j|j|d|jdS)Nz1.0z1.1zMetadata-Version: %s z Name: %s z Version: %s z Summary: %s zHome-page: %s z Author: %s zAuthor-email: %s z License: %s zDownload-URL: %s zDescription: %s rz Keywords: %s ZPlatformZ ClassifierZRequiresZProvidesZ Obsoletes)r@rBrDr<r rlget_name get_versionget_descriptionget_url get_contactget_contact_email get_licenserget_long_descriptionr get_keywords _write_list get_platformsget_classifiers get_requires get_provides get_obsoletes)rrrrZ long_descr>rHrHrIrTs0  z#DistributionMetadata.write_pkg_filecCs$x|D]}|jd||fqWdS)Nz%s: %s )rl)rrrrrrrHrHrIrvs z DistributionMetadata._write_listcCs |jpdS)Nr )r)rrrHrHrIr|szDistributionMetadata.get_namecCs |jpdS)Nz0.0.0)r)rrrHrHrIrsz DistributionMetadata.get_versioncCsd|j|jfS)Nz%s-%s)rr)rrrHrHrI get_fullnamesz!DistributionMetadata.get_fullnamecCs |jpdS)Nr )r$)rrrHrHrI get_authorszDistributionMetadata.get_authorcCs |jpdS)Nr )r)rrrHrHrIget_author_emailsz%DistributionMetadata.get_author_emailcCs |jpdS)Nr )r()rrrHrHrIget_maintainersz#DistributionMetadata.get_maintainercCs |jpdS)Nr )r)rrrHrHrIget_maintainer_emailsz)DistributionMetadata.get_maintainer_emailcCs|jp|jpdS)Nr )r(r$)rrrHrHrIrsz DistributionMetadata.get_contactcCs|jp|jpdS)Nr )rr)rrrHrHrIrsz&DistributionMetadata.get_contact_emailcCs |jpdS)Nr )r0)rrrHrHrIrszDistributionMetadata.get_urlcCs |jpdS)Nr )r2)rrrHrHrIrsz DistributionMetadata.get_licensecCs |jpdS)Nr )r6)rrrHrHrIrsz$DistributionMetadata.get_descriptioncCs |jpdS)Nr )r)rrrHrHrIrsz)DistributionMetadata.get_long_descriptioncCs |jpgS)N)r>)rrrHrHrIrsz!DistributionMetadata.get_keywordscCs |jp dgS)Nr )r:)rrrHrHrIr sz"DistributionMetadata.get_platformscCs |jpgS)N)r<)rrrHrHrIr!sz$DistributionMetadata.get_classifierscCs |jpdS)Nr )r )rrrHrHrIget_download_urlsz%DistributionMetadata.get_download_urlcCs |jpgS)N)rB)rrrHrHrIr"sz!DistributionMetadata.get_requirescCs,ddl}x|D]}|jj|qW||_dS)Nr)distutils.versionpredicateversionpredicateVersionPredicaterB)rrrrr rHrHrI set_requiress z!DistributionMetadata.set_requirescCs |jpgS)N)r@)rrrHrHrIr#sz!DistributionMetadata.get_providescCs:dd|D}x |D]}ddl}|jj|qW||_dS)NcSsg|] }|jqSrH)r)rFr rHrHrIrJsz5DistributionMetadata.set_provides..r)r+r,Zsplit_provisionr@)rrrr rrHrHrI set_providess  z!DistributionMetadata.set_providescCs |jpgS)N)rD)rrrHrHrIr$sz"DistributionMetadata.get_obsoletescCs,ddl}x|D]}|jj|qW||_dS)Nr)r+r,r-rD)rrrrr rHrHrI set_obsoletess z"DistributionMetadata.set_obsoletes)rrr$rr(rr0r2r6rr>r:r"r,rr<r r@rBrD)N)!rrrrUr|r rrrrrr%r&r'r(r)rrrrZ get_licencerrrr r!r*r"r.r#r/r$r0rHrHrHrIrSsF 4"rScCs(g}x|D]}|j|ddq W|S)Nr)r)rMZ new_optionsZ help_tuplerHrHrIrs r)rjrreZemailrrhrZdistutils.errorsZdistutils.fancy_getoptrrZdistutils.utilrrrrr Zdistutils.debugr compilerr rSrrHrHrHrIs0      ]ZPK!<<%__pycache__/util.cpython-36.opt-1.pycnu[3 \5Q@sdZddlZddlZddlZddlZddlZddlmZddl m Z ddl m Z ddl mZddlmZdd Zd d Zd d ZdaddZddZd(ddZdaaaddZddZd)ddZddZd*ddZd d!Zd+d"d#Z d,d$d%Z!Gd&d'd'Z"dS)-zudistutils.util Miscellaneous utility functions -- anything that doesn't fit into one of the other *util.py modules. N)DistutilsPlatformError)newer)spawn)log)DistutilsByteCompileErrorcCstjdkrnd}tjj|}|d)kr(tjStjjd|}tj|t||j}|dkr\dS|dkrhdStjSd tjkrtjd Stjd kst td  rtjStj \}}}}}|jj d d }|j dd}|j d d}|dddkrd||fS|dddkrV|ddkrd}dt |dd|ddf}ddd} |d| tj 7}n|dd d!krtd||fS|ddd"krd#|||fS|dd$d%krd%}tjd&tj} | j|} | r| j}n>|dd$d'krddl} ddl} | j| jj|||\}}}d(|||fS)*aReturn a string that identifies the current platform. This is used mainly to distinguish platform-specific build directories and platform-specific built distributions. Typically includes the OS name and version and the architecture (as supplied by 'os.uname()'), although the exact information included depends on the OS; eg. for IRIX the architecture isn't particularly important (IRIX only runs on SGI hardware), but for Linux the kernel version isn't particularly important. Examples of returned values: linux-i586 linux-alpha (?) solaris-2.6-sun4u irix-5.3 irix64-6.2 Windows will return one of: win-amd64 (64bit Windows on AMD64 (aka x86_64, Intel64, EM64T, etc) win-ia64 (64bit Windows on Itanium) win32 (all others - specifically, sys.platform is returned) For other non-POSIX platforms, currently just returns 'sys.platform'. ntz bit ()amd64z win-amd64itaniumzwin-ia64_PYTHON_HOST_PLATFORMposixuname/ _-Nlinuxz%s-%ssunosr5solarisz%d.%s32bit64bit)ilz.%sirixaixz%s-%s.%scygwinz[\d.]+darwinz%s-%s-%s)osnamesysversionfindplatformlenlowerenvironhasattrrreplaceintmaxsizerecompileASCIImatchgroup _osx_supportZdistutils.sysconfigget_platform_osx sysconfigget_config_vars)prefixijlookosnamehostreleaser'machinebitnessrel_remr6 distutilsrF&/usr/lib64/python3.6/distutils/util.py get_platformsX            rHcCs~tjdkr|S|s|S|ddkr.td||ddkrFtd||jd}xd|krf|jdqRW|srtjStjj|S)aReturn 'pathname' as a name that will work on the native filesystem, i.e. split it on '/' and put it back together again using the current directory separator. Needed because filenames in the setup script are always supplied in Unix style, and have to be converted to the local convention before we can actually use them in the filesystem. Raises ValueError on non-Unix-ish systems if 'pathname' either starts or ends with a slash. rrzpath '%s' cannot be absoluterzpath '%s' cannot end with '/'.r#)r$sep ValueErrorsplitremovecurdirpathjoin)pathnamepathsrFrFrG convert_pathos       rScCstjdkr._substz\$([a-zA-Z_][a-zA-Z_0-9]*)zinvalid variable '$%s'N)r]r1subKeyErrorrK)sr_r`varrFrFrG subst_varss  reerror: cCs |t|S)N)r^)excr:rFrFrGgrok_environment_errorsrhcCs(tjdtjatjdatjdadS)Nz [^\\\'\"%s ]*z'(?:[^'\\]|\\.)*'z"(?:[^"\\]|\\.)*")r1r2string whitespace _wordchars_re _squote_re _dquote_rerFrFrFrG _init_regexs rncCstdkrt|j}g}d}x`|rtj||}|j}|t|kr\|j|d|P||tjkr|j|d|||dj }d}n||dkr|d|||dd}|d}n||dkrt j||}n*||dkrt j||}nt d|||dkr"t d|||j\}}|d|||d|d||d}|jd }|t|kr"|j|Pq"W|S) aSplit a string up according to Unix shell-like rules for quotes and backslashes. In short: words are delimited by spaces, as long as those spaces are not escaped by a backslash, or inside a quoted string. Single and double quotes are equivalent, and the quote characters can be backslash-escaped. The backslash is stripped from any two-character escape sequence, leaving only the escaped character. The quote characters are stripped from any quoted string. Returns a list of words. NrrTr'"z!this can't happen (bad char '%c')z"bad string (mismatched %s quotes?)r)rkrnstripr4endr*appendrirjlstriprlrm RuntimeErrorrKspan)rcZwordsposrDrrZbegrFrFrG split_quoteds@         ,   rxcCsP|dkr6d|j|f}|dddkr6|ddd}tj||sL||dS) aPerform some action that affects the outside world (eg. by writing to the filesystem). Such actions are special because they are disabled by the 'dry_run' flag. This method takes care of all that bureaucracy for you; all you have to do is supply the function to call and an argument tuple for it (to embody the "external action" being performed), and an optional message to print. Nz%s%rrz,)rr ry)__name__rinfo)funcargsmsgverbosedry_runrFrFrGexecutes  rcCs2|j}|dkrdS|dkr dStd|fdS)zConvert a string representation of truth to true (1) or false (0). True values are 'y', 'yes', 't', 'true', 'on', and '1'; false values are 'n', 'no', 'f', 'false', 'off', and '0'. Raises ValueError if 'val' is anything else. yyesttrueon1rnnoffalseoff0rzinvalid truth value %rN)rrrrrr)rrrrrr)r+rK)valrFrFrG strtobool0s rrcCsTddl}tjrtd|dkr*do(|dk}|s8yddlm} | d\} } Wn.tk rzddlm} d| d} } YnXtj d| |s| dk rt j | d } n t | d } | j d | j d jtt|d | j d |||||f| jtjg}|j|j|j| t||dtt j| fd| |dnddlm}x|D]}|dddkrhqL|dkr|dkrdn|}tjj||d}n tjj|}|}|r|dt||krtd||f|t|d}|rt j j||}t j j!|}|rL|st"||r.DistutilsRefactoringToolc_stj|f|dS)N)rerror)selfr~r}kwrFrFrG log_errorsz4run_2to3..DistutilsRefactoringTool.log_errorcWstj|f|dS)N)rr{)rr~r}rFrFrG log_messagesz6run_2to3..DistutilsRefactoringTool.log_messagecWstj|f|dS)N)rr)rr~r}rFrFrG log_debugsz4run_2to3..DistutilsRefactoringTool.log_debugN)rz __module__ __qualname__rrrrFrFrFrGDistutilsRefactoringToolsrz lib2to3.fixes)optionsT)r)Zlib2to3.refactorrrZrefactor)files fixer_namesrexplicitrrrrrFrFrGrun_2to3s  rcCsddlm}ddlm}ddlm}|} tj} tj|z | j Wdtj| X| j | j dd<|rx(|j D]} | j } | sqt| j| qtWg} xV| j D]L} tjj|| }|tjj||tjj|| |dd}|dr| j|qWtdd | D|||d | S) zRecursively copy a directory, only copying new and changed files, running run_2to3 over all newly copied Python modules afterward. If you give a template string, it's parsed like a MANIFEST.in. r)mkpath) copy_file)FileListNr)updatecSsg|]}|jjdr|qS)z.py)r+endswith).0fnrFrFrG sz$copydir_run_2to3..)rrr)Zdistutils.dir_utilrZdistutils.file_utilrZdistutils.filelistrr$getcwdchdirfindallZallfilesr splitlinesrqZprocess_template_linerOrPdirnamersr)srcdesttemplaterrrrrrZfilelistrNlineZcopiedfilenameZoutnameresrFrFrGcopydir_run_2to3s4        rc@s$eZdZdZdZdZdZddZdS) Mixin2to3zMixin class for commands that run 2to3. To configure 2to3, setup scripts may either change the class variables, or inherit from individual commands to override how 2to3 is invoked.NcCst||j|j|jS)N)rrrr)rrrFrFrGr,szMixin2to3.run_2to3)rzrr__doc__rrrrrFrFrFrGrs r)rf)Nrr)rrNNrrN)NNN)NNNN)#rr$r1importlib.utilrrir&Zdistutils.errorsrZdistutils.dep_utilrZdistutils.spawnrrErrrHrSrWrYr]rerhrkrlrmrnrxrrrrrrrrFrFrFrGs@     ]  =    PK!f  *__pycache__/file_util.cpython-36.opt-1.pycnu[3 \@sZdZddlZddlmZddlmZddddZdd d ZdddZdddZ ddZ dS)zFdistutils.file_util Utility functions for operating on single files. N)DistutilsFileError)logZcopyingz hard linkingzsymbolically linking)NhardsymicNCsd}d}zvyt|d}Wn4tk rN}ztd||jfWYdd}~XnXtjj|rytj|Wn4tk r}ztd||jfWYdd}~XnXyt|d}Wn4tk r}ztd||jfWYdd}~XnXxy|j|}Wn6tk r*}ztd||jfWYdd}~XnX|s4Py|j |Wqtk rx}ztd||jfWYdd}~XqXqWWd|r|j |r|j XdS) a5Copy the file 'src' to 'dst'; both must be filenames. Any error opening either file, reading from 'src', or writing to 'dst', raises DistutilsFileError. Data is read/written in chunks of 'buffer_size' bytes (default 16k). No attempt is made to handle anything apart from regular files. Nrbzcould not open '%s': %szcould not delete '%s': %swbzcould not create '%s': %szcould not read from '%s': %szcould not write to '%s': %s) openOSErrorrstrerrorospathexistsunlinkreadwriteclose)srcdst buffer_sizeZfsrcZfdsteZbufr+/usr/lib64/python3.6/distutils/file_util.py_copy_file_contentssF $ """*rcCsddlm}ddlm} m} m} m} tjj |s %srr)Zdistutils.dep_utilrstatrrrrr r isfilerisdirjoinbasenamedirnamerdebug _copy_actionKeyError ValueErrorinforsamefilelinkr symlinkrutimechmod)rrZ preserve_modeZpreserve_timesupdater,verbosedry_runrrrrrdiractionstrrr copy_fileCsT!               r6c(Csddlm}m}m}m}m}ddl} |dkr:tjd|||rB|S||sVt d|||rrt j j |||}n||rt d||f|||st d||fd } yt j ||WnPtk r } z2| j\} } | | jkrd } nt d ||| fWYdd} ~ XnX| rt|||d yt j|Wnhtk r} zJ| j\} } yt j|Wntk rpYnXt d |||| fWYdd} ~ XnX|S)a%Move a file 'src' to 'dst'. If 'dst' is a directory, the file will be moved into it with the same name; otherwise, 'src' is just renamed to 'dst'. Return the new full name of the file. Handles cross-device moves on Unix using 'copy_file()'. What about other systems??? r)rr!r"r$r%Nrzmoving %s -> %sz#can't move '%s': not a regular filez0can't move '%s': destination '%s' already existsz2can't move '%s': destination '%s' not a valid pathFTzcouldn't move '%s' to '%s': %s)r1zAcouldn't move '%s' to '%s' by copy/delete: delete '%s' failed: %s)Zos.pathrr!r"r$r%errnorr*rr r r#renamer argsZEXDEVr6r)rrr1r2rr!r"r$r%r7Zcopy_itrZnummsgrrr move_filesR       " "r;c Cs:t|d}z x|D]}|j|dqWWd|jXdS)z{Create a file with the specified name and write 'contents' (a sequence of strings without line terminators) to it. w N)r rr)filenamecontentsflinerrr write_files   rB@)rC)rrrNrr)rr) __doc__r Zdistutils.errorsrZ distutilsrr'rr6r;rBrrrrs   3 c =PK!܎..$__pycache__/sysconfig.cpython-36.pycnu[3 KiN @sdZddlZddlZddlZddlZddlmZejjej Z ejjej Z ejjej ZejjejZdejkrejjejdZnejjejjejZejdkrejjd,rejjejjeZd d Zeed dZeoejdkoejjd-rejjejjeZd d ZeZdZyes.ejZWne k rFYnXddZ!d.ddZ"d/ddZ#ddZ$ddZ%ddZ&d0ddZ'ej(dZ)ej(dZ*ej(dZ+d1d d!Z,d"d#Z-da.d$d%Z/d&d'Z0d(d)Z1d*d+Z2dS)2aProvide access to Python's configuration information. The specific configuration variables available depend heavily on the platform and configuration. The values may be retrieved using get_config_var(name), and the list of variables is available via get_config_vars().keys(). Additional convenience functions are also available. Written by: Fred L. Drake, Jr. Email: N)DistutilsPlatformErrorZ_PYTHON_PROJECT_BASEnt\pcbuild\win32\pcbuild\amd64cCs.x(dD] }tjjtjj|d|rdSqWdS)N Setup.dist Setup.localModulesTF)rr)ospathisfilejoin)dfnr+/usr/lib64/python3.6/distutils/sysconfig.py_is_python_source_dir)s r_homecCstr ttSttS)N) _sys_homer project_baserrrr _python_build2srcCsdtjddS)zReturn a string containing the major and minor Python version, leaving off the patchlevel. Sample return values could be '1.5' or '2.2'. z%d.%dN)sys version_inforrrrget_python_versionDsrcCs|dkr|rtpt}tjdkrjtrL|r.tp,tStjjt dd}tjj |Sdt t }tjj|d|Stjdkrtjj|dSt dtjdS) aReturn the directory containing installed Python header files. If 'plat_specific' is false (the default), this is the path to the non-platform-specific header files, i.e. Python.h and so on; otherwise, this is the path to platform-specific header files (namely pyconfig.h). If 'prefix' is supplied, use it instead of sys.base_prefix or sys.base_exec_prefix -- i.e., ignore 'plat_specific'. NposixsrcdirZIncludepythonincluderzFI don't know where Python installs its C header files on platform '%s')BASE_EXEC_PREFIX BASE_PREFIXr name python_buildrrr r get_config_varnormpathr build_flagsr) plat_specificprefixZincdirZ python_dirrrrget_python_incLs     r)cCs|dkr&|r|rtpt}n |r"tp$t}tjdkrp|s8|r>d}nd}tjj||dt}|r`|Stjj|dSnrAZccZcxxoptZcflagsZccsharedZldsharedZ shlib_suffixarZar_flagsZnewccZcppr?Zcc_cmdrrrrBs\                         rBcCsDtr,tjdkr"tjjtptd}q6tp(t}n tdd}tjj|dS)z2Return full pathname of installed pyconfig.h file.rPCr)r'z pyconfig-64.h)r#r r"r r rrr))inc_dirrrrget_config_h_filenames    rLcCs\trtjjtptdStddd}djtt }t t j drL|dt j j 7}tjj||dS)zAReturn full pathname of installed Makefile from the Python build.Makefilerr)r'r.z config-{}{} _multiarchz-%s)r#r r r rrr/formatrr&hasattrrimplementationrN)Zlib_dirZ config_filerrrget_makefile_filenames  rRc Cs|dkr i}tjd}tjd}xx|j}|s0P|j|}|rz|jdd\}}y t|}Wntk rnYnX|||<q"|j|}|r"d||jd<q"W|S)zParse a config.h-style file. A dictionary containing name/value pairs is returned. If an optional dictionary is passed in as the second argument, it is used instead of a new dictionary. Nz"#define ([A-Z][A-Za-z0-9_]+) (.*) z&/[*] #undef ([A-Z][A-Za-z0-9_]+) [*]/ rrr)recompilereadlinematchgroupint ValueError)fpg define_rxundef_rxlinemnvrrrparse_config_hs(      rbz"([a-zA-Z][a-zA-Z0-9_]+)\s*=\s*(.*)z\$\(([A-Za-z][A-Za-z0-9_]*)\)z\${([A-Za-z][A-Za-z0-9_]*)}c Csddlm}||ddddd}|dkr*i}i}i}x|j}|dkrFPtj|}|r4|jdd\}} | j} | jdd } d | kr| ||<q4y t| } Wn$t k r| jdd ||<Yq4X| ||<q4Wd} x|rxt |D]} || } t j | pt j | }|rx|jd}d}||kr2t||}n||krBd}nx|tjkrZtj|}n`|| kr| jdr| dd| krd }n$d||krd}nt|d|}n d ||<}|r~| |jd}| d|j||} d |kr| || <nzy t| } Wn"t k r*| j|| <Yn X| || <|| =| jdr~| dd| kr~| dd} | |kr~| || <q|| =qWqW|jx.|jD]"\}} t| tr| j||<qW|j||S)zParse a Makefile-style file. A dictionary containing name/value pairs is returned. If an optional dictionary is passed in as the second argument, it is used instead of a new dictionary. r)TextFilersurrogateescape)Zstrip_commentsZ skip_blanksZ join_lineserrorsNrz$$r$r5r;r=TFPY_)r5r;r=)Zdistutils.text_filercrU _variable_rxrVrWstripreplacerXrYlist _findvar1_rxsearch _findvar2_rxstrr rErFendstartcloseitems isinstanceupdate)rr[rcrZdonenotdoner^r_r`ratmpvrenamed_variablesr"valuefounditemafterkrrrparse_makefiles                       rcCsZxTtj|ptj|}|rP|j\}}|d||j|jd||d}qPqW|S)aExpand Makefile-style variables -- "${foo}" or "$(foo)" -- in 'string' according to 'vars' (a dictionary mapping variable names to values). Variables not present in 'vars' are silently expanded to the empty string. The variable values in 'vars' should not contain further variable expansions; if 'vars' is the output of 'parse_makefile()', you're fine. Returns a variable-expanded version of 's'. rrN)rmrnrospangetrW)svarsr_Zbegrqrrrexpand_makefile_varss *rc CsVtjjddjtjtjttjddd}t |t t dgd}|j }ia t j|dS) z7Initialize the module as appropriate for POSIX systems._PYTHON_SYSCONFIGDATA_NAMEz+_sysconfigdata_{abi}_{platform}_{multiarch}rNr)abir@ multiarchbuild_time_varsrN)r rErrOrabiflagsr@getattrrQ __import__globalslocalsrrCrv)r"_temprrrr _init_posixsrcCs~i}tddd|d<tddd|d<tdd|d<tjd|d<d |d <tjd d |d <tjjtjj t j |d<|a dS)z+Initialize the module as appropriate for NTrr)r'r.LIBDEST BINLIBDEST)r' INCLUDEPY EXT_SUFFIXz.exeEXE.rVERSIONBINDIRN) r/r)_impextension_suffixesrrkr r dirnameabspathr executablerC)r[rrr_init_ntsrcGs^tdkr(tjdtj}|r(|niattd<ttd<tjd}|dk rV|td<tjdt}tjdkrtrtj j t }tj j ||}ntj j t }tj j tj j|td<totjdkr t}tj jtd o|tjkr tj j |td}tj j|td<tjd kr(d dl}|jt|rVg}x|D]}|jtj|q8W|StSdS) aWith no arguments, return a dictionary of all configuration variables relevant for the current platform. Generally this includes everything needed to build extensions and install both pure modules and extensions. On Unix, this means every variable defined in Python's installed Makefile; on Windows it's a much smaller set. With arguments, return a list of values that result from looking up each argument in the configuration variable dictionary. NZ_init_r( exec_prefixrSOrrr0r)rCrrr r"r-r,rr#r rrRr rr%isabsgetcwdrr@rAcustomize_config_varsappend)argsfuncrrbaserAvalsr"rrrrDs@       rDcCs*|dkrddl}|jdtdtj|S)zReturn the value of a single variable using the dictionary returned by 'get_config_vars()'. Equivalent to get_config_vars().get(name) rrNz SO is deprecated, use EXT_SUFFIXr)warningswarnDeprecationWarningrDr)r"rrrrr$sr$)rr)rr)rN)rrN)N)N)3__doc__rr rSrrerr r%r(r-rr, base_prefixr!base_exec_prefixr rErrrrr"lowerendswithrrrrr#r&rAttributeErrorrr)r/rBrLrRrbrTrirmrorrrCrrrDr$rrrr sZ      # +I      jJPK!S۬#__pycache__/dir_util.cpython-36.pycnu[3 \b@spdZddlZddlZddlmZmZddlmZiadddZ dd d Z dd d Z d dZ dddZ ddZdS)zWdistutils.dir_util Utility functions for manipulating directories and directory trees.N)DistutilsFileErrorDistutilsInternalError)logc Cspt|tstd|ftjj|}g}tjj|s<|dkr@|Stjtjj |rV|Stjj |\}}|g}x6|r|rtjj| rtjj |\}}|j d|qnWx|D]}tjj ||}tjj |} tj| rq|dkrt jd||s`ytj||WnVtk rT} z8| jtjko*tjj|sDtd|| jdfWYdd} ~ XnX|j|dt| <qW|S) aCreate a directory and any missing ancestor directories. If the directory already exists (or if 'name' is the empty string, which means the current directory, which of course exists), then do nothing. Raise DistutilsFileError if unable to create some directory along the way (eg. some sub-path exists, but is a file rather than a directory). If 'verbose' is true, print a one-line summary of each mkdir to stdout. Return the list of directories actually created. z(mkpath: 'name' must be a string (got %r)rrz creating %szcould not create '%s': %sN) isinstancestrrospathnormpathisdir _path_createdgetabspathsplitinsertjoinrinfomkdirOSErrorerrnoZEEXISTrargsappend) namemodeverbosedry_runZ created_dirsheadtailZtailsdZabs_headexcr#*/usr/lib64/python3.6/distutils/dir_util.pymkpaths>       &  r%cCsVt}x(|D] }|jtjj|tjj|q Wx t|D]}t||||dq:WdS)aCreate all the empty directories under 'base_dir' needed to put 'files' there. 'base_dir' is just the name of a directory which doesn't necessarily exist yet; 'files' is a list of filenames to be interpreted relative to 'base_dir'. 'base_dir' + the directory portion of every file in 'files' will be created if it doesn't already exist. 'mode', 'verbose' and 'dry_run' flags are as for 'mkpath()'. )rrN)setaddr r rdirnamesortedr%)Zbase_dirfilesrrrZneed_dirfiledirr#r#r$ create_treePs   r-cCsfddlm}| r,tjj| r,td|ytj|} Wn>tk rx} z"|rVg} ntd|| jfWYdd} ~ XnX|st ||dg} x| D]} tjj || } tjj || }| j drq|otjj | rtj | }|dkrtjd |||stj||| j|qtjj| r>| jt| |||||||d q|| ||||||d | j|qW| S) aCopy an entire directory tree 'src' to a new location 'dst'. Both 'src' and 'dst' must be directory names. If 'src' is not a directory, raise DistutilsFileError. If 'dst' does not exist, it is created with 'mkpath()'. The end result of the copy is that every file in 'src' is copied to 'dst', and directories under 'src' are recursively copied to 'dst'. Return the list of files that were copied or might have been copied, using their output name. The return value is unaffected by 'update' or 'dry_run': it is simply the list of all files under 'src', with the names changed to be under 'dst'. 'preserve_mode' and 'preserve_times' are the same as for 'copy_file'; note that they only apply to regular files, not to directories. If 'preserve_symlinks' is true, symlinks will be copied as symlinks (on platforms that support them!); otherwise (the default), the destination of the symlink will be copied. 'update' and 'verbose' are the same as for 'copy_file'. r) copy_filez&cannot copy tree '%s': not a directoryzerror listing files in '%s': %sN)rz.nfsrzlinking %s -> %s)rr)Zdistutils.file_utilr.r r rrlistdirrstrerrorr%r startswithislinkreadlinkrrsymlinkrextend copy_tree)srcdstZ preserve_modeZpreserve_timesZpreserve_symlinksupdaterrr.nameseZoutputsnZsrc_nameZdst_nameZ link_destr#r#r$r6csH  "      r6cCslxVtj|D]H}tjj||}tjj|rDtjj| rDt||q |jtj|fq W|jtj |fdS)zHelper for remove_tree().N) r r/r rrr2_build_cmdtuplerremovermdir)r cmdtuplesfZreal_fr#r#r$r=s  r=cCs|dkrtjd||rdSg}t||xp|D]h}y2|d|dtjj|d}|tkrdt|=Wq0tk r}ztjd||WYdd}~Xq0Xq0WdS)zRecursively remove an entire directory tree. Any errors are ignored (apart from being reported to stdout if 'verbose' is true). rz'removing '%s' (and everything under it)Nrzerror removing %s: %s) rrr=r r rrrwarn)Z directoryrrr@cmdrr"r#r#r$ remove_trees    rDcCs6tjj|\}}|ddtjkr2||dd}|S)zTake the full path 'path', and make it a relative path. This is useful to make 'path' the second argument to os.path.join(). rrN)r r splitdrivesep)r Zdriver#r#r$ensure_relativesrG)rrr)rrr)rrrrrr)rr)__doc__r rZdistutils.errorsrrZ distutilsrrr%r-r6r=rDrGr#r#r#r$s  ?  D PK! ) )__pycache__/dep_util.cpython-36.opt-1.pycnu[3 \ @s6dZddlZddlmZddZddZd d d ZdS) zdistutils.dep_util Utility functions for simple, timestamp-based dependency of files and groups of files; also, function based entirely on such timestamp dependency analysis.N)DistutilsFileErrorcCs`tjj|s tdtjj|tjj|s0dSddlm}tj||}tj||}||kS)aReturn true if 'source' exists and is more recently modified than 'target', or if 'source' exists and 'target' doesn't. Return false if both exist and 'target' is the same age or younger than 'source'. Raise DistutilsFileError if 'source' does not exist. zfile '%s' does not existr)ST_MTIME)ospathexistsrabspathstatr)sourcetargetrZmtime1Zmtime2r */usr/lib64/python3.6/distutils/dep_util.pynewer s   rcCslt|t|krtdg}g}xBtt|D]2}t||||r.|j|||j||q.W||fS)zWalk two filename lists in parallel, testing if each source is newer than its corresponding target. Return a pair of lists (sources, targets) where source is newer than target, according to the semantics of 'newer()'. z+'sources' and 'targets' must be same length)len ValueErrorrangerappend)sourcesZtargetsZ n_sourcesZ n_targetsir r r newer_pairwise srerrorcCstjj|sdSddlm}tj||}xX|D]L}tjj|sb|dkrJn|dkrVq0n |dkrbdStj||}||kr0dSq0WdSdS)aReturn true if 'target' is out-of-date with respect to any file listed in 'sources'. In other words, if 'target' exists and is newer than every file in 'sources', return false; otherwise return true. 'missing' controls what we do when a source file is missing; the default ("error") is to blow up with an OSError from inside 'stat()'; if it is "ignore", we silently drop any missing source files; if it is "newer", any missing source files make us assume that 'target' is out-of-date (this is handy in "dry-run" mode: it'll make you pretend to carry out commands that wouldn't work because inputs are missing, but that doesn't matter because you're not actually going to run the commands). rr)rrignorerN)rrrr r)rr ZmissingrZ target_mtimer source_mtimer r r newer_group6s     r)r)__doc__rZdistutils.errorsrrrrr r r r s  PK!4Scr@normcaseZsrc_extensionsr rArCrB obj_extension)r/Zsource_filenamesZ strip_dirrEZ obj_namesZsrc_namebaser6rrrobject_filenamess      z CygwinCCompiler.object_filenames)rrr) NNNNNrNNNN)rrH)__name__ __module__ __qualname____doc__r+rLZstatic_lib_extensionZshared_lib_extensionZstatic_lib_formatZshared_lib_formatZ exe_extensionr$r9rDrNrrrrrYs ; Krc@seZdZdZdZdddZdS)Mingw32CCompilerz@ Handles the Mingw32 port of the GNU C compiler to Windows. Zmingw32rc Csxtj|||||jdkr d}nd}|jdkr4d}nd}trFtd|jdd d d d |j||fd g|_t |_dS)Nz2.13z-sharedz -mdll -staticz2.91.57z--entry _DllMain@12rHz1Cygwin gcc cannot be used with --compiler=mingw32z gcc -O -Wallzgcc -mdll -O -Wallz g++ -O -Wallrz%s %s %s)rr r!r"r#) rr$r*r) is_cygwingccr r-r,r.r)r/r0r1r2r3Z entry_pointrrrr$s&   zMingw32CCompiler.__init__N)rrr)rOrPrQrRr+r$rrrrrSsrSokznot okZ uncertaincCsddlm}dtjkrtdfS|j}y@t|}z(d|jkrJtd|fStd|fSWd|j XWn.t k r}zt d ||j ffSd}~XnXdS) awCheck if the current Python installation appears amenable to building extensions with GCC. Returns a tuple (status, details), where 'status' is one of the following constants: - CONFIG_H_OK: all is well, go ahead and compile - CONFIG_H_NOTOK: doesn't look good - CONFIG_H_UNCERTAIN: not sure -- unable to read pyconfig.h 'details' is a human-readable string explaining the situation. Note there are two ways to conclude "OK": either 'sys.version' contains the string "GCC" (implying that this Python was built with GCC), or the installed "pyconfig.h" contains the string "__GNUC__". r) sysconfigZGCCzsys.version mentions 'GCC'Z__GNUC__z'%s' mentions '__GNUC__'z '%s' does not mention '__GNUC__'Nzcouldn't read '%s': %s) distutilsrVrrr&get_config_h_filenameopenreadCONFIG_H_NOTOKcloseOSErrorCONFIG_H_UNCERTAINstrerror)rVfnconfig_hexcrrrr%Hs    r%s(\d+\.\d+(\.\d+)*)c Csl|jd}t|dkrdSt|dtdj}z |j}Wd|jXtj|}|dkrZdSt |j dj S)zFind the version of an executable by running `cmd` in the shell. If the command is not found, or the output does not match `RE_VERSION`, returns None. rNT)shellstdoutr) splitrrrrdrZr\ RE_VERSIONsearchrgroupdecode)cmd executableout out_stringresultrrr_find_exe_versionus     rocCsdddg}tdd|DS)zg Try to find out the versions of gcc, ld and dllwrap. If not possible it returns None for it. zgcc -dumpversionzld -vzdllwrap --versioncSsg|] }t|qSr)ro).0rjrrr sz get_versions..)tuple)Zcommandsrrrr(s r(cCstddg}|jjdS)z>Try to determine if the gcc that would be used is from cygwin.rz -dumpmachinescygwin)rstripendswith)rmrrrrTs rT)'rRr=rr; subprocessrrrreZdistutils.ccompilerrrZdistutils.unixccompilerrZdistutils.file_utilrZdistutils.errorsr r r r rWr Zdistutils.versionrZdistutils.spawnrrrrSr&r[r^r%compilerfror(rTrrrrs0)     ;1+ PK!Vf%__pycache__/core.cpython-36.opt-1.pycnu[3 \"@sdZddlZddlZddlmZddlTddlmZddlm Z ddl m Z ddl m Z d Zd d Zdadad4Zd5Zd/d0Zd6d2d3ZdS)7a#distutils.core The only module that needs to be imported to use the Distutils; provides the 'setup' function (which is to be called from the setup script). Also indirectly provides the Distribution and Command classes, although they are really defined in distutils.dist and distutils.cmd. N)DEBUG)*) Distribution)Command) PyPIRCCommand) Extensionzusage: %(script)s [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...] or: %(script)s --help [cmd1 cmd2 ...] or: %(script)s --help-commands or: %(script)s cmd --help cCstjj|}ttS)N)ospathbasenameUSAGEvars) script_nameZscriptr&/usr/lib64/python3.6/distutils/core.py gen_usage s r distclassr script_argsoptionsnameversionauthor author_email maintainermaintainer_emailurllicense descriptionlong_descriptionkeywords platforms classifiers download_urlrequiresprovides obsoletessources include_dirs define_macros undef_macros library_dirs librariesruntime_library_dirs extra_objectsextra_compile_argsextra_link_args swig_optsexport_symbolsdependslanguagec,Ks|jd}|r|d=nt}d|kr8tjjtjd|d<d|krRtjdd|d<y||a}WnLtk r}z0d|krt d|nt d |d|fWYdd}~XnXt d kr|S|j t rt d |jt d kr|Sy |j}Wn:tk r*}zt t|jd |WYdd}~XnXt rBt d|jt dkrP|S|ry |jWntk rt dYntk r}z0t rtjjd|fnt d|fWYdd}~XnBttfk r }z t rnt dt|WYdd}~XnX|S)aThe gateway to the Distutils: do everything your setup script needs to do, in a highly flexible and user-driven way. Briefly: create a Distribution instance; find and parse config files; parse the command line; run each Distutils command found there, customized by the options supplied to 'setup()' (as keyword arguments), in config files, and on the command line. The Distribution instance might be an instance of a class supplied via the 'distclass' keyword argument to 'setup'; if no such class is supplied, then the Distribution class (in dist.py) is instantiated. All other arguments to 'setup' (except for 'cmdclass') are used to set attributes of the Distribution instance. The 'cmdclass' argument, if supplied, is a dictionary mapping command names to command classes. Each command encountered on the command line will be turned into a command class, which is in turn instantiated; any class found in 'cmdclass' is used in place of the default, which is (for command 'foo_bar') class 'foo_bar' in module 'distutils.command.foo_bar'. The command class must provide a 'user_options' attribute which is a list of option specifiers for 'distutils.fancy_getopt'. Any command-line options between the current and the next command are used to set attributes of the current command object. When the entire command-line has been successfully parsed, calls the 'run()' method on each command object in turn. This method will be driven entirely by the Distribution object (which each command object has a reference to, thanks to its constructor), and the command-specific options that became attributes of each command object. rr rrNrzerror in setup command: %szerror in %s setup command: %sinitz%options (after parsing config files):configz error: %sz%options (after parsing command line): commandlineZ interruptedz error: %s z error: %szerror: )getrrr r sysargv_setup_distributionZDistutilsSetupError SystemExit_setup_stop_afterZparse_config_filesrprintZdump_option_dictsZparse_command_lineZDistutilsArgErrorrr Z run_commandsKeyboardInterruptOSErrorstderrwriteZDistutilsErrorZCCompilerErrorstr)ZattrsklassZdistmsgokexcrrrsetup9s`% " (   "rGruncCs|d krtd|f|atjj}d|i}yZzH|tjd<|dk rP|tjd d<t|d }t|j|WdQRXWd|t_daXWntk rYnXt dkrt d |t S) a.Run a setup script in a somewhat controlled environment, and return the Distribution instance that drives things. This is useful if you need to find out the distribution meta-data (passed as keyword args from 'script' to 'setup()', or the contents of the config files or command-line. 'script_name' is a file that will be read and run with 'exec()'; 'sys.argv[0]' will be replaced with 'script' for the duration of the call. 'script_args' is a list of strings; if supplied, 'sys.argv[1:]' will be replaced by 'script_args' for the duration of the call. 'stop_after' tells 'setup()' when to stop processing; possible values: init stop after the Distribution instance has been created and populated with the keyword arguments to 'setup()' config stop after config files have been parsed (and their data stored in the Distribution instance) commandline stop after the command-line ('sys.argv[1:]' or 'script_args') have been parsed (and the data stored in the Distribution) run [default] stop after all commands have been run (the same as if 'setup()' had been called in the usual way Returns the Distribution instance, which provides all information used to drive the Distutils. r4r5r6rHz"invalid value for 'stop_after': %r__file__rNr3rbzZ'distutils.core.setup()' was never called -- perhaps '%s' is not a Distutils setup script?)r4r5r6rH) ValueErrorr<r8r9copyopenexecreadr;r: RuntimeError)r rZ stop_afterZ save_argvgfrrr run_setups(    rS)rr rrrrrrrrrrrrrrr r!r"r#r$)rr%r&r'r(r)r*r+r,r-r.r/r0r1r2)NrH)__doc__rr8Zdistutils.debugrZdistutils.errorsZdistutils.distrZ distutils.cmdrZdistutils.configrZdistutils.extensionrr rr<r:Zsetup_keywordsZextension_keywordsrGrSrrrrs2     qPK!B::$__pycache__/cmd.cpython-36.opt-1.pycnu[3 \J@srdZddlZddlZddlZddlmZddlmZmZm Z m Z m Z ddlm Z GdddZ Gdd d e ZdS) ztdistutils.cmd Provides the Command class, the base class for the command classes in the distutils.command package. N)DistutilsOptionError)utildir_util file_util archive_utildep_util)logc@s"eZdZdZgZddZddZddZdd Zd d Z dCddZ ddZ dDddZ ddZ dEddZdFddZddZdGddZdd Zd!d"Zd#d$Zd%d&ZdHd'd(ZdId*d+Zd,d-Zd.d/Zd0d1ZdJd2d3ZdKd5d6ZdLd7d8ZdMd9d:ZdNd;d<ZdOd=d>Z dPd?d@Z!dQdAdBZ"d S)RCommanda}Abstract base class for defining command classes, the "worker bees" of the Distutils. A useful analogy for command classes is to think of them as subroutines with local variables called "options". The options are "declared" in 'initialize_options()' and "defined" (given their final values, aka "finalized") in 'finalize_options()', both of which must be defined by every command class. The distinction between the two is necessary because option values might come from the outside world (command line, config file, ...), and any options dependent on other options must be computed *after* these outside influences have been processed -- hence 'finalize_options()'. The "body" of the subroutine, where it does all its work based on the values of its options, is the 'run()' method, which must also be implemented by every command class. cCsbddlm}t||std|jtkr0td||_|jd|_ |j |_ d|_ d|_ d|_ dS)zCreate and initialize a new Command object. Most importantly, invokes the 'initialize_options()' method, which is the real initializer and depends on the actual command being instantiated. r) Distributionz$dist must be a Distribution instancezCommand is an abstract classN)Zdistutils.distr isinstance TypeError __class__r RuntimeError distributioninitialize_optionsZ_dry_runverboseforcehelp finalized)selfZdistr r%/usr/lib64/python3.6/distutils/cmd.py__init__/s    zCommand.__init__cCs<|dkr0t|d|}|dkr*t|j|S|Snt|dS)Ndry_run_)getattrrAttributeError)rattrZmyvalrrr __getattr___s  zCommand.__getattr__cCs|js|jd|_dS)N)rfinalize_options)rrrrensure_finalizediszCommand.ensure_finalizedcCstd|jdS)aSet default values for all the options that this command supports. Note that these defaults may be overridden by other commands, by the setup script, by config files, or by the command-line. Thus, this is not the place to code dependencies between options; generally, 'initialize_options()' implementations are just a bunch of "self.foo = None" assignments. This method must be implemented by all command classes. z,abstract method -- subclass %s must overrideN)rr )rrrrr{s zCommand.initialize_optionscCstd|jdS)aSet final values for all the options that this command supports. This is always called as late as possible, ie. after any option assignments from the command-line or from other commands have been done. Thus, this is the place to code option dependencies: if 'foo' depends on 'bar', then it is safe to set 'foo' from 'bar' as long as 'foo' still has the same value it was assigned in 'initialize_options()'. This method must be implemented by all command classes. z,abstract method -- subclass %s must overrideN)rr )rrrrr s zCommand.finalize_optionsNcCsddlm}|dkr d|j}|j||tjd|d}x\|jD]R\}}}|j|}|d dkrp|dd }t||}|j|d||ftjdqDWdS) Nr) longopt_xlatezcommand options for '%s':)levelz r=z%s = %sr&) Zdistutils.fancy_getoptr#get_command_nameannouncerINFO user_options translater)rheaderindentr#optionrvaluerrr dump_optionss      zCommand.dump_optionscCstd|jdS)aA command's raison d'etre: carry out the action it exists to perform, controlled by the options initialized in 'initialize_options()', customized by other commands, the setup script, the command-line, and config files, and finalized in 'finalize_options()'. All terminal output and filesystem interaction should be done by 'run()'. This method must be implemented by all command classes. z,abstract method -- subclass %s must overrideN)rr )rrrrruns z Command.runrcCstj||dS)zmIf the current verbosity level is of greater than or equal to 'level' print 'msg' to stdout. N)r)rmsgr$rrrr(szCommand.announcecCs&ddlm}|r"t|tjjdS)z~Print 'msg' to stdout if the global DEBUG (taken from the DISTUTILS_DEBUG environment variable) flag is true. r)DEBUGN)Zdistutils.debugr3printsysstdoutflush)rr2r3rrr debug_prints zCommand.debug_printcCsBt||}|dkr"t||||St|ts>td|||f|S)Nz'%s' must be a %s (got `%s`))rsetattrr strr)rr.whatdefaultvalrrr_ensure_stringlikes   zCommand._ensure_stringlikecCs|j|d|dS)zWEnsure that 'option' is a string; if not defined, set it to 'default'. stringN)r>)rr.r<rrr ensure_stringszCommand.ensure_stringcCspt||}|dkrdSt|tr6t||tjd|n6t|trTtdd|D}nd}|sltd||fdS)zEnsure that 'option' is a list of strings. If 'option' is currently a string, we split it either on /,\s*/ or /\s+/, so "foo bar baz", "foo,bar,baz", and "foo, bar baz" all become ["foo", "bar", "baz"]. Nz,\s*|\s+css|]}t|tVqdS)N)r r:).0vrrr sz-Command.ensure_string_list..Fz''%s' must be a list of strings (got %r)) rr r:r9resplitlistallr)rr.r=okrrrensure_string_lists   zCommand.ensure_string_listcCs8|j|||}|dk r4|| r4td|||fdS)Nzerror in '%s' option: )r>r)rr.Ztesterr;Z error_fmtr<r=rrr_ensure_tested_stringszCommand._ensure_tested_stringcCs|j|tjjdddS)z5Ensure that 'option' is the name of an existing file.filenamez$'%s' does not exist or is not a fileN)rJospathisfile)rr.rrrensure_filenames zCommand.ensure_filenamecCs|j|tjjdddS)Nzdirectory namez)'%s' does not exist or is not a directory)rJrLrMisdir)rr.rrrensure_dirnames zCommand.ensure_dirnamecCst|dr|jS|jjSdS)N command_name)hasattrrRr __name__)rrrrr' s zCommand.get_command_namecGsJ|jj|}|jx0|D](\}}t||dkrt||t||qWdS)a>Set the values of any "undefined" options from corresponding option values in some other command object. "Undefined" here means "is None", which is the convention used to indicate that an option has not been changed between 'initialize_options()' and 'finalize_options()'. Usually called from 'finalize_options()' for options that depend on some other command rather than another option of the same command. 'src_cmd' is the other command from which option values will be taken (a command object will be created for it if necessary); the remaining arguments are '(src_option,dst_option)' tuples which mean "take the value of 'src_option' in the 'src_cmd' command object, and copy it to 'dst_option' in the current command object". N)rget_command_objr!rr9)rZsrc_cmdZ option_pairsZ src_cmd_objZ src_optionZ dst_optionrrrset_undefined_optionss  zCommand.set_undefined_optionscCs|jj||}|j|S)zWrapper around Distribution's 'get_command_obj()' method: find (create if necessary and 'create' is true) the command object for 'command', call its 'ensure_finalized()' method, and return the finalized command object. )rrUr!)rcommandZcreateZcmd_objrrrget_finalized_command$szCommand.get_finalized_commandrcCs|jj||S)N)rreinitialize_command)rrWZreinit_subcommandsrrrrY0szCommand.reinitialize_commandcCs|jj|dS)zRun some other command: uses the 'run_command()' method of Distribution, which creates and finalizes the command object if necessary and then invokes its 'run()' method. N)r run_command)rrWrrrrZ4szCommand.run_commandcCs6g}x,|jD]"\}}|dks$||r |j|q W|S)akDetermine the sub-commands that are relevant in the current distribution (ie., that need to be run). This is based on the 'sub_commands' class attribute: each tuple in that list may include a method that we call to determine if the subcommand needs to be run for the current distribution. Return a list of command names. N) sub_commandsappend)rZcommandsZcmd_namemethodrrrget_sub_commands;s zCommand.get_sub_commandscCstjd|j|dS)Nzwarning: %s: %s )rwarnr')rr2rrrr_Ksz Command.warncCstj||||jddS)N)r)rexecuter)rfuncargsr2r$rrrr`NszCommand.executecCstj|||jddS)N)r)rmkpathr)rnamemoderrrrdQszCommand.mkpathc Cstj|||||j ||jdS)zCopy a file respecting verbose, dry-run and force flags. (The former two default to whatever is in the Distribution object, and the latter defaults to false for commands that don't define it.))r)r copy_filerr)rinfileoutfile preserve_modepreserve_timeslinkr$rrrrgTs  zCommand.copy_filec Cstj||||||j |jdS)z\Copy an entire directory tree respecting verbose, dry-run, and force flags. )r)r copy_treerr)rrhrirjrkZpreserve_symlinksr$rrrrm]s zCommand.copy_treecCstj|||jdS)z$Move a file respecting dry-run flag.)r)r move_filer)rsrcdstr$rrrrnfszCommand.move_filecCs ddlm}||||jddS)z2Spawn an external command respecting dry-run flag.r)spawn)rN)Zdistutils.spawnrqr)rcmdZ search_pathr$rqrrrrqjs z Command.spawnc Cstj|||||j||dS)N)rownergroup)r make_archiver)rZ base_nameformatZroot_dirZbase_dirrsrtrrrruos zCommand.make_archivecCs|dkrd|}t|tr"|f}nt|ttfs8td|dkrRd|dj|f}|jsdtj||rv|j ||||n t j |dS)aSpecial case of 'execute()' for operations that process one or more input files and generate one output file. Works just like 'execute()', except the operation is skipped and a different message printed if 'outfile' already exists and is newer than all files listed in 'infiles'. If the command defined 'self.force', and it is true, then the command is unconditionally run -- does no timestamp checks. Nzskipping %s (inputs unchanged)z9'infiles' must be a string, or a list or tuple of stringszgenerating %s from %sz, ) r r:rFtupler joinrrZ newer_groupr`rdebug)rZinfilesrirarbZexec_msgZskip_msgr$rrr make_fileus  zCommand.make_file)Nr")r)N)N)N)r)r)Nr)rc)rrNr)rrrr)r)rr)NNNN)NNr)#rT __module__ __qualname____doc__r[rrr!rr r0r1r(r8r>r@rIrJrOrQr'rVrXrYrZr^r_r`rdrgrmrnrqrurzrrrrr sF0              r c@s6eZdZdZdgZddZddZd d Zd d Zd S) install_miscz{Common base class for installing some files in a subdirectory. Currently used by install_data and install_scripts. install-dir=d!directory to install the files tocCsd|_g|_dS)N) install_diroutfiles)rrrrrszinstall_misc.initialize_optionscCs|jd|dfdS)NZinstallr)rV)rdirnamerrr_install_dir_fromszinstall_misc._install_dir_fromcCsRg|_|sdS|j|jx2|D]*}|j||j|jjtjj|j|q WdS)N)rrdrrgr\rLrMrx)rZfilelistfrrr _copy_filess  zinstall_misc._copy_filescCs|jS)N)r)rrrr get_outputsszinstall_misc.get_outputsN)rrr) rTr{r|r}r*rrrrrrrrr~s  r~)r}r5rLrDZdistutils.errorsrZ distutilsrrrrrrr r~rrrrs  PK!Fk __pycache__/spawn.cpython-36.pycnu[3 \@sdZddlZddlZddlmZmZddlmZddlm Z dddZ d d Z dd d Z ej d krvddlmZdadadddZdddZdS)zdistutils.spawn Provides the 'spawn()' function, a front-end to various platform- specific functions for launching another program in a sub-process. Also provides the 'find_executable()' to search the path for a given executable name. N)DistutilsPlatformErrorDistutilsExecError)DEBUG)logcCsNt|}tjdkr"t|||dn(tjdkresz _spawn_posix...cSsg|] }t|qSr)r()r)r*rrrr+kszF$MACOSX_DEPLOYMENT_TARGET mismatch: now "%s" but "%s" during configure)r&zunable to execute %r: %s rz(unable to execute %r for unknown reasonszcommand %r failed: %sz"command %r terminated by signal %dz%command %r failed with exit status %dz1unknown error executing %r: termination status %dr)"rrrr execvpexecvsysplatform _cfg_targetr%get_config_varsplit_cfg_target_splitenvirongetrdictexecvpeexecveforkr!rstderrwritestrerror_exitwaitpidrr WIFSIGNALEDWTERMSIG WIFEXITED WEXITSTATUS WIFSTOPPED)rrrrr"Zexec_fnenvZ cur_targetZmy_msgpideZstatusr#Z exit_statusrrrr Xs     &     r cCs|dkrtjjdtj}|jtj}tjj|\}}tj dkrN|dkrN|d}tjj |sx*|D]"}tjj ||}tjj |r`|Sq`WdS|SdS)zTries to find 'executable' in the directories listed in 'path'. A string listing directories separated by 'os.pathsep'; defaults to os.environ['PATH']. Returns the complete filename or None if not found. NPATHZwin32z.exe) r r5r6defpathr3pathseppathsplitextr/r0isfiler)r"rKpathsbaseZextpfrrrrs    r)rrr)rrr)rrr)N)__doc__r/r Zdistutils.errorsrrZdistutils.debugrZ distutilsrrrrr0r%r1r4r rrrrrs       QPK!$D$D(__pycache__/msvc9compiler.cpython-36.pycnu[3 \w@sTdZddlZddlZddlZddlZddlmZmZmZm Z m Z ddl m Z m Z mZddlmZddlmZddlZejZejZejZejZejejejejfZ ej!dkoej"d&kZ#e#rd Z$d Z%d Z&n d Z$dZ%dZ&ddddZ'GdddZ(GdddZ)ddZ*ddZ+ddZ,ddZ-d'd d!Z.e*Z/e/d"kr@ed#e/Gd$d%d%e Z0dS)(a distutils.msvc9compiler Contains MSVCCompiler, an implementation of the abstract CCompiler class for the Microsoft Visual Studio 2008. The module is compatible with VS 2005 and VS 2008. You can find legacy support for older versions of VS in distutils.msvccompiler. N)DistutilsExecErrorDistutilsPlatformError CompileErrorLibError LinkError) CCompilergen_preprocess_optionsgen_lib_options)log) get_platformwin32 z1Software\Wow6432Node\Microsoft\VisualStudio\%0.1fz5Software\Wow6432Node\Microsoft\Microsoft SDKs\Windowsz,Software\Wow6432Node\Microsoft\.NETFrameworkz%Software\Microsoft\VisualStudio\%0.1fz)Software\Microsoft\Microsoft SDKs\Windowsz Software\Microsoft\.NETFrameworkx86amd64Zia64)r z win-amd64zwin-ia64c@sPeZdZdZddZeeZddZeeZddZeeZdd Ze eZd S) Regz2Helper class to read values from the registry cCs:x,tD]$}|j||}|r||kr||SqWt|dS)N)HKEYS read_valuesKeyError)clspathkeybasedr//usr/lib64/python3.6/distutils/msvc9compiler.py get_valueAs     z Reg.get_valuecCsnyt||}Wntk r"dSXg}d}xz$(FrameworkVersion)) r@r;NET_BASErr WINSDK_BASErrrr rrr9)r=r>prhrrrrrr<s.    zMacroExpander.load_macroscCs(x"|jjD]\}}|j||}q W|S)N)r9itemsreplace)r=r1r%vrrrsubszMacroExpander.subN)r2r3r4r?r@r<rIrrrrr8{sr8cCsd}tjj|}|d krdS|t|}tj|djdd\}}t|dd d}|dkrf|d7}t|ddd }|dkrd }|dkr||SdS) zReturn the version of MSVC that was used to build Python. For Python 2.3 and up, the version number is included in sys.version. For earlier versions, assume the compiler is MSVC 6. zMSC v.rN r g$@r)sysr>findlensplitint)prefixr$r1restZ majorVersionZ minorVersionrrrget_build_versions  rWcCs4g}x*|D]"}tjj|}||kr |j|q W|S)znReturn a list of normalized paths with duplicates removed. The current order of paths is maintained. )osrnormpathr!)pathsZ reduced_pathsrDZnprrrnormalize_and_reduce_pathss   r[cCs@|jtj}g}x|D]}||kr|j|qWtjj|}|S)z8Remove duplicate values of an environment variable. )rSrXpathsepr!join)ZvariableZoldListZnewListr$Z newVariablerrrremoveDuplicatess   r^c Cst|}ytjd|d}Wn"tk r>tjdd}YnX| sTtjj| rd|}tj j |d}|rtjj|rtjj |tj tj d}tjj |}tjj|stjd|dSntjd||stjd dStjj |d }tjj|r|Stjd dS) zFind the vcvarsall.bat file At first it tries to find the productdir of VS 2008 in the registry. If that fails it falls back to the VS90COMNTOOLS env var. z %s\Setup\VCrAz%Unable to find productdir in registryNzVS%0.f0COMNTOOLSZVCz%s is not a valid directoryz Env var %s is not set or invalidzNo productdir foundz vcvarsall.batzUnable to find vcvarsall.bat)r:rrrr debugrXrisdirenvirongetr]pardirabspathisfile)r>r;rAZtoolskeyZtoolsdir vcvarsallrrrfind_vcvarsalls2         rgc Cs8t|}td}i}|dkr$tdtjd||tjd||ftjtjd }z|j\}}|j d krvt|j d |j d }xr|j d D]d}t j |}d |krq|j}|j d d\} } | j} | |kr| jtjr| dd} t| || <qWWd|jj|jjXt|t|kr4ttt|j|S)zDLaunch vcvarsall.bat and read the settings from its environment includeliblibpathrNzUnable to find vcvarsall.batz'Calling 'vcvarsall.bat %s' (version=%s)z "%s" %s & set)stdoutstderrrr. =r)rhrirjrrN)rgsetrr r_ subprocessPopenPIPEZ communicatewaitr-rSrr)stripr(endswithrXr\r^rkcloserlrR ValueErrorstrlistkeys) r>ZarchrfZ interestingresultpopenrkrllinerr+rrrquery_vcvarsalls<         r~g @z(VC %0.1f is not supported by this modulec @seZdZdZdZiZdgZdddgZdgZdgZ eeee Z d Z d Z d Z d Zd ZZdZd.ddZd/ddZd0ddZd1ddZd2ddZd3ddZddZd d!Zd"d#Zd$d%Zd&d'Zd(d)Zd4d*d+Zd,d-ZdS)5 MSVCCompilerzwConcrete class that implements an interface to Microsoft Visual C++, as defined by the CCompiler abstract class.Zmsvcz.cz.ccz.cppz.cxxz.rcz.mcz.resz.objz.libz.dllz%s%sz.exercCs8tj||||t|_d|_g|_d|_d|_d|_dS)NzSoftware\Microsoft\VisualStudioF) rr?VERSION_MSVCCompiler__versionZ_MSVCCompiler__root_MSVCCompiler__paths plat_name_MSVCCompiler__arch initialized)r=verboseZdry_runZforcerrrr?JszMSVCCompiler.__init__NcCs0|j std|dkrt}d%}||kr8td|fdtjkrvdtjkrv|jdrvd|_d |_d |_ d |_ d |_ n|tks|dkrt |}nt td t |}t t|}|djtj|_|dtjd<|dtjd<t|jdkrtd|j|jd|_|jd |_|jd |_ |jd |_ |jd |_ y,x&tjdjdD]}|jj|qNWWntk r|YnXt|j|_dj|jtjd<d|_|jdkrdddddg|_ddddddg|_n&ddddddg|_dddddddg|_ddd g|_|jd!krddd"d#g|_dg|_d$|_dS)&Nzdon't init multiple timesr win-amd64win-ia64z--plat-name must be one of %sZDISTUTILS_USE_SDKZMSSdkzcl.exezlink.exezlib.exezrc.exezmc.exe_rrirhrzxPython was built with %s, and extensions need to be built with the same version of the compiler, but it isn't installed.;rz/nologoz/Oxz/MDz/W3z/DNDEBUGz/Odz/MDdz/Z7z/D_DEBUGz/GS-z/DLLz/INCREMENTAL:NOz/INCREMENTAL:noz/DEBUGT)r rr) rAssertionErrorr rrXrafind_execclinkerrircmcPLAT_TO_VCVARSr~rrSr\rrRZ_MSVCCompiler__productr!rr[r]Zpreprocess_optionsrcompile_optionscompile_options_debugldflags_sharedrldflags_shared_debugZldflags_static)r=rZok_platsZ plat_specZvc_envrDrrr initializeUsf                   zMSVCCompiler.initializecCs|dkr d}g}x|D]}tjj|\}}tjj|d}|tjj|d}||jkrdtd||rttjj|}||jkr|j tjj |||j q||j kr|j tjj |||j q|j tjj |||j qW|S)NrrzDon't know how to compile %s)rXrsplitext splitdriveisabssrc_extensionsrbasename_rc_extensionsr!r] res_extension_mc_extensions obj_extension)r=Zsource_filenamesZ strip_dir output_dirZ obj_namesZsrc_namerextrrrobject_filenamess(         zMSVCCompiler.object_filenamesc Cst|js|j|j||||||} | \}} }} } |p6g} | jd|rT| j|jn | j|jx | D]}y| |\}}Wntk rwhYnX|rtj j |}||j krd|}nT||j krd|}n>||j kr>|}d|}y"|j|jg| |g|gWqhtk r8}zt|WYdd}~XqhXqhn||jkrtj j|}tj j|}yl|j|jgd|d|g|gtj jtj j|\}}tj j||d}|j|jgd|g|gWqhtk r}zt|WYdd}~XqhXqhntd||fd |}y&|j|jg| | ||g|Wqhtk rj}zt|WYdd}~XqhXqhW| S) Nz/cz/Tcz/Tpz/foz-hz-rz.rcz"Don't know how to compile %s to %sz/Fo)rrZ_setup_compiler!extendrrrrXrrd _c_extensions_cpp_extensionsrspawnrrrrdirnamerrrr]r)r=Zsourcesrr9Z include_dirsr_ extra_preargsextra_postargsZdependsZ compile_infoobjectsZpp_optsZbuildZ compile_optsobjsrcrZ input_optZ output_optmsgZh_dirZrc_dirrrZrc_filerrrcompilesj              zMSVCCompiler.compilec Cs|js|j|j||\}}|j||d}|j||r|d|g}|rJy|j|jg|Wqtk r}zt|WYdd}~XqXn t j d|dS)N)rz/OUT:zskipping %s (up-to-date)) rr_fix_object_argslibrary_filename _need_linkrrirrr r_) r=rZoutput_libnamerr_ target_langoutput_filenameZlib_argsrrrrcreate_static_libs zMSVCCompiler.create_static_libcCsX|js|j|j||\}}|j|||}|\}}}|rL|jdt|t||||}|dk rptjj ||}|j ||rH|t j kr| r|j dd}q|jdd}n| r|j }n|j}g}x|pgD]}|jd|qW||||d|g}tjj|d} |dk rPtjjtjj|\}}tjj | |j|}|jd||j|| || rp| |dd<| r|j| |jtjj|y|j|jg|Wn,tk r}zt|WYdd}~XnX|j||}|dk rT|\}}d||f}y|jdd d ||gWn,tk rD}zt|WYdd}~XnXn tjd |dS) Nz5I don't know what to do with 'runtime_library_dirs': rz/EXPORT:z/OUT:rz/IMPLIB:z-outputresource:%s;%szmt.exez-nologoz -manifestzskipping %s (up-to-date))rrrZ _fix_lib_argswarnrxr rXrr]rr EXECUTABLErrr!rrrrmanifest_setup_ldargsrZmkpathrrrrmanifest_get_embed_infor r_)r= target_descrrrZ librariesZ library_dirsZruntime_library_dirsZexport_symbolsr_rr build_temprZ fixed_argsZlib_optsZldflagsZ export_optsZsymld_argsZdll_nameZdll_extZ implib_filerZmfinfoZ mffilenamemfidZout_argrrrlink8sl           zMSVCCompiler.linkcCs,tjj|tjj|d}|jd|dS)Nz .manifestz/MANIFESTFILE:)rXrr]rr!)r=rrr temp_manifestrrrrsz"MSVCCompiler.manifest_setup_ldargscCs`x,|D] }|jdr|jddd}PqWdS|tjkr>d}nd}|j|}|dkrXdS||fS)Nz/MANIFESTFILE::rr ) startswithrSrr_remove_visual_c_ref)r=rrargrrrrrrs    z$MSVCCompiler.manifest_get_embed_infocCsyt|}z |j}Wd|jXtjdtj}tj|d|}d}tj|d|}tjdtj}tj||dkrrdSt|d}z|j||S|jXWnt k rYnXdS)NzU|)rz*\s*zI|)w) openreadrvrerDOTALLrIsearchwriteOSError)r=Z manifest_fileZ manifest_fZ manifest_bufpatternrrrrs.     z!MSVCCompiler._remove_visual_c_refcCsd|S)Nz /LIBPATH:r)r=dirrrrlibrary_dir_optionszMSVCCompiler.library_dir_optioncCs tddS)NztjdjdD]*}tjjtjj||}tjj|rH|SqHW|S)aReturn path to an MSVC executable program. Tries to find the program in several places: first, one of the MSVC program search paths from the registry; next, the directories in the PATH environment variable. If any of those work, return an absolute path that is known to exist. If none of them work, just return the original program name, 'exe'. ZPathr)rrXrr]rdrerarS)r=ZexerDfnrrrrs   zMSVCCompiler.find_exe)rrr)N)rr)NNNrNNN)NrN) NNNNNrNNNN)r) r2r3r4r5Z compiler_typeZ executablesrrrrrrrZstatic_lib_extensionZshared_lib_extensionZstatic_lib_formatZshared_lib_formatZ exe_extensionr?rrrrrrrrrrrrrrrrrr,sR  X  V  R + rl)r)1r5rXrprPrZdistutils.errorsrrrrrZdistutils.ccompilerrrr Z distutilsr Zdistutils.utilr winregZ OpenKeyExrZEnumKeyr Z EnumValuer'errorrZ HKEY_USERSHKEY_CURRENT_USERHKEY_LOCAL_MACHINEZHKEY_CLASSES_ROOTrplatformmaxsizeZ NATIVE_WIN64r:rCrBrrr8rWr[r^rgr~rrrrrrsN  >. # )  PK!y1__pycache__/versionpredicate.cpython-36.opt-1.pycnu[3 \ @sdZddlZddlZddlZejdejZejdZejdZ ddZ ej ej ej ejejejdZGd d d Zdad d ZdS) zBModule for parsing and testing package version predicate strings. Nz'(?i)^\s*([a-z_]\w*(?:\.[a-z_]\w*)*)(.*)z^\s*\((.*)\)\s*$z%^\s*(<=|>=|<|>|!=|==)\s*([^\s,]+)\s*$cCs6tj|}|std||j\}}|tjj|fS)zVParse a single version comparison. Return (comparison string, StrictVersion) z"bad package restriction syntax: %r)re_splitComparisonmatch ValueErrorgroups distutilsversion StrictVersion)predrescompZverStrr 2/usr/lib64/python3.6/distutils/versionpredicate.pysplitUps    r)z>=z!=c@s(eZdZdZddZddZddZdS) VersionPredicateaParse and test package version predicates. >>> v = VersionPredicate('pyepat.abc (>1.0, <3333.3a1, !=1555.1b3)') The `name` attribute provides the full dotted name that is given:: >>> v.name 'pyepat.abc' The str() of a `VersionPredicate` provides a normalized human-readable version of the expression:: >>> print(v) pyepat.abc (> 1.0, < 3333.3a1, != 1555.1b3) The `satisfied_by()` method can be used to determine with a given version number is included in the set described by the version restrictions:: >>> v.satisfied_by('1.1') True >>> v.satisfied_by('1.4') True >>> v.satisfied_by('1.0') False >>> v.satisfied_by('4444.4') False >>> v.satisfied_by('1555.1b3') False `VersionPredicate` is flexible in accepting extra whitespace:: >>> v = VersionPredicate(' pat( == 0.1 ) ') >>> v.name 'pat' >>> v.satisfied_by('0.1') True >>> v.satisfied_by('0.2') False If any version numbers passed in do not conform to the restrictions of `StrictVersion`, a `ValueError` is raised:: >>> v = VersionPredicate('p1.p2.p3.p4(>=1.0, <=1.3a1, !=1.2zb3)') Traceback (most recent call last): ... ValueError: invalid version number '1.2zb3' It the module or package name given does not conform to what's allowed as a legal module or package name, `ValueError` is raised:: >>> v = VersionPredicate('foo-bar') Traceback (most recent call last): ... ValueError: expected parenthesized list: '-bar' >>> v = VersionPredicate('foo bar (12.21)') Traceback (most recent call last): ... ValueError: expected parenthesized list: 'bar (12.21)' cCs|j}|stdtj|}|s.td||j\|_}|j}|rtj|}|sbtd||jd}dd|jdD|_|jstd|ng|_d S) z*Parse a version predicate string. zempty package restrictionzbad package name in %rzexpected parenthesized list: %rrcSsg|] }t|qSr )r).0ZaPredr r r tsz-VersionPredicate.__init__..,zempty parenthesized list in %rN) striprre_validPackagerrnamere_parensplitr )selfZversionPredicateStrrZparenstrr r r __init__`s$      zVersionPredicate.__init__cCs8|jr.dd|jD}|jddj|dS|jSdS)NcSs g|]\}}|dt|qS) )r)rcondverr r r r}sz,VersionPredicate.__str__..z (z, ))r rjoin)rseqr r r __str__{szVersionPredicate.__str__cCs*x$|jD]\}}t|||sdSqWdS)zTrue if version is compatible with all the predicates in self. The parameter version must be acceptable to the StrictVersion constructor. It may be either a string or StrictVersion. FT)r compmap)rrrrr r r satisfied_byszVersionPredicate.satisfied_byN)__name__ __module__ __qualname____doc__rr#r%r r r r rs?rcCsdtdkrtjdtja|j}tj|}|s8td||jdpDd}|rVtj j |}|jd|fS)a9Return the name and optional version number of a provision. The version number, if given, will be returned as a `StrictVersion` instance, otherwise it will be `None`. >>> split_provision('mypkg') ('mypkg', None) >>> split_provision(' mypkg( 1.2 ) ') ('mypkg', StrictVersion ('1.2')) Nz=([a-zA-Z_]\w*(?:\.[a-zA-Z_]\w*)*)(?:\s*\(\s*([^)\s]+)\s*\))?$z"illegal provides specification: %r) _provision_rxrecompileASCIIrrrgrouprrr)valuemrr r r split_provisions    r3)r)r-Zdistutils.versionroperatorr.r/rrrrltleeqgtgener$rr,r3r r r r s   nPK!fY &&*__pycache__/extension.cpython-36.opt-1.pycnu[3 \)@s.dZddlZddlZGdddZddZdS)zmdistutils.extension Provides the Extension class, used to describe C/C++ extension modules in setup scripts.Nc@s"eZdZdZdddZddZdS) Extensiona Just a collection of attributes that describes an extension module and everything needed to build it (hopefully in a portable way, but there are hooks that let you be as unportable as you need). Instance attributes: name : string the full name of the extension, including any packages -- ie. *not* a filename or pathname, but Python dotted name sources : [string] list of source filenames, relative to the distribution root (where the setup script lives), in Unix form (slash-separated) for portability. Source files may be C, C++, SWIG (.i), platform-specific resource files, or whatever else is recognized by the "build_ext" command as source for a Python extension. include_dirs : [string] list of directories to search for C/C++ header files (in Unix form for portability) define_macros : [(name : string, value : string|None)] list of macros to define; each macro is defined using a 2-tuple, where 'value' is either the string to define it to or None to define it without a particular value (equivalent of "#define FOO" in source or -DFOO on Unix C compiler command line) undef_macros : [string] list of macros to undefine explicitly library_dirs : [string] list of directories to search for C/C++ libraries at link time libraries : [string] list of library names (not filenames or paths) to link against runtime_library_dirs : [string] list of directories to search for C/C++ libraries at run time (for shared extensions, this is when the extension is loaded) extra_objects : [string] list of extra files to link with (eg. object files not implied by 'sources', static library that must be explicitly specified, binary resource files, etc.) extra_compile_args : [string] any extra platform- and compiler-specific information to use when compiling the source files in 'sources'. For platforms and compilers where "command line" makes sense, this is typically a list of command-line arguments, but for other platforms it could be anything. extra_link_args : [string] any extra platform- and compiler-specific information to use when linking object files together to create the extension (or to create a new static Python interpreter). Similar interpretation as for 'extra_compile_args'. export_symbols : [string] list of symbols to be exported from a shared extension. Not used on all platforms, and not generally necessary for Python extensions, which typically export exactly one symbol: "init" + extension_name. swig_opts : [string] any extra options to pass to SWIG if a source file has the .i extension. depends : [string] list of files that the extension depends on language : string extension language (i.e. "c", "c++", "objc"). Will be detected from the source extensions if not provided. optional : boolean specifies that a build failure in the extension should not abort the build process, but simply not install the failing extension. NcKst|tstdt|to,tdd|Ds6td||_||_|pHg|_|pRg|_|p\g|_ |pfg|_ |ppg|_ |pzg|_ | pg|_ | pg|_| pg|_| pg|_| pg|_|pg|_||_||_t|dkrdd|D}djt|}d |}tj|dS) Nz'name' must be a stringcss|]}t|tVqdS)N) isinstancestr).0vr+/usr/lib64/python3.6/distutils/extension.py jsz%Extension.__init__..z#'sources' must be a list of stringsrcSsg|] }t|qSr)repr)rZoptionrrr sz&Extension.__init__..z, zUnknown Extension options: %s)rrAssertionErrorlistallnamesources include_dirs define_macros undef_macros library_dirs librariesruntime_library_dirs extra_objectsextra_compile_argsextra_link_argsexport_symbols swig_optsdependslanguageoptionallenjoinsortedwarningswarn)selfrrrrrrrrrrrrrrrrkwZoptionsmsgrrr__init__Vs4              zExtension.__init__cCsd|jj|jj|jt|fS)Nz<%s.%s(%r) at %#x>) __class__ __module__ __qualname__rid)r$rrr__repr__s zExtension.__repr__)NNNNNNNNNNNNNN)__name__r)r*__doc__r'r,rrrrrs ? !rcCsddlm}m}m}ddlm}ddlm}||}||dddddd}zhg}x\|j} | dkrfP|j | rrqT| d| d$kodknr|j d | qT|| |} || } | d} t | g} d} x| ddD]}| dk r| j |d} qt jj|d}|dd }|d d}|d%kr8| jj |q|dkrP| jj |q|dkr|jd}|d&kr| jj |dfn$| jj |d|||d dfq|dkr| jj |q|dkr| jj |q|dkr| jj |q|dkr| jj |q|dkr| jj |q|dkr0| j} q|dkrB| j} q|dkrT| j} q|dkrx| jj ||s| j} q|d'kr| jj |q|j d#|qW|j | qTWWd|jX|S)(z3Reads a Setup file and returns Extension instances.r)parse_makefileexpand_makefile_vars _variable_rx)TextFile) split_quoted)Zstrip_commentsZ skip_blanksZ join_linesZ lstrip_wsZ rstrip_wsN*z'%s' lines not handled yet.c.cc.cpp.cxx.c++.m.mmz-Iz-D=z-Uz-Cz-lz-Lz-Rz-rpathz-Xlinkerz -Xcompilerz-u.a.so.sl.o.dylibzunrecognized argument '%s')r7r8r9r:r;r<r=rD)r?r@rArBrC)Zdistutils.sysconfigr/r0r1Zdistutils.text_filer2Zdistutils.utilr3readlinematchr#rappendospathsplitextrrfindrrrrrrrrclose)filenamer/r0r1r2r3varsfile extensionslineZwordsmoduleZextZappend_next_wordZwordsuffixZswitchvalueZequalsrrrread_setup_files                          rU)r.rHr"rrUrrrrs zPK!uTW$$%__pycache__/util.cpython-36.opt-2.pycnu[3 \5Q@sddlZddlZddlZddlZddlZddlmZddlm Z ddl m Z ddl m Z ddlmZddZd d Zd d Zdad dZddZd'ddZdaaaddZddZd(ddZddZd)ddZdd Zd*d!d"Zd+d#d$Z Gd%d&d&Z!dS),N)DistutilsPlatformError)newer)spawn)log)DistutilsByteCompileErrorcCstjdkrnd}tjj|}|d(kr(tjStjjd|}tj|t||j}|dkr\dS|dkrhdStjSd tjkrtjd Stjd kst td  rtjStj \}}}}}|jj d d }|j dd}|j d d}|dddkrd||fS|dddkrV|ddkrd}dt |dd|ddf}ddd} |d| tj 7}n|ddd krtd||fS|ddd!krd"|||fS|dd#d$krd$}tjd%tj} | j|} | r| j}n>|dd#d&krddl} ddl} | j| jj|||\}}}d'|||fS))Nntz bit ()amd64z win-amd64itaniumzwin-ia64_PYTHON_HOST_PLATFORMposixuname/ _-linuxz%s-%ssunosr5solarisz%d.%s32bit64bit)ilz.%sirixaixz%s-%s.%scygwinz[\d.]+darwinz%s-%s-%s)osnamesysversionfindplatformlenlowerenvironhasattrrreplaceintmaxsizerecompileASCIImatchgroup _osx_supportZdistutils.sysconfigget_platform_osx sysconfigget_config_vars)prefixijlookosnamehostreleaser'machinebitnessrel_remr6 distutilsrF&/usr/lib64/python3.6/distutils/util.py get_platformsX            rHcCs~tjdkr|S|s|S|ddkr.td||ddkrFtd||jd}xd|krf|jdqRW|srtjStjj|S)Nrrzpath '%s' cannot be absoluterzpath '%s' cannot end with '/'.r#)r$sep ValueErrorsplitremovecurdirpathjoin)pathnamepathsrFrFrG convert_pathos       rScCstjdkr._substz\$([a-zA-Z_][a-zA-Z_0-9]*)zinvalid variable '$%s')r]r1subKeyErrorrK)sr_r`varrFrFrG subst_varss  reerror: cCs |t|S)N)r^)excr:rFrFrGgrok_environment_errorsrhcCs(tjdtjatjdatjdadS)Nz [^\\\'\"%s ]*z'(?:[^'\\]|\\.)*'z"(?:[^"\\]|\\.)*")r1r2string whitespace _wordchars_re _squote_re _dquote_rerFrFrFrG _init_regexs rncCstdkrt|j}g}d}x`|rtj||}|j}|t|kr\|j|d|P||tjkr|j|d|||dj }d}n||dkr|d|||dd}|d}n||dkrt j||}n*||dkrt j||}nt d|||dkr"t d|||j\}}|d|||d|d||d}|jd}|t|kr"|j|Pq"W|S) NrrTr'"z!this can't happen (bad char '%c')z"bad string (mismatched %s quotes?)r)rkrnstripr4endr*appendrirjlstriprlrm RuntimeErrorrKspan)rcZwordsposrDrrZbegrFrFrG split_quoteds@         ,   rxcCsP|dkr6d|j|f}|dddkr6|ddd}tj||sL||dS)Nz%s%rrz,)rr ry)__name__rinfo)funcargsmsgverbosedry_runrFrFrGexecutes  rcCs2|j}|dkrdS|dkr dStd|fdS)Nyyesttrueon1rnnoffalseoff0rzinvalid truth value %r)rrrrrr)rrrrrr)r+rK)valrFrFrG strtobool0s rrcCsTddl}tjrtd|dkr*do(|dk}|s8yddlm} | d\} } Wn.tk rzddlm} d| d} } YnXtj d| |s| dk rt j | d} n t | d} | j d | j d jtt|d | j d |||||f| jtjg}|j|j|j| t||d tt j| fd| |d nddlm}x|D]}|dddkrhqL|dkr|dkrdn|}tjj||d}n tjj|}|}|r|dt||krtd||f|t|d}|rt j j||}t j j!|}|rL|st"||r.DistutilsRefactoringToolc_stj|f|dS)N)rerror)selfr~r}kwrFrFrG log_errorsz4run_2to3..DistutilsRefactoringTool.log_errorcWstj|f|dS)N)rr{)rr~r}rFrFrG log_messagesz6run_2to3..DistutilsRefactoringTool.log_messagecWstj|f|dS)N)rr)rr~r}rFrFrG log_debugsz4run_2to3..DistutilsRefactoringTool.log_debugN)rz __module__ __qualname__rrrrFrFrFrGDistutilsRefactoringToolsrz lib2to3.fixes)optionsT)r)Zlib2to3.refactorrrZrefactor)files fixer_namesrexplicitrrrrrFrFrGrun_2to3s  rcCsddlm}ddlm}ddlm}|} tj} tj|z | j Wdtj| X| j | j dd<|rx(|j D]} | j } | sqt| j| qtWg} xV| j D]L} tjj|| }|tjj||tjj|| |dd}|dr| j|qWtdd| D|||d | S) Nr)mkpath) copy_file)FileListr)updatecSsg|]}|jjdr|qS)z.py)r+endswith).0fnrFrFrG sz$copydir_run_2to3..)rrr)Zdistutils.dir_utilrZdistutils.file_utilrZdistutils.filelistrr$getcwdchdirfindallZallfilesr splitlinesrqZprocess_template_linerOrPdirnamersr)srcdesttemplaterrrrrrZfilelistrNlineZcopiedfilenameZoutnameresrFrFrGcopydir_run_2to3s4        rc@s eZdZdZdZdZddZdS) Mixin2to3NcCst||j|j|jS)N)rrrr)rrrFrFrGr,szMixin2to3.run_2to3)rzrrrrrrrFrFrFrGrsr)rf)Nrr)rrNNrrN)NNN)NNNN)"r$r1importlib.utilrrir&Zdistutils.errorsrZdistutils.dep_utilrZdistutils.spawnrrErrrHrSrWrYr]rerhrkrlrmrnrxrrrrrrrrFrFrFrGs>     ]  =    PK!dS<<__pycache__/util.cpython-36.pycnu[3 \5Q@sdZddlZddlZddlZddlZddlZddlmZddl m Z ddl m Z ddl mZddlmZdd Zd d Zd d ZdaddZddZd(ddZdaaaddZddZd)ddZddZd*ddZd d!Zd+d"d#Z d,d$d%Z!Gd&d'd'Z"dS)-zudistutils.util Miscellaneous utility functions -- anything that doesn't fit into one of the other *util.py modules. N)DistutilsPlatformError)newer)spawn)log)DistutilsByteCompileErrorcCstjdkrnd}tjj|}|d)kr(tjStjjd|}tj|t||j}|dkr\dS|dkrhdStjSd tjkrtjd Stjd kst td  rtjStj \}}}}}|jj d d }|j dd}|j d d}|dddkrd||fS|dddkrV|ddkrd}dt |dd|ddf}ddd} |d| tj 7}n|dd d!krtd||fS|ddd"krd#|||fS|dd$d%krd%}tjd&tj} | j|} | r| j}n>|dd$d'krddl} ddl} | j| jj|||\}}}d(|||fS)*aReturn a string that identifies the current platform. This is used mainly to distinguish platform-specific build directories and platform-specific built distributions. Typically includes the OS name and version and the architecture (as supplied by 'os.uname()'), although the exact information included depends on the OS; eg. for IRIX the architecture isn't particularly important (IRIX only runs on SGI hardware), but for Linux the kernel version isn't particularly important. Examples of returned values: linux-i586 linux-alpha (?) solaris-2.6-sun4u irix-5.3 irix64-6.2 Windows will return one of: win-amd64 (64bit Windows on AMD64 (aka x86_64, Intel64, EM64T, etc) win-ia64 (64bit Windows on Itanium) win32 (all others - specifically, sys.platform is returned) For other non-POSIX platforms, currently just returns 'sys.platform'. ntz bit ()amd64z win-amd64itaniumzwin-ia64_PYTHON_HOST_PLATFORMposixuname/ _-Nlinuxz%s-%ssunosr5solarisz%d.%s32bit64bit)ilz.%sirixaixz%s-%s.%scygwinz[\d.]+darwinz%s-%s-%s)osnamesysversionfindplatformlenlowerenvironhasattrrreplaceintmaxsizerecompileASCIImatchgroup _osx_supportZdistutils.sysconfigget_platform_osx sysconfigget_config_vars)prefixijlookosnamehostreleaser'machinebitnessrel_remr6 distutilsrF&/usr/lib64/python3.6/distutils/util.py get_platformsX            rHcCs~tjdkr|S|s|S|ddkr.td||ddkrFtd||jd}xd|krf|jdqRW|srtjStjj|S)aReturn 'pathname' as a name that will work on the native filesystem, i.e. split it on '/' and put it back together again using the current directory separator. Needed because filenames in the setup script are always supplied in Unix style, and have to be converted to the local convention before we can actually use them in the filesystem. Raises ValueError on non-Unix-ish systems if 'pathname' either starts or ends with a slash. rrzpath '%s' cannot be absoluterzpath '%s' cannot end with '/'.r#)r$sep ValueErrorsplitremovecurdirpathjoin)pathnamepathsrFrFrG convert_pathos       rScCstjdkr._substz\$([a-zA-Z_][a-zA-Z_0-9]*)zinvalid variable '$%s'N)r]r1subKeyErrorrK)sr_r`varrFrFrG subst_varss  reerror: cCs |t|S)N)r^)excr:rFrFrGgrok_environment_errorsrhcCs(tjdtjatjdatjdadS)Nz [^\\\'\"%s ]*z'(?:[^'\\]|\\.)*'z"(?:[^"\\]|\\.)*")r1r2string whitespace _wordchars_re _squote_re _dquote_rerFrFrFrG _init_regexs rncCstdkrt|j}g}d}x`|rtj||}|j}|t|kr\|j|d|P||tjkr|j|d|||dj }d}n||dkr|d|||dd}|d}n||dkrt j||}n*||dkrt j||}nt d|||dkr"t d|||j\}}|d|||d|d||d}|jd }|t|kr"|j|Pq"W|S) aSplit a string up according to Unix shell-like rules for quotes and backslashes. In short: words are delimited by spaces, as long as those spaces are not escaped by a backslash, or inside a quoted string. Single and double quotes are equivalent, and the quote characters can be backslash-escaped. The backslash is stripped from any two-character escape sequence, leaving only the escaped character. The quote characters are stripped from any quoted string. Returns a list of words. NrrTr'"z!this can't happen (bad char '%c')z"bad string (mismatched %s quotes?)r)rkrnstripr4endr*appendrirjlstriprlrm RuntimeErrorrKspan)rcZwordsposrDrrZbegrFrFrG split_quoteds@         ,   rxcCsP|dkr6d|j|f}|dddkr6|ddd}tj||sL||dS) aPerform some action that affects the outside world (eg. by writing to the filesystem). Such actions are special because they are disabled by the 'dry_run' flag. This method takes care of all that bureaucracy for you; all you have to do is supply the function to call and an argument tuple for it (to embody the "external action" being performed), and an optional message to print. Nz%s%rrz,)rr ry)__name__rinfo)funcargsmsgverbosedry_runrFrFrGexecutes  rcCs2|j}|dkrdS|dkr dStd|fdS)zConvert a string representation of truth to true (1) or false (0). True values are 'y', 'yes', 't', 'true', 'on', and '1'; false values are 'n', 'no', 'f', 'false', 'off', and '0'. Raises ValueError if 'val' is anything else. yyesttrueon1rnnoffalseoff0rzinvalid truth value %rN)rrrrrr)rrrrrr)r+rK)valrFrFrG strtobool0s rrcCsTddl}tjrtd|dkr*do(|dk}|s8yddlm} | d\} } Wn.tk rzddlm} d| d} } YnXtj d| |s| dk rt j | d } n t | d } | j d | j d jtt|d | j d |||||f| jtjg}|j|j|j| t||dtt j| fd| |dnddlm}x|D]}|dddkrhqL|dkr|dkrdn|}tjj||d}n tjj|}|}|r|dt||krtd||f|t|d}|rt j j||}t j j!|}|rL|st"||r.DistutilsRefactoringToolc_stj|f|dS)N)rerror)selfr~r}kwrFrFrG log_errorsz4run_2to3..DistutilsRefactoringTool.log_errorcWstj|f|dS)N)rr{)rr~r}rFrFrG log_messagesz6run_2to3..DistutilsRefactoringTool.log_messagecWstj|f|dS)N)rr)rr~r}rFrFrG log_debugsz4run_2to3..DistutilsRefactoringTool.log_debugN)rz __module__ __qualname__rrrrFrFrFrGDistutilsRefactoringToolsrz lib2to3.fixes)optionsT)r)Zlib2to3.refactorrrZrefactor)files fixer_namesrexplicitrrrrrFrFrGrun_2to3s  rcCsddlm}ddlm}ddlm}|} tj} tj|z | j Wdtj| X| j | j dd<|rx(|j D]} | j } | sqt| j| qtWg} xV| j D]L} tjj|| }|tjj||tjj|| |dd}|dr| j|qWtdd | D|||d | S) zRecursively copy a directory, only copying new and changed files, running run_2to3 over all newly copied Python modules afterward. If you give a template string, it's parsed like a MANIFEST.in. r)mkpath) copy_file)FileListNr)updatecSsg|]}|jjdr|qS)z.py)r+endswith).0fnrFrFrG sz$copydir_run_2to3..)rrr)Zdistutils.dir_utilrZdistutils.file_utilrZdistutils.filelistrr$getcwdchdirfindallZallfilesr splitlinesrqZprocess_template_linerOrPdirnamersr)srcdesttemplaterrrrrrZfilelistrNlineZcopiedfilenameZoutnameresrFrFrGcopydir_run_2to3s4        rc@s$eZdZdZdZdZdZddZdS) Mixin2to3zMixin class for commands that run 2to3. To configure 2to3, setup scripts may either change the class variables, or inherit from individual commands to override how 2to3 is invoked.NcCst||j|j|jS)N)rrrr)rrrFrFrGr,szMixin2to3.run_2to3)rzrr__doc__rrrrrFrFrFrGrs r)rf)Nrr)rrNNrrN)NNN)NNNN)#rr$r1importlib.utilrrir&Zdistutils.errorsrZdistutils.dep_utilrZdistutils.spawnrrErrrHrSrWrYr]rerhrkrlrmrnrxrrrrrrrrFrFrFrGs@     ]  =    PK!J.__pycache__/unixccompiler.cpython-36.opt-1.pycnu[3 Ii:@sdZddlZddlZddlZddlmZddlmZddlm Z m Z m Z ddl m Z mZmZmZddlmZejdkr~ddlZGd d d e ZdS) a9distutils.unixccompiler Contains the UnixCCompiler class, a subclass of CCompiler that handles the "typical" Unix-style command-line C compiler: * macros defined with -Dname[=value] * macros undefined with -Uname * include search directories specified with -Idir * libraries specified with -lllib * library search directories specified with -Ldir * compile handled by 'cc' (or similar) executable with -c option: compiles .c to .o * link static library handled by 'ar' command (possibly with 'ranlib') * link shared library handled by 'cc -shared' N) sysconfig)newer) CCompilergen_preprocess_optionsgen_lib_options)DistutilsExecError CompileErrorLibError LinkError)logdarwinc seZdZdZddgdgdgddgdgddgddZejddd krNd ged <d d d dddgZdZdZ dZ dZ dZ dZ ZZeZejdkrdZfddZd.ddZddZd/d d!Zd0d"d#Zd$d%Zd&d'Zd(d)Zd*d+Zd1d,d-ZZS)2 UnixCCompilerZunixNZccz-sharedarz-cr) preprocessorcompiler compiler_so compiler_cxx linker_so linker_exearchiverranlibr rz.cz.Cz.ccz.cxxz.cppz.mz.oz.az.soz.dylibz.tbdzlib%s%scygwinz.execs@tj|||\}}}tjd}|r6||kr6|j||||fS)z'Remove standard library path from rpathLIBDIR)super _fix_lib_argsrget_config_varremove)self libraries library_dirsruntime_library_dirsZlibdir) __class__//usr/lib64/python3.6/distutils/unixccompiler.pyrUs    zUnixCCompiler._fix_lib_argsc Cs|jd||}|\}}}t||} |j| } |r>| jd|g|rN|| dd<|r\| j|| j||js~|dks~t||r|r|jtj j |y|j | Wn*t k r} zt | WYdd} ~ XnXdS)Nz-or)Z_fix_compile_argsrrextendappendZforcermkpathospathdirnamespawnrr) rsourceZ output_fileZmacrosZ include_dirs extra_preargsextra_postargs fixed_argsignorepp_optsZpp_argsmsgr#r#r$ preprocess^s$      zUnixCCompiler.preprocessc Csp|j}tjdkr tj|||}y |j|||d|g|Wn*tk rj}zt|WYdd}~XnXdS)Nr z-o)rsysplatform _osx_supportcompiler_fixupr+rr) robjsrcZextZcc_argsr.r1rr2r#r#r$_compilexs   zUnixCCompiler._compilercCs|j||\}}|j||d}|j||r|jtjj||j|j|g||j |j ry|j|j |gWqt k r}zt |WYdd}~XqXn t jd|dS)N) output_dirzskipping %s (up-to-date))_fix_object_argslibrary_filename _need_linkr'r(r)r*r+robjectsrrr r debug)rr?Zoutput_libnamer;r@ target_langoutput_filenamer2r#r#r$create_static_libs zUnixCCompiler.create_static_libcCs|j||\}}|j|||}|\}}}t||||}t|ttdfsPtd|dk rftjj ||}|j ||r||j |d|g}| rdg|dd<| r| |dd<| r|j | |j tjj|y|tjkr|jdd}n|jdd}| dkrR|jrRd}tjj|ddkrDd}xd||krB|d7}q(W|j|||<tjd krjtj||}|j||Wn,tk r}zt|WYdd}~XnXn tjd |dS) Nz%'output_dir' must be a string or Nonez-oz-grzc++env=r zskipping %s (up-to-date))r<rr isinstancestrtype TypeErrorr(r)joinr>r?r%r'r*rZ EXECUTABLErrrbasenamer4r5r6r7r+rr r r@)rZ target_descr?rBr;rr r!Zexport_symbolsr@r-r.Z build_temprAr/Zlib_optsZld_argsZlinkerir2r#r#r$linksH      zUnixCCompiler.linkcCsd|S)Nz-Lr#)rdirr#r#r$library_dir_optionsz UnixCCompiler.library_dir_optioncCsd|kpd|kS)Ngcczg++r#)rZ compiler_namer#r#r$_is_gccszUnixCCompiler._is_gcccCstjjtjd}tjdddkr,d|StjdddkrFd|Stjddd krz|j|rnd d|gSd d|gStjddd kstjddd krd|gS|j|rtjddkrd|Sd|Snd|SdS)NCCrr z-LZfreebsdz -Wl,-rpath=zhp-uxz-Wl,+sz+sZirix646Zosf1V5z-rpathGNULDyesz-Wl,--enable-new-dtags,-Rz-Wl,-Rz-R)r(r)rLrrr4r5rR)rrOrr#r#r$runtime_library_dir_options    $  z(UnixCCompiler.runtime_library_dir_optioncCsd|S)Nz-lr#)rlibr#r#r$library_option szUnixCCompiler.library_optioncCs|j|dd}|j|dd}|j|dd}|j|dd}tjdkrptjd}tjd|} | dkrfd } n | jd } x|D]} tj j | |} tj j | |} tj j | |}tj j | |}tjdko| j d s| j d o| j d  rBtj j | | d d|} tj j | | d d|} tj j | | d d|}tj j | | d d|}tj j | rT| Stj j |rf|Stj j | rx| Stj j |rx|SqxWdS)Nshared)Zlib_typedylib xcode_stubstaticr CFLAGSz-isysroot\s+(\S+)/rEz/System/z/usr/z /usr/local/) r=r4r5rrresearchgroupr(r)rK startswithexists)rdirsrYr@Zshared_fZdylib_fZ xcode_stub_fZstatic_fZcflagsmZsysrootrOr[r\r^r]r#r#r$find_library_file s>       zUnixCCompiler.find_library_file)NNNNN)NrN) NNNNNrNNNN)r)__name__ __module__ __qualname__Z compiler_typeZ executablesr4r5Zsrc_extensionsZ obj_extensionZstatic_lib_extensionZshared_lib_extensionZdylib_lib_extensionZxcode_stub_lib_extensionZstatic_lib_formatZshared_lib_formatZdylib_lib_formatZxcode_stub_lib_formatZ exe_extensionrr3r:rCrNrPrRrXrZrh __classcell__r#r#)r"r$r -sF       6,r )__doc__r(r4raZ distutilsrZdistutils.dep_utilrZdistutils.ccompilerrrrZdistutils.errorsrrr r r r5r6r r#r#r#r$s    PK!W6=$__pycache__/log.cpython-36.opt-1.pycnu[3 \@sldZdZdZdZdZdZddlZGdd d ZeZej Z ej Z ej Z ej Z ej Z ejZd d Zd d ZdS)z,A simple log mechanism styled after PEP 282.Nc@sPeZdZefddZddZddZddZd d Zd d Z d dZ ddZ dS)LogcCs ||_dS)N) threshold)selfrr %/usr/lib64/python3.6/distutils/log.py__init__sz Log.__init__c Cs|tttttfkr"tdt|||jkr|r8||}|tttfkrNtj }ntj }y|j d|Wn:t k r|j }|j|dj|}|j d|YnX|jdS)Nz%s wrong log levelz%s backslashreplace)DEBUGINFOWARNERRORFATAL ValueErrorstrrsysstderrstdoutwriteUnicodeEncodeErrorencodingencodedecodeflush)r levelmsgargsstreamrr r r _logs zLog._logcGs|j|||dS)N)r")r rrr r r r log'szLog.logcGs|jt||dS)N)r"r)r rr r r r debug*sz Log.debugcGs|jt||dS)N)r"r)r rr r r r info-szLog.infocGs|jt||dS)N)r"r)r rr r r r warn0szLog.warncGs|jt||dS)N)r"r)r rr r r r error3sz Log.errorcGs|jt||dS)N)r"r)r rr r r r fatal6sz Log.fatalN) __name__ __module__ __qualname__rr r"r#r$r%r&r'r(r r r r rs rcCstj}|t_|S)N) _global_logr)roldr r r set_thresholdAsr.cCs8|dkrttn"|dkr$ttn|dkr4ttdS)Nrrr)r.rrr)vr r r set_verbosityGs   r0)__doc__rrrrrrrr,r#r$r%r&r'r(r.r0r r r r s +PK!cԽ44.__pycache__/_msvccompiler.cpython-36.opt-1.pycnu[3 \KT@sdZddlZddlZddlZddlZddlZddlmZmZm Z m Z m Z ddl m Z mZddlmZddlmZddlmZdd Zd d Zd d ZddZdddZdddZedgZGddde ZdS)adistutils._msvccompiler Contains MSVCCompiler, an implementation of the abstract CCompiler class for Microsoft Visual Studio 2015. The module is compatible with VS 2015 and later. You can find legacy support for older versions in distutils.msvc9compiler and distutils.msvccompiler. N)DistutilsExecErrorDistutilsPlatformError CompileErrorLibError LinkError) CCompilergen_lib_options)log) get_platform)countc$CsytjtjdtjtjBd}Wntk r<tjddSXd}d}|xtD]}ytj ||\}}}Wntk rPYnX|rT|tj krTt j j |rTytt|}Wnttfk rwTYnX|dkrT||krT||}}qTWWdQRX||fS)Nz'Software\Microsoft\VisualStudio\SxS\VC7)accesszVisual C++ is not registeredr)NN)winregZ OpenKeyExHKEY_LOCAL_MACHINEZKEY_READZKEY_WOW64_32KEYOSErrorr debugr Z EnumValueZREG_SZospathisdirintfloat ValueError TypeError)key best_versionbest_dirivvc_dirZvtversionr //usr/lib64/python3.6/distutils/_msvccompiler.py _find_vc2015s0  r"c sddlddl}d }d}gfdd}|j|d}|j|jxD]~\}}}}d|krLtjj|ddd} tjj| sqLytd d |j d D} Wnt t fk rwLYnX| |krL| | }}qLWy |d}Wnt k rd}YnX||fS) NrcsjjdS)N)extendfindallr )_distutils_findvs all_packagesr r!_getallDsz_find_vc2017.._getall)targetz1Microsoft.VisualStudio.Component.VC.Tools.x86.x64ZVCZ AuxiliaryZBuildcss|]}t|VqdS)N)r).0rr r r! Psz_find_vc2017...)r) r% threadingZThreadstartjoinrrrtuplesplitrr IndexError) r,rrr'tnameZ version_strrZpackagesrrr )r%r&r! _find_vc2017:s2    r4cCs t\}}d}d|krdnd}|rztjj|ddddddd }yd dl}|j|d d d}Wntttfk rxd}YnX|st\}}|rtjj|d|dd }|st j ddStjj|d}tjj |st j d|dS| ptjj | rt j d|d}||fS)Namd64Zx64x86z..ZredistZMSVCz**zMicrosoft.VC141.CRTzvcruntime140.dllrT) recursivezMicrosoft.VC140.CRTz$No suitable Visual C++ version foundz vcvarsall.batz%s cannot be found)NN)NN) r4rrr.glob ImportErrorr LookupErrorr"r risfile) plat_specrr vcruntimeZvcruntime_platZvcredistr: vcvarsallr r r!_find_vcvarsall[s6        rAcCstjdrddtjjDSt|\}}|s6tdy&tjdj||tj dj ddd }Wn@tj k r}z"t j |jtd j|jWYdd}~XnXd dd d |jDD}|r||d<|S)NZDISTUTILS_USE_SDKcSsi|]\}}||jqSr )lower)r)rvaluer r r! sz_get_vc_env..zUnable to find vcvarsall.batzcmd /u /c "{}" {} && set)stderrzutf-16lereplace)errorszError executing {}cSs$i|]\}}}|r|r||jqSr )rB)r)r_rCr r r!rDscss|]}|jdVqdS)=N) partition)r)liner r r!r*sz_get_vc_env..py_vcruntime_redist)rgetenvenvironitemsrAr subprocessZ check_outputformatZSTDOUTdecodeZCalledProcessErrorr erroroutputcmd splitlines)r>r@r?outexcenvr r r! _get_vc_env}s(     rZcCsN|stjdjtj}x2|D]*}tjjtjj||}tjj|r|SqW|S)atReturn path to an MSVC executable program. Tries to find the program in several places: first, one of the MSVC program search paths from the registry; next, the directories in the PATH environment variable. If any of those work, return an absolute path that is known to exist. If none of them work, just return the original program name, 'exe'. r)rrMr0pathseprr.abspathr=)Zexepathspfnr r r! _find_exes   r`r6Z x86_amd64)Zwin32z win-amd64zvcruntime140.dllc seZdZdZdZiZdgZdddgZdgZdgZ eeee Z d Z d Z d Z d Zd ZZdZd*ddZd+ddZd,ddZd-ddZd.ddZd/ddZddZfd d!Zd"d#Zd$d%Zd&d'Zd0d(d)ZZS)1 MSVCCompilerzwConcrete class that implements an interface to Microsoft Visual C++, as defined by the CCompiler abstract class.Zmsvcz.cz.ccz.cppz.cxxz.rcz.mcz.resz.objz.libz.dllz%s%sz.exercCs tj||||d|_d|_dS)NF)r__init__ plat_name initialized)selfverboseZdry_runZforcer r r!rbszMSVCCompiler.__init__NcCs>|dkrt}|tkr(tdjttt|}t|}|sDtd|jdd|_|jjt j }t d||_ t d||_ t d||_t d||_t d ||_t d ||_|jd d|_x2|jd djt j D]}|r|j|jt jqWx6|jd djt j D]}|r|j|jt jqWd|_dddddg|_|jj|jrJdndddddddg|_dddg}|js~|jd$ddddg}|d%|_|d&|_|d'|_|d(|_||_ ||_!t"j#df|jt"j#d"f|jt"j#d#f|jt"j$df|jt"j$d"f|jt"j$d#f|jt"j%df|j t"j%d"f|j t"j%d#f|j!i |_&d#|_'dS))Nz--plat-name must be one of {}z7Unable to find a compatible Visual Studio installation.rzcl.exezlink.exezlib.exezrc.exezmc.exezmt.exerLincludelibz/nologoz/Oxz/W3z/GLz/DNDEBUGz/MDz/MTz/Odz/MDdz/Ziz/D_DEBUGz/INCREMENTAL:NOz/LTCG/nodefaultlib:libucrt.libucrt.libz /DEBUG:FULL/MANIFEST:EMBED,ID=1/DLL/MANIFEST:EMBED,ID=2/MANIFESTUAC:NOFT)rjrk)rl)rl)rmrnro)rmrnro)(r PLAT_TO_VCVARSrrQr/rZget_pathsr0rr[r`cclinkerrircmcZmt_vcruntime_redistZadd_include_dirrstripsepZadd_library_dirZpreprocess_optionscompile_optionsappendcompile_options_debugr#Z ldflags_exeZldflags_exe_debugZldflags_sharedZldflags_shared_debugZldflags_staticZldflags_static_debugrZ EXECUTABLEZ SHARED_OBJECTZSHARED_LIBRARY_ldflagsrd)rercr>Zvc_envr]dirldflagsZ ldflags_debugr r r! initializes`                      zMSVCCompiler.initializergcsTfddjDfddjjDp4dfdd}tt||S)Ncsi|] }j|qSr ) obj_extension)r)ext)rer r!rD8sz1MSVCCompiler.object_filenames..csi|] }j|qSr ) res_extension)r)r)rer r!rD9srgc stjj|\}}r"tjj|}n2tjj|\}}|jtjjtjjfrT|dd}ytjj||St k rt dj |YnXdS)Nr8zDon't know how to compile {}) rrsplitextbasename splitdrive startswithryaltsepr.r<rrQ)r^baserrH)ext_map output_dir strip_dirr r! make_out_path>s z4MSVCCompiler.object_filenames..make_out_path)src_extensions_rc_extensions_mc_extensionslistmap)reZsource_filenamesrrrr )rrrerr!object_filenames3s zMSVCCompiler.object_filenamesc Cs|js|j|j||||||} | \}} }} } |p6g} | jd|rT| j|jn | j|jd}x| D]}y| |\}}Wntk rwlYnX|rtj j |}||j krd|}nD||j krd|}d}n*||j krB|}d|}y|j|jg| ||gWqltk r<}zt|WYdd}~XqlXqln||jkrtj j|}tj j|}y\|j|jd|d||gtj jtj j|\}}tj j||d }|j|jd||gWqltk r}zt|WYdd}~XqlXqlntd j|||jg| | }|r$|jd |j||jd ||j|y|j|Wqltk r}zt|WYdd}~XqlXqlW| S) Nz/cFz/Tcz/TpTz/foz-hz-rz.rcz"Don't know how to compile {} to {}z/EHscz/Fo)rdrZ_setup_compiler{r#r|rzKeyErrorrrr\ _c_extensions_cpp_extensionsrspawnrurrrdirnamervrrr.rQrs)reZsourcesrZmacrosZ include_dirsr extra_preargsextra_postargsZdependsZ compile_infoobjectsZpp_optsZbuildZ compile_optsZ add_cpp_optsobjsrcrZ input_optZ output_optmsgZh_dirZrc_dirrrHZrc_fileargsr r r!compileTsn               zMSVCCompiler.compilec Cs|js|j|j||\}}|j||d}|j||r|d|g}|rJy,tjd|jdj||j |jg|Wqt k r}zt |WYdd}~XqXn tjd|dS)N)rz/OUT:zExecuting "%s" %s zskipping %s (up-to-date)) rdr_fix_object_argslibrary_filename _need_linkr rrir.rrr) rerZoutput_libnamerr target_langoutput_filenameZlib_argsrr r r!create_static_libs zMSVCCompiler.create_static_libcCs|js|j|j||\}}|j|||}|\}}}|rL|jdt|t||||}|dk rptjj ||}|j ||r|j || f}dd|pgD}||||d|g}tjj |d} |dk r tjj tjj|\}}tjj | |j|}|jd|| r| |dd<| r.|j| tjj tjj|}|j|y6tjd|jdj ||j|jg||j|Wn,tk r}zt|WYdd}~XnXn tjd |dS) Nz5I don't know what to do with 'runtime_library_dirs': cSsg|] }d|qS)z/EXPORT:r )r)Zsymr r r! sz%MSVCCompiler.link..z/OUT:rz/IMPLIB:zExecuting "%s" %srzskipping %s (up-to-date))rdrrZ _fix_lib_argswarnstrrrrr.rr}rrrrr{r#r\Zmkpathr rrtr_copy_vcruntimerr)reZ target_descrrrZ librariesZ library_dirsZruntime_library_dirsZexport_symbolsrrrZ build_temprZ fixed_argsZlib_optsrZ export_optsZld_argsZdll_nameZdll_extZ implib_filerr r r!linksN       zMSVCCompiler.linkcCs`|j}| stjj| rdStjj|jtkr6dStjd|t j ||}tj |t j dS)Nz Copying "%s")rwrrr=rrB _BUNDLED_DLLSr rshutilcopychmodstatS_IWRITE)rerr?r r r!rs  zMSVCCompiler._copy_vcruntimec s4tjd}z|jtjd<tj|S|tjd<XdS)Nr)rrMrrrNsuperr)rerUZold_path) __class__r r!rs    zMSVCCompiler.spawncCsd|S)Nz /LIBPATH:r )rer~r r r!library_dir_option&szMSVCCompiler.library_dir_optioncCs tddS)Nz:don't know how to set runtime library search path for MSVC)r)rer~r r r!runtime_library_dir_option)sz'MSVCCompiler.runtime_library_dir_optioncCs |j|S)N)r)rerir r r!library_option-szMSVCCompiler.library_optioncCs`|r|d|g}n|g}xB|D]6}x0|D](}tjj||j|}tjj|r(|Sq(WqWdSdS)NZ_d)rrr.rr=)redirsrirZ try_namesr~r3Zlibfiler r r!find_library_file0s    zMSVCCompiler.find_library_file)rrr)N)rrg)NNNrNNN)NrN) NNNNNrNNNN)r)__name__ __module__ __qualname____doc__Z compiler_typeZ executablesrrrrrrrZstatic_lib_extensionZshared_lib_extensionZstatic_lib_formatZshared_lib_formatZ exe_extensionrbrrrrrrrrrrr __classcell__r r )rr!rasN   T  [  9 ra)N)rrrrrPrZdistutils.errorsrrrrrZdistutils.ccompilerrrZ distutilsr Zdistutils.utilr itertoolsr r"r4rArZr`rp frozensetrrar r r r!s&   !"  PK!_))-__pycache__/fancy_getopt.cpython-36.opt-1.pycnu[3 \xE@sdZddlZddlZddlZddlZddlTdZejdeZejdeefZ e j ddZ Gd d d Z d d Zd dejDZddZddZGdddZedkrdZx2dD]*ZedeedjeeeeqWdS)a6distutils.fancy_getopt Wrapper around the standard getopt module that provides the following additional features: * short and long options are tied together * options have help strings, so fancy_getopt could potentially create a complete usage summary * options set attributes of a passed-in object N)*z[a-zA-Z](?:[a-zA-Z0-9-]*)z^%s$z ^(%s)=!(%s)$-_c@seZdZdZdddZddZddZd d d Zd d Zd dZ ddZ ddZ ddZ ddZ d!ddZddZd"ddZd#ddZdS)$ FancyGetoptaWrapper around the standard 'getopt()' module that provides some handy extra functionality: * short and long options are tied together * options have help strings, and help text can be assembled from them * options set attributes of a passed-in object * boolean options can have "negative aliases" -- eg. if --quiet is the "negative alias" of --verbose, then "--quiet" on the command line sets 'verbose' to false NcCsN||_i|_|jr|ji|_i|_g|_g|_i|_i|_i|_ g|_ dS)N) option_table option_index _build_indexaliasnegative_alias short_opts long_opts short2long attr_name takes_arg option_order)selfrr./usr/lib64/python3.6/distutils/fancy_getopt.py__init__)s zFancyGetopt.__init__cCs,|jjx|jD]}||j|d<qWdS)Nr)rclearr)roptionrrrrQs  zFancyGetopt._build_indexcCs||_|jdS)N)rr)rrrrrset_option_tableVszFancyGetopt.set_option_tablecCs<||jkrtd|n |||f}|jj|||j|<dS)Nz'option conflict: already an option '%s')rDistutilsGetoptErrorrappend)r long_optionZ short_optionZ help_stringrrrr add_optionZs     zFancyGetopt.add_optioncCs ||jkS)zcReturn true if the option table for this parser has an option with long name 'long_option'.)r)rrrrr has_optioncszFancyGetopt.has_optioncCs |jtS)zTranslate long option name 'long_option' to the form it has as an attribute of some object: ie., translate hyphens to underscores.) translate longopt_xlate)rrrrr get_attr_namehszFancyGetopt.get_attr_namecCsRxL|jD]@\}}||jkr.td|||f||jkr td|||fq WdS)Nz(invalid %s '%s': option '%s' not definedz0invalid %s '%s': aliased option '%s' not defined)itemsrr)raliasesZwhatr optrrr_check_alias_dictns  zFancyGetopt._check_alias_dictcCs|j|d||_dS)z'Set the aliases for this option parser.r N)r#r )rr rrr set_aliasesxs zFancyGetopt.set_aliasescCs|j|d||_dS)zSet the negative aliases for this option parser. 'negative_alias' should be a dictionary mapping option names to option names, both the key and value must already be defined in the option table.znegative aliasN)r#r )rr rrrset_negative_aliases}s z FancyGetopt.set_negative_aliasescCsg|_g|_|jji|_x|jD]}t|dkrH|\}}}d}n(t|dkrb|\}}}}ntd|ft|t  st|dkrt d||dkpt|t ot|dkst d |||j|<|jj ||dd kr|r|d }|dd}d|j |<nF|j j|}|dk rB|j |r8t d ||f||jd<d|j |<|jj|}|dk r|j ||j |krt d ||ftj|st d||j||j|<|r&|jj |||j|d<q&WdS)zPopulate the various data structures that keep tabs on the option table. Called by 'getopt()' before it can do anything worthwhile. rzinvalid option tuple: %rz9invalid long option '%s': must be a string of length >= 2Nz:invalid short option '%s': must a single character or None=:z>invalid negative alias '%s': aliased option '%s' takes a valuezginvalid alias '%s': inconsistent with aliased option '%s' (one of them takes a value, the other doesn'tzEinvalid long option name '%s' (must be letters, numbers, hyphens onlyr,r,)r r r rrepeatrlen ValueError isinstancestrrrrr getr longopt_rematchrr)rrlongshorthelpr-Zalias_torrr_grok_option_tables^                   zFancyGetopt._grok_option_tablec Csr|dkrtjdd}|dkr*t}d}nd}|jdj|j}ytj|||j\}}Wn,tjk r}zt |WYdd}~XnXx|D]\}}t |dkr|ddkr|j |d}n |dd}|j j |} | r| }|j|s |jj |} | r| }d}nd}|j|} |r<|jj | dk rsB        zFancyGetopt.getoptcCs|jdkrtdn|jSdS)zReturns the list of (option, value) tuples processed by the previous run of 'getopt()'. Raises RuntimeError if 'getopt()' hasn't been called yet. Nz!'getopt()' hasn't been called yet)r RuntimeError)rrrrget_option_orders  zFancyGetopt.get_option_ordercCsxd}xV|jD]L}|d}|d}t|}|ddkr<|d}|dk rL|d}||kr |}q W|ddd}d}||} d|} |r|g} nd g} x|jD]}|dd \}}} t| | } |ddkr|dd}|dkr| r| jd ||| dfn| jd ||fn:d ||f}| r<| jd ||| dfn| jd|x$| ddD]}| j| |qXWqW| S)zGenerate help text (a list of strings, one per suggested line of output) from the option table for this FancyGetopt object. rr)r*Nr(Nr9zOption summary:r&z --%-*s %sz --%-*s z%s (-%s)z --%-*sr,r,r,)rr. wrap_textr)rheaderZmax_optrr5r6lZ opt_widthZ line_widthZ text_widthZ big_indentlinesr7textZ opt_namesrrr generate_helpsF        zFancyGetopt.generate_helpcCs4|dkrtj}x |j|D]}|j|dqWdS)N )r:stdoutrPwrite)rrLfilelinerrr print_helphszFancyGetopt.print_help)N)NN)NN)N)NN)__name__ __module__ __qualname____doc__rrrrrrr#r$r%r8r>rHrPrVrrrrrs  (  M = OrcCst|}|j||j||S)N)rr%r>)optionsZ negative_optrCrBparserrrr fancy_getoptos r]cCsi|]}dt|qS)r9)ord).0Z_wscharrrr usr`cCs"|dkr gSt||kr|gS|j}|jt}tjd|}dd|D}g}x|rg}d}xZ|rt|d}|||kr|j|d|d=||}q`|r|d ddkr|d =Pq`W|r |dkr|j|dd||d|d|d<|dddkr |d=|jdj|qPW|S) zwrap_text(text : string, width : int) -> [string] Split 'text' into multiple lines of no more than 'width' characters each, and return the list of strings that results. Nz( +|-+)cSsg|] }|r|qSrr)r_Zchrrr szwrap_text..rr)r9r,r,)r. expandtabsrWS_TRANSresplitrr=)rOwidthZchunksrNZcur_lineZcur_lenrMrrrrKws:      rKcCs |jtS)zXConvert a long option name to a valid Python identifier by changing "-" to "_". )rr)r"rrrtranslate_longoptsrhc@seZdZdZgfddZdS)r<z_Dummy class just used as a place to hold command-line option values as instance attributes.cCsx|D]}t||dqWdS)zkCreate a new OptionDummy instance. The attributes listed in 'options' will be initialized to None.N)rA)rr[r"rrrrs zOptionDummy.__init__N)rWrXrYrZrrrrrr<sr<__main__zTra-la-la, supercalifragilisticexpialidocious. How *do* you spell that odd word, anyways? (Someone ask Mary -- she'll know [or she'll say, "How should I know?"].) (z width: %drQ)rjrkrlrm)rZr:stringrer>Zdistutils.errorsZ longopt_patcompiler3Z neg_alias_rer1 maketransrrr]Z whitespacerdrKrhr<rWrOwprintr=rrrr s* T6   PK!qii&__pycache__/spawn.cpython-36.opt-2.pycnu[3 \@sddlZddlZddlmZmZddlmZddlmZdddZ dd Z dd d Z ej d krrdd lm Z dadadddZdddZdS)N)DistutilsPlatformErrorDistutilsExecError)DEBUG)logcCsNt|}tjdkr"t|||dn(tjdkresz _spawn_posix...cSsg|] }t|qSr)r()r)r*rrrr+kszF$MACOSX_DEPLOYMENT_TARGET mismatch: now "%s" but "%s" during configure)r&zunable to execute %r: %s rz(unable to execute %r for unknown reasonszcommand %r failed: %sz"command %r terminated by signal %dz%command %r failed with exit status %dz1unknown error executing %r: termination status %dr)"rrrr execvpexecvsysplatform _cfg_targetr%get_config_varsplit_cfg_target_splitenvirongetrdictexecvpeexecveforkr!rstderrwritestrerror_exitwaitpidrr WIFSIGNALEDWTERMSIG WIFEXITED WEXITSTATUS WIFSTOPPED)rrrrr"Zexec_fnenvZ cur_targetZmy_msgpideZstatusr#Z exit_statusrrrr Xs     &     r cCs|dkrtjjdtj}|jtj}tjj|\}}tj dkrN|dkrN|d}tjj |sx*|D]"}tjj ||}tjj |r`|Sq`WdS|SdS)NPATHZwin32z.exe) r r5r6defpathr3pathseppathsplitextr/r0isfiler)r"rKpathsbaseZextpfrrrrs    r)rrr)rrr)rrr)N)r/r Zdistutils.errorsrrZdistutils.debugrZ distutilsrrrrr0r%r1r4r rrrrr s       QPK!iN==.__pycache__/msvc9compiler.cpython-36.opt-2.pycnu[3 \w@sPddlZddlZddlZddlZddlmZmZmZmZm Z ddl m Z m Z m Z ddlmZddlmZddlZejZejZejZejZejejejejfZej dkoej!d%kZ"e"rd Z#d Z$d Z%n d Z#d Z$dZ%ddddZ&GdddZ'GdddZ(ddZ)ddZ*ddZ+ddZ,d&dd Z-e)Z.e.d!krr?r;rHrrrrr7{sr7cCsd}tjj|}|d krdS|t|}tj|djdd\}}t|dd d}|dkrf|d7}t|ddd}|dkrd }|dkr||SdS) NzMSC v.r r g$@r)sysr=findlensplitint)prefixr$r1restZ majorVersionZ minorVersionrrrget_build_versions  rVcCs4g}x*|D]"}tjj|}||kr |j|q W|S)N)osrnormpathr!)pathsZ reduced_pathsrCZnprrrnormalize_and_reduce_pathss   rZcCs@|jtj}g}x|D]}||kr|j|qWtjj|}|S)N)rRrWpathsepr!join)ZvariableZoldListZnewListr$Z newVariablerrrremoveDuplicatess   r]c Cst|}ytjd|d}Wn"tk r>tjdd}YnX| sTtjj| rd|}tj j |d}|rtjj|rtjj |tj tj d}tjj |}tjj|stjd|dSntjd||stjddStjj |d }tjj|r|Stjd dS) Nz %s\Setup\VCr@z%Unable to find productdir in registryzVS%0.f0COMNTOOLSZVCz%s is not a valid directoryz Env var %s is not set or invalidzNo productdir foundz vcvarsall.batzUnable to find vcvarsall.bat)r9rrrr debugrWrisdirenvirongetr\pardirabspathisfile)r=r:r@ZtoolskeyZtoolsdir vcvarsallrrrfind_vcvarsalls2         rfc Cs8t|}td}i}|dkr$tdtjd||tjd||ftjtjd}z|j\}}|j d krvt|j d |j d }xr|j d D]d}t j |}d |krq|j}|j d d \} } | j} | |kr| jtjr| dd} t| || <qWWd|jj|jjXt|t|kr4ttt|j|S)NincludeliblibpathrzUnable to find vcvarsall.batz'Calling 'vcvarsall.bat %s' (version=%s)z "%s" %s & set)stdoutstderrrr. =r)rgrhrirrM)rfsetrr r^ subprocessPopenPIPEZ communicatewaitr-rRrr)stripr(endswithrWr[r]rjcloserkrQ ValueErrorstrlistkeys) r=ZarchreZ interestingresultpopenrjrklinerr+rrrquery_vcvarsalls<         r}g @z(VC %0.1f is not supported by this modulec @seZdZdZiZdgZdddgZdgZdgZeeeeZ dZ d Z d Z d Z d ZZd Zd-ddZd.ddZd/ddZd0ddZd1ddZd2ddZddZdd Zd!d"Zd#d$Zd%d&Zd'd(Zd3d)d*Zd+d,ZdS)4 MSVCCompilerZmsvcz.cz.ccz.cppz.cxxz.rcz.mcz.resz.objz.libz.dllz%s%sz.exercCs8tj||||t|_d|_g|_d|_d|_d|_dS)NzSoftware\Microsoft\VisualStudioF) rr>VERSION_MSVCCompiler__versionZ_MSVCCompiler__root_MSVCCompiler__paths plat_name_MSVCCompiler__arch initialized)r<verboseZdry_runZforcerrrr>JszMSVCCompiler.__init__NcCs|dkrt}d$}||kr(td|fdtjkrfdtjkrf|jdrfd|_d|_d |_d |_d |_ n|tksx|dkrt |}nt td t |}t t |}|d j tj|_|dtjd<|dtjd<t|jdkrtd|j|jd|_|jd|_|jd |_|jd |_|jd |_ y,x&tjd j dD]}|jj|q||j kr>|}d|}y"|j|jg| |g|gWqhtk r8}zt|WYdd}~XqhXqhn||jkrtj j|}tj j|}yl|j|jgd|d|g|gtj jtj j|\}}tj j||d}|j|jgd|g|gWqhtk r}zt|WYdd}~XqhXqhntd||fd |}y&|j|jg| | ||g|Wqhtk rj}zt|WYdd}~XqhXqhW| S) Nz/cz/Tcz/Tpz/foz-hz-rz.rcz"Don't know how to compile %s to %sz/Fo)rrZ_setup_compiler!extendrrrrWrrc _c_extensions_cpp_extensionsrspawnrrrrdirnamerrrr\r)r<Zsourcesrr8Z include_dirsr^ extra_preargsextra_postargsZdependsZ compile_infoobjectsZpp_optsZbuildZ compile_optsobjsrcrZ input_optZ output_optmsgZh_dirZrc_dirrrZrc_filerrrcompilesj              zMSVCCompiler.compilec Cs|js|j|j||\}}|j||d}|j||r|d|g}|rJy|j|jg|Wqtk r}zt|WYdd}~XqXn t j d|dS)N)rz/OUT:zskipping %s (up-to-date)) rr_fix_object_argslibrary_filename _need_linkrrhrrr r^) r<rZoutput_libnamerr^ target_langoutput_filenameZlib_argsrrrrcreate_static_libs zMSVCCompiler.create_static_libcCsX|js|j|j||\}}|j|||}|\}}}|rL|jdt|t||||}|dk rptjj ||}|j ||rH|t j kr| r|j dd}q|jdd}n| r|j }n|j}g}x|pgD]}|jd|qW||||d|g}tjj|d} |dk rPtjjtjj|\}}tjj | |j|}|jd||j|| || rp| |dd<| r|j| |jtjj|y|j|jg|Wn,tk r}zt|WYdd}~XnX|j||}|dk rT|\}}d||f}y|jdd d ||gWn,tk rD}zt|WYdd}~XnXn tjd |dS) Nz5I don't know what to do with 'runtime_library_dirs': rz/EXPORT:z/OUT:rz/IMPLIB:z-outputresource:%s;%szmt.exez-nologoz -manifestzskipping %s (up-to-date))rrrZ _fix_lib_argswarnrwr rWrr\rr EXECUTABLErrr!rrrrmanifest_setup_ldargsrZmkpathrrrrmanifest_get_embed_infor r^)r< target_descrrrZ librariesZ library_dirsZruntime_library_dirsZexport_symbolsr^rr build_temprZ fixed_argsZlib_optsZldflagsZ export_optsZsymld_argsZdll_nameZdll_extZ implib_filerZmfinfoZ mffilenamemfidZout_argrrrlink8sl           zMSVCCompiler.linkcCs,tjj|tjj|d}|jd|dS)Nz .manifestz/MANIFESTFILE:)rWrr\rr!)r<rrr temp_manifestrrrrsz"MSVCCompiler.manifest_setup_ldargscCs`x,|D] }|jdr|jddd}PqWdS|tjkr>d}nd}|j|}|dkrXdS||fS)Nz/MANIFESTFILE::rr ) startswithrRrr_remove_visual_c_ref)r<rrargrrrrrrs    z$MSVCCompiler.manifest_get_embed_infocCsyt|}z |j}Wd|jXtjdtj}tj|d|}d}tj|d|}tjdtj}tj||dkrrdSt|d}z|j||S|jXWnt k rYnXdS)NzU|)rz*\s*zI|)w) openreadrurerDOTALLrHsearchwriteOSError)r<Z manifest_fileZ manifest_fZ manifest_bufpatternrrrrs.     z!MSVCCompiler._remove_visual_c_refcCsd|S)Nz /LIBPATH:r)r<dirrrrlibrary_dir_optionszMSVCCompiler.library_dir_optioncCs tddS)NztjdjdD]*}tjjtjj||}tjj|rH|SqHW|S)NZPathr)rrWrr\rcrdr`rR)r<ZexerCfnrrrrs   zMSVCCompiler.find_exe)rrr)N)rr)NNNrNNN)NrN) NNNNNrNNNN)r)r2r3r4Z compiler_typeZ executablesrrrrrrrZstatic_lib_extensionZshared_lib_extensionZstatic_lib_formatZshared_lib_formatZ exe_extensionr>rrrrrrrrrrrrrrrrrr~,sP  X  V  R + r~l)r)0rWrorOrZdistutils.errorsrrrrrZdistutils.ccompilerrrr Z distutilsr Zdistutils.utilr winregZ OpenKeyExrZEnumKeyr Z EnumValuer'errorrZ HKEY_USERSHKEY_CURRENT_USERHKEY_LOCAL_MACHINEZHKEY_CLASSES_ROOTrplatformmaxsizeZ NATIVE_WIN64r9rBrArrr7rVrZr]rfr}rr~rrrrsL  >. # )  PK!S۬)__pycache__/dir_util.cpython-36.opt-1.pycnu[3 \b@spdZddlZddlZddlmZmZddlmZiadddZ dd d Z dd d Z d dZ dddZ ddZdS)zWdistutils.dir_util Utility functions for manipulating directories and directory trees.N)DistutilsFileErrorDistutilsInternalError)logc Cspt|tstd|ftjj|}g}tjj|s<|dkr@|Stjtjj |rV|Stjj |\}}|g}x6|r|rtjj| rtjj |\}}|j d|qnWx|D]}tjj ||}tjj |} tj| rq|dkrt jd||s`ytj||WnVtk rT} z8| jtjko*tjj|sDtd|| jdfWYdd} ~ XnX|j|dt| <qW|S) aCreate a directory and any missing ancestor directories. If the directory already exists (or if 'name' is the empty string, which means the current directory, which of course exists), then do nothing. Raise DistutilsFileError if unable to create some directory along the way (eg. some sub-path exists, but is a file rather than a directory). If 'verbose' is true, print a one-line summary of each mkdir to stdout. Return the list of directories actually created. z(mkpath: 'name' must be a string (got %r)rrz creating %szcould not create '%s': %sN) isinstancestrrospathnormpathisdir _path_createdgetabspathsplitinsertjoinrinfomkdirOSErrorerrnoZEEXISTrargsappend) namemodeverbosedry_runZ created_dirsheadtailZtailsdZabs_headexcr#*/usr/lib64/python3.6/distutils/dir_util.pymkpaths>       &  r%cCsVt}x(|D] }|jtjj|tjj|q Wx t|D]}t||||dq:WdS)aCreate all the empty directories under 'base_dir' needed to put 'files' there. 'base_dir' is just the name of a directory which doesn't necessarily exist yet; 'files' is a list of filenames to be interpreted relative to 'base_dir'. 'base_dir' + the directory portion of every file in 'files' will be created if it doesn't already exist. 'mode', 'verbose' and 'dry_run' flags are as for 'mkpath()'. )rrN)setaddr r rdirnamesortedr%)Zbase_dirfilesrrrZneed_dirfiledirr#r#r$ create_treePs   r-cCsfddlm}| r,tjj| r,td|ytj|} Wn>tk rx} z"|rVg} ntd|| jfWYdd} ~ XnX|st ||dg} x| D]} tjj || } tjj || }| j drq|otjj | rtj | }|dkrtjd |||stj||| j|qtjj| r>| jt| |||||||d q|| ||||||d | j|qW| S) aCopy an entire directory tree 'src' to a new location 'dst'. Both 'src' and 'dst' must be directory names. If 'src' is not a directory, raise DistutilsFileError. If 'dst' does not exist, it is created with 'mkpath()'. The end result of the copy is that every file in 'src' is copied to 'dst', and directories under 'src' are recursively copied to 'dst'. Return the list of files that were copied or might have been copied, using their output name. The return value is unaffected by 'update' or 'dry_run': it is simply the list of all files under 'src', with the names changed to be under 'dst'. 'preserve_mode' and 'preserve_times' are the same as for 'copy_file'; note that they only apply to regular files, not to directories. If 'preserve_symlinks' is true, symlinks will be copied as symlinks (on platforms that support them!); otherwise (the default), the destination of the symlink will be copied. 'update' and 'verbose' are the same as for 'copy_file'. r) copy_filez&cannot copy tree '%s': not a directoryzerror listing files in '%s': %sN)rz.nfsrzlinking %s -> %s)rr)Zdistutils.file_utilr.r r rrlistdirrstrerrorr%r startswithislinkreadlinkrrsymlinkrextend copy_tree)srcdstZ preserve_modeZpreserve_timesZpreserve_symlinksupdaterrr.nameseZoutputsnZsrc_nameZdst_nameZ link_destr#r#r$r6csH  "      r6cCslxVtj|D]H}tjj||}tjj|rDtjj| rDt||q |jtj|fq W|jtj |fdS)zHelper for remove_tree().N) r r/r rrr2_build_cmdtuplerremovermdir)r cmdtuplesfZreal_fr#r#r$r=s  r=cCs|dkrtjd||rdSg}t||xp|D]h}y2|d|dtjj|d}|tkrdt|=Wq0tk r}ztjd||WYdd}~Xq0Xq0WdS)zRecursively remove an entire directory tree. Any errors are ignored (apart from being reported to stdout if 'verbose' is true). rz'removing '%s' (and everything under it)Nrzerror removing %s: %s) rrr=r r rrrwarn)Z directoryrrr@cmdrr"r#r#r$ remove_trees    rDcCs6tjj|\}}|ddtjkr2||dd}|S)zTake the full path 'path', and make it a relative path. This is useful to make 'path' the second argument to os.path.join(). rrN)r r splitdrivesep)r Zdriver#r#r$ensure_relativesrG)rrr)rrr)rrrrrr)rr)__doc__r rZdistutils.errorsrrZ distutilsrrr%r-r6r=rDrGr#r#r#r$s  ?  D PK!z!  '__pycache__/errors.cpython-36.opt-2.pycnu[3 \ @s4GdddeZGdddeZGdddeZGdddeZGdd d eZGd d d eZGd d d eZGdddeZGdddeZ GdddeZ GdddeZ GdddeZ GdddeZ GdddeZGdddeZGdddeZGd d!d!eZGd"d#d#eZGd$d%d%eZd&S)'c@s eZdZdS)DistutilsErrorN)__name__ __module__ __qualname__rr(/usr/lib64/python3.6/distutils/errors.pyr src@s eZdZdS)DistutilsModuleErrorN)rrrrrrrrsrc@s eZdZdS)DistutilsClassErrorN)rrrrrrrrsrc@s eZdZdS)DistutilsGetoptErrorN)rrrrrrrr sr c@s eZdZdS)DistutilsArgErrorN)rrrrrrrr sr c@s eZdZdS)DistutilsFileErrorN)rrrrrrrr $sr c@s eZdZdS)DistutilsOptionErrorN)rrrrrrrr *sr c@s eZdZdS)DistutilsSetupErrorN)rrrrrrrr 3sr c@s eZdZdS)DistutilsPlatformErrorN)rrrrrrrr8src@s eZdZdS)DistutilsExecErrorN)rrrrrrrr>src@s eZdZdS)DistutilsInternalErrorN)rrrrrrrrCsrc@s eZdZdS)DistutilsTemplateErrorN)rrrrrrrrHsrc@s eZdZdS)DistutilsByteCompileErrorN)rrrrrrrrKsrc@s eZdZdS)CCompilerErrorN)rrrrrrrrOsrc@s eZdZdS)PreprocessErrorN)rrrrrrrrRsrc@s eZdZdS) CompileErrorN)rrrrrrrrUsrc@s eZdZdS)LibErrorN)rrrrrrrrXsrc@s eZdZdS) LinkErrorN)rrrrrrrr\src@s eZdZdS)UnknownFileErrorN)rrrrrrrr`srN) Exceptionrrrr r r r r rrrrrrrrrrrrrrr s$ PK!c0__pycache__/cygwinccompiler.cpython-36.opt-2.pycnu[3 \[@@sddlZddlZddlZddlmZmZmZddlZddlm Z m Z ddl m Z ddl mZddlmZmZmZmZddlmZddlmZdd lmZd d ZGd d d e ZGdddeZdZdZdZddZ ej!dZ"ddZ#ddZ$ddZ%dS)N)PopenPIPE check_output)gen_preprocess_optionsgen_lib_options) UnixCCompiler) write_file)DistutilsExecErrorCCompilerError CompileErrorUnknownFileError)log) LooseVersion)find_executablecCstjjd}|dkr|tj|d|d}|dkr8dgS|dkrFdgS|d krTd gS|d krbd gS|d krpdgStd|dS)NzMSC v. Z1300Zmsvcr70Z1310Zmsvcr71Z1400Zmsvcr80Z1500Zmsvcr90Z1600Zmsvcr100zUnknown MS Compiler version %s )sysversionfind ValueError)Zmsc_posZmsc_verr1/usr/lib64/python3.6/distutils/cygwinccompiler.py get_msvcr?s rc @sNeZdZdZdZdZdZdZdZdZ dd d Z d d Z dddZ dddZ d S)CygwinCCompilercygwinz.oz.az.dllzlib%s%sz%s%sz.exercCstj||||t\}}|jd||f|tk rB|jd|t\|_|_|_ |j|j d|j|j|j f|jdkrd|_ nd|_ |jdkrd}nd }|j d d d d d|j |fd|jdkrdg|_ |jdnt|_ dS)Nz%Python's GCC status: %s (details: %s)zPython's pyconfig.h doesn't seem to support your compiler. Reason: %s. Compiling may fail because of undefined preprocessor macros.z: gcc %s, ld %s, dllwrap %s z2.10.90gccdllwrapz2.13z-sharedz -mdll -staticzgcc -mcygwin -O -Wallzgcc -mcygwin -mdll -O -Wallzg++ -mcygwin -O -Wallz gcc -mcygwinz%s -mcygwin %s)compiler compiler_so compiler_cxx linker_exe linker_soz2.91.57Zmsvcrtz,Consider upgrading to a newer version of gcc)r__init__check_config_hZ debug_print CONFIG_H_OKwarn get_versions gcc_version ld_versionZdllwrap_version compiler_type linker_dllset_executables dll_librariesr)selfverbosedry_runforceZstatusZdetails shared_optionrrrr$ds<      zCygwinCCompiler.__init__cCs|dks|dkrVy|jdd|d|gWqtk rR}zt|WYdd}~XqXnNy"|j|j||d|g|Wn*tk r}zt|WYdd}~XnXdS)Nz.rcz.resZwindresz-iz-o)Zspawnr r r )r/objsrcextZcc_argsextra_postargsZpp_optsmsgrrr_compiles zCygwinCCompiler._compileNcCsRtj| p g} tj|pg}tj|p&g}|j|j|dk oP||jksT|jdkrtjj|d}tjjtjj |\}}tjj ||d}tjj |d|d}dtjj |dg}x|D]}|j |qW|j t ||fd||jd kr| jd |g| jd |gn |j || s*| j d tj||||||||d| | | | | dS) Nrrz.deflibz.az LIBRARY %sZEXPORTSz writing %srz --output-libz--defz-s)copyextendr.Z EXECUTABLEr,ospathdirnamesplitextbasenamejoinappendZexecuterrlink)r/Z target_descZobjectsZoutput_filename output_dirZ librariesZ library_dirsZruntime_library_dirsZexport_symbolsdebugZ extra_preargsr7Z build_tempZ target_langZtemp_dirZdll_nameZ dll_extensionZdef_fileZlib_filecontentsZsymrrrrDs:         zCygwinCCompiler.linkcCs|dkr d}g}x|D]}tjjtjj|\}}||jddgkrTtd||f|rdtjj|}|dkr|jtjj||||j q|jtjj|||j qW|S)NrH.rc.resz"unknown file type '%s' (from '%s'))rJrI) r=r>r@normcaseZsrc_extensionsr rArCrB obj_extension)r/Zsource_filenamesZ strip_dirrEZ obj_namesZsrc_namebaser6rrrobject_filenamess      z CygwinCCompiler.object_filenames)rrr) NNNNNrNNNN)rrH)__name__ __module__ __qualname__r+rLZstatic_lib_extensionZshared_lib_extensionZstatic_lib_formatZshared_lib_formatZ exe_extensionr$r9rDrNrrrrrYs ; Krc@seZdZdZdddZdS)Mingw32CCompilerZmingw32rc Csxtj|||||jdkr d}nd}|jdkr4d}nd}trFtd|jdd d d d |j||fd g|_t |_dS)Nz2.13z-sharedz -mdll -staticz2.91.57z--entry _DllMain@12rHz1Cygwin gcc cannot be used with --compiler=mingw32z gcc -O -Wallzgcc -mdll -O -Wallz g++ -O -Wallrz%s %s %s)rr r!r"r#) rr$r*r) is_cygwingccr r-r,r.r)r/r0r1r2r3Z entry_pointrrrr$s&   zMingw32CCompiler.__init__N)rrr)rOrPrQr+r$rrrrrRsrRokznot okZ uncertaincCsddlm}dtjkrtdfS|j}y@t|}z(d|jkrJtd|fStd|fSWd|j XWn.t k r}zt d||j ffSd}~XnXdS) Nr) sysconfigZGCCzsys.version mentions 'GCC'Z__GNUC__z'%s' mentions '__GNUC__'z '%s' does not mention '__GNUC__'zcouldn't read '%s': %s) distutilsrUrrr&get_config_h_filenameopenreadCONFIG_H_NOTOKcloseOSErrorCONFIG_H_UNCERTAINstrerror)rUfnconfig_hexcrrrr%Hs    r%s(\d+\.\d+(\.\d+)*)c Csl|jd}t|dkrdSt|dtdj}z |j}Wd|jXtj|}|dkrZdSt |j dj S)NrT)shellstdoutr) splitrrrrcrYr[ RE_VERSIONsearchrgroupdecode)cmd executableout out_stringresultrrr_find_exe_versionus     rncCsdddg}tdd|DS)Nzgcc -dumpversionzld -vzdllwrap --versioncSsg|] }t|qSr)rn).0rirrr sz get_versions..)tuple)Zcommandsrrrr(s r(cCstddg}|jjdS)Nrz -dumpmachinescygwin)rstripendswith)rlrrrrSs rS)&r=rr; subprocessrrrreZdistutils.ccompilerrrZdistutils.unixccompilerrZdistutils.file_utilrZdistutils.errorsr r r r rVr Zdistutils.versionrZdistutils.spawnrrrrRr&rZr]r%compilerernr(rSrrrr0s.     ;1+ PK!#611.__pycache__/_msvccompiler.cpython-36.opt-2.pycnu[3 \KT@sddlZddlZddlZddlZddlZddlmZmZmZm Z m Z ddl m Z m Z ddlmZddlmZddlmZddZd d Zd d Zd dZdddZdddZedgZGddde ZdS)N)DistutilsExecErrorDistutilsPlatformError CompileErrorLibError LinkError) CCompilergen_lib_options)log) get_platform)countc$CsytjtjdtjtjBd}Wntk r<tjddSXd}d}|xtD]}ytj ||\}}}Wntk rPYnX|rT|tj krTt j j |rTytt|}Wnttfk rwTYnX|dkrT||krT||}}qTWWdQRX||fS)Nz'Software\Microsoft\VisualStudio\SxS\VC7)accesszVisual C++ is not registeredr)NN)winregZ OpenKeyExHKEY_LOCAL_MACHINEZKEY_READZKEY_WOW64_32KEYOSErrorr debugr Z EnumValueZREG_SZospathisdirintfloat ValueError TypeError)key best_versionbest_dirivvc_dirZvtversionr //usr/lib64/python3.6/distutils/_msvccompiler.py _find_vc2015s0  r"c sddlddl}d }d}gfdd}|j|d}|j|jxD]~\}}}}d|krLtjj|ddd} tjj| sqLytd d |j d D} Wnt t fk rwLYnX| |krL| | }}qLWy |d}Wnt k rd}YnX||fS) NrcsjjdS)N)extendfindallr )_distutils_findvs all_packagesr r!_getallDsz_find_vc2017.._getall)targetz1Microsoft.VisualStudio.Component.VC.Tools.x86.x64ZVCZ AuxiliaryZBuildcss|]}t|VqdS)N)r).0rr r r! Psz_find_vc2017...)r) r% threadingZThreadstartjoinrrrtuplesplitrr IndexError) r,rrr'tnameZ version_strrZpackagesrrr )r%r&r! _find_vc2017:s2    r4cCs t\}}d}d|krdnd}|rztjj|ddddddd }yd dl}|j|d d d}Wntttfk rxd}YnX|st\}}|rtjj|d|dd }|st j ddStjj|d}tjj |st j d|dS| ptjj | rt j d|d}||fS)Namd64Zx64x86z..ZredistZMSVCz**zMicrosoft.VC141.CRTzvcruntime140.dllrT) recursivezMicrosoft.VC140.CRTz$No suitable Visual C++ version foundz vcvarsall.batz%s cannot be found)NN)NN) r4rrr.glob ImportErrorr LookupErrorr"r risfile) plat_specrr vcruntimeZvcruntime_platZvcredistr: vcvarsallr r r!_find_vcvarsall[s6        rAcCstjdrddtjjDSt|\}}|s6tdy&tjdj||tj dj ddd }Wn@tj k r}z"t j |jtd j|jWYdd}~XnXd dd d |jDD}|r||d<|S)NZDISTUTILS_USE_SDKcSsi|]\}}||jqSr )lower)r)rvaluer r r! sz_get_vc_env..zUnable to find vcvarsall.batzcmd /u /c "{}" {} && set)stderrzutf-16lereplace)errorszError executing {}cSs$i|]\}}}|r|r||jqSr )rB)r)r_rCr r r!rDscss|]}|jdVqdS)=N) partition)r)liner r r!r*sz_get_vc_env..py_vcruntime_redist)rgetenvenvironitemsrAr subprocessZ check_outputformatZSTDOUTdecodeZCalledProcessErrorr erroroutputcmd splitlines)r>r@r?outexcenvr r r! _get_vc_env}s(     rZcCsN|stjdjtj}x2|D]*}tjjtjj||}tjj|r|SqW|S)Nr)rrMr0pathseprr.abspathr=)Zexepathspfnr r r! _find_exes   r`r6Z x86_amd64)Zwin32z win-amd64zvcruntime140.dllc seZdZdZiZdgZdddgZdgZdgZeeeeZ dZ d Z d Z d Z d ZZd Zd)ddZd*ddZd+ddZd,ddZd-ddZd.ddZddZfdd Zd!d"Zd#d$Zd%d&Zd/d'd(ZZS)0 MSVCCompilerZmsvcz.cz.ccz.cppz.cxxz.rcz.mcz.resz.objz.libz.dllz%s%sz.exercCs tj||||d|_d|_dS)NF)r__init__ plat_name initialized)selfverboseZdry_runZforcer r r!rbszMSVCCompiler.__init__NcCs>|dkrt}|tkr(tdjttt|}t|}|sDtd|jdd|_|jjt j }t d||_ t d||_ t d||_t d||_t d ||_t d ||_|jd d|_x2|jd djt j D]}|r|j|jt jqWx6|jd djt j D]}|r|j|jt jqWd|_dddddg|_|jj|jrJdndddddddg|_dddg}|js~|jd$ddddg}|d%|_|d&|_|d'|_|d(|_||_ ||_!t"j#df|jt"j#d"f|jt"j#d#f|jt"j$df|jt"j$d"f|jt"j$d#f|jt"j%df|j t"j%d"f|j t"j%d#f|j!i |_&d#|_'dS))Nz--plat-name must be one of {}z7Unable to find a compatible Visual Studio installation.rzcl.exezlink.exezlib.exezrc.exezmc.exezmt.exerLincludelibz/nologoz/Oxz/W3z/GLz/DNDEBUGz/MDz/MTz/Odz/MDdz/Ziz/D_DEBUGz/INCREMENTAL:NOz/LTCG/nodefaultlib:libucrt.libucrt.libz /DEBUG:FULL/MANIFEST:EMBED,ID=1/DLL/MANIFEST:EMBED,ID=2/MANIFESTUAC:NOFT)rjrk)rl)rl)rmrnro)rmrnro)(r PLAT_TO_VCVARSrrQr/rZget_pathsr0rr[r`cclinkerrircmcZmt_vcruntime_redistZadd_include_dirrstripsepZadd_library_dirZpreprocess_optionscompile_optionsappendcompile_options_debugr#Z ldflags_exeZldflags_exe_debugZldflags_sharedZldflags_shared_debugZldflags_staticZldflags_static_debugrZ EXECUTABLEZ SHARED_OBJECTZSHARED_LIBRARY_ldflagsrd)rercr>Zvc_envr]dirldflagsZ ldflags_debugr r r! initializes`                      zMSVCCompiler.initializergcsTfddjDfddjjDp4dfdd}tt||S)Ncsi|] }j|qSr ) obj_extension)r)ext)rer r!rD8sz1MSVCCompiler.object_filenames..csi|] }j|qSr ) res_extension)r)r)rer r!rD9srgc stjj|\}}r"tjj|}n2tjj|\}}|jtjjtjjfrT|dd}ytjj||St k rt dj |YnXdS)Nr8zDon't know how to compile {}) rrsplitextbasename splitdrive startswithryaltsepr.r<rrQ)r^baserrH)ext_map output_dir strip_dirr r! make_out_path>s z4MSVCCompiler.object_filenames..make_out_path)src_extensions_rc_extensions_mc_extensionslistmap)reZsource_filenamesrrrr )rrrerr!object_filenames3s zMSVCCompiler.object_filenamesc Cs|js|j|j||||||} | \}} }} } |p6g} | jd|rT| j|jn | j|jd}x| D]}y| |\}}Wntk rwlYnX|rtj j |}||j krd|}nD||j krd|}d}n*||j krB|}d|}y|j|jg| ||gWqltk r<}zt|WYdd}~XqlXqln||jkrtj j|}tj j|}y\|j|jd|d||gtj jtj j|\}}tj j||d }|j|jd||gWqltk r}zt|WYdd}~XqlXqlntd j|||jg| | }|r$|jd |j||jd ||j|y|j|Wqltk r}zt|WYdd}~XqlXqlW| S) Nz/cFz/Tcz/TpTz/foz-hz-rz.rcz"Don't know how to compile {} to {}z/EHscz/Fo)rdrZ_setup_compiler{r#r|rzKeyErrorrrr\ _c_extensions_cpp_extensionsrspawnrurrrdirnamervrrr.rQrs)reZsourcesrZmacrosZ include_dirsr extra_preargsextra_postargsZdependsZ compile_infoobjectsZpp_optsZbuildZ compile_optsZ add_cpp_optsobjsrcrZ input_optZ output_optmsgZh_dirZrc_dirrrHZrc_fileargsr r r!compileTsn               zMSVCCompiler.compilec Cs|js|j|j||\}}|j||d}|j||r|d|g}|rJy,tjd|jdj||j |jg|Wqt k r}zt |WYdd}~XqXn tjd|dS)N)rz/OUT:zExecuting "%s" %s zskipping %s (up-to-date)) rdr_fix_object_argslibrary_filename _need_linkr rrir.rrr) rerZoutput_libnamerr target_langoutput_filenameZlib_argsrr r r!create_static_libs zMSVCCompiler.create_static_libcCs|js|j|j||\}}|j|||}|\}}}|rL|jdt|t||||}|dk rptjj ||}|j ||r|j || f}dd|pgD}||||d|g}tjj |d} |dk r tjj tjj|\}}tjj | |j|}|jd|| r| |dd<| r.|j| tjj tjj|}|j|y6tjd|jdj ||j|jg||j|Wn,tk r}zt|WYdd}~XnXn tjd |dS) Nz5I don't know what to do with 'runtime_library_dirs': cSsg|] }d|qS)z/EXPORT:r )r)Zsymr r r! sz%MSVCCompiler.link..z/OUT:rz/IMPLIB:zExecuting "%s" %srzskipping %s (up-to-date))rdrrZ _fix_lib_argswarnstrrrrr.rr}rrrrr{r#r\Zmkpathr rrtr_copy_vcruntimerr)reZ target_descrrrZ librariesZ library_dirsZruntime_library_dirsZexport_symbolsrrrZ build_temprZ fixed_argsZlib_optsrZ export_optsZld_argsZdll_nameZdll_extZ implib_filerr r r!linksN       zMSVCCompiler.linkcCs`|j}| stjj| rdStjj|jtkr6dStjd|t j ||}tj |t j dS)Nz Copying "%s")rwrrr=rrB _BUNDLED_DLLSr rshutilcopychmodstatS_IWRITE)rerr?r r r!rs  zMSVCCompiler._copy_vcruntimec s4tjd}z|jtjd<tj|S|tjd<XdS)Nr)rrMrrrNsuperr)rerUZold_path) __class__r r!rs    zMSVCCompiler.spawncCsd|S)Nz /LIBPATH:r )rer~r r r!library_dir_option&szMSVCCompiler.library_dir_optioncCs tddS)Nz:don't know how to set runtime library search path for MSVC)r)rer~r r r!runtime_library_dir_option)sz'MSVCCompiler.runtime_library_dir_optioncCs |j|S)N)r)rerir r r!library_option-szMSVCCompiler.library_optioncCs`|r|d|g}n|g}xB|D]6}x0|D](}tjj||j|}tjj|r(|Sq(WqWdSdS)NZ_d)rrr.rr=)redirsrirZ try_namesr~r3Zlibfiler r r!find_library_file0s    zMSVCCompiler.find_library_file)rrr)N)rrg)NNNrNNN)NrN) NNNNNrNNNN)r)__name__ __module__ __qualname__Z compiler_typeZ executablesrrrrrrrZstatic_lib_extensionZshared_lib_extensionZstatic_lib_formatZshared_lib_formatZ exe_extensionrbrrrrrrrrrrr __classcell__r r )rr!rasL   T  [  9 ra)N)rrrrPrZdistutils.errorsrrrrrZdistutils.ccompilerrrZ distutilsr Zdistutils.utilr itertoolsr r"r4rArZr`rp frozensetrrar r r r!s$   !"  PK!^zz#__pycache__/__init__.cpython-36.pycnu[3 \@s&dZddlZejdejjdZdS)zdistutils The main package for the Python Module Distribution Utilities. Normally used from a setup script as from distutils.core import setup setup (...) N )__doc__sysversionindex __version__rr*/usr/lib64/python3.6/distutils/__init__.py sPK!NN.__pycache__/unixccompiler.cpython-36.opt-2.pycnu[3 Ii:@sddlZddlZddlZddlmZddlmZddlmZm Z m Z ddl m Z m Z mZmZddlmZejdkrzddlZGdd d eZdS) N) sysconfig)newer) CCompilergen_preprocess_optionsgen_lib_options)DistutilsExecError CompileErrorLibError LinkError)logdarwinc seZdZdZddgdgdgddgdgddgddZejddd krNd ged <d d d dddgZdZdZ dZ dZ dZ dZ ZZeZejdkrdZfddZd.ddZddZd/d d!Zd0d"d#Zd$d%Zd&d'Zd(d)Zd*d+Zd1d,d-ZZS)2 UnixCCompilerZunixNZccz-sharedarz-cr) preprocessorcompiler compiler_so compiler_cxx linker_so linker_exearchiverranlibr rz.cz.Cz.ccz.cxxz.cppz.mz.oz.az.soz.dylibz.tbdzlib%s%scygwinz.execs@tj|||\}}}tjd}|r6||kr6|j||||fS)NLIBDIR)super _fix_lib_argsrget_config_varremove)self libraries library_dirsruntime_library_dirsZlibdir) __class__//usr/lib64/python3.6/distutils/unixccompiler.pyrUs    zUnixCCompiler._fix_lib_argsc Cs|jd||}|\}}}t||} |j| } |r>| jd|g|rN|| dd<|r\| j|| j||js~|dks~t||r|r|jtj j |y|j | Wn*t k r} zt | WYdd} ~ XnXdS)Nz-or)Z_fix_compile_argsrrextendappendZforcermkpathospathdirnamespawnrr) rsourceZ output_fileZmacrosZ include_dirs extra_preargsextra_postargs fixed_argsignorepp_optsZpp_argsmsgr#r#r$ preprocess^s$      zUnixCCompiler.preprocessc Csp|j}tjdkr tj|||}y |j|||d|g|Wn*tk rj}zt|WYdd}~XnXdS)Nr z-o)rsysplatform _osx_supportcompiler_fixupr+rr) robjsrcZextZcc_argsr.r1rr2r#r#r$_compilexs   zUnixCCompiler._compilercCs|j||\}}|j||d}|j||r|jtjj||j|j|g||j |j ry|j|j |gWqt k r}zt |WYdd}~XqXn t jd|dS)N) output_dirzskipping %s (up-to-date))_fix_object_argslibrary_filename _need_linkr'r(r)r*r+robjectsrrr r debug)rr?Zoutput_libnamer;r@ target_langoutput_filenamer2r#r#r$create_static_libs zUnixCCompiler.create_static_libcCs|j||\}}|j|||}|\}}}t||||}t|ttdfsPtd|dk rftjj ||}|j ||r||j |d|g}| rdg|dd<| r| |dd<| r|j | |j tjj|y|tjkr|jdd}n|jdd}| dkrR|jrRd}tjj|ddkrDd}xd||krB|d7}q(W|j|||<tjd krjtj||}|j||Wn,tk r}zt|WYdd}~XnXn tjd |dS) Nz%'output_dir' must be a string or Nonez-oz-grzc++env=r zskipping %s (up-to-date))r<rr isinstancestrtype TypeErrorr(r)joinr>r?r%r'r*rZ EXECUTABLErrrbasenamer4r5r6r7r+rr r r@)rZ target_descr?rBr;rr r!Zexport_symbolsr@r-r.Z build_temprAr/Zlib_optsZld_argsZlinkerir2r#r#r$linksH      zUnixCCompiler.linkcCsd|S)Nz-Lr#)rdirr#r#r$library_dir_optionsz UnixCCompiler.library_dir_optioncCsd|kpd|kS)Ngcczg++r#)rZ compiler_namer#r#r$_is_gccszUnixCCompiler._is_gcccCstjjtjd}tjdddkr,d|StjdddkrFd|Stjddd krz|j|rnd d|gSd d|gStjddd kstjddd krd|gS|j|rtjddkrd|Sd|Snd|SdS)NCCrr z-LZfreebsdz -Wl,-rpath=zhp-uxz-Wl,+sz+sZirix646Zosf1V5z-rpathGNULDyesz-Wl,--enable-new-dtags,-Rz-Wl,-Rz-R)r(r)rLrrr4r5rR)rrOrr#r#r$runtime_library_dir_options    $  z(UnixCCompiler.runtime_library_dir_optioncCsd|S)Nz-lr#)rlibr#r#r$library_option szUnixCCompiler.library_optioncCs|j|dd}|j|dd}|j|dd}|j|dd}tjdkrptjd}tjd|} | dkrfd } n | jd } x|D]} tj j | |} tj j | |} tj j | |}tj j | |}tjdko| j d s| j d o| j d  rBtj j | | d d|} tj j | | d d|} tj j | | d d|}tj j | | d d|}tj j | rT| Stj j |rf|Stj j | rx| Stj j |rx|SqxWdS)Nshared)Zlib_typedylib xcode_stubstaticr CFLAGSz-isysroot\s+(\S+)/rEz/System/z/usr/z /usr/local/) r=r4r5rrresearchgroupr(r)rK startswithexists)rdirsrYr@Zshared_fZdylib_fZ xcode_stub_fZstatic_fZcflagsmZsysrootrOr[r\r^r]r#r#r$find_library_file s>       zUnixCCompiler.find_library_file)NNNNN)NrN) NNNNNrNNNN)r)__name__ __module__ __qualname__Z compiler_typeZ executablesr4r5Zsrc_extensionsZ obj_extensionZstatic_lib_extensionZshared_lib_extensionZdylib_lib_extensionZxcode_stub_lib_extensionZstatic_lib_formatZshared_lib_formatZdylib_lib_formatZxcode_stub_lib_formatZ exe_extensionrr3r:rCrNrPrRrXrZrh __classcell__r#r#)r"r$r -sF       6,r )r(r4raZ distutilsrZdistutils.dep_utilrZdistutils.ccompilerrrrZdistutils.errorsrrr r r r5r6r r#r#r#r$s    PK!a"-__pycache__/archive_util.cpython-36.opt-1.pycnu[3 \F! @sDdZddlZddlmZddlZy ddlZWnek rDdZYnXddlmZddl m Z ddl m Z ddl mZyddlmZWnek rdZYnXydd lmZWnek rdZYnXd d Zd d Zd!ddZd"ddZed#gdfed$gdfed%gdfed&gdfed'gdfegdfdZddZd(dd ZdS))zodistutils.archive_util Utility functions for creating archive files (tarballs, zip files, that sort of thing).N)warn)DistutilsExecError)spawn)mkpath)log)getpwnam)getgrnamc CsNtdks|dkrdSy t|}Wntk r8d}YnX|dk rJ|dSdS)z"Returns a gid, given a group name.N)rKeyError)nameresultr ./usr/lib64/python3.6/distutils/archive_util.py_get_gids  rc CsNtdks|dkrdSy t|}Wntk r8d}YnX|dk rJ|dSdS)z"Returns an uid, given a user name.Nr )rr )r r r r r_get_uid+s  rgzipc s.dddddd}dddd d }|d k r:||jkr:td |d } |dkrZ| |j|d7} ttjj| |ddd l} tj dt t fdd} |s| j | d||} z| j || dWd | jX|dkr*tdt| ||} tjdkr|| | g}n |d| g}t||d| S| S)a=Create a (possibly compressed) tar file from all the files under 'base_dir'. 'compress' must be "gzip" (the default), "bzip2", "xz", "compress", or None. ("compress" will be deprecated in Python 3.2) 'owner' and 'group' can be used to define an owner and a group for the archive that is being built. If not provided, the current owner and group will be used. The output tar file will be named 'base_dir' + ".tar", possibly plus the appropriate compression extension (".gz", ".bz2", ".xz" or ".Z"). Returns the output filename. Zgzbz2xz)rbzip2rNcompressz.gzz.bz2z.xzz.Z)rrrrNzKbad value for 'compress': must be None, 'gzip', 'bzip2', 'xz' or 'compress'z.tarr)dry_runrzCreating tar archivecs,dk r|_|_dk r(|_|_|S)N)gidZgnameuiduname)Ztarinfo)rgroupownerrr r _set_uid_gidasz"make_tarball.._set_uid_gidzw|%s)filterz'compress' will be deprecated.Zwin32z-f)keys ValueErrorgetrospathdirnametarfilerinforropenaddcloserPendingDeprecationWarningsysplatformr) base_namebase_dirrverboserrrZtar_compressionZ compress_extZ archive_namer%rtarZcompressed_namecmdr )rrrrr make_tarball7s<          r2c Cs|d}ttjj||dtdkrp|r.d}nd}ytd|||g|dWn tk rjtd|YnXn:tjd|||sytj |d tj d }Wn&t k rtj |d tj d }YnX|tj krtjjtjj|d }|j||tjd |xtj|D]\}} } x>| D]6} tjjtjj|| d }|j||tjd |qWxJ| D]B} tjjtjj|| }tjj|rV|j||tjd |qVWqW|j|S) avCreate a zip file from all the files under 'base_dir'. The output zip file will be named 'base_name' + ".zip". Uses either the "zipfile" Python module (if available) or the InfoZIP "zip" utility (if installed and found on the default search path). If neither tool is available, raises DistutilsExecError. Returns the name of the output zip file. z.zip)rNz-rz-rqzipzkunable to create zip file '%s': could neither import the 'zipfile' module nor find a standalone zip utilityz#creating '%s' and adding '%s' to itw)Z compressionrz adding '%s')rr"r#r$zipfilerrrr&ZZipFileZ ZIP_DEFLATED RuntimeErrorZ ZIP_STOREDcurdirnormpathjoinwritewalkisfiler)) r-r.r/rZ zip_filenameZ zipoptionsr3r#dirpathZdirnames filenamesr r r r make_zipfilesJ          r?rzgzip'ed tar-filerzbzip2'ed tar-filerzxz'ed tar-filezcompressed tar filezuncompressed tar filezZIP file)ZgztarZbztarZxztarZztarr0r3cCsx|D]}|tkr|SqWdS)zqReturns the first format from the 'format' list that is unknown. If all formats are known, returns None N)ARCHIVE_FORMATS)Zformatsformatr r rcheck_archive_formatss rBcCstj}|dk r6tjd|tjj|}|s6tj||dkrDtj}d|i} y t|} Wn t k rxt d|YnX| d} x| dD]\} } | | | <qW|dkr|| d<|| d <z| ||f| }Wd|dk rtjd |tj|X|S) aCreate an archive file (eg. zip or tar). 'base_name' is the name of the file to create, minus any format-specific extension; 'format' is the archive format: one of "zip", "tar", "gztar", "bztar", "xztar", or "ztar". 'root_dir' is a directory that will be the root directory of the archive; ie. we typically chdir into 'root_dir' before creating the archive. 'base_dir' is the directory where we start archiving from; ie. 'base_dir' will be the common prefix of all files and directories in the archive. 'root_dir' and 'base_dir' both default to the current directory. Returns the name of the archive file. 'owner' and 'group' are used when creating a tar archive. By default, uses the current owner and group. Nzchanging into '%s'rzunknown archive format '%s'rr3rrzchanging back to '%s') r"getcwdrdebugr#abspathchdirr7r@r r )r-rAZroot_dirr.r/rrrZsave_cwdkwargsZ format_infofuncargvalfilenamer r r make_archives2       rM)rrrNN)rr)rr)rr)rr)rr)rN)NNrrNN)__doc__r"warningsrr+r5 ImportErrorZdistutils.errorsrZdistutils.spawnrZdistutils.dir_utilrZ distutilsrpwdrZgrprrrr2r?r@rBrMr r r rsB            G =      PK!^zz)__pycache__/__init__.cpython-36.opt-1.pycnu[3 \@s&dZddlZejdejjdZdS)zdistutils The main package for the Python Module Distribution Utilities. Normally used from a setup script as from distutils.core import setup setup (...) N )__doc__sysversionindex __version__rr*/usr/lib64/python3.6/distutils/__init__.py sPK! ) #__pycache__/dep_util.cpython-36.pycnu[3 \ @s6dZddlZddlmZddZddZd d d ZdS) zdistutils.dep_util Utility functions for simple, timestamp-based dependency of files and groups of files; also, function based entirely on such timestamp dependency analysis.N)DistutilsFileErrorcCs`tjj|s tdtjj|tjj|s0dSddlm}tj||}tj||}||kS)aReturn true if 'source' exists and is more recently modified than 'target', or if 'source' exists and 'target' doesn't. Return false if both exist and 'target' is the same age or younger than 'source'. Raise DistutilsFileError if 'source' does not exist. zfile '%s' does not existr)ST_MTIME)ospathexistsrabspathstatr)sourcetargetrZmtime1Zmtime2r */usr/lib64/python3.6/distutils/dep_util.pynewer s   rcCslt|t|krtdg}g}xBtt|D]2}t||||r.|j|||j||q.W||fS)zWalk two filename lists in parallel, testing if each source is newer than its corresponding target. Return a pair of lists (sources, targets) where source is newer than target, according to the semantics of 'newer()'. z+'sources' and 'targets' must be same length)len ValueErrorrangerappend)sourcesZtargetsZ n_sourcesZ n_targetsir r r newer_pairwise srerrorcCstjj|sdSddlm}tj||}xX|D]L}tjj|sb|dkrJn|dkrVq0n |dkrbdStj||}||kr0dSq0WdSdS)aReturn true if 'target' is out-of-date with respect to any file listed in 'sources'. In other words, if 'target' exists and is newer than every file in 'sources', return false; otherwise return true. 'missing' controls what we do when a source file is missing; the default ("error") is to blow up with an OSError from inside 'stat()'; if it is "ignore", we silently drop any missing source files; if it is "newer", any missing source files make us assume that 'target' is out-of-date (this is handy in "dry-run" mode: it'll make you pretend to carry out commands that wouldn't work because inputs are missing, but that doesn't matter because you're not actually going to run the commands). rr)rrignorerN)rrrr r)rr ZmissingrZ target_mtimer source_mtimer r r newer_group6s     r)r)__doc__rZdistutils.errorsrrrrr r r r s  PK!a"'__pycache__/archive_util.cpython-36.pycnu[3 \F! @sDdZddlZddlmZddlZy ddlZWnek rDdZYnXddlmZddl m Z ddl m Z ddl mZyddlmZWnek rdZYnXydd lmZWnek rdZYnXd d Zd d Zd!ddZd"ddZed#gdfed$gdfed%gdfed&gdfed'gdfegdfdZddZd(dd ZdS))zodistutils.archive_util Utility functions for creating archive files (tarballs, zip files, that sort of thing).N)warn)DistutilsExecError)spawn)mkpath)log)getpwnam)getgrnamc CsNtdks|dkrdSy t|}Wntk r8d}YnX|dk rJ|dSdS)z"Returns a gid, given a group name.N)rKeyError)nameresultr ./usr/lib64/python3.6/distutils/archive_util.py_get_gids  rc CsNtdks|dkrdSy t|}Wntk r8d}YnX|dk rJ|dSdS)z"Returns an uid, given a user name.Nr )rr )r r r r r_get_uid+s  rgzipc s.dddddd}dddd d }|d k r:||jkr:td |d } |dkrZ| |j|d7} ttjj| |ddd l} tj dt t fdd} |s| j | d||} z| j || dWd | jX|dkr*tdt| ||} tjdkr|| | g}n |d| g}t||d| S| S)a=Create a (possibly compressed) tar file from all the files under 'base_dir'. 'compress' must be "gzip" (the default), "bzip2", "xz", "compress", or None. ("compress" will be deprecated in Python 3.2) 'owner' and 'group' can be used to define an owner and a group for the archive that is being built. If not provided, the current owner and group will be used. The output tar file will be named 'base_dir' + ".tar", possibly plus the appropriate compression extension (".gz", ".bz2", ".xz" or ".Z"). Returns the output filename. Zgzbz2xz)rbzip2rNcompressz.gzz.bz2z.xzz.Z)rrrrNzKbad value for 'compress': must be None, 'gzip', 'bzip2', 'xz' or 'compress'z.tarr)dry_runrzCreating tar archivecs,dk r|_|_dk r(|_|_|S)N)gidZgnameuiduname)Ztarinfo)rgroupownerrr r _set_uid_gidasz"make_tarball.._set_uid_gidzw|%s)filterz'compress' will be deprecated.Zwin32z-f)keys ValueErrorgetrospathdirnametarfilerinforropenaddcloserPendingDeprecationWarningsysplatformr) base_namebase_dirrverboserrrZtar_compressionZ compress_extZ archive_namer%rtarZcompressed_namecmdr )rrrrr make_tarball7s<          r2c Cs|d}ttjj||dtdkrp|r.d}nd}ytd|||g|dWn tk rjtd|YnXn:tjd|||sytj |d tj d }Wn&t k rtj |d tj d }YnX|tj krtjjtjj|d }|j||tjd |xtj|D]\}} } x>| D]6} tjjtjj|| d }|j||tjd |qWxJ| D]B} tjjtjj|| }tjj|rV|j||tjd |qVWqW|j|S) avCreate a zip file from all the files under 'base_dir'. The output zip file will be named 'base_name' + ".zip". Uses either the "zipfile" Python module (if available) or the InfoZIP "zip" utility (if installed and found on the default search path). If neither tool is available, raises DistutilsExecError. Returns the name of the output zip file. z.zip)rNz-rz-rqzipzkunable to create zip file '%s': could neither import the 'zipfile' module nor find a standalone zip utilityz#creating '%s' and adding '%s' to itw)Z compressionrz adding '%s')rr"r#r$zipfilerrrr&ZZipFileZ ZIP_DEFLATED RuntimeErrorZ ZIP_STOREDcurdirnormpathjoinwritewalkisfiler)) r-r.r/rZ zip_filenameZ zipoptionsr3r#dirpathZdirnames filenamesr r r r make_zipfilesJ          r?rzgzip'ed tar-filerzbzip2'ed tar-filerzxz'ed tar-filezcompressed tar filezuncompressed tar filezZIP file)ZgztarZbztarZxztarZztarr0r3cCsx|D]}|tkr|SqWdS)zqReturns the first format from the 'format' list that is unknown. If all formats are known, returns None N)ARCHIVE_FORMATS)Zformatsformatr r rcheck_archive_formatss rBcCstj}|dk r6tjd|tjj|}|s6tj||dkrDtj}d|i} y t|} Wn t k rxt d|YnX| d} x| dD]\} } | | | <qW|dkr|| d<|| d <z| ||f| }Wd|dk rtjd |tj|X|S) aCreate an archive file (eg. zip or tar). 'base_name' is the name of the file to create, minus any format-specific extension; 'format' is the archive format: one of "zip", "tar", "gztar", "bztar", "xztar", or "ztar". 'root_dir' is a directory that will be the root directory of the archive; ie. we typically chdir into 'root_dir' before creating the archive. 'base_dir' is the directory where we start archiving from; ie. 'base_dir' will be the common prefix of all files and directories in the archive. 'root_dir' and 'base_dir' both default to the current directory. Returns the name of the archive file. 'owner' and 'group' are used when creating a tar archive. By default, uses the current owner and group. Nzchanging into '%s'rzunknown archive format '%s'rr3rrzchanging back to '%s') r"getcwdrdebugr#abspathchdirr7r@r r )r-rAZroot_dirr.r/rrrZsave_cwdkwargsZ format_infofuncargvalfilenamer r r make_archives2       rM)rrrNN)rr)rr)rr)rr)rr)rN)NNrrNN)__doc__r"warningsrr+r5 ImportErrorZdistutils.errorsrZdistutils.spawnrZdistutils.dir_utilrZ distutilsrpwdrZgrprrrr2r?r@rBrMr r r rsB            G =      PK! __pycache__/debug.cpython-36.pycnu[3 \@sddlZejjdZdS)NZDISTUTILS_DEBUG)osenvirongetDEBUGrr'/usr/lib64/python3.6/distutils/debug.pysPK!=&&#__pycache__/filelist.cpython-36.pycnu[3 \ 2@sdZddlZddlZddlZddlZddlmZddlmZm Z ddl m Z GdddZ dd Z ejfd d Zd d ZdddZdS)zsdistutils.filelist Provides the FileList class, used for poking about the filesystem and building lists of files. N) convert_path)DistutilsTemplateErrorDistutilsInternalError)logc@s|eZdZdZdddZddZejfddZd d Z d d Z d dZ ddZ ddZ ddZddZdddZdddZdS) FileListaA list of files built by on exploring the filesystem and filtered by applying various patterns to what we find there. Instance attributes: dir directory from which files will be taken -- only used if 'allfiles' not supplied to constructor files list of filenames currently being built/filtered/manipulated allfiles complete list of files under consideration (ie. without any filtering applied) NcCsd|_g|_dS)N)allfilesfiles)selfwarn debug_printr */usr/lib64/python3.6/distutils/filelist.py__init__szFileList.__init__cCs ||_dS)N)r)r rr r r set_allfiles#szFileList.set_allfilescCst||_dS)N)findallr)r dirr r r r&szFileList.findallcCsddlm}|rt|dS)z~Print 'msg' to stdout if the global DEBUG (taken from the DISTUTILS_DEBUG environment variable) flag is true. r)DEBUGN)Zdistutils.debugrprint)r msgrr r r r )s zFileList.debug_printcCs|jj|dS)N)rappend)r itemr r r r3szFileList.appendcCs|jj|dS)N)rextend)r itemsr r r r6szFileList.extendcCs@tttjj|j}g|_x |D]}|jjtjj|q WdS)N)sortedmapospathsplitrrjoin)r Zsortable_filesZ sort_tupler r r sort9s z FileList.sortcCsDx>tt|jdddD]$}|j||j|dkr|j|=qWdS)Nr)rangelenr)r ir r r remove_duplicatesCszFileList.remove_duplicatescCs|j}|d}d}}}|dkrTt|dkr ...cSsg|] }t|qSr )r).0wr r r Wsz1FileList._parse_template_line..r recursive-includerecursive-excludez,'%s' expects ...cSsg|] }t|qSr )r)r+r,r r r r-]sgraftprunez#'%s' expects a single zunknown action '%s')r&r'r(r))r.r/)r1r2)rr#rr)r lineZwordsactionpatternsr dir_patternr r r _parse_template_lineLs,         zFileList._parse_template_linecCsX|j|\}}}}|dkrZ|jddj|x&|D]}|j|dds4tjd|q4Wn|dkr|jddj|x&|D]}|j|dds|tjd |q|Wn|d kr|jd dj|x&|D]}|j|d dstjd |qWnj|dkr8|jddj|x*|D]"}|j|d dstjd|qWn|dkr|jd|dj|fx,|D]$}|j||ds`tjd||q`Wn|dkr|jd|dj|fx|D]$}|j||dstjd||qWnx|dkr|jd||jd|dsTtjd|nB|dkrH|jd||jd|dsTtjd|n td|dS)Nr&zinclude  r )anchorz%warning: no files found matching '%s'r'zexclude z9warning: no previously-included files found matching '%s'zglobal-includezglobal-include rz>warning: no files found matching '%s' anywhere in distributionzglobal-excludezglobal-exclude zRwarning: no previously-included files matching '%s' found anywhere in distributionzrecursive-includezrecursive-include %s %s)prefixz:warning: no files found matching '%s' under directory '%s'zrecursive-excludezrecursive-exclude %s %szNwarning: no previously-included files matching '%s' found under directory '%s'r1zgraft z+warning: no directories found matching '%s'r2zprune z6no previously-included directories found matching '%s'z'this cannot happen: invalid action '%s')r7r rinclude_patternrr exclude_patternr)r r3r4r5rr6patternr r r process_template_linehsf           zFileList.process_template_liner rcCspd}t||||}|jd|j|jdkr4|jx6|jD],}|j|r<|jd||jj|d}qr;r<r r r r rs     L ,rcCs&ddtj|ddD}ttjj|S)z% Find all files under 'path' css,|]$\}}}|D]}tjj||VqqdS)N)rrr)r+basedirsrfiler r r sz#_find_all_simple..T) followlinks)rwalkfilterrisfile)rZresultsr r r _find_all_simplesrRcCs6t|}|tjkr.tjtjj|d}t||}t|S)z Find all files under 'dir' and return the list of full filenames. Unless dir is '.', return full filenames with dir prepended. )start) rRrrI functoolspartialrrelpathrlist)rrZmake_relr r r rs   rcCs8tj|}tj}tjdkrd}d|}tjd||}|S)zTranslate a shell-like glob pattern to a regular expression; return a string containing the regex. Differs from 'fnmatch.translate()' in that '*' does not match "special characters" (which are platform-specific). \z\\\\z\1[^%s]z((?s  i  PK!CC$__pycache__/ccompiler.cpython-36.pycnu[3 \7@sdZddlZddlZddlZddlTddlmZddlmZddl m Z ddl m Z m Z ddlmZmZdd lmZGd d d Zd-Zd.ddZd/d0d1d2d3d!Zd"d#Zd4d$d%Zd&d'Zd(d)ZdS)5zdistutils.ccompiler Contains CCompiler, an abstract base class that defines the interface for the Distutils compiler abstraction model.N)*)spawn) move_file)mkpath)newer_pairwise newer_group) split_quotedexecute)logc @seZdZdZdZdZdZdZdZdZ dZ dZ ddddddZ dddgZ dqdd Zd d Zd d ZddZddZdrddZddZddZddZddZddZddZd d!Zd"d#Zd$d%Zd&d'Zd(d)Zd*d+Zd,d-Z d.d/Z!dsd0d1Z"d2d3Z#d4d5Z$d6d7Z%d8d9Z&dtd:d;Z'dudd?Z)dvd@dAZ*dBZ+dCZ,dDZ-dwdEdFZ.dxdGdHZ/dydIdJZ0dzdKdLZ1dMdNZ2dOdPZ3dQdRZ4d{dSdTZ5d|dUdVZ6d}dXdYZ7d~dZd[Z8dd\d]Z9dd_d`Z:ddbdcZ;dddeZdjdkZ?dldmZ@ddodpZAdS) CCompileraAbstract base class to define the interface that must be implemented by real compiler classes. Also has some utility methods used by several compiler classes. The basic idea behind a compiler abstraction class is that each instance can be used for all the compile/link steps in building a single project. Thus, attributes common to all of those compile and link steps -- include directories, macros to define, libraries to link against, etc. -- are attributes of the compiler instance. To allow for variability in how individual files are treated, most of those attributes may be varied on a per-compilation or per-link basis. Nczc++Zobjc)z.cz.ccz.cppz.cxxz.mrcCsf||_||_||_d|_g|_g|_g|_g|_g|_g|_ x$|j j D]}|j ||j |qHWdS)N) dry_runforceverbose output_dirmacros include_dirs libraries library_dirsruntime_library_dirsobjects executableskeysset_executable)selfrr rkeyr+/usr/lib64/python3.6/distutils/ccompiler.py__init__UszCCompiler.__init__cKs@x:|D]2}||jkr(td||jjf|j|||qWdS)aDefine the executables (and options for them) that will be run to perform the various stages of compilation. The exact set of executables that may be specified here depends on the compiler class (via the 'executables' class attribute), but most will have: compiler the C/C++ compiler linker_so linker used to create shared objects and libraries linker_exe linker used to create binary executables archiver static library creator On platforms with a command-line (Unix, DOS/Windows), each of these is a string that will be split into executable name and (optional) list of arguments. (Splitting the string is done similarly to how Unix shells operate: words are delimited by spaces, but quotes and backslashes can override this. See 'distutils.util.split_quoted()'.) z$unknown executable '%s' for class %sN)r ValueError __class____name__r)rkwargsrrrrset_executablesys   zCCompiler.set_executablescCs,t|trt||t|n t|||dS)N) isinstancestrsetattrr)rrvaluerrrrs zCCompiler.set_executablecCs0d}x&|jD]}|d|kr |S|d7}q WdS)Nr)r)rnameidefnrrr _find_macros    zCCompiler._find_macrocCsdx^|D]V}t|toFt|dkoFt|dts:|ddkoFt|dtstd|ddqWdS) zEnsures that every element of 'definitions' is a valid macro definition, ie. either (name,value) 2-tuple or a (name,) tuple. Do nothing if all definitions are OK, raise TypeError otherwise. r(Nrzinvalid macro definition '%s': z.must be tuple (string,), (string, string), or z(string, None))r(r-)r$tuplelenr% TypeError)rZ definitionsr+rrr_check_macro_definitionss    z"CCompiler._check_macro_definitionscCs.|j|}|dk r|j|=|jj||fdS)a_Define a preprocessor macro for all compilations driven by this compiler object. The optional parameter 'value' should be a string; if it is not supplied, then the macro will be defined without an explicit value and the exact outcome depends on the compiler used (XXX true? does ANSI say anything about this?) N)r,rappend)rr)r'r*rrr define_macros zCCompiler.define_macrocCs0|j|}|dk r|j|=|f}|jj|dS)aUndefine a preprocessor macro for all compilations driven by this compiler object. If the same macro is defined by 'define_macro()' and undefined by 'undefine_macro()' the last call takes precedence (including multiple redefinitions or undefinitions). If the macro is redefined/undefined on a per-compilation basis (ie. in the call to 'compile()'), then that takes precedence. N)r,rr2)rr)r*Zundefnrrrundefine_macros zCCompiler.undefine_macrocCs|jj|dS)zAdd 'dir' to the list of directories that will be searched for header files. The compiler is instructed to search directories in the order in which they are supplied by successive calls to 'add_include_dir()'. N)rr2)rdirrrradd_include_dirszCCompiler.add_include_dircCs|dd|_dS)aySet the list of directories that will be searched to 'dirs' (a list of strings). Overrides any preceding calls to 'add_include_dir()'; subsequence calls to 'add_include_dir()' add to the list passed to 'set_include_dirs()'. This does not affect any list of standard include directories that the compiler may search by default. N)r)rdirsrrrset_include_dirsszCCompiler.set_include_dirscCs|jj|dS)aAdd 'libname' to the list of libraries that will be included in all links driven by this compiler object. Note that 'libname' should *not* be the name of a file containing a library, but the name of the library itself: the actual filename will be inferred by the linker, the compiler, or the compiler class (depending on the platform). The linker will be instructed to link against libraries in the order they were supplied to 'add_library()' and/or 'set_libraries()'. It is perfectly valid to duplicate library names; the linker will be instructed to link against libraries as many times as they are mentioned. N)rr2)rlibnamerrr add_libraryszCCompiler.add_librarycCs|dd|_dS)zSet the list of libraries to be included in all links driven by this compiler object to 'libnames' (a list of strings). This does not affect any standard system libraries that the linker may include by default. N)r)rZlibnamesrrr set_librariesszCCompiler.set_librariescCs|jj|dS)a'Add 'dir' to the list of directories that will be searched for libraries specified to 'add_library()' and 'set_libraries()'. The linker will be instructed to search for libraries in the order they are supplied to 'add_library_dir()' and/or 'set_library_dirs()'. N)rr2)rr5rrradd_library_dirszCCompiler.add_library_dircCs|dd|_dS)zSet the list of library search directories to 'dirs' (a list of strings). This does not affect any standard library search path that the linker may search by default. N)r)rr7rrrset_library_dirs szCCompiler.set_library_dirscCs|jj|dS)zlAdd 'dir' to the list of directories that will be searched for shared libraries at runtime. N)rr2)rr5rrradd_runtime_library_dirsz!CCompiler.add_runtime_library_dircCs|dd|_dS)zSet the list of directories to search for shared libraries at runtime to 'dirs' (a list of strings). This does not affect any standard search path that the runtime linker may search by default. N)r)rr7rrrset_runtime_library_dirssz"CCompiler.set_runtime_library_dirscCs|jj|dS)zAdd 'object' to the list of object files (or analogues, such as explicitly named library files or the output of "resource compilers") to be included in every link driven by this compiler object. N)rr2)robjectrrradd_link_object szCCompiler.add_link_objectcCs|dd|_dS)zSet the list of object files (or analogues) to be included in every link to 'objects'. This does not affect any standard object files that the linker may include by default (such as system libraries). N)r)rrrrrset_link_objects(szCCompiler.set_link_objectscCs.|dkr|j}nt|ts"td|dkr2|j}n"t|trL||jpFg}ntd|dkrd|j}n*t|ttfrt||jpg}ntd|dkrg}|j|d|d}t |t |kst t ||}i} xRt t |D]B} || } || } t jj| d} |jt jj| | | f| | <qW||||| fS)z;Process arguments and decide which source files to compile.Nz%'output_dir' must be a string or Nonez/'macros' (if supplied) must be a list of tuplesz6'include_dirs' (if supplied) must be a list of stringsr) strip_dirrr()rr$r%r0rlistrr.object_filenamesr/AssertionErrorgen_preprocess_optionsrangeospathsplitextrdirname)rZoutdirrZincdirssourcesdependsZextrarpp_optsbuildr*srcobjextrrr_setup_compile6s:   zCCompiler._setup_compilecCs0|dg}|rdg|dd<|r,||dd<|S)Nz-cz-grr)rrOdebugZbeforecc_argsrrr _get_cc_argsas   zCCompiler._get_cc_argscCs|dkr|j}nt|ts"td|dkr2|j}n"t|trL||jpFg}ntd|dkrd|j}n*t|ttfrt||jpg}ntd|||fS)a'Typecheck and fix-up some of the arguments to the 'compile()' method, and return fixed-up values. Specifically: if 'output_dir' is None, replaces it with 'self.output_dir'; ensures that 'macros' is a list, and augments it with 'self.macros'; ensures that 'include_dirs' is a list, and augments it with 'self.include_dirs'. Guarantees that the returned values are of the correct type, i.e. for 'output_dir' either string or None, and for 'macros' and 'include_dirs' either list or None. Nz%'output_dir' must be a string or Nonez/'macros' (if supplied) must be a list of tuplesz6'include_dirs' (if supplied) must be a list of strings)rr$r%r0rrDrr.)rrrrrrr_fix_compile_argsjs   zCCompiler._fix_compile_argscCs*|j||d}t|t|ks"t|ifS)a+Decide which souce files must be recompiled. Determine the list of object files corresponding to 'sources', and figure out which ones really need to be recompiled. Return a list of all object files and a dictionary telling which source files can be skipped. )r)rEr/rF)rrMrrNrrrr _prep_compiles zCCompiler._prep_compilecCsHt|ttfstdt|}|dkr.|j}nt|ts@td||fS)zTypecheck and fix up some arguments supplied to various methods. Specifically: ensure that 'objects' is a list; if output_dir is None, replace with self.output_dir. Return fixed versions of 'objects' and 'output_dir'. z,'objects' must be a list or tuple of stringsNz%'output_dir' must be a string or None)r$rDr.r0rr%)rrrrrr_fix_object_argss zCCompiler._fix_object_argscCs|dkr|j}n*t|ttfr2t||jp,g}ntd|dkrJ|j}n*t|ttfrlt||jpfg}ntd|dkr|j}n*t|ttfrt||jpg}ntd|||fS)a;Typecheck and fix up some of the arguments supplied to the 'link_*' methods. Specifically: ensure that all arguments are lists, and augment them with their permanent versions (eg. 'self.libraries' augments 'libraries'). Return a tuple with fixed versions of all arguments. Nz3'libraries' (if supplied) must be a list of stringsz6'library_dirs' (if supplied) must be a list of stringsz>'runtime_library_dirs' (if supplied) must be a list of strings)rr$rDr.r0rr)rrrrrrr _fix_lib_argss&zCCompiler._fix_lib_argscCs2|jr dS|jr t||dd}n t||}|SdS)zjReturn true if we need to relink the files listed in 'objects' to recreate 'output_file'. Tnewer)ZmissingN)rr r)rr output_filer\rrr _need_links  zCCompiler._need_linkc Cst|ts|g}d}t|j}x^|D]V}tjj|\}}|jj|}y |jj |}||krb|}|}Wq$t k rxYq$Xq$W|S)z|Detect the language of a given file, or list of files. Uses language_map, and language_order to do the job. N) r$rDr/language_orderrIrJrK language_mapgetindexr) rrMZlangrbsourcebaserSZextlangZextindexrrrdetect_languages      zCCompiler.detect_languagecCsdS)aPreprocess a single C/C++ source file, named in 'source'. Output will be written to file named 'output_file', or stdout if 'output_file' not supplied. 'macros' is a list of macro definitions as for 'compile()', which will augment the macros set with 'define_macro()' and 'undefine_macro()'. 'include_dirs' is a list of directory names that will be added to the default list. Raises PreprocessError on failure. Nr)rrcr]rr extra_preargsextra_postargsrrr preprocesss zCCompiler.preprocessc Csz|j||||||\}} }} } |j| ||} xH| D]@} y| | \}}Wntk r\w2YnX|j| ||| || q2W| S)aK Compile one or more source files. 'sources' must be a list of filenames, most likely C/C++ files, but in reality anything that can be handled by a particular compiler and compiler class (eg. MSVCCompiler can handle resource files in 'sources'). Return a list of object filenames, one per source filename in 'sources'. Depending on the implementation, not all source files will necessarily be compiled, but all corresponding object filenames will be returned. If 'output_dir' is given, object files will be put under it, while retaining their original path component. That is, "foo/bar.c" normally compiles to "foo/bar.o" (for a Unix implementation); if 'output_dir' is "build", then it would compile to "build/foo/bar.o". 'macros', if given, must be a list of macro definitions. A macro definition is either a (name, value) 2-tuple or a (name,) 1-tuple. The former defines a macro; if the value is None, the macro is defined without an explicit value. The 1-tuple case undefines a macro. Later definitions/redefinitions/ undefinitions take precedence. 'include_dirs', if given, must be a list of strings, the directories to add to the default include file search path for this compilation only. 'debug' is a boolean; if true, the compiler will be instructed to output debug symbols in (or alongside) the object file(s). 'extra_preargs' and 'extra_postargs' are implementation- dependent. On platforms that have the notion of a command-line (e.g. Unix, DOS/Windows), they are most likely lists of strings: extra command-line arguments to prepand/append to the compiler command line. On other platforms, consult the implementation class documentation. In any event, they are intended as an escape hatch for those occasions when the abstract compiler framework doesn't cut the mustard. 'depends', if given, is a list of filenames that all targets depend on. If a source file is older than any file in depends, then the source file will be recompiled. This supports dependency tracking, but only at a coarse granularity. Raises CompileError on failure. )rTrWKeyError_compile)rrMrrrrUrfrgrNrrOrPrVrRrQrSrrrcompiles6  zCCompiler.compilecCsdS)zCompile 'src' to product 'obj'.Nr)rrRrQrSrVrgrOrrrrjCszCCompiler._compilecCsdS)a&Link a bunch of stuff together to create a static library file. The "bunch of stuff" consists of the list of object files supplied as 'objects', the extra object files supplied to 'add_link_object()' and/or 'set_link_objects()', the libraries supplied to 'add_library()' and/or 'set_libraries()', and the libraries supplied as 'libraries' (if any). 'output_libname' should be a library name, not a filename; the filename will be inferred from the library name. 'output_dir' is the directory where the library file will be put. 'debug' is a boolean; if true, debugging information will be included in the library (note that on most platforms, it is the compile step where this matters: the 'debug' flag is included here just for consistency). 'target_lang' is the target language for which the given objects are being compiled. This allows specific linkage time treatment of certain languages. Raises LibError on failure. Nr)rroutput_libnamerrU target_langrrrcreate_static_libIszCCompiler.create_static_libZ shared_objectZshared_library executablecCstdS)auLink a bunch of stuff together to create an executable or shared library file. The "bunch of stuff" consists of the list of object files supplied as 'objects'. 'output_filename' should be a filename. If 'output_dir' is supplied, 'output_filename' is relative to it (i.e. 'output_filename' can provide directory components if needed). 'libraries' is a list of libraries to link against. These are library names, not filenames, since they're translated into filenames in a platform-specific way (eg. "foo" becomes "libfoo.a" on Unix and "foo.lib" on DOS/Windows). However, they can include a directory component, which means the linker will look in that specific directory rather than searching all the normal locations. 'library_dirs', if supplied, should be a list of directories to search for libraries that were specified as bare library names (ie. no directory component). These are on top of the system default and those supplied to 'add_library_dir()' and/or 'set_library_dirs()'. 'runtime_library_dirs' is a list of directories that will be embedded into the shared library and used to search for other shared libraries that *it* depends on at run-time. (This may only be relevant on Unix.) 'export_symbols' is a list of symbols that the shared library will export. (This appears to be relevant only on Windows.) 'debug' is as for 'compile()' and 'create_static_lib()', with the slight distinction that it actually matters on most platforms (as opposed to 'create_static_lib()', which includes a 'debug' flag mostly for form's sake). 'extra_preargs' and 'extra_postargs' are as for 'compile()' (except of course that they supply command-line arguments for the particular linker being used). 'target_lang' is the target language for which the given objects are being compiled. This allows specific linkage time treatment of certain languages. Raises LinkError on failure. N)NotImplementedError)rZ target_descroutput_filenamerrrrexport_symbolsrUrfrg build_temprmrrrlinkis9zCCompiler.linkc Cs2|jtj||j|dd||||||| | | | dS)Nshared)lib_type)rtr SHARED_LIBRARYlibrary_filename) rrrlrrrrrrrUrfrgrsrmrrrlink_shared_libs  zCCompiler.link_shared_libc Cs(|jtj||||||||| | | | dS)N)rtr SHARED_OBJECT) rrrqrrrrrrrUrfrgrsrmrrrlink_shared_objects zCCompiler.link_shared_objectc Cs.|jtj||j|||||d||| d| dS)N)rtr EXECUTABLEexecutable_filename) rrZoutput_prognamerrrrrUrfrgrmrrrlink_executables  zCCompiler.link_executablecCstdS)zkReturn the compiler option to add 'dir' to the list of directories searched for libraries. N)rp)rr5rrrlibrary_dir_optionszCCompiler.library_dir_optioncCstdS)zsReturn the compiler option to add 'dir' to the list of directories searched for runtime libraries. N)rp)rr5rrrruntime_library_dir_optionsz$CCompiler.runtime_library_dir_optioncCstdS)zReturn the compiler option to add 'lib' to the list of libraries linked into the shared library or executable. N)rp)rlibrrrlibrary_optionszCCompiler.library_optionc Csddl}|dkrg}|dkr g}|dkr,g}|dkr8g}|jd|dd\}}tj|d} z.x|D]} | jd| q`W| jd|Wd| jXy|j|g|d } Wntk rd SXy|j| d ||d Wnt t fk rd SXdS) zReturn a boolean indicating whether funcname is supported on the current platform. The optional arguments can be used to augment the compilation environment. rNz.cT)textwz#include "%s" z+main (int argc, char **argv) { %s(); } )rFza.out)rr) tempfileZmkstemprIfdopenwritecloserkZ CompileErrorr~Z LinkErrorr0) rfuncnameZincludesrrrrfdZfnamefZinclrrrr has_functions8     zCCompiler.has_functioncCstdS)aHSearch the specified list of directories for a static or shared library file 'lib' and return the full path to that file. If 'debug' true, look for a debugging version (if that makes sense on the current platform). Return None if 'lib' wasn't found in any of the specified directories. N)rp)rr7rrUrrrfind_library_file#szCCompiler.find_library_filecCs|dkr d}g}x|D]|}tjj|\}}tjj|d}|tjj|d}||jkrhtd||f|rxtjj|}|jtjj |||j qW|S)Nrr(z"unknown file type '%s' (from '%s')) rIrJrK splitdriveisabssrc_extensionsZUnknownFileErrorbasenamer2join obj_extension)rZsource_filenamesrCrZ obj_namesZsrc_namerdrSrrrrENs    zCCompiler.object_filenamescCs0|dk s t|rtjj|}tjj|||jS)N)rFrIrJrrshared_lib_extension)rrrCrrrrshared_object_filename_s  z CCompiler.shared_object_filenamecCs4|dk s t|rtjj|}tjj|||jp.dS)Nr)rFrIrJrr exe_extension)rrrCrrrrr}es  zCCompiler.executable_filenamestaticc Csl|dk s t|d krtdt||d}t||d}tjj|\}}|||f} |r\d}tjj||| S) Nrrudylib xcode_stubz?'lib_type' must be "static", "shared", "dylib", or "xcode_stub"Z _lib_formatZ_lib_extensionr)rrurr)rFrgetattrrIrJsplitr) rr9rvrCrZfmtrSr5rdfilenamerrrrxks  zCCompiler.library_filenamer(cCstj|dS)N)r rU)rmsglevelrrrannounce~szCCompiler.announcecCsddlm}|rt|dS)Nr)DEBUG)Zdistutils.debugrprint)rrrrrr debug_prints zCCompiler.debug_printcCstjjd|dS)Nz warning: %s )sysstderrr)rrrrrwarnszCCompiler.warncCst||||jdS)N)r r )rfuncargsrrrrrr szCCompiler.executecCst||jddS)N)r )rr )rcmdrrrrszCCompiler.spawncCst|||jdS)N)r )rr )rrQdstrrrrszCCompiler.move_filecCst|||jddS)N)r )rr )rr)moderrrrszCCompiler.mkpath)rrr)N)N)NNNNN)NNNrNNN)NrN) NNNNNrNNNN) NNNNNrNNNN) NNNNNrNNNN)NNNNrNNN)NNNN)r)rr)rr)rr)rrr)r()Nr()r)Br! __module__ __qualname____doc__Z compiler_typerrZstatic_lib_extensionrZstatic_lib_formatZshared_lib_formatrr`r_rr#rr,r1r3r4r6r8r:r;r<r=r>r?rArBrTrWrXrYrZr[r^rerhrkrjrnrzrwr|rtryr{r~rrrrrrErr}rxrrrr rrrrrrrr s    $   +  "   B  4    * +      r cygwin.*unixposixntmsvccCsV|dkrtj}|dkrtj}x4tD],\}}tj||dk sJtj||dk r"|Sq"WdS)akDetermine the default compiler to use for the given platform. osname should be one of the standard Python OS names (i.e. the ones returned by os.name) and platform the common value returned by sys.platform for the platform in question. The default values are os.name and sys.platform in case the parameters are not given. Nr)rIr)rplatform_default_compilersrematch)osnamerpatterncompilerrrrget_default_compilers r unixccompiler UnixCCompilerstandard UNIX-style compiler _msvccompiler MSVCCompilerMicrosoft Visual C++cygwinccompilerCygwinCCompiler'Cygwin port of GNU C Compiler for Win32Mingw32CCompiler(Mingw32 port of GNU C Compiler for Win32 bcppcompiler BCPPCompilerBorland C++ Compiler)rrcygwinZmingw32ZbcppcCs\ddlm}g}x,tjD] }|jd|dt|dfqW|j||}|jddS)zyPrint list of available compilers (used by the "--help-compiler" options to "build", "build_ext", "build_clib"). r) FancyGetoptz compiler=Nr-zList of available compilers:)Zdistutils.fancy_getoptrcompiler_classrr2sortZ print_help)rZ compilersrZpretty_printerrrrshow_compilerss  rc Cs|dkrtj}y"|dkr t|}t|\}}}Wn8tk rhd|}|dk r\|d|}t|YnXy*d|}t|tj|} t | |} WnBt k rt d|Yn$tk rt d||fYnX| d||S)a[Generate an instance of some CCompiler subclass for the supplied platform/compiler combination. 'plat' defaults to 'os.name' (eg. 'posix', 'nt'), and 'compiler' defaults to the default compiler for that platform. Currently only 'posix' and 'nt' are supported, and the default compilers are "traditional Unix interface" (UnixCCompiler class) and Visual C++ (MSVCCompiler class). Note that it's perfectly possible to ask for a Unix compiler object under Windows, and a Microsoft compiler object under Unix -- if you supply a value for 'compiler', 'plat' is ignored. Nz5don't know how to compile C/C++ code on platform '%s'z with '%s' compilerz distutils.z4can't compile C/C++ code: unable to load module '%s'zBcan't compile C/C++ code: unable to find class '%s' in module '%s') rIr)rrriZDistutilsPlatformError __import__rmodulesvars ImportErrorZDistutilsModuleError) Zplatrrr rZ module_name class_nameZlong_descriptionrmoduleklassrrr new_compilers2    rcCsg}x|D]}t|to2dt|ko.dkns@td|t|dkr`|jd|dq t|dkr |ddkr|jd|dq |jd|q Wx|D]}|jd |qW|S) aGenerate C pre-processor options (-D, -U, -I) as used by at least two types of compilers: the typical Unix compiler and Visual C++. 'macros' is the usual thing, a list of 1- or 2-tuples, where (name,) means undefine (-U) macro 'name', and (name,value) means define (-D) macro 'name' to 'value'. 'include_dirs' is just a list of directory names to be added to the header file search path (-I). Returns a list of command-line options suitable for either Unix compilers or Visual C++. r(r-zPbad macro definition '%s': each element of 'macros' list must be a 1- or 2-tuplez-U%srNz-D%sz-D%s=%sz-I%s)r$r.r/r0r2)rrrOZmacror5rrrrG s &    rGc Csg}x|D]}|j|j|q Wx4|D],}|j|}t|trJ||}q(|j|q(Wx^|D]V}tjj|\}} |r|j|g| } | r|j| q|j d|q^|j|j |q^W|S)acGenerate linker options for searching library directories and linking with specific libraries. 'libraries' and 'library_dirs' are, respectively, lists of library names (not filenames!) and search directories. Returns a list of command-line options suitable for use with some compiler (depending on the two format strings passed in). z6no library file corresponding to '%s' found (skipping)) r2rrr$rDrIrJrrrr) rrrrZlib_optsr5optrZlib_dirZlib_nameZlib_filerrrgen_lib_options7s$        rrrrrrr)rrr)NN)rrr)rrr)rrr)rrr)rrr)NNrrr)rrrIrZdistutils.errorsZdistutils.spawnrZdistutils.file_utilrZdistutils.dir_utilrZdistutils.dep_utilrrZdistutils.utilrr Z distutilsr r rrrrrrGrrrrrsD      --PK!E'l+ + 1__pycache__/versionpredicate.cpython-36.opt-2.pycnu[3 \ @s~ddlZddlZddlZejdejZejdZejdZddZ ej ej ej ej ejejdZGdd d Zdad d ZdS) Nz'(?i)^\s*([a-z_]\w*(?:\.[a-z_]\w*)*)(.*)z^\s*\((.*)\)\s*$z%^\s*(<=|>=|<|>|!=|==)\s*([^\s,]+)\s*$cCs6tj|}|std||j\}}|tjj|fS)Nz"bad package restriction syntax: %r)re_splitComparisonmatch ValueErrorgroups distutilsversion StrictVersion)predrescompZverStrr 2/usr/lib64/python3.6/distutils/versionpredicate.pysplitUps    r)z>=z!=c@s$eZdZddZddZddZdS)VersionPredicatecCs|j}|stdtj|}|s.td||j\|_}|j}|rtj|}|sbtd||jd}dd|jdD|_|jstd|ng|_dS) Nzempty package restrictionzbad package name in %rzexpected parenthesized list: %rrcSsg|] }t|qSr )r).0ZaPredr r r tsz-VersionPredicate.__init__..,zempty parenthesized list in %r) striprre_validPackagerrnamere_parensplitr )selfZversionPredicateStrrZparenstrr r r __init__`s$      zVersionPredicate.__init__cCs8|jr.dd|jD}|jddj|dS|jSdS)NcSs g|]\}}|dt|qS) )r)rcondverr r r r}sz,VersionPredicate.__str__..z (z, ))r rjoin)rseqr r r __str__{szVersionPredicate.__str__cCs*x$|jD]\}}t|||sdSqWdS)NFT)r compmap)rrrrr r r satisfied_byszVersionPredicate.satisfied_byN)__name__ __module__ __qualname__rr#r%r r r r rsArcCsdtdkrtjdtja|j}tj|}|s8td||jdpDd}|rVtj j |}|jd|fS)Nz=([a-zA-Z_]\w*(?:\.[a-zA-Z_]\w*)*)(?:\s*\(\s*([^)\s]+)\s*\))?$z"illegal provides specification: %r) _provision_rxrecompileASCIIrrrgrouprrr)valuemrr r r split_provisions    r2)r,Zdistutils.versionroperatorr-r.rrrrltleeqgtgener$rr+r2r r r r s   nPK! &__pycache__/debug.cpython-36.opt-2.pycnu[3 \@sddlZejjdZdS)NZDISTUTILS_DEBUG)osenvirongetDEBUGrr'/usr/lib64/python3.6/distutils/debug.pysPK!I *__pycache__/sysconfig.cpython-36.opt-2.pycnu[3 KiN @sddlZddlZddlZddlZddlmZejjejZ ejjej Z ejjej Z ejjejZdejkrejjejdZnejjejjejZejdkrejjd+rejjejjeZdd Zeed dZeoejdkoejjd,r ejjejjeZd d ZeZd Zyes*ejZWnek rBYnXddZ d-ddZ!d.ddZ"ddZ#ddZ$ddZ%d/ddZ&ej'dZ(ej'dZ)ej'dZ*d0dd Z+d!d"Z,da-d#d$Z.d%d&Z/d'd(Z0d)d*Z1dS)1N)DistutilsPlatformErrorZ_PYTHON_PROJECT_BASEnt\pcbuild\win32\pcbuild\amd64cCs.x(dD] }tjjtjj|d|rdSqWdS)N Setup.dist Setup.localModulesTF)rr)ospathisfilejoin)dfnr+/usr/lib64/python3.6/distutils/sysconfig.py_is_python_source_dir)s r_homecCstr ttSttS)N) _sys_homer project_baserrrr _python_build2srcCsdtjddS)Nz%d.%d)sys version_inforrrrget_python_versionDsrcCs|dkr|rtpt}tjdkrjtrL|r.tp,tStjjt dd}tjj |Sdt t }tjj|d|Stjdkrtjj|dSt dtjdS)NposixsrcdirZIncludepythonincluderzFI don't know where Python installs its C header files on platform '%s')BASE_EXEC_PREFIX BASE_PREFIXr name python_buildrrr r get_config_varnormpathr build_flagsr) plat_specificprefixZincdirZ python_dirrrrget_python_incLs     r)cCs|dkr&|r|rtpt}n |r"tp$t}tjdkrp|s8|r>d}nd}tjj||dt}|r`|Stjj|dSnrAZccZcxxoptZcflagsZccsharedZldsharedZ shlib_suffixarZar_flagsZnewccZcppr?Zcc_cmdrrrrBs\                         rBcCsDtr,tjdkr"tjjtptd}q6tp(t}n tdd}tjj|dS)NrPCr)r'z pyconfig-64.h)r#r r"r r rrr))inc_dirrrrget_config_h_filenames    rLcCs\trtjjtptdStddd}djtt }t t j drL|dt j j 7}tjj||dS)NMakefilerr)r'r.z config-{}{} _multiarchz-%s)r#r r r rrr/formatrr&hasattrrimplementationrN)Zlib_dirZ config_filerrrget_makefile_filenames  rRc Cs|dkr i}tjd}tjd}xx|j}|s0P|j|}|rz|jdd\}}y t|}Wntk rnYnX|||<q"|j|}|r"d||jd<q"W|S)Nz"#define ([A-Z][A-Za-z0-9_]+) (.*) z&/[*] #undef ([A-Z][A-Za-z0-9_]+) [*]/ rrr)recompilereadlinematchgroupint ValueError)fpg define_rxundef_rxlinemnvrrrparse_config_hs(      rbz"([a-zA-Z][a-zA-Z0-9_]+)\s*=\s*(.*)z\$\(([A-Za-z][A-Za-z0-9_]*)\)z\${([A-Za-z][A-Za-z0-9_]*)}c Csddlm}||ddddd}|dkr*i}i}i}x|j}|dkrFPtj|}|r4|jdd\}} | j} | jdd} d | kr| ||<q4y t| } Wn$t k r| jdd ||<Yq4X| ||<q4Wd} x|rxt |D]} || } t j | pt j | }|rx|jd}d }||kr2t||}n||krBd}nx|tjkrZtj|}n`|| kr| jdr| dd| krd}n$d||krd}nt|d|}n d||<}|r~| |jd}| d|j||} d |kr| || <nzy t| } Wn"t k r*| j|| <Yn X| || <|| =| jdr~| dd| kr~| dd} | |kr~| || <q|| =qWqW|jx.|jD]"\}} t| tr| j||<qW|j||S)Nr)TextFilersurrogateescape)Zstrip_commentsZ skip_blanksZ join_lineserrorsrz$$r$r5r;r=TFPY_)r5r;r=)Zdistutils.text_filercrU _variable_rxrVrWstripreplacerXrYlist _findvar1_rxsearch _findvar2_rxstrr rErFendstartcloseitems isinstanceupdate)rr[rcrZdonenotdoner^r_r`ratmpvrenamed_variablesr"valuefounditemafterkrrrparse_makefiles                       rcCsZxTtj|ptj|}|rP|j\}}|d||j|jd||d}qPqW|S)Nrr)rmrnrospangetrW)svarsr_Zbegrqrrrexpand_makefile_varss *rc CsVtjjddjtjtjttjddd}t |t t dgd}|j }ia t j|dS)N_PYTHON_SYSCONFIGDATA_NAMEz+_sysconfigdata_{abi}_{platform}_{multiarch}rNr)abir@ multiarchbuild_time_varsr)r rErrOrabiflagsr@getattrrQ __import__globalslocalsrrCrv)r"_temprrrr _init_posixsrcCs~i}tddd|d<tddd|d<tdd|d<tjd|d<d |d <tjd d |d <tjjtjj t j |d<|a dS)Nrr)r'r.LIBDEST BINLIBDEST)r' INCLUDEPY EXT_SUFFIXz.exeEXE.rVERSIONBINDIR) r/r)_impextension_suffixesrrkr r dirnameabspathr executablerC)r[rrr_init_ntsrcGs^tdkr(tjdtj}|r(|niattd<ttd<tjd}|dk rV|td<tjdt}tjdkrtrtj j t }tj j ||}ntj j t }tj j tj j|td<totjdkr t}tj jtd o|tjkr tj j |td}tj j|td<tjdkr(d dl}|jt|rVg}x|D]}|jtj|q8W|StSdS) NZ_init_r( exec_prefixrSOrrr0r)rCrrr r"r-r,rr#r rrRr rr%isabsgetcwdrr@rAcustomize_config_varsappend)argsfuncrrbaserAvalsr"rrrrDs@       rDcCs*|dkrddl}|jdtdtj|S)Nrrz SO is deprecated, use EXT_SUFFIXr)warningswarnDeprecationWarningrDr)r"rrrrr$sr$)rr)rr)rN)rrN)N)N)2rr rSrrerr r%r(r-rr, base_prefixr!base_exec_prefixr rErrrrr"lowerendswithrrrrr#r&rAttributeErrorrr)r/rBrLrRrbrTrirmrorrrCrrrDr$rrrr sX      # +I      jJPK!6bb!__pycache__/errors.cpython-36.pycnu[3 \ @s8dZGdddeZGdddeZGdddeZGdddeZGd d d eZGd d d eZGd ddeZGdddeZ GdddeZ GdddeZ GdddeZ GdddeZ GdddeZGdddeZGdddeZGdd d eZGd!d"d"eZGd#d$d$eZGd%d&d&eZd'S)(adistutils.errors Provides exceptions used by the Distutils modules. Note that Distutils modules may raise standard exceptions; in particular, SystemExit is usually raised for errors that are obviously the end-user's fault (eg. bad command-line arguments). This module is safe to use in "from ... import *" mode; it only exports symbols whose names start with "Distutils" and end with "Error".c@seZdZdZdS)DistutilsErrorzThe root of all Distutils evil.N)__name__ __module__ __qualname____doc__rr(/usr/lib64/python3.6/distutils/errors.pyr src@seZdZdZdS)DistutilsModuleErrorzUnable to load an expected module, or to find an expected class within some module (in particular, command modules and classes).N)rrrrrrrrrsrc@seZdZdZdS)DistutilsClassErrorzSome command class (or possibly distribution class, if anyone feels a need to subclass Distribution) is found not to be holding up its end of the bargain, ie. implementing some part of the "command "interface.N)rrrrrrrrr sr c@seZdZdZdS)DistutilsGetoptErrorz7The option table provided to 'fancy_getopt()' is bogus.N)rrrrrrrrr sr c@seZdZdZdS)DistutilsArgErrorzaRaised by fancy_getopt in response to getopt.error -- ie. an error in the command line usage.N)rrrrrrrrr sr c@seZdZdZdS)DistutilsFileErrorzAny problems in the filesystem: expected file not found, etc. Typically this is for problems that we detect before OSError could be raised.N)rrrrrrrrr $sr c@seZdZdZdS)DistutilsOptionErroraSyntactic/semantic errors in command options, such as use of mutually conflicting options, or inconsistent options, badly-spelled values, etc. No distinction is made between option values originating in the setup script, the command line, config files, or what-have-you -- but if we *know* something originated in the setup script, we'll raise DistutilsSetupError instead.N)rrrrrrrrr *sr c@seZdZdZdS)DistutilsSetupErrorzqFor errors that can be definitely blamed on the setup script, such as invalid keyword arguments to 'setup()'.N)rrrrrrrrr3src@seZdZdZdS)DistutilsPlatformErrorzWe don't know how to do something on the current platform (but we do know how to do it on some platform) -- eg. trying to compile C files on a platform not supported by a CCompiler subclass.N)rrrrrrrrr8src@seZdZdZdS)DistutilsExecErrorz`Any problems executing an external program (such as the C compiler, when compiling C files).N)rrrrrrrrr>src@seZdZdZdS)DistutilsInternalErrorzoInternal inconsistencies or impossibilities (obviously, this should never be seen if the code is working!).N)rrrrrrrrrCsrc@seZdZdZdS)DistutilsTemplateErrorz%Syntax error in a file list template.N)rrrrrrrrrHsrc@seZdZdZdS)DistutilsByteCompileErrorzByte compile error.N)rrrrrrrrrKsrc@seZdZdZdS)CCompilerErrorz#Some compile/link operation failed.N)rrrrrrrrrOsrc@seZdZdZdS)PreprocessErrorz.Failure to preprocess one or more C/C++ files.N)rrrrrrrrrRsrc@seZdZdZdS) CompileErrorz2Failure to compile one or more C/C++ source files.N)rrrrrrrrrUsrc@seZdZdZdS)LibErrorzKFailure to create a static library from one or more C/C++ object files.N)rrrrrrrrrXsrc@seZdZdZdS) LinkErrorz]Failure to link one or more C/C++ object files into an executable or shared library file.N)rrrrrrrrr\src@seZdZdZdS)UnknownFileErrorz(Attempt to process an unknown file type.N)rrrrrrrrr`srN)r Exceptionrrr r r r r rrrrrrrrrrrrrrrr s& PK!܎..*__pycache__/sysconfig.cpython-36.opt-1.pycnu[3 KiN @sdZddlZddlZddlZddlZddlmZejjej Z ejjej Z ejjej ZejjejZdejkrejjejdZnejjejjejZejdkrejjd,rejjejjeZd d Zeed dZeoejdkoejjd-rejjejjeZd d ZeZdZyes.ejZWne k rFYnXddZ!d.ddZ"d/ddZ#ddZ$ddZ%ddZ&d0ddZ'ej(dZ)ej(dZ*ej(dZ+d1d d!Z,d"d#Z-da.d$d%Z/d&d'Z0d(d)Z1d*d+Z2dS)2aProvide access to Python's configuration information. The specific configuration variables available depend heavily on the platform and configuration. The values may be retrieved using get_config_var(name), and the list of variables is available via get_config_vars().keys(). Additional convenience functions are also available. Written by: Fred L. Drake, Jr. Email: N)DistutilsPlatformErrorZ_PYTHON_PROJECT_BASEnt\pcbuild\win32\pcbuild\amd64cCs.x(dD] }tjjtjj|d|rdSqWdS)N Setup.dist Setup.localModulesTF)rr)ospathisfilejoin)dfnr+/usr/lib64/python3.6/distutils/sysconfig.py_is_python_source_dir)s r_homecCstr ttSttS)N) _sys_homer project_baserrrr _python_build2srcCsdtjddS)zReturn a string containing the major and minor Python version, leaving off the patchlevel. Sample return values could be '1.5' or '2.2'. z%d.%dN)sys version_inforrrrget_python_versionDsrcCs|dkr|rtpt}tjdkrjtrL|r.tp,tStjjt dd}tjj |Sdt t }tjj|d|Stjdkrtjj|dSt dtjdS) aReturn the directory containing installed Python header files. If 'plat_specific' is false (the default), this is the path to the non-platform-specific header files, i.e. Python.h and so on; otherwise, this is the path to platform-specific header files (namely pyconfig.h). If 'prefix' is supplied, use it instead of sys.base_prefix or sys.base_exec_prefix -- i.e., ignore 'plat_specific'. NposixsrcdirZIncludepythonincluderzFI don't know where Python installs its C header files on platform '%s')BASE_EXEC_PREFIX BASE_PREFIXr name python_buildrrr r get_config_varnormpathr build_flagsr) plat_specificprefixZincdirZ python_dirrrrget_python_incLs     r)cCs|dkr&|r|rtpt}n |r"tp$t}tjdkrp|s8|r>d}nd}tjj||dt}|r`|Stjj|dSnrAZccZcxxoptZcflagsZccsharedZldsharedZ shlib_suffixarZar_flagsZnewccZcppr?Zcc_cmdrrrrBs\                         rBcCsDtr,tjdkr"tjjtptd}q6tp(t}n tdd}tjj|dS)z2Return full pathname of installed pyconfig.h file.rPCr)r'z pyconfig-64.h)r#r r"r r rrr))inc_dirrrrget_config_h_filenames    rLcCs\trtjjtptdStddd}djtt }t t j drL|dt j j 7}tjj||dS)zAReturn full pathname of installed Makefile from the Python build.Makefilerr)r'r.z config-{}{} _multiarchz-%s)r#r r r rrr/formatrr&hasattrrimplementationrN)Zlib_dirZ config_filerrrget_makefile_filenames  rRc Cs|dkr i}tjd}tjd}xx|j}|s0P|j|}|rz|jdd\}}y t|}Wntk rnYnX|||<q"|j|}|r"d||jd<q"W|S)zParse a config.h-style file. A dictionary containing name/value pairs is returned. If an optional dictionary is passed in as the second argument, it is used instead of a new dictionary. Nz"#define ([A-Z][A-Za-z0-9_]+) (.*) z&/[*] #undef ([A-Z][A-Za-z0-9_]+) [*]/ rrr)recompilereadlinematchgroupint ValueError)fpg define_rxundef_rxlinemnvrrrparse_config_hs(      rbz"([a-zA-Z][a-zA-Z0-9_]+)\s*=\s*(.*)z\$\(([A-Za-z][A-Za-z0-9_]*)\)z\${([A-Za-z][A-Za-z0-9_]*)}c Csddlm}||ddddd}|dkr*i}i}i}x|j}|dkrFPtj|}|r4|jdd\}} | j} | jdd } d | kr| ||<q4y t| } Wn$t k r| jdd ||<Yq4X| ||<q4Wd} x|rxt |D]} || } t j | pt j | }|rx|jd}d}||kr2t||}n||krBd}nx|tjkrZtj|}n`|| kr| jdr| dd| krd }n$d||krd}nt|d|}n d ||<}|r~| |jd}| d|j||} d |kr| || <nzy t| } Wn"t k r*| j|| <Yn X| || <|| =| jdr~| dd| kr~| dd} | |kr~| || <q|| =qWqW|jx.|jD]"\}} t| tr| j||<qW|j||S)zParse a Makefile-style file. A dictionary containing name/value pairs is returned. If an optional dictionary is passed in as the second argument, it is used instead of a new dictionary. r)TextFilersurrogateescape)Zstrip_commentsZ skip_blanksZ join_lineserrorsNrz$$r$r5r;r=TFPY_)r5r;r=)Zdistutils.text_filercrU _variable_rxrVrWstripreplacerXrYlist _findvar1_rxsearch _findvar2_rxstrr rErFendstartcloseitems isinstanceupdate)rr[rcrZdonenotdoner^r_r`ratmpvrenamed_variablesr"valuefounditemafterkrrrparse_makefiles                       rcCsZxTtj|ptj|}|rP|j\}}|d||j|jd||d}qPqW|S)aExpand Makefile-style variables -- "${foo}" or "$(foo)" -- in 'string' according to 'vars' (a dictionary mapping variable names to values). Variables not present in 'vars' are silently expanded to the empty string. The variable values in 'vars' should not contain further variable expansions; if 'vars' is the output of 'parse_makefile()', you're fine. Returns a variable-expanded version of 's'. rrN)rmrnrospangetrW)svarsr_Zbegrqrrrexpand_makefile_varss *rc CsVtjjddjtjtjttjddd}t |t t dgd}|j }ia t j|dS) z7Initialize the module as appropriate for POSIX systems._PYTHON_SYSCONFIGDATA_NAMEz+_sysconfigdata_{abi}_{platform}_{multiarch}rNr)abir@ multiarchbuild_time_varsrN)r rErrOrabiflagsr@getattrrQ __import__globalslocalsrrCrv)r"_temprrrr _init_posixsrcCs~i}tddd|d<tddd|d<tdd|d<tjd|d<d |d <tjd d |d <tjjtjj t j |d<|a dS)z+Initialize the module as appropriate for NTrr)r'r.LIBDEST BINLIBDEST)r' INCLUDEPY EXT_SUFFIXz.exeEXE.rVERSIONBINDIRN) r/r)_impextension_suffixesrrkr r dirnameabspathr executablerC)r[rrr_init_ntsrcGs^tdkr(tjdtj}|r(|niattd<ttd<tjd}|dk rV|td<tjdt}tjdkrtrtj j t }tj j ||}ntj j t }tj j tj j|td<totjdkr t}tj jtd o|tjkr tj j |td}tj j|td<tjd kr(d dl}|jt|rVg}x|D]}|jtj|q8W|StSdS) aWith no arguments, return a dictionary of all configuration variables relevant for the current platform. Generally this includes everything needed to build extensions and install both pure modules and extensions. On Unix, this means every variable defined in Python's installed Makefile; on Windows it's a much smaller set. With arguments, return a list of values that result from looking up each argument in the configuration variable dictionary. NZ_init_r( exec_prefixrSOrrr0r)rCrrr r"r-r,rr#r rrRr rr%isabsgetcwdrr@rAcustomize_config_varsappend)argsfuncrrbaserAvalsr"rrrrDs@       rDcCs*|dkrddl}|jdtdtj|S)zReturn the value of a single variable using the dictionary returned by 'get_config_vars()'. Equivalent to get_config_vars().get(name) rrNz SO is deprecated, use EXT_SUFFIXr)warningswarnDeprecationWarningrDr)r"rrrrr$sr$)rr)rr)rN)rrN)N)N)3__doc__rr rSrrerr r%r(r-rr, base_prefixr!base_exec_prefixr rErrrrr"lowerendswithrrrrr#r&rAttributeErrorrr)r/rBrLrRrbrTrirmrorrrCrrrDr$rrrr sZ      # +I      jJPK!DA88'__pycache__/msvccompiler.cpython-36.pycnu[3 \\@sdZddlZddlZddlmZmZmZmZmZddl m Z m Z m Z ddl mZdZy,ddlZdZeZejZejZejZejZWnhek ry4ddlZddlZdZeZejZejZejZejZWnek rejdYnXYnXerejejej ej!fZ"d d Z#d d Z$d dZ%GdddZ&ddZ'ddZ(ddZ)Gddde Z*e'dkrej+de*Z,ddl-m*Z*ddl-m&Z&dS)zdistutils.msvccompiler Contains MSVCCompiler, an implementation of the abstract CCompiler class for the Microsoft Visual Studio. N)DistutilsExecErrorDistutilsPlatformError CompileErrorLibError LinkError) CCompilergen_preprocess_optionsgen_lib_options)logFTzWarning: Can't read registry to find the necessary compiler setting Make sure that Python modules winreg, win32api or win32con are installed.cCsnyt||}Wntk r"dSXg}d}x||j kr>|}d|}y"|j|jg| |g|gWqhtk r8}zt|WYdd}~XqhXqhn||jkrtj j|}tj j|}yl|j|jgd|d|g|gtj jtj j|\}}tj j||d}|j|jgd|g|gWqhtk r}zt|WYdd}~XqhXqhntd||fd |}y&|j|jg| | ||g|Wqhtk rj}zt|WYdd}~XqhXqhW| S) Nz/cz/Tcz/Tpz/foz-hz-rz.rcz"Don't know how to compile %s to %sz/Fo)rXrkZ_setup_compilerextendrhrgr/rMr-abspath _c_extensions_cpp_extensionsrrspawnrbrrrtdirnamercrmrqrfr`)r)Zsourcesrvr'Z include_dirsdebug extra_preargsextra_postargsZdependsZ compile_infoobjectsZpp_optsZbuildZ compile_optsobjsrcrwZ input_optZ output_optmsgZh_dirZrc_dirr_Zrc_filerrrcompileWsj              zMSVCCompiler.compilec Cs|js|j|j||\}}|j||d}|j||r|d|g}|rJy|j|jg|Wqtk r}zt|WYdd}~XqXn t j d|dS)N)rvz/OUT:zskipping %s (up-to-date)) rXrk_fix_object_argslibrary_filename _need_linkr}rZrrr r) r)rZoutput_libnamervr target_langoutput_filenameZlib_argsrrrrcreate_static_libs zMSVCCompiler.create_static_libcCs|js|j|j||\}}|j|||}|\}}}|rL|jdt|t||||}|dk rptjj ||}|j ||r|t j kr| r|j dd}q|jdd}n| r|j }n|j}g}x|pgD]}|jd|qW||||d|g}|dk rLtjjtjj|\}}tjj tjj|d|j|}|jd|| r^| |dd<| rn|j| |jtjj|y|j|jg|Wn,tk r}zt|WYdd}~XnXn tjd|dS)Nz5I don't know what to do with 'runtime_library_dirs': r z/EXPORT:z/OUT:rz/IMPLIB:zskipping %s (up-to-date))rXrkrZ _fix_lib_argswarnstrr rMr-rfrrZ EXECUTABLErjrirrmrqr~rryZmkpathr}rarrr r)r)Z target_descrrrvZ librariesZ library_dirsZruntime_library_dirsZexport_symbolsrrrZ build_temprZ fixed_argsZlib_optsZldflagsZ export_optsZsymZld_argsZdll_nameZdll_extZ implib_filerrrrlinksV       zMSVCCompiler.linkcCsd|S)Nz /LIBPATH:r)r)dirrrrlibrary_dir_optionszMSVCCompiler.library_dir_optioncCs tddS)NztjdjdD]*}tjjtjj||}tjj|rH|SqHW|S)aReturn path to an MSVC executable program. Tries to find the program in several places: first, one of the MSVC program search paths from the registry; next, the directories in the PATH environment variable. If any of those work, return an absolute path that is known to exist. If none of them work, just return the original program name, 'exe'. ZPathr\)r]rMr-rfrzisfiler^rD)r)Zexer1fnrrrr_5s   zMSVCCompiler.find_exex86cCstsgS|d}|jdkr,d|j|jf}nd|j|f}xHtD]@}t||}|r@|jdkrr|jj||jdS||jdSq@W|jdkrx,tD]$}t|d|jdk r|jd PqWgS) zGet a list of devstudio directories (include, lib or path). Return a list of strings. The list will be empty if unable to access the registry or appropriate registry keys not found. z dirsrRz6%s\%0.1f\VC\VC_OBJECTS_PLATFORM_INFO\Win32\Directoriesz?%s\6.0\Build System\Components\Platforms\Win32 (%s)\Directoriesr\r:z%s\6.0NzIt seems you have Visual Studio 6 installed, but the expected registry settings are not present. You must at least run the Visual Studio GUI once so that these entries are created.) _can_read_regrSrUr,r rVr6rDr)r)r-platformrrrrrrrdKs(        zMSVCCompiler.get_msvc_pathscCs6|dkr|jd}n |j|}|r2dj|tj|<dS)zSet environment variable 'name' to an MSVC path type value. This is equivalent to a SET command prior to execution of spawned commands. rZZlibraryr\N)rdrfrMr^)r)rr1rrrreos   zMSVCCompiler.set_path_env_var)rrr)rrl)NNNrNNN)NrN) NNNNNrNNNN)r)r)r7r8r9__doc__Z compiler_typeZ executablesr{r|rrrtrprsruZstatic_lib_extensionZshared_lib_extensionZstatic_lib_formatZshared_lib_formatZ exe_extensionr+rkrxrrrrrrrr_rdrerrrrrQsP  B  V  F  $rQg @z3Importing new compiler from distutils.msvc9compiler)rQ)r&).rrArMZdistutils.errorsrrrrrZdistutils.ccompilerrrr Z distutilsr rwinregZhkey_modZ OpenKeyExr ZEnumKeyrZ EnumValuererrorr ImportErrorZwin32apiZwin32coninfoZ HKEY_USERSHKEY_CURRENT_USERHKEY_LOCAL_MACHINEZHKEY_CLASSES_ROOTr,rr rr&rHrLrPrQrZOldMSVCCompilerZdistutils.msvc9compilerrrrrs^      - 9   PK!  versionpredicate.pynu["""Module for parsing and testing package version predicate strings. """ import re import distutils.version import operator re_validPackage = re.compile(r"(?i)^\s*([a-z_]\w*(?:\.[a-z_]\w*)*)(.*)", re.ASCII) # (package) (rest) re_paren = re.compile(r"^\s*\((.*)\)\s*$") # (list) inside of parentheses re_splitComparison = re.compile(r"^\s*(<=|>=|<|>|!=|==)\s*([^\s,]+)\s*$") # (comp) (version) def splitUp(pred): """Parse a single version comparison. Return (comparison string, StrictVersion) """ res = re_splitComparison.match(pred) if not res: raise ValueError("bad package restriction syntax: %r" % pred) comp, verStr = res.groups() return (comp, distutils.version.StrictVersion(verStr)) compmap = {"<": operator.lt, "<=": operator.le, "==": operator.eq, ">": operator.gt, ">=": operator.ge, "!=": operator.ne} class VersionPredicate: """Parse and test package version predicates. >>> v = VersionPredicate('pyepat.abc (>1.0, <3333.3a1, !=1555.1b3)') The `name` attribute provides the full dotted name that is given:: >>> v.name 'pyepat.abc' The str() of a `VersionPredicate` provides a normalized human-readable version of the expression:: >>> print(v) pyepat.abc (> 1.0, < 3333.3a1, != 1555.1b3) The `satisfied_by()` method can be used to determine with a given version number is included in the set described by the version restrictions:: >>> v.satisfied_by('1.1') True >>> v.satisfied_by('1.4') True >>> v.satisfied_by('1.0') False >>> v.satisfied_by('4444.4') False >>> v.satisfied_by('1555.1b3') False `VersionPredicate` is flexible in accepting extra whitespace:: >>> v = VersionPredicate(' pat( == 0.1 ) ') >>> v.name 'pat' >>> v.satisfied_by('0.1') True >>> v.satisfied_by('0.2') False If any version numbers passed in do not conform to the restrictions of `StrictVersion`, a `ValueError` is raised:: >>> v = VersionPredicate('p1.p2.p3.p4(>=1.0, <=1.3a1, !=1.2zb3)') Traceback (most recent call last): ... ValueError: invalid version number '1.2zb3' It the module or package name given does not conform to what's allowed as a legal module or package name, `ValueError` is raised:: >>> v = VersionPredicate('foo-bar') Traceback (most recent call last): ... ValueError: expected parenthesized list: '-bar' >>> v = VersionPredicate('foo bar (12.21)') Traceback (most recent call last): ... ValueError: expected parenthesized list: 'bar (12.21)' """ def __init__(self, versionPredicateStr): """Parse a version predicate string. """ # Fields: # name: package name # pred: list of (comparison string, StrictVersion) versionPredicateStr = versionPredicateStr.strip() if not versionPredicateStr: raise ValueError("empty package restriction") match = re_validPackage.match(versionPredicateStr) if not match: raise ValueError("bad package name in %r" % versionPredicateStr) self.name, paren = match.groups() paren = paren.strip() if paren: match = re_paren.match(paren) if not match: raise ValueError("expected parenthesized list: %r" % paren) str = match.groups()[0] self.pred = [splitUp(aPred) for aPred in str.split(",")] if not self.pred: raise ValueError("empty parenthesized list in %r" % versionPredicateStr) else: self.pred = [] def __str__(self): if self.pred: seq = [cond + " " + str(ver) for cond, ver in self.pred] return self.name + " (" + ", ".join(seq) + ")" else: return self.name def satisfied_by(self, version): """True if version is compatible with all the predicates in self. The parameter version must be acceptable to the StrictVersion constructor. It may be either a string or StrictVersion. """ for cond, ver in self.pred: if not compmap[cond](version, ver): return False return True _provision_rx = None def split_provision(value): """Return the name and optional version number of a provision. The version number, if given, will be returned as a `StrictVersion` instance, otherwise it will be `None`. >>> split_provision('mypkg') ('mypkg', None) >>> split_provision(' mypkg( 1.2 ) ') ('mypkg', StrictVersion ('1.2')) """ global _provision_rx if _provision_rx is None: _provision_rx = re.compile( "([a-zA-Z_]\w*(?:\.[a-zA-Z_]\w*)*)(?:\s*\(\s*([^)\s]+)\s*\))?$", re.ASCII) value = value.strip() m = _provision_rx.match(value) if not m: raise ValueError("illegal provides specification: %r" % value) ver = m.group(2) or None if ver: ver = distutils.version.StrictVersion(ver) return m.group(1), ver PK!,{''READMEnu[This directory contains the Distutils package. There's a full documentation available at: http://docs.python.org/distutils/ The Distutils-SIG web page is also a good starting point: http://www.python.org/sigs/distutils-sig/ WARNING : Distutils must remain compatible with 2.3 $Id$ PK!]P"X"X sysconfig.pynu["""Provide access to Python's configuration information. The specific configuration variables available depend heavily on the platform and configuration. The values may be retrieved using get_config_var(name), and the list of variables is available via get_config_vars().keys(). Additional convenience functions are also available. Written by: Fred L. Drake, Jr. Email: """ import os import re import sys from .errors import DistutilsPlatformError # These are needed in a couple of spots, so just compute them once. PREFIX = os.path.normpath(sys.prefix) EXEC_PREFIX = os.path.normpath(sys.exec_prefix) BASE_PREFIX = os.path.normpath(sys.base_prefix) BASE_EXEC_PREFIX = os.path.normpath(sys.base_exec_prefix) # Path to the base directory of the project. On Windows the binary may # live in project/PCBuild9. If we're dealing with an x64 Windows build, # it'll live in project/PCbuild/amd64. # set for cross builds if "_PYTHON_PROJECT_BASE" in os.environ: project_base = os.path.abspath(os.environ["_PYTHON_PROJECT_BASE"]) else: project_base = os.path.dirname(os.path.abspath(sys.executable)) if os.name == "nt" and "pcbuild" in project_base[-8:].lower(): project_base = os.path.abspath(os.path.join(project_base, os.path.pardir)) # PC/VS7.1 if os.name == "nt" and "\\pc\\v" in project_base[-10:].lower(): project_base = os.path.abspath(os.path.join(project_base, os.path.pardir, os.path.pardir)) # PC/AMD64 if os.name == "nt" and "\\pcbuild\\amd64" in project_base[-14:].lower(): project_base = os.path.abspath(os.path.join(project_base, os.path.pardir, os.path.pardir)) # python_build: (Boolean) if true, we're either building Python or # building an extension with an un-installed Python, so we use # different (hard-wired) directories. # Setup.local is available for Makefile builds including VPATH builds, # Setup.dist is available on Windows def _is_python_source_dir(d): for fn in ("Setup.dist", "Setup.local"): if os.path.isfile(os.path.join(d, "Modules", fn)): return True return False _sys_home = getattr(sys, '_home', None) if _sys_home and os.name == 'nt' and \ _sys_home.lower().endswith(('pcbuild', 'pcbuild\\amd64')): _sys_home = os.path.dirname(_sys_home) if _sys_home.endswith('pcbuild'): # must be amd64 _sys_home = os.path.dirname(_sys_home) def _python_build(): if _sys_home: return _is_python_source_dir(_sys_home) return _is_python_source_dir(project_base) python_build = _python_build() # Calculate the build qualifier flags if they are defined. Adding the flags # to the include and lib directories only makes sense for an installation, not # an in-source build. build_flags = '' try: if not python_build: build_flags = sys.abiflags except AttributeError: # It's not a configure-based build, so the sys module doesn't have # this attribute, which is fine. pass def get_python_version(): """Return a string containing the major and minor Python version, leaving off the patchlevel. Sample return values could be '1.5' or '2.2'. """ return sys.version[:3] def get_python_inc(plat_specific=0, prefix=None): """Return the directory containing installed Python header files. If 'plat_specific' is false (the default), this is the path to the non-platform-specific header files, i.e. Python.h and so on; otherwise, this is the path to platform-specific header files (namely pyconfig.h). If 'prefix' is supplied, use it instead of sys.base_prefix or sys.base_exec_prefix -- i.e., ignore 'plat_specific'. """ if prefix is None: prefix = plat_specific and BASE_EXEC_PREFIX or BASE_PREFIX if os.name == "posix": if python_build: # Assume the executable is in the build directory. The # pyconfig.h file should be in the same directory. Since # the build directory may not be the source directory, we # must use "srcdir" from the makefile to find the "Include" # directory. base = _sys_home or project_base if plat_specific: return base if _sys_home: incdir = os.path.join(_sys_home, get_config_var('AST_H_DIR')) else: incdir = os.path.join(get_config_var('srcdir'), 'Include') return os.path.normpath(incdir) python_dir = 'python' + get_python_version() + build_flags return os.path.join(prefix, "include", python_dir) elif os.name == "nt": return os.path.join(prefix, "include") elif os.name == "os2": return os.path.join(prefix, "Include") else: raise DistutilsPlatformError( "I don't know where Python installs its C header files " "on platform '%s'" % os.name) def get_python_lib(plat_specific=0, standard_lib=0, prefix=None): """Return the directory containing the Python library (standard or site additions). If 'plat_specific' is true, return the directory containing platform-specific modules, i.e. any module from a non-pure-Python module distribution; otherwise, return the platform-shared library directory. If 'standard_lib' is true, return the directory containing standard Python library modules; otherwise, return the directory for site-specific modules. If 'prefix' is supplied, use it instead of sys.base_prefix or sys.base_exec_prefix -- i.e., ignore 'plat_specific'. """ if prefix is None: if standard_lib: prefix = plat_specific and BASE_EXEC_PREFIX or BASE_PREFIX else: prefix = plat_specific and EXEC_PREFIX or PREFIX if os.name == "posix": if plat_specific or standard_lib: lib = "lib64" else: lib = "lib" libpython = os.path.join(prefix, lib, "python" + get_python_version()) if standard_lib: return libpython else: return os.path.join(libpython, "site-packages") elif os.name == "nt": if standard_lib: return os.path.join(prefix, "Lib") else: if get_python_version() < "2.2": return prefix else: return os.path.join(prefix, "Lib", "site-packages") elif os.name == "os2": if standard_lib: return os.path.join(prefix, "Lib") else: return os.path.join(prefix, "Lib", "site-packages") else: raise DistutilsPlatformError( "I don't know where Python installs its library " "on platform '%s'" % os.name) def customize_compiler(compiler): """Do any platform-specific customization of a CCompiler instance. Mainly needed on Unix, so we can plug in the information that varies across Unices and is stored in Python's Makefile. """ if compiler.compiler_type == "unix": if sys.platform == "darwin": # Perform first-time customization of compiler-related # config vars on OS X now that we know we need a compiler. # This is primarily to support Pythons from binary # installers. The kind and paths to build tools on # the user system may vary significantly from the system # that Python itself was built on. Also the user OS # version and build tools may not support the same set # of CPU architectures for universal builds. global _config_vars if not _config_vars.get('CUSTOMIZED_OSX_COMPILER', ''): import _osx_support _osx_support.customize_compiler(_config_vars) _config_vars['CUSTOMIZED_OSX_COMPILER'] = 'True' (cc, cxx, opt, cflags, ccshared, ldshared, shlib_suffix, ar, ar_flags) = \ get_config_vars('CC', 'CXX', 'OPT', 'CFLAGS', 'CCSHARED', 'LDSHARED', 'SHLIB_SUFFIX', 'AR', 'ARFLAGS') if 'CC' in os.environ: newcc = os.environ['CC'] if (sys.platform == 'darwin' and 'LDSHARED' not in os.environ and ldshared.startswith(cc)): # On OS X, if CC is overridden, use that as the default # command for LDSHARED as well ldshared = newcc + ldshared[len(cc):] cc = newcc if 'CXX' in os.environ: cxx = os.environ['CXX'] if 'LDSHARED' in os.environ: ldshared = os.environ['LDSHARED'] if 'CPP' in os.environ: cpp = os.environ['CPP'] else: cpp = cc + " -E" # not always if 'LDFLAGS' in os.environ: ldshared = ldshared + ' ' + os.environ['LDFLAGS'] if 'CFLAGS' in os.environ: cflags = opt + ' ' + os.environ['CFLAGS'] ldshared = ldshared + ' ' + os.environ['CFLAGS'] if 'CPPFLAGS' in os.environ: cpp = cpp + ' ' + os.environ['CPPFLAGS'] cflags = cflags + ' ' + os.environ['CPPFLAGS'] ldshared = ldshared + ' ' + os.environ['CPPFLAGS'] if 'AR' in os.environ: ar = os.environ['AR'] if 'ARFLAGS' in os.environ: archiver = ar + ' ' + os.environ['ARFLAGS'] else: archiver = ar + ' ' + ar_flags cc_cmd = cc + ' ' + cflags compiler.set_executables( preprocessor=cpp, compiler=cc_cmd, compiler_so=cc_cmd + ' ' + ccshared, compiler_cxx=cxx, linker_so=ldshared, linker_exe=cc, archiver=archiver) compiler.shared_lib_extension = shlib_suffix def get_config_h_filename(): """Return full pathname of installed pyconfig.h file.""" if python_build: if os.name == "nt": inc_dir = os.path.join(_sys_home or project_base, "PC") else: inc_dir = _sys_home or project_base else: inc_dir = get_python_inc(plat_specific=1) if get_python_version() < '2.2': config_h = 'config.h' else: # The name of the config.h file changed in 2.2 config_h = 'pyconfig-64.h' return os.path.join(inc_dir, config_h) def get_makefile_filename(): """Return full pathname of installed Makefile from the Python build.""" if python_build: return os.path.join(_sys_home or project_base, "Makefile") lib_dir = get_python_lib(plat_specific=0, standard_lib=1) config_file = 'config-{}{}'.format(get_python_version(), build_flags) return os.path.join(lib_dir, config_file, 'Makefile') def parse_config_h(fp, g=None): """Parse a config.h-style file. A dictionary containing name/value pairs is returned. If an optional dictionary is passed in as the second argument, it is used instead of a new dictionary. """ if g is None: g = {} define_rx = re.compile("#define ([A-Z][A-Za-z0-9_]+) (.*)\n") undef_rx = re.compile("/[*] #undef ([A-Z][A-Za-z0-9_]+) [*]/\n") # while True: line = fp.readline() if not line: break m = define_rx.match(line) if m: n, v = m.group(1, 2) try: v = int(v) except ValueError: pass g[n] = v else: m = undef_rx.match(line) if m: g[m.group(1)] = 0 return g # Regexes needed for parsing Makefile (and similar syntaxes, # like old-style Setup files). _variable_rx = re.compile("([a-zA-Z][a-zA-Z0-9_]+)\s*=\s*(.*)") _findvar1_rx = re.compile(r"\$\(([A-Za-z][A-Za-z0-9_]*)\)") _findvar2_rx = re.compile(r"\${([A-Za-z][A-Za-z0-9_]*)}") def parse_makefile(fn, g=None): """Parse a Makefile-style file. A dictionary containing name/value pairs is returned. If an optional dictionary is passed in as the second argument, it is used instead of a new dictionary. """ from distutils.text_file import TextFile fp = TextFile(fn, strip_comments=1, skip_blanks=1, join_lines=1, errors="surrogateescape") if g is None: g = {} done = {} notdone = {} while True: line = fp.readline() if line is None: # eof break m = _variable_rx.match(line) if m: n, v = m.group(1, 2) v = v.strip() # `$$' is a literal `$' in make tmpv = v.replace('$$', '') if "$" in tmpv: notdone[n] = v else: try: v = int(v) except ValueError: # insert literal `$' done[n] = v.replace('$$', '$') else: done[n] = v # Variables with a 'PY_' prefix in the makefile. These need to # be made available without that prefix through sysconfig. # Special care is needed to ensure that variable expansion works, even # if the expansion uses the name without a prefix. renamed_variables = ('CFLAGS', 'LDFLAGS', 'CPPFLAGS') # do variable interpolation here while notdone: for name in list(notdone): value = notdone[name] m = _findvar1_rx.search(value) or _findvar2_rx.search(value) if m: n = m.group(1) found = True if n in done: item = str(done[n]) elif n in notdone: # get it on a subsequent round found = False elif n in os.environ: # do it like make: fall back to environment item = os.environ[n] elif n in renamed_variables: if name.startswith('PY_') and name[3:] in renamed_variables: item = "" elif 'PY_' + n in notdone: found = False else: item = str(done['PY_' + n]) else: done[n] = item = "" if found: after = value[m.end():] value = value[:m.start()] if item.strip() not in value: value += item value += after if "$" in after: notdone[name] = value else: try: value = int(value) except ValueError: done[name] = value.strip() else: done[name] = value del notdone[name] if name.startswith('PY_') \ and name[3:] in renamed_variables: name = name[3:] if name not in done: done[name] = value else: # bogus variable reference; just drop it since we can't deal del notdone[name] fp.close() # strip spurious spaces for k, v in done.items(): if isinstance(v, str): done[k] = v.strip() # save the results in the global dictionary g.update(done) return g def expand_makefile_vars(s, vars): """Expand Makefile-style variables -- "${foo}" or "$(foo)" -- in 'string' according to 'vars' (a dictionary mapping variable names to values). Variables not present in 'vars' are silently expanded to the empty string. The variable values in 'vars' should not contain further variable expansions; if 'vars' is the output of 'parse_makefile()', you're fine. Returns a variable-expanded version of 's'. """ # This algorithm does multiple expansion, so if vars['foo'] contains # "${bar}", it will expand ${foo} to ${bar}, and then expand # ${bar}... and so forth. This is fine as long as 'vars' comes from # 'parse_makefile()', which takes care of such expansions eagerly, # according to make's variable expansion semantics. while True: m = _findvar1_rx.search(s) or _findvar2_rx.search(s) if m: (beg, end) = m.span() s = s[0:beg] + vars.get(m.group(1)) + s[end:] else: break return s _config_vars = None def _init_posix(): """Initialize the module as appropriate for POSIX systems.""" g = {} # load the installed Makefile: try: filename = get_makefile_filename() parse_makefile(filename, g) except IOError as msg: my_msg = "invalid Python installation: unable to open %s" % filename if hasattr(msg, "strerror"): my_msg = my_msg + " (%s)" % msg.strerror raise DistutilsPlatformError(my_msg) # load the installed pyconfig.h: try: filename = get_config_h_filename() with open(filename) as file: parse_config_h(file, g) except IOError as msg: my_msg = "invalid Python installation: unable to open %s" % filename if hasattr(msg, "strerror"): my_msg = my_msg + " (%s)" % msg.strerror raise DistutilsPlatformError(my_msg) # On AIX, there are wrong paths to the linker scripts in the Makefile # -- these paths are relative to the Python source, but when installed # the scripts are in another directory. if python_build: g['LDSHARED'] = g['BLDSHARED'] elif get_python_version() < '2.1': # The following two branches are for 1.5.2 compatibility. if sys.platform == 'aix4': # what about AIX 3.x ? # Linker script is in the config directory, not in Modules as the # Makefile says. python_lib = get_python_lib(standard_lib=1) ld_so_aix = os.path.join(python_lib, 'config', 'ld_so_aix') python_exp = os.path.join(python_lib, 'config', 'python.exp') g['LDSHARED'] = "%s %s -bI:%s" % (ld_so_aix, g['CC'], python_exp) global _config_vars _config_vars = g def _init_nt(): """Initialize the module as appropriate for NT""" g = {} # set basic install directories g['LIBDEST'] = get_python_lib(plat_specific=0, standard_lib=1) g['BINLIBDEST'] = get_python_lib(plat_specific=1, standard_lib=1) # XXX hmmm.. a normal install puts include files here g['INCLUDEPY'] = get_python_inc(plat_specific=0) g['SO'] = '.pyd' g['EXT_SUFFIX'] = '.pyd' g['EXE'] = ".exe" g['VERSION'] = get_python_version().replace(".", "") g['BINDIR'] = os.path.dirname(os.path.abspath(sys.executable)) global _config_vars _config_vars = g def _init_os2(): """Initialize the module as appropriate for OS/2""" g = {} # set basic install directories g['LIBDEST'] = get_python_lib(plat_specific=0, standard_lib=1) g['BINLIBDEST'] = get_python_lib(plat_specific=1, standard_lib=1) # XXX hmmm.. a normal install puts include files here g['INCLUDEPY'] = get_python_inc(plat_specific=0) g['SO'] = '.pyd' g['EXT_SUFFIX'] = '.pyd' g['EXE'] = ".exe" global _config_vars _config_vars = g def get_config_vars(*args): """With no arguments, return a dictionary of all configuration variables relevant for the current platform. Generally this includes everything needed to build extensions and install both pure modules and extensions. On Unix, this means every variable defined in Python's installed Makefile; on Windows it's a much smaller set. With arguments, return a list of values that result from looking up each argument in the configuration variable dictionary. """ global _config_vars if _config_vars is None: func = globals().get("_init_" + os.name) if func: func() else: _config_vars = {} # Normalized versions of prefix and exec_prefix are handy to have; # in fact, these are the standard versions used most places in the # Distutils. _config_vars['prefix'] = PREFIX _config_vars['exec_prefix'] = EXEC_PREFIX # Always convert srcdir to an absolute path srcdir = _config_vars.get('srcdir', project_base) if os.name == 'posix': if python_build: # If srcdir is a relative path (typically '.' or '..') # then it should be interpreted relative to the directory # containing Makefile. base = os.path.dirname(get_makefile_filename()) srcdir = os.path.join(base, srcdir) else: # srcdir is not meaningful since the installation is # spread about the filesystem. We choose the # directory containing the Makefile since we know it # exists. srcdir = os.path.dirname(get_makefile_filename()) _config_vars['srcdir'] = os.path.abspath(os.path.normpath(srcdir)) # Convert srcdir into an absolute path if it appears necessary. # Normally it is relative to the build directory. However, during # testing, for example, we might be running a non-installed python # from a different directory. if python_build and os.name == "posix": base = project_base if (not os.path.isabs(_config_vars['srcdir']) and base != os.getcwd()): # srcdir is relative and we are not in the same directory # as the executable. Assume executable is in the build # directory and make srcdir absolute. srcdir = os.path.join(base, _config_vars['srcdir']) _config_vars['srcdir'] = os.path.normpath(srcdir) # OS X platforms require special customization to handle # multi-architecture, multi-os-version installers if sys.platform == 'darwin': import _osx_support _osx_support.customize_config_vars(_config_vars) if args: vals = [] for name in args: vals.append(_config_vars.get(name)) return vals else: return _config_vars def get_config_var(name): """Return the value of a single variable using the dictionary returned by 'get_config_vars()'. Equivalent to get_config_vars().get(name) """ return get_config_vars().get(name) PK!c&q""core.pynu["""distutils.core The only module that needs to be imported to use the Distutils; provides the 'setup' function (which is to be called from the setup script). Also indirectly provides the Distribution and Command classes, although they are really defined in distutils.dist and distutils.cmd. """ import os import sys from distutils.debug import DEBUG from distutils.errors import * # Mainly import these so setup scripts can "from distutils.core import" them. from distutils.dist import Distribution from distutils.cmd import Command from distutils.config import PyPIRCCommand from distutils.extension import Extension # This is a barebones help message generated displayed when the user # runs the setup script with no arguments at all. More useful help # is generated with various --help options: global help, list commands, # and per-command help. USAGE = """\ usage: %(script)s [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...] or: %(script)s --help [cmd1 cmd2 ...] or: %(script)s --help-commands or: %(script)s cmd --help """ def gen_usage (script_name): script = os.path.basename(script_name) return USAGE % vars() # Some mild magic to control the behaviour of 'setup()' from 'run_setup()'. _setup_stop_after = None _setup_distribution = None # Legal keyword arguments for the setup() function setup_keywords = ('distclass', 'script_name', 'script_args', 'options', 'name', 'version', 'author', 'author_email', 'maintainer', 'maintainer_email', 'url', 'license', 'description', 'long_description', 'keywords', 'platforms', 'classifiers', 'download_url', 'requires', 'provides', 'obsoletes', ) # Legal keyword arguments for the Extension constructor extension_keywords = ('name', 'sources', 'include_dirs', 'define_macros', 'undef_macros', 'library_dirs', 'libraries', 'runtime_library_dirs', 'extra_objects', 'extra_compile_args', 'extra_link_args', 'swig_opts', 'export_symbols', 'depends', 'language') def setup (**attrs): """The gateway to the Distutils: do everything your setup script needs to do, in a highly flexible and user-driven way. Briefly: create a Distribution instance; find and parse config files; parse the command line; run each Distutils command found there, customized by the options supplied to 'setup()' (as keyword arguments), in config files, and on the command line. The Distribution instance might be an instance of a class supplied via the 'distclass' keyword argument to 'setup'; if no such class is supplied, then the Distribution class (in dist.py) is instantiated. All other arguments to 'setup' (except for 'cmdclass') are used to set attributes of the Distribution instance. The 'cmdclass' argument, if supplied, is a dictionary mapping command names to command classes. Each command encountered on the command line will be turned into a command class, which is in turn instantiated; any class found in 'cmdclass' is used in place of the default, which is (for command 'foo_bar') class 'foo_bar' in module 'distutils.command.foo_bar'. The command class must provide a 'user_options' attribute which is a list of option specifiers for 'distutils.fancy_getopt'. Any command-line options between the current and the next command are used to set attributes of the current command object. When the entire command-line has been successfully parsed, calls the 'run()' method on each command object in turn. This method will be driven entirely by the Distribution object (which each command object has a reference to, thanks to its constructor), and the command-specific options that became attributes of each command object. """ global _setup_stop_after, _setup_distribution # Determine the distribution class -- either caller-supplied or # our Distribution (see below). klass = attrs.get('distclass') if klass: del attrs['distclass'] else: klass = Distribution if 'script_name' not in attrs: attrs['script_name'] = os.path.basename(sys.argv[0]) if 'script_args' not in attrs: attrs['script_args'] = sys.argv[1:] # Create the Distribution instance, using the remaining arguments # (ie. everything except distclass) to initialize it try: _setup_distribution = dist = klass(attrs) except DistutilsSetupError as msg: if 'name' not in attrs: raise SystemExit("error in setup command: %s" % msg) else: raise SystemExit("error in %s setup command: %s" % \ (attrs['name'], msg)) if _setup_stop_after == "init": return dist # Find and parse the config file(s): they will override options from # the setup script, but be overridden by the command line. dist.parse_config_files() if DEBUG: print("options (after parsing config files):") dist.dump_option_dicts() if _setup_stop_after == "config": return dist # Parse the command line; any command-line errors are the end user's # fault, so turn them into SystemExit to suppress tracebacks. try: ok = dist.parse_command_line() except DistutilsArgError as msg: raise SystemExit(gen_usage(dist.script_name) + "\nerror: %s" % msg) if DEBUG: print("options (after parsing command line):") dist.dump_option_dicts() if _setup_stop_after == "commandline": return dist # And finally, run all the commands found on the command line. if ok: try: dist.run_commands() except KeyboardInterrupt: raise SystemExit("interrupted") except (IOError, os.error) as exc: if DEBUG: sys.stderr.write("error: %s\n" % (exc,)) raise else: raise SystemExit("error: %s" % (exc,)) except (DistutilsError, CCompilerError) as msg: if DEBUG: raise else: raise SystemExit("error: " + str(msg)) return dist # setup () def run_setup (script_name, script_args=None, stop_after="run"): """Run a setup script in a somewhat controlled environment, and return the Distribution instance that drives things. This is useful if you need to find out the distribution meta-data (passed as keyword args from 'script' to 'setup()', or the contents of the config files or command-line. 'script_name' is a file that will be read and run with 'exec()'; 'sys.argv[0]' will be replaced with 'script' for the duration of the call. 'script_args' is a list of strings; if supplied, 'sys.argv[1:]' will be replaced by 'script_args' for the duration of the call. 'stop_after' tells 'setup()' when to stop processing; possible values: init stop after the Distribution instance has been created and populated with the keyword arguments to 'setup()' config stop after config files have been parsed (and their data stored in the Distribution instance) commandline stop after the command-line ('sys.argv[1:]' or 'script_args') have been parsed (and the data stored in the Distribution) run [default] stop after all commands have been run (the same as if 'setup()' had been called in the usual way Returns the Distribution instance, which provides all information used to drive the Distutils. """ if stop_after not in ('init', 'config', 'commandline', 'run'): raise ValueError("invalid value for 'stop_after': %r" % (stop_after,)) global _setup_stop_after, _setup_distribution _setup_stop_after = stop_after save_argv = sys.argv g = {'__file__': script_name} l = {} try: try: sys.argv[0] = script_name if script_args is not None: sys.argv[1:] = script_args with open(script_name, 'rb') as f: exec(f.read(), g, l) finally: sys.argv = save_argv _setup_stop_after = None except SystemExit: # Hmm, should we do something if exiting with a non-zero code # (ie. error)? pass except: raise if _setup_distribution is None: raise RuntimeError(("'distutils.core.setup()' was never called -- " "perhaps '%s' is not a Distutils setup script?") % \ script_name) # I wonder if the setup script's namespace -- g and l -- would be of # any interest to callers? #print "_setup_distribution:", _setup_distribution return _setup_distribution # run_setup () PK!;command/__init__.pynu["""distutils.command Package containing implementation of all the standard Distutils commands.""" __all__ = ['build', 'build_py', 'build_ext', 'build_clib', 'build_scripts', 'clean', 'install', 'install_lib', 'install_headers', 'install_scripts', 'install_data', 'sdist', 'register', 'bdist', 'bdist_dumb', 'bdist_rpm', 'bdist_wininst', 'check', 'upload', # These two are reserved for future use: #'bdist_sdux', #'bdist_pkgtool', # Note: # bdist_packager is not included because it only provides # an abstract base class ] PK!, command/clean.pynu["""distutils.command.clean Implements the Distutils 'clean' command.""" # contributed by Bastian Kleineidam , added 2000-03-18 import os from distutils.core import Command from distutils.dir_util import remove_tree from distutils import log class clean(Command): description = "clean up temporary files from 'build' command" user_options = [ ('build-base=', 'b', "base build directory (default: 'build.build-base')"), ('build-lib=', None, "build directory for all modules (default: 'build.build-lib')"), ('build-temp=', 't', "temporary build directory (default: 'build.build-temp')"), ('build-scripts=', None, "build directory for scripts (default: 'build.build-scripts')"), ('bdist-base=', None, "temporary directory for built distributions"), ('all', 'a', "remove all build output, not just temporary by-products") ] boolean_options = ['all'] def initialize_options(self): self.build_base = None self.build_lib = None self.build_temp = None self.build_scripts = None self.bdist_base = None self.all = None def finalize_options(self): self.set_undefined_options('build', ('build_base', 'build_base'), ('build_lib', 'build_lib'), ('build_scripts', 'build_scripts'), ('build_temp', 'build_temp')) self.set_undefined_options('bdist', ('bdist_base', 'bdist_base')) def run(self): # remove the build/temp. directory (unless it's already # gone) if os.path.exists(self.build_temp): remove_tree(self.build_temp, dry_run=self.dry_run) else: log.debug("'%s' does not exist -- can't clean it", self.build_temp) if self.all: # remove build directories for directory in (self.build_lib, self.bdist_base, self.build_scripts): if os.path.exists(directory): remove_tree(directory, dry_run=self.dry_run) else: log.warn("'%s' does not exist -- can't clean it", directory) # just for the heck of it, try to remove the base build directory: # we might have emptied it right now, but if not we don't care if not self.dry_run: try: os.rmdir(self.build_base) log.info("removing '%s'", self.build_base) except OSError: pass PK!ˈ;qqcommand/bdist.pynu["""distutils.command.bdist Implements the Distutils 'bdist' command (create a built [binary] distribution).""" import os from distutils.core import Command from distutils.errors import * from distutils.util import get_platform def show_formats(): """Print list of available formats (arguments to "--format" option). """ from distutils.fancy_getopt import FancyGetopt formats = [] for format in bdist.format_commands: formats.append(("formats=" + format, None, bdist.format_command[format][1])) pretty_printer = FancyGetopt(formats) pretty_printer.print_help("List of available distribution formats:") class bdist(Command): description = "create a built (binary) distribution" user_options = [('bdist-base=', 'b', "temporary directory for creating built distributions"), ('plat-name=', 'p', "platform name to embed in generated filenames " "(default: %s)" % get_platform()), ('formats=', None, "formats for distribution (comma-separated list)"), ('dist-dir=', 'd', "directory to put final built distributions in " "[default: dist]"), ('skip-build', None, "skip rebuilding everything (for testing/debugging)"), ] boolean_options = ['skip-build'] help_options = [ ('help-formats', None, "lists available distribution formats", show_formats), ] # The following commands do not take a format option from bdist no_format_option = ('bdist_rpm',) # This won't do in reality: will need to distinguish RPM-ish Linux, # Debian-ish Linux, Solaris, FreeBSD, ..., Windows, Mac OS. default_format = {'posix': 'gztar', 'nt': 'zip', 'os2': 'zip'} # Establish the preferred order (for the --help-formats option). format_commands = ['rpm', 'gztar', 'bztar', 'ztar', 'tar', 'wininst', 'zip', 'msi'] # And the real information. format_command = {'rpm': ('bdist_rpm', "RPM distribution"), 'gztar': ('bdist_dumb', "gzip'ed tar file"), 'bztar': ('bdist_dumb', "bzip2'ed tar file"), 'ztar': ('bdist_dumb', "compressed tar file"), 'tar': ('bdist_dumb', "tar file"), 'wininst': ('bdist_wininst', "Windows executable installer"), 'zip': ('bdist_dumb', "ZIP file"), 'msi': ('bdist_msi', "Microsoft Installer") } def initialize_options(self): self.bdist_base = None self.plat_name = None self.formats = None self.dist_dir = None self.skip_build = 0 def finalize_options(self): # have to finalize 'plat_name' before 'bdist_base' if self.plat_name is None: if self.skip_build: self.plat_name = get_platform() else: self.plat_name = self.get_finalized_command('build').plat_name # 'bdist_base' -- parent of per-built-distribution-format # temporary directories (eg. we'll probably have # "build/bdist./dumb", "build/bdist./rpm", etc.) if self.bdist_base is None: build_base = self.get_finalized_command('build').build_base self.bdist_base = os.path.join(build_base, 'bdist.' + self.plat_name) self.ensure_string_list('formats') if self.formats is None: try: self.formats = [self.default_format[os.name]] except KeyError: raise DistutilsPlatformError( "don't know how to create built distributions " "on platform %s" % os.name) if self.dist_dir is None: self.dist_dir = "dist" def run(self): # Figure out which sub-commands we need to run. commands = [] for format in self.formats: try: commands.append(self.format_command[format][0]) except KeyError: raise DistutilsOptionError("invalid format '%s'" % format) # Reinitialize and run each command. for i in range(len(self.formats)): cmd_name = commands[i] sub_cmd = self.reinitialize_command(cmd_name) if cmd_name not in self.no_format_option: sub_cmd.format = self.formats[i] # If we're going to need to run this command again, tell it to # keep its temporary files around so subsequent runs go faster. if cmd_name in commands[i+1:]: sub_cmd.keep_temp = 1 self.run_command(cmd_name) PK!zw@u k kcommand/install.pynu["""distutils.command.install Implements the Distutils 'install' command.""" import sys import os from distutils import log from distutils.core import Command from distutils.debug import DEBUG from distutils.sysconfig import get_config_vars from distutils.errors import DistutilsPlatformError from distutils.file_util import write_file from distutils.util import convert_path, subst_vars, change_root from distutils.util import get_platform from distutils.errors import DistutilsOptionError # this keeps compatibility from 2.3 to 2.5 if sys.version < "2.6": USER_BASE = None USER_SITE = None HAS_USER_SITE = False else: from site import USER_BASE from site import USER_SITE HAS_USER_SITE = True if sys.version < "2.2": WINDOWS_SCHEME = { 'purelib': '$base', 'platlib': '$base', 'headers': '$base/Include/$dist_name', 'scripts': '$base/Scripts', 'data' : '$base', } else: WINDOWS_SCHEME = { 'purelib': '$base/Lib/site-packages', 'platlib': '$base/Lib/site-packages', 'headers': '$base/Include/$dist_name', 'scripts': '$base/Scripts', 'data' : '$base', } INSTALL_SCHEMES = { 'unix_prefix': { 'purelib': '$base/lib/python$py_version_short/site-packages', 'platlib': '$platbase/lib64/python$py_version_short/site-packages', 'headers': '$base/include/python$py_version_short$abiflags/$dist_name', 'scripts': '$base/bin', 'data' : '$base', }, 'unix_home': { 'purelib': '$base/lib/python', 'platlib': '$base/lib64/python', 'headers': '$base/include/python/$dist_name', 'scripts': '$base/bin', 'data' : '$base', }, 'nt': WINDOWS_SCHEME, 'os2': { 'purelib': '$base/Lib/site-packages', 'platlib': '$base/Lib/site-packages', 'headers': '$base/Include/$dist_name', 'scripts': '$base/Scripts', 'data' : '$base', }, } # user site schemes if HAS_USER_SITE: INSTALL_SCHEMES['nt_user'] = { 'purelib': '$usersite', 'platlib': '$usersite', 'headers': '$userbase/Python$py_version_nodot/Include/$dist_name', 'scripts': '$userbase/Scripts', 'data' : '$userbase', } INSTALL_SCHEMES['unix_user'] = { 'purelib': '$usersite', 'platlib': '$usersite', 'headers': '$userbase/include/python$py_version_short$abiflags/$dist_name', 'scripts': '$userbase/bin', 'data' : '$userbase', } INSTALL_SCHEMES['os2_home'] = { 'purelib': '$usersite', 'platlib': '$usersite', 'headers': '$userbase/include/python$py_version_short/$dist_name', 'scripts': '$userbase/bin', 'data' : '$userbase', } # The keys to an installation scheme; if any new types of files are to be # installed, be sure to add an entry to every installation scheme above, # and to SCHEME_KEYS here. SCHEME_KEYS = ('purelib', 'platlib', 'headers', 'scripts', 'data') class install(Command): description = "install everything from build directory" user_options = [ # Select installation scheme and set base director(y|ies) ('prefix=', None, "installation prefix"), ('exec-prefix=', None, "(Unix only) prefix for platform-specific files"), ('home=', None, "(Unix only) home directory to install under"), # Or, just set the base director(y|ies) ('install-base=', None, "base installation directory (instead of --prefix or --home)"), ('install-platbase=', None, "base installation directory for platform-specific files " + "(instead of --exec-prefix or --home)"), ('root=', None, "install everything relative to this alternate root directory"), # Or, explicitly set the installation scheme ('install-purelib=', None, "installation directory for pure Python module distributions"), ('install-platlib=', None, "installation directory for non-pure module distributions"), ('install-lib=', None, "installation directory for all module distributions " + "(overrides --install-purelib and --install-platlib)"), ('install-headers=', None, "installation directory for C/C++ headers"), ('install-scripts=', None, "installation directory for Python scripts"), ('install-data=', None, "installation directory for data files"), # Byte-compilation options -- see install_lib.py for details, as # these are duplicated from there (but only install_lib does # anything with them). ('compile', 'c', "compile .py to .pyc [default]"), ('no-compile', None, "don't compile .py files"), ('optimize=', 'O', "also compile with optimization: -O1 for \"python -O\", " "-O2 for \"python -OO\", and -O0 to disable [default: -O0]"), # Miscellaneous control options ('force', 'f', "force installation (overwrite any existing files)"), ('skip-build', None, "skip rebuilding everything (for testing/debugging)"), # Where to install documentation (eventually!) #('doc-format=', None, "format of documentation to generate"), #('install-man=', None, "directory for Unix man pages"), #('install-html=', None, "directory for HTML documentation"), #('install-info=', None, "directory for GNU info files"), ('record=', None, "filename in which to record list of installed files"), ] boolean_options = ['compile', 'force', 'skip-build'] if HAS_USER_SITE: user_options.append(('user', None, "install in user site-package '%s'" % USER_SITE)) boolean_options.append('user') negative_opt = {'no-compile' : 'compile'} def initialize_options(self): """Initializes options.""" # High-level options: these select both an installation base # and scheme. self.prefix = None self.exec_prefix = None self.home = None self.user = 0 # These select only the installation base; it's up to the user to # specify the installation scheme (currently, that means supplying # the --install-{platlib,purelib,scripts,data} options). self.install_base = None self.install_platbase = None self.root = None # These options are the actual installation directories; if not # supplied by the user, they are filled in using the installation # scheme implied by prefix/exec-prefix/home and the contents of # that installation scheme. self.install_purelib = None # for pure module distributions self.install_platlib = None # non-pure (dists w/ extensions) self.install_headers = None # for C/C++ headers self.install_lib = None # set to either purelib or platlib self.install_scripts = None self.install_data = None self.install_userbase = USER_BASE self.install_usersite = USER_SITE self.compile = None self.optimize = None # These two are for putting non-packagized distributions into their # own directory and creating a .pth file if it makes sense. # 'extra_path' comes from the setup file; 'install_path_file' can # be turned off if it makes no sense to install a .pth file. (But # better to install it uselessly than to guess wrong and not # install it when it's necessary and would be used!) Currently, # 'install_path_file' is always true unless some outsider meddles # with it. self.extra_path = None self.install_path_file = 1 # 'force' forces installation, even if target files are not # out-of-date. 'skip_build' skips running the "build" command, # handy if you know it's not necessary. 'warn_dir' (which is *not* # a user option, it's just there so the bdist_* commands can turn # it off) determines whether we warn about installing to a # directory not in sys.path. self.force = 0 self.skip_build = 0 self.warn_dir = 1 # These are only here as a conduit from the 'build' command to the # 'install_*' commands that do the real work. ('build_base' isn't # actually used anywhere, but it might be useful in future.) They # are not user options, because if the user told the install # command where the build directory is, that wouldn't affect the # build command. self.build_base = None self.build_lib = None # Not defined yet because we don't know anything about # documentation yet. #self.install_man = None #self.install_html = None #self.install_info = None self.record = None # -- Option finalizing methods ------------------------------------- # (This is rather more involved than for most commands, # because this is where the policy for installing third- # party Python modules on various platforms given a wide # array of user input is decided. Yes, it's quite complex!) def finalize_options(self): """Finalizes options.""" # This method (and its pliant slaves, like 'finalize_unix()', # 'finalize_other()', and 'select_scheme()') is where the default # installation directories for modules, extension modules, and # anything else we care to install from a Python module # distribution. Thus, this code makes a pretty important policy # statement about how third-party stuff is added to a Python # installation! Note that the actual work of installation is done # by the relatively simple 'install_*' commands; they just take # their orders from the installation directory options determined # here. # Check for errors/inconsistencies in the options; first, stuff # that's wrong on any platform. if ((self.prefix or self.exec_prefix or self.home) and (self.install_base or self.install_platbase)): raise DistutilsOptionError( "must supply either prefix/exec-prefix/home or " + "install-base/install-platbase -- not both") if self.home and (self.prefix or self.exec_prefix): raise DistutilsOptionError( "must supply either home or prefix/exec-prefix -- not both") if self.user and (self.prefix or self.exec_prefix or self.home or self.install_base or self.install_platbase): raise DistutilsOptionError("can't combine user with prefix, " "exec_prefix/home, or install_(plat)base") # Next, stuff that's wrong (or dubious) only on certain platforms. if os.name != "posix": if self.exec_prefix: self.warn("exec-prefix option ignored on this platform") self.exec_prefix = None # Now the interesting logic -- so interesting that we farm it out # to other methods. The goal of these methods is to set the final # values for the install_{lib,scripts,data,...} options, using as # input a heady brew of prefix, exec_prefix, home, install_base, # install_platbase, user-supplied versions of # install_{purelib,platlib,lib,scripts,data,...}, and the # INSTALL_SCHEME dictionary above. Phew! self.dump_dirs("pre-finalize_{unix,other}") if os.name == 'posix': self.finalize_unix() else: self.finalize_other() self.dump_dirs("post-finalize_{unix,other}()") # Expand configuration variables, tilde, etc. in self.install_base # and self.install_platbase -- that way, we can use $base or # $platbase in the other installation directories and not worry # about needing recursive variable expansion (shudder). py_version = sys.version.split()[0] (prefix, exec_prefix) = get_config_vars('prefix', 'exec_prefix') try: abiflags = sys.abiflags except AttributeError: # sys.abiflags may not be defined on all platforms. abiflags = '' self.config_vars = {'dist_name': self.distribution.get_name(), 'dist_version': self.distribution.get_version(), 'dist_fullname': self.distribution.get_fullname(), 'py_version': py_version, 'py_version_short': py_version[0:3], 'py_version_nodot': py_version[0] + py_version[2], 'sys_prefix': prefix, 'prefix': prefix, 'sys_exec_prefix': exec_prefix, 'exec_prefix': exec_prefix, 'abiflags': abiflags, } if HAS_USER_SITE: self.config_vars['userbase'] = self.install_userbase self.config_vars['usersite'] = self.install_usersite self.expand_basedirs() self.dump_dirs("post-expand_basedirs()") # Now define config vars for the base directories so we can expand # everything else. self.config_vars['base'] = self.install_base self.config_vars['platbase'] = self.install_platbase if DEBUG: from pprint import pprint print("config vars:") pprint(self.config_vars) # Expand "~" and configuration variables in the installation # directories. self.expand_dirs() self.dump_dirs("post-expand_dirs()") # Create directories in the home dir: if self.user: self.create_home_path() # Pick the actual directory to install all modules to: either # install_purelib or install_platlib, depending on whether this # module distribution is pure or not. Of course, if the user # already specified install_lib, use their selection. if self.install_lib is None: if self.distribution.ext_modules: # has extensions: non-pure self.install_lib = self.install_platlib else: self.install_lib = self.install_purelib # Convert directories from Unix /-separated syntax to the local # convention. self.convert_paths('lib', 'purelib', 'platlib', 'scripts', 'data', 'headers', 'userbase', 'usersite') # Well, we're not actually fully completely finalized yet: we still # have to deal with 'extra_path', which is the hack for allowing # non-packagized module distributions (hello, Numerical Python!) to # get their own directories. self.handle_extra_path() self.install_libbase = self.install_lib # needed for .pth file self.install_lib = os.path.join(self.install_lib, self.extra_dirs) # If a new root directory was supplied, make all the installation # dirs relative to it. if self.root is not None: self.change_roots('libbase', 'lib', 'purelib', 'platlib', 'scripts', 'data', 'headers') self.dump_dirs("after prepending root") # Find out the build directories, ie. where to install from. self.set_undefined_options('build', ('build_base', 'build_base'), ('build_lib', 'build_lib')) # Punt on doc directories for now -- after all, we're punting on # documentation completely! def dump_dirs(self, msg): """Dumps the list of user options.""" if not DEBUG: return from distutils.fancy_getopt import longopt_xlate log.debug(msg + ":") for opt in self.user_options: opt_name = opt[0] if opt_name[-1] == "=": opt_name = opt_name[0:-1] if opt_name in self.negative_opt: opt_name = self.negative_opt[opt_name] opt_name = opt_name.translate(longopt_xlate) val = not getattr(self, opt_name) else: opt_name = opt_name.translate(longopt_xlate) val = getattr(self, opt_name) log.debug(" %s: %s" % (opt_name, val)) def finalize_unix(self): """Finalizes options for posix platforms.""" if self.install_base is not None or self.install_platbase is not None: if ((self.install_lib is None and self.install_purelib is None and self.install_platlib is None) or self.install_headers is None or self.install_scripts is None or self.install_data is None): raise DistutilsOptionError( "install-base or install-platbase supplied, but " "installation scheme is incomplete") return if self.user: if self.install_userbase is None: raise DistutilsPlatformError( "User base directory is not specified") self.install_base = self.install_platbase = self.install_userbase self.select_scheme("unix_user") elif self.home is not None: self.install_base = self.install_platbase = self.home self.select_scheme("unix_home") else: if self.prefix is None: if self.exec_prefix is not None: raise DistutilsOptionError( "must not supply exec-prefix without prefix") self.prefix = os.path.normpath(sys.prefix) self.exec_prefix = os.path.normpath(sys.exec_prefix) else: if self.exec_prefix is None: self.exec_prefix = self.prefix self.install_base = self.prefix self.install_platbase = self.exec_prefix self.select_scheme("unix_prefix") def finalize_other(self): """Finalizes options for non-posix platforms""" if self.user: if self.install_userbase is None: raise DistutilsPlatformError( "User base directory is not specified") self.install_base = self.install_platbase = self.install_userbase self.select_scheme(os.name + "_user") elif self.home is not None: self.install_base = self.install_platbase = self.home self.select_scheme("unix_home") else: if self.prefix is None: self.prefix = os.path.normpath(sys.prefix) self.install_base = self.install_platbase = self.prefix try: self.select_scheme(os.name) except KeyError: raise DistutilsPlatformError( "I don't know how to install stuff on '%s'" % os.name) def select_scheme(self, name): """Sets the install directories by applying the install schemes.""" # it's the caller's problem if they supply a bad name! scheme = INSTALL_SCHEMES[name] for key in SCHEME_KEYS: attrname = 'install_' + key if getattr(self, attrname) is None: setattr(self, attrname, scheme[key]) def _expand_attrs(self, attrs): for attr in attrs: val = getattr(self, attr) if val is not None: if os.name == 'posix' or os.name == 'nt': val = os.path.expanduser(val) val = subst_vars(val, self.config_vars) setattr(self, attr, val) def expand_basedirs(self): """Calls `os.path.expanduser` on install_base, install_platbase and root.""" self._expand_attrs(['install_base', 'install_platbase', 'root']) def expand_dirs(self): """Calls `os.path.expanduser` on install dirs.""" self._expand_attrs(['install_purelib', 'install_platlib', 'install_lib', 'install_headers', 'install_scripts', 'install_data',]) def convert_paths(self, *names): """Call `convert_path` over `names`.""" for name in names: attr = "install_" + name setattr(self, attr, convert_path(getattr(self, attr))) def handle_extra_path(self): """Set `path_file` and `extra_dirs` using `extra_path`.""" if self.extra_path is None: self.extra_path = self.distribution.extra_path if self.extra_path is not None: if isinstance(self.extra_path, str): self.extra_path = self.extra_path.split(',') if len(self.extra_path) == 1: path_file = extra_dirs = self.extra_path[0] elif len(self.extra_path) == 2: path_file, extra_dirs = self.extra_path else: raise DistutilsOptionError( "'extra_path' option must be a list, tuple, or " "comma-separated string with 1 or 2 elements") # convert to local form in case Unix notation used (as it # should be in setup scripts) extra_dirs = convert_path(extra_dirs) else: path_file = None extra_dirs = '' # XXX should we warn if path_file and not extra_dirs? (in which # case the path file would be harmless but pointless) self.path_file = path_file self.extra_dirs = extra_dirs def change_roots(self, *names): """Change the install directories pointed by name using root.""" for name in names: attr = "install_" + name setattr(self, attr, change_root(self.root, getattr(self, attr))) def create_home_path(self): """Create directories under ~.""" if not self.user: return home = convert_path(os.path.expanduser("~")) for name, path in self.config_vars.items(): if path.startswith(home) and not os.path.isdir(path): self.debug_print("os.makedirs('%s', 0o700)" % path) os.makedirs(path, 0o700) # -- Command execution methods ------------------------------------- def run(self): """Runs the command.""" # Obviously have to build before we can install if not self.skip_build: self.run_command('build') # If we built for any other platform, we can't install. build_plat = self.distribution.get_command_obj('build').plat_name # check warn_dir - it is a clue that the 'install' is happening # internally, and not to sys.path, so we don't check the platform # matches what we are running. if self.warn_dir and build_plat != get_platform(): raise DistutilsPlatformError("Can't install when " "cross-compiling") # Run all sub-commands (at least those that need to be run) for cmd_name in self.get_sub_commands(): self.run_command(cmd_name) if self.path_file: self.create_path_file() # write list of installed files, if requested. if self.record: outputs = self.get_outputs() if self.root: # strip any package prefix root_len = len(self.root) for counter in range(len(outputs)): outputs[counter] = outputs[counter][root_len:] self.execute(write_file, (self.record, outputs), "writing list of installed files to '%s'" % self.record) sys_path = map(os.path.normpath, sys.path) sys_path = map(os.path.normcase, sys_path) install_lib = os.path.normcase(os.path.normpath(self.install_lib)) if (self.warn_dir and not (self.path_file and self.install_path_file) and install_lib not in sys_path): log.debug(("modules installed to '%s', which is not in " "Python's module search path (sys.path) -- " "you'll have to change the search path yourself"), self.install_lib) def create_path_file(self): """Creates the .pth file""" filename = os.path.join(self.install_libbase, self.path_file + ".pth") if self.install_path_file: self.execute(write_file, (filename, [self.extra_dirs]), "creating %s" % filename) else: self.warn("path file '%s' not created" % filename) # -- Reporting methods --------------------------------------------- def get_outputs(self): """Assembles the outputs of all the sub-commands.""" outputs = [] for cmd_name in self.get_sub_commands(): cmd = self.get_finalized_command(cmd_name) # Add the contents of cmd.get_outputs(), ensuring # that outputs doesn't contain duplicate entries for filename in cmd.get_outputs(): if filename not in outputs: outputs.append(filename) if self.path_file and self.install_path_file: outputs.append(os.path.join(self.install_libbase, self.path_file + ".pth")) return outputs def get_inputs(self): """Returns the inputs of all the sub-commands""" # XXX gee, this looks familiar ;-( inputs = [] for cmd_name in self.get_sub_commands(): cmd = self.get_finalized_command(cmd_name) inputs.extend(cmd.get_inputs()) return inputs # -- Predicates for sub-command list ------------------------------- def has_lib(self): """Returns true if the current distribution has any Python modules to install.""" return (self.distribution.has_pure_modules() or self.distribution.has_ext_modules()) def has_headers(self): """Returns true if the current distribution has any headers to install.""" return self.distribution.has_headers() def has_scripts(self): """Returns true if the current distribution has any scripts to. install.""" return self.distribution.has_scripts() def has_data(self): """Returns true if the current distribution has any data to. install.""" return self.distribution.has_data_files() # 'sub_commands': a list of commands this command might have to run to # get its work done. See cmd.py for more info. sub_commands = [('install_lib', has_lib), ('install_headers', has_headers), ('install_scripts', has_scripts), ('install_data', has_data), ('install_egg_info', lambda self:True), ] PK!.筬" " command/install_egg_info.pynu["""distutils.command.install_egg_info Implements the Distutils 'install_egg_info' command, for installing a package's PKG-INFO metadata.""" from distutils.cmd import Command from distutils import log, dir_util import os, sys, re class install_egg_info(Command): """Install an .egg-info file for the package""" description = "Install package's PKG-INFO metadata as an .egg-info file" user_options = [ ('install-dir=', 'd', "directory to install to"), ] def initialize_options(self): self.install_dir = None def finalize_options(self): self.set_undefined_options('install_lib',('install_dir','install_dir')) basename = "%s-%s-py%s.egg-info" % ( to_filename(safe_name(self.distribution.get_name())), to_filename(safe_version(self.distribution.get_version())), sys.version[:3] ) self.target = os.path.join(self.install_dir, basename) self.outputs = [self.target] def run(self): target = self.target if os.path.isdir(target) and not os.path.islink(target): dir_util.remove_tree(target, dry_run=self.dry_run) elif os.path.exists(target): self.execute(os.unlink,(self.target,),"Removing "+target) elif not os.path.isdir(self.install_dir): self.execute(os.makedirs, (self.install_dir,), "Creating "+self.install_dir) log.info("Writing %s", target) if not self.dry_run: with open(target, 'w', encoding='UTF-8') as f: self.distribution.metadata.write_pkg_file(f) def get_outputs(self): return self.outputs # The following routines are taken from setuptools' pkg_resources module and # can be replaced by importing them from pkg_resources once it is included # in the stdlib. def safe_name(name): """Convert an arbitrary string to a standard distribution name Any runs of non-alphanumeric/. characters are replaced with a single '-'. """ return re.sub('[^A-Za-z0-9.]+', '-', name) def safe_version(version): """Convert an arbitrary string to a standard version string Spaces become dots, and all other non-alphanumeric characters become dashes, with runs of multiple dashes condensed to a single dash. """ version = version.replace(' ','.') return re.sub('[^A-Za-z0-9.]+', '-', version) def to_filename(name): """Convert a project or version name to its filename-escaped form Any '-' characters are currently replaced with '_'. """ return name.replace('-','_') PK!r|yycommand/command_templatenu["""distutils.command.x Implements the Distutils 'x' command. """ # created 2000/mm/dd, John Doe __revision__ = "$Id$" from distutils.core import Command class x(Command): # Brief (40-50 characters) description of the command description = "" # List of option tuples: long name, short name (None if no short # name), and help string. user_options = [('', '', ""), ] def initialize_options(self): self. = None self. = None self. = None def finalize_options(self): if self.x is None: self.x = def run(self): PK!|z^WWcommand/build_scripts.pynu["""distutils.command.build_scripts Implements the Distutils 'build_scripts' command.""" import os, re from stat import ST_MODE from distutils import sysconfig from distutils.core import Command from distutils.dep_util import newer from distutils.util import convert_path, Mixin2to3 from distutils import log import tokenize # check if Python is called on the first line with this expression first_line_re = re.compile(b'^#!.*python[0-9.]*([ \t].*)?$') class build_scripts(Command): description = "\"build\" scripts (copy and fixup #! line)" user_options = [ ('build-dir=', 'd', "directory to \"build\" (copy) to"), ('force', 'f', "forcibly build everything (ignore file timestamps"), ('executable=', 'e', "specify final destination interpreter path"), ] boolean_options = ['force'] def initialize_options(self): self.build_dir = None self.scripts = None self.force = None self.executable = None self.outfiles = None def finalize_options(self): self.set_undefined_options('build', ('build_scripts', 'build_dir'), ('force', 'force'), ('executable', 'executable')) self.scripts = self.distribution.scripts def get_source_files(self): return self.scripts def run(self): if not self.scripts: return self.copy_scripts() def copy_scripts(self): """Copy each script listed in 'self.scripts'; if it's marked as a Python script in the Unix way (first line matches 'first_line_re', ie. starts with "\#!" and contains "python"), then adjust the first line to refer to the current Python interpreter as we copy. """ self.mkpath(self.build_dir) outfiles = [] updated_files = [] for script in self.scripts: adjust = False script = convert_path(script) outfile = os.path.join(self.build_dir, os.path.basename(script)) outfiles.append(outfile) if not self.force and not newer(script, outfile): log.debug("not copying %s (up-to-date)", script) continue # Always open the file, but ignore failures in dry-run mode -- # that way, we'll get accurate feedback if we can read the # script. try: f = open(script, "rb") except IOError: if not self.dry_run: raise f = None else: encoding, lines = tokenize.detect_encoding(f.readline) f.seek(0) first_line = f.readline() if not first_line: self.warn("%s is an empty file (skipping)" % script) continue match = first_line_re.match(first_line) if match: adjust = True post_interp = match.group(1) or b'' if adjust: log.info("copying and adjusting %s -> %s", script, self.build_dir) updated_files.append(outfile) if not self.dry_run: if not sysconfig.python_build: executable = self.executable else: executable = os.path.join( sysconfig.get_config_var("BINDIR"), "python%s%s" % (sysconfig.get_config_var("VERSION"), sysconfig.get_config_var("EXE"))) executable = os.fsencode(executable) shebang = b"#!" + executable + post_interp + b"\n" # Python parser starts to read a script using UTF-8 until # it gets a #coding:xxx cookie. The shebang has to be the # first line of a file, the #coding:xxx cookie cannot be # written before. So the shebang has to be decodable from # UTF-8. try: shebang.decode('utf-8') except UnicodeDecodeError: raise ValueError( "The shebang ({!r}) is not decodable " "from utf-8".format(shebang)) # If the script is encoded to a custom encoding (use a # #coding:xxx cookie), the shebang has to be decodable from # the script encoding too. try: shebang.decode(encoding) except UnicodeDecodeError: raise ValueError( "The shebang ({!r}) is not decodable " "from the script encoding ({})" .format(shebang, encoding)) with open(outfile, "wb") as outf: outf.write(shebang) outf.writelines(f.readlines()) if f: f.close() else: if f: f.close() updated_files.append(outfile) self.copy_file(script, outfile) if os.name == 'posix': for file in outfiles: if self.dry_run: log.info("changing mode of %s", file) else: oldmode = os.stat(file)[ST_MODE] & 0o7777 newmode = (oldmode | 0o555) & 0o7777 if newmode != oldmode: log.info("changing mode of %s from %o to %o", file, oldmode, newmode) os.chmod(file, newmode) # XXX should we modify self.outfiles? return outfiles, updated_files class build_scripts_2to3(build_scripts, Mixin2to3): def copy_scripts(self): outfiles, updated_files = build_scripts.copy_scripts(self) if not self.dry_run: self.run_2to3(updated_files) return outfiles, updated_files PK!Ȼvvcommand/bdist_dumb.pynu["""distutils.command.bdist_dumb Implements the Distutils 'bdist_dumb' command (create a "dumb" built distribution -- i.e., just an archive to be unpacked under $prefix or $exec_prefix).""" import os from distutils.core import Command from distutils.util import get_platform from distutils.dir_util import remove_tree, ensure_relative from distutils.errors import * from distutils.sysconfig import get_python_version from distutils import log class bdist_dumb(Command): description = "create a \"dumb\" built distribution" user_options = [('bdist-dir=', 'd', "temporary directory for creating the distribution"), ('plat-name=', 'p', "platform name to embed in generated filenames " "(default: %s)" % get_platform()), ('format=', 'f', "archive format to create (tar, ztar, gztar, zip)"), ('keep-temp', 'k', "keep the pseudo-installation tree around after " + "creating the distribution archive"), ('dist-dir=', 'd', "directory to put final built distributions in"), ('skip-build', None, "skip rebuilding everything (for testing/debugging)"), ('relative', None, "build the archive using relative paths" "(default: false)"), ] boolean_options = ['keep-temp', 'skip-build', 'relative'] default_format = { 'posix': 'gztar', 'nt': 'zip', 'os2': 'zip' } def initialize_options(self): self.bdist_dir = None self.plat_name = None self.format = None self.keep_temp = 0 self.dist_dir = None self.skip_build = None self.relative = 0 def finalize_options(self): if self.bdist_dir is None: bdist_base = self.get_finalized_command('bdist').bdist_base self.bdist_dir = os.path.join(bdist_base, 'dumb') if self.format is None: try: self.format = self.default_format[os.name] except KeyError: raise DistutilsPlatformError( "don't know how to create dumb built distributions " "on platform %s" % os.name) self.set_undefined_options('bdist', ('dist_dir', 'dist_dir'), ('plat_name', 'plat_name'), ('skip_build', 'skip_build')) def run(self): if not self.skip_build: self.run_command('build') install = self.reinitialize_command('install', reinit_subcommands=1) install.root = self.bdist_dir install.skip_build = self.skip_build install.warn_dir = 0 log.info("installing to %s" % self.bdist_dir) self.run_command('install') # And make an archive relative to the root of the # pseudo-installation tree. archive_basename = "%s.%s" % (self.distribution.get_fullname(), self.plat_name) # OS/2 objects to any ":" characters in a filename (such as when # a timestamp is used in a version) so change them to hyphens. if os.name == "os2": archive_basename = archive_basename.replace(":", "-") pseudoinstall_root = os.path.join(self.dist_dir, archive_basename) if not self.relative: archive_root = self.bdist_dir else: if (self.distribution.has_ext_modules() and (install.install_base != install.install_platbase)): raise DistutilsPlatformError( "can't make a dumb built distribution where " "base and platbase are different (%s, %s)" % (repr(install.install_base), repr(install.install_platbase))) else: archive_root = os.path.join(self.bdist_dir, ensure_relative(install.install_base)) # Make the archive filename = self.make_archive(pseudoinstall_root, self.format, root_dir=archive_root) if self.distribution.has_ext_modules(): pyversion = get_python_version() else: pyversion = 'any' self.distribution.dist_files.append(('bdist_dumb', pyversion, filename)) if not self.keep_temp: remove_tree(self.bdist_dir, dry_run=self.dry_run) PK!P*Ycommand/bdist_msi.pynu[# Copyright (C) 2005, 2006 Martin von Löwis # Licensed to PSF under a Contributor Agreement. # The bdist_wininst command proper # based on bdist_wininst """ Implements the bdist_msi command. """ import sys, os from distutils.core import Command from distutils.dir_util import remove_tree from distutils.sysconfig import get_python_version from distutils.version import StrictVersion from distutils.errors import DistutilsOptionError from distutils.util import get_platform from distutils import log import msilib from msilib import schema, sequence, text from msilib import Directory, Feature, Dialog, add_data class PyDialog(Dialog): """Dialog class with a fixed layout: controls at the top, then a ruler, then a list of buttons: back, next, cancel. Optionally a bitmap at the left.""" def __init__(self, *args, **kw): """Dialog(database, name, x, y, w, h, attributes, title, first, default, cancel, bitmap=true)""" Dialog.__init__(self, *args) ruler = self.h - 36 bmwidth = 152*ruler/328 #if kw.get("bitmap", True): # self.bitmap("Bitmap", 0, 0, bmwidth, ruler, "PythonWin") self.line("BottomLine", 0, ruler, self.w, 0) def title(self, title): "Set the title text of the dialog at the top." # name, x, y, w, h, flags=Visible|Enabled|Transparent|NoPrefix, # text, in VerdanaBold10 self.text("Title", 15, 10, 320, 60, 0x30003, r"{\VerdanaBold10}%s" % title) def back(self, title, next, name = "Back", active = 1): """Add a back button with a given title, the tab-next button, its name in the Control table, possibly initially disabled. Return the button, so that events can be associated""" if active: flags = 3 # Visible|Enabled else: flags = 1 # Visible return self.pushbutton(name, 180, self.h-27 , 56, 17, flags, title, next) def cancel(self, title, next, name = "Cancel", active = 1): """Add a cancel button with a given title, the tab-next button, its name in the Control table, possibly initially disabled. Return the button, so that events can be associated""" if active: flags = 3 # Visible|Enabled else: flags = 1 # Visible return self.pushbutton(name, 304, self.h-27, 56, 17, flags, title, next) def next(self, title, next, name = "Next", active = 1): """Add a Next button with a given title, the tab-next button, its name in the Control table, possibly initially disabled. Return the button, so that events can be associated""" if active: flags = 3 # Visible|Enabled else: flags = 1 # Visible return self.pushbutton(name, 236, self.h-27, 56, 17, flags, title, next) def xbutton(self, name, title, next, xpos): """Add a button with a given title, the tab-next button, its name in the Control table, giving its x position; the y-position is aligned with the other buttons. Return the button, so that events can be associated""" return self.pushbutton(name, int(self.w*xpos - 28), self.h-27, 56, 17, 3, title, next) class bdist_msi(Command): description = "create a Microsoft Installer (.msi) binary distribution" user_options = [('bdist-dir=', None, "temporary directory for creating the distribution"), ('plat-name=', 'p', "platform name to embed in generated filenames " "(default: %s)" % get_platform()), ('keep-temp', 'k', "keep the pseudo-installation tree around after " + "creating the distribution archive"), ('target-version=', None, "require a specific python version" + " on the target system"), ('no-target-compile', 'c', "do not compile .py to .pyc on the target system"), ('no-target-optimize', 'o', "do not compile .py to .pyo (optimized)" "on the target system"), ('dist-dir=', 'd', "directory to put final built distributions in"), ('skip-build', None, "skip rebuilding everything (for testing/debugging)"), ('install-script=', None, "basename of installation script to be run after" "installation or before deinstallation"), ('pre-install-script=', None, "Fully qualified filename of a script to be run before " "any files are installed. This script need not be in the " "distribution"), ] boolean_options = ['keep-temp', 'no-target-compile', 'no-target-optimize', 'skip-build'] all_versions = ['2.0', '2.1', '2.2', '2.3', '2.4', '2.5', '2.6', '2.7', '2.8', '2.9', '3.0', '3.1', '3.2', '3.3', '3.4', '3.5', '3.6', '3.7', '3.8', '3.9'] other_version = 'X' def initialize_options(self): self.bdist_dir = None self.plat_name = None self.keep_temp = 0 self.no_target_compile = 0 self.no_target_optimize = 0 self.target_version = None self.dist_dir = None self.skip_build = None self.install_script = None self.pre_install_script = None self.versions = None def finalize_options(self): self.set_undefined_options('bdist', ('skip_build', 'skip_build')) if self.bdist_dir is None: bdist_base = self.get_finalized_command('bdist').bdist_base self.bdist_dir = os.path.join(bdist_base, 'msi') short_version = get_python_version() if (not self.target_version) and self.distribution.has_ext_modules(): self.target_version = short_version if self.target_version: self.versions = [self.target_version] if not self.skip_build and self.distribution.has_ext_modules()\ and self.target_version != short_version: raise DistutilsOptionError( "target version can only be %s, or the '--skip-build'" " option must be specified" % (short_version,)) else: self.versions = list(self.all_versions) self.set_undefined_options('bdist', ('dist_dir', 'dist_dir'), ('plat_name', 'plat_name'), ) if self.pre_install_script: raise DistutilsOptionError( "the pre-install-script feature is not yet implemented") if self.install_script: for script in self.distribution.scripts: if self.install_script == os.path.basename(script): break else: raise DistutilsOptionError( "install_script '%s' not found in scripts" % self.install_script) self.install_script_key = None def run(self): if not self.skip_build: self.run_command('build') install = self.reinitialize_command('install', reinit_subcommands=1) install.prefix = self.bdist_dir install.skip_build = self.skip_build install.warn_dir = 0 install_lib = self.reinitialize_command('install_lib') # we do not want to include pyc or pyo files install_lib.compile = 0 install_lib.optimize = 0 if self.distribution.has_ext_modules(): # If we are building an installer for a Python version other # than the one we are currently running, then we need to ensure # our build_lib reflects the other Python version rather than ours. # Note that for target_version!=sys.version, we must have skipped the # build step, so there is no issue with enforcing the build of this # version. target_version = self.target_version if not target_version: assert self.skip_build, "Should have already checked this" target_version = sys.version[0:3] plat_specifier = ".%s-%s" % (self.plat_name, target_version) build = self.get_finalized_command('build') build.build_lib = os.path.join(build.build_base, 'lib' + plat_specifier) log.info("installing to %s", self.bdist_dir) install.ensure_finalized() # avoid warning of 'install_lib' about installing # into a directory not in sys.path sys.path.insert(0, os.path.join(self.bdist_dir, 'PURELIB')) install.run() del sys.path[0] self.mkpath(self.dist_dir) fullname = self.distribution.get_fullname() installer_name = self.get_installer_filename(fullname) installer_name = os.path.abspath(installer_name) if os.path.exists(installer_name): os.unlink(installer_name) metadata = self.distribution.metadata author = metadata.author if not author: author = metadata.maintainer if not author: author = "UNKNOWN" version = metadata.get_version() # ProductVersion must be strictly numeric # XXX need to deal with prerelease versions sversion = "%d.%d.%d" % StrictVersion(version).version # Prefix ProductName with Python x.y, so that # it sorts together with the other Python packages # in Add-Remove-Programs (APR) fullname = self.distribution.get_fullname() if self.target_version: product_name = "Python %s %s" % (self.target_version, fullname) else: product_name = "Python %s" % (fullname) self.db = msilib.init_database(installer_name, schema, product_name, msilib.gen_uuid(), sversion, author) msilib.add_tables(self.db, sequence) props = [('DistVersion', version)] email = metadata.author_email or metadata.maintainer_email if email: props.append(("ARPCONTACT", email)) if metadata.url: props.append(("ARPURLINFOABOUT", metadata.url)) if props: add_data(self.db, 'Property', props) self.add_find_python() self.add_files() self.add_scripts() self.add_ui() self.db.Commit() if hasattr(self.distribution, 'dist_files'): tup = 'bdist_msi', self.target_version or 'any', fullname self.distribution.dist_files.append(tup) if not self.keep_temp: remove_tree(self.bdist_dir, dry_run=self.dry_run) def add_files(self): db = self.db cab = msilib.CAB("distfiles") rootdir = os.path.abspath(self.bdist_dir) root = Directory(db, cab, None, rootdir, "TARGETDIR", "SourceDir") f = Feature(db, "Python", "Python", "Everything", 0, 1, directory="TARGETDIR") items = [(f, root, '')] for version in self.versions + [self.other_version]: target = "TARGETDIR" + version name = default = "Python" + version desc = "Everything" if version is self.other_version: title = "Python from another location" level = 2 else: title = "Python %s from registry" % version level = 1 f = Feature(db, name, title, desc, 1, level, directory=target) dir = Directory(db, cab, root, rootdir, target, default) items.append((f, dir, version)) db.Commit() seen = {} for feature, dir, version in items: todo = [dir] while todo: dir = todo.pop() for file in os.listdir(dir.absolute): afile = os.path.join(dir.absolute, file) if os.path.isdir(afile): short = "%s|%s" % (dir.make_short(file), file) default = file + version newdir = Directory(db, cab, dir, file, default, short) todo.append(newdir) else: if not dir.component: dir.start_component(dir.logical, feature, 0) if afile not in seen: key = seen[afile] = dir.add_file(file) if file==self.install_script: if self.install_script_key: raise DistutilsOptionError( "Multiple files with name %s" % file) self.install_script_key = '[#%s]' % key else: key = seen[afile] add_data(self.db, "DuplicateFile", [(key + version, dir.component, key, None, dir.logical)]) db.Commit() cab.commit(db) def add_find_python(self): """Adds code to the installer to compute the location of Python. Properties PYTHON.MACHINE.X.Y and PYTHON.USER.X.Y will be set from the registry for each version of Python. Properties TARGETDIRX.Y will be set from PYTHON.USER.X.Y if defined, else from PYTHON.MACHINE.X.Y. Properties PYTHONX.Y will be set to TARGETDIRX.Y\\python.exe""" start = 402 for ver in self.versions: install_path = r"SOFTWARE\Python\PythonCore\%s\InstallPath" % ver machine_reg = "python.machine." + ver user_reg = "python.user." + ver machine_prop = "PYTHON.MACHINE." + ver user_prop = "PYTHON.USER." + ver machine_action = "PythonFromMachine" + ver user_action = "PythonFromUser" + ver exe_action = "PythonExe" + ver target_dir_prop = "TARGETDIR" + ver exe_prop = "PYTHON" + ver if msilib.Win64: # type: msidbLocatorTypeRawValue + msidbLocatorType64bit Type = 2+16 else: Type = 2 add_data(self.db, "RegLocator", [(machine_reg, 2, install_path, None, Type), (user_reg, 1, install_path, None, Type)]) add_data(self.db, "AppSearch", [(machine_prop, machine_reg), (user_prop, user_reg)]) add_data(self.db, "CustomAction", [(machine_action, 51+256, target_dir_prop, "[" + machine_prop + "]"), (user_action, 51+256, target_dir_prop, "[" + user_prop + "]"), (exe_action, 51+256, exe_prop, "[" + target_dir_prop + "]\\python.exe"), ]) add_data(self.db, "InstallExecuteSequence", [(machine_action, machine_prop, start), (user_action, user_prop, start + 1), (exe_action, None, start + 2), ]) add_data(self.db, "InstallUISequence", [(machine_action, machine_prop, start), (user_action, user_prop, start + 1), (exe_action, None, start + 2), ]) add_data(self.db, "Condition", [("Python" + ver, 0, "NOT TARGETDIR" + ver)]) start += 4 assert start < 500 def add_scripts(self): if self.install_script: start = 6800 for ver in self.versions + [self.other_version]: install_action = "install_script." + ver exe_prop = "PYTHON" + ver add_data(self.db, "CustomAction", [(install_action, 50, exe_prop, self.install_script_key)]) add_data(self.db, "InstallExecuteSequence", [(install_action, "&Python%s=3" % ver, start)]) start += 1 # XXX pre-install scripts are currently refused in finalize_options() # but if this feature is completed, it will also need to add # entries for each version as the above code does if self.pre_install_script: scriptfn = os.path.join(self.bdist_dir, "preinstall.bat") f = open(scriptfn, "w") # The batch file will be executed with [PYTHON], so that %1 # is the path to the Python interpreter; %0 will be the path # of the batch file. # rem =""" # %1 %0 # exit # """ # f.write('rem ="""\n%1 %0\nexit\n"""\n') f.write(open(self.pre_install_script).read()) f.close() add_data(self.db, "Binary", [("PreInstall", msilib.Binary(scriptfn)) ]) add_data(self.db, "CustomAction", [("PreInstall", 2, "PreInstall", None) ]) add_data(self.db, "InstallExecuteSequence", [("PreInstall", "NOT Installed", 450)]) def add_ui(self): db = self.db x = y = 50 w = 370 h = 300 title = "[ProductName] Setup" # see "Dialog Style Bits" modal = 3 # visible | modal modeless = 1 # visible track_disk_space = 32 # UI customization properties add_data(db, "Property", # See "DefaultUIFont Property" [("DefaultUIFont", "DlgFont8"), # See "ErrorDialog Style Bit" ("ErrorDialog", "ErrorDlg"), ("Progress1", "Install"), # modified in maintenance type dlg ("Progress2", "installs"), ("MaintenanceForm_Action", "Repair"), # possible values: ALL, JUSTME ("WhichUsers", "ALL") ]) # Fonts, see "TextStyle Table" add_data(db, "TextStyle", [("DlgFont8", "Tahoma", 9, None, 0), ("DlgFontBold8", "Tahoma", 8, None, 1), #bold ("VerdanaBold10", "Verdana", 10, None, 1), ("VerdanaRed9", "Verdana", 9, 255, 0), ]) # UI Sequences, see "InstallUISequence Table", "Using a Sequence Table" # Numbers indicate sequence; see sequence.py for how these action integrate add_data(db, "InstallUISequence", [("PrepareDlg", "Not Privileged or Windows9x or Installed", 140), ("WhichUsersDlg", "Privileged and not Windows9x and not Installed", 141), # In the user interface, assume all-users installation if privileged. ("SelectFeaturesDlg", "Not Installed", 1230), # XXX no support for resume installations yet #("ResumeDlg", "Installed AND (RESUME OR Preselected)", 1240), ("MaintenanceTypeDlg", "Installed AND NOT RESUME AND NOT Preselected", 1250), ("ProgressDlg", None, 1280)]) add_data(db, 'ActionText', text.ActionText) add_data(db, 'UIText', text.UIText) ##################################################################### # Standard dialogs: FatalError, UserExit, ExitDialog fatal=PyDialog(db, "FatalError", x, y, w, h, modal, title, "Finish", "Finish", "Finish") fatal.title("[ProductName] Installer ended prematurely") fatal.back("< Back", "Finish", active = 0) fatal.cancel("Cancel", "Back", active = 0) fatal.text("Description1", 15, 70, 320, 80, 0x30003, "[ProductName] setup ended prematurely because of an error. Your system has not been modified. To install this program at a later time, please run the installation again.") fatal.text("Description2", 15, 155, 320, 20, 0x30003, "Click the Finish button to exit the Installer.") c=fatal.next("Finish", "Cancel", name="Finish") c.event("EndDialog", "Exit") user_exit=PyDialog(db, "UserExit", x, y, w, h, modal, title, "Finish", "Finish", "Finish") user_exit.title("[ProductName] Installer was interrupted") user_exit.back("< Back", "Finish", active = 0) user_exit.cancel("Cancel", "Back", active = 0) user_exit.text("Description1", 15, 70, 320, 80, 0x30003, "[ProductName] setup was interrupted. Your system has not been modified. " "To install this program at a later time, please run the installation again.") user_exit.text("Description2", 15, 155, 320, 20, 0x30003, "Click the Finish button to exit the Installer.") c = user_exit.next("Finish", "Cancel", name="Finish") c.event("EndDialog", "Exit") exit_dialog = PyDialog(db, "ExitDialog", x, y, w, h, modal, title, "Finish", "Finish", "Finish") exit_dialog.title("Completing the [ProductName] Installer") exit_dialog.back("< Back", "Finish", active = 0) exit_dialog.cancel("Cancel", "Back", active = 0) exit_dialog.text("Description", 15, 235, 320, 20, 0x30003, "Click the Finish button to exit the Installer.") c = exit_dialog.next("Finish", "Cancel", name="Finish") c.event("EndDialog", "Return") ##################################################################### # Required dialog: FilesInUse, ErrorDlg inuse = PyDialog(db, "FilesInUse", x, y, w, h, 19, # KeepModeless|Modal|Visible title, "Retry", "Retry", "Retry", bitmap=False) inuse.text("Title", 15, 6, 200, 15, 0x30003, r"{\DlgFontBold8}Files in Use") inuse.text("Description", 20, 23, 280, 20, 0x30003, "Some files that need to be updated are currently in use.") inuse.text("Text", 20, 55, 330, 50, 3, "The following applications are using files that need to be updated by this setup. Close these applications and then click Retry to continue the installation or Cancel to exit it.") inuse.control("List", "ListBox", 20, 107, 330, 130, 7, "FileInUseProcess", None, None, None) c=inuse.back("Exit", "Ignore", name="Exit") c.event("EndDialog", "Exit") c=inuse.next("Ignore", "Retry", name="Ignore") c.event("EndDialog", "Ignore") c=inuse.cancel("Retry", "Exit", name="Retry") c.event("EndDialog","Retry") # See "Error Dialog". See "ICE20" for the required names of the controls. error = Dialog(db, "ErrorDlg", 50, 10, 330, 101, 65543, # Error|Minimize|Modal|Visible title, "ErrorText", None, None) error.text("ErrorText", 50,9,280,48,3, "") #error.control("ErrorIcon", "Icon", 15, 9, 24, 24, 5242881, None, "py.ico", None, None) error.pushbutton("N",120,72,81,21,3,"No",None).event("EndDialog","ErrorNo") error.pushbutton("Y",240,72,81,21,3,"Yes",None).event("EndDialog","ErrorYes") error.pushbutton("A",0,72,81,21,3,"Abort",None).event("EndDialog","ErrorAbort") error.pushbutton("C",42,72,81,21,3,"Cancel",None).event("EndDialog","ErrorCancel") error.pushbutton("I",81,72,81,21,3,"Ignore",None).event("EndDialog","ErrorIgnore") error.pushbutton("O",159,72,81,21,3,"Ok",None).event("EndDialog","ErrorOk") error.pushbutton("R",198,72,81,21,3,"Retry",None).event("EndDialog","ErrorRetry") ##################################################################### # Global "Query Cancel" dialog cancel = Dialog(db, "CancelDlg", 50, 10, 260, 85, 3, title, "No", "No", "No") cancel.text("Text", 48, 15, 194, 30, 3, "Are you sure you want to cancel [ProductName] installation?") #cancel.control("Icon", "Icon", 15, 15, 24, 24, 5242881, None, # "py.ico", None, None) c=cancel.pushbutton("Yes", 72, 57, 56, 17, 3, "Yes", "No") c.event("EndDialog", "Exit") c=cancel.pushbutton("No", 132, 57, 56, 17, 3, "No", "Yes") c.event("EndDialog", "Return") ##################################################################### # Global "Wait for costing" dialog costing = Dialog(db, "WaitForCostingDlg", 50, 10, 260, 85, modal, title, "Return", "Return", "Return") costing.text("Text", 48, 15, 194, 30, 3, "Please wait while the installer finishes determining your disk space requirements.") c = costing.pushbutton("Return", 102, 57, 56, 17, 3, "Return", None) c.event("EndDialog", "Exit") ##################################################################### # Preparation dialog: no user input except cancellation prep = PyDialog(db, "PrepareDlg", x, y, w, h, modeless, title, "Cancel", "Cancel", "Cancel") prep.text("Description", 15, 70, 320, 40, 0x30003, "Please wait while the Installer prepares to guide you through the installation.") prep.title("Welcome to the [ProductName] Installer") c=prep.text("ActionText", 15, 110, 320, 20, 0x30003, "Pondering...") c.mapping("ActionText", "Text") c=prep.text("ActionData", 15, 135, 320, 30, 0x30003, None) c.mapping("ActionData", "Text") prep.back("Back", None, active=0) prep.next("Next", None, active=0) c=prep.cancel("Cancel", None) c.event("SpawnDialog", "CancelDlg") ##################################################################### # Feature (Python directory) selection seldlg = PyDialog(db, "SelectFeaturesDlg", x, y, w, h, modal, title, "Next", "Next", "Cancel") seldlg.title("Select Python Installations") seldlg.text("Hint", 15, 30, 300, 20, 3, "Select the Python locations where %s should be installed." % self.distribution.get_fullname()) seldlg.back("< Back", None, active=0) c = seldlg.next("Next >", "Cancel") order = 1 c.event("[TARGETDIR]", "[SourceDir]", ordering=order) for version in self.versions + [self.other_version]: order += 1 c.event("[TARGETDIR]", "[TARGETDIR%s]" % version, "FEATURE_SELECTED AND &Python%s=3" % version, ordering=order) c.event("SpawnWaitDialog", "WaitForCostingDlg", ordering=order + 1) c.event("EndDialog", "Return", ordering=order + 2) c = seldlg.cancel("Cancel", "Features") c.event("SpawnDialog", "CancelDlg") c = seldlg.control("Features", "SelectionTree", 15, 60, 300, 120, 3, "FEATURE", None, "PathEdit", None) c.event("[FEATURE_SELECTED]", "1") ver = self.other_version install_other_cond = "FEATURE_SELECTED AND &Python%s=3" % ver dont_install_other_cond = "FEATURE_SELECTED AND &Python%s<>3" % ver c = seldlg.text("Other", 15, 200, 300, 15, 3, "Provide an alternate Python location") c.condition("Enable", install_other_cond) c.condition("Show", install_other_cond) c.condition("Disable", dont_install_other_cond) c.condition("Hide", dont_install_other_cond) c = seldlg.control("PathEdit", "PathEdit", 15, 215, 300, 16, 1, "TARGETDIR" + ver, None, "Next", None) c.condition("Enable", install_other_cond) c.condition("Show", install_other_cond) c.condition("Disable", dont_install_other_cond) c.condition("Hide", dont_install_other_cond) ##################################################################### # Disk cost cost = PyDialog(db, "DiskCostDlg", x, y, w, h, modal, title, "OK", "OK", "OK", bitmap=False) cost.text("Title", 15, 6, 200, 15, 0x30003, "{\DlgFontBold8}Disk Space Requirements") cost.text("Description", 20, 20, 280, 20, 0x30003, "The disk space required for the installation of the selected features.") cost.text("Text", 20, 53, 330, 60, 3, "The highlighted volumes (if any) do not have enough disk space " "available for the currently selected features. You can either " "remove some files from the highlighted volumes, or choose to " "install less features onto local drive(s), or select different " "destination drive(s).") cost.control("VolumeList", "VolumeCostList", 20, 100, 330, 150, 393223, None, "{120}{70}{70}{70}{70}", None, None) cost.xbutton("OK", "Ok", None, 0.5).event("EndDialog", "Return") ##################################################################### # WhichUsers Dialog. Only available on NT, and for privileged users. # This must be run before FindRelatedProducts, because that will # take into account whether the previous installation was per-user # or per-machine. We currently don't support going back to this # dialog after "Next" was selected; to support this, we would need to # find how to reset the ALLUSERS property, and how to re-run # FindRelatedProducts. # On Windows9x, the ALLUSERS property is ignored on the command line # and in the Property table, but installer fails according to the documentation # if a dialog attempts to set ALLUSERS. whichusers = PyDialog(db, "WhichUsersDlg", x, y, w, h, modal, title, "AdminInstall", "Next", "Cancel") whichusers.title("Select whether to install [ProductName] for all users of this computer.") # A radio group with two options: allusers, justme g = whichusers.radiogroup("AdminInstall", 15, 60, 260, 50, 3, "WhichUsers", "", "Next") g.add("ALL", 0, 5, 150, 20, "Install for all users") g.add("JUSTME", 0, 25, 150, 20, "Install just for me") whichusers.back("Back", None, active=0) c = whichusers.next("Next >", "Cancel") c.event("[ALLUSERS]", "1", 'WhichUsers="ALL"', 1) c.event("EndDialog", "Return", ordering = 2) c = whichusers.cancel("Cancel", "AdminInstall") c.event("SpawnDialog", "CancelDlg") ##################################################################### # Installation Progress dialog (modeless) progress = PyDialog(db, "ProgressDlg", x, y, w, h, modeless, title, "Cancel", "Cancel", "Cancel", bitmap=False) progress.text("Title", 20, 15, 200, 15, 0x30003, "{\DlgFontBold8}[Progress1] [ProductName]") progress.text("Text", 35, 65, 300, 30, 3, "Please wait while the Installer [Progress2] [ProductName]. " "This may take several minutes.") progress.text("StatusLabel", 35, 100, 35, 20, 3, "Status:") c=progress.text("ActionText", 70, 100, w-70, 20, 3, "Pondering...") c.mapping("ActionText", "Text") #c=progress.text("ActionData", 35, 140, 300, 20, 3, None) #c.mapping("ActionData", "Text") c=progress.control("ProgressBar", "ProgressBar", 35, 120, 300, 10, 65537, None, "Progress done", None, None) c.mapping("SetProgress", "Progress") progress.back("< Back", "Next", active=False) progress.next("Next >", "Cancel", active=False) progress.cancel("Cancel", "Back").event("SpawnDialog", "CancelDlg") ################################################################### # Maintenance type: repair/uninstall maint = PyDialog(db, "MaintenanceTypeDlg", x, y, w, h, modal, title, "Next", "Next", "Cancel") maint.title("Welcome to the [ProductName] Setup Wizard") maint.text("BodyText", 15, 63, 330, 42, 3, "Select whether you want to repair or remove [ProductName].") g=maint.radiogroup("RepairRadioGroup", 15, 108, 330, 60, 3, "MaintenanceForm_Action", "", "Next") #g.add("Change", 0, 0, 200, 17, "&Change [ProductName]") g.add("Repair", 0, 18, 200, 17, "&Repair [ProductName]") g.add("Remove", 0, 36, 200, 17, "Re&move [ProductName]") maint.back("< Back", None, active=False) c=maint.next("Finish", "Cancel") # Change installation: Change progress dialog to "Change", then ask # for feature selection #c.event("[Progress1]", "Change", 'MaintenanceForm_Action="Change"', 1) #c.event("[Progress2]", "changes", 'MaintenanceForm_Action="Change"', 2) # Reinstall: Change progress dialog to "Repair", then invoke reinstall # Also set list of reinstalled features to "ALL" c.event("[REINSTALL]", "ALL", 'MaintenanceForm_Action="Repair"', 5) c.event("[Progress1]", "Repairing", 'MaintenanceForm_Action="Repair"', 6) c.event("[Progress2]", "repairs", 'MaintenanceForm_Action="Repair"', 7) c.event("Reinstall", "ALL", 'MaintenanceForm_Action="Repair"', 8) # Uninstall: Change progress to "Remove", then invoke uninstall # Also set list of removed features to "ALL" c.event("[REMOVE]", "ALL", 'MaintenanceForm_Action="Remove"', 11) c.event("[Progress1]", "Removing", 'MaintenanceForm_Action="Remove"', 12) c.event("[Progress2]", "removes", 'MaintenanceForm_Action="Remove"', 13) c.event("Remove", "ALL", 'MaintenanceForm_Action="Remove"', 14) # Close dialog when maintenance action scheduled c.event("EndDialog", "Return", 'MaintenanceForm_Action<>"Change"', 20) #c.event("NewDialog", "SelectFeaturesDlg", 'MaintenanceForm_Action="Change"', 21) maint.cancel("Cancel", "RepairRadioGroup").event("SpawnDialog", "CancelDlg") def get_installer_filename(self, fullname): # Factored out to allow overriding in subclasses if self.target_version: base_name = "%s.%s-py%s.msi" % (fullname, self.plat_name, self.target_version) else: base_name = "%s.%s.msi" % (fullname, self.plat_name) installer_name = os.path.join(self.dist_dir, base_name) return installer_name PK!:command/install_scripts.pynu["""distutils.command.install_scripts Implements the Distutils 'install_scripts' command, for installing Python scripts.""" # contributed by Bastian Kleineidam import os from distutils.core import Command from distutils import log from stat import ST_MODE class install_scripts(Command): description = "install scripts (Python or otherwise)" user_options = [ ('install-dir=', 'd', "directory to install scripts to"), ('build-dir=','b', "build directory (where to install from)"), ('force', 'f', "force installation (overwrite existing files)"), ('skip-build', None, "skip the build steps"), ] boolean_options = ['force', 'skip-build'] def initialize_options(self): self.install_dir = None self.force = 0 self.build_dir = None self.skip_build = None def finalize_options(self): self.set_undefined_options('build', ('build_scripts', 'build_dir')) self.set_undefined_options('install', ('install_scripts', 'install_dir'), ('force', 'force'), ('skip_build', 'skip_build'), ) def run(self): if not self.skip_build: self.run_command('build_scripts') self.outfiles = self.copy_tree(self.build_dir, self.install_dir) if os.name == 'posix': # Set the executable bits (owner, group, and world) on # all the scripts we just installed. for file in self.get_outputs(): if self.dry_run: log.info("changing mode of %s", file) else: mode = ((os.stat(file)[ST_MODE]) | 0o555) & 0o7777 log.info("changing mode of %s to %o", file, mode) os.chmod(file, mode) def get_inputs(self): return self.distribution.scripts or [] def get_outputs(self): return self.outfiles or [] PK!w0:0:command/bdist_wininst.pynu["""distutils.command.bdist_wininst Implements the Distutils 'bdist_wininst' command: create a windows installer exe-program.""" import sys, os from distutils.core import Command from distutils.util import get_platform from distutils.dir_util import create_tree, remove_tree from distutils.errors import * from distutils.sysconfig import get_python_version from distutils import log class bdist_wininst(Command): description = "create an executable installer for MS Windows" user_options = [('bdist-dir=', None, "temporary directory for creating the distribution"), ('plat-name=', 'p', "platform name to embed in generated filenames " "(default: %s)" % get_platform()), ('keep-temp', 'k', "keep the pseudo-installation tree around after " + "creating the distribution archive"), ('target-version=', None, "require a specific python version" + " on the target system"), ('no-target-compile', 'c', "do not compile .py to .pyc on the target system"), ('no-target-optimize', 'o', "do not compile .py to .pyo (optimized)" "on the target system"), ('dist-dir=', 'd', "directory to put final built distributions in"), ('bitmap=', 'b', "bitmap to use for the installer instead of python-powered logo"), ('title=', 't', "title to display on the installer background instead of default"), ('skip-build', None, "skip rebuilding everything (for testing/debugging)"), ('install-script=', None, "basename of installation script to be run after" "installation or before deinstallation"), ('pre-install-script=', None, "Fully qualified filename of a script to be run before " "any files are installed. This script need not be in the " "distribution"), ('user-access-control=', None, "specify Vista's UAC handling - 'none'/default=no " "handling, 'auto'=use UAC if target Python installed for " "all users, 'force'=always use UAC"), ] boolean_options = ['keep-temp', 'no-target-compile', 'no-target-optimize', 'skip-build'] def initialize_options(self): self.bdist_dir = None self.plat_name = None self.keep_temp = 0 self.no_target_compile = 0 self.no_target_optimize = 0 self.target_version = None self.dist_dir = None self.bitmap = None self.title = None self.skip_build = None self.install_script = None self.pre_install_script = None self.user_access_control = None def finalize_options(self): self.set_undefined_options('bdist', ('skip_build', 'skip_build')) if self.bdist_dir is None: if self.skip_build and self.plat_name: # If build is skipped and plat_name is overridden, bdist will # not see the correct 'plat_name' - so set that up manually. bdist = self.distribution.get_command_obj('bdist') bdist.plat_name = self.plat_name # next the command will be initialized using that name bdist_base = self.get_finalized_command('bdist').bdist_base self.bdist_dir = os.path.join(bdist_base, 'wininst') if not self.target_version: self.target_version = "" if not self.skip_build and self.distribution.has_ext_modules(): short_version = get_python_version() if self.target_version and self.target_version != short_version: raise DistutilsOptionError( "target version can only be %s, or the '--skip-build'" \ " option must be specified" % (short_version,)) self.target_version = short_version self.set_undefined_options('bdist', ('dist_dir', 'dist_dir'), ('plat_name', 'plat_name'), ) if self.install_script: for script in self.distribution.scripts: if self.install_script == os.path.basename(script): break else: raise DistutilsOptionError( "install_script '%s' not found in scripts" % self.install_script) def run(self): if (sys.platform != "win32" and (self.distribution.has_ext_modules() or self.distribution.has_c_libraries())): raise DistutilsPlatformError \ ("distribution contains extensions and/or C libraries; " "must be compiled on a Windows 32 platform") if not self.skip_build: self.run_command('build') install = self.reinitialize_command('install', reinit_subcommands=1) install.root = self.bdist_dir install.skip_build = self.skip_build install.warn_dir = 0 install.plat_name = self.plat_name install_lib = self.reinitialize_command('install_lib') # we do not want to include pyc or pyo files install_lib.compile = 0 install_lib.optimize = 0 if self.distribution.has_ext_modules(): # If we are building an installer for a Python version other # than the one we are currently running, then we need to ensure # our build_lib reflects the other Python version rather than ours. # Note that for target_version!=sys.version, we must have skipped the # build step, so there is no issue with enforcing the build of this # version. target_version = self.target_version if not target_version: assert self.skip_build, "Should have already checked this" target_version = sys.version[0:3] plat_specifier = ".%s-%s" % (self.plat_name, target_version) build = self.get_finalized_command('build') build.build_lib = os.path.join(build.build_base, 'lib' + plat_specifier) # Use a custom scheme for the zip-file, because we have to decide # at installation time which scheme to use. for key in ('purelib', 'platlib', 'headers', 'scripts', 'data'): value = key.upper() if key == 'headers': value = value + '/Include/$dist_name' setattr(install, 'install_' + key, value) log.info("installing to %s", self.bdist_dir) install.ensure_finalized() # avoid warning of 'install_lib' about installing # into a directory not in sys.path sys.path.insert(0, os.path.join(self.bdist_dir, 'PURELIB')) install.run() del sys.path[0] # And make an archive relative to the root of the # pseudo-installation tree. from tempfile import mktemp archive_basename = mktemp() fullname = self.distribution.get_fullname() arcname = self.make_archive(archive_basename, "zip", root_dir=self.bdist_dir) # create an exe containing the zip-file self.create_exe(arcname, fullname, self.bitmap) if self.distribution.has_ext_modules(): pyversion = get_python_version() else: pyversion = 'any' self.distribution.dist_files.append(('bdist_wininst', pyversion, self.get_installer_filename(fullname))) # remove the zip-file again log.debug("removing temporary file '%s'", arcname) os.remove(arcname) if not self.keep_temp: remove_tree(self.bdist_dir, dry_run=self.dry_run) def get_inidata(self): # Return data describing the installation. lines = [] metadata = self.distribution.metadata # Write the [metadata] section. lines.append("[metadata]") # 'info' will be displayed in the installer's dialog box, # describing the items to be installed. info = (metadata.long_description or '') + '\n' # Escape newline characters def escape(s): return s.replace("\n", "\\n") for name in ["author", "author_email", "description", "maintainer", "maintainer_email", "name", "url", "version"]: data = getattr(metadata, name, "") if data: info = info + ("\n %s: %s" % \ (name.capitalize(), escape(data))) lines.append("%s=%s" % (name, escape(data))) # The [setup] section contains entries controlling # the installer runtime. lines.append("\n[Setup]") if self.install_script: lines.append("install_script=%s" % self.install_script) lines.append("info=%s" % escape(info)) lines.append("target_compile=%d" % (not self.no_target_compile)) lines.append("target_optimize=%d" % (not self.no_target_optimize)) if self.target_version: lines.append("target_version=%s" % self.target_version) if self.user_access_control: lines.append("user_access_control=%s" % self.user_access_control) title = self.title or self.distribution.get_fullname() lines.append("title=%s" % escape(title)) import time import distutils build_info = "Built %s with distutils-%s" % \ (time.ctime(time.time()), distutils.__version__) lines.append("build_info=%s" % build_info) return "\n".join(lines) def create_exe(self, arcname, fullname, bitmap=None): import struct self.mkpath(self.dist_dir) cfgdata = self.get_inidata() installer_name = self.get_installer_filename(fullname) self.announce("creating %s" % installer_name) if bitmap: bitmapdata = open(bitmap, "rb").read() bitmaplen = len(bitmapdata) else: bitmaplen = 0 file = open(installer_name, "wb") file.write(self.get_exe_bytes()) if bitmap: file.write(bitmapdata) # Convert cfgdata from unicode to ascii, mbcs encoded if isinstance(cfgdata, str): cfgdata = cfgdata.encode("mbcs") # Append the pre-install script cfgdata = cfgdata + b"\0" if self.pre_install_script: # We need to normalize newlines, so we open in text mode and # convert back to bytes. "latin-1" simply avoids any possible # failures. with open(self.pre_install_script, "r", encoding="latin-1") as script: script_data = script.read().encode("latin-1") cfgdata = cfgdata + script_data + b"\n\0" else: # empty pre-install script cfgdata = cfgdata + b"\0" file.write(cfgdata) # The 'magic number' 0x1234567B is used to make sure that the # binary layout of 'cfgdata' is what the wininst.exe binary # expects. If the layout changes, increment that number, make # the corresponding changes to the wininst.exe sources, and # recompile them. header = struct.pack(" cur_version: bv = get_build_version() else: if self.target_version < "2.4": bv = 6.0 else: bv = 7.1 else: # for current version - use authoritative check. bv = get_build_version() # wininst-x.y.exe is in the same directory as this file directory = os.path.dirname(__file__) # we must use a wininst-x.y.exe built with the same C compiler # used for python. XXX What about mingw, borland, and so on? # if plat_name starts with "win" but is not "win32" # we want to strip "win" and leave the rest (e.g. -amd64) # for all other cases, we don't want any suffix if self.plat_name != 'win32' and self.plat_name[:3] == 'win': sfix = self.plat_name[3:] else: sfix = '' filename = os.path.join(directory, "wininst-%.1f%s.exe" % (bv, sfix)) f = open(filename, "rb") try: return f.read() finally: f.close() PK!撲command/upload.pynu["""distutils.command.upload Implements the Distutils 'upload' subcommand (upload package to PyPI).""" from distutils.errors import * from distutils.core import PyPIRCCommand from distutils.spawn import spawn from distutils import log import sys import os, io import socket import platform from base64 import standard_b64encode from urllib.request import urlopen, Request, HTTPError from urllib.parse import urlparse # this keeps compatibility for 2.3 and 2.4 if sys.version < "2.5": from md5 import md5 else: from hashlib import md5 class upload(PyPIRCCommand): description = "upload binary package to PyPI" user_options = PyPIRCCommand.user_options + [ ('sign', 's', 'sign files to upload using gpg'), ('identity=', 'i', 'GPG identity used to sign files'), ] boolean_options = PyPIRCCommand.boolean_options + ['sign'] def initialize_options(self): PyPIRCCommand.initialize_options(self) self.username = '' self.password = '' self.show_response = 0 self.sign = False self.identity = None def finalize_options(self): PyPIRCCommand.finalize_options(self) if self.identity and not self.sign: raise DistutilsOptionError( "Must use --sign for --identity to have meaning" ) config = self._read_pypirc() if config != {}: self.username = config['username'] self.password = config['password'] self.repository = config['repository'] self.realm = config['realm'] # getting the password from the distribution # if previously set by the register command if not self.password and self.distribution.password: self.password = self.distribution.password def run(self): if not self.distribution.dist_files: raise DistutilsOptionError("No dist file created in earlier command") for command, pyversion, filename in self.distribution.dist_files: self.upload_file(command, pyversion, filename) def upload_file(self, command, pyversion, filename): # Makes sure the repository URL is compliant schema, netloc, url, params, query, fragments = \ urlparse(self.repository) if params or query or fragments: raise AssertionError("Incompatible url %s" % self.repository) if schema not in ('http', 'https'): raise AssertionError("unsupported schema " + schema) # Sign if requested if self.sign: gpg_args = ["gpg", "--detach-sign", "-a", filename] if self.identity: gpg_args[2:2] = ["--local-user", self.identity] spawn(gpg_args, dry_run=self.dry_run) # Fill in the data - send all the meta-data in case we need to # register a new release f = open(filename,'rb') try: content = f.read() finally: f.close() meta = self.distribution.metadata data = { # action ':action': 'file_upload', 'protcol_version': '1', # identify release 'name': meta.get_name(), 'version': meta.get_version(), # file content 'content': (os.path.basename(filename),content), 'filetype': command, 'pyversion': pyversion, 'md5_digest': md5(content).hexdigest(), # additional meta-data 'metadata_version' : '1.0', 'summary': meta.get_description(), 'home_page': meta.get_url(), 'author': meta.get_contact(), 'author_email': meta.get_contact_email(), 'license': meta.get_licence(), 'description': meta.get_long_description(), 'keywords': meta.get_keywords(), 'platform': meta.get_platforms(), 'classifiers': meta.get_classifiers(), 'download_url': meta.get_download_url(), # PEP 314 'provides': meta.get_provides(), 'requires': meta.get_requires(), 'obsoletes': meta.get_obsoletes(), } comment = '' if command == 'bdist_rpm': dist, version, id = platform.dist() if dist: comment = 'built for %s %s' % (dist, version) elif command == 'bdist_dumb': comment = 'built for %s' % platform.platform(terse=1) data['comment'] = comment if self.sign: data['gpg_signature'] = (os.path.basename(filename) + ".asc", open(filename+".asc", "rb").read()) # set up the authentication user_pass = (self.username + ":" + self.password).encode('ascii') # The exact encoding of the authentication string is debated. # Anyway PyPI only accepts ascii for both username or password. auth = "Basic " + standard_b64encode(user_pass).decode('ascii') # Build up the MIME payload for the POST data boundary = '--------------GHSKFJDLGDS7543FJKLFHRE75642756743254' sep_boundary = b'\n--' + boundary.encode('ascii') end_boundary = sep_boundary + b'--' body = io.BytesIO() for key, value in data.items(): title = '\nContent-Disposition: form-data; name="%s"' % key # handle multiple entries for the same name if type(value) != type([]): value = [value] for value in value: if type(value) is tuple: title += '; filename="%s"' % value[0] value = value[1] else: value = str(value).encode('utf-8') body.write(sep_boundary) body.write(title.encode('utf-8')) body.write(b"\n\n") body.write(value) if value and value[-1:] == b'\r': body.write(b'\n') # write an extra newline (lurve Macs) body.write(end_boundary) body.write(b"\n") body = body.getvalue() self.announce("Submitting %s to %s" % (filename, self.repository), log.INFO) # build the Request headers = {'Content-type': 'multipart/form-data; boundary=%s' % boundary, 'Content-length': str(len(body)), 'Authorization': auth} request = Request(self.repository, data=body, headers=headers) # send the data try: result = urlopen(request) status = result.getcode() reason = result.msg except socket.error as e: self.announce(str(e), log.ERROR) return except HTTPError as e: status = e.code reason = e.msg if status == 200: self.announce('Server response (%s): %s' % (status, reason), log.INFO) else: self.announce('Upload failed (%s): %s' % (status, reason), log.ERROR) if self.show_response: text = self._read_pypi_response(result) msg = '\n'.join(('-' * 75, text, '-' * 75)) self.announce(msg, log.INFO) PK!QTTcommand/bdist_rpm.pynu["""distutils.command.bdist_rpm Implements the Distutils 'bdist_rpm' command (create RPM source and binary distributions).""" import subprocess, sys, os from distutils.core import Command from distutils.debug import DEBUG from distutils.util import get_platform from distutils.file_util import write_file from distutils.errors import * from distutils.sysconfig import get_python_version from distutils import log class bdist_rpm(Command): description = "create an RPM distribution" user_options = [ ('bdist-base=', None, "base directory for creating built distributions"), ('rpm-base=', None, "base directory for creating RPMs (defaults to \"rpm\" under " "--bdist-base; must be specified for RPM 2)"), ('dist-dir=', 'd', "directory to put final RPM files in " "(and .spec files if --spec-only)"), ('python=', None, "path to Python interpreter to hard-code in the .spec file " "(default: \"python\")"), ('fix-python', None, "hard-code the exact path to the current Python interpreter in " "the .spec file"), ('spec-only', None, "only regenerate spec file"), ('source-only', None, "only generate source RPM"), ('binary-only', None, "only generate binary RPM"), ('use-bzip2', None, "use bzip2 instead of gzip to create source distribution"), # More meta-data: too RPM-specific to put in the setup script, # but needs to go in the .spec file -- so we make these options # to "bdist_rpm". The idea is that packagers would put this # info in setup.cfg, although they are of course free to # supply it on the command line. ('distribution-name=', None, "name of the (Linux) distribution to which this " "RPM applies (*not* the name of the module distribution!)"), ('group=', None, "package classification [default: \"Development/Libraries\"]"), ('release=', None, "RPM release number"), ('serial=', None, "RPM serial number"), ('vendor=', None, "RPM \"vendor\" (eg. \"Joe Blow \") " "[default: maintainer or author from setup script]"), ('packager=', None, "RPM packager (eg. \"Jane Doe \")" "[default: vendor]"), ('doc-files=', None, "list of documentation files (space or comma-separated)"), ('changelog=', None, "RPM changelog"), ('icon=', None, "name of icon file"), ('provides=', None, "capabilities provided by this package"), ('requires=', None, "capabilities required by this package"), ('conflicts=', None, "capabilities which conflict with this package"), ('build-requires=', None, "capabilities required to build this package"), ('obsoletes=', None, "capabilities made obsolete by this package"), ('no-autoreq', None, "do not automatically calculate dependencies"), # Actions to take when building RPM ('keep-temp', 'k', "don't clean up RPM build directory"), ('no-keep-temp', None, "clean up RPM build directory [default]"), ('use-rpm-opt-flags', None, "compile with RPM_OPT_FLAGS when building from source RPM"), ('no-rpm-opt-flags', None, "do not pass any RPM CFLAGS to compiler"), ('rpm3-mode', None, "RPM 3 compatibility mode (default)"), ('rpm2-mode', None, "RPM 2 compatibility mode"), # Add the hooks necessary for specifying custom scripts ('prep-script=', None, "Specify a script for the PREP phase of RPM building"), ('build-script=', None, "Specify a script for the BUILD phase of RPM building"), ('pre-install=', None, "Specify a script for the pre-INSTALL phase of RPM building"), ('install-script=', None, "Specify a script for the INSTALL phase of RPM building"), ('post-install=', None, "Specify a script for the post-INSTALL phase of RPM building"), ('pre-uninstall=', None, "Specify a script for the pre-UNINSTALL phase of RPM building"), ('post-uninstall=', None, "Specify a script for the post-UNINSTALL phase of RPM building"), ('clean-script=', None, "Specify a script for the CLEAN phase of RPM building"), ('verify-script=', None, "Specify a script for the VERIFY phase of the RPM build"), # Allow a packager to explicitly force an architecture ('force-arch=', None, "Force an architecture onto the RPM build process"), ('quiet', 'q', "Run the INSTALL phase of RPM building in quiet mode"), ] boolean_options = ['keep-temp', 'use-rpm-opt-flags', 'rpm3-mode', 'no-autoreq', 'quiet'] negative_opt = {'no-keep-temp': 'keep-temp', 'no-rpm-opt-flags': 'use-rpm-opt-flags', 'rpm2-mode': 'rpm3-mode'} def initialize_options(self): self.bdist_base = None self.rpm_base = None self.dist_dir = None self.python = None self.fix_python = None self.spec_only = None self.binary_only = None self.source_only = None self.use_bzip2 = None self.distribution_name = None self.group = None self.release = None self.serial = None self.vendor = None self.packager = None self.doc_files = None self.changelog = None self.icon = None self.prep_script = None self.build_script = None self.install_script = None self.clean_script = None self.verify_script = None self.pre_install = None self.post_install = None self.pre_uninstall = None self.post_uninstall = None self.prep = None self.provides = None self.requires = None self.conflicts = None self.build_requires = None self.obsoletes = None self.keep_temp = 0 self.use_rpm_opt_flags = 1 self.rpm3_mode = 1 self.no_autoreq = 0 self.force_arch = None self.quiet = 0 def finalize_options(self): self.set_undefined_options('bdist', ('bdist_base', 'bdist_base')) if self.rpm_base is None: if not self.rpm3_mode: raise DistutilsOptionError( "you must specify --rpm-base in RPM 2 mode") self.rpm_base = os.path.join(self.bdist_base, "rpm") if self.python is None: if self.fix_python: self.python = sys.executable else: self.python = "python3" elif self.fix_python: raise DistutilsOptionError( "--python and --fix-python are mutually exclusive options") if os.name != 'posix': raise DistutilsPlatformError("don't know how to create RPM " "distributions on platform %s" % os.name) if self.binary_only and self.source_only: raise DistutilsOptionError( "cannot supply both '--source-only' and '--binary-only'") # don't pass CFLAGS to pure python distributions if not self.distribution.has_ext_modules(): self.use_rpm_opt_flags = 0 self.set_undefined_options('bdist', ('dist_dir', 'dist_dir')) self.finalize_package_data() def finalize_package_data(self): self.ensure_string('group', "Development/Libraries") self.ensure_string('vendor', "%s <%s>" % (self.distribution.get_contact(), self.distribution.get_contact_email())) self.ensure_string('packager') self.ensure_string_list('doc_files') if isinstance(self.doc_files, list): for readme in ('README', 'README.txt'): if os.path.exists(readme) and readme not in self.doc_files: self.doc_files.append(readme) self.ensure_string('release', "1") self.ensure_string('serial') # should it be an int? self.ensure_string('distribution_name') self.ensure_string('changelog') # Format changelog correctly self.changelog = self._format_changelog(self.changelog) self.ensure_filename('icon') self.ensure_filename('prep_script') self.ensure_filename('build_script') self.ensure_filename('install_script') self.ensure_filename('clean_script') self.ensure_filename('verify_script') self.ensure_filename('pre_install') self.ensure_filename('post_install') self.ensure_filename('pre_uninstall') self.ensure_filename('post_uninstall') # XXX don't forget we punted on summaries and descriptions -- they # should be handled here eventually! # Now *this* is some meta-data that belongs in the setup script... self.ensure_string_list('provides') self.ensure_string_list('requires') self.ensure_string_list('conflicts') self.ensure_string_list('build_requires') self.ensure_string_list('obsoletes') self.ensure_string('force_arch') def run(self): if DEBUG: print("before _get_package_data():") print("vendor =", self.vendor) print("packager =", self.packager) print("doc_files =", self.doc_files) print("changelog =", self.changelog) # make directories if self.spec_only: spec_dir = self.dist_dir self.mkpath(spec_dir) else: rpm_dir = {} for d in ('SOURCES', 'SPECS', 'BUILD', 'RPMS', 'SRPMS'): rpm_dir[d] = os.path.join(self.rpm_base, d) self.mkpath(rpm_dir[d]) spec_dir = rpm_dir['SPECS'] # Spec file goes into 'dist_dir' if '--spec-only specified', # build/rpm. otherwise. spec_path = os.path.join(spec_dir, "%s.spec" % self.distribution.get_name()) self.execute(write_file, (spec_path, self._make_spec_file()), "writing '%s'" % spec_path) if self.spec_only: # stop if requested return # Make a source distribution and copy to SOURCES directory with # optional icon. saved_dist_files = self.distribution.dist_files[:] sdist = self.reinitialize_command('sdist') if self.use_bzip2: sdist.formats = ['bztar'] else: sdist.formats = ['gztar'] self.run_command('sdist') self.distribution.dist_files = saved_dist_files source = sdist.get_archive_files()[0] source_dir = rpm_dir['SOURCES'] self.copy_file(source, source_dir) if self.icon: if os.path.exists(self.icon): self.copy_file(self.icon, source_dir) else: raise DistutilsFileError( "icon file '%s' does not exist" % self.icon) # build package log.info("building RPMs") rpm_cmd = ['rpm'] if os.path.exists('/usr/bin/rpmbuild') or \ os.path.exists('/bin/rpmbuild'): rpm_cmd = ['rpmbuild'] if self.source_only: # what kind of RPMs? rpm_cmd.append('-bs') elif self.binary_only: rpm_cmd.append('-bb') else: rpm_cmd.append('-ba') rpm_cmd.extend(['--define', '__python %s' % self.python]) if self.rpm3_mode: rpm_cmd.extend(['--define', '_topdir %s' % os.path.abspath(self.rpm_base)]) if not self.keep_temp: rpm_cmd.append('--clean') if self.quiet: rpm_cmd.append('--quiet') rpm_cmd.append(spec_path) # Determine the binary rpm names that should be built out of this spec # file # Note that some of these may not be really built (if the file # list is empty) nvr_string = "%{name}-%{version}-%{release}" src_rpm = nvr_string + ".src.rpm" non_src_rpm = "%{arch}/" + nvr_string + ".%{arch}.rpm" q_cmd = r"rpm -q --qf '%s %s\n' --specfile '%s'" % ( src_rpm, non_src_rpm, spec_path) out = os.popen(q_cmd) try: binary_rpms = [] source_rpm = None while True: line = out.readline() if not line: break l = line.strip().split() assert(len(l) == 2) binary_rpms.append(l[1]) # The source rpm is named after the first entry in the spec file if source_rpm is None: source_rpm = l[0] status = out.close() if status: raise DistutilsExecError("Failed to execute: %s" % repr(q_cmd)) finally: out.close() self.spawn(rpm_cmd) if not self.dry_run: if self.distribution.has_ext_modules(): pyversion = get_python_version() else: pyversion = 'any' if not self.binary_only: srpm = os.path.join(rpm_dir['SRPMS'], source_rpm) assert(os.path.exists(srpm)) self.move_file(srpm, self.dist_dir) filename = os.path.join(self.dist_dir, source_rpm) self.distribution.dist_files.append( ('bdist_rpm', pyversion, filename)) if not self.source_only: for rpm in binary_rpms: rpm = os.path.join(rpm_dir['RPMS'], rpm) if os.path.exists(rpm): self.move_file(rpm, self.dist_dir) filename = os.path.join(self.dist_dir, os.path.basename(rpm)) self.distribution.dist_files.append( ('bdist_rpm', pyversion, filename)) def _dist_path(self, path): return os.path.join(self.dist_dir, os.path.basename(path)) def _make_spec_file(self): """Generate the text of an RPM spec file and return it as a list of strings (one per line). """ # definitions and headers spec_file = [ '%define name ' + self.distribution.get_name(), '%define version ' + self.distribution.get_version().replace('-','_'), '%define unmangled_version ' + self.distribution.get_version(), '%define release ' + self.release.replace('-','_'), '', 'Summary: ' + self.distribution.get_description(), ] # Workaround for #14443 which affects some RPM based systems such as # RHEL6 (and probably derivatives) vendor_hook = subprocess.getoutput('rpm --eval %{__os_install_post}') # Generate a potential replacement value for __os_install_post (whilst # normalizing the whitespace to simplify the test for whether the # invocation of brp-python-bytecompile passes in __python): vendor_hook = '\n'.join([' %s \\' % line.strip() for line in vendor_hook.splitlines()]) problem = "brp-python-bytecompile \\\n" fixed = "brp-python-bytecompile %{__python} \\\n" fixed_hook = vendor_hook.replace(problem, fixed) if fixed_hook != vendor_hook: spec_file.append('# Workaround for http://bugs.python.org/issue14443') spec_file.append('%define __os_install_post ' + fixed_hook + '\n') # put locale summaries into spec file # XXX not supported for now (hard to put a dictionary # in a config file -- arg!) #for locale in self.summaries.keys(): # spec_file.append('Summary(%s): %s' % (locale, # self.summaries[locale])) spec_file.extend([ 'Name: %{name}', 'Version: %{version}', 'Release: %{release}',]) # XXX yuck! this filename is available from the "sdist" command, # but only after it has run: and we create the spec file before # running "sdist", in case of --spec-only. if self.use_bzip2: spec_file.append('Source0: %{name}-%{unmangled_version}.tar.bz2') else: spec_file.append('Source0: %{name}-%{unmangled_version}.tar.gz') spec_file.extend([ 'License: ' + self.distribution.get_license(), 'Group: ' + self.group, 'BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot', 'Prefix: %{_prefix}', ]) if not self.force_arch: # noarch if no extension modules if not self.distribution.has_ext_modules(): spec_file.append('BuildArch: noarch') else: spec_file.append( 'BuildArch: %s' % self.force_arch ) for field in ('Vendor', 'Packager', 'Provides', 'Requires', 'Conflicts', 'Obsoletes', ): val = getattr(self, field.lower()) if isinstance(val, list): spec_file.append('%s: %s' % (field, ' '.join(val))) elif val is not None: spec_file.append('%s: %s' % (field, val)) if self.distribution.get_url() != 'UNKNOWN': spec_file.append('Url: ' + self.distribution.get_url()) if self.distribution_name: spec_file.append('Distribution: ' + self.distribution_name) if self.build_requires: spec_file.append('BuildRequires: ' + ' '.join(self.build_requires)) if self.icon: spec_file.append('Icon: ' + os.path.basename(self.icon)) if self.no_autoreq: spec_file.append('AutoReq: 0') spec_file.extend([ '', '%description', self.distribution.get_long_description() ]) # put locale descriptions into spec file # XXX again, suppressed because config file syntax doesn't # easily support this ;-( #for locale in self.descriptions.keys(): # spec_file.extend([ # '', # '%description -l ' + locale, # self.descriptions[locale], # ]) # rpm scripts # figure out default build script def_setup_call = "%s %s" % (self.python,os.path.basename(sys.argv[0])) def_build = "%s build" % def_setup_call if self.use_rpm_opt_flags: def_build = 'env CFLAGS="$RPM_OPT_FLAGS" ' + def_build # insert contents of files # XXX this is kind of misleading: user-supplied options are files # that we open and interpolate into the spec file, but the defaults # are just text that we drop in as-is. Hmmm. install_cmd = ('%s install -O1 --root=$RPM_BUILD_ROOT ' '--record=INSTALLED_FILES') % def_setup_call script_options = [ ('prep', 'prep_script', "%setup -n %{name}-%{unmangled_version}"), ('build', 'build_script', def_build), ('install', 'install_script', install_cmd), ('clean', 'clean_script', "rm -rf $RPM_BUILD_ROOT"), ('verifyscript', 'verify_script', None), ('pre', 'pre_install', None), ('post', 'post_install', None), ('preun', 'pre_uninstall', None), ('postun', 'post_uninstall', None), ] for (rpm_opt, attr, default) in script_options: # Insert contents of file referred to, if no file is referred to # use 'default' as contents of script val = getattr(self, attr) if val or default: spec_file.extend([ '', '%' + rpm_opt,]) if val: spec_file.extend(open(val, 'r').read().split('\n')) else: spec_file.append(default) # files section spec_file.extend([ '', '%files -f INSTALLED_FILES', '%defattr(-,root,root)', ]) if self.doc_files: spec_file.append('%doc ' + ' '.join(self.doc_files)) if self.changelog: spec_file.extend([ '', '%changelog',]) spec_file.extend(self.changelog) return spec_file def _format_changelog(self, changelog): """Format the changelog correctly and convert it to a list of strings """ if not changelog: return changelog new_changelog = [] for line in changelog.strip().split('\n'): line = line.strip() if line[0] == '*': new_changelog.extend(['', line]) elif line[0] == '-': new_changelog.append(line) else: new_changelog.append(' ' + line) # strip trailing newline inserted by first changelog entry if not new_changelog[0]: del new_changelog[0] return new_changelog PK!B.5  /command/__pycache__/install_data.cpython-36.pycnu[3 \ @s<dZddlZddlmZddlmZmZGdddeZdS)zdistutils.command.install_data Implements the Distutils 'install_data' command, for installing platform-independent data files.N)Command) change_root convert_pathc@sHeZdZdZdddgZdgZd d Zd dZddZddZ ddZ dS) install_datazinstall data files install-dir=dIbase directory for installing data files (default: installation base dir)root=Ns PK!B8command/__pycache__/install_headers.cpython-36.opt-1.pycnu[3 \@s$dZddlmZGdddeZdS)zdistutils.command.install_headers Implements the Distutils 'install_headers' command, to install C/C++ header files to the Python include directory.)Commandc@sFeZdZdZddgZdgZdd Zd d Zd d ZddZ ddZ dS)install_headerszinstall C/C++ header files install-dir=d$directory to install header files toforcef-force installation (overwrite existing files)cCsd|_d|_g|_dS)Nr) install_dirroutfiles)selfr 9/usr/lib64/python3.6/distutils/command/install_headers.pyinitialize_optionssz"install_headers.initialize_optionscCs|jddddS)NZinstallrr r)rr )rr)Zset_undefined_options)r r r rfinalize_optionssz install_headers.finalize_optionscCsL|jj}|sdS|j|jx*|D]"}|j||j\}}|jj|q"WdS)N) distributionheadersZmkpathr Z copy_filer append)r rheaderout_r r rrun!s  zinstall_headers.runcCs |jjp gS)N)rr)r r r r get_inputs+szinstall_headers.get_inputscCs|jS)N)r )r r r r get_outputs.szinstall_headers.get_outputsN)rrr)rrr ) __name__ __module__ __qualname__Z descriptionZ user_optionsZboolean_optionsrrrrrr r r rr s rN)__doc__Zdistutils.corerrr r r rs PK! *dd6command/__pycache__/build_scripts.cpython-36.opt-2.pycnu[3 \X@sddlZddlZddlmZddlmZddlmZddlm Z ddl m Z m Z ddlm Z ddlZejdZGd d d eZGd d d ee ZdS) N)ST_MODE) sysconfig)Command)newer) convert_path Mixin2to3)logs^#!.*python[0-9.]*([ ].*)?$c@sHeZdZdZdddgZdgZd d Zd dZddZddZ ddZ dS) build_scriptsz("build" scripts (copy and fixup #! line) build-dir=ddirectory to "build" (copy) toforcef1forcibly build everything (ignore file timestamps executable=e*specify final destination interpreter pathcCs"d|_d|_d|_d|_d|_dS)N) build_dirscriptsr executableoutfiles)selfr7/usr/lib64/python3.6/distutils/command/build_scripts.pyinitialize_optionss z build_scripts.initialize_optionscCs|jdddd|jj|_dS) NZbuildr rr r)r r)r r )rr)Zset_undefined_optionsZ distributionr)rrrrfinalize_options%s zbuild_scripts.finalize_optionscCs|jS)N)r)rrrrget_source_files,szbuild_scripts.get_source_filescCs|js dS|jdS)N)r copy_scripts)rrrrrun/szbuild_scripts.runc"Cs|j|jg}g}x,|jD] }d}t|}tjj|jtjj|}|j||j rtt || rtt j d|qyt |d}Wn tk r|jsd}YnXXtj|j\}}|jd|j} | s|jd|qtj| } | rd}| jdpd} |rt jd ||j|j||js tjs2|j} n(tjjtjd d tjd tjd f} tj| } d| | d} y| jdWn$tk rt dj!| YnXy| j|Wn&tk rt dj!| |YnXt |d}|j"| |j#|j$WdQRX|r@|j%q|r*|j%|j||j&||qWtj'dkrxh|D]`}|jrpt jd|nDtj(|t)d@}|dBd@}||krVt jd|||tj*||qVW||fS)NFznot copying %s (up-to-date)rbrz%s is an empty file (skipping)Tzcopying and adjusting %s -> %sBINDIRz python%s%sVERSIONEXEs#! zutf-8z.The shebang ({!r}) is not decodable from utf-8zAThe shebang ({!r}) is not decodable from the script encoding ({})wbposixzchanging mode of %siimz!changing mode of %s from %o to %o)+Zmkpathrrrospathjoinbasenameappendr rrdebugopenOSErrordry_runtokenizedetect_encodingreadlineseekwarn first_line_rematchgroupinforZ python_buildrget_config_varfsencodedecodeUnicodeDecodeError ValueErrorformatwrite writelines readlinescloseZ copy_filenamestatrchmod)rr updated_filesZscriptZadjustZoutfilerencodinglinesZ first_liner7Z post_interprZshebangZoutffileZoldmodeZnewmoderrrr5s                  zbuild_scripts.copy_scriptsN)r r r )r rr)rrr) __name__ __module__ __qualname__Z descriptionZ user_optionsZboolean_optionsrrrrrrrrrr sr c@seZdZddZdS)build_scripts_2to3cCs&tj|\}}|js|j|||fS)N)r rr0Zrun_2to3)rrrGrrrrs zbuild_scripts_2to3.copy_scriptsN)rKrLrMrrrrrrNsrN)r(rerErZ distutilsrZdistutils.corerZdistutils.dep_utilrZdistutils.utilrrrr1compiler6r rNrrrrs       PK!377*command/__pycache__/install.cpython-36.pycnu[3 Iij@sdZddlZddlZddlmZddlmZddlmZddl m Z ddl m Z ddl mZdd lmZmZmZdd lmZdd l mZdd lmZdd lmZdZddddddZddddddddddddedZerdddddded <ddd!d"dded#<d+ZGd)d*d*eZdS),zFdistutils.command.install Implements the Distutils 'install' command.N)log)Command)DEBUG)get_config_vars)DistutilsPlatformError) write_file) convert_path subst_vars change_root) get_platform)DistutilsOptionError) USER_BASE) USER_SITETz$base/Lib/site-packagesz$base/Include/$dist_namez $base/Scriptsz$base)purelibplatlibheadersscriptsdataz/$base/lib/python$py_version_short/site-packagesz5$platbase/lib64/python$py_version_short/site-packagesz9$base/include/python$py_version_short$abiflags/$dist_namez $base/binz$base/lib/pythonz$base/lib64/pythonz$base/include/python/$dist_name) unix_prefix unix_homentz $usersitez4$userbase/Python$py_version_nodot/Include/$dist_namez)$userbase/Python$py_version_nodot/Scriptsz $userbasent_userz=$userbase/include/python$py_version_short$abiflags/$dist_namez $userbase/bin unix_userrrrrrc@s:eZdZdZd_d`dadbdddedfdgdidjdkdldmdndodpdqdrgZdd%d(gZer`ejd,dd-efejd,d diZ d.d/Z d0d1Z d2d3Z d4d5Z d6d7Zd8d9Zd:d;Zdd?Zd@dAZdBdCZdDdEZdFdGZdHdIZdJdKZdLdMZdNdOZdPdQZdRdSZdTdUZdVdWZdXefdYefdZefd[efd\d]d^fgZdS)sinstallz'install everything from build directoryprefix=Ninstallation prefix exec-prefix=.(Unix only) prefix for platform-specific fileshome=+(Unix only) home directory to install under install-base=;base installation directory (instead of --prefix or --home)install-platbase=z8base installation directory for platform-specific files z$(instead of --exec-prefix or --home)root=|jD]2}|j|}x"|jD]}||kr&|j|q&WqW|jrl|jrl|jtjj|j |jd|S)z.Assembles the outputs of all the sub-commands.z.pth) rget_finalized_commandrappendrrQrhr}r~r|)rWrrcmdrrXrXrYrbs  zinstall.get_outputscCs2g}x(|jD]}|j|}|j|jqW|S)z*Returns the inputs of all the sub-commands)rrextend get_inputs)rWZinputsrrrXrXrYrss  zinstall.get_inputscCs|jjp|jjS)zSReturns true if the current distribution has any Python modules to install.)rrZhas_pure_modulesZhas_ext_modules)rWrXrXrYhas_libs zinstall.has_libcCs |jjS)zLReturns true if the current distribution has any headers to install.)rr has_headers)rWrXrXrYrszinstall.has_headerscCs |jjS)zMReturns true if the current distribution has any scripts to. install.)rr has_scripts)rWrXrXrYrszinstall.has_scriptscCs |jjS)zJReturns true if the current distribution has any data to. install.)rrZhas_data_files)rWrXrXrYhas_dataszinstall.has_datarJrIrKrLZinstall_egg_infocCsdS)NTrX)rWrXrXrYszinstall.)rNr)rNr)rNr)r Nr!\base installation directory for platform-specific files (instead of --exec-prefix or --home))r"Nr)r#Nr$)r%Nr&)r'Nr(ginstallation directory for all module distributions (overrides --install-purelib and --install-platlib))r)Nr)r*Nr+)r,Nr-)r.Nr/)r0r1r2)r3Nr4)r5r6r7)r8r9r:)r;Nr<)r=Nr>) __name__ __module__ __qualname__Z descriptionrZboolean_optionsrurrrrZrrkrlrmrrrvrxrzr{rryrrrrrrrrZ sub_commandsrXrXrXrYrIs   N3  " , r)rrrrr)__doc__rnrhZ distutilsrZdistutils.corerZdistutils.debugrZdistutils.sysconfigrZdistutils.errorsrZdistutils.file_utilrZdistutils.utilrr r r r Zsiter rruZWINDOWS_SCHEMErrrrXrXrXrYsV            PK!zL.command/__pycache__/bdist.cpython-36.opt-1.pycnu[3 \@sHdZddlZddlmZddlTddlmZddZGdd d eZdS) zidistutils.command.bdist Implements the Distutils 'bdist' command (create a built [binary] distribution).N)Command)*) get_platformcCsTddlm}g}x,tjD]"}|jd|dtj|dfqW||}|jddS)zFPrint list of available formats (arguments to "--format" option). r) FancyGetoptzformats=Nz'List of available distribution formats:)Zdistutils.fancy_getoptrbdistformat_commandsappendformat_commandZ print_help)rformatsformatZpretty_printerr //usr/lib64/python3.6/distutils/command/bdist.py show_formats s   rc @seZdZdZd6dddefd7d8d9d:d;gZdgZdd defgZdd?d@dAdBdCdDdEd/ Z d0d1Z d2d3Zd4d5Zd S)Frz$create a built (binary) distribution bdist-base=b4temporary directory for creating built distributionsz plat-name=pz;platform name to embed in generated filenames (default: %s)formats=N/formats for distribution (comma-separated list) dist-dir=d=directory to put final built distributions in [default: dist] skip-build2skip rebuilding everything (for testing/debugging)owner=u@Owner name used when creating a tar file [default: current user]group=gAGroup name used when creating a tar file [default: current group]z help-formatsz$lists available distribution formats bdist_rpmgztarzip)posixntrpmbztarxztarztartarwininstmsiRPM distribution bdist_dumbgzip'ed tar filebzip2'ed tar filexz'ed tar filecompressed tar filetar file bdist_wininstWindows executable installerZIP file bdist_msiMicrosoft Installer) r&r"r'r(r)r*r+r#r,cCs.d|_d|_d|_d|_d|_d|_d|_dS)Nr) bdist_base plat_namer dist_dir skip_buildgroupowner)selfr r rinitialize_optionsQszbdist.initialize_optionsc Cs|jdkr(|jrt|_n|jdj|_|jdkrT|jdj}tjj|d|j|_|j d|j dkry|j tj g|_ Wn"t k rtdtj YnX|jdkrd|_dS)NZbuildzbdist.r z;don't know how to create built distributions on platform %sZdist)r:r<rZget_finalized_commandr9 build_baseospathjoinZensure_string_listr default_formatnameKeyErrorZDistutilsPlatformErrorr;)r?rAr r rfinalize_optionsZs$       zbdist.finalize_optionsc Csg}xH|jD]>}y|j|j|dWq tk rHtd|Yq Xq Wxztt|jD]h}||}|j|}||jkr|j||_ |dkr|j |_ |j |_ |||ddkrd|_ |j |q^WdS)Nrzinvalid format '%s'r.r)r r r rGZDistutilsOptionErrorrangelenZreinitialize_commandno_format_optionr r>r=Z keep_tempZ run_command)r?Zcommandsr iZcmd_nameZsub_cmdr r rrunvs"    z bdist.run)rrr)rNr)rrr)rNr)rrr)rrr )r!)r!r-)r.r/)r.r0)r.r1)r.r2)r.r3)r4r5)r.r6)r7r8)__name__ __module__ __qualname__Z descriptionrZ user_optionsZboolean_optionsrZ help_optionsrKrErr r@rHrMr r r rrsJ    r) __doc__rBZdistutils.corerZdistutils.errorsZdistutils.utilrrrr r r rs    PK!J%"$"$1command/__pycache__/build_py.cpython-36.opt-2.pycnu[3 \ C@szddlZddlZddlZddlmZddlmZddlTddlm Z m Z ddl m Z GdddeZ Gd d d e e ZdS) N)glob)Command)*) convert_path Mixin2to3)logc@seZdZdZd8d9d:d;dbuild_pyz5"build" pure Python modules (copy to build directory) build-lib=ddirectory to "build" (copy) tocompileccompile .py to .pyc no-compileN!don't compile .py files [default] optimize=Olalso compile with optimization: -O1 for "python -O", -O2 for "python -OO", and -O0 to disable [default: -O0]forcef2forcibly build everything (ignore file timestamps)cCs4d|_d|_d|_d|_d|_d|_d|_d|_dS)Nr) build_lib py_modulespackage package_data package_dirr optimizer)selfr2/usr/lib64/python3.6/distutils/command/build_py.pyinitialize_options szbuild_py.initialize_optionsc Cs|jddd|jj|_|jj|_|jj|_i|_|jjrbx&|jjjD]\}}t||j|<qHW|j|_ t |j t syt |j |_ Wn t tfk rtdYnXdS)NZbuildrrzoptimize must be 0, 1, or 2)rr)rr)Zset_undefined_options distributionpackagesrrritemsrget_data_files data_files isinstancerint ValueErrorAssertionErrorZDistutilsOptionError)rnamepathrrrfinalize_options*s"      zbuild_py.finalize_optionscCs:|jr|j|jr$|j|j|j|jdddS)Nr)include_bytecode)r build_modulesr"build_packagesbuild_package_data byte_compile get_outputs)rrrrrunCs z build_py.runcsg}|js|Sxr|jD]h}|j|}tjj|jg|jd}d|rRt|dfdd|j||D}|j ||||fqW|S)N.rcsg|]}|dqS)Nr).0file)plenrr tsz+build_py.get_data_files..) r"get_package_dirosr+joinrsplitlenfind_data_filesappend)rdatarsrc_dir build_dir filenamesr)r8rr$as   zbuild_py.get_data_filescs`|jjdg|jj|g}gx:|D]2}ttjj|t|}jfdd|Dq&WS)Ncs$g|]}|krtjj|r|qSr)r;r+isfile)r6fn)filesrrr9s z,build_py.find_data_files..)rgetrr;r+r<rextend)rrrBZglobspatternZfilelistr)rHrr?ys  zbuild_py.find_data_filescCshd}x^|jD]T\}}}}xF|D]>}tjj||}|jtjj||jtjj|||ddqWq WdS)NF) preserve_mode)r%r;r+r<mkpathdirname copy_file)rZlastdirrrBrCrDfilenametargetrrrr0s zbuild_py.build_package_datac Cs|jd}|js&|r tjj|SdSng}x|ry|jdj|}Wn*tk rn|jd|d|d=Yq,X|jd|tjj|Sq,W|jjd}|dk r|jd||rtjj|SdSdS)Nr4rErr5rR)r=rr;r+r<KeyErrorinsertrI)rrr+tailZpdirrrrr:s(       zbuild_py.get_package_dircCsj|dkr8tjj|s td|tjj|s8td||rftjj|d}tjj|rZ|Stjd|dS)NrEz%package directory '%s' does not existz>supposed package directory '%s' exists, but is not a directoryz __init__.pyz!package init file '%s' not found z(or not a regular file)z8package init file '%s' not found (or not a regular file)) r;r+existsZDistutilsFileErrorisdirr<rFrwarn)rrrinit_pyrrr check_packages    zbuild_py.check_packagecCs&tjj|stjd||dSdSdS)Nz!file %s (for module %s) not foundFT)r;r+rFrrX)rmodule module_filerrr check_modules zbuild_py.check_modulec Cs|j||ttjj|d}g}tjj|jj}xX|D]P}tjj|}||krztjjtjj |d}|j |||fq8|j d|q8W|S)Nz*.pyrz excluding %s) rZrr;r+r<abspathr!Z script_namesplitextbasenamer@Z debug_print) rrrZ module_filesmodulesZ setup_scriptrZabs_fr[rrrfind_package_moduless   zbuild_py.find_package_modulesc Csi}g}x|jD]}|jd}dj|dd}|d}y||\}}Wn"tk rj|j|}d}YnX|s|j||} |df||<| r|j|d| ftjj||d} |j || sq|j||| fqW|S)Nr4rr5__init__z.pyrRrR) rr=r<rSr:rZr@r;r+r]) rr"rar[r+rZ module_baserZcheckedrYr\rrr find_moduless*       zbuild_py.find_modulescCsRg}|jr|j|j|jrNx.|jD]$}|j|}|j||}|j|q&W|S)N)rrJrdr"r:rb)rrarrmrrrfind_all_moduless   zbuild_py.find_all_modulescCsdd|jDS)NcSsg|] }|dqS)r5rRr)r6r[rrrr9-sz-build_py.get_source_files..)rf)rrrrget_source_files,szbuild_py.get_source_filescCs$|gt||dg}tjj|S)Nz.py)listr;r+r<)rrCrr[Z outfile_pathrrrget_module_outfile/szbuild_py.get_module_outfiler5cCs|j}g}xx|D]p\}}}|jd}|j|j||}|j||r|jr`|jtjj|dd|j dkr|jtjj||j dqW|dd|j D7}|S)Nr4rE) optimizationrcSs,g|]$\}}}}|D]}tjj||qqSr)r;r+r<)r6rrBrCrDrPrrrr9Cs z(build_py.get_outputs..) rfr=rirr@r importlibutilcache_from_sourcerr%)rr-raZoutputsrr[r\rPrrrr23s"       zbuild_py.get_outputscCsbt|tr|jd}nt|ttfs,td|j|j||}tj j |}|j ||j ||ddS)Nr4z:'package' must be a string (dot-separated), list, or tupler)rL) r&strr=rhtuple TypeErrorrirr;r+rNrMrO)rr[r\rZoutfiledirrrr build_moduleJs    zbuild_py.build_modulecCs.|j}x |D]\}}}|j|||qWdS)N)rdrr)rrarr[r\rrrr.Yszbuild_py.build_modulescCsLxF|jD]<}|j|}|j||}x |D]\}}}|j|||q(WqWdS)N)r"r:rbrr)rrrraZpackage_r[r\rrrr/bs   zbuild_py.build_packagescCstjr|jddSddlm}|j}|dtjkr>|tj}|jrZ||d|j ||j d|j dkr||||j |j ||j ddS)Nz%byte-compiling is disabled, skipping.r)r1r5)rrprefixdry_runrR) sysdont_write_bytecoderXdistutils.utilr1rr;sepr rrtr)rrHr1rsrrrr1vs    zbuild_py.byte_compile)r r r )r r r)rNr)rrr)rrr)r5)__name__ __module__ __qualname__Z descriptionZ user_optionsZboolean_optionsZ negative_optr r,r3r$r?r0r:rZr]rbrdrfrgrir2rrr.r/r1rrrrrs8   '4  rc@seZdZddZddZdS) build_py_2to3cCsLg|_|jr|j|jr*|j|j|j|j|j|jdddS)Nr)r-) updated_filesrr.r"r/r0Zrun_2to3r1r2)rrrrr3s zbuild_py_2to3.runcCs,tj||||}|dr(|jj|d|S)Nr5r)rrrr}r@)rr[r\rresrrrrrszbuild_py_2to3.build_moduleN)ryrzr{r3rrrrrrr|sr|)r;importlib.utilrkrurZdistutils.corerZdistutils.errorsrwrrZ distutilsrrr|rrrrs   }PK!x 3command/__pycache__/install_egg_info.cpython-36.pycnu[3 \+ @sddZddlmZddlmZmZddlZddlZddlZGdddeZ ddZ d d Z d d Z dS) zdistutils.command.install_egg_info Implements the Distutils 'install_egg_info' command, for installing a package's PKG-INFO metadata.)Command)logdir_utilNc@s:eZdZdZdZdgZddZdd Zd d Zd d Z dS)install_egg_infoz)Install an .egg-info file for the packagez8Install package's PKG-INFO metadata as an .egg-info file install-dir=ddirectory to install tocCs d|_dS)N) install_dir)selfr :/usr/lib64/python3.6/distutils/command/install_egg_info.pyinitialize_optionssz#install_egg_info.initialize_optionscCsb|jdddtt|jjtt|jjftjdd}t j j |j ||_ |j g|_dS)NZ install_libr z%s-%s-py%d.%d.egg-info)r r )Zset_undefined_options to_filename safe_name distributionZget_name safe_versionZ get_versionsys version_infoospathjoinr targetoutputs)r basenamer r r finalize_optionss z!install_egg_info.finalize_optionsc Cs|j}tjj|r2tjj| r2tj||jdnNtjj|rX|j tj |jfd|n(tjj|j s|j tj |j fd|j t jd||jst|ddd}|jjj|WdQRXdS)N)dry_runz Removing z Creating z Writing %swzUTF-8)encoding)rrrisdirislinkrZ remove_treerexistsZexecuteunlinkr makedirsrinfoopenrZmetadataZwrite_pkg_file)r rfr r r run s   zinstall_egg_info.runcCs|jS)N)r)r r r r get_outputs.szinstall_egg_info.get_outputsN)rrr) __name__ __module__ __qualname____doc__Z descriptionZ user_optionsr rr'r(r r r r r s rcCstjdd|S)zConvert an arbitrary string to a standard distribution name Any runs of non-alphanumeric/. characters are replaced with a single '-'. z[^A-Za-z0-9.]+-)resub)namer r r r6srcCs|jdd}tjdd|S)zConvert an arbitrary string to a standard version string Spaces become dots, and all other non-alphanumeric characters become dashes, with runs of multiple dashes condensed to a single dash.  .z[^A-Za-z0-9.]+r-)replacer.r/)versionr r r r>s rcCs |jddS)z|Convert a project or version name to its filename-escaped form Any '-' characters are currently replaced with '_'. r-_)r3)r0r r r rHsr) r,Z distutils.cmdrZ distutilsrrrrr.rrrrr r r r s + PK!1command/__pycache__/__init__.cpython-36.opt-2.pycnu[3 \@s.dddddddddd d d d d dddddgZdS)ZbuildZbuild_pyZ build_extZ build_clibZ build_scriptsZcleanZinstallZ install_libZinstall_headersZinstall_scriptsZ install_dataZsdistregisterZbdistZ bdist_dumbZ bdist_rpmZ bdist_wininstZcheckZuploadN)__all__rr2/usr/lib64/python3.6/distutils/command/__init__.pys$PK! (command/__pycache__/build.cpython-36.pycnu[3 \t@sTdZddlZddlZddlmZddlmZddlmZddZ Gdd d eZ dS) zBdistutils.command.build Implements the Distutils 'build' command.N)Command)DistutilsOptionError) get_platformcCsddlm}|dS)Nr)show_compilers)Zdistutils.ccompilerr)rr//usr/lib64/python3.6/distutils/command/build.pyr s rc@seZdZdZd8d9d:ddddefd?d@dAdBdCg ZddgZd$dd%efgZd&d'Z d(d)Z d*d+Z d,d-Z d.d/Z d0d1Zd2d3Zd4e fd5e fd6efd7efgZdS)Dbuildz"build everything needed to install build-base=b base directory for build librarybuild-purelib=N2build directory for platform-neutral distributionsbuild-platlib=3build directory for platform-specific distributions build-lib=z9build directory for all distribution (defaults to either zbuild-purelib or build-platlibbuild-scripts=build directory for scripts build-temp=ttemporary build directoryz plat-name=pz6platform name to build for, if supported (default: %s) compiler=cspecify the compiler type parallel=jnumber of parallel build jobsdebugg;compile extensions and libraries with debugging informationforcef2forcibly build everything (ignore file timestamps) executable=e5specify final destination interpreter path (build.py)z help-compilerzlist available compilerscCsLd|_d|_d|_d|_d|_d|_d|_d|_d|_d|_ d|_ d|_ dS)Nrr) build_base build_purelib build_platlib build_lib build_temp build_scriptsZcompiler plat_namerr executableparallel)selfrrrinitialize_options8szbuild.initialize_optionsc CsZ|jdkrt|_ntjdkr&tdd|jftjdd}ttdrR|d7}|jdkrntj j |j d|_|j dkrtj j |j d||_ |j dkr|jjr|j |_ n|j|_ |jdkrtj j |j d||_|jdkrtj j |j d tjdd|_|jdkrtj jtj|_t|jtrVyt|j|_Wntk rTtd YnXdS) NntzW--plat-name only supported on Windows (try using './configure --help' on your platform)z .%s-%d.%dgettotalrefcountz-pydebuglibZtempz scripts-%d.%dzparallel should be an integer)r,rosnamersys version_infohasattrr'pathjoinr&r(r) distributionZ ext_modulesr*r+r-normpath isinstancer.strint ValueError)r/Zplat_specifierrrrfinalize_optionsHs<                zbuild.finalize_optionscCs x|jD]}|j|q WdS)N)Zget_sub_commandsZ run_command)r/Zcmd_namerrrrunsz build.runcCs |jjS)N)r<has_pure_modules)r/rrrrDszbuild.has_pure_modulescCs |jjS)N)r<has_c_libraries)r/rrrrEszbuild.has_c_librariescCs |jjS)N)r<has_ext_modules)r/rrrrFszbuild.has_ext_modulescCs |jjS)N)r< has_scripts)r/rrrrGszbuild.has_scriptsZbuild_pyZ build_clibZ build_extr+)r r r )r Nr )rNrWbuild directory for all distribution (defaults to either build-purelib or build-platlib)rNrH)rNr)rrr)rrr)rrr)rrr)r r!r")r#r$r%)__name__ __module__ __qualname__Z descriptionrZ user_optionsZboolean_optionsrZ help_optionsr0rBrCrDrErFrGZ sub_commandsrrrrrsR 8 r) __doc__r7r5Zdistutils.corerZdistutils.errorsrZdistutils.utilrrrrrrrs    PK!yMi5command/__pycache__/install_data.cpython-36.opt-2.pycnu[3 \ @s8ddlZddlmZddlmZmZGdddeZdS)N)Command) change_root convert_pathc@sHeZdZdZdddgZdgZd d Zd dZddZddZ ddZ dS) install_datazinstall data files install-dir=dIbase directory for installing data files (default: installation base dir)root=Ns PK!I0TJ(J(/command/__pycache__/config.cpython-36.opt-1.pycnu[3 \3@sldZddlZddlZddlmZddlmZddlmZddl m Z ddd Z Gd d d eZ dd d Z dS)adistutils.command.config Implements the Distutils 'config' command, a (mostly) empty command class that exists mainly to be sub-classed by specific module distributions and applications. The idea is that while every "config" command is different, at least they're all named the same, and users always see "config" in the list of standard commands. Also, this is a good place to put common configure-like tasks: "try to compile this C code", or "figure out where this header file lives". N)Command)DistutilsExecError)customize_compiler)logz.cz.cxx)czc++c @seZdZdZd>d?d@dAdBdCdDdEdFg ZddZddZddZd d!Zd"d#Z d$d%Z d&d'Z d(d)Z d*d+Z dGd-d.ZdHd/d0ZdId1d2ZdJd3d4ZdKd5d6ZdLd8d9Zdddgfd:d;ZdMd  r)LANG_EXTopenwriteclose)r&bodyheaderslangfilenamefileheaderr'r'r(_gen_temp_sourcefileks       zconfig._gen_temp_sourcefilecCs<|j|||}d}|jj||g|jj|||d||fS)Nz _configtest.i)r!)rCr%extendr Z preprocess)r&r=r>r!r?srcoutr'r'r( _preprocessxs zconfig._preprocesscCs\|j|||}|jr"t|d||jj|g\}|jj||g|jj|g|d||fS)Nzcompiling '%s':)r!)rCr$ dump_filer Zobject_filenamesr%rDcompile)r&r=r>r!r?rEobjr'r'r(_compileszconfig._compilec Csr|j||||\}}tjjtjj|d} |jj|g| |||d|jjdk r\| |jj} |jj | ||| fS)Nr)r"r#Z target_lang) rKr-pathsplitextbasenamer Zlink_executableZ exe_extensionr%append) r&r=r>r!r"r#r?rErJprogr'r'r(_links    z config._linkc GsX|s|j}g|_tjddj|x0|D](}ytj|Wq(tk rNYq(Xq(WdS)Nz removing: %s )r%rinfojoinr-removeOSError)r& filenamesr@r'r'r(_cleans z config._cleanrc CsRddlm}|jd}y|j||||Wn|k rDd}YnX|j|S)aQConstruct a source file from 'body' (a string containing lines of C/C++ code) and 'headers' (a list of header files to include) and run it through the preprocessor. Return true if the preprocessor succeeded, false if there were any errors. ('body' probably isn't of much use, but what the heck.) r) CompileErrorTF)r4rYr5rGrX)r&r=r>r!r?rYokr'r'r(try_cpps  zconfig.try_cppc Csx|j|j||||\}}t|tr0tj|}t|}d} x&|j} | dkrPP|j| r>d} Pq>W|j |j | S)aConstruct a source file (just like 'try_cpp()'), run it through the preprocessor, and return true if any line of the output matches 'pattern'. 'pattern' should either be a compiled regex object or a string containing a regex. If both 'body' and 'headers' are None, preprocesses an empty file -- which can be useful to determine the symbols the preprocessor and compiler set by default. FT) r5rGr*r+rerIr:readlinesearchr<rX) r&patternr=r>r!r?rErFrAmatchliner'r'r( search_cpps    zconfig.search_cppc Csdddlm}|jy|j||||d}Wn|k rDd}YnXtj|rRdpTd|j|S)zwTry to compile a source file built from 'body' and 'headers'. Return true on success, false otherwise. r)rYTFzsuccess!zfailure.)r4rYr5rKrrSrX)r&r=r>r!r?rYrZr'r'r( try_compiles  zconfig.try_compilec Cspddlm}m}|jy|j||||||d} Wn||fk rPd} YnXtj| r^dp`d|j| S)zTry to compile and link a source file, built from 'body' and 'headers', to executable form. Return true on success, false otherwise. r)rY LinkErrorTFzsuccess!zfailure.)r4rYrer5rQrrSrX) r&r=r>r!r"r#r?rYrerZr'r'r(try_links   zconfig.try_linkc Csddlm}m}|jy.|j||||||\} } } |j| gd} Wn||tfk rdd} YnXtj| rrdptd|j | S)zTry to compile, link to an executable, and run a program built from 'body' and 'headers'. Return true on success, false otherwise. r)rYreTFzsuccess!zfailure.) r4rYrer5rQZspawnrrrSrX) r&r=r>r!r"r#r?rYrerErJZexerZr'r'r(try_runs   zconfig.try_runrc Cst|jg}|r|jd||jd|r<|jd|n|jd||jddj|d}|j|||||S)aDetermine if function 'func' is available by constructing a source file that refers to 'func', and compiles and links it. If everything succeeds, returns true; otherwise returns false. The constructed source file starts out by including the header files listed in 'headers'. If 'decl' is true, it then declares 'func' (as "int func()"); you probably shouldn't supply 'headers' and set 'decl' true in the same call, or you might get errors about a conflicting declarations for 'func'. Finally, the constructed 'main()' function either references 'func' or (if 'call' is true) calls it. 'libraries' and 'library_dirs' are used when linking. z int %s ();z int main () {z %s();z %s;}r7)r5rOrTrf) r&funcr>r!r"r#ZdeclZcallr=r'r'r( check_funcs   zconfig.check_funccCs |j|jd|||g||S)aDetermine if 'library' is available to be linked against, without actually checking that any particular symbols are provided by it. 'headers' will be used in constructing the source file to be compiled, but the only effect of this is to check if all the header files listed are available. Any libraries listed in 'other_libraries' will be included in the link, in case 'library' has symbols that depend on other libraries. zint main (void) { })r5rf)r&Zlibraryr#r>r!Zother_librariesr'r'r( check_lib6s  zconfig.check_libcCs|jd|g|dS)zDetermine if the system header file named by 'header_file' exists and can be found by the preprocessor; return true if so, false otherwise. z /* No body */)r=r>r!)r[)r&rBr!r#r?r'r'r( check_headerDs zconfig.check_header)rNr )r Nr )r r r)rrr)rrr)rrr)rrr)rNr)rNr)NNNr)NNNr)NNr)NNNNr)NNNNr)NNNNrr)NNr)__name__ __module__ __qualname__Z descriptionZ user_optionsr)r/r0r5rCrGrKrQrXr[rcrdrfrgrjrkrlr'r'r'r(rsT         rc CsJ|dkrtjd|n tj|t|}ztj|jWd|jXdS)zjDumps a file content into log.info. If head is not None, will be dumped before the file content. Nz%s)rrSr:readr<)r@headrAr'r'r(rHNs rH)N)__doc__r-r]Zdistutils.corerZdistutils.errorsrZdistutils.sysconfigrZ distutilsrr9rrHr'r'r'r( s     ;PK!)4command/__pycache__/install_lib.cpython-36.opt-2.pycnu[3 \ @sHddlZddlZddlZddlmZddlmZdZGdddeZ dS)N)Command)DistutilsOptionErrorz.pyc @seZdZdZd*d+d,d-d.d/d0gZdd dgZdd iZddZddZddZ ddZ ddZ d d!Z d"d#Z d$d%Zd&d'Zd(d)ZdS)1 install_libz7install all Python modules (extensions and pure Python) install-dir=ddirectory to install to build-dir=b'build directory (where to install from)forcef-force installation (overwrite existing files)compileccompile .py to .pyc [default] no-compileNdon't compile .py files optimize=Olalso compile with optimization: -O1 for "python -O", -O2 for "python -OO", and -O0 to disable [default: -O0] skip-buildskip the build stepscCs(d|_d|_d|_d|_d|_d|_dS)Nr) install_dir build_dirr roptimize skip_build)selfr5/usr/lib64/python3.6/distutils/command/install_lib.pyinitialize_options3s zinstall_lib.initialize_optionsc Cs|jddddddd|jdkr&d |_|jdkr6d |_t|jtsyt|j|_|jdkr^tWn ttfk rtdYnXdS)Ninstall build_librrrr rrrTFrzoptimize must be 0, 1, or 2)r!r)rr)r r )rr)rr)rr)rr"r#)Zset_undefined_optionsrr isinstanceintAssertionError ValueErrorr)rrrrfinalize_options<s$     zinstall_lib.finalize_optionscCs0|j|j}|dk r,|jjr,|j|dS)N)buildr distributionhas_pure_modules byte_compile)routfilesrrrrunVszinstall_lib.runcCs2|js.|jjr|jd|jjr.|jddS)Nbuild_py build_ext)rr*r+Z run_commandhas_ext_modules)rrrrr)fs    zinstall_lib.buildcCs8tjj|jr |j|j|j}n|jd|jdS|S)Nz3'%s' does not exist -- no Python modules to install)ospathisdirrZ copy_treerwarn)rr-rrrr ms  zinstall_lib.installcCsrtjr|jddSddlm}|jdj}|jrH||d|j||j d|j dkrn|||j |j||j |j ddS)Nz%byte-compiling is disabled, skipping.r)r,r )rr prefixdry_run)rr r6verboser7) sysdont_write_bytecoder5Zdistutils.utilr,get_finalized_commandrootrr r7rr8)rfilesr,Z install_rootrrrr,vs     zinstall_lib.byte_compilec Csh|sgS|j|}|j}t||}t|ttj}g}x(|D] } |jtjj|| |dq@W|S)N) r; get_outputsgetattrlenr2sepappendr3join) rZhas_anyZ build_cmdZ cmd_optionZ output_dirZ build_filesrZ prefix_lenZoutputsfilerrr_mutate_outputss    zinstall_lib._mutate_outputscCsvg}xl|D]d}tjjtjj|d}|tkr0q |jrL|jtjj |dd|j dkr |jtjj ||j dq W|S)Nr") optimizationr) r2r3splitextnormcasePYTHON_SOURCE_EXTENSIONrrB importlibutilcache_from_sourcer)rZ py_filenamesZbytecode_filesZpy_fileZextrrr_bytecode_filenamess     zinstall_lib._bytecode_filenamescCsR|j|jjdd|j}|jr*|j|}ng}|j|jjdd|j}|||S)Nr/r!r0)rEr*r+rrrNr1)rZ pure_outputsZbytecode_outputsZ ext_outputsrrrr>s   zinstall_lib.get_outputscCsLg}|jjr&|jd}|j|j|jjrH|jd}|j|j|S)Nr/r0)r*r+r;extendr>r1)rZinputsr/r0rrr get_inputss    zinstall_lib.get_inputs)rrr)rr r )r r r )rrr)rNr)rrr)rNr)__name__ __module__ __qualname__Z descriptionZ user_optionsZboolean_optionsZ negative_optrr(r.r)r r,rErNr>rPrrrrrs*   r) r2importlib.utilrKr9Zdistutils.corerZdistutils.errorsrrJrrrrrs   PK!t5353.command/__pycache__/sdist.cpython-36.opt-1.pycnu[3 \E@sdZddlZddlZddlTddlmZddlmZddlmZddl m Z m Z m Z m Z ddlmZddlTdd lmZdd l mZdd lmZd d ZGdddeZdS)zadistutils.command.sdist Implements the Distutils 'sdist' command (create a source distribution).N)*)glob)warn)Command)dir_utildep_util file_util archive_util)TextFile)FileList)log) convert_pathcCsdddlm}ddlm}g}x,|jD] }|jd|d||dfq&W|j||jddS)zoPrint all possible values for the 'formats' option (used by the "--help-formats" command-line option). r) FancyGetopt)ARCHIVE_FORMATSzformats=Nz.List of available source distribution formats:)Zdistutils.fancy_getoptrZdistutils.archive_utilrkeysappendsortZ print_help)rrformatsformatr//usr/lib64/python3.6/distutils/command/sdist.py show_formatss   rc@seZdZdZddZdJdKdLdMdNdOdPdQdRdTdUdVdWdXgZd ddddd"gZd*d d+efgZd dd,Z d-efgZ d.d/Z d0d1Z d2d3Z d4d5Zd6d7Zd8d9Zd:d;Zdd?Zd@dAZdBdCZdDdEZdFdGZdHdIZd S)Ysdistz6create a source distribution (tarball, zip file, etc.)cCs|jS)zYCallable used for the check sub-command. Placed here so user_options can view it)metadata_check)selfrrrchecking_metadata%szsdist.checking_metadata template=t5name of manifest template file [default: MANIFEST.in] manifest=m)name of manifest file [default: MANIFEST] use-defaultsNRinclude the default file set in the manifest [default; disable with --no-defaults] no-defaults"don't include the default file setprunespecifically exclude files/directories that should not be distributed (build tree, RCS/CVS dirs, etc.) [default; disable with --no-prune]no-prune$don't automatically exclude anything manifest-onlyoEjust regenerate the manifest and then stop (implies --force-manifest)force-manifestfkforcibly regenerate the manifest and carry on as usual. Deprecated: now the manifest is always regenerated.formats=6formats for source distribution (comma-separated list) keep-tempkz1keep the distribution tree around after creating zarchive file(s) dist-dir=dFdirectory to put the source distribution archive(s) in [default: dist]metadata-check[Ensure that all required elements of meta-data are supplied. Warn if any missing. [default]owner=u@Owner name used when creating a tar file [default: current user]group=gAGroup name used when creating a tar file [default: current group]z help-formatsz#list available distribution formats)z no-defaultszno-prunecheckcCsTd|_d|_d|_d|_d|_d|_dg|_d|_d|_d|_ d|_ d|_ d|_ dS)NrZgztar) templatemanifest use_defaultsr' manifest_onlyZforce_manifestr keep_tempdist_dir archive_filesrownergroup)rrrrinitialize_options`szsdist.initialize_optionscCsZ|jdkrd|_|jdkr d|_|jdtj|j}|rFtd||jdkrVd|_dS)NZMANIFESTz MANIFEST.inrzunknown archive format '%s'Zdist)rCrBZensure_string_listr Zcheck_archive_formatsrZDistutilsOptionErrorrG)rZ bad_formatrrrfinalize_optionsws      zsdist.finalize_optionscCsBt|_x|jD]}|j|qW|j|jr6dS|jdS)N)r filelistZget_sub_commandsZ run_command get_file_listrEmake_distribution)rZcmd_namerrrrunsz sdist.runcCs*tdt|jjd}|j|jdS)zDeprecated API.zadistutils.command.sdist.check_metadata is deprecated, use the check command insteadr@N)rPendingDeprecationWarning distributionZget_command_objZensure_finalizedrP)rr@rrrcheck_metadatas  zsdist.check_metadatacCstjj|j}| r<|jr<|j|jj|jjdS|sP|j d|j|jj |j rh|j |rt|j |jr|j|jj|jj|jdS)aCFigure out the list of files to include in the source distribution, and put it in 'self.filelist'. This might involve reading the manifest template (and writing the manifest), or just reading the manifest, or just using the default file set -- it all depends on the user's options. Nz&manifest template '%s' does not exist z(using default file list)z?manifest template '%s' does not exist (using default file list))ospathisfilerB_manifest_is_not_generated read_manifestrMrZremove_duplicatesrfindallrD add_defaults read_templater'prune_file_listwrite_manifest)rZtemplate_existsrrrrNs(      zsdist.get_file_listcCs2d|jjg}x|D]}t|trn|}d}x*|D]"}tjj|r.d}|jj|Pq.W|s|j ddj |qtjj|r|jj|q|j d|qWdd g}x*|D]"}t tjj t |}|jj|qW|jd }|jjr|jj|jx>|jD]4\} } } } x$| D]} |jjtjj | | q WqW|jjrx||jjD]p}t|tr|t|}tjj |r|jj|n:|\}} x0| D](}t|}tjj |r|jj|qWqHW|jjr|jd }|jj|j|jjr|jd }|jj|j|jjr.|jd }|jj|jdS)a9Add all the default files to self.filelist: - README or README.txt - setup.py - test/test*.py - all pure Python modules mentioned in setup script - all files pointed by package_data (build_py) - all files defined in data_files. - all files defined as scripts. - all C sources listed as part of extensions or C libraries in the setup script (doesn't catch C headers!) Warns if (README or README.txt) or setup.py are missing; everything else is optional. README README.txtFTz,standard file not found: should have one of z, zstandard file '%s' not foundz test/test*.pyz setup.cfgbuild_py build_ext build_clib build_scriptsN)r^r_)rRZ script_name isinstancetuplerTrUexistsrMrrjoinfilterrVrextendget_finalized_commandZhas_pure_modulesZget_source_filesZ data_filesZhas_data_filesstrr Zhas_ext_modulesZhas_c_librariesZ has_scripts)rZ standardsfnZaltsZgot_itZoptionalpatternfilesr`ZpkgZsrc_dirZ build_dir filenamesfilenameitemdirnamer/rarbrcrrrrZs\           "         zsdist.add_defaultscCstjd|jt|jddddddd}zlxf|j}|dkrr?)__name__ __module__ __qualname__Z descriptionrZ user_optionsZboolean_optionsrZ help_optionsZ negative_optZ sub_commandsrKrLrPrSrNrZr[r\r]rWrXrrOrrrrrr!sj  (P *r)__doc__rTr~typesrwarningsrZdistutils.corerZ distutilsrrrr Zdistutils.text_filer Zdistutils.errorsZdistutils.filelistr r Zdistutils.utilr rrrrrrs       PK!ȭ)command/__pycache__/upload.cpython-36.pycnu[3 Ii@sdZddlZddlZddlZddlZddlmZddlmZm Z m Z ddl m Z ddl mZmZddlmZddlmZdd lmZGd d d eZdS) zm distutils.command.upload Implements the Distutils 'upload' subcommand (upload package to a package index). N)standard_b64encode)urlopenRequest HTTPError)urlparse)DistutilsErrorDistutilsOptionError) PyPIRCCommand)spawn)logc@sJeZdZdZejddgZejdgZdd Zd d Zd d Z ddZ dS)uploadzupload binary package to PyPIsignssign files to upload using gpg identity=iGPG identity used to sign filescCs,tj|d|_d|_d|_d|_d|_dS)NrF)r initialize_optionsusernamepassword show_responser identity)selfr0/usr/lib64/python3.6/distutils/command/upload.pyr s  zupload.initialize_optionscCsvtj||jr |j r td|j}|ikrX|d|_|d|_|d|_|d|_ |j rr|j jrr|j j|_dS)Nz.Must use --sign for --identity to have meaningrr repositoryrealm) r finalize_optionsrr rZ _read_pypircrrrr distribution)rconfigrrrr(s     zupload.finalize_optionscCs>|jjsd}t|x$|jjD]\}}}|j|||qWdS)NzHMust create and upload files in one command (e.g. setup.py sdist upload))rZ dist_filesr upload_file)rmsgcommand pyversionfilenamerrrrun:s z upload.runc&)Cs^t|j\}}}}}} |s"|s"| r0td|j|d2krDtd||jr|ddd|g} |jrnd|jg| d d <t| |jd t|d } z | j} Wd| j X|j j } d d | j | j tjj|| f||tj| jd| j| j| j| j| j| j| j| j| j| j| j| j| j d}ytj!| j}WnPt"k r}z2d|}|j#|t$j%ddl&m'}|s|WYdd}~Xn X||d<d}|dkrt(j)\}}}|rd||f}n|dkrdt(j(dd}||d<|jrtjj|dt|dd jf|d<|j*d|j+j,d}d t-|j.d}d!}d"|j,d}|d#}t/j0}x|j1D]\}}d$|}t2|t3s|g}xr|D]j}t4|t5kr|d%|d7}|d}nt6|j,d&}|j7||j7|j,d&|j7d'|j7|qWqjW|j7||j8}d(||jf}|j#|t$j%d)|t6t9||d*} t:|j|| d+}!yt;|!}"|"j<}#|"j=}$Wnft>k r}z|j?}#|j=}$WYdd}~Xn8t@k r}z|j#t6|t$jAWYdd}~XnX|#d,kr8|j#d-|#|$ft$j%|jBrZ|jC|"}%d.jDd/d0|%d/d0f}|j#|t$j%n"d1|#|$f}|j#|t$jAtE|dS)3NzIncompatible url %shttphttpszunsupported schema Zgpgz --detach-signz-az --local-user)dry_runrbZ file_upload1z1.0)z:actionZprotocol_versionnameversioncontentZfiletyper$Z sha256_digestZmetadata_versionZsummaryZ home_pageZauthorZ author_emaillicense descriptionkeywordsplatformZ classifiersZ download_urlZprovidesZrequiresZ obsoletesz#calculating md5 checksum failed: %sr) get_fips_modeZ md5_digestrZ bdist_rpmzbuilt for %s %sZ bdist_dumbz built for %s)Ztersecommentz.ascZ gpg_signature:asciizBasic z3--------------GHSKFJDLGDS7543FJKLFHRE75642756743254s --s-- z+ Content-Disposition: form-data; name="%s"z; filename="%s"zutf-8s zSubmitting %s to %sz multipart/form-data; boundary=%s)z Content-typezContent-lengthZ Authorization)dataheaderszServer response (%s): %s -KzUpload failed (%s): %s)r'r()FrrAssertionErrorr rr r*openreadcloserZmetadataZget_nameZ get_versionospathbasenamehashlibZsha256Z hexdigestZget_descriptionZget_urlZ get_contactZget_contact_emailZ get_licenceZget_long_descriptionZ get_keywordsZ get_platformsZget_classifiersZget_download_urlZ get_providesZ get_requiresZ get_obsoletesZmd5 ValueErrorZannouncer INFOZ_hashlibr4r3distrrencoderdecodeioBytesIOitems isinstancelisttypetuplestrwritegetvaluelenrrZgetcoder"rcodeOSErrorZERRORrZ_read_pypi_responsejoinr)&rr#r$r%ZschemaZnetlocZurlZparamsZqueryZ fragmentsZgpg_argsfr/metar9Zdigester"r4r6rIr.idZ user_passZauthboundaryZ sep_boundaryZ end_boundaryZbodykeyvaluetitler:ZrequestresultZstatusreasontextrrrr!Bs                       zupload.upload_fileN)r rr)rrr) __name__ __module__ __qualname__r1r Z user_optionsZboolean_optionsrrr&r!rrrrr s r )__doc__rCrLr3rFbase64rZurllib.requestrrrZ urllib.parserZdistutils.errorsrrZdistutils.corer Zdistutils.spawnr Z distutilsr r rrrrs     PK!6command/__pycache__/bdist_wininst.cpython-36.opt-2.pycnu[3 Ii<@slddlZddlZddlmZddlmZddlmZmZddl Tddl m Z ddl m Z Gdd d eZdS) N)Command) get_platform) create_tree remove_tree)*)get_python_version)logc@seZdZdZd5dddefd7d9d:d;dd?d@dAdBg ZddddgZejd&kZ d'd(Z d)d*Z d+d,Z d-d.Z dCd/d0Zd1d2Zd3d4ZdS)D bdist_wininstz-create an executable installer for MS Windows bdist-dir=N1temporary directory for creating the distributionz plat-name=pz;platform name to embed in generated filenames (default: %s) keep-tempkz/keep the pseudo-installation tree around after z!creating the distribution archivetarget-version=z!require a specific python versionz on the target systemno-target-compilec/do not compile .py to .pyc on the target systemno-target-optimizeo;do not compile .py to .pyo (optimized) on the target system dist-dir=d-directory to put final built distributions inbitmap=b>bitmap to use for the installer instead of python-powered logotitle=t?title to display on the installer background instead of default skip-build2skip rebuilding everything (for testing/debugging)install-script=Ubasename of installation script to be run after installation or before deinstallationpre-install-script={Fully qualified filename of a script to be run before any files are installed. This script need not be in the distributionuser-access-control=specify Vista's UAC handling - 'none'/default=no handling, 'auto'=use UAC if target Python installed for all users, 'force'=always use UACwin32cCsRd|_d|_d|_d|_d|_d|_d|_d|_d|_d|_ d|_ d|_ d|_ dS)Nr) bdist_dir plat_name keep_tempno_target_compileno_target_optimizetarget_versiondist_dirbitmaptitle skip_buildinstall_scriptpre_install_scriptuser_access_control)selfr67/usr/lib64/python3.6/distutils/command/bdist_wininst.pyinitialize_options=sz bdist_wininst.initialize_optionscCs|jdd |jdkrR|jr6|jr6|jjd}|j|_|jdj}tj j |d|_|j s^d|_ |j r|jj rt }|j r|j |krtd|f||_ |jdd d |jrx2|jjD]}|jtj j|krPqWtd|jdS) Nbdistr1ZwininstzMtarget version can only be %s, or the '--skip-build' option must be specifiedr.r)z(install_script '%s' not found in scripts)r1r1)r.r.)r)r))Zset_undefined_optionsr(r1r) distributionZget_command_objget_finalized_command bdist_baseospathjoinr-has_ext_modulesrZDistutilsOptionErrorr2scriptsbasename)r5r9r=Z short_versionscriptr6r6r7finalize_optionsMs4      zbdist_wininst.finalize_optionsc Cstjdkr&|jjs|jjr&td|js6|jd|jddd}|j |_ |j|_d|_ |j |_ |jd}d|_ d|_|jjr|j}|sd tjdd }d |j |f}|jd}tjj|jd ||_x4dD],}|j}|dkr|d}t|d||qWtjd|j |jtjjdtjj|j d|jtjd=ddlm}|} |jj } |j!| d|j d} |j"| | |j#|jjrt$} nd} |jj%j&d| |j'| ftj(d| tj)| |j*st+|j |j,ddS)Nr'z^distribution contains extensions and/or C libraries; must be compiled on a Windows 32 platformbuildinstall)Zreinit_subcommandsr install_libz%d.%dz.%s-%slibpurelibplatlibheadersrBdataz/Include/$dist_nameZinstall_zinstalling to %sZPURELIB)mktempzip)Zroot_diranyr zremoving temporary file '%s')dry_run)rLrMrNrBrO)-sysplatformr;rAZhas_c_librariesZDistutilsPlatformErrorr1Z run_commandZreinitialize_commandr(rootZwarn_dirr)compileoptimizer- version_infor<r>r?r@Z build_baseZ build_libuppersetattrrinfoZensure_finalizedinsertrunZtempfilerP get_fullnameZ make_archive create_exer/rZ dist_filesappendget_installer_filenamedebugremover*rrS) r5rGrIr-Zplat_specifierrFkeyvaluerPZarchive_basenamefullnamearcnameZ pyversionr6r6r7r^ssd                  zbdist_wininst.runc Cs`g}|jj}|jd|jpdd}dd}xJdD]B}t||d}|r2|d|j||f}|jd|||fq2W|jd|jr|jd|j|jd|||jd|j |jd|j |j r|jd|j |j r|jd|j |j p |jj }|jd||ddl }ddl} d|j|j | jf} |jd| dj|S)Nz [metadata]r: cSs |jddS)Nriz\n)replace)sr6r6r7escapesz)bdist_wininst.get_inidata..escapeauthor author_email description maintainermaintainer_emailnameurlversionz %s: %sz%s=%sz [Setup]zinstall_script=%szinfo=%sztarget_compile=%dztarget_optimize=%dztarget_version=%szuser_access_control=%sztitle=%srzBuilt %s with distutils-%sz build_info=%s)rmrnrorprqrrrsrt)r;metadataraZlong_descriptiongetattr capitalizer2r+r,r-r4r0r_time distutilsZctime __version__r@) r5linesrur\rlrrrOr0rxryZ build_infor6r6r7 get_inidatas<   zbdist_wininst.get_inidatac Csddl}|j|j|j}|j|}|jd||rPt|dj}t|}nd}t|d} | j |j |rz| j |t |t r|j d}|d}|jrt|jddd } | jj d} WdQRX|| d }n|d}| j ||jd d t||} | j | | j t|djdS) Nrz creating %srbwbmbcsrzlatin-1)encodings zr?r@r.r))r5rgrr6r6r7rb's  z$bdist_wininst.get_installer_filenamec Cs t}|jrl|j|krl|jdkr&d}q|jdkr6d}q|jdkrFd}q|jdkrVd}q|jdkrfd }qd }n@yd d lm}Wntk rd }YnX|jd d }|d}tjjt }|j dkr|j dddkr|j dd}nd}tjj |d||f}t |d}z|j S|jXdS)Nz2.4z6.0z7.1z2.5z8.0z3.2z9.0z3.4z10.0z14.0r)CRT_ASSEMBLY_VERSION.z.0r'winr:zwininst-%s%s.exer})rr-Zmsvcrtr ImportError partitionr>r?dirname__file__r)r@rrclose) r5Z cur_versionZbvrmajorZ directoryZsfixfilenamefr6r6r7r4s8         zbdist_wininst.get_exe_bytes)r Nr Pkeep the pseudo-installation tree around after creating the distribution archive)r rr6require a specific python version on the target system)rNr)rrr)rrr)rrr)rrr)rrr)rNr )r!Nr")r#Nr$)r%Nr&)N)__name__ __module__ __qualname__rorZ user_optionsZboolean_optionsrTrUZ _unsupportedr8rEr^r|r`rbrr6r6r6r7r sP &Q. 5 r )rTr>Zdistutils.corerZdistutils.utilrZdistutils.dir_utilrrZdistutils.errorsZdistutils.sysconfigrryrr r6r6r6r7s    PK!27M7M,command/__pycache__/bdist_msi.cpython-36.pycnu[3 \@sdZddlZddlZddlmZddlmZddlmZddl m Z ddl m Z ddl mZdd lmZddlZdd lmZmZmZdd lmZmZmZmZGd d d eZGdddeZdS)z# Implements the bdist_msi command. N)Command) remove_tree)get_python_version) StrictVersion)DistutilsOptionError) get_platform)log)schemasequencetext) DirectoryFeatureDialogadd_datac@sFeZdZdZddZddZddd Zdd d ZdddZddZ dS)PyDialogzDialog class with a fixed layout: controls at the top, then a ruler, then a list of buttons: back, next, cancel. Optionally a bitmap at the left.cOs>tj|f||jd}d|d}|jdd||jddS)zbDialog(database, name, x, y, w, h, attributes, title, first, default, cancel, bitmap=true)$iHZ BottomLinerN)r__init__hlinew)selfargskwZrulerZbmwidthr3/usr/lib64/python3.6/distutils/command/bdist_msi.pyrs  zPyDialog.__init__c Cs|jddddddd|dS) z,Set the title text of the dialog at the top.Title i@<iz{\VerdanaBold10}%sN)r )rtitlerrrr #szPyDialog.titleBackc Cs,|r d}nd}|j|d|jddd|||S)zAdd a back button with a given title, the tab-next button, its name in the Control table, possibly initially disabled. Return the button, so that events can be associatedr"8) pushbuttonr)rr nextnameactiveflagsrrrback*sz PyDialog.backCancelc Cs,|r d}nd}|j|d|jddd|||S)zAdd a cancel button with a given title, the tab-next button, its name in the Control table, possibly initially disabled. Return the button, so that events can be associatedr#r"i0r%r&r')r(r)rr r)r*r+r,rrrcancel5szPyDialog.cancelNextc Cs,|r d}nd}|j|d|jddd|||S)zAdd a Next button with a given title, the tab-next button, its name in the Control table, possibly initially disabled. Return the button, so that events can be associatedr#r"r%r&r')r(r)rr r)r*r+r,rrrr)@sz PyDialog.nextc Cs,|j|t|j|d|jdddd||S)zAdd a button with a given title, the tab-next button, its name in the Control table, giving its x position; the y-position is aligned with the other buttons. Return the button, so that events can be associatedr%r&r'r#)r(intrr)rr*r r)ZxposrrrxbuttonKszPyDialog.xbuttonN)r!r")r.r")r0r") __name__ __module__ __qualname____doc__rr r-r/r)r4rrrrrs  rc@seZdZdZdCdddefdEdGdHdIdJdKdLdMg ZddddgZddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1gZd2Zd3d4Z d5d6Z d7d8Z d9d:Z d;d<Z d=d>Zd?d@ZdAdBZdS)N bdist_msiz7create a Microsoft Installer (.msi) binary distribution bdist-dir=N1temporary directory for creating the distributionz plat-name=pz;platform name to embed in generated filenames (default: %s) keep-tempkz/keep the pseudo-installation tree around after z!creating the distribution archivetarget-version=z!require a specific python versionz on the target systemno-target-compilec/do not compile .py to .pyc on the target systemno-target-optimizeo;do not compile .py to .pyo (optimized) on the target system dist-dir=d-directory to put final built distributions in skip-build2skip rebuilding everything (for testing/debugging)install-script=Ubasename of installation script to be run after installation or before deinstallationpre-install-script={Fully qualified filename of a script to be run before any files are installed. This script need not be in the distributionz2.0z2.1z2.2z2.3z2.4z2.5z2.6z2.7z2.8z2.9z3.0z3.1z3.2z3.3z3.4z3.5z3.6z3.7z3.8z3.9XcCsFd|_d|_d|_d|_d|_d|_d|_d|_d|_d|_ d|_ dS)Nr) bdist_dir plat_name keep_tempZno_target_compileZno_target_optimizetarget_versiondist_dir skip_buildinstall_scriptpre_install_scriptversions)rrrrinitialize_options}szbdist_msi.initialize_optionscCs|jdd |jdkr2|jdj}tjj|d|_t}|j rP|j j rP||_|jr|jg|_ |j r|j j r|j|krt d|fn t|j|_ |jdd d |jrt d|jrx2|j jD]}|jtjj|krPqWt d|jd|_dS) NZbdistrUZmsizMtarget version can only be %s, or the '--skip-build' option must be specifiedrTrQz5the pre-install-script feature is not yet implementedz(install_script '%s' not found in scripts)rUrU)rTrT)rQrQ)Zset_undefined_optionsrPget_finalized_command bdist_baseospathjoinrrS distributionhas_ext_modulesrXrUrlist all_versionsrWrVscriptsbasenameinstall_script_key)rr[Z short_versionZscriptrrrfinalize_optionss:        zbdist_msi.finalize_optionscCs|js|jd|jddd}|j|_|j|_d|_|jd}d|_d|_|jj r|j }|s~|jslt ddt j dd }d |j|f}|jd}tjj|jd ||_tjd |j|jt jjdtjj|jd |jt jd=|j|j|jj}|j|}tjj|}tjj|r0tj ||jj!}|j"} | sJ|j#} | sTd} |j$} dt%| j&} |jj}|j rd|j |f} nd|} t'j(|t)| t'j*| | |_+t'j,|j+t-d| fg} |j.p|j/}|r| j0d|f|j1r| j0d|j1f| rt2|j+d| |j3|j4|j5|j6|j+j7t8|jdrld|j pXd|f}|jj9j0||j:st;|j|j| jd?d9d@d;dAd=dB| j d2d6d2dC} | j dDdEt|dF||||||d2d2d2 } | jdG| jd4d2dd5| jd6d7dd5| jd8d9d:d;dz [TARGETDIR]z [SourceDir])Zorderingz [TARGETDIR%s]z FEATURE_SELECTED AND &Python%s=3ZSpawnWaitDialogrjZFeaturesZ SelectionTreerZFEATUREZPathEditz[FEATURE_SELECTED]1z!FEATURE_SELECTED AND &Python%s<>3ZOtherz$Provide an alternate Python locationZEnableZShowZDisableZHiderrZ DiskCostDlgZOKz&{\DlgFontBold8}Disk Space RequirementszFThe disk space required for the installation of the selected features.5aThe highlighted volumes (if any) do not have enough disk space available for the currently selected features. You can either remove some files from the highlighted volumes, or choose to install less features onto local drive(s), or select different destination drive(s).Z VolumeListZVolumeCostListdiz{120}{70}{70}{70}{70}g?Z AdminInstallzGSelect whether to install [ProductName] for all users of this computer.zInstall for all usersZJUSTMEzInstall just for mez [ALLUSERS]zWhichUsers="ALL"z({\DlgFontBold8}[Progress1] [ProductName]#AzYPlease wait while the Installer [Progress2] [ProductName]. This may take several minutes.Z StatusLabelzStatus:Z ProgressBariz Progress doneZ SetProgressZProgressz)Welcome to the [ProductName] Setup WizardZBodyText?z:Select whether you want to repair or remove [ProductName].ZRepairRadioGrouplrz&Repair [ProductName]ZRemoverzRe&move [ProductName]z [REINSTALL]zMaintenanceForm_Action="Repair"z [Progress1]Z Repairingz [Progress2]ZrepairsZ Reinstallz[REMOVE]zMaintenanceForm_Action="Remove" ZRemoving Zremoves z MaintenanceForm_Action<>"Change")rr)rr)rr)rr)rr)rr)rrrNr)rrrNr")rrrNr")rrrrr)rrr)rrr)rrr)rrr)rNr)rrr rrrr r-r/r)ZeventZcontrolrr(mappingr_ryrXrZ conditionr4Z radiogroupadd)rrxyrrr ZmodalZmodelessZtrack_disk_spaceZfatalrAZ user_exitZ exit_dialogZinuseerrorr/ZcostingZprepZseldlgorderrrZinstall_other_condZdont_install_other_condZcostZ whichusersgZprogressZmaintrrrrs                                                                zbdist_msi.add_uicCs<|jrd||j|jf}nd||jf}tjj|j|}|S)Nz%s.%s-py%s.msiz %s.%s.msi)rSrQr\r]r^rT)rrZ base_namerrrrrzs  z bdist_msi.get_installer_filename)r:Nr;Pkeep the pseudo-installation tree around after creating the distribution archive)r=r>r6require a specific python version on the target system)r?Nr)r@rArB)rCrDrE)rFrGrH)rINrJ)rKNrL)rMNrN)r5r6r7Z descriptionrZ user_optionsZboolean_optionsrbrrYrfrxrrrrrzrrrrr9SsR    ([66&@r9)r8rtr\Zdistutils.corerZdistutils.dir_utilrZdistutils.sysconfigrZdistutils.versionrZdistutils.errorsrZdistutils.utilrZ distutilsrrr r r r r rrrr9rrrrs       >PK!iVV/command/__pycache__/config.cpython-36.opt-2.pycnu[3 \3@shddlZddlZddlmZddlmZddlmZddlm Z dddZ Gd d d eZ d d d Z dS)N)Command)DistutilsExecError)customize_compiler)logz.cz.cxx)czc++c @seZdZdZd>d?d@dAdBdCdDdEdFg ZddZddZddZd d!Zd"d#Z d$d%Z d&d'Z d(d)Z d*d+Z dGd-d.ZdHd/d0ZdId1d2ZdJd3d4ZdKd5d6ZdLd8d9Zdddgfd:d;ZdMd  r)LANG_EXTopenwriteclose)r&bodyheaderslangfilenamefileheaderr'r'r(_gen_temp_sourcefileks       zconfig._gen_temp_sourcefilecCs<|j|||}d}|jj||g|jj|||d||fS)Nz _configtest.i)r!)rCr%extendr Z preprocess)r&r=r>r!r?srcoutr'r'r( _preprocessxs zconfig._preprocesscCs\|j|||}|jr"t|d||jj|g\}|jj||g|jj|g|d||fS)Nzcompiling '%s':)r!)rCr$ dump_filer Zobject_filenamesr%rDcompile)r&r=r>r!r?rEobjr'r'r(_compileszconfig._compilec Csr|j||||\}}tjjtjj|d} |jj|g| |||d|jjdk r\| |jj} |jj | ||| fS)Nr)r"r#Z target_lang) rKr-pathsplitextbasenamer Zlink_executableZ exe_extensionr%append) r&r=r>r!r"r#r?rErJprogr'r'r(_links    z config._linkc GsX|s|j}g|_tjddj|x0|D](}ytj|Wq(tk rNYq(Xq(WdS)Nz removing: %s )r%rinfojoinr-removeOSError)r& filenamesr@r'r'r(_cleans z config._cleanrc CsRddlm}|jd}y|j||||Wn|k rDd}YnX|j|S)Nr) CompileErrorTF)r4rYr5rGrX)r&r=r>r!r?rYokr'r'r(try_cpps  zconfig.try_cppc Csx|j|j||||\}}t|tr0tj|}t|}d} x&|j} | dkrPP|j| r>d} Pq>W|j |j | S)NFT) r5rGr*r+rerIr:readlinesearchr<rX) r&patternr=r>r!r?rErFrAmatchliner'r'r( search_cpps    zconfig.search_cppc Csdddlm}|jy|j||||d}Wn|k rDd}YnXtj|rRdpTd|j|S)Nr)rYTFzsuccess!zfailure.)r4rYr5rKrrSrX)r&r=r>r!r?rYrZr'r'r( try_compiles  zconfig.try_compilec Cspddlm}m}|jy|j||||||d} Wn||fk rPd} YnXtj| r^dp`d|j| S)Nr)rY LinkErrorTFzsuccess!zfailure.)r4rYrer5rQrrSrX) r&r=r>r!r"r#r?rYrerZr'r'r(try_links   zconfig.try_linkc Csddlm}m}|jy.|j||||||\} } } |j| gd} Wn||tfk rdd} YnXtj| rrdptd|j | S)Nr)rYreTFzsuccess!zfailure.) r4rYrer5rQZspawnrrrSrX) r&r=r>r!r"r#r?rYrerErJZexerZr'r'r(try_runs   zconfig.try_runrc Cst|jg}|r|jd||jd|r<|jd|n|jd||jddj|d}|j|||||S)Nz int %s ();z int main () {z %s();z %s;}r7)r5rOrTrf) r&funcr>r!r"r#ZdeclZcallr=r'r'r( check_funcs   zconfig.check_funccCs |j|jd|||g||S)Nzint main (void) { })r5rf)r&Zlibraryr#r>r!Zother_librariesr'r'r( check_lib6s  zconfig.check_libcCs|jd|g|dS)Nz /* No body */)r=r>r!)r[)r&rBr!r#r?r'r'r( check_headerDs zconfig.check_header)rNr )r Nr )r r r)rrr)rrr)rrr)rrr)rNr)rNr)NNNr)NNNr)NNr)NNNNr)NNNNr)NNNNrr)NNr)__name__ __module__ __qualname__Z descriptionZ user_optionsr)r/r0r5rCrGrKrQrXr[rcrdrfrgrjrkrlr'r'r'r(rsT         rc CsJ|dkrtjd|n tj|t|}ztj|jWd|jXdS)Nz%s)rrSr:readr<)r@headrAr'r'r(rHNs rH)N) r-r]Zdistutils.corerZdistutils.errorsrZdistutils.sysconfigrZ distutilsrr9rrHr'r'r'r( s     ;PK!2 a׃.command/__pycache__/clean.cpython-36.opt-1.pycnu[3 \ @sDdZddlZddlmZddlmZddlmZGdddeZdS)zBdistutils.command.clean Implements the Distutils 'clean' command.N)Command) remove_tree)logc@s>eZdZdZddddddgZdgZddZddZddZdS)cleanz-clean up temporary files from 'build' command build-base=b2base build directory (default: 'build.build-base') build-lib=Ns    PK!2 a׃(command/__pycache__/clean.cpython-36.pycnu[3 \ @sDdZddlZddlmZddlmZddlmZGdddeZdS)zBdistutils.command.clean Implements the Distutils 'clean' command.N)Command) remove_tree)logc@s>eZdZdZddddddgZdgZddZddZddZdS)cleanz-clean up temporary files from 'build' command build-base=b2base build directory (default: 'build.build-base') build-lib=Ns    PK!I0TJ(J()command/__pycache__/config.cpython-36.pycnu[3 \3@sldZddlZddlZddlmZddlmZddlmZddl m Z ddd Z Gd d d eZ dd d Z dS)adistutils.command.config Implements the Distutils 'config' command, a (mostly) empty command class that exists mainly to be sub-classed by specific module distributions and applications. The idea is that while every "config" command is different, at least they're all named the same, and users always see "config" in the list of standard commands. Also, this is a good place to put common configure-like tasks: "try to compile this C code", or "figure out where this header file lives". N)Command)DistutilsExecError)customize_compiler)logz.cz.cxx)czc++c @seZdZdZd>d?d@dAdBdCdDdEdFg ZddZddZddZd d!Zd"d#Z d$d%Z d&d'Z d(d)Z d*d+Z dGd-d.ZdHd/d0ZdId1d2ZdJd3d4ZdKd5d6ZdLd8d9Zdddgfd:d;ZdMd  r)LANG_EXTopenwriteclose)r&bodyheaderslangfilenamefileheaderr'r'r(_gen_temp_sourcefileks       zconfig._gen_temp_sourcefilecCs<|j|||}d}|jj||g|jj|||d||fS)Nz _configtest.i)r!)rCr%extendr Z preprocess)r&r=r>r!r?srcoutr'r'r( _preprocessxs zconfig._preprocesscCs\|j|||}|jr"t|d||jj|g\}|jj||g|jj|g|d||fS)Nzcompiling '%s':)r!)rCr$ dump_filer Zobject_filenamesr%rDcompile)r&r=r>r!r?rEobjr'r'r(_compileszconfig._compilec Csr|j||||\}}tjjtjj|d} |jj|g| |||d|jjdk r\| |jj} |jj | ||| fS)Nr)r"r#Z target_lang) rKr-pathsplitextbasenamer Zlink_executableZ exe_extensionr%append) r&r=r>r!r"r#r?rErJprogr'r'r(_links    z config._linkc GsX|s|j}g|_tjddj|x0|D](}ytj|Wq(tk rNYq(Xq(WdS)Nz removing: %s )r%rinfojoinr-removeOSError)r& filenamesr@r'r'r(_cleans z config._cleanrc CsRddlm}|jd}y|j||||Wn|k rDd}YnX|j|S)aQConstruct a source file from 'body' (a string containing lines of C/C++ code) and 'headers' (a list of header files to include) and run it through the preprocessor. Return true if the preprocessor succeeded, false if there were any errors. ('body' probably isn't of much use, but what the heck.) r) CompileErrorTF)r4rYr5rGrX)r&r=r>r!r?rYokr'r'r(try_cpps  zconfig.try_cppc Csx|j|j||||\}}t|tr0tj|}t|}d} x&|j} | dkrPP|j| r>d} Pq>W|j |j | S)aConstruct a source file (just like 'try_cpp()'), run it through the preprocessor, and return true if any line of the output matches 'pattern'. 'pattern' should either be a compiled regex object or a string containing a regex. If both 'body' and 'headers' are None, preprocesses an empty file -- which can be useful to determine the symbols the preprocessor and compiler set by default. FT) r5rGr*r+rerIr:readlinesearchr<rX) r&patternr=r>r!r?rErFrAmatchliner'r'r( search_cpps    zconfig.search_cppc Csdddlm}|jy|j||||d}Wn|k rDd}YnXtj|rRdpTd|j|S)zwTry to compile a source file built from 'body' and 'headers'. Return true on success, false otherwise. r)rYTFzsuccess!zfailure.)r4rYr5rKrrSrX)r&r=r>r!r?rYrZr'r'r( try_compiles  zconfig.try_compilec Cspddlm}m}|jy|j||||||d} Wn||fk rPd} YnXtj| r^dp`d|j| S)zTry to compile and link a source file, built from 'body' and 'headers', to executable form. Return true on success, false otherwise. r)rY LinkErrorTFzsuccess!zfailure.)r4rYrer5rQrrSrX) r&r=r>r!r"r#r?rYrerZr'r'r(try_links   zconfig.try_linkc Csddlm}m}|jy.|j||||||\} } } |j| gd} Wn||tfk rdd} YnXtj| rrdptd|j | S)zTry to compile, link to an executable, and run a program built from 'body' and 'headers'. Return true on success, false otherwise. r)rYreTFzsuccess!zfailure.) r4rYrer5rQZspawnrrrSrX) r&r=r>r!r"r#r?rYrerErJZexerZr'r'r(try_runs   zconfig.try_runrc Cst|jg}|r|jd||jd|r<|jd|n|jd||jddj|d}|j|||||S)aDetermine if function 'func' is available by constructing a source file that refers to 'func', and compiles and links it. If everything succeeds, returns true; otherwise returns false. The constructed source file starts out by including the header files listed in 'headers'. If 'decl' is true, it then declares 'func' (as "int func()"); you probably shouldn't supply 'headers' and set 'decl' true in the same call, or you might get errors about a conflicting declarations for 'func'. Finally, the constructed 'main()' function either references 'func' or (if 'call' is true) calls it. 'libraries' and 'library_dirs' are used when linking. z int %s ();z int main () {z %s();z %s;}r7)r5rOrTrf) r&funcr>r!r"r#ZdeclZcallr=r'r'r( check_funcs   zconfig.check_funccCs |j|jd|||g||S)aDetermine if 'library' is available to be linked against, without actually checking that any particular symbols are provided by it. 'headers' will be used in constructing the source file to be compiled, but the only effect of this is to check if all the header files listed are available. Any libraries listed in 'other_libraries' will be included in the link, in case 'library' has symbols that depend on other libraries. zint main (void) { })r5rf)r&Zlibraryr#r>r!Zother_librariesr'r'r( check_lib6s  zconfig.check_libcCs|jd|g|dS)zDetermine if the system header file named by 'header_file' exists and can be found by the preprocessor; return true if so, false otherwise. z /* No body */)r=r>r!)r[)r&rBr!r#r?r'r'r( check_headerDs zconfig.check_header)rNr )r Nr )r r r)rrr)rrr)rrr)rrr)rNr)rNr)NNNr)NNNr)NNr)NNNNr)NNNNr)NNNNrr)NNr)__name__ __module__ __qualname__Z descriptionZ user_optionsr)r/r0r5rCrGrKrQrXr[rcrdrfrgrjrkrlr'r'r'r(rsT         rc CsJ|dkrtjd|n tj|t|}ztj|jWd|jXdS)zjDumps a file content into log.info. If head is not None, will be dumped before the file content. Nz%s)rrSr:readr<)r@headrAr'r'r(rHNs rH)N)__doc__r-r]Zdistutils.corerZdistutils.errorsrZdistutils.sysconfigrZ distutilsrr9rrHr'r'r'r( s     ;PK!$3Y  9command/__pycache__/install_egg_info.cpython-36.opt-2.pycnu[3 \+ @s`ddlmZddlmZmZddlZddlZddlZGdddeZddZ dd Z d d Z dS) )Command)logdir_utilNc@s6eZdZdZdgZddZddZd d Zd d Zd S)install_egg_infoz8Install package's PKG-INFO metadata as an .egg-info file install-dir=ddirectory to install tocCs d|_dS)N) install_dir)selfr :/usr/lib64/python3.6/distutils/command/install_egg_info.pyinitialize_optionssz#install_egg_info.initialize_optionscCsb|jdddtt|jjtt|jjftjdd}t j j |j ||_ |j g|_dS)NZ install_libr z%s-%s-py%d.%d.egg-info)r r )Zset_undefined_options to_filename safe_name distributionZget_name safe_versionZ get_versionsys version_infoospathjoinr targetoutputs)r basenamer r r finalize_optionss z!install_egg_info.finalize_optionsc Cs|j}tjj|r2tjj| r2tj||jdnNtjj|rX|j tj |jfd|n(tjj|j s|j tj |j fd|j t jd||jst|ddd}|jjj|WdQRXdS)N)dry_runz Removing z Creating z Writing %swzUTF-8)encoding)rrrisdirislinkrZ remove_treerexistsZexecuteunlinkr makedirsrinfoopenrZmetadataZwrite_pkg_file)r rfr r r run s   zinstall_egg_info.runcCs|jS)N)r)r r r r get_outputs.szinstall_egg_info.get_outputsN)rrr) __name__ __module__ __qualname__Z descriptionZ user_optionsr rr'r(r r r r r s  rcCstjdd|S)Nz[^A-Za-z0-9.]+-)resub)namer r r r6srcCs|jdd}tjdd|S)N .z[^A-Za-z0-9.]+r,)replacer-r.)versionr r r r>s rcCs |jddS)Nr,_)r2)r/r r r rHsr) Z distutils.cmdrZ distutilsrrrrr-rrrrr r r r s + PK!%Z///command/__pycache__/upload.cpython-36.opt-2.pycnu[3 Ii@sddlZddlZddlZddlZddlmZddlmZmZm Z ddl m Z ddl m Z mZddlmZddlmZddlmZGd d d eZdS) N)standard_b64encode)urlopenRequest HTTPError)urlparse)DistutilsErrorDistutilsOptionError) PyPIRCCommand)spawn)logc@sJeZdZdZejddgZejdgZdd Zd d Zd d Z ddZ dS)uploadzupload binary package to PyPIsignssign files to upload using gpg identity=iGPG identity used to sign filescCs,tj|d|_d|_d|_d|_d|_dS)NrF)r initialize_optionsusernamepassword show_responser identity)selfr0/usr/lib64/python3.6/distutils/command/upload.pyr s  zupload.initialize_optionscCsvtj||jr |j r td|j}|ikrX|d|_|d|_|d|_|d|_ |j rr|j jrr|j j|_dS)Nz.Must use --sign for --identity to have meaningrr repositoryrealm) r finalize_optionsrr rZ _read_pypircrrrr distribution)rconfigrrrr(s     zupload.finalize_optionscCs>|jjsd}t|x$|jjD]\}}}|j|||qWdS)NzHMust create and upload files in one command (e.g. setup.py sdist upload))rZ dist_filesr upload_file)rmsgcommand pyversionfilenamerrrrun:s z upload.runc&)Cs^t|j\}}}}}} |s"|s"| r0td|j|d2krDtd||jr|ddd|g} |jrnd|jg| d d <t| |jd t|d } z | j} Wd| j X|j j } d d | j | j tjj|| f||tj| jd| j| j| j| j| j| j| j| j| j| j| j| j| j d}ytj!| j}WnPt"k r}z2d|}|j#|t$j%ddl&m'}|s|WYdd}~Xn X||d<d}|dkrt(j)\}}}|rd||f}n|dkrdt(j(dd}||d<|jrtjj|dt|dd jf|d<|j*d|j+j,d}d t-|j.d}d!}d"|j,d}|d#}t/j0}x|j1D]\}}d$|}t2|t3s|g}xr|D]j}t4|t5kr|d%|d7}|d}nt6|j,d&}|j7||j7|j,d&|j7d'|j7|qWqjW|j7||j8}d(||jf}|j#|t$j%d)|t6t9||d*} t:|j|| d+}!yt;|!}"|"j<}#|"j=}$Wnft>k r}z|j?}#|j=}$WYdd}~Xn8t@k r}z|j#t6|t$jAWYdd}~XnX|#d,kr8|j#d-|#|$ft$j%|jBrZ|jC|"}%d.jDd/d0|%d/d0f}|j#|t$j%n"d1|#|$f}|j#|t$jAtE|dS)3NzIncompatible url %shttphttpszunsupported schema Zgpgz --detach-signz-az --local-user)dry_runrbZ file_upload1z1.0)z:actionZprotocol_versionnameversioncontentZfiletyper$Z sha256_digestZmetadata_versionZsummaryZ home_pageZauthorZ author_emaillicense descriptionkeywordsplatformZ classifiersZ download_urlZprovidesZrequiresZ obsoletesz#calculating md5 checksum failed: %sr) get_fips_modeZ md5_digestrZ bdist_rpmzbuilt for %s %sZ bdist_dumbz built for %s)Ztersecommentz.ascZ gpg_signature:asciizBasic z3--------------GHSKFJDLGDS7543FJKLFHRE75642756743254s --s-- z+ Content-Disposition: form-data; name="%s"z; filename="%s"zutf-8s zSubmitting %s to %sz multipart/form-data; boundary=%s)z Content-typezContent-lengthZ Authorization)dataheaderszServer response (%s): %s -KzUpload failed (%s): %s)r'r()FrrAssertionErrorr rr r*openreadcloserZmetadataZget_nameZ get_versionospathbasenamehashlibZsha256Z hexdigestZget_descriptionZget_urlZ get_contactZget_contact_emailZ get_licenceZget_long_descriptionZ get_keywordsZ get_platformsZget_classifiersZget_download_urlZ get_providesZ get_requiresZ get_obsoletesZmd5 ValueErrorZannouncer INFOZ_hashlibr4r3distrrencoderdecodeioBytesIOitems isinstancelisttypetuplestrwritegetvaluelenrrZgetcoder"rcodeOSErrorZERRORrZ_read_pypi_responsejoinr)&rr#r$r%ZschemaZnetlocZurlZparamsZqueryZ fragmentsZgpg_argsfr/metar9Zdigester"r4r6rIr.idZ user_passZauthboundaryZ sep_boundaryZ end_boundaryZbodykeyvaluetitler:ZrequestresultZstatusreasontextrrrr!Bs                       zupload.upload_fileN)r rr)rrr) __name__ __module__ __qualname__r1r Z user_optionsZboolean_optionsrrr&r!rrrrr s r )rCrLr3rFbase64rZurllib.requestrrrZ urllib.parserZdistutils.errorsrrZdistutils.corer Zdistutils.spawnr Z distutilsr r rrrrs     PK!'550command/__pycache__/build_scripts.cpython-36.pycnu[3 \X@sdZddlZddlZddlmZddlmZddlmZddl m Z ddl m Z m Z ddlmZddlZejd ZGd d d eZGd d d ee ZdS)zRdistutils.command.build_scripts Implements the Distutils 'build_scripts' command.N)ST_MODE) sysconfig)Command)newer) convert_path Mixin2to3)logs^#!.*python[0-9.]*([ ].*)?$c@sHeZdZdZdddgZdgZd d Zd dZddZddZ ddZ dS) build_scriptsz("build" scripts (copy and fixup #! line) build-dir=ddirectory to "build" (copy) toforcef1forcibly build everything (ignore file timestamps executable=e*specify final destination interpreter pathcCs"d|_d|_d|_d|_d|_dS)N) build_dirscriptsr executableoutfiles)selfr7/usr/lib64/python3.6/distutils/command/build_scripts.pyinitialize_optionss z build_scripts.initialize_optionscCs|jdddd|jj|_dS) NZbuildr rr r)r r)r r )rr)Zset_undefined_optionsZ distributionr)rrrrfinalize_options%s zbuild_scripts.finalize_optionscCs|jS)N)r)rrrrget_source_files,szbuild_scripts.get_source_filescCs|js dS|jdS)N)r copy_scripts)rrrrrun/szbuild_scripts.runc"Cs|j|jg}g}x,|jD] }d}t|}tjj|jtjj|}|j||j rtt || rtt j d|qyt |d}Wn tk r|jsd}YnXXtj|j\}}|jd|j} | s|jd|qtj| } | rd}| jdpd } |rt jd ||j|j||js tjs2|j} n(tjjtjd d tjd tjdf} tj| } d| | d} y| jdWn$tk rt dj!| YnXy| j|Wn&tk rt dj!| |YnXt |d}|j"| |j#|j$WdQRX|r@|j%q|r*|j%|j||j&||qWtj'dkrxh|D]`}|jrpt jd|nDtj(|t)d@}|dBd@}||krVt jd|||tj*||qVW||fS)a"Copy each script listed in 'self.scripts'; if it's marked as a Python script in the Unix way (first line matches 'first_line_re', ie. starts with "\#!" and contains "python"), then adjust the first line to refer to the current Python interpreter as we copy. Fznot copying %s (up-to-date)rbNrz%s is an empty file (skipping)Tzcopying and adjusting %s -> %sBINDIRz python%s%sVERSIONEXEs#! zutf-8z.The shebang ({!r}) is not decodable from utf-8zAThe shebang ({!r}) is not decodable from the script encoding ({})wbposixzchanging mode of %siimz!changing mode of %s from %o to %o)+Zmkpathrrrospathjoinbasenameappendr rrdebugopenOSErrordry_runtokenizedetect_encodingreadlineseekwarn first_line_rematchgroupinforZ python_buildrget_config_varfsencodedecodeUnicodeDecodeError ValueErrorformatwrite writelines readlinescloseZ copy_filenamestatrchmod)rr updated_filesZscriptZadjustZoutfilerencodinglinesZ first_liner7Z post_interprZshebangZoutffileZoldmodeZnewmoderrrr5s                  zbuild_scripts.copy_scriptsN)r r r )r rr)rrr) __name__ __module__ __qualname__Z descriptionZ user_optionsZboolean_optionsrrrrrrrrrr sr c@seZdZddZdS)build_scripts_2to3cCs&tj|\}}|js|j|||fS)N)r rr0Zrun_2to3)rrrGrrrrs zbuild_scripts_2to3.copy_scriptsN)rKrLrMrrrrrrNsrN)__doc__r(rerErZ distutilsrZdistutils.corerZdistutils.dep_utilrZdistutils.utilrrrr1compiler6r rNrrrrs       PK!kk-command/__pycache__/build_clib.cpython-36.pycnu[3 \V@sTdZddlZddlmZddlTddlmZddlmZddZ Gd d d eZ dS) zdistutils.command.build_clib Implements the Distutils 'build_clib' command, to build a C/C++ library that is included in the module distribution and needed by an extension module.N)Command)*)customize_compiler)logcCsddlm}|dS)Nr)show_compilers)distutils.ccompilerr)rr4/usr/lib64/python3.6/distutils/command/build_clib.pyrs rc@sleZdZdZd"d#d$d%d&gZdd gZdddefgZddZddZ ddZ ddZ ddZ ddZ d d!ZdS)' build_clibz/build C/C++ libraries used by Python extensions build-clib=b%directory to build C/C++ libraries to build-temp=t,directory to put temporary build by-productsdebugg"compile with debugging informationforcef2forcibly build everything (ignore file timestamps) compiler=cspecify the compiler typez help-compilerNzlist available compilerscCs:d|_d|_d|_d|_d|_d|_d|_d|_d|_dS)Nr) r build_temp libraries include_dirsdefineundefrrcompiler)selfrrr initialize_options4szbuild_clib.initialize_optionscCsh|jdddd d d |jj|_|jr0|j|j|jdkrH|jjpDg|_t|jtrd|jjtj |_dS) NZbuildrr rrr)rr )rr)rr)rr)rr) Zset_undefined_optionsZ distributionrcheck_library_listr isinstancestrsplitospathsep)r rrr finalize_optionsDs    zbuild_clib.finalize_optionscCs|js dSddlm}||j|j|jd|_t|j|jdk rN|jj|j|j dk rzx |j D]\}}|jj ||q`W|j dk rx|j D]}|jj |qW|j |jdS)Nr) new_compiler)rdry_runr)rrr)rr*rrrZset_include_dirsrZ define_macrorZundefine_macrobuild_libraries)r r)namevalueZmacrorrr run^s        zbuild_clib.runcCst|tstdx|D]|}t|t rs    PK!}5|.command/__pycache__/build.cpython-36.opt-2.pycnu[3 \t@sPddlZddlZddlmZddlmZddlmZddZGdddeZ dS) N)Command)DistutilsOptionError) get_platformcCsddlm}|dS)Nr)show_compilers)Zdistutils.ccompilerr)rr//usr/lib64/python3.6/distutils/command/build.pyr s rc@seZdZdZd8d9d:ddddefd?d@dAdBdCg ZddgZd$dd%efgZd&d'Z d(d)Z d*d+Z d,d-Z d.d/Z d0d1Zd2d3Zd4e fd5e fd6efd7efgZdS)Dbuildz"build everything needed to install build-base=b base directory for build librarybuild-purelib=N2build directory for platform-neutral distributionsbuild-platlib=3build directory for platform-specific distributions build-lib=z9build directory for all distribution (defaults to either zbuild-purelib or build-platlibbuild-scripts=build directory for scripts build-temp=ttemporary build directoryz plat-name=pz6platform name to build for, if supported (default: %s) compiler=cspecify the compiler type parallel=jnumber of parallel build jobsdebugg;compile extensions and libraries with debugging informationforcef2forcibly build everything (ignore file timestamps) executable=e5specify final destination interpreter path (build.py)z help-compilerzlist available compilerscCsLd|_d|_d|_d|_d|_d|_d|_d|_d|_d|_ d|_ d|_ dS)Nrr) build_base build_purelib build_platlib build_lib build_temp build_scriptsZcompiler plat_namerr executableparallel)selfrrrinitialize_options8szbuild.initialize_optionsc CsZ|jdkrt|_ntjdkr&tdd|jftjdd}ttdrR|d7}|jdkrntj j |j d|_|j dkrtj j |j d||_ |j dkr|jjr|j |_ n|j|_ |jdkrtj j |j d||_|jdkrtj j |j d tjdd|_|jdkrtj jtj|_t|jtrVyt|j|_Wntk rTtd YnXdS) NntzW--plat-name only supported on Windows (try using './configure --help' on your platform)z .%s-%d.%dgettotalrefcountz-pydebuglibZtempz scripts-%d.%dzparallel should be an integer)r,rosnamersys version_infohasattrr'pathjoinr&r(r) distributionZ ext_modulesr*r+r-normpath isinstancer.strint ValueError)r/Zplat_specifierrrrfinalize_optionsHs<                zbuild.finalize_optionscCs x|jD]}|j|q WdS)N)Zget_sub_commandsZ run_command)r/Zcmd_namerrrrunsz build.runcCs |jjS)N)r<has_pure_modules)r/rrrrDszbuild.has_pure_modulescCs |jjS)N)r<has_c_libraries)r/rrrrEszbuild.has_c_librariescCs |jjS)N)r<has_ext_modules)r/rrrrFszbuild.has_ext_modulescCs |jjS)N)r< has_scripts)r/rrrrGszbuild.has_scriptsZbuild_pyZ build_clibZ build_extr+)r r r )r Nr )rNrWbuild directory for all distribution (defaults to either build-purelib or build-platlib)rNrH)rNr)rrr)rrr)rrr)rrr)r r!r")r#r$r%)__name__ __module__ __qualname__Z descriptionrZ user_optionsZboolean_optionsrZ help_optionsr0rBrCrDrErFrGZ sub_commandsrrrrrsR 8 r) r7r5Zdistutils.corerZdistutils.errorsrZdistutils.utilrrrrrrrs    PK!B.5  5command/__pycache__/install_data.cpython-36.opt-1.pycnu[3 \ @s<dZddlZddlmZddlmZmZGdddeZdS)zdistutils.command.install_data Implements the Distutils 'install_data' command, for installing platform-independent data files.N)Command) change_root convert_pathc@sHeZdZdZdddgZdgZd d Zd dZddZddZ ddZ dS) install_datazinstall data files install-dir=dIbase directory for installing data files (default: installation base dir)root=Ns PK!)AA3command/__pycache__/build_clib.cpython-36.opt-2.pycnu[3 \V@sPddlZddlmZddlTddlmZddlmZddZGdd d eZ dS) N)Command)*)customize_compiler)logcCsddlm}|dS)Nr)show_compilers)distutils.ccompilerr)rr4/usr/lib64/python3.6/distutils/command/build_clib.pyrs rc@sleZdZdZd"d#d$d%d&gZdd gZdddefgZddZddZ ddZ ddZ ddZ ddZ d d!ZdS)' build_clibz/build C/C++ libraries used by Python extensions build-clib=b%directory to build C/C++ libraries to build-temp=t,directory to put temporary build by-productsdebugg"compile with debugging informationforcef2forcibly build everything (ignore file timestamps) compiler=cspecify the compiler typez help-compilerNzlist available compilerscCs:d|_d|_d|_d|_d|_d|_d|_d|_d|_dS)Nr) r build_temp libraries include_dirsdefineundefrrcompiler)selfrrr initialize_options4szbuild_clib.initialize_optionscCsh|jdddd d d |jj|_|jr0|j|j|jdkrH|jjpDg|_t|jtrd|jjtj |_dS) NZbuildrr rrr)rr )rr)rr)rr)rr) Zset_undefined_optionsZ distributionrcheck_library_listr isinstancestrsplitospathsep)r rrr finalize_optionsDs    zbuild_clib.finalize_optionscCs|js dSddlm}||j|j|jd|_t|j|jdk rN|jj|j|j dk rzx |j D]\}}|jj ||q`W|j dk rx|j D]}|jj |qW|j |jdS)Nr) new_compiler)rdry_runr)rrr)rr*rrrZset_include_dirsrZ define_macrorZundefine_macrobuild_libraries)r r)namevalueZmacrorrr run^s        zbuild_clib.runcCst|tstdx|D]|}t|t rs    PK!v/())+command/__pycache__/build_py.cpython-36.pycnu[3 \ C@s~dZddlZddlZddlZddlmZddlmZddlTddl m Z m Z ddl m Z Gdd d eZGd d d ee ZdS) zHdistutils.command.build_py Implements the Distutils 'build_py' command.N)glob)Command)*) convert_path Mixin2to3)logc@seZdZdZd8d9d:d;dbuild_pyz5"build" pure Python modules (copy to build directory) build-lib=ddirectory to "build" (copy) tocompileccompile .py to .pyc no-compileN!don't compile .py files [default] optimize=Olalso compile with optimization: -O1 for "python -O", -O2 for "python -OO", and -O0 to disable [default: -O0]forcef2forcibly build everything (ignore file timestamps)cCs4d|_d|_d|_d|_d|_d|_d|_d|_dS)Nr) build_lib py_modulespackage package_data package_dirr optimizer)selfr2/usr/lib64/python3.6/distutils/command/build_py.pyinitialize_options szbuild_py.initialize_optionsc Cs|jddd|jj|_|jj|_|jj|_i|_|jjrbx&|jjjD]\}}t||j|<qHW|j|_ t |j t sy.t |j |_ d|j kodknst Wn tt fk rtdYnXdS) NZbuildrrrzoptimize must be 0, 1, or 2)rr)rr)Zset_undefined_options distributionpackagesrrritemsrget_data_files data_files isinstancerintAssertionError ValueErrorZDistutilsOptionError)rnamepathrrrfinalize_options*s"      "zbuild_py.finalize_optionscCs:|jr|j|jr$|j|j|j|jdddS)Nr)include_bytecode)r build_modulesr#build_packagesbuild_package_data byte_compile get_outputs)rrrrrunCs z build_py.runcsg}|js|Sxr|jD]h}|j|}tjj|jg|jd}d|rRt|dfdd|j||D}|j ||||fqW|S)z?Generate list of '(package,src_dir,build_dir,filenames)' tuples.rcsg|]}|dqS)Nr).0file)plenrr tsz+build_py.get_data_files..) r#get_package_dirosr,joinrsplitlenfind_data_filesappend)rdatarsrc_dir build_dir filenamesr)r9rr%as   zbuild_py.get_data_filescs`|jjdg|jj|g}gx:|D]2}ttjj|t|}jfdd|Dq&WS)z6Return filenames for package's data files in 'src_dir'cs$g|]}|krtjj|r|qSr)r<r,isfile)r7fn)filesrrr:s z,build_py.find_data_files..)rgetrr<r,r=rextend)rrrCZglobspatternZfilelistr)rIrr@ys  zbuild_py.find_data_filescCshd}x^|jD]T\}}}}xF|D]>}tjj||}|jtjj||jtjj|||ddqWq WdS)z$Copy data files into build directoryNF) preserve_mode)r&r<r,r=mkpathdirname copy_file)rZlastdirrrCrDrEfilenametargetrrrr1s zbuild_py.build_package_datac Cs|jd}|js&|r tjj|SdSng}x|ry|jdj|}Wn*tk rn|jd|d|d=Yq,X|jd|tjj|Sq,W|jjd}|dk r|jd||rtjj|SdSdS)zReturn the directory, relative to the top of the source distribution, where package 'package' should be found (at least according to the 'package_dir' option, if any).r5rFrr6NrS)r>rr<r,r=KeyErrorinsertrJ)rrr,tailZpdirrrrr;s(       zbuild_py.get_package_dircCsj|dkr8tjj|s td|tjj|s8td||rftjj|d}tjj|rZ|Stjd|dS)NrFz%package directory '%s' does not existz>supposed package directory '%s' exists, but is not a directoryz __init__.pyz!package init file '%s' not found z(or not a regular file)z8package init file '%s' not found (or not a regular file)) r<r,existsZDistutilsFileErrorisdirr=rGrwarn)rrrinit_pyrrr check_packages    zbuild_py.check_packagecCs&tjj|stjd||dSdSdS)Nz!file %s (for module %s) not foundFT)r<r,rGrrY)rmodule module_filerrr check_modules zbuild_py.check_modulec Cs|j||ttjj|d}g}tjj|jj}xX|D]P}tjj|}||krztjjtjj |d}|j |||fq8|j d|q8W|S)Nz*.pyrz excluding %s) r[rr<r,r=abspathr"Z script_namesplitextbasenamerAZ debug_print) rrrZ module_filesmodulesZ setup_scriptrZabs_fr\rrrfind_package_moduless   zbuild_py.find_package_modulesc Csi}g}x|jD]}|jd}dj|dd}|d}y||\}}Wn"tk rj|j|}d}YnX|s|j||} |df||<| r|j|d| ftjj||d} |j || sq|j||| fqW|S)aFinds individually-specified Python modules, ie. those listed by module name in 'self.py_modules'. Returns a list of tuples (package, module_base, filename): 'package' is a tuple of the path through package-space to the module; 'module_base' is the bare (no packages, no dots) module name, and 'filename' is the path to the ".py" file (relative to the distribution root) that implements the module. r5rr6__init__z.pyrSrS) rr>r=rTr;r[rAr<r,r^) rr#rbr\r,rZ module_baserZcheckedrZr]rrr find_moduless*       zbuild_py.find_modulescCsRg}|jr|j|j|jrNx.|jD]$}|j|}|j||}|j|q&W|S)a4Compute the list of all modules that will be built, whether they are specified one-module-at-a-time ('self.py_modules') or by whole packages ('self.packages'). Return a list of tuples (package, module, module_file), just like 'find_modules()' and 'find_package_modules()' do.)rrKrer#r;rc)rrbrrmrrrfind_all_moduless   zbuild_py.find_all_modulescCsdd|jDS)NcSsg|] }|dqS)r6rSr)r7r\rrrr:-sz-build_py.get_source_files..)rg)rrrrget_source_files,szbuild_py.get_source_filescCs$|gt||dg}tjj|S)Nz.py)listr<r,r=)rrDrr\Z outfile_pathrrrget_module_outfile/szbuild_py.get_module_outfiler6cCs|j}g}xx|D]p\}}}|jd}|j|j||}|j||r|jr`|jtjj|dd|j dkr|jtjj||j dqW|dd|j D7}|S)Nr5rF) optimizationrcSs,g|]$\}}}}|D]}tjj||qqSr)r<r,r=)r7rrCrDrErQrrrr:Cs z(build_py.get_outputs..) rgr>rjrrAr importlibutilcache_from_sourcerr&)rr.rbZoutputsrr\r]rQrrrr33s"       zbuild_py.get_outputscCsbt|tr|jd}nt|ttfs,td|j|j||}tj j |}|j ||j ||ddS)Nr5z:'package' must be a string (dot-separated), list, or tupler)rM) r'strr>rituple TypeErrorrjrr<r,rOrNrP)rr\r]rZoutfiledirrrr build_moduleJs    zbuild_py.build_modulecCs.|j}x |D]\}}}|j|||qWdS)N)rers)rrbrr\r]rrrr/Yszbuild_py.build_modulescCsXxR|jD]H}|j|}|j||}x,|D]$\}}}||ks>t|j|||q(WqWdS)N)r#r;rcr)rs)rrrrbZpackage_r\r]rrrr0bs    zbuild_py.build_packagescCstjr|jddSddlm}|j}|dtjkr>|tj}|jrZ||d|j ||j d|j dkr||||j |j ||j ddS)Nz%byte-compiling is disabled, skipping.r)r2r6)rrprefixdry_runrS) sysdont_write_bytecoderYdistutils.utilr2rr<sepr rrur)rrIr2rtrrrr2vs    zbuild_py.byte_compile)r r r )r r r)rNr)rrr)rrr)r6)__name__ __module__ __qualname__Z descriptionZ user_optionsZboolean_optionsZ negative_optr r-r4r%r@r1r;r[r^rcrergrhrjr3rsr/r0r2rrrrrs8   '4  rc@seZdZddZddZdS) build_py_2to3cCsLg|_|jr|j|jr*|j|j|j|j|j|jdddS)Nr)r.) updated_filesrr/r#r0r1Zrun_2to3r2r3)rrrrr4s zbuild_py_2to3.runcCs,tj||||}|dr(|jj|d|S)Nr6r)rrsr~rA)rr\r]rresrrrrsszbuild_py_2to3.build_moduleN)rzr{r|r4rsrrrrr}sr})__doc__r<importlib.utilrlrvrZdistutils.corerZdistutils.errorsrxrrZ distutilsrrr}rrrrs   }PK!FyLL2command/__pycache__/bdist_msi.cpython-36.opt-1.pycnu[3 \@sdZddlZddlZddlmZddlmZddlmZddl m Z ddl m Z ddl mZdd lmZddlZdd lmZmZmZdd lmZmZmZmZGd d d eZGdddeZdS)z# Implements the bdist_msi command. N)Command) remove_tree)get_python_version) StrictVersion)DistutilsOptionError) get_platform)log)schemasequencetext) DirectoryFeatureDialogadd_datac@sFeZdZdZddZddZddd Zdd d ZdddZddZ dS)PyDialogzDialog class with a fixed layout: controls at the top, then a ruler, then a list of buttons: back, next, cancel. Optionally a bitmap at the left.cOs>tj|f||jd}d|d}|jdd||jddS)zbDialog(database, name, x, y, w, h, attributes, title, first, default, cancel, bitmap=true)$iHZ BottomLinerN)r__init__hlinew)selfargskwZrulerZbmwidthr3/usr/lib64/python3.6/distutils/command/bdist_msi.pyrs  zPyDialog.__init__c Cs|jddddddd|dS) z,Set the title text of the dialog at the top.Title i@<iz{\VerdanaBold10}%sN)r )rtitlerrrr #szPyDialog.titleBackc Cs,|r d}nd}|j|d|jddd|||S)zAdd a back button with a given title, the tab-next button, its name in the Control table, possibly initially disabled. Return the button, so that events can be associatedr"8) pushbuttonr)rr nextnameactiveflagsrrrback*sz PyDialog.backCancelc Cs,|r d}nd}|j|d|jddd|||S)zAdd a cancel button with a given title, the tab-next button, its name in the Control table, possibly initially disabled. Return the button, so that events can be associatedr#r"i0r%r&r')r(r)rr r)r*r+r,rrrcancel5szPyDialog.cancelNextc Cs,|r d}nd}|j|d|jddd|||S)zAdd a Next button with a given title, the tab-next button, its name in the Control table, possibly initially disabled. Return the button, so that events can be associatedr#r"r%r&r')r(r)rr r)r*r+r,rrrr)@sz PyDialog.nextc Cs,|j|t|j|d|jdddd||S)zAdd a button with a given title, the tab-next button, its name in the Control table, giving its x position; the y-position is aligned with the other buttons. Return the button, so that events can be associatedr%r&r'r#)r(intrr)rr*r r)ZxposrrrxbuttonKszPyDialog.xbuttonN)r!r")r.r")r0r") __name__ __module__ __qualname____doc__rr r-r/r)r4rrrrrs  rc@seZdZdZdCdddefdEdGdHdIdJdKdLdMg ZddddgZddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1gZd2Zd3d4Z d5d6Z d7d8Z d9d:Z d;d<Z d=d>Zd?d@ZdAdBZdS)N bdist_msiz7create a Microsoft Installer (.msi) binary distribution bdist-dir=N1temporary directory for creating the distributionz plat-name=pz;platform name to embed in generated filenames (default: %s) keep-tempkz/keep the pseudo-installation tree around after z!creating the distribution archivetarget-version=z!require a specific python versionz on the target systemno-target-compilec/do not compile .py to .pyc on the target systemno-target-optimizeo;do not compile .py to .pyo (optimized) on the target system dist-dir=d-directory to put final built distributions in skip-build2skip rebuilding everything (for testing/debugging)install-script=Ubasename of installation script to be run after installation or before deinstallationpre-install-script={Fully qualified filename of a script to be run before any files are installed. This script need not be in the distributionz2.0z2.1z2.2z2.3z2.4z2.5z2.6z2.7z2.8z2.9z3.0z3.1z3.2z3.3z3.4z3.5z3.6z3.7z3.8z3.9XcCsFd|_d|_d|_d|_d|_d|_d|_d|_d|_d|_ d|_ dS)Nr) bdist_dir plat_name keep_tempZno_target_compileZno_target_optimizetarget_versiondist_dir skip_buildinstall_scriptpre_install_scriptversions)rrrrinitialize_options}szbdist_msi.initialize_optionscCs|jdd |jdkr2|jdj}tjj|d|_t}|j rP|j j rP||_|jr|jg|_ |j r|j j r|j|krt d|fn t|j|_ |jdd d |jrt d|jrx2|j jD]}|jtjj|krPqWt d|jd|_dS) NZbdistrUZmsizMtarget version can only be %s, or the '--skip-build' option must be specifiedrTrQz5the pre-install-script feature is not yet implementedz(install_script '%s' not found in scripts)rUrU)rTrT)rQrQ)Zset_undefined_optionsrPget_finalized_command bdist_baseospathjoinrrS distributionhas_ext_modulesrXrUrlist all_versionsrWrVscriptsbasenameinstall_script_key)rr[Z short_versionZscriptrrrfinalize_optionss:        zbdist_msi.finalize_optionscCsz|js|jd|jddd}|j|_|j|_d|_|jd}d|_d|_|jj r|j }|spdt j dd}d |j |f}|jd}tjj|jd ||_tjd |j|jt jjdtjj|jd |jt jd=|j|j|jj}|j|}tjj|}tjj|r"tj||jj }|j!} | s<|j"} | sFd } |j#} dt$| j%} |jj}|j r~d|j |f} nd|} t&j'|t(| t&j)| | |_*t&j+|j*t,d| fg} |j-p|j.}|r| j/d|f|j0r| j/d|j0f| rt1|j*d| |j2|j3|j4|j5|j*j6t7|jdr^d|j pJd|f}|jj8j/||j9svt:|j|j;ddS)Nbuildinstallr")Zreinit_subcommandsr install_libz%d.%dz.%s-%slibzinstalling to %sZPURELIBZUNKNOWNz%d.%d.%dz Python %s %sz Python %sZ DistVersionZ ARPCONTACTZARPURLINFOABOUTProperty dist_filesr9any)dry_run)| jd?d9d@d;dAd=dB| j d2d6d2dC} | j dDdEt|dF||||||d2d2d2 } | jdG| jd4d2dd5| jd6d7dd5| jd8d9d:d;dz [TARGETDIR]z [SourceDir])Zorderingz [TARGETDIR%s]z FEATURE_SELECTED AND &Python%s=3ZSpawnWaitDialogrjZFeaturesZ SelectionTreerZFEATUREZPathEditz[FEATURE_SELECTED]1z!FEATURE_SELECTED AND &Python%s<>3ZOtherz$Provide an alternate Python locationZEnableZShowZDisableZHiderrZ DiskCostDlgZOKz&{\DlgFontBold8}Disk Space RequirementszFThe disk space required for the installation of the selected features.5aThe highlighted volumes (if any) do not have enough disk space available for the currently selected features. You can either remove some files from the highlighted volumes, or choose to install less features onto local drive(s), or select different destination drive(s).Z VolumeListZVolumeCostListdiz{120}{70}{70}{70}{70}g?Z AdminInstallzGSelect whether to install [ProductName] for all users of this computer.zInstall for all usersZJUSTMEzInstall just for mez [ALLUSERS]zWhichUsers="ALL"z({\DlgFontBold8}[Progress1] [ProductName]#AzYPlease wait while the Installer [Progress2] [ProductName]. This may take several minutes.Z StatusLabelzStatus:Z ProgressBariz Progress doneZ SetProgressZProgressz)Welcome to the [ProductName] Setup WizardZBodyText?z:Select whether you want to repair or remove [ProductName].ZRepairRadioGrouplrz&Repair [ProductName]ZRemoverzRe&move [ProductName]z [REINSTALL]zMaintenanceForm_Action="Repair"z [Progress1]Z Repairingz [Progress2]ZrepairsZ Reinstallz[REMOVE]zMaintenanceForm_Action="Remove" ZRemoving Zremoves z MaintenanceForm_Action<>"Change")rr)rr)rr)rr)rr)rr)rrrNr)rrrNr")rrrNr")rrrrr)rrr)rrr)rrr)rrr)rNr)rrr rrrr r-r/r)ZeventZcontrolrr(mappingr_rxrXrZ conditionr4Z radiogroupadd)rrxyrrr ZmodalZmodelessZtrack_disk_spaceZfatalrAZ user_exitZ exit_dialogZinuseerrorr/ZcostingZprepZseldlgorderrrZinstall_other_condZdont_install_other_condZcostZ whichusersgZprogressZmaintrrrrs                                                                zbdist_msi.add_uicCs<|jrd||j|jf}nd||jf}tjj|j|}|S)Nz%s.%s-py%s.msiz %s.%s.msi)rSrQr\r]r^rT)rrZ base_namerrrrrys  z bdist_msi.get_installer_filename)r:Nr;Pkeep the pseudo-installation tree around after creating the distribution archive)r=r>r6require a specific python version on the target system)r?Nr)r@rArB)rCrDrE)rFrGrH)rINrJ)rKNrL)rMNrN)r5r6r7Z descriptionrZ user_optionsZboolean_optionsrbrrYrfrwrrrrryrrrrr9SsR    ([66&@r9)r8rsr\Zdistutils.corerZdistutils.dir_utilrZdistutils.sysconfigrZdistutils.versionrZdistutils.errorsrZdistutils.utilrZ distutilsrrr r r r r rrrr9rrrrs       >PK!`"H-command/__pycache__/bdist_dumb.cpython-36.pycnu[3 \1@shdZddlZddlmZddlmZddlmZmZddl Tddl m Z ddl m Z Gd d d eZdS) zdistutils.command.bdist_dumb Implements the Distutils 'bdist_dumb' command (create a "dumb" built distribution -- i.e., just an archive to be unpacked under $prefix or $exec_prefix).N)Command) get_platform) remove_treeensure_relative)*)get_python_version)logc @s^eZdZdZd%dddefd&d(d)d*d+d,d-g Zd ddgZdddZdd Zd!d"Z d#d$Z dS). bdist_dumbz"create a "dumb" built distribution bdist-dir=d1temporary directory for creating the distributionz plat-name=pz;platform name to embed in generated filenames (default: %s)format=f>archive format to create (tar, gztar, bztar, xztar, ztar, zip) keep-tempkz/keep the pseudo-installation tree around after z!creating the distribution archive dist-dir=-directory to put final built distributions in skip-buildN2skip rebuilding everything (for testing/debugging)relative7build the archive using relative paths (default: false)owner=u@Owner name used when creating a tar file [default: current user]group=gAGroup name used when creating a tar file [default: current group]Zgztarzip)posixntcCs:d|_d|_d|_d|_d|_d|_d|_d|_d|_dS)Nr) bdist_dir plat_nameformat keep_tempdist_dir skip_buildrownergroup)selfr+4/usr/lib64/python3.6/distutils/command/bdist_dumb.pyinitialize_options2szbdist_dumb.initialize_optionscCsz|jdkr&|jdj}tjj|d|_|jdkrfy|jtj|_Wn"t k rdt dtjYnX|j dddd dS) NZbdistZdumbz@don't know how to create dumb built distributions on platform %sr&r#r')r&r&)r#r#)r'r') r"Zget_finalized_command bdist_baseospathjoinr$default_formatnameKeyErrorDistutilsPlatformErrorZset_undefined_options)r*r.r+r+r,finalize_options=s   zbdist_dumb.finalize_optionscCs(|js|jd|jddd}|j|_|j|_d|_tjd|j|jdd|jj |j f}t j j |j|}|js~|j}nJ|jjr|j|jkrtdt|jt|jfnt j j |jt|j}|j||j||j|jd }|jjrt}nd }|jjjd ||f|js$t|j|jd dS) NZbuildinstall)Zreinit_subcommandsrzinstalling to %sz%s.%szScan't make a dumb built distribution where base and platbase are different (%s, %s))Zroot_dirr(r)anyr )dry_run) r'Z run_commandZreinitialize_commandr"rootZwarn_dirrinfoZ distributionZ get_fullnamer#r/r0r1r&rZhas_ext_modulesZ install_baseZinstall_platbaser5reprrZ make_archiver$r(r)rZ dist_filesappendr%rr:)r*r7Zarchive_basenameZpseudoinstall_rootZ archive_rootfilenameZ pyversionr+r+r,runOs>          zbdist_dumb.run)r r r )rrrPkeep the pseudo-installation tree around after creating the distribution archive)rrrA)rr r)rNr)rNr)rrr)rrr) __name__ __module__ __qualname__Z descriptionrZ user_optionsZboolean_optionsr2r-r6r@r+r+r+r,r s6  r )__doc__r/Zdistutils.corerZdistutils.utilrZdistutils.dir_utilrrZdistutils.errorsZdistutils.sysconfigrZ distutilsrr r+r+r+r,s    PK![' @@2command/__pycache__/build_ext.cpython-36.opt-1.pycnu[3 \z@sdZddlZddlZddlZddlZddlmZddlTddlm Z m Z ddlm Z ddl m Z ddlmZdd lmZdd lmZdd lmZejd Zd dZGdddeZdS)zdistutils.command.build_ext Implements the Distutils 'build_ext' command, for building extension modules (currently limited to C extensions, should accommodate C++ extensions ASAP).N)Command)*)customize_compilerget_python_version)get_config_h_filename) newer_group) Extension) get_platform)log) USER_BASEz3^[a-zA-Z_][a-zA-Z_0-9]*(\.[a-zA-Z_][a-zA-Z_0-9]*)*$cCsddlm}|dS)Nr)show_compilers)distutils.ccompilerr )r r3/usr/lib64/python3.6/distutils/command/build_ext.pyr s r c@seZdZdZdejZd`dad d d efdcdddefdddedfdddefdgdhdidjdkdldmdndodpgZd d%d(d1d8gZ d:d2d;e fgZ dd?Z d@dAZdBdCZdDdEZdFdGZdHdIZdJdKZdLdMZejdNdOZdPdQZdRdSZdTdUZdVdWZdXdYZdZd[Zd\d]Zd^d_Zd2S)q build_extz8build C/C++ extensions (compile/link to build directory)z (separated by '%s') build-lib=b(directory for compiled extension modules build-temp=t1directory for temporary files (build by-products)z plat-name=pz>platform name to cross-compile for, if supported (default: %s)inplaceiz=ignore build-lib and put compiled extensions into the source z,directory alongside your pure Python modulesz include-dirs=Iz.list of directories to search for header filesdefine=DC preprocessor macros to defineundef=U!C preprocessor macros to undefine libraries=l!external C libraries to link withz library-dirs=Lz.directories to search for external C librariesrpath=R7directories to search for shared C libraries at runtime link-objects=O2extra explicit link objects to include in the linkdebugg'compile/link with debugging informationforcef2forcibly build everything (ignore file timestamps) compiler=cspecify the compiler type parallel=jnumber of parallel build jobsswig-cppN)make SWIG create C++ files (default is C) swig-opts=!list of SWIG command line optionsswig=path to the SWIG executableuser#add user include, library and rpathz help-compilerzlist available compilerscCsd|_d|_d|_d|_d|_d|_d|_d|_d|_d|_ d|_ d|_ d|_ d|_ d|_d|_d|_d|_d|_d|_d|_dS)Nr) extensions build_lib plat_name build_temprpackage include_dirsdefineundef libraries library_dirsrpath link_objectsr+r.compilerswigswig_cpp swig_optsr=parallel)selfrrrinitialize_optionsjs*zbuild_ext.initialize_optionsc Csddlm}|jdd'd(d)d*d+d,d-|jdkr8|jj|_|jj|_|j}|jd d }|j dkrn|jj pjg|_ t |j t r|j j t j|_ tjtjkr|j jt jjtjd |j j|||kr|j j||jd|jd|jdkrg|_|jdkrg|_nt |jt r&|jj t j|_|jdkr:g|_nt |jt rX|jj t j|_t jdkrT|jjt jjtjdtjtjkr|jjt jjtjd|jrt jj|jd|_nt jj|jd|_|j jt jjtttdd}|r|jj||j dkrd}n|j dd}t jjtjd}|rHt jj||}|jj|tj!dddks|tj!dddkrtj"j#t jjtjdr|jjt jjtjddt$dn |jjd|j%d r|j&s|jj|j%d!n |jjd|j'r|j'j d"}d#d$|D|_'|j(r4|j(j d"|_(|j)dkrHg|_)n|j)j d%|_)|j*rt jjt+d }t jjt+d} t jj,|r|j j|t jj,| r|jj| |jj| t |j-t ryt.|j-|_-Wnt/k rt0d&YnXdS).Nr) sysconfigZbuildr@rBrKr+r.rOrA)Z plat_specificincluderGrJntZlibsZDebugZRelease_homewin32ZPCbuildcygwinatheosbinlibpythonconfig.Py_ENABLE_SHAREDLIBDIR,cSsg|] }|dfqS)1r).0Zsymbolrrr sz.build_ext.finalize_options.. zparallel should be an integer)r@r@)rBrB)rKrK)r+r+)r.r.)rOrO)rArA)1 distutilsrRZset_undefined_optionsrC distributionZ ext_packageZ ext_modulesr?Zget_python_incrD isinstancestrsplitospathsepsys exec_prefixbase_exec_prefixappendpathjoinZensure_string_listrGrHrInameprefixr+rBdirnamergetattrrAplatform executable startswithrget_config_varZ python_buildrErFrNr=r isdirrOint ValueErrorZDistutilsOptionError) rPrRZ py_includeZplat_py_include _sys_homesuffixZnew_libZdefinesZ user_includeZuser_librrrfinalize_optionss                    (         zbuild_ext.finalize_optionscCstddlm}|jsdS|jjrL|jd}|jj|jp:g|j j |j ||j |j |j|jd|_ t|j tjdkr|jtkr|j j|j|jdk r|j j|j|jdk rx |jD]\}}|j j||qW|jdk rx|jD]}|j j|qW|jdk r|j j|j|j dk r4|j j|j |jdk rN|j j|j|j dk rh|j j!|j |j"dS)Nr) new_compiler build_clib)rKverbosedry_runr.rU)#r rr?riZhas_c_librariesget_finalized_commandrGextendZget_library_namesrHrrrrKrrr.rrmrurAr Z initializerDZset_include_dirsrEZ define_macrorFZundefine_macroZ set_librariesZset_library_dirsrIZset_runtime_library_dirsrJZset_link_objectsbuild_extensions)rPrrruvaluemacrorrrruns>             z build_ext.runc Cst|tstdxnt|D]`\}}t|tr4qt|t sLt|dkrTtd|\}}tjd|t|t ozt j |stdt|t stdt||d}x*dD]"}|j |}|dk rt|||qW|j d|_d|krtjd|j d}|rxg|_g|_xj|D]b} t| to,t| dks8tdt| dkrX|jj| dnt| dkr|jj| qW|||<qWdS)aEnsure that the list of extensions (presumably provided as a command option 'extensions') is valid, i.e. it is a list of Extension objects. We also support the old-style list of 2-tuples, where the tuples are (ext_name, build_info), which are converted to Extension instances here. Raise DistutilsSetupError if the structure is invalid anywhere; just returns otherwise. z:'ext_modules' option must be a list of Extension instanceszMeach element of 'ext_modules' option must be an Extension instance or 2-tuplezvold-style (ext_name, build_info) tuple found in ext_modules for extension '%s' -- please convert to Extension instancezRfirst element of each tuple in 'ext_modules' must be the extension name (a string)zOsecond element of each tuple in 'ext_modules' must be a dictionary (build info)sourcesrDrHrG extra_objectsextra_compile_argsextra_link_argsNrIZdef_filez9'def_file' element of build info dict no longer supportedmacrosrSz9'macros' element of build info dict must be 1- or 2-tupler)rDrHrGrrr)rSr)rjlistDistutilsSetupError enumeratertuplelenr warnrkextension_name_rematchdictgetsetattrruntime_library_dirs define_macros undef_macrosrr) rPr?rextext_nameZ build_infokeyvalrrrrrcheck_extensions_listUsT           zbuild_ext.check_extensions_listcCs0|j|jg}x|jD]}|j|jqW|S)N)rr?rr)rP filenamesrrrrget_source_filess   zbuild_ext.get_source_filescCs6|j|jg}x |jD]}|j|j|jqW|S)N)rr?rrget_ext_fullpathru)rPZoutputsrrrr get_outputss   zbuild_ext.get_outputscCs(|j|j|jr|jn|jdS)N)rr?rO_build_extensions_parallel_build_extensions_serial)rPrrrrs  zbuild_ext.build_extensionscsj}jdkrtj}yddlm}Wntk r@d}YnX|dkrVjdS||dTfddjD}x6tj|D]&\}}j ||j WdQRXqWWdQRXdS)NTr)ThreadPoolExecutor)Z max_workerscsg|]}jj|qSr)Zsubmitbuild_extension)rer)executorrPrrrfsz8build_ext._build_extensions_parallel..) rOrm cpu_countZconcurrent.futuresr ImportErrorrr?zip_filter_build_errorsresult)rPZworkersrZfuturesrZfutr)rrPrrs       z$build_ext._build_extensions_parallelc Cs4x.|jD]$}|j||j|WdQRXqWdS)N)r?rr)rPrrrrrs  z"build_ext._build_extensions_serialccsTy dVWnDtttfk rN}z"|js*|jd|j|fWYdd}~XnXdS)Nz"building extension "%s" failed: %s)ZCCompilerErrorZDistutilsErrorZ CompileErrorZoptionalrru)rPrerrrrs zbuild_ext._filter_build_errorsc CsX|j}|dkst|ttf r,td|jt|}|j|j}||j}|jpZt ||dsnt j d|jdSt j d|j|j ||}|jpg}|jdd}x|jD]}|j|fqW|jj||j||j|j ||jd}|dd|_|jr|j|j|jp g}|jp|jj|} |jj|||j||j|j||j ||j |j| d dS)Nzjin 'ext_modules' option (extension '%s'), 'sources' must be present and must be a list of source filenamesZnewerz$skipping '%s' extension (up-to-date)zbuilding '%s' extension)Z output_dirrrDr+extra_postargsdepends)rGrHrrexport_symbolsr+rBZ target_lang)!rrjrrrrurrr.rr r+info swig_sourcesrrrrrrKcompilerBrDZ_built_objectsrrrlanguageZdetect_languageZlink_shared_object get_librariesrHrget_export_symbols) rPrrext_pathrZ extra_argsrrFZobjectsrrrrrsN         zbuild_ext.build_extensioncCs2g}g}i}|jrtjd|js6d|jks6d|jkr        zbuild_ext.swig_sourcescCs`tjdkrdStjdkrNxBd D]&}tjjd|d}tjj|r|SqWdSntd tjd S) zReturn the name of the SWIG executable. On Unix, this is just "swig" -- it should be in the PATH. Tries a bit harder on Windows. posixrLrU1.31.21.1z c:\swig%szswig.exez>I don't know how to find (much less run) SWIG on platform '%s'N)rrr)rmrursrtisfileZDistutilsPlatformError)rPZversfnrrrrfs    zbuild_ext.find_swigcCs|j|}|jd}|j|d}|jsRtjj|dd|g}tjj|j|Sdj|dd}|jd}tjj |j |}tjj||S) zReturns the path of the filename for a given extension. The file is located in `build_lib` or directly in the package (inplace option). r`rSNrbuild_pyrrr) get_ext_fullnamerlget_ext_filenamerrmrsrtr@rabspathZget_package_dir)rPrfullnameZmodpathfilenamerCrZ package_dirrrrr~s   zbuild_ext.get_ext_fullpathcCs |jdkr|S|jd|SdS)zSReturns the fullname of a given extension name. Adds the `package.` prefixNr`)rC)rPrrrrrs zbuild_ext.get_ext_fullnamecCs.ddlm}|jd}|d}tjj||S)zConvert the name of an extension (eg. "foo.bar") into the name of the file from which it will be loaded (eg. "foo/bar.so", or "foo\bar.pyd"). r)r|r` EXT_SUFFIX)distutils.sysconfigr|rlrmrsrt)rPrr|rZ ext_suffixrrrrs  zbuild_ext.get_ext_filenamecCs0d|jjdd}||jkr*|jj||jS)aReturn the list of symbols that a shared extension has to export. This either uses 'ext.export_symbols' or, if it's not provided, "PyInit_" + module_name. Only relevant on Windows, where the .pyd file (DLL) must export the module "PyInit_" function. ZPyInit_r`rSr)rurlrrr)rPrZ initfunc_namerrrrs  zbuild_ext.get_export_symbolscCstjdkrfddlm}t|j|s\d}|jr4|d}|tjd?tjd?d@f}|j|gS|jSnRtjd d d krd }|tjd?tjd?d@f}|j|gStjd d d kr>ddl m }d }|tjd?tjd?d@f}g}xB|j dj D]0}|j dr|j|dd n |j|qW|j|dg|StjdkrP|jStjd ddkrj|jSddl m }|j drdjtjd?tjd?d@|j d}|j|gS|jSd S)zReturn the list of libraries to link against when building a shared extension. On most platforms, this is just 'ext.libraries'; on Windows, we add the Python library (eg. python20.dll). rWr) MSVCCompilerz python%d%dZ_dNrYrZz python%d.%dr[)rRSHLIBSz-lrmdarwinaixraz python{}.{}{}ABIFLAGS)roryZdistutils._msvccompilerrrjrKr+ hexversionrGrhrRr|rlr{rrformat)rPrrtemplateZ pythonlibrRZextrar]rrrrsJ             zbuild_ext.get_libraries)rrr)rrriignore build-lib and put compiled extensions into the source directory alongside your pure Python modules)rrr)rrr)rrr )r!r"r#)r%r&r')r(r)r*)r+r,r-)r.r/r0)r1r2r3)r4r5r6)r7Nr8)r9Nr:)r;Nr<)r=Nr>) __name__ __module__ __qualname__Z descriptionrmrnZsep_byr Z user_optionsZboolean_optionsr Z help_optionsrQrrrrrrrr contextlibcontextmanagerrrrrrrrrrrrrrr!s  @N  K6   r)__doc__rrmreroZdistutils.corerZdistutils.errorsrrrrZdistutils.dep_utilrZdistutils.extensionrZdistutils.utilr rhr Zsiter rrr rrrrrs"       PK!k!H112command/__pycache__/bdist_rpm.cpython-36.opt-2.pycnu[3 \T@s|ddlZddlZddlZddlmZddlmZddlmZddl m Z ddl Tddl m Z ddlmZGd d d eZdS) N)Command)DEBUG) get_platform) write_file)*)get_python_version)logc+@seZdZdZdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|d}d~dddddddddddddddddg)Zd4d9d=d2dUgZd4d9d=dXZdYdZZd[d\Zd]d^Z d_d`Z dadbZ dcddZ dedfZ dS) bdist_rpmzcreate an RPM distribution bdist-base=N/base directory for creating built distributions rpm-base=dbase directory for creating RPMs (defaults to "rpm" under --bdist-base; must be specified for RPM 2) dist-dir=dDdirectory to put final RPM files in (and .spec files if --spec-only)python=Mpath to Python interpreter to hard-code in the .spec file (default: "python") fix-pythonLhard-code the exact path to the current Python interpreter in the .spec file spec-onlyonly regenerate spec file source-onlyonly generate source RPM binary-onlyonly generate binary RPM use-bzip27use bzip2 instead of gzip to create source distributiondistribution-name=gname of the (Linux) distribution to which this RPM applies (*not* the name of the module distribution!)group=9package classification [default: "Development/Libraries"]release=RPM release numberserial=RPM serial numbervendor=aRPM "vendor" (eg. "Joe Blow ") [default: maintainer or author from setup script] packager=BRPM packager (eg. "Jane Doe ") [default: vendor] doc-files=6list of documentation files (space or comma-separated) changelog= RPM changelogicon=name of icon file provides=%capabilities provided by this package requires=%capabilities required by this package conflicts=-capabilities which conflict with this packagebuild-requires=+capabilities required to build this package obsoletes=*capabilities made obsolete by this package no-autoreq+do not automatically calculate dependencies keep-tempk"don't clean up RPM build directory no-keep-temp&clean up RPM build directory [default]use-rpm-opt-flags8compile with RPM_OPT_FLAGS when building from source RPMno-rpm-opt-flags&do not pass any RPM CFLAGS to compiler rpm3-mode"RPM 3 compatibility mode (default) rpm2-modeRPM 2 compatibility mode prep-script=3Specify a script for the PREP phase of RPM building build-script=4Specify a script for the BUILD phase of RPM building pre-install=:Specify a script for the pre-INSTALL phase of RPM buildinginstall-script=6Specify a script for the INSTALL phase of RPM building post-install=;Specify a script for the post-INSTALL phase of RPM buildingpre-uninstall=rnroREADME README.txtrk1rlrirprqrrrsrtrurvrwrxryrzr|r}r~rrr)rr)Z ensure_stringrZ get_contactZget_contact_emailZensure_string_list isinstancerolistrrexistsappend_format_changelogrpZensure_filename)rZreadmerrrrs>                         zbdist_rpm.finalize_package_datac Cstrsz-bdist_rpm._make_spec_file..zbrp-python-bytecompile \ z%brp-python-bytecompile %{__python} \ z2# Workaround for http://bugs.python.org/issue14443z%define __os_install_post z Name: %{name}zVersion: %{version}zRelease: %{release}z-Source0: %{name}-%{unmangled_version}.tar.bz2z,Source0: %{name}-%{unmangled_version}.tar.gzz License: zGroup: z>BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildrootzPrefix: %{_prefix}zBuildArch: noarchz BuildArch: %sVendorPackagerProvidesRequires Conflicts Obsoletesz%s: %s ZUNKNOWNzUrl: zDistribution: zBuildRequires: zIcon: z AutoReq: 0z %descriptionz%s %srz%s buildzenv CFLAGS="$RPM_OPT_FLAGS" z>%s install -O1 --root=$RPM_BUILD_ROOT --record=INSTALLED_FILESr{rr&%setup -n %{name}-%{unmangled_version}ZbuildrsZinstallrtcleanrurm -rf $RPM_BUILD_ROOT verifyscriptrvprerwpostrxpreunrypostunrz%rz%files -f INSTALLED_FILESz%defattr(-,root,root)z%doc z %changelog)rrrrrr)r{rrr)rrur)rrvN)rrwN)rrxN)rryN)rrzN)'rrZ get_versionreplacerkZget_description subprocessZ getoutputr splitlinesrrrhZ get_licenserjrrgetattrlowerrrZget_urlrirrqrrrrZget_long_descriptionrcrargvropenreadrrorp)rZ spec_fileZ vendor_hookZproblemZfixedZ fixed_hookZfieldvalZdef_setup_callZ def_buildZ install_cmdZscript_optionsZrpm_optattrdefaultrrrrs                   zbdist_rpm._make_spec_filecCs|s|Sg}x`|jjdD]N}|j}|ddkrD|jd|gq|ddkr\|j|q|jd|qW|ds||d=|S)Nrrrrrz )rrrr)rrpZ new_changelogrrrrr3s   zbdist_rpm._format_changelog)r Nr )r Nr )rrr)rNr)rNr)rNr)rNr)rNr)rNr)rNr)rNr )r!Nr")r#Nr$)r%Nr&)r'Nr()r)Nr*)r+Nr,)r-Nr.)r/Nr0)r1Nr2)r3Nr4)r5Nr6)r7Nr8)r9Nr:)r;r<r=)r>Nr?)r@NrA)rBNrC)rDNrE)rFNrG)rHNrI)rJNrK)rLNrM)rNNrO)rPNrQ)rRNrS)rTNrU)rVNrW)rXNrY)rZNr[)r\r]r^)__name__ __module__ __qualname__Z descriptionZ user_optionsZboolean_optionsZ negative_optrrrrrrrrrrrr s--)r )rrrZdistutils.corerZdistutils.debugrZdistutils.utilrZdistutils.file_utilrZdistutils.errorsZdistutils.sysconfigrZ distutilsrr rrrrs      PK!`"H3command/__pycache__/bdist_dumb.cpython-36.opt-1.pycnu[3 \1@shdZddlZddlmZddlmZddlmZmZddl Tddl m Z ddl m Z Gd d d eZdS) zdistutils.command.bdist_dumb Implements the Distutils 'bdist_dumb' command (create a "dumb" built distribution -- i.e., just an archive to be unpacked under $prefix or $exec_prefix).N)Command) get_platform) remove_treeensure_relative)*)get_python_version)logc @s^eZdZdZd%dddefd&d(d)d*d+d,d-g Zd ddgZdddZdd Zd!d"Z d#d$Z dS). bdist_dumbz"create a "dumb" built distribution bdist-dir=d1temporary directory for creating the distributionz plat-name=pz;platform name to embed in generated filenames (default: %s)format=f>archive format to create (tar, gztar, bztar, xztar, ztar, zip) keep-tempkz/keep the pseudo-installation tree around after z!creating the distribution archive dist-dir=-directory to put final built distributions in skip-buildN2skip rebuilding everything (for testing/debugging)relative7build the archive using relative paths (default: false)owner=u@Owner name used when creating a tar file [default: current user]group=gAGroup name used when creating a tar file [default: current group]Zgztarzip)posixntcCs:d|_d|_d|_d|_d|_d|_d|_d|_d|_dS)Nr) bdist_dir plat_nameformat keep_tempdist_dir skip_buildrownergroup)selfr+4/usr/lib64/python3.6/distutils/command/bdist_dumb.pyinitialize_options2szbdist_dumb.initialize_optionscCsz|jdkr&|jdj}tjj|d|_|jdkrfy|jtj|_Wn"t k rdt dtjYnX|j dddd dS) NZbdistZdumbz@don't know how to create dumb built distributions on platform %sr&r#r')r&r&)r#r#)r'r') r"Zget_finalized_command bdist_baseospathjoinr$default_formatnameKeyErrorDistutilsPlatformErrorZset_undefined_options)r*r.r+r+r,finalize_options=s   zbdist_dumb.finalize_optionscCs(|js|jd|jddd}|j|_|j|_d|_tjd|j|jdd|jj |j f}t j j |j|}|js~|j}nJ|jjr|j|jkrtdt|jt|jfnt j j |jt|j}|j||j||j|jd }|jjrt}nd }|jjjd ||f|js$t|j|jd dS) NZbuildinstall)Zreinit_subcommandsrzinstalling to %sz%s.%szScan't make a dumb built distribution where base and platbase are different (%s, %s))Zroot_dirr(r)anyr )dry_run) r'Z run_commandZreinitialize_commandr"rootZwarn_dirrinfoZ distributionZ get_fullnamer#r/r0r1r&rZhas_ext_modulesZ install_baseZinstall_platbaser5reprrZ make_archiver$r(r)rZ dist_filesappendr%rr:)r*r7Zarchive_basenameZpseudoinstall_rootZ archive_rootfilenameZ pyversionr+r+r,runOs>          zbdist_dumb.run)r r r )rrrPkeep the pseudo-installation tree around after creating the distribution archive)rrrA)rr r)rNr)rNr)rrr)rrr) __name__ __module__ __qualname__Z descriptionrZ user_optionsZboolean_optionsr2r-r6r@r+r+r+r,r s6  r )__doc__r/Zdistutils.corerZdistutils.utilrZdistutils.dir_utilrrZdistutils.errorsZdistutils.sysconfigrZ distutilsrr r+r+r+r,s    PK!>ii(command/__pycache__/check.cpython-36.pycnu[3 \x @sdZddlmZddlmZyTddlmZddlmZddl m Z ddl m Z ddl m Z Gd d d eZd ZWnek rd ZYnXGd ddeZdS)zCdistutils.command.check Implements the Distutils 'check' command. )Command)DistutilsSetupError)Reporter)Parser)frontend)nodes)StringIOc@seZdZd ddZddZdS) SilentReporterNrasciireplacec Cs"g|_tj||||||||dS)N)messagesr__init__)selfsource report_level halt_levelstreamdebugencoding error_handlerr//usr/lib64/python3.6/distutils/command/check.pyr szSilentReporter.__init__cOs6|jj||||ftj|f|||j|d|S)N)leveltype)r appendrsystem_messageZlevels)rrmessageZchildrenkwargsrrrrszSilentReporter.system_message)Nrr r )__name__ __module__ __qualname__r rrrrrr s r TFc@s`eZdZdZdZdddgZddd gZd d ZddZddZ ddZ ddZ ddZ ddZ dS)checkz6This command checks the meta-data of the package. z"perform some checks on the packagemetadatamVerify meta-datarestructuredtextrEChecks if long string meta-data syntax are reStructuredText-compliantstricts(Will exit with an error if a check failscCsd|_d|_d|_d|_dS)z Sets default values for options.rN)r%r"r( _warnings)rrrrinitialize_options1szcheck.initialize_optionscCsdS)Nr)rrrrfinalize_options8szcheck.finalize_optionscCs|jd7_tj||S)z*Counts the number of warnings that occurs.r+)r,rwarn)rmsgrrrr/;sz check.warncCsL|jr|j|jr0tr"|jn|jr0td|jrH|jdkrHtddS)zRuns the command.zThe docutils package is needed.rzPlease correct your package.N)r"check_metadatar% HAS_DOCUTILScheck_restructuredtextr(rr,)rrrrrun@s z check.runcCs|jj}g}x*dD]"}t||o(t||s|j|qW|rP|jddj||jrh|js|jdn"|j r|j s|jdn |jdd S)zEnsures that all required elements of meta-data are supplied. name, version, URL, (author and author_email) or (maintainer and maintainer_email)). Warns if any are missing. nameversionurlzmissing required meta-data: %sz, z)missing meta-data: if 'author' supplied, z#'author_email' must be supplied tooz-missing meta-data: if 'maintainer' supplied, z''maintainer_email' must be supplied tooz4missing meta-data: either (author and author_email) z%or (maintainer and maintainer_email) zmust be suppliedN)r5r6r7zLmissing meta-data: if 'author' supplied, 'author_email' must be supplied toozTmissing meta-data: if 'maintainer' supplied, 'maintainer_email' must be supplied toozYmissing meta-data: either (author and author_email) or (maintainer and maintainer_email) zimissing meta-data: either (author and author_email) or (maintainer and maintainer_email) must be supplied) distributionr"hasattrgetattrrr/joinZauthorZ author_emailZ maintainerZmaintainer_email)rr"Zmissingattrrrrr1Ps$ zcheck.check_metadatacCs\|jj}xL|j|D]>}|djd}|dkr:|d}nd|d|f}|j|qWdS)z4Checks if the long string fields are reST-compliant.r+lineNz %s (line %s))r8Zget_long_description_check_rst_datagetr/)rdataZwarningr=rrrr3ns  zcheck.check_restructuredtextcCst}t}tjtfdj}d|_d|_d|_t||j |j |j |j |j |jd}tj|||d}|j|d y|j||Wn:tk r}z|jjd d|difWYdd}~XnX|jS) z8Returns warnings when the provided data doesn't compile.)Z componentsN)rrrr)rr+z!Could not finish the parsing: %s.r>r>)rrrZ OptionParserZget_default_valuesZ tab_widthZpep_referencesZrfc_referencesr rrZwarning_streamrZerror_encodingZerror_encoding_error_handlerrdocumentZ note_sourceparseAttributeErrorr r)rrA source_pathparserZsettingsZreporterrDerrrr?ys*  $zcheck._check_rst_dataN)r"r#r$)r%r&r')r(r)r*)rrr __doc__Z descriptionZ user_optionsZboolean_optionsr-r.r/r4r1r3r?rrrrr!$s  r!N)rJZdistutils.corerZdistutils.errorsrZdocutils.utilsrZdocutils.parsers.rstrZdocutilsrriorr r2 Exceptionr!rrrrs        PK!FEZ11.command/__pycache__/check.cpython-36.opt-2.pycnu[3 \x @sddlmZddlmZyTddlmZddlmZddlm Z ddlm Z ddl m Z Gdd d eZ d ZWnek rd ZYnXGd d d eZdS))Command)DistutilsSetupError)Reporter)Parser)frontend)nodes)StringIOc@seZdZd ddZddZdS) SilentReporterNrasciireplacec Cs"g|_tj||||||||dS)N)messagesr__init__)selfsource report_level halt_levelstreamdebugencoding error_handlerr//usr/lib64/python3.6/distutils/command/check.pyr szSilentReporter.__init__cOs6|jj||||ftj|f|||j|d|S)N)leveltype)r appendrsystem_messageZlevels)rrmessageZchildrenkwargsrrrrszSilentReporter.system_message)Nrr r )__name__ __module__ __qualname__r rrrrrr s r TFc@s\eZdZdZdddgZdddgZd d Zd dZddZddZ ddZ ddZ ddZ dS)checkz"perform some checks on the packagemetadatamVerify meta-datarestructuredtextrEChecks if long string meta-data syntax are reStructuredText-compliantstricts(Will exit with an error if a check failscCsd|_d|_d|_d|_dS)Nr)r%r"r( _warnings)rrrrinitialize_options1szcheck.initialize_optionscCsdS)Nr)rrrrfinalize_options8szcheck.finalize_optionscCs|jd7_tj||S)Nr+)r,rwarn)rmsgrrrr/;sz check.warncCsL|jr|j|jr0tr"|jn|jr0td|jrH|jdkrHtddS)NzThe docutils package is needed.rzPlease correct your package.)r"check_metadatar% HAS_DOCUTILScheck_restructuredtextr(rr,)rrrrrun@s z check.runcCs|jj}g}x*d D]"}t||o(t||s|j|qW|rP|jddj||jrh|js|jdn"|j r|j s|jdn |jddS)Nnameversionurlzmissing required meta-data: %sz, z)missing meta-data: if 'author' supplied, z#'author_email' must be supplied tooz-missing meta-data: if 'maintainer' supplied, z''maintainer_email' must be supplied tooz4missing meta-data: either (author and author_email) z%or (maintainer and maintainer_email) zmust be supplied)r5r6r7zLmissing meta-data: if 'author' supplied, 'author_email' must be supplied toozTmissing meta-data: if 'maintainer' supplied, 'maintainer_email' must be supplied toozYmissing meta-data: either (author and author_email) or (maintainer and maintainer_email) zimissing meta-data: either (author and author_email) or (maintainer and maintainer_email) must be supplied) distributionr"hasattrgetattrrr/joinZauthorZ author_emailZ maintainerZmaintainer_email)rr"Zmissingattrrrrr1Ps$ zcheck.check_metadatacCs\|jj}xL|j|D]>}|djd}|dkr:|d}nd|d|f}|j|qWdS)Nr+linez %s (line %s))r8Zget_long_description_check_rst_datagetr/)rdataZwarningr=rrrr3ns  zcheck.check_restructuredtextcCst}t}tjtfdj}d|_d|_d|_t||j |j |j |j |j |jd}tj|||d}|j|dy|j||Wn:tk r}z|jjd d|difWYdd}~XnX|jS) N)Z components)rrrr)rr+z!Could not finish the parsing: %s.r>r>)rrrZ OptionParserZget_default_valuesZ tab_widthZpep_referencesZrfc_referencesr rrZwarning_streamrZerror_encodingZerror_encoding_error_handlerrdocumentZ note_sourceparseAttributeErrorr r)rrA source_pathparserZsettingsZreporterrDerrrr?ys*  $zcheck._check_rst_dataN)r"r#r$)r%r&r')r(r)r*) rrr Z descriptionZ user_optionsZboolean_optionsr-r.r/r4r1r3r?rrrrr!$s  r!N)Zdistutils.corerZdistutils.errorsrZdocutils.utilsrZdocutils.parsers.rstrZdocutilsrriorr r2 Exceptionr!rrrrs        PK!@w.command/__pycache__/bdist.cpython-36.opt-2.pycnu[3 \@sDddlZddlmZddlTddlmZddZGdddeZdS) N)Command)*) get_platformcCsTddlm}g}x,tjD]"}|jd|dtj|dfqW||}|jddS)Nr) FancyGetoptzformats=z'List of available distribution formats:)Zdistutils.fancy_getoptrbdistformat_commandsappendformat_commandZ print_help)rformatsformatZpretty_printerr //usr/lib64/python3.6/distutils/command/bdist.py show_formats s   rc @seZdZdZd6dddefd7d8d9d:d;gZdgZdd defgZdd?d@dAdBdCdDdEd/ Z d0d1Z d2d3Zd4d5Zd S)Frz$create a built (binary) distribution bdist-base=b4temporary directory for creating built distributionsz plat-name=pz;platform name to embed in generated filenames (default: %s)formats=N/formats for distribution (comma-separated list) dist-dir=d=directory to put final built distributions in [default: dist] skip-build2skip rebuilding everything (for testing/debugging)owner=u@Owner name used when creating a tar file [default: current user]group=gAGroup name used when creating a tar file [default: current group]z help-formatsz$lists available distribution formats bdist_rpmgztarzip)posixntrpmbztarxztarztartarwininstmsiRPM distribution bdist_dumbgzip'ed tar filebzip2'ed tar filexz'ed tar filecompressed tar filetar file bdist_wininstWindows executable installerZIP file bdist_msiMicrosoft Installer) r&r"r'r(r)r*r+r#r,cCs.d|_d|_d|_d|_d|_d|_d|_dS)Nr) bdist_base plat_namer dist_dir skip_buildgroupowner)selfr r rinitialize_optionsQszbdist.initialize_optionsc Cs|jdkr(|jrt|_n|jdj|_|jdkrT|jdj}tjj|d|j|_|j d|j dkry|j tj g|_ Wn"t k rtdtj YnX|jdkrd|_dS)NZbuildzbdist.r z;don't know how to create built distributions on platform %sZdist)r:r<rZget_finalized_commandr9 build_baseospathjoinZensure_string_listr default_formatnameKeyErrorZDistutilsPlatformErrorr;)r?rAr r rfinalize_optionsZs$       zbdist.finalize_optionsc Csg}xH|jD]>}y|j|j|dWq tk rHtd|Yq Xq Wxztt|jD]h}||}|j|}||jkr|j||_ |dkr|j |_ |j |_ |||ddkrd|_ |j |q^WdS)Nrzinvalid format '%s'r.r)r r r rGZDistutilsOptionErrorrangelenZreinitialize_commandno_format_optionr r>r=Z keep_tempZ run_command)r?Zcommandsr iZcmd_nameZsub_cmdr r rrunvs"    z bdist.run)rrr)rNr)rrr)rNr)rrr)rrr )r!)r!r-)r.r/)r.r0)r.r1)r.r2)r.r3)r4r5)r.r6)r7r8)__name__ __module__ __qualname__Z descriptionrZ user_optionsZboolean_optionsrZ help_optionsrKrErr r@rHrMr r r rrsJ    r)rBZdistutils.corerZdistutils.errorsZdistutils.utilrrrr r r rs    PK!;PoSFF2command/__pycache__/bdist_msi.cpython-36.opt-2.pycnu[3 \@sddlZddlZddlmZddlmZddlmZddlm Z ddl m Z ddl m Z ddlmZddlZdd lmZmZmZdd lmZmZmZmZGd d d eZGd ddeZdS)N)Command) remove_tree)get_python_version) StrictVersion)DistutilsOptionError) get_platform)log)schemasequencetext) DirectoryFeatureDialogadd_datac@sBeZdZddZddZdddZdd d Zdd dZddZdS)PyDialogcOs>tj|f||jd}d|d}|jdd||jddS)N$iHZ BottomLiner)r__init__hlinew)selfargskwZrulerZbmwidthr3/usr/lib64/python3.6/distutils/command/bdist_msi.pyrs  zPyDialog.__init__c Cs|jddddddd|dS)NTitle i@<iz{\VerdanaBold10}%s)r )rtitlerrrr #szPyDialog.titleBackc Cs,|r d}nd}|j|d|jddd|||S)Nr"8) pushbuttonr)rr nextnameactiveflagsrrrback*sz PyDialog.backCancelc Cs,|r d}nd}|j|d|jddd|||S)Nr#r"i0r%r&r')r(r)rr r)r*r+r,rrrcancel5szPyDialog.cancelNextc Cs,|r d}nd}|j|d|jddd|||S)Nr#r"r%r&r')r(r)rr r)r*r+r,rrrr)@sz PyDialog.nextc Cs,|j|t|j|d|jdddd||S)Nr%r&r'r#)r(intrr)rr*r r)ZxposrrrxbuttonKszPyDialog.xbuttonN)r!r")r.r")r0r") __name__ __module__ __qualname__rr r-r/r)r4rrrrrs   rc@seZdZdZdCdddefdEdGdHdIdJdKdLdMg ZddddgZddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1gZd2Zd3d4Z d5d6Z d7d8Z d9d:Z d;d<Z d=d>Zd?d@ZdAdBZdS)N bdist_msiz7create a Microsoft Installer (.msi) binary distribution bdist-dir=N1temporary directory for creating the distributionz plat-name=pz;platform name to embed in generated filenames (default: %s) keep-tempkz/keep the pseudo-installation tree around after z!creating the distribution archivetarget-version=z!require a specific python versionz on the target systemno-target-compilec/do not compile .py to .pyc on the target systemno-target-optimizeo;do not compile .py to .pyo (optimized) on the target system dist-dir=d-directory to put final built distributions in skip-build2skip rebuilding everything (for testing/debugging)install-script=Ubasename of installation script to be run after installation or before deinstallationpre-install-script={Fully qualified filename of a script to be run before any files are installed. This script need not be in the distributionz2.0z2.1z2.2z2.3z2.4z2.5z2.6z2.7z2.8z2.9z3.0z3.1z3.2z3.3z3.4z3.5z3.6z3.7z3.8z3.9XcCsFd|_d|_d|_d|_d|_d|_d|_d|_d|_d|_ d|_ dS)Nr) bdist_dir plat_name keep_tempZno_target_compileZno_target_optimizetarget_versiondist_dir skip_buildinstall_scriptpre_install_scriptversions)rrrrinitialize_options}szbdist_msi.initialize_optionscCs|jdd |jdkr2|jdj}tjj|d|_t}|j rP|j j rP||_|jr|jg|_ |j r|j j r|j|krt d|fn t|j|_ |jdd d |jrt d|jrx2|j jD]}|jtjj|krPqWt d|jd|_dS) NZbdistrTZmsizMtarget version can only be %s, or the '--skip-build' option must be specifiedrSrPz5the pre-install-script feature is not yet implementedz(install_script '%s' not found in scripts)rTrT)rSrS)rPrP)Zset_undefined_optionsrOget_finalized_command bdist_baseospathjoinrrR distributionhas_ext_modulesrWrTrlist all_versionsrVrUscriptsbasenameinstall_script_key)rrZZ short_versionZscriptrrrfinalize_optionss:        zbdist_msi.finalize_optionscCsz|js|jd|jddd}|j|_|j|_d|_|jd}d|_d|_|jj r|j }|spdt j dd}d |j |f}|jd}tjj|jd ||_tjd |j|jt jjdtjj|jd |jt jd=|j|j|jj}|j|}tjj|}tjj|r"tj||jj }|j!} | s<|j"} | sFd } |j#} dt$| j%} |jj}|j r~d|j |f} nd|} t&j'|t(| t&j)| | |_*t&j+|j*t,d| fg} |j-p|j.}|r| j/d|f|j0r| j/d|j0f| rt1|j*d| |j2|j3|j4|j5|j*j6t7|jdr^d|j pJd|f}|jj8j/||j9svt:|j|j;ddS)Nbuildinstallr")Zreinit_subcommandsr install_libz%d.%dz.%s-%slibzinstalling to %sZPURELIBZUNKNOWNz%d.%d.%dz Python %s %sz Python %sZ DistVersionZ ARPCONTACTZARPURLINFOABOUTProperty dist_filesr8any)dry_run)| jd?d9d@d;dAd=dB| j d2d6d2dC} | j dDdEt|dF||||||d2d2d2 } | jdG| jd4d2dd5| jd6d7dd5| jd8d9d:d;dz [TARGETDIR]z [SourceDir])Zorderingz [TARGETDIR%s]z FEATURE_SELECTED AND &Python%s=3ZSpawnWaitDialogriZFeaturesZ SelectionTreerZFEATUREZPathEditz[FEATURE_SELECTED]1z!FEATURE_SELECTED AND &Python%s<>3ZOtherz$Provide an alternate Python locationZEnableZShowZDisableZHiderrZ DiskCostDlgZOKz&{\DlgFontBold8}Disk Space RequirementszFThe disk space required for the installation of the selected features.5aThe highlighted volumes (if any) do not have enough disk space available for the currently selected features. You can either remove some files from the highlighted volumes, or choose to install less features onto local drive(s), or select different destination drive(s).Z VolumeListZVolumeCostListdiz{120}{70}{70}{70}{70}g?Z AdminInstallzGSelect whether to install [ProductName] for all users of this computer.zInstall for all usersZJUSTMEzInstall just for mez [ALLUSERS]zWhichUsers="ALL"z({\DlgFontBold8}[Progress1] [ProductName]#AzYPlease wait while the Installer [Progress2] [ProductName]. This may take several minutes.Z StatusLabelzStatus:Z ProgressBariz Progress doneZ SetProgressZProgressz)Welcome to the [ProductName] Setup WizardZBodyText?z:Select whether you want to repair or remove [ProductName].ZRepairRadioGrouplrz&Repair [ProductName]ZRemoverzRe&move [ProductName]z [REINSTALL]zMaintenanceForm_Action="Repair"z [Progress1]Z Repairingz [Progress2]ZrepairsZ Reinstallz[REMOVE]zMaintenanceForm_Action="Remove" ZRemoving Zremoves z MaintenanceForm_Action<>"Change")rr)rr)rr)rr)rr)rr)rrrNr)rrrNr")rrrNr")rrrrr)rrr)rrr)rrr)rrr)rNr)rrr rrrr r-r/r)ZeventZcontrolrr(mappingr^rwrWrZ conditionr4Z radiogroupadd)rrxyrrr ZmodalZmodelessZtrack_disk_spaceZfatalr@Z user_exitZ exit_dialogZinuseerrorr/ZcostingZprepZseldlgorderr~rZinstall_other_condZdont_install_other_condZcostZ whichusersgZprogressZmaintrrrrs                                                                zbdist_msi.add_uicCs<|jrd||j|jf}nd||jf}tjj|j|}|S)Nz%s.%s-py%s.msiz %s.%s.msi)rRrPr[r\r]rS)rrZ base_namerrrrrxs  z bdist_msi.get_installer_filename)r9Nr:Pkeep the pseudo-installation tree around after creating the distribution archive)r<r=r6require a specific python version on the target system)r>Nr)r?r@rA)rBrCrD)rErFrG)rHNrI)rJNrK)rLNrM)r5r6r7Z descriptionrZ user_optionsZboolean_optionsrarrXrervrrrrrxrrrrr8SsR    ([66&@r8)rrr[Zdistutils.corerZdistutils.dir_utilrZdistutils.sysconfigrZdistutils.versionrZdistutils.errorsrZdistutils.utilrZ distutilsrrr r r r r rrrr8rrrr s       >PK!Fq 1command/__pycache__/register.cpython-36.opt-1.pycnu[3 \-@sddZddlZddlZddlZddlZddlmZddlm Z ddl Tddl m Z Gddde Z dS) zhdistutils.command.register Implements the Distutils 'register' command (register with the repository). N)warn) PyPIRCCommand)*)logc@seZdZdZejdd gZejdddgZdd d fgZd d Zd dZ ddZ ddZ ddZ ddZ ddZddZddZd!ddZdS)"registerz7register the distribution with the Python package indexlist-classifiersN list the valid Trove classifiersstrictBWill stop the registering if the meta-data are not fully compliantverifycheckcCsdS)NT)selfr r 2/usr/lib64/python3.6/distutils/command/register.pyszregister.cCstj|d|_d|_dS)Nr)rinitialize_optionslist_classifiersr )rr r rrs zregister.initialize_optionscCs*tj|d|jfdd}||jjd<dS)Nr)r restructuredtextr )rr)rfinalize_optionsr distributionZcommand_options)rZ check_optionsr r rr$s zregister.finalize_optionscCsX|j|jx|jD]}|j|qW|jr<|jn|jrL|jn|jdS)N) r _set_configZget_sub_commandsZ run_commandZdry_runverify_metadatar classifiers send_metadata)rZcmd_namer r rrun+s  z register.runcCs8tdt|jjd}|j|j|_d|_|jdS)zDeprecated API.zddistutils.command.register.check_metadata is deprecated, use the check command insteadr rN)rPendingDeprecationWarningrZget_command_objZensure_finalizedr rr)rr r r rcheck_metadata:s zregister.check_metadatacCsz|j}|ikr@|d|_|d|_|d|_|d|_d|_n6|jd|jfkr^td|j|jdkrp|j|_d|_d S) z: Reads the configuration file and set attributes. usernamepassword repositoryrealmTZpypiz%s not found in .pypircFN)Z _read_pypircrrr r! has_configZDEFAULT_REPOSITORY ValueError)rconfigr r rrDs     zregister._set_configcCs*|jd}tjj|}tj|j|dS)z8 Fetch the list of classifiers from the server. z?:action=list_classifiersN)r urllibrequestZurlopenrinfo_read_pypi_response)rZurlZresponser r rrUs  zregister.classifierscCs&|j|jd\}}tjd||dS)zF Send the metadata to the package index server to be checked. r zServer response (%s): %sN)post_to_serverbuild_post_datarr')rcoderesultr r rr\szregister.verify_metadatac Cs|jrd}|j}|j}n d}d}}dj}x:||krf|jdtjt}|sTd}q.||kr.tdq.W|dkr|x|std}qtWx|st j d}qWt j j }t j j|jd }|j|j||||j|jd |\}}|jd ||ftj|d kr|jr||j_nj|jd tj|jd|jtjd}x&|jdkr\td}|s8d}q8W|jdkr|j||n|dkrddi} d| d<| d<| d<d| d<x| dstd| d<qWx| d| dkrNx| dst j d| d<qWx| dst j d| d<qW| d| dkrd| d<d| d<tdqWx| dsltd| d<qRW|j| \}}|d krtjd ||ntjdtjd nT|d!krdd"i} d| d<x| dstd#| d<qW|j| \}}tjd ||dS)$a_ Send the metadata to the package index server. Well, do the following: 1. figure who the user is, and then 2. send the data as a Basic auth'ed POST. First we try to read the username/password from $HOME/.pypirc, which is a ConfigParser-formatted file with a section [distutils] containing username and password entries (both in clear text). Eg: [distutils] index-servers = pypi [pypi] username: fred password: sekrit Otherwise, to figure who the user is, we offer the user three choices: 1. use existing login, 2. register as a new user, or 3. set the password to a random string and email the user. 1xz1 2 3 4zWe need to know who you are, so please choose either: 1. use your existing login, 2. register as a new user, 3. have the server generate a new password for you (and email it to you), or 4. quit Your selection [default 1]: z&Please choose one of the four options!z Username: z Password: rZsubmitzServer response (%s): %szAI can store your PyPI login so future submissions will be faster.z (the login will be stored in %s)XZynzSave your login (y/N)?ny2z:actionusernamerZemailNZconfirmz Confirm: z!Password and confirm don't match!z EMail: z"You will receive an email shortly.z7Follow the instructions in it to complete registration.3Zpassword_resetzYour email address: )r"rrsplitannouncerINFOinputprintgetpassr%r&ZHTTPPasswordMgrparseZurlparser Z add_passwordr!r)r*rZ _get_rc_filelowerZ _store_pypircr') rZchoicerrchoicesauthhostr+r,datar r rrcs                     zregister.send_metadatacCs|jj}|d|j|j|j|j|j|j|j|j |j |j |j |j |j|j|jd}|ds|ds|drd|d<|S)Nz1.0)z:actionmetadata_versionr6versionZsummaryZ home_pageZauthorZ author_emaillicense descriptionkeywordsplatformrZ download_urlprovidesrequires obsoletesrJrKrLz1.1rD)rZmetadataZget_nameZ get_versionZget_descriptionZget_urlZ get_contactZget_contact_emailZ get_licenceZget_long_descriptionZ get_keywordsZ get_platformsZget_classifiersZget_download_urlZ get_providesZ get_requiresZ get_obsoletes)ractionmetarCr r rr*s* zregister.build_post_datacCsd|kr$|jd|d|jftjd}d|}|d}tj}x|jD]\}}t|tgtffkrp|g}xZ|D]R}t|}|j ||j d||j d|j ||rv|dd krv|j d qvWqJW|j ||j d |j j d }d |tt |d } t jj|j|| } t jjt jj|d} d}y| j| } Wnxt jjk r} z$|jrl| jj}| j| jf} WYdd} ~ XnJt jjk r} zdt| f} WYdd} ~ XnX|jr|j| }d} |jrd jdd|ddf}|j|tj| S)zC Post a query to the server, and return a string response. r6zRegistering %s to %sz3--------------GHSKFJDLGDS7543FJKLFHRE75642756743254z --z--z* Content-Disposition: form-data; name="%s"z r  zutf-8z/multipart/form-data; boundary=%s; charset=utf-8)z Content-typezContent-length)Z password_mgrr/Nir0OK-K)r0rQ)r9r rr:ioStringIOitemstypestrwritegetvalueencodelenr%r&ZRequestZ build_openerZHTTPBasicAuthHandleropenerrorZ HTTPErrorZ show_responsefpreadr+msgZURLErrorr(join)rrCrAboundaryZ sep_boundaryZ end_boundaryZbodykeyvalueZheadersZreqopenerr,erbr r rr)sV         zregister.post_to_server)rNr)r Nr )N)__name__ __module__ __qualname__rGrZ user_optionsZboolean_optionsZ sub_commandsrrrrrrrrr*r)r r r rrs&  zr)__doc__r=rUZ urllib.parser%Zurllib.requestwarningsrZdistutils.corerZdistutils.errorsZ distutilsrrr r r rs   PK!YY]33,command/__pycache__/bdist_rpm.cpython-36.pycnu[3 \T@sdZddlZddlZddlZddlmZddlmZddlm Z ddl m Z ddl Tddl mZdd lmZGd d d eZdS) zwdistutils.command.bdist_rpm Implements the Distutils 'bdist_rpm' command (create RPM source and binary distributions).N)Command)DEBUG) get_platform) write_file)*)get_python_version)logc+@seZdZdZdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|d}d~dddddddddddddddddg)Zd4d9d=d2dUgZd4d9d=dXZdYdZZd[d\Zd]d^Z d_d`Z dadbZ dcddZ dedfZ dS) bdist_rpmzcreate an RPM distribution bdist-base=N/base directory for creating built distributions rpm-base=dbase directory for creating RPMs (defaults to "rpm" under --bdist-base; must be specified for RPM 2) dist-dir=dDdirectory to put final RPM files in (and .spec files if --spec-only)python=Mpath to Python interpreter to hard-code in the .spec file (default: "python") fix-pythonLhard-code the exact path to the current Python interpreter in the .spec file spec-onlyonly regenerate spec file source-onlyonly generate source RPM binary-onlyonly generate binary RPM use-bzip27use bzip2 instead of gzip to create source distributiondistribution-name=gname of the (Linux) distribution to which this RPM applies (*not* the name of the module distribution!)group=9package classification [default: "Development/Libraries"]release=RPM release numberserial=RPM serial numbervendor=aRPM "vendor" (eg. "Joe Blow ") [default: maintainer or author from setup script] packager=BRPM packager (eg. "Jane Doe ") [default: vendor] doc-files=6list of documentation files (space or comma-separated) changelog= RPM changelogicon=name of icon file provides=%capabilities provided by this package requires=%capabilities required by this package conflicts=-capabilities which conflict with this packagebuild-requires=+capabilities required to build this package obsoletes=*capabilities made obsolete by this package no-autoreq+do not automatically calculate dependencies keep-tempk"don't clean up RPM build directory no-keep-temp&clean up RPM build directory [default]use-rpm-opt-flags8compile with RPM_OPT_FLAGS when building from source RPMno-rpm-opt-flags&do not pass any RPM CFLAGS to compiler rpm3-mode"RPM 3 compatibility mode (default) rpm2-modeRPM 2 compatibility mode prep-script=3Specify a script for the PREP phase of RPM building build-script=4Specify a script for the BUILD phase of RPM building pre-install=:Specify a script for the pre-INSTALL phase of RPM buildinginstall-script=6Specify a script for the INSTALL phase of RPM building post-install=;Specify a script for the post-INSTALL phase of RPM buildingpre-uninstall=rnroREADME README.txtrk1rlrirprqrrrsrtrurvrwrxryrzr|r}r~rrr)rr)Z ensure_stringrZ get_contactZget_contact_emailZensure_string_list isinstancerolistrrexistsappend_format_changelogrpZensure_filename)rZreadmerrrrs>                         zbdist_rpm.finalize_package_datac Cstrsz-bdist_rpm._make_spec_file..zbrp-python-bytecompile \ z%brp-python-bytecompile %{__python} \ z2# Workaround for http://bugs.python.org/issue14443z%define __os_install_post z Name: %{name}zVersion: %{version}zRelease: %{release}z-Source0: %{name}-%{unmangled_version}.tar.bz2z,Source0: %{name}-%{unmangled_version}.tar.gzz License: zGroup: z>BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildrootzPrefix: %{_prefix}zBuildArch: noarchz BuildArch: %sVendorPackagerProvidesRequires Conflicts Obsoletesz%s: %s NZUNKNOWNzUrl: zDistribution: zBuildRequires: zIcon: z AutoReq: 0z %descriptionz%s %srz%s buildzenv CFLAGS="$RPM_OPT_FLAGS" z>%s install -O1 --root=$RPM_BUILD_ROOT --record=INSTALLED_FILESr{rr&%setup -n %{name}-%{unmangled_version}ZbuildrsZinstallrtcleanrurm -rf $RPM_BUILD_ROOT verifyscriptrvprerwpostrxpreunrypostunrz%rz%files -f INSTALLED_FILESz%defattr(-,root,root)z%doc z %changelog)rrrrrr)r{rrr)rrur)rrvN)rrwN)rrxN)rryN)rrzN)'rrZ get_versionreplacerkZget_description subprocessZ getoutputr splitlinesrrrhZ get_licenserjrrgetattrlowerrrZget_urlrirrqrrrrZget_long_descriptionrcrargvropenreadrrorp)rZ spec_fileZ vendor_hookZproblemZfixedZ fixed_hookZfieldvalZdef_setup_callZ def_buildZ install_cmdZscript_optionsZrpm_optattrdefaultrrrrs                   zbdist_rpm._make_spec_filecCs|s|Sg}x`|jjdD]N}|j}|ddkrD|jd|gq|ddkr\|j|q|jd|qW|ds||d=|S)zKFormat the changelog correctly and convert it to a list of strings rrrrrz )rrrr)rrpZ new_changelogrrrrr3s   zbdist_rpm._format_changelog)r Nr )r Nr )rrr)rNr)rNr)rNr)rNr)rNr)rNr)rNr)rNr )r!Nr")r#Nr$)r%Nr&)r'Nr()r)Nr*)r+Nr,)r-Nr.)r/Nr0)r1Nr2)r3Nr4)r5Nr6)r7Nr8)r9Nr:)r;r<r=)r>Nr?)r@NrA)rBNrC)rDNrE)rFNrG)rHNrI)rJNrK)rLNrM)rNNrO)rPNrQ)rRNrS)rTNrU)rVNrW)rXNrY)rZNr[)r\r]r^)__name__ __module__ __qualname__Z descriptionZ user_optionsZboolean_optionsZ negative_optrrrrrrrrrrrr s--)r )__doc__rrrZdistutils.corerZdistutils.debugrZdistutils.utilrZdistutils.file_utilrZdistutils.errorsZdistutils.sysconfigrZ distutilsrr rrrrs      PK! .command/__pycache__/build.cpython-36.opt-1.pycnu[3 \t@sTdZddlZddlZddlmZddlmZddlmZddZ Gdd d eZ dS) zBdistutils.command.build Implements the Distutils 'build' command.N)Command)DistutilsOptionError) get_platformcCsddlm}|dS)Nr)show_compilers)Zdistutils.ccompilerr)rr//usr/lib64/python3.6/distutils/command/build.pyr s rc@seZdZdZd8d9d:ddddefd?d@dAdBdCg ZddgZd$dd%efgZd&d'Z d(d)Z d*d+Z d,d-Z d.d/Z d0d1Zd2d3Zd4e fd5e fd6efd7efgZdS)Dbuildz"build everything needed to install build-base=b base directory for build librarybuild-purelib=N2build directory for platform-neutral distributionsbuild-platlib=3build directory for platform-specific distributions build-lib=z9build directory for all distribution (defaults to either zbuild-purelib or build-platlibbuild-scripts=build directory for scripts build-temp=ttemporary build directoryz plat-name=pz6platform name to build for, if supported (default: %s) compiler=cspecify the compiler type parallel=jnumber of parallel build jobsdebugg;compile extensions and libraries with debugging informationforcef2forcibly build everything (ignore file timestamps) executable=e5specify final destination interpreter path (build.py)z help-compilerzlist available compilerscCsLd|_d|_d|_d|_d|_d|_d|_d|_d|_d|_ d|_ d|_ dS)Nrr) build_base build_purelib build_platlib build_lib build_temp build_scriptsZcompiler plat_namerr executableparallel)selfrrrinitialize_options8szbuild.initialize_optionsc CsZ|jdkrt|_ntjdkr&tdd|jftjdd}ttdrR|d7}|jdkrntj j |j d|_|j dkrtj j |j d||_ |j dkr|jjr|j |_ n|j|_ |jdkrtj j |j d||_|jdkrtj j |j d tjdd|_|jdkrtj jtj|_t|jtrVyt|j|_Wntk rTtd YnXdS) NntzW--plat-name only supported on Windows (try using './configure --help' on your platform)z .%s-%d.%dgettotalrefcountz-pydebuglibZtempz scripts-%d.%dzparallel should be an integer)r,rosnamersys version_infohasattrr'pathjoinr&r(r) distributionZ ext_modulesr*r+r-normpath isinstancer.strint ValueError)r/Zplat_specifierrrrfinalize_optionsHs<                zbuild.finalize_optionscCs x|jD]}|j|q WdS)N)Zget_sub_commandsZ run_command)r/Zcmd_namerrrrunsz build.runcCs |jjS)N)r<has_pure_modules)r/rrrrDszbuild.has_pure_modulescCs |jjS)N)r<has_c_libraries)r/rrrrEszbuild.has_c_librariescCs |jjS)N)r<has_ext_modules)r/rrrrFszbuild.has_ext_modulescCs |jjS)N)r< has_scripts)r/rrrrGszbuild.has_scriptsZbuild_pyZ build_clibZ build_extr+)r r r )r Nr )rNrWbuild directory for all distribution (defaults to either build-purelib or build-platlib)rNrH)rNr)rrr)rrr)rrr)rrr)r r!r")r#r$r%)__name__ __module__ __qualname__Z descriptionrZ user_optionsZboolean_optionsrZ help_optionsr0rBrCrDrErFrGZ sub_commandsrrrrrsR 8 r) __doc__r7r5Zdistutils.corerZdistutils.errorsrZdistutils.utilrrrrrrrs    PK! 0command/__pycache__/bdist_wininst.cpython-36.pycnu[3 Ii<@spdZddlZddlZddlmZddlmZddlmZm Z ddl Tddl m Z ddl mZGd d d eZdS) zzdistutils.command.bdist_wininst Implements the Distutils 'bdist_wininst' command: create a windows installer exe-program.N)Command) get_platform) create_tree remove_tree)*)get_python_version)logc@seZdZdZd5dddefd7d9d:d;dd?d@dAdBg ZddddgZejd&kZ d'd(Z d)d*Z d+d,Z d-d.Z dCd/d0Zd1d2Zd3d4ZdS)D bdist_wininstz-create an executable installer for MS Windows bdist-dir=N1temporary directory for creating the distributionz plat-name=pz;platform name to embed in generated filenames (default: %s) keep-tempkz/keep the pseudo-installation tree around after z!creating the distribution archivetarget-version=z!require a specific python versionz on the target systemno-target-compilec/do not compile .py to .pyc on the target systemno-target-optimizeo;do not compile .py to .pyo (optimized) on the target system dist-dir=d-directory to put final built distributions inbitmap=b>bitmap to use for the installer instead of python-powered logotitle=t?title to display on the installer background instead of default skip-build2skip rebuilding everything (for testing/debugging)install-script=Ubasename of installation script to be run after installation or before deinstallationpre-install-script={Fully qualified filename of a script to be run before any files are installed. This script need not be in the distributionuser-access-control=specify Vista's UAC handling - 'none'/default=no handling, 'auto'=use UAC if target Python installed for all users, 'force'=always use UACwin32cCsRd|_d|_d|_d|_d|_d|_d|_d|_d|_d|_ d|_ d|_ d|_ dS)Nr) bdist_dir plat_name keep_tempno_target_compileno_target_optimizetarget_versiondist_dirbitmaptitle skip_buildinstall_scriptpre_install_scriptuser_access_control)selfr67/usr/lib64/python3.6/distutils/command/bdist_wininst.pyinitialize_options=sz bdist_wininst.initialize_optionscCs|jdd |jdkrR|jr6|jr6|jjd}|j|_|jdj}tj j |d|_|j s^d|_ |j r|jj rt }|j r|j |krtd|f||_ |jdd d |jrx2|jjD]}|jtj j|krPqWtd|jdS) Nbdistr1ZwininstzMtarget version can only be %s, or the '--skip-build' option must be specifiedr.r)z(install_script '%s' not found in scripts)r1r1)r.r.)r)r))Zset_undefined_optionsr(r1r) distributionZget_command_objget_finalized_command bdist_baseospathjoinr-has_ext_modulesrZDistutilsOptionErrorr2scriptsbasename)r5r9r=Z short_versionscriptr6r6r7finalize_optionsMs4      zbdist_wininst.finalize_optionsc Cstjdkr&|jjs|jjr&td|js6|jd|jddd}|j |_ |j|_d|_ |j |_ |jd}d|_ d|_|jjr|j}|s|jstd d tjdd }d |j |f}|jd}tjj|jd ||_x6dD].}|j}|dkr|d}t|d||qWtjd|j |jtjjdtjj|j d|jtjd=ddlm }|} |jj!} |j"| d|j d} |j#| | |j$|jjrt%} nd} |jj&j'd| |j(| ftj)d| tj*| |j+st,|j |j-ddS)Nr'z^distribution contains extensions and/or C libraries; must be compiled on a Windows 32 platformbuildinstall)Zreinit_subcommandsr install_libz Should have already checked thisz%d.%dz.%s-%slibpurelibplatlibheadersrBdataz/Include/$dist_nameZinstall_zinstalling to %sZPURELIB)mktempzip)Zroot_diranyr zremoving temporary file '%s')dry_run)rLrMrNrBrO).sysplatformr;rAZhas_c_librariesZDistutilsPlatformErrorr1Z run_commandZreinitialize_commandr(rootZwarn_dirr)compileoptimizer-AssertionError version_infor<r>r?r@Z build_baseZ build_libuppersetattrrinfoZensure_finalizedinsertrunZtempfilerP get_fullnameZ make_archive create_exer/rZ dist_filesappendget_installer_filenamedebugremover*rrS) r5rGrIr-Zplat_specifierrFkeyvaluerPZarchive_basenamefullnamearcnameZ pyversionr6r6r7r_ssf                   zbdist_wininst.runc Cs`g}|jj}|jd|jpdd}dd}xJdD]B}t||d}|r2|d|j||f}|jd|||fq2W|jd|jr|jd|j|jd|||jd|j |jd|j |j r|jd|j |j r|jd|j |j p |jj }|jd||ddl }ddl} d|j|j | jf} |jd| dj|S)Nz [metadata]r: cSs |jddS)Nrjz\n)replace)sr6r6r7escapesz)bdist_wininst.get_inidata..escapeauthor author_email description maintainermaintainer_emailnameurlversionz %s: %sz%s=%sz [Setup]zinstall_script=%szinfo=%sztarget_compile=%dztarget_optimize=%dztarget_version=%szuser_access_control=%sztitle=%srzBuilt %s with distutils-%sz build_info=%s)rnrorprqrrrsrtru)r;metadatarbZlong_descriptiongetattr capitalizer2r+r,r-r4r0r`time distutilsZctime __version__r@) r5linesrvr]rmrsrOr0ryrzZ build_infor6r6r7 get_inidatas<   zbdist_wininst.get_inidatac Csddl}|j|j|j}|j|}|jd||rPt|dj}t|}nd}t|d} | j |j |rz| j |t |t r|j d}|d}|jrt|jddd } | jj d} WdQRX|| d }n|d}| j ||jd d t||} | j | | j t|djdS) Nrz creating %srbwbmbcsrzlatin-1)encodings zr?r@r.r))r5rhrr6r6r7rc's  z$bdist_wininst.get_installer_filenamec Cs t}|jrl|j|krl|jdkr&d}q|jdkr6d}q|jdkrFd}q|jdkrVd}q|jdkrfd }qd }n@yd d lm}Wntk rd }YnX|jd d }|d}tjjt }|j dkr|j dddkr|j dd}nd}tjj |d||f}t |d}z|j S|jXdS)Nz2.4z6.0z7.1z2.5z8.0z3.2z9.0z3.4z10.0z14.0r)CRT_ASSEMBLY_VERSION.z.0r'winr:zwininst-%s%s.exer~)rr-Zmsvcrtr ImportError partitionr>r?dirname__file__r)r@rrclose) r5Z cur_versionZbvrmajorZ directoryZsfixfilenamefr6r6r7r4s8         zbdist_wininst.get_exe_bytes)r Nr Pkeep the pseudo-installation tree around after creating the distribution archive)r rr6require a specific python version on the target system)rNr)rrr)rrr)rrr)rrr)rrr)rNr )r!Nr")r#Nr$)r%Nr&)N)__name__ __module__ __qualname__rprZ user_optionsZboolean_optionsrTrUZ _unsupportedr8rEr_r}rarcrr6r6r6r7r sP &Q. 5 r )__doc__rTr>Zdistutils.corerZdistutils.utilrZdistutils.dir_utilrrZdistutils.errorsZdistutils.sysconfigrrzrr r6r6r6r7s    PK!$000.command/__pycache__/clean.cpython-36.opt-2.pycnu[3 \ @s@ddlZddlmZddlmZddlmZGdddeZdS)N)Command) remove_tree)logc@s>eZdZdZddddddgZdgZddZddZddZdS)cleanz-clean up temporary files from 'build' command build-base=b2base build directory (default: 'build.build-base') build-lib=Ns   PK!k8command/__pycache__/install_scripts.cpython-36.opt-1.pycnu[3 \@sDdZddlZddlmZddlmZddlmZGdddeZdS)zudistutils.command.install_scripts Implements the Distutils 'install_scripts' command, for installing Python scripts.N)Command)log)ST_MODEc@sLeZdZdZddddgZdd gZddZddZddZddZ ddZ d S)install_scriptsz%install scripts (Python or otherwise) install-dir=ddirectory to install scripts to build-dir=b'build directory (where to install from)forcef-force installation (overwrite existing files) skip-buildNskip the build stepscCsd|_d|_d|_d|_dS)Nr) install_dirr build_dir skip_build)selfr9/usr/lib64/python3.6/distutils/command/install_scripts.pyinitialize_optionssz"install_scripts.initialize_optionscCs |jdd |jdd d d dS) NZbuild build_scriptsrZinstallrrr r)rr)rr)r r )rr)Zset_undefined_options)rrrrfinalize_options!s  z install_scripts.finalize_optionscCs|js|jd|j|j|j|_tjdkrxT|jD]H}|j rNt j d|q6tj |t dBd@}t j d||tj||q6WdS)Nrposixzchanging mode of %simizchanging mode of %s to %o)rZ run_commandZ copy_treerroutfilesosname get_outputsZdry_runrinfostatrchmod)rfilemoderrrrun)s  zinstall_scripts.runcCs |jjp gS)N)Z distributionscripts)rrrr get_inputs8szinstall_scripts.get_inputscCs |jpgS)N)r)rrrrr;szinstall_scripts.get_outputs)rrr)r r r )r r r)rNr) __name__ __module__ __qualname__Z descriptionZ user_optionsZboolean_optionsrrr$r&rrrrrrsr) __doc__rZdistutils.corerZ distutilsrr rrrrrrs    PK!j992command/__pycache__/build_ext.cpython-36.opt-2.pycnu[3 \z@sddlZddlZddlZddlZddlmZddlTddlmZm Z ddlm Z ddl m Z ddl mZddlmZdd lmZdd lmZejd Zd d ZGdddeZdS)N)Command)*)customize_compilerget_python_version)get_config_h_filename) newer_group) Extension) get_platform)log) USER_BASEz3^[a-zA-Z_][a-zA-Z_0-9]*(\.[a-zA-Z_][a-zA-Z_0-9]*)*$cCsddlm}|dS)Nr)show_compilers)distutils.ccompilerr )r r3/usr/lib64/python3.6/distutils/command/build_ext.pyr s r c@seZdZdZdejZd`dad d d efdcdddefdddedfdddefdgdhdidjdkdldmdndodpgZd d%d(d1d8gZ d:d2d;e fgZ dd?Z d@dAZdBdCZdDdEZdFdGZdHdIZdJdKZdLdMZejdNdOZdPdQZdRdSZdTdUZdVdWZdXdYZdZd[Zd\d]Zd^d_Zd2S)q build_extz8build C/C++ extensions (compile/link to build directory)z (separated by '%s') build-lib=b(directory for compiled extension modules build-temp=t1directory for temporary files (build by-products)z plat-name=pz>platform name to cross-compile for, if supported (default: %s)inplaceiz=ignore build-lib and put compiled extensions into the source z,directory alongside your pure Python modulesz include-dirs=Iz.list of directories to search for header filesdefine=DC preprocessor macros to defineundef=U!C preprocessor macros to undefine libraries=l!external C libraries to link withz library-dirs=Lz.directories to search for external C librariesrpath=R7directories to search for shared C libraries at runtime link-objects=O2extra explicit link objects to include in the linkdebugg'compile/link with debugging informationforcef2forcibly build everything (ignore file timestamps) compiler=cspecify the compiler type parallel=jnumber of parallel build jobsswig-cppN)make SWIG create C++ files (default is C) swig-opts=!list of SWIG command line optionsswig=path to the SWIG executableuser#add user include, library and rpathz help-compilerzlist available compilerscCsd|_d|_d|_d|_d|_d|_d|_d|_d|_d|_ d|_ d|_ d|_ d|_ d|_d|_d|_d|_d|_d|_d|_dS)Nr) extensions build_lib plat_name build_temprpackage include_dirsdefineundef libraries library_dirsrpath link_objectsr+r.compilerswigswig_cpp swig_optsr=parallel)selfrrrinitialize_optionsjs*zbuild_ext.initialize_optionsc Csddlm}|jdd'd(d)d*d+d,d-|jdkr8|jj|_|jj|_|j}|jd d }|j dkrn|jj pjg|_ t |j t r|j j t j|_ tjtjkr|j jt jjtjd |j j|||kr|j j||jd|jd|jdkrg|_|jdkrg|_nt |jt r&|jj t j|_|jdkr:g|_nt |jt rX|jj t j|_t jdkrT|jjt jjtjdtjtjkr|jjt jjtjd|jrt jj|jd|_nt jj|jd|_|j jt jjtttdd}|r|jj||j dkrd}n|j dd}t jjtjd}|rHt jj||}|jj|tj!dddks|tj!dddkrtj"j#t jjtjdr|jjt jjtjddt$dn |jjd|j%d r|j&s|jj|j%d!n |jjd|j'r|j'j d"}d#d$|D|_'|j(r4|j(j d"|_(|j)dkrHg|_)n|j)j d%|_)|j*rt jjt+d }t jjt+d} t jj,|r|j j|t jj,| r|jj| |jj| t |j-t ryt.|j-|_-Wnt/k rt0d&YnXdS).Nr) sysconfigZbuildr@rBrKr+r.rOrA)Z plat_specificincluderGrJntZlibsZDebugZRelease_homewin32ZPCbuildcygwinatheosbinlibpythonconfig.Py_ENABLE_SHAREDLIBDIR,cSsg|] }|dfqS)1r).0Zsymbolrrr sz.build_ext.finalize_options.. zparallel should be an integer)r@r@)rBrB)rKrK)r+r+)r.r.)rOrO)rArA)1 distutilsrRZset_undefined_optionsrC distributionZ ext_packageZ ext_modulesr?Zget_python_incrD isinstancestrsplitospathsepsys exec_prefixbase_exec_prefixappendpathjoinZensure_string_listrGrHrInameprefixr+rBdirnamergetattrrAplatform executable startswithrget_config_varZ python_buildrErFrNr=r isdirrOint ValueErrorZDistutilsOptionError) rPrRZ py_includeZplat_py_include _sys_homesuffixZnew_libZdefinesZ user_includeZuser_librrrfinalize_optionss                    (         zbuild_ext.finalize_optionscCstddlm}|jsdS|jjrL|jd}|jj|jp:g|j j |j ||j |j |j|jd|_ t|j tjdkr|jtkr|j j|j|jdk r|j j|j|jdk rx |jD]\}}|j j||qW|jdk rx|jD]}|j j|qW|jdk r|j j|j|j dk r4|j j|j |jdk rN|j j|j|j dk rh|j j!|j |j"dS)Nr) new_compiler build_clib)rKverbosedry_runr.rU)#r rr?riZhas_c_librariesget_finalized_commandrGextendZget_library_namesrHrrrrKrrr.rrmrurAr Z initializerDZset_include_dirsrEZ define_macrorFZundefine_macroZ set_librariesZset_library_dirsrIZset_runtime_library_dirsrJZset_link_objectsbuild_extensions)rPrrruvaluemacrorrrruns>             z build_ext.runc Cst|tstdxnt|D]`\}}t|tr4qt|t sLt|dkrTtd|\}}tjd|t|t ozt j |stdt|t stdt||d}x*dD]"}|j |}|dk rt|||qW|j d|_d|krtjd|j d}|rxg|_g|_xj|D]b} t| to,t| dks8tdt| dkrX|jj| dnt| dkr|jj| qW|||<qWdS)Nz:'ext_modules' option must be a list of Extension instanceszMeach element of 'ext_modules' option must be an Extension instance or 2-tuplezvold-style (ext_name, build_info) tuple found in ext_modules for extension '%s' -- please convert to Extension instancezRfirst element of each tuple in 'ext_modules' must be the extension name (a string)zOsecond element of each tuple in 'ext_modules' must be a dictionary (build info)sourcesrDrHrG extra_objectsextra_compile_argsextra_link_argsrIZdef_filez9'def_file' element of build info dict no longer supportedmacrosrSz9'macros' element of build info dict must be 1- or 2-tupler)rDrHrGrrr)rSr)rjlistDistutilsSetupError enumeratertuplelenr warnrkextension_name_rematchdictgetsetattrruntime_library_dirs define_macros undef_macrosrr) rPr?rextext_nameZ build_infokeyvalrrrrrcheck_extensions_listUsT           zbuild_ext.check_extensions_listcCs0|j|jg}x|jD]}|j|jqW|S)N)rr?rr)rP filenamesrrrrget_source_filess   zbuild_ext.get_source_filescCs6|j|jg}x |jD]}|j|j|jqW|S)N)rr?rrget_ext_fullpathru)rPZoutputsrrrr get_outputss   zbuild_ext.get_outputscCs(|j|j|jr|jn|jdS)N)rr?rO_build_extensions_parallel_build_extensions_serial)rPrrrrs  zbuild_ext.build_extensionscsj}jdkrtj}yddlm}Wntk r@d}YnX|dkrVjdS||dTfddjD}x6tj|D]&\}}j ||j WdQRXqWWdQRXdS)NTr)ThreadPoolExecutor)Z max_workerscsg|]}jj|qSr)Zsubmitbuild_extension)rer)executorrPrrrfsz8build_ext._build_extensions_parallel..) rOrm cpu_countZconcurrent.futuresr ImportErrorrr?zip_filter_build_errorsresult)rPZworkersrZfuturesrZfutr)rrPrrs       z$build_ext._build_extensions_parallelc Cs4x.|jD]$}|j||j|WdQRXqWdS)N)r?rr)rPrrrrrs  z"build_ext._build_extensions_serialccsTy dVWnDtttfk rN}z"|js*|jd|j|fWYdd}~XnXdS)Nz"building extension "%s" failed: %s)ZCCompilerErrorZDistutilsErrorZ CompileErrorZoptionalrru)rPrerrrrs zbuild_ext._filter_build_errorsc CsX|j}|dkst|ttf r,td|jt|}|j|j}||j}|jpZt ||dsnt j d|jdSt j d|j|j ||}|jpg}|jdd}x|jD]}|j|fqW|jj||j||j|j ||jd}|dd|_|jr|j|j|jp g}|jp|jj|} |jj|||j||j|j||j ||j |j| d dS)Nzjin 'ext_modules' option (extension '%s'), 'sources' must be present and must be a list of source filenamesZnewerz$skipping '%s' extension (up-to-date)zbuilding '%s' extension)Z output_dirrrDr+extra_postargsdepends)rGrHrrexport_symbolsr+rBZ target_lang)!rrjrrrrurrr.rr r+info swig_sourcesrrrrrrKcompilerBrDZ_built_objectsrrrlanguageZdetect_languageZlink_shared_object get_librariesrHrget_export_symbols) rPrrext_pathrZ extra_argsrrFZobjectsrrrrrsN         zbuild_ext.build_extensioncCs2g}g}i}|jrtjd|js6d|jks6d|jkr        zbuild_ext.swig_sourcescCs`tjdkrdStjdkrNxBd D]&}tjjd|d}tjj|r|SqWdSntd tjdS) NposixrLrU1.31.21.1z c:\swig%szswig.exez>I don't know how to find (much less run) SWIG on platform '%s')rrr)rmrursrtisfileZDistutilsPlatformError)rPZversfnrrrrfs    zbuild_ext.find_swigcCs|j|}|jd}|j|d}|jsRtjj|dd|g}tjj|j|Sdj|dd}|jd}tjj |j |}tjj||S)Nr`rSrbuild_pyrrr) get_ext_fullnamerlget_ext_filenamerrmrsrtr@rabspathZget_package_dir)rPrfullnameZmodpathfilenamerCrZ package_dirrrrr~s   zbuild_ext.get_ext_fullpathcCs |jdkr|S|jd|SdS)Nr`)rC)rPrrrrrs zbuild_ext.get_ext_fullnamecCs.ddlm}|jd}|d}tjj||S)Nr)r|r` EXT_SUFFIX)distutils.sysconfigr|rlrmrsrt)rPrr|rZ ext_suffixrrrrs  zbuild_ext.get_ext_filenamecCs0d|jjdd}||jkr*|jj||jS)NZPyInit_r`rSr)rurlrrr)rPrZ initfunc_namerrrrs  zbuild_ext.get_export_symbolscCstjdkrfddlm}t|j|s\d}|jr4|d}|tjd?tjd?d@f}|j|gS|jSnRtjdd d krd }|tjd?tjd?d@f}|j|gStjdd d kr>dd l m }d }|tjd?tjd?d@f}g}xB|j dj D]0}|j dr|j|ddn |j|qW|j|dg|StjdkrP|jStjdddkrj|jSdd l m }|j drdjtjd?tjd?d@|j d}|j|gS|jSdS)NrWr) MSVCCompilerz python%d%dZ_drYrZz python%d.%dr[)rRSHLIBSz-lrmdarwinaixraz python{}.{}{}ABIFLAGS)roryZdistutils._msvccompilerrrjrKr+ hexversionrGrhrRr|rlr{rrformat)rPrrtemplateZ pythonlibrRZextrar]rrrrsJ             zbuild_ext.get_libraries)rrr)rrriignore build-lib and put compiled extensions into the source directory alongside your pure Python modules)rrr)rrr)rrr )r!r"r#)r%r&r')r(r)r*)r+r,r-)r.r/r0)r1r2r3)r4r5r6)r7Nr8)r9Nr:)r;Nr<)r=Nr>) __name__ __module__ __qualname__Z descriptionrmrnZsep_byr Z user_optionsZboolean_optionsr Z help_optionsrQrrrrrrrr contextlibcontextmanagerrrrrrrrrrrrrrr!s  @N  K6   r)rrmreroZdistutils.corerZdistutils.errorsrrrrZdistutils.dep_utilrZdistutils.extensionrZdistutils.utilr rhr Zsiter rrr rrrrrs        PK!'556command/__pycache__/build_scripts.cpython-36.opt-1.pycnu[3 \X@sdZddlZddlZddlmZddlmZddlmZddl m Z ddl m Z m Z ddlmZddlZejd ZGd d d eZGd d d ee ZdS)zRdistutils.command.build_scripts Implements the Distutils 'build_scripts' command.N)ST_MODE) sysconfig)Command)newer) convert_path Mixin2to3)logs^#!.*python[0-9.]*([ ].*)?$c@sHeZdZdZdddgZdgZd d Zd dZddZddZ ddZ dS) build_scriptsz("build" scripts (copy and fixup #! line) build-dir=ddirectory to "build" (copy) toforcef1forcibly build everything (ignore file timestamps executable=e*specify final destination interpreter pathcCs"d|_d|_d|_d|_d|_dS)N) build_dirscriptsr executableoutfiles)selfr7/usr/lib64/python3.6/distutils/command/build_scripts.pyinitialize_optionss z build_scripts.initialize_optionscCs|jdddd|jj|_dS) NZbuildr rr r)r r)r r )rr)Zset_undefined_optionsZ distributionr)rrrrfinalize_options%s zbuild_scripts.finalize_optionscCs|jS)N)r)rrrrget_source_files,szbuild_scripts.get_source_filescCs|js dS|jdS)N)r copy_scripts)rrrrrun/szbuild_scripts.runc"Cs|j|jg}g}x,|jD] }d}t|}tjj|jtjj|}|j||j rtt || rtt j d|qyt |d}Wn tk r|jsd}YnXXtj|j\}}|jd|j} | s|jd|qtj| } | rd}| jdpd } |rt jd ||j|j||js tjs2|j} n(tjjtjd d tjd tjdf} tj| } d| | d} y| jdWn$tk rt dj!| YnXy| j|Wn&tk rt dj!| |YnXt |d}|j"| |j#|j$WdQRX|r@|j%q|r*|j%|j||j&||qWtj'dkrxh|D]`}|jrpt jd|nDtj(|t)d@}|dBd@}||krVt jd|||tj*||qVW||fS)a"Copy each script listed in 'self.scripts'; if it's marked as a Python script in the Unix way (first line matches 'first_line_re', ie. starts with "\#!" and contains "python"), then adjust the first line to refer to the current Python interpreter as we copy. Fznot copying %s (up-to-date)rbNrz%s is an empty file (skipping)Tzcopying and adjusting %s -> %sBINDIRz python%s%sVERSIONEXEs#! zutf-8z.The shebang ({!r}) is not decodable from utf-8zAThe shebang ({!r}) is not decodable from the script encoding ({})wbposixzchanging mode of %siimz!changing mode of %s from %o to %o)+Zmkpathrrrospathjoinbasenameappendr rrdebugopenOSErrordry_runtokenizedetect_encodingreadlineseekwarn first_line_rematchgroupinforZ python_buildrget_config_varfsencodedecodeUnicodeDecodeError ValueErrorformatwrite writelines readlinescloseZ copy_filenamestatrchmod)rr updated_filesZscriptZadjustZoutfilerencodinglinesZ first_liner7Z post_interprZshebangZoutffileZoldmodeZnewmoderrrr5s                  zbuild_scripts.copy_scriptsN)r r r )r rr)rrr) __name__ __module__ __qualname__Z descriptionZ user_optionsZboolean_optionsrrrrrrrrrr sr c@seZdZddZdS)build_scripts_2to3cCs&tj|\}}|js|j|||fS)N)r rr0Zrun_2to3)rrrGrrrrs zbuild_scripts_2to3.copy_scriptsN)rKrLrMrrrrrrNsrN)__doc__r(rerErZ distutilsrZdistutils.corerZdistutils.dep_utilrZdistutils.utilrrrr1compiler6r rNrrrrs       PK!884command/__pycache__/install_lib.cpython-36.opt-1.pycnu[3 \ @sLdZddlZddlZddlZddlmZddlmZdZ GdddeZ dS)zkdistutils.command.install_lib Implements the Distutils 'install_lib' command (install all Python modules).N)Command)DistutilsOptionErrorz.pyc @seZdZdZd*d+d,d-d.d/d0gZdd dgZdd iZddZddZddZ ddZ ddZ d d!Z d"d#Z d$d%Zd&d'Zd(d)ZdS)1 install_libz7install all Python modules (extensions and pure Python) install-dir=ddirectory to install to build-dir=b'build directory (where to install from)forcef-force installation (overwrite existing files)compileccompile .py to .pyc [default] no-compileNdon't compile .py files optimize=Olalso compile with optimization: -O1 for "python -O", -O2 for "python -OO", and -O0 to disable [default: -O0] skip-buildskip the build stepscCs(d|_d|_d|_d|_d|_d|_dS)Nr) install_dir build_dirr roptimize skip_build)selfr5/usr/lib64/python3.6/distutils/command/install_lib.pyinitialize_options3s zinstall_lib.initialize_optionsc Cs|jddddddd|jdkr&d |_|jdkr6d |_t|jtsyt|j|_|jdkr^tWn ttfk rtdYnXdS)Ninstall build_librrrr rrrTFrzoptimize must be 0, 1, or 2)r!r)rr)r r )rr)rr)rr)rr"r#)Zset_undefined_optionsrr isinstanceintAssertionError ValueErrorr)rrrrfinalize_options<s$     zinstall_lib.finalize_optionscCs0|j|j}|dk r,|jjr,|j|dS)N)buildr distributionhas_pure_modules byte_compile)routfilesrrrrunVszinstall_lib.runcCs2|js.|jjr|jd|jjr.|jddS)Nbuild_py build_ext)rr*r+Z run_commandhas_ext_modules)rrrrr)fs    zinstall_lib.buildcCs8tjj|jr |j|j|j}n|jd|jdS|S)Nz3'%s' does not exist -- no Python modules to install)ospathisdirrZ copy_treerwarn)rr-rrrr ms  zinstall_lib.installcCsrtjr|jddSddlm}|jdj}|jrH||d|j||j d|j dkrn|||j |j||j |j ddS)Nz%byte-compiling is disabled, skipping.r)r,r )rr prefixdry_run)rr r6verboser7) sysdont_write_bytecoder5Zdistutils.utilr,get_finalized_commandrootrr r7rr8)rfilesr,Z install_rootrrrr,vs     zinstall_lib.byte_compilec Csh|sgS|j|}|j}t||}t|ttj}g}x(|D] } |jtjj|| |dq@W|S)N) r; get_outputsgetattrlenr2sepappendr3join) rZhas_anyZ build_cmdZ cmd_optionZ output_dirZ build_filesrZ prefix_lenZoutputsfilerrr_mutate_outputss    zinstall_lib._mutate_outputscCsvg}xl|D]d}tjjtjj|d}|tkr0q |jrL|jtjj |dd|j dkr |jtjj ||j dq W|S)Nr") optimizationr) r2r3splitextnormcasePYTHON_SOURCE_EXTENSIONrrB importlibutilcache_from_sourcer)rZ py_filenamesZbytecode_filesZpy_fileZextrrr_bytecode_filenamess     zinstall_lib._bytecode_filenamescCsR|j|jjdd|j}|jr*|j|}ng}|j|jjdd|j}|||S)zReturn the list of files that would be installed if this command were actually run. Not affected by the "dry-run" flag or whether modules have actually been built yet. r/r!r0)rEr*r+rrrNr1)rZ pure_outputsZbytecode_outputsZ ext_outputsrrrr>s   zinstall_lib.get_outputscCsLg}|jjr&|jd}|j|j|jjrH|jd}|j|j|S)zGet the list of files that are input to this command, ie. the files that get installed as they are named in the build tree. The files in this list correspond one-to-one to the output filenames returned by 'get_outputs()'. r/r0)r*r+r;extendr>r1)rZinputsr/r0rrr get_inputss    zinstall_lib.get_inputs)rrr)rr r )r r r )rrr)rNr)rrr)rNr)__name__ __module__ __qualname__Z descriptionZ user_optionsZboolean_optionsZ negative_optrr(r.r)r r,rErNr>rPrrrrrs*   r) __doc__r2importlib.utilrKr9Zdistutils.corerZdistutils.errorsrrJrrrrrs  PK!t5353(command/__pycache__/sdist.cpython-36.pycnu[3 \E@sdZddlZddlZddlTddlmZddlmZddlmZddl m Z m Z m Z m Z ddlmZddlTdd lmZdd l mZdd lmZd d ZGdddeZdS)zadistutils.command.sdist Implements the Distutils 'sdist' command (create a source distribution).N)*)glob)warn)Command)dir_utildep_util file_util archive_util)TextFile)FileList)log) convert_pathcCsdddlm}ddlm}g}x,|jD] }|jd|d||dfq&W|j||jddS)zoPrint all possible values for the 'formats' option (used by the "--help-formats" command-line option). r) FancyGetopt)ARCHIVE_FORMATSzformats=Nz.List of available source distribution formats:)Zdistutils.fancy_getoptrZdistutils.archive_utilrkeysappendsortZ print_help)rrformatsformatr//usr/lib64/python3.6/distutils/command/sdist.py show_formatss   rc@seZdZdZddZdJdKdLdMdNdOdPdQdRdTdUdVdWdXgZd ddddd"gZd*d d+efgZd dd,Z d-efgZ d.d/Z d0d1Z d2d3Z d4d5Zd6d7Zd8d9Zd:d;Zdd?Zd@dAZdBdCZdDdEZdFdGZdHdIZd S)Ysdistz6create a source distribution (tarball, zip file, etc.)cCs|jS)zYCallable used for the check sub-command. Placed here so user_options can view it)metadata_check)selfrrrchecking_metadata%szsdist.checking_metadata template=t5name of manifest template file [default: MANIFEST.in] manifest=m)name of manifest file [default: MANIFEST] use-defaultsNRinclude the default file set in the manifest [default; disable with --no-defaults] no-defaults"don't include the default file setprunespecifically exclude files/directories that should not be distributed (build tree, RCS/CVS dirs, etc.) [default; disable with --no-prune]no-prune$don't automatically exclude anything manifest-onlyoEjust regenerate the manifest and then stop (implies --force-manifest)force-manifestfkforcibly regenerate the manifest and carry on as usual. Deprecated: now the manifest is always regenerated.formats=6formats for source distribution (comma-separated list) keep-tempkz1keep the distribution tree around after creating zarchive file(s) dist-dir=dFdirectory to put the source distribution archive(s) in [default: dist]metadata-check[Ensure that all required elements of meta-data are supplied. Warn if any missing. [default]owner=u@Owner name used when creating a tar file [default: current user]group=gAGroup name used when creating a tar file [default: current group]z help-formatsz#list available distribution formats)z no-defaultszno-prunecheckcCsTd|_d|_d|_d|_d|_d|_dg|_d|_d|_d|_ d|_ d|_ d|_ dS)NrZgztar) templatemanifest use_defaultsr' manifest_onlyZforce_manifestr keep_tempdist_dir archive_filesrownergroup)rrrrinitialize_options`szsdist.initialize_optionscCsZ|jdkrd|_|jdkr d|_|jdtj|j}|rFtd||jdkrVd|_dS)NZMANIFESTz MANIFEST.inrzunknown archive format '%s'Zdist)rCrBZensure_string_listr Zcheck_archive_formatsrZDistutilsOptionErrorrG)rZ bad_formatrrrfinalize_optionsws      zsdist.finalize_optionscCsBt|_x|jD]}|j|qW|j|jr6dS|jdS)N)r filelistZget_sub_commandsZ run_command get_file_listrEmake_distribution)rZcmd_namerrrrunsz sdist.runcCs*tdt|jjd}|j|jdS)zDeprecated API.zadistutils.command.sdist.check_metadata is deprecated, use the check command insteadr@N)rPendingDeprecationWarning distributionZget_command_objZensure_finalizedrP)rr@rrrcheck_metadatas  zsdist.check_metadatacCstjj|j}| r<|jr<|j|jj|jjdS|sP|j d|j|jj |j rh|j |rt|j |jr|j|jj|jj|jdS)aCFigure out the list of files to include in the source distribution, and put it in 'self.filelist'. This might involve reading the manifest template (and writing the manifest), or just reading the manifest, or just using the default file set -- it all depends on the user's options. Nz&manifest template '%s' does not exist z(using default file list)z?manifest template '%s' does not exist (using default file list))ospathisfilerB_manifest_is_not_generated read_manifestrMrZremove_duplicatesrfindallrD add_defaults read_templater'prune_file_listwrite_manifest)rZtemplate_existsrrrrNs(      zsdist.get_file_listcCs2d|jjg}x|D]}t|trn|}d}x*|D]"}tjj|r.d}|jj|Pq.W|s|j ddj |qtjj|r|jj|q|j d|qWdd g}x*|D]"}t tjj t |}|jj|qW|jd }|jjr|jj|jx>|jD]4\} } } } x$| D]} |jjtjj | | q WqW|jjrx||jjD]p}t|tr|t|}tjj |r|jj|n:|\}} x0| D](}t|}tjj |r|jj|qWqHW|jjr|jd }|jj|j|jjr|jd }|jj|j|jjr.|jd }|jj|jdS)a9Add all the default files to self.filelist: - README or README.txt - setup.py - test/test*.py - all pure Python modules mentioned in setup script - all files pointed by package_data (build_py) - all files defined in data_files. - all files defined as scripts. - all C sources listed as part of extensions or C libraries in the setup script (doesn't catch C headers!) Warns if (README or README.txt) or setup.py are missing; everything else is optional. README README.txtFTz,standard file not found: should have one of z, zstandard file '%s' not foundz test/test*.pyz setup.cfgbuild_py build_ext build_clib build_scriptsN)r^r_)rRZ script_name isinstancetuplerTrUexistsrMrrjoinfilterrVrextendget_finalized_commandZhas_pure_modulesZget_source_filesZ data_filesZhas_data_filesstrr Zhas_ext_modulesZhas_c_librariesZ has_scripts)rZ standardsfnZaltsZgot_itZoptionalpatternfilesr`ZpkgZsrc_dirZ build_dir filenamesfilenameitemdirnamer/rarbrcrrrrZs\           "         zsdist.add_defaultscCstjd|jt|jddddddd}zlxf|j}|dkrr?)__name__ __module__ __qualname__Z descriptionrZ user_optionsZboolean_optionsrZ help_optionsZ negative_optZ sub_commandsrKrLrPrSrNrZr[r\r]rWrXrrOrrrrrr!sj  (P *r)__doc__rTr~typesrwarningsrZdistutils.corerZ distutilsrrrr Zdistutils.text_filer Zdistutils.errorsZdistutils.filelistr r Zdistutils.utilr rrrrrrs       PK!k2command/__pycache__/install_scripts.cpython-36.pycnu[3 \@sDdZddlZddlmZddlmZddlmZGdddeZdS)zudistutils.command.install_scripts Implements the Distutils 'install_scripts' command, for installing Python scripts.N)Command)log)ST_MODEc@sLeZdZdZddddgZdd gZddZddZddZddZ ddZ d S)install_scriptsz%install scripts (Python or otherwise) install-dir=ddirectory to install scripts to build-dir=b'build directory (where to install from)forcef-force installation (overwrite existing files) skip-buildNskip the build stepscCsd|_d|_d|_d|_dS)Nr) install_dirr build_dir skip_build)selfr9/usr/lib64/python3.6/distutils/command/install_scripts.pyinitialize_optionssz"install_scripts.initialize_optionscCs |jdd |jdd d d dS) NZbuild build_scriptsrZinstallrrr r)rr)rr)r r )rr)Zset_undefined_options)rrrrfinalize_options!s  z install_scripts.finalize_optionscCs|js|jd|j|j|j|_tjdkrxT|jD]H}|j rNt j d|q6tj |t dBd@}t j d||tj||q6WdS)Nrposixzchanging mode of %simizchanging mode of %s to %o)rZ run_commandZ copy_treerroutfilesosname get_outputsZdry_runrinfostatrchmod)rfilemoderrrrun)s  zinstall_scripts.runcCs |jjp gS)N)Z distributionscripts)rrrr get_inputs8szinstall_scripts.get_inputscCs |jpgS)N)r)rrrrr;szinstall_scripts.get_outputs)rrr)r r r )r r r)rNr) __name__ __module__ __qualname__Z descriptionZ user_optionsZboolean_optionsrrr$r&rrrrrrsr) __doc__rZdistutils.corerZ distutilsrr rrrrrrs    PK!p&&.command/__pycache__/sdist.cpython-36.opt-2.pycnu[3 \E@sddlZddlZddlTddlmZddlmZddlmZddlm Z m Z m Z m Z ddl mZddlTddlmZdd lmZdd lmZd d ZGd ddeZdS)N)*)glob)warn)Command)dir_utildep_util file_util archive_util)TextFile)FileList)log) convert_pathcCsdddlm}ddlm}g}x,|jD] }|jd|d||dfq&W|j||jddS)Nr) FancyGetopt)ARCHIVE_FORMATSzformats=z.List of available source distribution formats:)Zdistutils.fancy_getoptrZdistutils.archive_utilrkeysappendsortZ print_help)rrformatsformatr//usr/lib64/python3.6/distutils/command/sdist.py show_formatss   rc@seZdZdZddZdJdKdLdMdNdOdPdQdRdTdUdVdWdXgZd ddddd"gZd*d d+efgZd dd,Z d-efgZ d.d/Z d0d1Z d2d3Z d4d5Zd6d7Zd8d9Zd:d;Zdd?Zd@dAZdBdCZdDdEZdFdGZdHdIZd S)Ysdistz6create a source distribution (tarball, zip file, etc.)cCs|jS)N)metadata_check)selfrrrchecking_metadata%szsdist.checking_metadata template=t5name of manifest template file [default: MANIFEST.in] manifest=m)name of manifest file [default: MANIFEST] use-defaultsNRinclude the default file set in the manifest [default; disable with --no-defaults] no-defaults"don't include the default file setprunespecifically exclude files/directories that should not be distributed (build tree, RCS/CVS dirs, etc.) [default; disable with --no-prune]no-prune$don't automatically exclude anything manifest-onlyoEjust regenerate the manifest and then stop (implies --force-manifest)force-manifestfkforcibly regenerate the manifest and carry on as usual. Deprecated: now the manifest is always regenerated.formats=6formats for source distribution (comma-separated list) keep-tempkz1keep the distribution tree around after creating zarchive file(s) dist-dir=dFdirectory to put the source distribution archive(s) in [default: dist]metadata-check[Ensure that all required elements of meta-data are supplied. Warn if any missing. [default]owner=u@Owner name used when creating a tar file [default: current user]group=gAGroup name used when creating a tar file [default: current group]z help-formatsz#list available distribution formats)z no-defaultszno-prunecheckcCsTd|_d|_d|_d|_d|_d|_dg|_d|_d|_d|_ d|_ d|_ d|_ dS)NrZgztar) templatemanifest use_defaultsr' manifest_onlyZforce_manifestr keep_tempdist_dir archive_filesrownergroup)rrrrinitialize_options`szsdist.initialize_optionscCsZ|jdkrd|_|jdkr d|_|jdtj|j}|rFtd||jdkrVd|_dS)NZMANIFESTz MANIFEST.inrzunknown archive format '%s'Zdist)rCrBZensure_string_listr Zcheck_archive_formatsrZDistutilsOptionErrorrG)rZ bad_formatrrrfinalize_optionsws      zsdist.finalize_optionscCsBt|_x|jD]}|j|qW|j|jr6dS|jdS)N)r filelistZget_sub_commandsZ run_command get_file_listrEmake_distribution)rZcmd_namerrrrunsz sdist.runcCs*tdt|jjd}|j|jdS)Nzadistutils.command.sdist.check_metadata is deprecated, use the check command insteadr@)rPendingDeprecationWarning distributionZget_command_objZensure_finalizedrP)rr@rrrcheck_metadatas  zsdist.check_metadatacCstjj|j}| r<|jr<|j|jj|jjdS|sP|j d|j|jj |j rh|j |rt|j |jr|j|jj|jj|jdS)Nz&manifest template '%s' does not exist z(using default file list)z?manifest template '%s' does not exist (using default file list))ospathisfilerB_manifest_is_not_generated read_manifestrMrZremove_duplicatesrfindallrD add_defaults read_templater'prune_file_listwrite_manifest)rZtemplate_existsrrrrNs(      zsdist.get_file_listcCs2d|jjg}x|D]}t|trn|}d}x*|D]"}tjj|r.d}|jj|Pq.W|s|j ddj |qtjj|r|jj|q|j d|qWdd g}x*|D]"}t tjj t |}|jj|qW|jd }|jjr|jj|jx>|jD]4\} } } } x$| D]} |jjtjj | | q WqW|jjrx||jjD]p}t|tr|t|}tjj |r|jj|n:|\}} x0| D](}t|}tjj |r|jj|qWqHW|jjr|jd }|jj|j|jjr|jd }|jj|j|jjr.|jd }|jj|jdS)NREADME README.txtFTz,standard file not found: should have one of z, zstandard file '%s' not foundz test/test*.pyz setup.cfgbuild_py build_ext build_clib build_scripts)r^r_)rRZ script_name isinstancetuplerTrUexistsrMrrjoinfilterrVrextendget_finalized_commandZhas_pure_modulesZget_source_filesZ data_filesZhas_data_filesstrr Zhas_ext_modulesZhas_c_librariesZ has_scripts)rZ standardsfnZaltsZgot_itZoptionalpatternfilesr`ZpkgZsrc_dirZ build_dir filenamesfilenameitemdirnamer/rarbrcrrrrZs\           "         zsdist.add_defaultscCstjd|jt|jddddddd}zlxf|j}|dkrr?)__name__ __module__ __qualname__Z descriptionrZ user_optionsZboolean_optionsrZ help_optionsZ negative_optZ sub_commandsrKrLrPrSrNrZr[r\r]rWrXrrOrrrrrr!sj  (P *r)rTr~typesrwarningsrZdistutils.corerZ distutilsrrrr Zdistutils.text_filer Zdistutils.errorsZdistutils.filelistr r Zdistutils.utilr rrrrrrs       PK!3770command/__pycache__/install.cpython-36.opt-1.pycnu[3 Iij@sdZddlZddlZddlmZddlmZddlmZddl m Z ddl m Z ddl mZdd lmZmZmZdd lmZdd l mZdd lmZdd lmZdZddddddZddddddddddddedZerdddddded <ddd!d"dded#<d+ZGd)d*d*eZdS),zFdistutils.command.install Implements the Distutils 'install' command.N)log)Command)DEBUG)get_config_vars)DistutilsPlatformError) write_file) convert_path subst_vars change_root) get_platform)DistutilsOptionError) USER_BASE) USER_SITETz$base/Lib/site-packagesz$base/Include/$dist_namez $base/Scriptsz$base)purelibplatlibheadersscriptsdataz/$base/lib/python$py_version_short/site-packagesz5$platbase/lib64/python$py_version_short/site-packagesz9$base/include/python$py_version_short$abiflags/$dist_namez $base/binz$base/lib/pythonz$base/lib64/pythonz$base/include/python/$dist_name) unix_prefix unix_homentz $usersitez4$userbase/Python$py_version_nodot/Include/$dist_namez)$userbase/Python$py_version_nodot/Scriptsz $userbasent_userz=$userbase/include/python$py_version_short$abiflags/$dist_namez $userbase/bin unix_userrrrrrc@s:eZdZdZd_d`dadbdddedfdgdidjdkdldmdndodpdqdrgZdd%d(gZer`ejd,dd-efejd,d diZ d.d/Z d0d1Z d2d3Z d4d5Z d6d7Zd8d9Zd:d;Zdd?Zd@dAZdBdCZdDdEZdFdGZdHdIZdJdKZdLdMZdNdOZdPdQZdRdSZdTdUZdVdWZdXefdYefdZefd[efd\d]d^fgZdS)sinstallz'install everything from build directoryprefix=Ninstallation prefix exec-prefix=.(Unix only) prefix for platform-specific fileshome=+(Unix only) home directory to install under install-base=;base installation directory (instead of --prefix or --home)install-platbase=z8base installation directory for platform-specific files z$(instead of --exec-prefix or --home)root=|jD]2}|j|}x"|jD]}||kr&|j|q&WqW|jrl|jrl|jtjj|j |jd|S)z.Assembles the outputs of all the sub-commands.z.pth) rget_finalized_commandrappendrrQrhr}r~r|)rWrrcmdrrXrXrYrbs  zinstall.get_outputscCs2g}x(|jD]}|j|}|j|jqW|S)z*Returns the inputs of all the sub-commands)rrextend get_inputs)rWZinputsrrrXrXrYrss  zinstall.get_inputscCs|jjp|jjS)zSReturns true if the current distribution has any Python modules to install.)rrZhas_pure_modulesZhas_ext_modules)rWrXrXrYhas_libs zinstall.has_libcCs |jjS)zLReturns true if the current distribution has any headers to install.)rr has_headers)rWrXrXrYrszinstall.has_headerscCs |jjS)zMReturns true if the current distribution has any scripts to. install.)rr has_scripts)rWrXrXrYrszinstall.has_scriptscCs |jjS)zJReturns true if the current distribution has any data to. install.)rrZhas_data_files)rWrXrXrYhas_dataszinstall.has_datarJrIrKrLZinstall_egg_infocCsdS)NTrX)rWrXrXrYszinstall.)rNr)rNr)rNr)r Nr!\base installation directory for platform-specific files (instead of --exec-prefix or --home))r"Nr)r#Nr$)r%Nr&)r'Nr(ginstallation directory for all module distributions (overrides --install-purelib and --install-platlib))r)Nr)r*Nr+)r,Nr-)r.Nr/)r0r1r2)r3Nr4)r5r6r7)r8r9r:)r;Nr<)r=Nr>) __name__ __module__ __qualname__Z descriptionrZboolean_optionsrurrrrZrrkrlrmrrrvrxrzr{rryrrrrrrrrZ sub_commandsrXrXrXrYrIs   N3  " , r)rrrrr)__doc__rnrhZ distutilsrZdistutils.corerZdistutils.debugrZdistutils.sysconfigrZdistutils.errorsrZdistutils.file_utilrZdistutils.utilrr r r r Zsiter rruZWINDOWS_SCHEMErrrrXrXrXrYsV            PK!g222command/__pycache__/bdist_rpm.cpython-36.opt-1.pycnu[3 \T@sdZddlZddlZddlZddlmZddlmZddlm Z ddl m Z ddl Tddl mZdd lmZGd d d eZdS) zwdistutils.command.bdist_rpm Implements the Distutils 'bdist_rpm' command (create RPM source and binary distributions).N)Command)DEBUG) get_platform) write_file)*)get_python_version)logc+@seZdZdZdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|d}d~dddddddddddddddddg)Zd4d9d=d2dUgZd4d9d=dXZdYdZZd[d\Zd]d^Z d_d`Z dadbZ dcddZ dedfZ dS) bdist_rpmzcreate an RPM distribution bdist-base=N/base directory for creating built distributions rpm-base=dbase directory for creating RPMs (defaults to "rpm" under --bdist-base; must be specified for RPM 2) dist-dir=dDdirectory to put final RPM files in (and .spec files if --spec-only)python=Mpath to Python interpreter to hard-code in the .spec file (default: "python") fix-pythonLhard-code the exact path to the current Python interpreter in the .spec file spec-onlyonly regenerate spec file source-onlyonly generate source RPM binary-onlyonly generate binary RPM use-bzip27use bzip2 instead of gzip to create source distributiondistribution-name=gname of the (Linux) distribution to which this RPM applies (*not* the name of the module distribution!)group=9package classification [default: "Development/Libraries"]release=RPM release numberserial=RPM serial numbervendor=aRPM "vendor" (eg. "Joe Blow ") [default: maintainer or author from setup script] packager=BRPM packager (eg. "Jane Doe ") [default: vendor] doc-files=6list of documentation files (space or comma-separated) changelog= RPM changelogicon=name of icon file provides=%capabilities provided by this package requires=%capabilities required by this package conflicts=-capabilities which conflict with this packagebuild-requires=+capabilities required to build this package obsoletes=*capabilities made obsolete by this package no-autoreq+do not automatically calculate dependencies keep-tempk"don't clean up RPM build directory no-keep-temp&clean up RPM build directory [default]use-rpm-opt-flags8compile with RPM_OPT_FLAGS when building from source RPMno-rpm-opt-flags&do not pass any RPM CFLAGS to compiler rpm3-mode"RPM 3 compatibility mode (default) rpm2-modeRPM 2 compatibility mode prep-script=3Specify a script for the PREP phase of RPM building build-script=4Specify a script for the BUILD phase of RPM building pre-install=:Specify a script for the pre-INSTALL phase of RPM buildinginstall-script=6Specify a script for the INSTALL phase of RPM building post-install=;Specify a script for the post-INSTALL phase of RPM buildingpre-uninstall=rnroREADME README.txtrk1rlrirprqrrrsrtrurvrwrxryrzr|r}r~rrr)rr)Z ensure_stringrZ get_contactZget_contact_emailZensure_string_list isinstancerolistrrexistsappend_format_changelogrpZensure_filename)rZreadmerrrrs>                         zbdist_rpm.finalize_package_datac Cstrsz-bdist_rpm._make_spec_file..zbrp-python-bytecompile \ z%brp-python-bytecompile %{__python} \ z2# Workaround for http://bugs.python.org/issue14443z%define __os_install_post z Name: %{name}zVersion: %{version}zRelease: %{release}z-Source0: %{name}-%{unmangled_version}.tar.bz2z,Source0: %{name}-%{unmangled_version}.tar.gzz License: zGroup: z>BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildrootzPrefix: %{_prefix}zBuildArch: noarchz BuildArch: %sVendorPackagerProvidesRequires Conflicts Obsoletesz%s: %s NZUNKNOWNzUrl: zDistribution: zBuildRequires: zIcon: z AutoReq: 0z %descriptionz%s %srz%s buildzenv CFLAGS="$RPM_OPT_FLAGS" z>%s install -O1 --root=$RPM_BUILD_ROOT --record=INSTALLED_FILESr{rr&%setup -n %{name}-%{unmangled_version}ZbuildrsZinstallrtcleanrurm -rf $RPM_BUILD_ROOT verifyscriptrvprerwpostrxpreunrypostunrz%rz%files -f INSTALLED_FILESz%defattr(-,root,root)z%doc z %changelog)rrrrrr)r{rrr)rrur)rrvN)rrwN)rrxN)rryN)rrzN)'rrZ get_versionreplacerkZget_description subprocessZ getoutputr splitlinesrrrhZ get_licenserjrrgetattrlowerrrZget_urlrirrqrrrrZget_long_descriptionrcrargvropenreadrrorp)rZ spec_fileZ vendor_hookZproblemZfixedZ fixed_hookZfieldvalZdef_setup_callZ def_buildZ install_cmdZscript_optionsZrpm_optattrdefaultrrrrs                   zbdist_rpm._make_spec_filecCs|s|Sg}x`|jjdD]N}|j}|ddkrD|jd|gq|ddkr\|j|q|jd|qW|ds||d=|S)zKFormat the changelog correctly and convert it to a list of strings rrrrrz )rrrr)rrpZ new_changelogrrrrr3s   zbdist_rpm._format_changelog)r Nr )r Nr )rrr)rNr)rNr)rNr)rNr)rNr)rNr)rNr)rNr )r!Nr")r#Nr$)r%Nr&)r'Nr()r)Nr*)r+Nr,)r-Nr.)r/Nr0)r1Nr2)r3Nr4)r5Nr6)r7Nr8)r9Nr:)r;r<r=)r>Nr?)r@NrA)rBNrC)rDNrE)rFNrG)rHNrI)rJNrK)rLNrM)rNNrO)rPNrQ)rRNrS)rTNrU)rVNrW)rXNrY)rZNr[)r\r]r^)__name__ __module__ __qualname__Z descriptionZ user_optionsZboolean_optionsZ negative_optrrrrrrrrrrrr s--)r )__doc__rrrZdistutils.corerZdistutils.debugrZdistutils.utilrZdistutils.file_utilrZdistutils.errorsZdistutils.sysconfigrZ distutilsrr rrrrs      PK!ل8command/__pycache__/install_headers.cpython-36.opt-2.pycnu[3 \@s ddlmZGdddeZdS))Commandc@sFeZdZdZddgZdgZdd Zd d Zd d ZddZ ddZ dS)install_headerszinstall C/C++ header files install-dir=d$directory to install header files toforcef-force installation (overwrite existing files)cCsd|_d|_g|_dS)Nr) install_dirroutfiles)selfr 9/usr/lib64/python3.6/distutils/command/install_headers.pyinitialize_optionssz"install_headers.initialize_optionscCs|jddddS)NZinstallrr r)rr )rr)Zset_undefined_options)r r r rfinalize_optionssz install_headers.finalize_optionscCsL|jj}|sdS|j|jx*|D]"}|j||j\}}|jj|q"WdS)N) distributionheadersZmkpathr Z copy_filer append)r rheaderout_r r rrun!s  zinstall_headers.runcCs |jjp gS)N)rr)r r r r get_inputs+szinstall_headers.get_inputscCs|jS)N)r )r r r r get_outputs.szinstall_headers.get_outputsN)rrr)rrr ) __name__ __module__ __qualname__Z descriptionZ user_optionsZboolean_optionsrrrrrr r r rr s rN)Zdistutils.corerrr r r rs PK!=#8command/__pycache__/install_scripts.cpython-36.opt-2.pycnu[3 \@s@ddlZddlmZddlmZddlmZGdddeZdS)N)Command)log)ST_MODEc@sLeZdZdZddddgZdd gZddZddZddZddZ ddZ d S)install_scriptsz%install scripts (Python or otherwise) install-dir=ddirectory to install scripts to build-dir=b'build directory (where to install from)forcef-force installation (overwrite existing files) skip-buildNskip the build stepscCsd|_d|_d|_d|_dS)Nr) install_dirr build_dir skip_build)selfr9/usr/lib64/python3.6/distutils/command/install_scripts.pyinitialize_optionssz"install_scripts.initialize_optionscCs |jdd |jdd d d dS) NZbuild build_scriptsrZinstallrrr r)rr)rr)r r )rr)Zset_undefined_options)rrrrfinalize_options!s  z install_scripts.finalize_optionscCs|js|jd|j|j|j|_tjdkrxT|jD]H}|j rNt j d|q6tj |t dBd@}t j d||tj||q6WdS)Nrposixzchanging mode of %simizchanging mode of %s to %o)rZ run_commandZ copy_treerroutfilesosname get_outputsZdry_runrinfostatrchmod)rfilemoderrrrun)s  zinstall_scripts.runcCs |jjp gS)N)Z distributionscripts)rrrr get_inputs8szinstall_scripts.get_inputscCs |jpgS)N)r)rrrrr;szinstall_scripts.get_outputs)rrr)r r r )r r r)rNr) __name__ __module__ __qualname__Z descriptionZ user_optionsZboolean_optionsrrr$r&rrrrrrsr)rZdistutils.corerZ distutilsrr rrrrrrs   PK!88.command/__pycache__/install_lib.cpython-36.pycnu[3 \ @sLdZddlZddlZddlZddlmZddlmZdZ GdddeZ dS)zkdistutils.command.install_lib Implements the Distutils 'install_lib' command (install all Python modules).N)Command)DistutilsOptionErrorz.pyc @seZdZdZd*d+d,d-d.d/d0gZdd dgZdd iZddZddZddZ ddZ ddZ d d!Z d"d#Z d$d%Zd&d'Zd(d)ZdS)1 install_libz7install all Python modules (extensions and pure Python) install-dir=ddirectory to install to build-dir=b'build directory (where to install from)forcef-force installation (overwrite existing files)compileccompile .py to .pyc [default] no-compileNdon't compile .py files optimize=Olalso compile with optimization: -O1 for "python -O", -O2 for "python -OO", and -O0 to disable [default: -O0] skip-buildskip the build stepscCs(d|_d|_d|_d|_d|_d|_dS)Nr) install_dir build_dirr roptimize skip_build)selfr5/usr/lib64/python3.6/distutils/command/install_lib.pyinitialize_options3s zinstall_lib.initialize_optionsc Cs|jddddddd|jdkr&d |_|jdkr6d |_t|jtsyt|j|_|jdkr^tWn ttfk rtdYnXdS)Ninstall build_librrrr rrrTFrzoptimize must be 0, 1, or 2)r!r)rr)r r )rr)rr)rr)rr"r#)Zset_undefined_optionsrr isinstanceintAssertionError ValueErrorr)rrrrfinalize_options<s$     zinstall_lib.finalize_optionscCs0|j|j}|dk r,|jjr,|j|dS)N)buildr distributionhas_pure_modules byte_compile)routfilesrrrrunVszinstall_lib.runcCs2|js.|jjr|jd|jjr.|jddS)Nbuild_py build_ext)rr*r+Z run_commandhas_ext_modules)rrrrr)fs    zinstall_lib.buildcCs8tjj|jr |j|j|j}n|jd|jdS|S)Nz3'%s' does not exist -- no Python modules to install)ospathisdirrZ copy_treerwarn)rr-rrrr ms  zinstall_lib.installcCsrtjr|jddSddlm}|jdj}|jrH||d|j||j d|j dkrn|||j |j||j |j ddS)Nz%byte-compiling is disabled, skipping.r)r,r )rr prefixdry_run)rr r6verboser7) sysdont_write_bytecoder5Zdistutils.utilr,get_finalized_commandrootrr r7rr8)rfilesr,Z install_rootrrrr,vs     zinstall_lib.byte_compilec Csh|sgS|j|}|j}t||}t|ttj}g}x(|D] } |jtjj|| |dq@W|S)N) r; get_outputsgetattrlenr2sepappendr3join) rZhas_anyZ build_cmdZ cmd_optionZ output_dirZ build_filesrZ prefix_lenZoutputsfilerrr_mutate_outputss    zinstall_lib._mutate_outputscCsvg}xl|D]d}tjjtjj|d}|tkr0q |jrL|jtjj |dd|j dkr |jtjj ||j dq W|S)Nr") optimizationr) r2r3splitextnormcasePYTHON_SOURCE_EXTENSIONrrB importlibutilcache_from_sourcer)rZ py_filenamesZbytecode_filesZpy_fileZextrrr_bytecode_filenamess     zinstall_lib._bytecode_filenamescCsR|j|jjdd|j}|jr*|j|}ng}|j|jjdd|j}|||S)zReturn the list of files that would be installed if this command were actually run. Not affected by the "dry-run" flag or whether modules have actually been built yet. r/r!r0)rEr*r+rrrNr1)rZ pure_outputsZbytecode_outputsZ ext_outputsrrrr>s   zinstall_lib.get_outputscCsLg}|jjr&|jd}|j|j|jjrH|jd}|j|j|S)zGet the list of files that are input to this command, ie. the files that get installed as they are named in the build tree. The files in this list correspond one-to-one to the output filenames returned by 'get_outputs()'. r/r0)r*r+r;extendr>r1)rZinputsr/r0rrr get_inputss    zinstall_lib.get_inputs)rrr)rr r )r r r )rrr)rNr)rrr)rNr)__name__ __module__ __qualname__Z descriptionZ user_optionsZboolean_optionsZ negative_optrr(r.r)r r,rErNr>rPrrrrrs*   r) __doc__r2importlib.utilrKr9Zdistutils.corerZdistutils.errorsrrJrrrrrs  PK!x 9command/__pycache__/install_egg_info.cpython-36.opt-1.pycnu[3 \+ @sddZddlmZddlmZmZddlZddlZddlZGdddeZ ddZ d d Z d d Z dS) zdistutils.command.install_egg_info Implements the Distutils 'install_egg_info' command, for installing a package's PKG-INFO metadata.)Command)logdir_utilNc@s:eZdZdZdZdgZddZdd Zd d Zd d Z dS)install_egg_infoz)Install an .egg-info file for the packagez8Install package's PKG-INFO metadata as an .egg-info file install-dir=ddirectory to install tocCs d|_dS)N) install_dir)selfr :/usr/lib64/python3.6/distutils/command/install_egg_info.pyinitialize_optionssz#install_egg_info.initialize_optionscCsb|jdddtt|jjtt|jjftjdd}t j j |j ||_ |j g|_dS)NZ install_libr z%s-%s-py%d.%d.egg-info)r r )Zset_undefined_options to_filename safe_name distributionZget_name safe_versionZ get_versionsys version_infoospathjoinr targetoutputs)r basenamer r r finalize_optionss z!install_egg_info.finalize_optionsc Cs|j}tjj|r2tjj| r2tj||jdnNtjj|rX|j tj |jfd|n(tjj|j s|j tj |j fd|j t jd||jst|ddd}|jjj|WdQRXdS)N)dry_runz Removing z Creating z Writing %swzUTF-8)encoding)rrrisdirislinkrZ remove_treerexistsZexecuteunlinkr makedirsrinfoopenrZmetadataZwrite_pkg_file)r rfr r r run s   zinstall_egg_info.runcCs|jS)N)r)r r r r get_outputs.szinstall_egg_info.get_outputsN)rrr) __name__ __module__ __qualname____doc__Z descriptionZ user_optionsr rr'r(r r r r r s rcCstjdd|S)zConvert an arbitrary string to a standard distribution name Any runs of non-alphanumeric/. characters are replaced with a single '-'. z[^A-Za-z0-9.]+-)resub)namer r r r6srcCs|jdd}tjdd|S)zConvert an arbitrary string to a standard version string Spaces become dots, and all other non-alphanumeric characters become dashes, with runs of multiple dashes condensed to a single dash.  .z[^A-Za-z0-9.]+r-)replacer.r/)versionr r r r>s rcCs |jddS)z|Convert a project or version name to its filename-escaped form Any '-' characters are currently replaced with '_'. r-_)r3)r0r r r rHsr) r,Z distutils.cmdrZ distutilsrrrrr.rrrrr r r r s + PK!ȭ/command/__pycache__/upload.cpython-36.opt-1.pycnu[3 Ii@sdZddlZddlZddlZddlZddlmZddlmZm Z m Z ddl m Z ddl mZmZddlmZddlmZdd lmZGd d d eZdS) zm distutils.command.upload Implements the Distutils 'upload' subcommand (upload package to a package index). N)standard_b64encode)urlopenRequest HTTPError)urlparse)DistutilsErrorDistutilsOptionError) PyPIRCCommand)spawn)logc@sJeZdZdZejddgZejdgZdd Zd d Zd d Z ddZ dS)uploadzupload binary package to PyPIsignssign files to upload using gpg identity=iGPG identity used to sign filescCs,tj|d|_d|_d|_d|_d|_dS)NrF)r initialize_optionsusernamepassword show_responser identity)selfr0/usr/lib64/python3.6/distutils/command/upload.pyr s  zupload.initialize_optionscCsvtj||jr |j r td|j}|ikrX|d|_|d|_|d|_|d|_ |j rr|j jrr|j j|_dS)Nz.Must use --sign for --identity to have meaningrr repositoryrealm) r finalize_optionsrr rZ _read_pypircrrrr distribution)rconfigrrrr(s     zupload.finalize_optionscCs>|jjsd}t|x$|jjD]\}}}|j|||qWdS)NzHMust create and upload files in one command (e.g. setup.py sdist upload))rZ dist_filesr upload_file)rmsgcommand pyversionfilenamerrrrun:s z upload.runc&)Cs^t|j\}}}}}} |s"|s"| r0td|j|d2krDtd||jr|ddd|g} |jrnd|jg| d d <t| |jd t|d } z | j} Wd| j X|j j } d d | j | j tjj|| f||tj| jd| j| j| j| j| j| j| j| j| j| j| j| j| j d}ytj!| j}WnPt"k r}z2d|}|j#|t$j%ddl&m'}|s|WYdd}~Xn X||d<d}|dkrt(j)\}}}|rd||f}n|dkrdt(j(dd}||d<|jrtjj|dt|dd jf|d<|j*d|j+j,d}d t-|j.d}d!}d"|j,d}|d#}t/j0}x|j1D]\}}d$|}t2|t3s|g}xr|D]j}t4|t5kr|d%|d7}|d}nt6|j,d&}|j7||j7|j,d&|j7d'|j7|qWqjW|j7||j8}d(||jf}|j#|t$j%d)|t6t9||d*} t:|j|| d+}!yt;|!}"|"j<}#|"j=}$Wnft>k r}z|j?}#|j=}$WYdd}~Xn8t@k r}z|j#t6|t$jAWYdd}~XnX|#d,kr8|j#d-|#|$ft$j%|jBrZ|jC|"}%d.jDd/d0|%d/d0f}|j#|t$j%n"d1|#|$f}|j#|t$jAtE|dS)3NzIncompatible url %shttphttpszunsupported schema Zgpgz --detach-signz-az --local-user)dry_runrbZ file_upload1z1.0)z:actionZprotocol_versionnameversioncontentZfiletyper$Z sha256_digestZmetadata_versionZsummaryZ home_pageZauthorZ author_emaillicense descriptionkeywordsplatformZ classifiersZ download_urlZprovidesZrequiresZ obsoletesz#calculating md5 checksum failed: %sr) get_fips_modeZ md5_digestrZ bdist_rpmzbuilt for %s %sZ bdist_dumbz built for %s)Ztersecommentz.ascZ gpg_signature:asciizBasic z3--------------GHSKFJDLGDS7543FJKLFHRE75642756743254s --s-- z+ Content-Disposition: form-data; name="%s"z; filename="%s"zutf-8s zSubmitting %s to %sz multipart/form-data; boundary=%s)z Content-typezContent-lengthZ Authorization)dataheaderszServer response (%s): %s -KzUpload failed (%s): %s)r'r()FrrAssertionErrorr rr r*openreadcloserZmetadataZget_nameZ get_versionospathbasenamehashlibZsha256Z hexdigestZget_descriptionZget_urlZ get_contactZget_contact_emailZ get_licenceZget_long_descriptionZ get_keywordsZ get_platformsZget_classifiersZget_download_urlZ get_providesZ get_requiresZ get_obsoletesZmd5 ValueErrorZannouncer INFOZ_hashlibr4r3distrrencoderdecodeioBytesIOitems isinstancelisttypetuplestrwritegetvaluelenrrZgetcoder"rcodeOSErrorZERRORrZ_read_pypi_responsejoinr)&rr#r$r%ZschemaZnetlocZurlZparamsZqueryZ fragmentsZgpg_argsfr/metar9Zdigester"r4r6rIr.idZ user_passZauthboundaryZ sep_boundaryZ end_boundaryZbodykeyvaluetitler:ZrequestresultZstatusreasontextrrrr!Bs                       zupload.upload_fileN)r rr)rrr) __name__ __module__ __qualname__r1r Z user_optionsZboolean_optionsrrr&r!rrrrr s r )__doc__rCrLr3rFbase64rZurllib.requestrrrZ urllib.parserZdistutils.errorsrrZdistutils.corer Zdistutils.spawnr Z distutilsr r rrrrs     PK!>ii.command/__pycache__/check.cpython-36.opt-1.pycnu[3 \x @sdZddlmZddlmZyTddlmZddlmZddl m Z ddl m Z ddl m Z Gd d d eZd ZWnek rd ZYnXGd ddeZdS)zCdistutils.command.check Implements the Distutils 'check' command. )Command)DistutilsSetupError)Reporter)Parser)frontend)nodes)StringIOc@seZdZd ddZddZdS) SilentReporterNrasciireplacec Cs"g|_tj||||||||dS)N)messagesr__init__)selfsource report_level halt_levelstreamdebugencoding error_handlerr//usr/lib64/python3.6/distutils/command/check.pyr szSilentReporter.__init__cOs6|jj||||ftj|f|||j|d|S)N)leveltype)r appendrsystem_messageZlevels)rrmessageZchildrenkwargsrrrrszSilentReporter.system_message)Nrr r )__name__ __module__ __qualname__r rrrrrr s r TFc@s`eZdZdZdZdddgZddd gZd d ZddZddZ ddZ ddZ ddZ ddZ dS)checkz6This command checks the meta-data of the package. z"perform some checks on the packagemetadatamVerify meta-datarestructuredtextrEChecks if long string meta-data syntax are reStructuredText-compliantstricts(Will exit with an error if a check failscCsd|_d|_d|_d|_dS)z Sets default values for options.rN)r%r"r( _warnings)rrrrinitialize_options1szcheck.initialize_optionscCsdS)Nr)rrrrfinalize_options8szcheck.finalize_optionscCs|jd7_tj||S)z*Counts the number of warnings that occurs.r+)r,rwarn)rmsgrrrr/;sz check.warncCsL|jr|j|jr0tr"|jn|jr0td|jrH|jdkrHtddS)zRuns the command.zThe docutils package is needed.rzPlease correct your package.N)r"check_metadatar% HAS_DOCUTILScheck_restructuredtextr(rr,)rrrrrun@s z check.runcCs|jj}g}x*dD]"}t||o(t||s|j|qW|rP|jddj||jrh|js|jdn"|j r|j s|jdn |jdd S)zEnsures that all required elements of meta-data are supplied. name, version, URL, (author and author_email) or (maintainer and maintainer_email)). Warns if any are missing. nameversionurlzmissing required meta-data: %sz, z)missing meta-data: if 'author' supplied, z#'author_email' must be supplied tooz-missing meta-data: if 'maintainer' supplied, z''maintainer_email' must be supplied tooz4missing meta-data: either (author and author_email) z%or (maintainer and maintainer_email) zmust be suppliedN)r5r6r7zLmissing meta-data: if 'author' supplied, 'author_email' must be supplied toozTmissing meta-data: if 'maintainer' supplied, 'maintainer_email' must be supplied toozYmissing meta-data: either (author and author_email) or (maintainer and maintainer_email) zimissing meta-data: either (author and author_email) or (maintainer and maintainer_email) must be supplied) distributionr"hasattrgetattrrr/joinZauthorZ author_emailZ maintainerZmaintainer_email)rr"Zmissingattrrrrr1Ps$ zcheck.check_metadatacCs\|jj}xL|j|D]>}|djd}|dkr:|d}nd|d|f}|j|qWdS)z4Checks if the long string fields are reST-compliant.r+lineNz %s (line %s))r8Zget_long_description_check_rst_datagetr/)rdataZwarningr=rrrr3ns  zcheck.check_restructuredtextcCst}t}tjtfdj}d|_d|_d|_t||j |j |j |j |j |jd}tj|||d}|j|d y|j||Wn:tk r}z|jjd d|difWYdd}~XnX|jS) z8Returns warnings when the provided data doesn't compile.)Z componentsN)rrrr)rr+z!Could not finish the parsing: %s.r>r>)rrrZ OptionParserZget_default_valuesZ tab_widthZpep_referencesZrfc_referencesr rrZwarning_streamrZerror_encodingZerror_encoding_error_handlerrdocumentZ note_sourceparseAttributeErrorr r)rrA source_pathparserZsettingsZreporterrDerrrr?ys*  $zcheck._check_rst_dataN)r"r#r$)r%r&r')r(r)r*)rrr __doc__Z descriptionZ user_optionsZboolean_optionsr-r.r/r4r1r3r?rrrrr!$s  r!N)rJZdistutils.corerZdistutils.errorsrZdocutils.utilsrZdocutils.parsers.rstrZdocutilsrriorr r2 Exceptionr!rrrrs        PK!q((1command/__pycache__/build_py.cpython-36.opt-1.pycnu[3 \ C@s~dZddlZddlZddlZddlmZddlmZddlTddl m Z m Z ddl m Z Gdd d eZGd d d ee ZdS) zHdistutils.command.build_py Implements the Distutils 'build_py' command.N)glob)Command)*) convert_path Mixin2to3)logc@seZdZdZd8d9d:d;dbuild_pyz5"build" pure Python modules (copy to build directory) build-lib=ddirectory to "build" (copy) tocompileccompile .py to .pyc no-compileN!don't compile .py files [default] optimize=Olalso compile with optimization: -O1 for "python -O", -O2 for "python -OO", and -O0 to disable [default: -O0]forcef2forcibly build everything (ignore file timestamps)cCs4d|_d|_d|_d|_d|_d|_d|_d|_dS)Nr) build_lib py_modulespackage package_data package_dirr optimizer)selfr2/usr/lib64/python3.6/distutils/command/build_py.pyinitialize_options szbuild_py.initialize_optionsc Cs|jddd|jj|_|jj|_|jj|_i|_|jjrbx&|jjjD]\}}t||j|<qHW|j|_ t |j t syt |j |_ Wn t tfk rtdYnXdS)NZbuildrrzoptimize must be 0, 1, or 2)rr)rr)Zset_undefined_options distributionpackagesrrritemsrget_data_files data_files isinstancerint ValueErrorAssertionErrorZDistutilsOptionError)rnamepathrrrfinalize_options*s"      zbuild_py.finalize_optionscCs:|jr|j|jr$|j|j|j|jdddS)Nr)include_bytecode)r build_modulesr"build_packagesbuild_package_data byte_compile get_outputs)rrrrrunCs z build_py.runcsg}|js|Sxr|jD]h}|j|}tjj|jg|jd}d|rRt|dfdd|j||D}|j ||||fqW|S)z?Generate list of '(package,src_dir,build_dir,filenames)' tuples.rcsg|]}|dqS)Nr).0file)plenrr tsz+build_py.get_data_files..) r"get_package_dirosr+joinrsplitlenfind_data_filesappend)rdatarsrc_dir build_dir filenamesr)r8rr$as   zbuild_py.get_data_filescs`|jjdg|jj|g}gx:|D]2}ttjj|t|}jfdd|Dq&WS)z6Return filenames for package's data files in 'src_dir'cs$g|]}|krtjj|r|qSr)r;r+isfile)r6fn)filesrrr9s z,build_py.find_data_files..)rgetrr;r+r<rextend)rrrBZglobspatternZfilelistr)rHrr?ys  zbuild_py.find_data_filescCshd}x^|jD]T\}}}}xF|D]>}tjj||}|jtjj||jtjj|||ddqWq WdS)z$Copy data files into build directoryNF) preserve_mode)r%r;r+r<mkpathdirname copy_file)rZlastdirrrBrCrDfilenametargetrrrr0s zbuild_py.build_package_datac Cs|jd}|js&|r tjj|SdSng}x|ry|jdj|}Wn*tk rn|jd|d|d=Yq,X|jd|tjj|Sq,W|jjd}|dk r|jd||rtjj|SdSdS)zReturn the directory, relative to the top of the source distribution, where package 'package' should be found (at least according to the 'package_dir' option, if any).r4rErr5NrR)r=rr;r+r<KeyErrorinsertrI)rrr+tailZpdirrrrr:s(       zbuild_py.get_package_dircCsj|dkr8tjj|s td|tjj|s8td||rftjj|d}tjj|rZ|Stjd|dS)NrEz%package directory '%s' does not existz>supposed package directory '%s' exists, but is not a directoryz __init__.pyz!package init file '%s' not found z(or not a regular file)z8package init file '%s' not found (or not a regular file)) r;r+existsZDistutilsFileErrorisdirr<rFrwarn)rrrinit_pyrrr check_packages    zbuild_py.check_packagecCs&tjj|stjd||dSdSdS)Nz!file %s (for module %s) not foundFT)r;r+rFrrX)rmodule module_filerrr check_modules zbuild_py.check_modulec Cs|j||ttjj|d}g}tjj|jj}xX|D]P}tjj|}||krztjjtjj |d}|j |||fq8|j d|q8W|S)Nz*.pyrz excluding %s) rZrr;r+r<abspathr!Z script_namesplitextbasenamer@Z debug_print) rrrZ module_filesmodulesZ setup_scriptrZabs_fr[rrrfind_package_moduless   zbuild_py.find_package_modulesc Csi}g}x|jD]}|jd}dj|dd}|d}y||\}}Wn"tk rj|j|}d}YnX|s|j||} |df||<| r|j|d| ftjj||d} |j || sq|j||| fqW|S)aFinds individually-specified Python modules, ie. those listed by module name in 'self.py_modules'. Returns a list of tuples (package, module_base, filename): 'package' is a tuple of the path through package-space to the module; 'module_base' is the bare (no packages, no dots) module name, and 'filename' is the path to the ".py" file (relative to the distribution root) that implements the module. r4rr5__init__z.pyrRrR) rr=r<rSr:rZr@r;r+r]) rr"rar[r+rZ module_baserZcheckedrYr\rrr find_moduless*       zbuild_py.find_modulescCsRg}|jr|j|j|jrNx.|jD]$}|j|}|j||}|j|q&W|S)a4Compute the list of all modules that will be built, whether they are specified one-module-at-a-time ('self.py_modules') or by whole packages ('self.packages'). Return a list of tuples (package, module, module_file), just like 'find_modules()' and 'find_package_modules()' do.)rrJrdr"r:rb)rrarrmrrrfind_all_moduless   zbuild_py.find_all_modulescCsdd|jDS)NcSsg|] }|dqS)r5rRr)r6r[rrrr9-sz-build_py.get_source_files..)rf)rrrrget_source_files,szbuild_py.get_source_filescCs$|gt||dg}tjj|S)Nz.py)listr;r+r<)rrCrr[Z outfile_pathrrrget_module_outfile/szbuild_py.get_module_outfiler5cCs|j}g}xx|D]p\}}}|jd}|j|j||}|j||r|jr`|jtjj|dd|j dkr|jtjj||j dqW|dd|j D7}|S)Nr4rE) optimizationrcSs,g|]$\}}}}|D]}tjj||qqSr)r;r+r<)r6rrBrCrDrPrrrr9Cs z(build_py.get_outputs..) rfr=rirr@r importlibutilcache_from_sourcerr%)rr-raZoutputsrr[r\rPrrrr23s"       zbuild_py.get_outputscCsbt|tr|jd}nt|ttfs,td|j|j||}tj j |}|j ||j ||ddS)Nr4z:'package' must be a string (dot-separated), list, or tupler)rL) r&strr=rhtuple TypeErrorrirr;r+rNrMrO)rr[r\rZoutfiledirrrr build_moduleJs    zbuild_py.build_modulecCs.|j}x |D]\}}}|j|||qWdS)N)rdrr)rrarr[r\rrrr.Yszbuild_py.build_modulescCsLxF|jD]<}|j|}|j||}x |D]\}}}|j|||q(WqWdS)N)r"r:rbrr)rrrraZpackage_r[r\rrrr/bs   zbuild_py.build_packagescCstjr|jddSddlm}|j}|dtjkr>|tj}|jrZ||d|j ||j d|j dkr||||j |j ||j ddS)Nz%byte-compiling is disabled, skipping.r)r1r5)rrprefixdry_runrR) sysdont_write_bytecoderXdistutils.utilr1rr;sepr rrtr)rrHr1rsrrrr1vs    zbuild_py.byte_compile)r r r )r r r)rNr)rrr)rrr)r5)__name__ __module__ __qualname__Z descriptionZ user_optionsZboolean_optionsZ negative_optr r,r3r$r?r0r:rZr]rbrdrfrgrir2rrr.r/r1rrrrrs8   '4  rc@seZdZddZddZdS) build_py_2to3cCsLg|_|jr|j|jr*|j|j|j|j|j|jdddS)Nr)r-) updated_filesrr.r"r/r0Zrun_2to3r1r2)rrrrr3s zbuild_py_2to3.runcCs,tj||||}|dr(|jj|d|S)Nr5r)rrrr}r@)rr[r\rresrrrrrszbuild_py_2to3.build_moduleN)ryrzr{r3rrrrrrr|sr|)__doc__r;importlib.utilrkrurZdistutils.corerZdistutils.errorsrwrrZ distutilsrrr|rrrrs   }PK!B2command/__pycache__/install_headers.cpython-36.pycnu[3 \@s$dZddlmZGdddeZdS)zdistutils.command.install_headers Implements the Distutils 'install_headers' command, to install C/C++ header files to the Python include directory.)Commandc@sFeZdZdZddgZdgZdd Zd d Zd d ZddZ ddZ dS)install_headerszinstall C/C++ header files install-dir=d$directory to install header files toforcef-force installation (overwrite existing files)cCsd|_d|_g|_dS)Nr) install_dirroutfiles)selfr 9/usr/lib64/python3.6/distutils/command/install_headers.pyinitialize_optionssz"install_headers.initialize_optionscCs|jddddS)NZinstallrr r)rr )rr)Zset_undefined_options)r r r rfinalize_optionssz install_headers.finalize_optionscCsL|jj}|sdS|j|jx*|D]"}|j||j\}}|jj|q"WdS)N) distributionheadersZmkpathr Z copy_filer append)r rheaderout_r r rrun!s  zinstall_headers.runcCs |jjp gS)N)rr)r r r r get_inputs+szinstall_headers.get_inputscCs|jS)N)r )r r r r get_outputs.szinstall_headers.get_outputsN)rrr)rrr ) __name__ __module__ __qualname__Z descriptionZ user_optionsZboolean_optionsrrrrrr r r rr s rN)__doc__Zdistutils.corerrr r r rs PK![' @@,command/__pycache__/build_ext.cpython-36.pycnu[3 \z@sdZddlZddlZddlZddlZddlmZddlTddlm Z m Z ddlm Z ddl m Z ddlmZdd lmZdd lmZdd lmZejd Zd dZGdddeZdS)zdistutils.command.build_ext Implements the Distutils 'build_ext' command, for building extension modules (currently limited to C extensions, should accommodate C++ extensions ASAP).N)Command)*)customize_compilerget_python_version)get_config_h_filename) newer_group) Extension) get_platform)log) USER_BASEz3^[a-zA-Z_][a-zA-Z_0-9]*(\.[a-zA-Z_][a-zA-Z_0-9]*)*$cCsddlm}|dS)Nr)show_compilers)distutils.ccompilerr )r r3/usr/lib64/python3.6/distutils/command/build_ext.pyr s r c@seZdZdZdejZd`dad d d efdcdddefdddedfdddefdgdhdidjdkdldmdndodpgZd d%d(d1d8gZ d:d2d;e fgZ dd?Z d@dAZdBdCZdDdEZdFdGZdHdIZdJdKZdLdMZejdNdOZdPdQZdRdSZdTdUZdVdWZdXdYZdZd[Zd\d]Zd^d_Zd2S)q build_extz8build C/C++ extensions (compile/link to build directory)z (separated by '%s') build-lib=b(directory for compiled extension modules build-temp=t1directory for temporary files (build by-products)z plat-name=pz>platform name to cross-compile for, if supported (default: %s)inplaceiz=ignore build-lib and put compiled extensions into the source z,directory alongside your pure Python modulesz include-dirs=Iz.list of directories to search for header filesdefine=DC preprocessor macros to defineundef=U!C preprocessor macros to undefine libraries=l!external C libraries to link withz library-dirs=Lz.directories to search for external C librariesrpath=R7directories to search for shared C libraries at runtime link-objects=O2extra explicit link objects to include in the linkdebugg'compile/link with debugging informationforcef2forcibly build everything (ignore file timestamps) compiler=cspecify the compiler type parallel=jnumber of parallel build jobsswig-cppN)make SWIG create C++ files (default is C) swig-opts=!list of SWIG command line optionsswig=path to the SWIG executableuser#add user include, library and rpathz help-compilerzlist available compilerscCsd|_d|_d|_d|_d|_d|_d|_d|_d|_d|_ d|_ d|_ d|_ d|_ d|_d|_d|_d|_d|_d|_d|_dS)Nr) extensions build_lib plat_name build_temprpackage include_dirsdefineundef libraries library_dirsrpath link_objectsr+r.compilerswigswig_cpp swig_optsr=parallel)selfrrrinitialize_optionsjs*zbuild_ext.initialize_optionsc Csddlm}|jdd'd(d)d*d+d,d-|jdkr8|jj|_|jj|_|j}|jd d }|j dkrn|jj pjg|_ t |j t r|j j t j|_ tjtjkr|j jt jjtjd |j j|||kr|j j||jd|jd|jdkrg|_|jdkrg|_nt |jt r&|jj t j|_|jdkr:g|_nt |jt rX|jj t j|_t jdkrT|jjt jjtjdtjtjkr|jjt jjtjd|jrt jj|jd|_nt jj|jd|_|j jt jjtttdd}|r|jj||j dkrd}n|j dd}t jjtjd}|rHt jj||}|jj|tj!dddks|tj!dddkrtj"j#t jjtjdr|jjt jjtjddt$dn |jjd|j%d r|j&s|jj|j%d!n |jjd|j'r|j'j d"}d#d$|D|_'|j(r4|j(j d"|_(|j)dkrHg|_)n|j)j d%|_)|j*rt jjt+d }t jjt+d} t jj,|r|j j|t jj,| r|jj| |jj| t |j-t ryt.|j-|_-Wnt/k rt0d&YnXdS).Nr) sysconfigZbuildr@rBrKr+r.rOrA)Z plat_specificincluderGrJntZlibsZDebugZRelease_homewin32ZPCbuildcygwinatheosbinlibpythonconfig.Py_ENABLE_SHAREDLIBDIR,cSsg|] }|dfqS)1r).0Zsymbolrrr sz.build_ext.finalize_options.. zparallel should be an integer)r@r@)rBrB)rKrK)r+r+)r.r.)rOrO)rArA)1 distutilsrRZset_undefined_optionsrC distributionZ ext_packageZ ext_modulesr?Zget_python_incrD isinstancestrsplitospathsepsys exec_prefixbase_exec_prefixappendpathjoinZensure_string_listrGrHrInameprefixr+rBdirnamergetattrrAplatform executable startswithrget_config_varZ python_buildrErFrNr=r isdirrOint ValueErrorZDistutilsOptionError) rPrRZ py_includeZplat_py_include _sys_homesuffixZnew_libZdefinesZ user_includeZuser_librrrfinalize_optionss                    (         zbuild_ext.finalize_optionscCstddlm}|jsdS|jjrL|jd}|jj|jp:g|j j |j ||j |j |j|jd|_ t|j tjdkr|jtkr|j j|j|jdk r|j j|j|jdk rx |jD]\}}|j j||qW|jdk rx|jD]}|j j|qW|jdk r|j j|j|j dk r4|j j|j |jdk rN|j j|j|j dk rh|j j!|j |j"dS)Nr) new_compiler build_clib)rKverbosedry_runr.rU)#r rr?riZhas_c_librariesget_finalized_commandrGextendZget_library_namesrHrrrrKrrr.rrmrurAr Z initializerDZset_include_dirsrEZ define_macrorFZundefine_macroZ set_librariesZset_library_dirsrIZset_runtime_library_dirsrJZset_link_objectsbuild_extensions)rPrrruvaluemacrorrrruns>             z build_ext.runc Cst|tstdxnt|D]`\}}t|tr4qt|t sLt|dkrTtd|\}}tjd|t|t ozt j |stdt|t stdt||d}x*dD]"}|j |}|dk rt|||qW|j d|_d|krtjd|j d}|rxg|_g|_xj|D]b} t| to,t| dks8tdt| dkrX|jj| dnt| dkr|jj| qW|||<qWdS)aEnsure that the list of extensions (presumably provided as a command option 'extensions') is valid, i.e. it is a list of Extension objects. We also support the old-style list of 2-tuples, where the tuples are (ext_name, build_info), which are converted to Extension instances here. Raise DistutilsSetupError if the structure is invalid anywhere; just returns otherwise. z:'ext_modules' option must be a list of Extension instanceszMeach element of 'ext_modules' option must be an Extension instance or 2-tuplezvold-style (ext_name, build_info) tuple found in ext_modules for extension '%s' -- please convert to Extension instancezRfirst element of each tuple in 'ext_modules' must be the extension name (a string)zOsecond element of each tuple in 'ext_modules' must be a dictionary (build info)sourcesrDrHrG extra_objectsextra_compile_argsextra_link_argsNrIZdef_filez9'def_file' element of build info dict no longer supportedmacrosrSz9'macros' element of build info dict must be 1- or 2-tupler)rDrHrGrrr)rSr)rjlistDistutilsSetupError enumeratertuplelenr warnrkextension_name_rematchdictgetsetattrruntime_library_dirs define_macros undef_macrosrr) rPr?rextext_nameZ build_infokeyvalrrrrrcheck_extensions_listUsT           zbuild_ext.check_extensions_listcCs0|j|jg}x|jD]}|j|jqW|S)N)rr?rr)rP filenamesrrrrget_source_filess   zbuild_ext.get_source_filescCs6|j|jg}x |jD]}|j|j|jqW|S)N)rr?rrget_ext_fullpathru)rPZoutputsrrrr get_outputss   zbuild_ext.get_outputscCs(|j|j|jr|jn|jdS)N)rr?rO_build_extensions_parallel_build_extensions_serial)rPrrrrs  zbuild_ext.build_extensionscsj}jdkrtj}yddlm}Wntk r@d}YnX|dkrVjdS||dTfddjD}x6tj|D]&\}}j ||j WdQRXqWWdQRXdS)NTr)ThreadPoolExecutor)Z max_workerscsg|]}jj|qSr)Zsubmitbuild_extension)rer)executorrPrrrfsz8build_ext._build_extensions_parallel..) rOrm cpu_countZconcurrent.futuresr ImportErrorrr?zip_filter_build_errorsresult)rPZworkersrZfuturesrZfutr)rrPrrs       z$build_ext._build_extensions_parallelc Cs4x.|jD]$}|j||j|WdQRXqWdS)N)r?rr)rPrrrrrs  z"build_ext._build_extensions_serialccsTy dVWnDtttfk rN}z"|js*|jd|j|fWYdd}~XnXdS)Nz"building extension "%s" failed: %s)ZCCompilerErrorZDistutilsErrorZ CompileErrorZoptionalrru)rPrerrrrs zbuild_ext._filter_build_errorsc CsX|j}|dkst|ttf r,td|jt|}|j|j}||j}|jpZt ||dsnt j d|jdSt j d|j|j ||}|jpg}|jdd}x|jD]}|j|fqW|jj||j||j|j ||jd}|dd|_|jr|j|j|jp g}|jp|jj|} |jj|||j||j|j||j ||j |j| d dS)Nzjin 'ext_modules' option (extension '%s'), 'sources' must be present and must be a list of source filenamesZnewerz$skipping '%s' extension (up-to-date)zbuilding '%s' extension)Z output_dirrrDr+extra_postargsdepends)rGrHrrexport_symbolsr+rBZ target_lang)!rrjrrrrurrr.rr r+info swig_sourcesrrrrrrKcompilerBrDZ_built_objectsrrrlanguageZdetect_languageZlink_shared_object get_librariesrHrget_export_symbols) rPrrext_pathrZ extra_argsrrFZobjectsrrrrrsN         zbuild_ext.build_extensioncCs2g}g}i}|jrtjd|js6d|jks6d|jkr        zbuild_ext.swig_sourcescCs`tjdkrdStjdkrNxBd D]&}tjjd|d}tjj|r|SqWdSntd tjd S) zReturn the name of the SWIG executable. On Unix, this is just "swig" -- it should be in the PATH. Tries a bit harder on Windows. posixrLrU1.31.21.1z c:\swig%szswig.exez>I don't know how to find (much less run) SWIG on platform '%s'N)rrr)rmrursrtisfileZDistutilsPlatformError)rPZversfnrrrrfs    zbuild_ext.find_swigcCs|j|}|jd}|j|d}|jsRtjj|dd|g}tjj|j|Sdj|dd}|jd}tjj |j |}tjj||S) zReturns the path of the filename for a given extension. The file is located in `build_lib` or directly in the package (inplace option). r`rSNrbuild_pyrrr) get_ext_fullnamerlget_ext_filenamerrmrsrtr@rabspathZget_package_dir)rPrfullnameZmodpathfilenamerCrZ package_dirrrrr~s   zbuild_ext.get_ext_fullpathcCs |jdkr|S|jd|SdS)zSReturns the fullname of a given extension name. Adds the `package.` prefixNr`)rC)rPrrrrrs zbuild_ext.get_ext_fullnamecCs.ddlm}|jd}|d}tjj||S)zConvert the name of an extension (eg. "foo.bar") into the name of the file from which it will be loaded (eg. "foo/bar.so", or "foo\bar.pyd"). r)r|r` EXT_SUFFIX)distutils.sysconfigr|rlrmrsrt)rPrr|rZ ext_suffixrrrrs  zbuild_ext.get_ext_filenamecCs0d|jjdd}||jkr*|jj||jS)aReturn the list of symbols that a shared extension has to export. This either uses 'ext.export_symbols' or, if it's not provided, "PyInit_" + module_name. Only relevant on Windows, where the .pyd file (DLL) must export the module "PyInit_" function. ZPyInit_r`rSr)rurlrrr)rPrZ initfunc_namerrrrs  zbuild_ext.get_export_symbolscCstjdkrfddlm}t|j|s\d}|jr4|d}|tjd?tjd?d@f}|j|gS|jSnRtjd d d krd }|tjd?tjd?d@f}|j|gStjd d d kr>ddl m }d }|tjd?tjd?d@f}g}xB|j dj D]0}|j dr|j|dd n |j|qW|j|dg|StjdkrP|jStjd ddkrj|jSddl m }|j drdjtjd?tjd?d@|j d}|j|gS|jSd S)zReturn the list of libraries to link against when building a shared extension. On most platforms, this is just 'ext.libraries'; on Windows, we add the Python library (eg. python20.dll). rWr) MSVCCompilerz python%d%dZ_dNrYrZz python%d.%dr[)rRSHLIBSz-lrmdarwinaixraz python{}.{}{}ABIFLAGS)roryZdistutils._msvccompilerrrjrKr+ hexversionrGrhrRr|rlr{rrformat)rPrrtemplateZ pythonlibrRZextrar]rrrrsJ             zbuild_ext.get_libraries)rrr)rrriignore build-lib and put compiled extensions into the source directory alongside your pure Python modules)rrr)rrr)rrr )r!r"r#)r%r&r')r(r)r*)r+r,r-)r.r/r0)r1r2r3)r4r5r6)r7Nr8)r9Nr:)r;Nr<)r=Nr>) __name__ __module__ __qualname__Z descriptionrmrnZsep_byr Z user_optionsZboolean_optionsr Z help_optionsrQrrrrrrrr contextlibcontextmanagerrrrrrrrrrrrrrr!s  @N  K6   r)__doc__rrmreroZdistutils.corerZdistutils.errorsrrrrZdistutils.dep_utilrZdistutils.extensionrZdistutils.utilr rhr Zsiter rrr rrrrrs"       PK!+command/__pycache__/__init__.cpython-36.pycnu[3 \@s2dZddddddddd d d d d ddddddgZdS)z\distutils.command Package containing implementation of all the standard Distutils commands.ZbuildZbuild_pyZ build_extZ build_clibZ build_scriptsZcleanZinstallZ install_libZinstall_headersZinstall_scriptsZ install_dataZsdistregisterZbdistZ bdist_dumbZ bdist_rpmZ bdist_wininstZcheckZuploadN)__doc____all__rr2/usr/lib64/python3.6/distutils/command/__init__.pys&PK!1command/__pycache__/__init__.cpython-36.opt-1.pycnu[3 \@s2dZddddddddd d d d d ddddddgZdS)z\distutils.command Package containing implementation of all the standard Distutils commands.ZbuildZbuild_pyZ build_extZ build_clibZ build_scriptsZcleanZinstallZ install_libZinstall_headersZinstall_scriptsZ install_dataZsdistregisterZbdistZ bdist_dumbZ bdist_rpmZ bdist_wininstZcheckZuploadN)__doc____all__rr2/usr/lib64/python3.6/distutils/command/__init__.pys&PK!1command/__pycache__/register.cpython-36.opt-2.pycnu[3 \-@s`ddlZddlZddlZddlZddlmZddlmZddl Tddl m Z GdddeZ dS)N)warn) PyPIRCCommand)*)logc@seZdZdZejdd gZejdddgZdd d fgZd d Zd dZ ddZ ddZ ddZ ddZ ddZddZddZd!ddZdS)"registerz7register the distribution with the Python package indexlist-classifiersN list the valid Trove classifiersstrictBWill stop the registering if the meta-data are not fully compliantverifycheckcCsdS)NT)selfr r 2/usr/lib64/python3.6/distutils/command/register.pyszregister.cCstj|d|_d|_dS)Nr)rinitialize_optionslist_classifiersr )rr r rrs zregister.initialize_optionscCs*tj|d|jfdd}||jjd<dS)Nr)r restructuredtextr )rr)rfinalize_optionsr distributionZcommand_options)rZ check_optionsr r rr$s zregister.finalize_optionscCsX|j|jx|jD]}|j|qW|jr<|jn|jrL|jn|jdS)N) r _set_configZget_sub_commandsZ run_commandZdry_runverify_metadatar classifiers send_metadata)rZcmd_namer r rrun+s  z register.runcCs8tdt|jjd}|j|j|_d|_|jdS)Nzddistutils.command.register.check_metadata is deprecated, use the check command insteadr r)rPendingDeprecationWarningrZget_command_objZensure_finalizedr rr)rr r r rcheck_metadata:s zregister.check_metadatacCsz|j}|ikr@|d|_|d|_|d|_|d|_d|_n6|jd|jfkr^td|j|jdkrp|j|_d|_dS) Nusernamepassword repositoryrealmTZpypiz%s not found in .pypircF)Z _read_pypircrrr r! has_configZDEFAULT_REPOSITORY ValueError)rconfigr r rrDs     zregister._set_configcCs*|jd}tjj|}tj|j|dS)Nz?:action=list_classifiers)r urllibrequestZurlopenrinfo_read_pypi_response)rZurlZresponser r rrUs  zregister.classifierscCs&|j|jd\}}tjd||dS)Nr zServer response (%s): %s)post_to_serverbuild_post_datarr')rcoderesultr r rr\szregister.verify_metadatac Cs|jrd}|j}|j}n d}d}}dj}x:||krf|jdtjt}|sTd}q.||kr.tdq.W|dkr|x|std}qtWx|st j d}qWt j j }t j j|jd }|j|j||||j|jd |\}}|jd ||ftj|d kr|jr||j_nj|jd tj|jd|jtjd}x&|jdkr\td}|s8d}q8W|jdkr|j||n|dkrddi} d| d<| d<| d<d| d<x| dstd| d<qWx| d| dkrNx| dst j d| d<qWx| dst j d| d<qW| d| dkrd| d<d| d<tdqWx| dsltd| d<qRW|j| \}}|d krtjd ||ntjdtjdnT|d krdd!i} d| d<x| dstd"| d<qW|j| \}}tjd ||dS)#N1xz1 2 3 4zWe need to know who you are, so please choose either: 1. use your existing login, 2. register as a new user, 3. have the server generate a new password for you (and email it to you), or 4. quit Your selection [default 1]: z&Please choose one of the four options!z Username: z Password: rZsubmitzServer response (%s): %szAI can store your PyPI login so future submissions will be faster.z (the login will be stored in %s)XZynzSave your login (y/N)?ny2z:actionusernamerZemailZconfirmz Confirm: z!Password and confirm don't match!z EMail: z"You will receive an email shortly.z7Follow the instructions in it to complete registration.3Zpassword_resetzYour email address: )r"rrsplitannouncerINFOinputprintgetpassr%r&ZHTTPPasswordMgrparseZurlparser Z add_passwordr!r)r*rZ _get_rc_filelowerZ _store_pypircr') rZchoicerrchoicesauthhostr+r,datar r rrcs                     zregister.send_metadatacCs|jj}|d|j|j|j|j|j|j|j|j |j |j |j |j |j|j|jd}|ds|ds|drd|d<|S)Nz1.0)z:actionmetadata_versionr6versionZsummaryZ home_pageZauthorZ author_emaillicense descriptionkeywordsplatformrZ download_urlprovidesrequires obsoletesrJrKrLz1.1rD)rZmetadataZget_nameZ get_versionZget_descriptionZget_urlZ get_contactZget_contact_emailZ get_licenceZget_long_descriptionZ get_keywordsZ get_platformsZget_classifiersZget_download_urlZ get_providesZ get_requiresZ get_obsoletes)ractionmetarCr r rr*s* zregister.build_post_datacCsd|kr$|jd|d|jftjd}d|}|d}tj}x|jD]\}}t|tgtffkrp|g}xZ|D]R}t|}|j ||j d||j d|j ||rv|dd krv|j d qvWqJW|j ||j d |j j d }d |tt |d } t jj|j|| } t jjt jj|d} d}y| j| } Wnxt jjk r} z$|jrl| jj}| j| jf} WYdd} ~ XnJt jjk r} zdt| f} WYdd} ~ XnX|jr|j| }d} |jrd jdd|ddf}|j|tj| S)Nr6zRegistering %s to %sz3--------------GHSKFJDLGDS7543FJKLFHRE75642756743254z --z--z* Content-Disposition: form-data; name="%s"z r  zutf-8z/multipart/form-data; boundary=%s; charset=utf-8)z Content-typezContent-length)Z password_mgrr/ir0OK-K)r0rQ)r9r rr:ioStringIOitemstypestrwritegetvalueencodelenr%r&ZRequestZ build_openerZHTTPBasicAuthHandleropenerrorZ HTTPErrorZ show_responsefpreadr+msgZURLErrorr(join)rrCrAboundaryZ sep_boundaryZ end_boundaryZbodykeyvalueZheadersZreqopenerr,erbr r rr)sV         zregister.post_to_server)rNr)r Nr )N)__name__ __module__ __qualname__rGrZ user_optionsZboolean_optionsZ sub_commandsrrrrrrrrr*r)r r r rrs&  zr) r=rUZ urllib.parser%Zurllib.requestwarningsrZdistutils.corerZdistutils.errorsZ distutilsrrr r r rs   PK!Fq +command/__pycache__/register.cpython-36.pycnu[3 \-@sddZddlZddlZddlZddlZddlmZddlm Z ddl Tddl m Z Gddde Z dS) zhdistutils.command.register Implements the Distutils 'register' command (register with the repository). N)warn) PyPIRCCommand)*)logc@seZdZdZejdd gZejdddgZdd d fgZd d Zd dZ ddZ ddZ ddZ ddZ ddZddZddZd!ddZdS)"registerz7register the distribution with the Python package indexlist-classifiersN list the valid Trove classifiersstrictBWill stop the registering if the meta-data are not fully compliantverifycheckcCsdS)NT)selfr r 2/usr/lib64/python3.6/distutils/command/register.pyszregister.cCstj|d|_d|_dS)Nr)rinitialize_optionslist_classifiersr )rr r rrs zregister.initialize_optionscCs*tj|d|jfdd}||jjd<dS)Nr)r restructuredtextr )rr)rfinalize_optionsr distributionZcommand_options)rZ check_optionsr r rr$s zregister.finalize_optionscCsX|j|jx|jD]}|j|qW|jr<|jn|jrL|jn|jdS)N) r _set_configZget_sub_commandsZ run_commandZdry_runverify_metadatar classifiers send_metadata)rZcmd_namer r rrun+s  z register.runcCs8tdt|jjd}|j|j|_d|_|jdS)zDeprecated API.zddistutils.command.register.check_metadata is deprecated, use the check command insteadr rN)rPendingDeprecationWarningrZget_command_objZensure_finalizedr rr)rr r r rcheck_metadata:s zregister.check_metadatacCsz|j}|ikr@|d|_|d|_|d|_|d|_d|_n6|jd|jfkr^td|j|jdkrp|j|_d|_d S) z: Reads the configuration file and set attributes. usernamepassword repositoryrealmTZpypiz%s not found in .pypircFN)Z _read_pypircrrr r! has_configZDEFAULT_REPOSITORY ValueError)rconfigr r rrDs     zregister._set_configcCs*|jd}tjj|}tj|j|dS)z8 Fetch the list of classifiers from the server. z?:action=list_classifiersN)r urllibrequestZurlopenrinfo_read_pypi_response)rZurlZresponser r rrUs  zregister.classifierscCs&|j|jd\}}tjd||dS)zF Send the metadata to the package index server to be checked. r zServer response (%s): %sN)post_to_serverbuild_post_datarr')rcoderesultr r rr\szregister.verify_metadatac Cs|jrd}|j}|j}n d}d}}dj}x:||krf|jdtjt}|sTd}q.||kr.tdq.W|dkr|x|std}qtWx|st j d}qWt j j }t j j|jd }|j|j||||j|jd |\}}|jd ||ftj|d kr|jr||j_nj|jd tj|jd|jtjd}x&|jdkr\td}|s8d}q8W|jdkr|j||n|dkrddi} d| d<| d<| d<d| d<x| dstd| d<qWx| d| dkrNx| dst j d| d<qWx| dst j d| d<qW| d| dkrd| d<d| d<tdqWx| dsltd| d<qRW|j| \}}|d krtjd ||ntjdtjd nT|d!krdd"i} d| d<x| dstd#| d<qW|j| \}}tjd ||dS)$a_ Send the metadata to the package index server. Well, do the following: 1. figure who the user is, and then 2. send the data as a Basic auth'ed POST. First we try to read the username/password from $HOME/.pypirc, which is a ConfigParser-formatted file with a section [distutils] containing username and password entries (both in clear text). Eg: [distutils] index-servers = pypi [pypi] username: fred password: sekrit Otherwise, to figure who the user is, we offer the user three choices: 1. use existing login, 2. register as a new user, or 3. set the password to a random string and email the user. 1xz1 2 3 4zWe need to know who you are, so please choose either: 1. use your existing login, 2. register as a new user, 3. have the server generate a new password for you (and email it to you), or 4. quit Your selection [default 1]: z&Please choose one of the four options!z Username: z Password: rZsubmitzServer response (%s): %szAI can store your PyPI login so future submissions will be faster.z (the login will be stored in %s)XZynzSave your login (y/N)?ny2z:actionusernamerZemailNZconfirmz Confirm: z!Password and confirm don't match!z EMail: z"You will receive an email shortly.z7Follow the instructions in it to complete registration.3Zpassword_resetzYour email address: )r"rrsplitannouncerINFOinputprintgetpassr%r&ZHTTPPasswordMgrparseZurlparser Z add_passwordr!r)r*rZ _get_rc_filelowerZ _store_pypircr') rZchoicerrchoicesauthhostr+r,datar r rrcs                     zregister.send_metadatacCs|jj}|d|j|j|j|j|j|j|j|j |j |j |j |j |j|j|jd}|ds|ds|drd|d<|S)Nz1.0)z:actionmetadata_versionr6versionZsummaryZ home_pageZauthorZ author_emaillicense descriptionkeywordsplatformrZ download_urlprovidesrequires obsoletesrJrKrLz1.1rD)rZmetadataZget_nameZ get_versionZget_descriptionZget_urlZ get_contactZget_contact_emailZ get_licenceZget_long_descriptionZ get_keywordsZ get_platformsZget_classifiersZget_download_urlZ get_providesZ get_requiresZ get_obsoletes)ractionmetarCr r rr*s* zregister.build_post_datacCsd|kr$|jd|d|jftjd}d|}|d}tj}x|jD]\}}t|tgtffkrp|g}xZ|D]R}t|}|j ||j d||j d|j ||rv|dd krv|j d qvWqJW|j ||j d |j j d }d |tt |d } t jj|j|| } t jjt jj|d} d}y| j| } Wnxt jjk r} z$|jrl| jj}| j| jf} WYdd} ~ XnJt jjk r} zdt| f} WYdd} ~ XnX|jr|j| }d} |jrd jdd|ddf}|j|tj| S)zC Post a query to the server, and return a string response. r6zRegistering %s to %sz3--------------GHSKFJDLGDS7543FJKLFHRE75642756743254z --z--z* Content-Disposition: form-data; name="%s"z r  zutf-8z/multipart/form-data; boundary=%s; charset=utf-8)z Content-typezContent-length)Z password_mgrr/Nir0OK-K)r0rQ)r9r rr:ioStringIOitemstypestrwritegetvalueencodelenr%r&ZRequestZ build_openerZHTTPBasicAuthHandleropenerrorZ HTTPErrorZ show_responsefpreadr+msgZURLErrorr(join)rrCrAboundaryZ sep_boundaryZ end_boundaryZbodykeyvalueZheadersZreqopenerr,erbr r rr)sV         zregister.post_to_server)rNr)r Nr )N)__name__ __module__ __qualname__rGrZ user_optionsZboolean_optionsZ sub_commandsrrrrrrrrr*r)r r r rrs&  zr)__doc__r=rUZ urllib.parser%Zurllib.requestwarningsrZdistutils.corerZdistutils.errorsZ distutilsrrr r r rs   PK!kk3command/__pycache__/build_clib.cpython-36.opt-1.pycnu[3 \V@sTdZddlZddlmZddlTddlmZddlmZddZ Gd d d eZ dS) zdistutils.command.build_clib Implements the Distutils 'build_clib' command, to build a C/C++ library that is included in the module distribution and needed by an extension module.N)Command)*)customize_compiler)logcCsddlm}|dS)Nr)show_compilers)distutils.ccompilerr)rr4/usr/lib64/python3.6/distutils/command/build_clib.pyrs rc@sleZdZdZd"d#d$d%d&gZdd gZdddefgZddZddZ ddZ ddZ ddZ ddZ d d!ZdS)' build_clibz/build C/C++ libraries used by Python extensions build-clib=b%directory to build C/C++ libraries to build-temp=t,directory to put temporary build by-productsdebugg"compile with debugging informationforcef2forcibly build everything (ignore file timestamps) compiler=cspecify the compiler typez help-compilerNzlist available compilerscCs:d|_d|_d|_d|_d|_d|_d|_d|_d|_dS)Nr) r build_temp libraries include_dirsdefineundefrrcompiler)selfrrr initialize_options4szbuild_clib.initialize_optionscCsh|jdddd d d |jj|_|jr0|j|j|jdkrH|jjpDg|_t|jtrd|jjtj |_dS) NZbuildrr rrr)rr )rr)rr)rr)rr) Zset_undefined_optionsZ distributionrcheck_library_listr isinstancestrsplitospathsep)r rrr finalize_optionsDs    zbuild_clib.finalize_optionscCs|js dSddlm}||j|j|jd|_t|j|jdk rN|jj|j|j dk rzx |j D]\}}|jj ||q`W|j dk rx|j D]}|jj |qW|j |jdS)Nr) new_compiler)rdry_runr)rrr)rr*rrrZset_include_dirsrZ define_macrorZundefine_macrobuild_libraries)r r)namevalueZmacrorrr run^s        zbuild_clib.runcCst|tstdx|D]|}t|t rs    PK!j |3|30command/__pycache__/install.cpython-36.opt-2.pycnu[3 Iij@sddlZddlZddlmZddlmZddlmZddlm Z ddl m Z ddl m Z ddlmZmZmZdd lmZdd l mZdd lmZdd lmZd ZddddddZddddddddddddedZerdddddded<ddd d!dded"<d*ZGd(d)d)eZdS)+N)log)Command)DEBUG)get_config_vars)DistutilsPlatformError) write_file) convert_path subst_vars change_root) get_platform)DistutilsOptionError) USER_BASE) USER_SITETz$base/Lib/site-packagesz$base/Include/$dist_namez $base/Scriptsz$base)purelibplatlibheadersscriptsdataz/$base/lib/python$py_version_short/site-packagesz5$platbase/lib64/python$py_version_short/site-packagesz9$base/include/python$py_version_short$abiflags/$dist_namez $base/binz$base/lib/pythonz$base/lib64/pythonz$base/include/python/$dist_name) unix_prefix unix_homentz $usersitez4$userbase/Python$py_version_nodot/Include/$dist_namez)$userbase/Python$py_version_nodot/Scriptsz $userbasent_userz=$userbase/include/python$py_version_short$abiflags/$dist_namez $userbase/bin unix_userrrrrrc@s:eZdZdZd_d`dadbdddedfdgdidjdkdldmdndodpdqdrgZdd%d(gZer`ejd,dd-efejd,d diZ d.d/Z d0d1Z d2d3Z d4d5Z d6d7Zd8d9Zd:d;Zdd?Zd@dAZdBdCZdDdEZdFdGZdHdIZdJdKZdLdMZdNdOZdPdQZdRdSZdTdUZdVdWZdXefdYefdZefd[efd\d]d^fgZdS)sinstallz'install everything from build directoryprefix=Ninstallation prefix exec-prefix=.(Unix only) prefix for platform-specific fileshome=+(Unix only) home directory to install under install-base=;base installation directory (instead of --prefix or --home)install-platbase=z8base installation directory for platform-specific files z$(instead of --exec-prefix or --home)root=|jD]2}|j|}x"|jD]}||kr&|j|q&WqW|jrl|jrl|jtjj|j |jd|S)Nz.pth) rget_finalized_commandrappendrrQrhr}r~r|)rWrrcmdrrXrXrYrbs  zinstall.get_outputscCs2g}x(|jD]}|j|}|j|jqW|S)N)rrextend get_inputs)rWZinputsrrrXrXrYrss  zinstall.get_inputscCs|jjp|jjS)N)rrZhas_pure_modulesZhas_ext_modules)rWrXrXrYhas_libs zinstall.has_libcCs |jjS)N)rr has_headers)rWrXrXrYrszinstall.has_headerscCs |jjS)N)rr has_scripts)rWrXrXrYrszinstall.has_scriptscCs |jjS)N)rrZhas_data_files)rWrXrXrYhas_dataszinstall.has_datarJrIrKrLZinstall_egg_infocCsdS)NTrX)rWrXrXrYszinstall.)rNr)rNr)rNr)r Nr!\base installation directory for platform-specific files (instead of --exec-prefix or --home))r"Nr)r#Nr$)r%Nr&)r'Nr(ginstallation directory for all module distributions (overrides --install-purelib and --install-platlib))r)Nr)r*Nr+)r,Nr-)r.Nr/)r0r1r2)r3Nr4)r5r6r7)r8r9r:)r;Nr<)r=Nr>) __name__ __module__ __qualname__Z descriptionrZboolean_optionsrurrrrZrrkrlrmrrrvrxrzr{rryrrrrrrrrZ sub_commandsrXrXrXrYrIs   N3  " , r)rrrrr)rnrhZ distutilsrZdistutils.corerZdistutils.debugrZdistutils.sysconfigrZdistutils.errorsrZdistutils.file_utilrZdistutils.utilrr r r r Zsiter rruZWINDOWS_SCHEMErrrrXrXrXrYsT            PK!zL(command/__pycache__/bdist.cpython-36.pycnu[3 \@sHdZddlZddlmZddlTddlmZddZGdd d eZdS) zidistutils.command.bdist Implements the Distutils 'bdist' command (create a built [binary] distribution).N)Command)*) get_platformcCsTddlm}g}x,tjD]"}|jd|dtj|dfqW||}|jddS)zFPrint list of available formats (arguments to "--format" option). r) FancyGetoptzformats=Nz'List of available distribution formats:)Zdistutils.fancy_getoptrbdistformat_commandsappendformat_commandZ print_help)rformatsformatZpretty_printerr //usr/lib64/python3.6/distutils/command/bdist.py show_formats s   rc @seZdZdZd6dddefd7d8d9d:d;gZdgZdd defgZdd?d@dAdBdCdDdEd/ Z d0d1Z d2d3Zd4d5Zd S)Frz$create a built (binary) distribution bdist-base=b4temporary directory for creating built distributionsz plat-name=pz;platform name to embed in generated filenames (default: %s)formats=N/formats for distribution (comma-separated list) dist-dir=d=directory to put final built distributions in [default: dist] skip-build2skip rebuilding everything (for testing/debugging)owner=u@Owner name used when creating a tar file [default: current user]group=gAGroup name used when creating a tar file [default: current group]z help-formatsz$lists available distribution formats bdist_rpmgztarzip)posixntrpmbztarxztarztartarwininstmsiRPM distribution bdist_dumbgzip'ed tar filebzip2'ed tar filexz'ed tar filecompressed tar filetar file bdist_wininstWindows executable installerZIP file bdist_msiMicrosoft Installer) r&r"r'r(r)r*r+r#r,cCs.d|_d|_d|_d|_d|_d|_d|_dS)Nr) bdist_base plat_namer dist_dir skip_buildgroupowner)selfr r rinitialize_optionsQszbdist.initialize_optionsc Cs|jdkr(|jrt|_n|jdj|_|jdkrT|jdj}tjj|d|j|_|j d|j dkry|j tj g|_ Wn"t k rtdtj YnX|jdkrd|_dS)NZbuildzbdist.r z;don't know how to create built distributions on platform %sZdist)r:r<rZget_finalized_commandr9 build_baseospathjoinZensure_string_listr default_formatnameKeyErrorZDistutilsPlatformErrorr;)r?rAr r rfinalize_optionsZs$       zbdist.finalize_optionsc Csg}xH|jD]>}y|j|j|dWq tk rHtd|Yq Xq Wxztt|jD]h}||}|j|}||jkr|j||_ |dkr|j |_ |j |_ |||ddkrd|_ |j |q^WdS)Nrzinvalid format '%s'r.r)r r r rGZDistutilsOptionErrorrangelenZreinitialize_commandno_format_optionr r>r=Z keep_tempZ run_command)r?Zcommandsr iZcmd_nameZsub_cmdr r rrunvs"    z bdist.run)rrr)rNr)rrr)rNr)rrr)rrr )r!)r!r-)r.r/)r.r0)r.r1)r.r2)r.r3)r4r5)r.r6)r7r8)__name__ __module__ __qualname__Z descriptionrZ user_optionsZboolean_optionsrZ help_optionsrKrErr r@rHrMr r r rrsJ    r) __doc__rBZdistutils.corerZdistutils.errorsZdistutils.utilrrrr r r rs    PK!Sn 3command/__pycache__/bdist_dumb.cpython-36.opt-2.pycnu[3 \1@sdddlZddlmZddlmZddlmZmZddlTddl m Z ddl m Z Gdd d eZ dS) N)Command) get_platform) remove_treeensure_relative)*)get_python_version)logc @s^eZdZdZd%dddefd&d(d)d*d+d,d-g Zd ddgZdddZdd Zd!d"Z d#d$Z dS). bdist_dumbz"create a "dumb" built distribution bdist-dir=d1temporary directory for creating the distributionz plat-name=pz;platform name to embed in generated filenames (default: %s)format=f>archive format to create (tar, gztar, bztar, xztar, ztar, zip) keep-tempkz/keep the pseudo-installation tree around after z!creating the distribution archive dist-dir=-directory to put final built distributions in skip-buildN2skip rebuilding everything (for testing/debugging)relative7build the archive using relative paths (default: false)owner=u@Owner name used when creating a tar file [default: current user]group=gAGroup name used when creating a tar file [default: current group]Zgztarzip)posixntcCs:d|_d|_d|_d|_d|_d|_d|_d|_d|_dS)Nr) bdist_dir plat_nameformat keep_tempdist_dir skip_buildrownergroup)selfr+4/usr/lib64/python3.6/distutils/command/bdist_dumb.pyinitialize_options2szbdist_dumb.initialize_optionscCsz|jdkr&|jdj}tjj|d|_|jdkrfy|jtj|_Wn"t k rdt dtjYnX|j dddd dS) NZbdistZdumbz@don't know how to create dumb built distributions on platform %sr&r#r')r&r&)r#r#)r'r') r"Zget_finalized_command bdist_baseospathjoinr$default_formatnameKeyErrorDistutilsPlatformErrorZset_undefined_options)r*r.r+r+r,finalize_options=s   zbdist_dumb.finalize_optionscCs(|js|jd|jddd}|j|_|j|_d|_tjd|j|jdd|jj |j f}t j j |j|}|js~|j}nJ|jjr|j|jkrtdt|jt|jfnt j j |jt|j}|j||j||j|jd }|jjrt}nd }|jjjd ||f|js$t|j|jd dS) NZbuildinstall)Zreinit_subcommandsrzinstalling to %sz%s.%szScan't make a dumb built distribution where base and platbase are different (%s, %s))Zroot_dirr(r)anyr )dry_run) r'Z run_commandZreinitialize_commandr"rootZwarn_dirrinfoZ distributionZ get_fullnamer#r/r0r1r&rZhas_ext_modulesZ install_baseZinstall_platbaser5reprrZ make_archiver$r(r)rZ dist_filesappendr%rr:)r*r7Zarchive_basenameZpseudoinstall_rootZ archive_rootfilenameZ pyversionr+r+r,runOs>          zbdist_dumb.run)r r r )rrrPkeep the pseudo-installation tree around after creating the distribution archive)rrrA)rr r)rNr)rNr)rrr)rrr) __name__ __module__ __qualname__Z descriptionrZ user_optionsZboolean_optionsr2r-r6r@r+r+r+r,r s6  r )r/Zdistutils.corerZdistutils.utilrZdistutils.dir_utilrrZdistutils.errorsZdistutils.sysconfigrZ distutilsrr r+r+r+r,s    PK!:.so o 6command/__pycache__/bdist_wininst.cpython-36.opt-1.pycnu[3 Ii<@spdZddlZddlZddlmZddlmZddlmZm Z ddl Tddl m Z ddl mZGd d d eZdS) zzdistutils.command.bdist_wininst Implements the Distutils 'bdist_wininst' command: create a windows installer exe-program.N)Command) get_platform) create_tree remove_tree)*)get_python_version)logc@seZdZdZd5dddefd7d9d:d;dd?d@dAdBg ZddddgZejd&kZ d'd(Z d)d*Z d+d,Z d-d.Z dCd/d0Zd1d2Zd3d4ZdS)D bdist_wininstz-create an executable installer for MS Windows bdist-dir=N1temporary directory for creating the distributionz plat-name=pz;platform name to embed in generated filenames (default: %s) keep-tempkz/keep the pseudo-installation tree around after z!creating the distribution archivetarget-version=z!require a specific python versionz on the target systemno-target-compilec/do not compile .py to .pyc on the target systemno-target-optimizeo;do not compile .py to .pyo (optimized) on the target system dist-dir=d-directory to put final built distributions inbitmap=b>bitmap to use for the installer instead of python-powered logotitle=t?title to display on the installer background instead of default skip-build2skip rebuilding everything (for testing/debugging)install-script=Ubasename of installation script to be run after installation or before deinstallationpre-install-script={Fully qualified filename of a script to be run before any files are installed. This script need not be in the distributionuser-access-control=specify Vista's UAC handling - 'none'/default=no handling, 'auto'=use UAC if target Python installed for all users, 'force'=always use UACwin32cCsRd|_d|_d|_d|_d|_d|_d|_d|_d|_d|_ d|_ d|_ d|_ dS)Nr) bdist_dir plat_name keep_tempno_target_compileno_target_optimizetarget_versiondist_dirbitmaptitle skip_buildinstall_scriptpre_install_scriptuser_access_control)selfr67/usr/lib64/python3.6/distutils/command/bdist_wininst.pyinitialize_options=sz bdist_wininst.initialize_optionscCs|jdd |jdkrR|jr6|jr6|jjd}|j|_|jdj}tj j |d|_|j s^d|_ |j r|jj rt }|j r|j |krtd|f||_ |jdd d |jrx2|jjD]}|jtj j|krPqWtd|jdS) Nbdistr1ZwininstzMtarget version can only be %s, or the '--skip-build' option must be specifiedr.r)z(install_script '%s' not found in scripts)r1r1)r.r.)r)r))Zset_undefined_optionsr(r1r) distributionZget_command_objget_finalized_command bdist_baseospathjoinr-has_ext_modulesrZDistutilsOptionErrorr2scriptsbasename)r5r9r=Z short_versionscriptr6r6r7finalize_optionsMs4      zbdist_wininst.finalize_optionsc Cstjdkr&|jjs|jjr&td|js6|jd|jddd}|j |_ |j|_d|_ |j |_ |jd}d|_ d|_|jjr|j}|sd tjdd }d |j |f}|jd}tjj|jd ||_x4dD],}|j}|dkr|d}t|d||qWtjd|j |jtjjdtjj|j d|jtjd=ddlm}|} |jj } |j!| d|j d} |j"| | |j#|jjrt$} nd} |jj%j&d| |j'| ftj(d| tj)| |j*st+|j |j,ddS)Nr'z^distribution contains extensions and/or C libraries; must be compiled on a Windows 32 platformbuildinstall)Zreinit_subcommandsr install_libz%d.%dz.%s-%slibpurelibplatlibheadersrBdataz/Include/$dist_nameZinstall_zinstalling to %sZPURELIB)mktempzip)Zroot_diranyr zremoving temporary file '%s')dry_run)rLrMrNrBrO)-sysplatformr;rAZhas_c_librariesZDistutilsPlatformErrorr1Z run_commandZreinitialize_commandr(rootZwarn_dirr)compileoptimizer- version_infor<r>r?r@Z build_baseZ build_libuppersetattrrinfoZensure_finalizedinsertrunZtempfilerP get_fullnameZ make_archive create_exer/rZ dist_filesappendget_installer_filenamedebugremover*rrS) r5rGrIr-Zplat_specifierrFkeyvaluerPZarchive_basenamefullnamearcnameZ pyversionr6r6r7r^ssd                  zbdist_wininst.runc Cs`g}|jj}|jd|jpdd}dd}xJdD]B}t||d}|r2|d|j||f}|jd|||fq2W|jd|jr|jd|j|jd|||jd|j |jd|j |j r|jd|j |j r|jd|j |j p |jj }|jd||ddl }ddl} d|j|j | jf} |jd| dj|S)Nz [metadata]r: cSs |jddS)Nriz\n)replace)sr6r6r7escapesz)bdist_wininst.get_inidata..escapeauthor author_email description maintainermaintainer_emailnameurlversionz %s: %sz%s=%sz [Setup]zinstall_script=%szinfo=%sztarget_compile=%dztarget_optimize=%dztarget_version=%szuser_access_control=%sztitle=%srzBuilt %s with distutils-%sz build_info=%s)rmrnrorprqrrrsrt)r;metadataraZlong_descriptiongetattr capitalizer2r+r,r-r4r0r_time distutilsZctime __version__r@) r5linesrur\rlrrrOr0rxryZ build_infor6r6r7 get_inidatas<   zbdist_wininst.get_inidatac Csddl}|j|j|j}|j|}|jd||rPt|dj}t|}nd}t|d} | j |j |rz| j |t |t r|j d}|d}|jrt|jddd } | jj d} WdQRX|| d }n|d}| j ||jd d t||} | j | | j t|djdS) Nrz creating %srbwbmbcsrzlatin-1)encodings zr?r@r.r))r5rgrr6r6r7rb's  z$bdist_wininst.get_installer_filenamec Cs t}|jrl|j|krl|jdkr&d}q|jdkr6d}q|jdkrFd}q|jdkrVd}q|jdkrfd }qd }n@yd d lm}Wntk rd }YnX|jd d }|d}tjjt }|j dkr|j dddkr|j dd}nd}tjj |d||f}t |d}z|j S|jXdS)Nz2.4z6.0z7.1z2.5z8.0z3.2z9.0z3.4z10.0z14.0r)CRT_ASSEMBLY_VERSION.z.0r'winr:zwininst-%s%s.exer})rr-Zmsvcrtr ImportError partitionr>r?dirname__file__r)r@rrclose) r5Z cur_versionZbvrmajorZ directoryZsfixfilenamefr6r6r7r4s8         zbdist_wininst.get_exe_bytes)r Nr Pkeep the pseudo-installation tree around after creating the distribution archive)r rr6require a specific python version on the target system)rNr)rrr)rrr)rrr)rrr)rrr)rNr )r!Nr")r#Nr$)r%Nr&)N)__name__ __module__ __qualname__rorZ user_optionsZboolean_optionsrTrUZ _unsupportedr8rEr^r|r`rbrr6r6r6r7r sP &Q. 5 r )__doc__rTr>Zdistutils.corerZdistutils.utilrZdistutils.dir_utilrrZdistutils.errorsZdistutils.sysconfigrryrr r6r6r6r7s    PK!*Rj&command/install_headers.pynu["""distutils.command.install_headers Implements the Distutils 'install_headers' command, to install C/C++ header files to the Python include directory.""" from distutils.core import Command # XXX force is never used class install_headers(Command): description = "install C/C++ header files" user_options = [('install-dir=', 'd', "directory to install header files to"), ('force', 'f', "force installation (overwrite existing files)"), ] boolean_options = ['force'] def initialize_options(self): self.install_dir = None self.force = 0 self.outfiles = [] def finalize_options(self): self.set_undefined_options('install', ('install_headers', 'install_dir'), ('force', 'force')) def run(self): headers = self.distribution.headers if not headers: return self.mkpath(self.install_dir) for header in headers: (out, _) = self.copy_file(header, self.install_dir) self.outfiles.append(out) def get_inputs(self): return self.distribution.headers or [] def get_outputs(self): return self.outfiles PK!yiy$3$3command/config.pynu["""distutils.command.config Implements the Distutils 'config' command, a (mostly) empty command class that exists mainly to be sub-classed by specific module distributions and applications. The idea is that while every "config" command is different, at least they're all named the same, and users always see "config" in the list of standard commands. Also, this is a good place to put common configure-like tasks: "try to compile this C code", or "figure out where this header file lives". """ import sys, os, re from distutils.core import Command from distutils.errors import DistutilsExecError from distutils.sysconfig import customize_compiler from distutils import log LANG_EXT = {"c": ".c", "c++": ".cxx"} class config(Command): description = "prepare to build" user_options = [ ('compiler=', None, "specify the compiler type"), ('cc=', None, "specify the compiler executable"), ('include-dirs=', 'I', "list of directories to search for header files"), ('define=', 'D', "C preprocessor macros to define"), ('undef=', 'U', "C preprocessor macros to undefine"), ('libraries=', 'l', "external C libraries to link with"), ('library-dirs=', 'L', "directories to search for external C libraries"), ('noisy', None, "show every action (compile, link, run, ...) taken"), ('dump-source', None, "dump generated source files before attempting to compile them"), ] # The three standard command methods: since the "config" command # does nothing by default, these are empty. def initialize_options(self): self.compiler = None self.cc = None self.include_dirs = None self.libraries = None self.library_dirs = None # maximal output for now self.noisy = 1 self.dump_source = 1 # list of temporary files generated along-the-way that we have # to clean at some point self.temp_files = [] def finalize_options(self): if self.include_dirs is None: self.include_dirs = self.distribution.include_dirs or [] elif isinstance(self.include_dirs, str): self.include_dirs = self.include_dirs.split(os.pathsep) if self.libraries is None: self.libraries = [] elif isinstance(self.libraries, str): self.libraries = [self.libraries] if self.library_dirs is None: self.library_dirs = [] elif isinstance(self.library_dirs, str): self.library_dirs = self.library_dirs.split(os.pathsep) def run(self): pass # Utility methods for actual "config" commands. The interfaces are # loosely based on Autoconf macros of similar names. Sub-classes # may use these freely. def _check_compiler(self): """Check that 'self.compiler' really is a CCompiler object; if not, make it one. """ # We do this late, and only on-demand, because this is an expensive # import. from distutils.ccompiler import CCompiler, new_compiler if not isinstance(self.compiler, CCompiler): self.compiler = new_compiler(compiler=self.compiler, dry_run=self.dry_run, force=1) customize_compiler(self.compiler) if self.include_dirs: self.compiler.set_include_dirs(self.include_dirs) if self.libraries: self.compiler.set_libraries(self.libraries) if self.library_dirs: self.compiler.set_library_dirs(self.library_dirs) def _gen_temp_sourcefile(self, body, headers, lang): filename = "_configtest" + LANG_EXT[lang] file = open(filename, "w") if headers: for header in headers: file.write("#include <%s>\n" % header) file.write("\n") file.write(body) if body[-1] != "\n": file.write("\n") file.close() return filename def _preprocess(self, body, headers, include_dirs, lang): src = self._gen_temp_sourcefile(body, headers, lang) out = "_configtest.i" self.temp_files.extend([src, out]) self.compiler.preprocess(src, out, include_dirs=include_dirs) return (src, out) def _compile(self, body, headers, include_dirs, lang): src = self._gen_temp_sourcefile(body, headers, lang) if self.dump_source: dump_file(src, "compiling '%s':" % src) (obj,) = self.compiler.object_filenames([src]) self.temp_files.extend([src, obj]) self.compiler.compile([src], include_dirs=include_dirs) return (src, obj) def _link(self, body, headers, include_dirs, libraries, library_dirs, lang): (src, obj) = self._compile(body, headers, include_dirs, lang) prog = os.path.splitext(os.path.basename(src))[0] self.compiler.link_executable([obj], prog, libraries=libraries, library_dirs=library_dirs, target_lang=lang) if self.compiler.exe_extension is not None: prog = prog + self.compiler.exe_extension self.temp_files.append(prog) return (src, obj, prog) def _clean(self, *filenames): if not filenames: filenames = self.temp_files self.temp_files = [] log.info("removing: %s", ' '.join(filenames)) for filename in filenames: try: os.remove(filename) except OSError: pass # XXX these ignore the dry-run flag: what to do, what to do? even if # you want a dry-run build, you still need some sort of configuration # info. My inclination is to make it up to the real config command to # consult 'dry_run', and assume a default (minimal) configuration if # true. The problem with trying to do it here is that you'd have to # return either true or false from all the 'try' methods, neither of # which is correct. # XXX need access to the header search path and maybe default macros. def try_cpp(self, body=None, headers=None, include_dirs=None, lang="c"): """Construct a source file from 'body' (a string containing lines of C/C++ code) and 'headers' (a list of header files to include) and run it through the preprocessor. Return true if the preprocessor succeeded, false if there were any errors. ('body' probably isn't of much use, but what the heck.) """ from distutils.ccompiler import CompileError self._check_compiler() ok = True try: self._preprocess(body, headers, include_dirs, lang) except CompileError: ok = False self._clean() return ok def search_cpp(self, pattern, body=None, headers=None, include_dirs=None, lang="c"): """Construct a source file (just like 'try_cpp()'), run it through the preprocessor, and return true if any line of the output matches 'pattern'. 'pattern' should either be a compiled regex object or a string containing a regex. If both 'body' and 'headers' are None, preprocesses an empty file -- which can be useful to determine the symbols the preprocessor and compiler set by default. """ self._check_compiler() src, out = self._preprocess(body, headers, include_dirs, lang) if isinstance(pattern, str): pattern = re.compile(pattern) file = open(out) match = False while True: line = file.readline() if line == '': break if pattern.search(line): match = True break file.close() self._clean() return match def try_compile(self, body, headers=None, include_dirs=None, lang="c"): """Try to compile a source file built from 'body' and 'headers'. Return true on success, false otherwise. """ from distutils.ccompiler import CompileError self._check_compiler() try: self._compile(body, headers, include_dirs, lang) ok = True except CompileError: ok = False log.info(ok and "success!" or "failure.") self._clean() return ok def try_link(self, body, headers=None, include_dirs=None, libraries=None, library_dirs=None, lang="c"): """Try to compile and link a source file, built from 'body' and 'headers', to executable form. Return true on success, false otherwise. """ from distutils.ccompiler import CompileError, LinkError self._check_compiler() try: self._link(body, headers, include_dirs, libraries, library_dirs, lang) ok = True except (CompileError, LinkError): ok = False log.info(ok and "success!" or "failure.") self._clean() return ok def try_run(self, body, headers=None, include_dirs=None, libraries=None, library_dirs=None, lang="c"): """Try to compile, link to an executable, and run a program built from 'body' and 'headers'. Return true on success, false otherwise. """ from distutils.ccompiler import CompileError, LinkError self._check_compiler() try: src, obj, exe = self._link(body, headers, include_dirs, libraries, library_dirs, lang) self.spawn([exe]) ok = True except (CompileError, LinkError, DistutilsExecError): ok = False log.info(ok and "success!" or "failure.") self._clean() return ok # -- High-level methods -------------------------------------------- # (these are the ones that are actually likely to be useful # when implementing a real-world config command!) def check_func(self, func, headers=None, include_dirs=None, libraries=None, library_dirs=None, decl=0, call=0): """Determine if function 'func' is available by constructing a source file that refers to 'func', and compiles and links it. If everything succeeds, returns true; otherwise returns false. The constructed source file starts out by including the header files listed in 'headers'. If 'decl' is true, it then declares 'func' (as "int func()"); you probably shouldn't supply 'headers' and set 'decl' true in the same call, or you might get errors about a conflicting declarations for 'func'. Finally, the constructed 'main()' function either references 'func' or (if 'call' is true) calls it. 'libraries' and 'library_dirs' are used when linking. """ self._check_compiler() body = [] if decl: body.append("int %s ();" % func) body.append("int main () {") if call: body.append(" %s();" % func) else: body.append(" %s;" % func) body.append("}") body = "\n".join(body) + "\n" return self.try_link(body, headers, include_dirs, libraries, library_dirs) def check_lib(self, library, library_dirs=None, headers=None, include_dirs=None, other_libraries=[]): """Determine if 'library' is available to be linked against, without actually checking that any particular symbols are provided by it. 'headers' will be used in constructing the source file to be compiled, but the only effect of this is to check if all the header files listed are available. Any libraries listed in 'other_libraries' will be included in the link, in case 'library' has symbols that depend on other libraries. """ self._check_compiler() return self.try_link("int main (void) { }", headers, include_dirs, [library] + other_libraries, library_dirs) def check_header(self, header, include_dirs=None, library_dirs=None, lang="c"): """Determine if the system header file named by 'header_file' exists and can be found by the preprocessor; return true if so, false otherwise. """ return self.try_cpp(body="/* No body */", headers=[header], include_dirs=include_dirs) def dump_file(filename, head=None): """Dumps a file content into log.info. If head is not None, will be dumped before the file content. """ if head is None: log.info('%s' % filename) else: log.info(head) file = open(filename) try: log.info(file.read()) finally: file.close() PK!oFGEEcommand/sdist.pynu["""distutils.command.sdist Implements the Distutils 'sdist' command (create a source distribution).""" import os import string import sys from types import * from glob import glob from warnings import warn from distutils.core import Command from distutils import dir_util, dep_util, file_util, archive_util from distutils.text_file import TextFile from distutils.errors import * from distutils.filelist import FileList from distutils import log from distutils.util import convert_path def show_formats(): """Print all possible values for the 'formats' option (used by the "--help-formats" command-line option). """ from distutils.fancy_getopt import FancyGetopt from distutils.archive_util import ARCHIVE_FORMATS formats = [] for format in ARCHIVE_FORMATS.keys(): formats.append(("formats=" + format, None, ARCHIVE_FORMATS[format][2])) formats.sort() FancyGetopt(formats).print_help( "List of available source distribution formats:") class sdist(Command): description = "create a source distribution (tarball, zip file, etc.)" def checking_metadata(self): """Callable used for the check sub-command. Placed here so user_options can view it""" return self.metadata_check user_options = [ ('template=', 't', "name of manifest template file [default: MANIFEST.in]"), ('manifest=', 'm', "name of manifest file [default: MANIFEST]"), ('use-defaults', None, "include the default file set in the manifest " "[default; disable with --no-defaults]"), ('no-defaults', None, "don't include the default file set"), ('prune', None, "specifically exclude files/directories that should not be " "distributed (build tree, RCS/CVS dirs, etc.) " "[default; disable with --no-prune]"), ('no-prune', None, "don't automatically exclude anything"), ('manifest-only', 'o', "just regenerate the manifest and then stop " "(implies --force-manifest)"), ('force-manifest', 'f', "forcibly regenerate the manifest and carry on as usual. " "Deprecated: now the manifest is always regenerated."), ('formats=', None, "formats for source distribution (comma-separated list)"), ('keep-temp', 'k', "keep the distribution tree around after creating " + "archive file(s)"), ('dist-dir=', 'd', "directory to put the source distribution archive(s) in " "[default: dist]"), ('metadata-check', None, "Ensure that all required elements of meta-data " "are supplied. Warn if any missing. [default]"), ] boolean_options = ['use-defaults', 'prune', 'manifest-only', 'force-manifest', 'keep-temp', 'metadata-check'] help_options = [ ('help-formats', None, "list available distribution formats", show_formats), ] negative_opt = {'no-defaults': 'use-defaults', 'no-prune': 'prune' } default_format = {'posix': 'gztar', 'nt': 'zip' } sub_commands = [('check', checking_metadata)] def initialize_options(self): # 'template' and 'manifest' are, respectively, the names of # the manifest template and manifest file. self.template = None self.manifest = None # 'use_defaults': if true, we will include the default file set # in the manifest self.use_defaults = 1 self.prune = 1 self.manifest_only = 0 self.force_manifest = 0 self.formats = None self.keep_temp = 0 self.dist_dir = None self.archive_files = None self.metadata_check = 1 def finalize_options(self): if self.manifest is None: self.manifest = "MANIFEST" if self.template is None: self.template = "MANIFEST.in" self.ensure_string_list('formats') if self.formats is None: try: self.formats = [self.default_format[os.name]] except KeyError: raise DistutilsPlatformError( "don't know how to create source distributions " "on platform %s" % os.name) bad_format = archive_util.check_archive_formats(self.formats) if bad_format: raise DistutilsOptionError( "unknown archive format '%s'" % bad_format) if self.dist_dir is None: self.dist_dir = "dist" def run(self): # 'filelist' contains the list of files that will make up the # manifest self.filelist = FileList() # Run sub commands for cmd_name in self.get_sub_commands(): self.run_command(cmd_name) # Do whatever it takes to get the list of files to process # (process the manifest template, read an existing manifest, # whatever). File list is accumulated in 'self.filelist'. self.get_file_list() # If user just wanted us to regenerate the manifest, stop now. if self.manifest_only: return # Otherwise, go ahead and create the source distribution tarball, # or zipfile, or whatever. self.make_distribution() def check_metadata(self): """Deprecated API.""" warn("distutils.command.sdist.check_metadata is deprecated, \ use the check command instead", PendingDeprecationWarning) check = self.distribution.get_command_obj('check') check.ensure_finalized() check.run() def get_file_list(self): """Figure out the list of files to include in the source distribution, and put it in 'self.filelist'. This might involve reading the manifest template (and writing the manifest), or just reading the manifest, or just using the default file set -- it all depends on the user's options. """ # new behavior when using a template: # the file list is recalculated every time because # even if MANIFEST.in or setup.py are not changed # the user might have added some files in the tree that # need to be included. # # This makes --force the default and only behavior with templates. template_exists = os.path.isfile(self.template) if not template_exists and self._manifest_is_not_generated(): self.read_manifest() self.filelist.sort() self.filelist.remove_duplicates() return if not template_exists: self.warn(("manifest template '%s' does not exist " + "(using default file list)") % self.template) self.filelist.findall() if self.use_defaults: self.add_defaults() if template_exists: self.read_template() if self.prune: self.prune_file_list() self.filelist.sort() self.filelist.remove_duplicates() self.write_manifest() def add_defaults(self): """Add all the default files to self.filelist: - README or README.txt - setup.py - test/test*.py - all pure Python modules mentioned in setup script - all files pointed by package_data (build_py) - all files defined in data_files. - all files defined as scripts. - all C sources listed as part of extensions or C libraries in the setup script (doesn't catch C headers!) Warns if (README or README.txt) or setup.py are missing; everything else is optional. """ standards = [('README', 'README.txt'), self.distribution.script_name] for fn in standards: if isinstance(fn, tuple): alts = fn got_it = False for fn in alts: if os.path.exists(fn): got_it = True self.filelist.append(fn) break if not got_it: self.warn("standard file not found: should have one of " + ', '.join(alts)) else: if os.path.exists(fn): self.filelist.append(fn) else: self.warn("standard file '%s' not found" % fn) optional = ['test/test*.py', 'setup.cfg'] for pattern in optional: files = filter(os.path.isfile, glob(pattern)) self.filelist.extend(files) # build_py is used to get: # - python modules # - files defined in package_data build_py = self.get_finalized_command('build_py') # getting python files if self.distribution.has_pure_modules(): self.filelist.extend(build_py.get_source_files()) # getting package_data files # (computed in build_py.data_files by build_py.finalize_options) for pkg, src_dir, build_dir, filenames in build_py.data_files: for filename in filenames: self.filelist.append(os.path.join(src_dir, filename)) # getting distribution.data_files if self.distribution.has_data_files(): for item in self.distribution.data_files: if isinstance(item, str): # plain file item = convert_path(item) if os.path.isfile(item): self.filelist.append(item) else: # a (dirname, filenames) tuple dirname, filenames = item for f in filenames: f = convert_path(f) if os.path.isfile(f): self.filelist.append(f) if self.distribution.has_ext_modules(): build_ext = self.get_finalized_command('build_ext') self.filelist.extend(build_ext.get_source_files()) if self.distribution.has_c_libraries(): build_clib = self.get_finalized_command('build_clib') self.filelist.extend(build_clib.get_source_files()) if self.distribution.has_scripts(): build_scripts = self.get_finalized_command('build_scripts') self.filelist.extend(build_scripts.get_source_files()) def read_template(self): """Read and parse manifest template file named by self.template. (usually "MANIFEST.in") The parsing and processing is done by 'self.filelist', which updates itself accordingly. """ log.info("reading manifest template '%s'", self.template) template = TextFile(self.template, strip_comments=1, skip_blanks=1, join_lines=1, lstrip_ws=1, rstrip_ws=1, collapse_join=1) try: while True: line = template.readline() if line is None: # end of file break try: self.filelist.process_template_line(line) # the call above can raise a DistutilsTemplateError for # malformed lines, or a ValueError from the lower-level # convert_path function except (DistutilsTemplateError, ValueError) as msg: self.warn("%s, line %d: %s" % (template.filename, template.current_line, msg)) finally: template.close() def prune_file_list(self): """Prune off branches that might slip into the file list as created by 'read_template()', but really don't belong there: * the build tree (typically "build") * the release tree itself (only an issue if we ran "sdist" previously with --keep-temp, or it aborted) * any RCS, CVS, .svn, .hg, .git, .bzr, _darcs directories """ build = self.get_finalized_command('build') base_dir = self.distribution.get_fullname() self.filelist.exclude_pattern(None, prefix=build.build_base) self.filelist.exclude_pattern(None, prefix=base_dir) if sys.platform == 'win32': seps = r'/|\\' else: seps = '/' vcs_dirs = ['RCS', 'CVS', r'\.svn', r'\.hg', r'\.git', r'\.bzr', '_darcs'] vcs_ptrn = r'(^|%s)(%s)(%s).*' % (seps, '|'.join(vcs_dirs), seps) self.filelist.exclude_pattern(vcs_ptrn, is_regex=1) def write_manifest(self): """Write the file list in 'self.filelist' (presumably as filled in by 'add_defaults()' and 'read_template()') to the manifest file named by 'self.manifest'. """ if self._manifest_is_not_generated(): log.info("not writing to manually maintained " "manifest file '%s'" % self.manifest) return content = self.filelist.files[:] content.insert(0, '# file GENERATED by distutils, do NOT edit') self.execute(file_util.write_file, (self.manifest, content), "writing manifest file '%s'" % self.manifest) def _manifest_is_not_generated(self): # check for special comment used in 3.1.3 and higher if not os.path.isfile(self.manifest): return False fp = open(self.manifest) try: first_line = fp.readline() finally: fp.close() return first_line != '# file GENERATED by distutils, do NOT edit\n' def read_manifest(self): """Read the manifest file (named by 'self.manifest') and use it to fill in 'self.filelist', the list of files to include in the source distribution. """ log.info("reading manifest file '%s'", self.manifest) manifest = open(self.manifest) for line in manifest: # ignore comments and blank lines line = line.strip() if line.startswith('#') or not line: continue self.filelist.append(line) manifest.close() def make_release_tree(self, base_dir, files): """Create the directory tree that will become the source distribution archive. All directories implied by the filenames in 'files' are created under 'base_dir', and then we hard link or copy (if hard linking is unavailable) those files into place. Essentially, this duplicates the developer's source tree, but in a directory named after the distribution, containing only the files to be distributed. """ # Create all the directories under 'base_dir' necessary to # put 'files' there; the 'mkpath()' is just so we don't die # if the manifest happens to be empty. self.mkpath(base_dir) dir_util.create_tree(base_dir, files, dry_run=self.dry_run) # And walk over the list of files, either making a hard link (if # os.link exists) to each one that doesn't already exist in its # corresponding location under 'base_dir', or copying each file # that's out-of-date in 'base_dir'. (Usually, all files will be # out-of-date, because by default we blow away 'base_dir' when # we're done making the distribution archives.) if hasattr(os, 'link'): # can make hard links on this system link = 'hard' msg = "making hard links in %s..." % base_dir else: # nope, have to copy link = None msg = "copying files to %s..." % base_dir if not files: log.warn("no files to distribute -- empty manifest?") else: log.info(msg) for file in files: if not os.path.isfile(file): log.warn("'%s' not a regular file -- skipping" % file) else: dest = os.path.join(base_dir, file) self.copy_file(file, dest, link=link) self.distribution.metadata.write_pkg_info(base_dir) def make_distribution(self): """Create the source distribution(s). First, we create the release tree with 'make_release_tree()'; then, we create all required archive files (according to 'self.formats') from the release tree. Finally, we clean up by blowing away the release tree (unless 'self.keep_temp' is true). The list of archive files created is stored so it can be retrieved later by 'get_archive_files()'. """ # Don't warn about missing meta-data here -- should be (and is!) # done elsewhere. base_dir = self.distribution.get_fullname() base_name = os.path.join(self.dist_dir, base_dir) self.make_release_tree(base_dir, self.filelist.files) archive_files = [] # remember names of files we create # tar archive must be created last to avoid overwrite and remove if 'tar' in self.formats: self.formats.append(self.formats.pop(self.formats.index('tar'))) for fmt in self.formats: file = self.make_archive(base_name, fmt, base_dir=base_dir) archive_files.append(file) self.distribution.dist_files.append(('sdist', '', file)) self.archive_files = archive_files if not self.keep_temp: dir_util.remove_tree(base_dir, dry_run=self.dry_run) def get_archive_files(self): """Return the list of archive files created when the command was run, or None if the command hasn't run yet. """ return self.archive_files PK!y)C)Ccommand/build_py.pynu["""distutils.command.build_py Implements the Distutils 'build_py' command.""" import os import imp import sys from glob import glob from distutils.core import Command from distutils.errors import * from distutils.util import convert_path, Mixin2to3 from distutils import log class build_py (Command): description = "\"build\" pure Python modules (copy to build directory)" user_options = [ ('build-lib=', 'd', "directory to \"build\" (copy) to"), ('compile', 'c', "compile .py to .pyc"), ('no-compile', None, "don't compile .py files [default]"), ('optimize=', 'O', "also compile with optimization: -O1 for \"python -O\", " "-O2 for \"python -OO\", and -O0 to disable [default: -O0]"), ('force', 'f', "forcibly build everything (ignore file timestamps)"), ] boolean_options = ['compile', 'force'] negative_opt = {'no-compile' : 'compile'} def initialize_options(self): self.build_lib = None self.py_modules = None self.package = None self.package_data = None self.package_dir = None self.compile = 0 self.optimize = 0 self.force = None def finalize_options(self): self.set_undefined_options('build', ('build_lib', 'build_lib'), ('force', 'force')) # Get the distribution options that are aliases for build_py # options -- list of packages and list of modules. self.packages = self.distribution.packages self.py_modules = self.distribution.py_modules self.package_data = self.distribution.package_data self.package_dir = {} if self.distribution.package_dir: for name, path in self.distribution.package_dir.items(): self.package_dir[name] = convert_path(path) self.data_files = self.get_data_files() # Ick, copied straight from install_lib.py (fancy_getopt needs a # type system! Hell, *everything* needs a type system!!!) if not isinstance(self.optimize, int): try: self.optimize = int(self.optimize) assert 0 <= self.optimize <= 2 except (ValueError, AssertionError): raise DistutilsOptionError("optimize must be 0, 1, or 2") def run(self): # XXX copy_file by default preserves atime and mtime. IMHO this is # the right thing to do, but perhaps it should be an option -- in # particular, a site administrator might want installed files to # reflect the time of installation rather than the last # modification time before the installed release. # XXX copy_file by default preserves mode, which appears to be the # wrong thing to do: if a file is read-only in the working # directory, we want it to be installed read/write so that the next # installation of the same module distribution can overwrite it # without problems. (This might be a Unix-specific issue.) Thus # we turn off 'preserve_mode' when copying to the build directory, # since the build directory is supposed to be exactly what the # installation will look like (ie. we preserve mode when # installing). # Two options control which modules will be installed: 'packages' # and 'py_modules'. The former lets us work with whole packages, not # specifying individual modules at all; the latter is for # specifying modules one-at-a-time. if self.py_modules: self.build_modules() if self.packages: self.build_packages() self.build_package_data() self.byte_compile(self.get_outputs(include_bytecode=0)) def get_data_files(self): """Generate list of '(package,src_dir,build_dir,filenames)' tuples""" data = [] if not self.packages: return data for package in self.packages: # Locate package source directory src_dir = self.get_package_dir(package) # Compute package build directory build_dir = os.path.join(*([self.build_lib] + package.split('.'))) # Length of path to strip from found files plen = 0 if src_dir: plen = len(src_dir)+1 # Strip directory from globbed filenames filenames = [ file[plen:] for file in self.find_data_files(package, src_dir) ] data.append((package, src_dir, build_dir, filenames)) return data def find_data_files(self, package, src_dir): """Return filenames for package's data files in 'src_dir'""" globs = (self.package_data.get('', []) + self.package_data.get(package, [])) files = [] for pattern in globs: # Each pattern has to be converted to a platform-specific path filelist = glob(os.path.join(src_dir, convert_path(pattern))) # Files that match more than one pattern are only added once files.extend([fn for fn in filelist if fn not in files and os.path.isfile(fn)]) return files def build_package_data(self): """Copy data files into build directory""" lastdir = None for package, src_dir, build_dir, filenames in self.data_files: for filename in filenames: target = os.path.join(build_dir, filename) self.mkpath(os.path.dirname(target)) self.copy_file(os.path.join(src_dir, filename), target, preserve_mode=False) def get_package_dir(self, package): """Return the directory, relative to the top of the source distribution, where package 'package' should be found (at least according to the 'package_dir' option, if any).""" path = package.split('.') if not self.package_dir: if path: return os.path.join(*path) else: return '' else: tail = [] while path: try: pdir = self.package_dir['.'.join(path)] except KeyError: tail.insert(0, path[-1]) del path[-1] else: tail.insert(0, pdir) return os.path.join(*tail) else: # Oops, got all the way through 'path' without finding a # match in package_dir. If package_dir defines a directory # for the root (nameless) package, then fallback on it; # otherwise, we might as well have not consulted # package_dir at all, as we just use the directory implied # by 'tail' (which should be the same as the original value # of 'path' at this point). pdir = self.package_dir.get('') if pdir is not None: tail.insert(0, pdir) if tail: return os.path.join(*tail) else: return '' def check_package(self, package, package_dir): # Empty dir name means current directory, which we can probably # assume exists. Also, os.path.exists and isdir don't know about # my "empty string means current dir" convention, so we have to # circumvent them. if package_dir != "": if not os.path.exists(package_dir): raise DistutilsFileError( "package directory '%s' does not exist" % package_dir) if not os.path.isdir(package_dir): raise DistutilsFileError( "supposed package directory '%s' exists, " "but is not a directory" % package_dir) # Require __init__.py for all but the "root package" if package: init_py = os.path.join(package_dir, "__init__.py") if os.path.isfile(init_py): return init_py else: log.warn(("package init file '%s' not found " + "(or not a regular file)"), init_py) # Either not in a package at all (__init__.py not expected), or # __init__.py doesn't exist -- so don't return the filename. return None def check_module(self, module, module_file): if not os.path.isfile(module_file): log.warn("file %s (for module %s) not found", module_file, module) return False else: return True def find_package_modules(self, package, package_dir): self.check_package(package, package_dir) module_files = glob(os.path.join(package_dir, "*.py")) modules = [] setup_script = os.path.abspath(self.distribution.script_name) for f in module_files: abs_f = os.path.abspath(f) if abs_f != setup_script: module = os.path.splitext(os.path.basename(f))[0] modules.append((package, module, f)) else: self.debug_print("excluding %s" % setup_script) return modules def find_modules(self): """Finds individually-specified Python modules, ie. those listed by module name in 'self.py_modules'. Returns a list of tuples (package, module_base, filename): 'package' is a tuple of the path through package-space to the module; 'module_base' is the bare (no packages, no dots) module name, and 'filename' is the path to the ".py" file (relative to the distribution root) that implements the module. """ # Map package names to tuples of useful info about the package: # (package_dir, checked) # package_dir - the directory where we'll find source files for # this package # checked - true if we have checked that the package directory # is valid (exists, contains __init__.py, ... ?) packages = {} # List of (package, module, filename) tuples to return modules = [] # We treat modules-in-packages almost the same as toplevel modules, # just the "package" for a toplevel is empty (either an empty # string or empty list, depending on context). Differences: # - don't check for __init__.py in directory for empty package for module in self.py_modules: path = module.split('.') package = '.'.join(path[0:-1]) module_base = path[-1] try: (package_dir, checked) = packages[package] except KeyError: package_dir = self.get_package_dir(package) checked = 0 if not checked: init_py = self.check_package(package, package_dir) packages[package] = (package_dir, 1) if init_py: modules.append((package, "__init__", init_py)) # XXX perhaps we should also check for just .pyc files # (so greedy closed-source bastards can distribute Python # modules too) module_file = os.path.join(package_dir, module_base + ".py") if not self.check_module(module, module_file): continue modules.append((package, module_base, module_file)) return modules def find_all_modules(self): """Compute the list of all modules that will be built, whether they are specified one-module-at-a-time ('self.py_modules') or by whole packages ('self.packages'). Return a list of tuples (package, module, module_file), just like 'find_modules()' and 'find_package_modules()' do.""" modules = [] if self.py_modules: modules.extend(self.find_modules()) if self.packages: for package in self.packages: package_dir = self.get_package_dir(package) m = self.find_package_modules(package, package_dir) modules.extend(m) return modules def get_source_files(self): return [module[-1] for module in self.find_all_modules()] def get_module_outfile(self, build_dir, package, module): outfile_path = [build_dir] + list(package) + [module + ".py"] return os.path.join(*outfile_path) def get_outputs(self, include_bytecode=1): modules = self.find_all_modules() outputs = [] for (package, module, module_file) in modules: package = package.split('.') filename = self.get_module_outfile(self.build_lib, package, module) outputs.append(filename) if include_bytecode: if self.compile: outputs.append(imp.cache_from_source(filename, debug_override=True)) if self.optimize > 0: outputs.append(imp.cache_from_source(filename, debug_override=False)) outputs += [ os.path.join(build_dir, filename) for package, src_dir, build_dir, filenames in self.data_files for filename in filenames ] return outputs def build_module(self, module, module_file, package): if isinstance(package, str): package = package.split('.') elif not isinstance(package, (list, tuple)): raise TypeError( "'package' must be a string (dot-separated), list, or tuple") # Now put the module source file into the "build" area -- this is # easy, we just copy it somewhere under self.build_lib (the build # directory for Python source). outfile = self.get_module_outfile(self.build_lib, package, module) dir = os.path.dirname(outfile) self.mkpath(dir) return self.copy_file(module_file, outfile, preserve_mode=0) def build_modules(self): modules = self.find_modules() for (package, module, module_file) in modules: # Now "build" the module -- ie. copy the source file to # self.build_lib (the build directory for Python source). # (Actually, it gets copied to the directory for this package # under self.build_lib.) self.build_module(module, module_file, package) def build_packages(self): for package in self.packages: # Get list of (package, module, module_file) tuples based on # scanning the package directory. 'package' is only included # in the tuple so that 'find_modules()' and # 'find_package_tuples()' have a consistent interface; it's # ignored here (apart from a sanity check). Also, 'module' is # the *unqualified* module name (ie. no dots, no package -- we # already know its package!), and 'module_file' is the path to # the .py file, relative to the current directory # (ie. including 'package_dir'). package_dir = self.get_package_dir(package) modules = self.find_package_modules(package, package_dir) # Now loop over the modules we found, "building" each one (just # copy it to self.build_lib). for (package_, module, module_file) in modules: assert package == package_ self.build_module(module, module_file, package) def byte_compile(self, files): if sys.dont_write_bytecode: self.warn('byte-compiling is disabled, skipping.') return from distutils.util import byte_compile prefix = self.build_lib if prefix[-1] != os.sep: prefix = prefix + os.sep # XXX this code is essentially the same as the 'byte_compile() # method of the "install_lib" command, except for the determination # of the 'prefix' string. Hmmm. if self.compile: byte_compile(files, optimize=0, force=self.force, prefix=prefix, dry_run=self.dry_run) if self.optimize > 0: byte_compile(files, optimize=self.optimize, force=self.force, prefix=prefix, dry_run=self.dry_run) class build_py_2to3(build_py, Mixin2to3): def run(self): self.updated_files = [] # Base class code if self.py_modules: self.build_modules() if self.packages: self.build_packages() self.build_package_data() # 2to3 self.run_2to3(self.updated_files) # Remaining base class code self.byte_compile(self.get_outputs(include_bytecode=0)) def build_module(self, module, module_file, package): res = build_py.build_module(self, module, module_file, package) if res[1]: # file was copied self.updated_files.append(res[0]) return res PK! command/build_ext.pynu["""distutils.command.build_ext Implements the Distutils 'build_ext' command, for building extension modules (currently limited to C extensions, should accommodate C++ extensions ASAP).""" import sys, os, re from distutils.core import Command from distutils.errors import * from distutils.sysconfig import customize_compiler, get_python_version from distutils.sysconfig import get_config_h_filename from distutils.dep_util import newer_group from distutils.extension import Extension from distutils.util import get_platform from distutils import log # this keeps compatibility from 2.3 to 2.5 if sys.version < "2.6": USER_BASE = None HAS_USER_SITE = False else: from site import USER_BASE HAS_USER_SITE = True if os.name == 'nt': from distutils.msvccompiler import get_build_version MSVC_VERSION = int(get_build_version()) # An extension name is just a dot-separated list of Python NAMEs (ie. # the same as a fully-qualified module name). extension_name_re = re.compile \ (r'^[a-zA-Z_][a-zA-Z_0-9]*(\.[a-zA-Z_][a-zA-Z_0-9]*)*$') def show_compilers (): from distutils.ccompiler import show_compilers show_compilers() class build_ext(Command): description = "build C/C++ extensions (compile/link to build directory)" # XXX thoughts on how to deal with complex command-line options like # these, i.e. how to make it so fancy_getopt can suck them off the # command line and make it look like setup.py defined the appropriate # lists of tuples of what-have-you. # - each command needs a callback to process its command-line options # - Command.__init__() needs access to its share of the whole # command line (must ultimately come from # Distribution.parse_command_line()) # - it then calls the current command class' option-parsing # callback to deal with weird options like -D, which have to # parse the option text and churn out some custom data # structure # - that data structure (in this case, a list of 2-tuples) # will then be present in the command object by the time # we get to finalize_options() (i.e. the constructor # takes care of both command-line and client options # in between initialize_options() and finalize_options()) sep_by = " (separated by '%s')" % os.pathsep user_options = [ ('build-lib=', 'b', "directory for compiled extension modules"), ('build-temp=', 't', "directory for temporary files (build by-products)"), ('plat-name=', 'p', "platform name to cross-compile for, if supported " "(default: %s)" % get_platform()), ('inplace', 'i', "ignore build-lib and put compiled extensions into the source " + "directory alongside your pure Python modules"), ('include-dirs=', 'I', "list of directories to search for header files" + sep_by), ('define=', 'D', "C preprocessor macros to define"), ('undef=', 'U', "C preprocessor macros to undefine"), ('libraries=', 'l', "external C libraries to link with"), ('library-dirs=', 'L', "directories to search for external C libraries" + sep_by), ('rpath=', 'R', "directories to search for shared C libraries at runtime"), ('link-objects=', 'O', "extra explicit link objects to include in the link"), ('debug', 'g', "compile/link with debugging information"), ('force', 'f', "forcibly build everything (ignore file timestamps)"), ('compiler=', 'c', "specify the compiler type"), ('swig-cpp', None, "make SWIG create C++ files (default is C)"), ('swig-opts=', None, "list of SWIG command line options"), ('swig=', None, "path to the SWIG executable"), ] boolean_options = ['inplace', 'debug', 'force', 'swig-cpp'] if HAS_USER_SITE: user_options.append(('user', None, "add user include, library and rpath")) boolean_options.append('user') help_options = [ ('help-compiler', None, "list available compilers", show_compilers), ] def initialize_options(self): self.extensions = None self.build_lib = None self.plat_name = None self.build_temp = None self.inplace = 0 self.package = None self.include_dirs = None self.define = None self.undef = None self.libraries = None self.library_dirs = None self.rpath = None self.link_objects = None self.debug = None self.force = None self.compiler = None self.swig = None self.swig_cpp = None self.swig_opts = None self.user = None def finalize_options(self): from distutils import sysconfig self.set_undefined_options('build', ('build_lib', 'build_lib'), ('build_temp', 'build_temp'), ('compiler', 'compiler'), ('debug', 'debug'), ('force', 'force'), ('plat_name', 'plat_name'), ) if self.package is None: self.package = self.distribution.ext_package self.extensions = self.distribution.ext_modules # Make sure Python's include directories (for Python.h, pyconfig.h, # etc.) are in the include search path. py_include = sysconfig.get_python_inc() plat_py_include = sysconfig.get_python_inc(plat_specific=1) if self.include_dirs is None: self.include_dirs = self.distribution.include_dirs or [] if isinstance(self.include_dirs, str): self.include_dirs = self.include_dirs.split(os.pathsep) # If in a virtualenv, add its include directory # Issue 16116 if sys.exec_prefix != sys.base_exec_prefix: self.include_dirs.append(os.path.join(sys.exec_prefix, 'include')) # Put the Python "system" include dir at the end, so that # any local include dirs take precedence. self.include_dirs.append(py_include) if plat_py_include != py_include: self.include_dirs.append(plat_py_include) self.ensure_string_list('libraries') # Life is easier if we're not forever checking for None, so # simplify these options to empty lists if unset if self.libraries is None: self.libraries = [] if self.library_dirs is None: self.library_dirs = [] elif isinstance(self.library_dirs, str): self.library_dirs = self.library_dirs.split(os.pathsep) if self.rpath is None: self.rpath = [] elif isinstance(self.rpath, str): self.rpath = self.rpath.split(os.pathsep) # for extensions under windows use different directories # for Release and Debug builds. # also Python's library directory must be appended to library_dirs if os.name == 'nt': # the 'libs' directory is for binary installs - we assume that # must be the *native* platform. But we don't really support # cross-compiling via a binary install anyway, so we let it go. self.library_dirs.append(os.path.join(sys.exec_prefix, 'libs')) if sys.base_exec_prefix != sys.prefix: # Issue 16116 self.library_dirs.append(os.path.join(sys.base_exec_prefix, 'libs')) if self.debug: self.build_temp = os.path.join(self.build_temp, "Debug") else: self.build_temp = os.path.join(self.build_temp, "Release") # Append the source distribution include and library directories, # this allows distutils on windows to work in the source tree self.include_dirs.append(os.path.dirname(get_config_h_filename())) _sys_home = getattr(sys, '_home', None) if _sys_home: self.library_dirs.append(_sys_home) if MSVC_VERSION >= 9: # Use the .lib files for the correct architecture if self.plat_name == 'win32': suffix = '' else: # win-amd64 or win-ia64 suffix = self.plat_name[4:] new_lib = os.path.join(sys.exec_prefix, 'PCbuild') if suffix: new_lib = os.path.join(new_lib, suffix) self.library_dirs.append(new_lib) elif MSVC_VERSION == 8: self.library_dirs.append(os.path.join(sys.exec_prefix, 'PC', 'VS8.0')) elif MSVC_VERSION == 7: self.library_dirs.append(os.path.join(sys.exec_prefix, 'PC', 'VS7.1')) else: self.library_dirs.append(os.path.join(sys.exec_prefix, 'PC', 'VC6')) # OS/2 (EMX) doesn't support Debug vs Release builds, but has the # import libraries in its "Config" subdirectory if os.name == 'os2': self.library_dirs.append(os.path.join(sys.exec_prefix, 'Config')) # for extensions under Cygwin and AtheOS Python's library directory must be # appended to library_dirs if sys.platform[:6] == 'cygwin' or sys.platform[:6] == 'atheos': if sys.executable.startswith(os.path.join(sys.exec_prefix, "bin")): # building third party extensions self.library_dirs.append(os.path.join(sys.prefix, "lib", "python" + get_python_version(), "config")) else: # building python standard extensions self.library_dirs.append('.') # For building extensions with a shared Python library, # Python's library directory must be appended to library_dirs # See Issues: #1600860, #4366 if (sysconfig.get_config_var('Py_ENABLE_SHARED')): if sys.executable.startswith(os.path.join(sys.exec_prefix, "bin")): # building third party extensions self.library_dirs.append(sysconfig.get_config_var('LIBDIR')) else: # building python standard extensions self.library_dirs.append('.') # The argument parsing will result in self.define being a string, but # it has to be a list of 2-tuples. All the preprocessor symbols # specified by the 'define' option will be set to '1'. Multiple # symbols can be separated with commas. if self.define: defines = self.define.split(',') self.define = [(symbol, '1') for symbol in defines] # The option for macros to undefine is also a string from the # option parsing, but has to be a list. Multiple symbols can also # be separated with commas here. if self.undef: self.undef = self.undef.split(',') if self.swig_opts is None: self.swig_opts = [] else: self.swig_opts = self.swig_opts.split(' ') # Finally add the user include and library directories if requested if self.user: user_include = os.path.join(USER_BASE, "include") user_lib = os.path.join(USER_BASE, "lib") if os.path.isdir(user_include): self.include_dirs.append(user_include) if os.path.isdir(user_lib): self.library_dirs.append(user_lib) self.rpath.append(user_lib) def run(self): from distutils.ccompiler import new_compiler # 'self.extensions', as supplied by setup.py, is a list of # Extension instances. See the documentation for Extension (in # distutils.extension) for details. # # For backwards compatibility with Distutils 0.8.2 and earlier, we # also allow the 'extensions' list to be a list of tuples: # (ext_name, build_info) # where build_info is a dictionary containing everything that # Extension instances do except the name, with a few things being # differently named. We convert these 2-tuples to Extension # instances as needed. if not self.extensions: return # If we were asked to build any C/C++ libraries, make sure that the # directory where we put them is in the library search path for # linking extensions. if self.distribution.has_c_libraries(): build_clib = self.get_finalized_command('build_clib') self.libraries.extend(build_clib.get_library_names() or []) self.library_dirs.append(build_clib.build_clib) # Setup the CCompiler object that we'll use to do all the # compiling and linking self.compiler = new_compiler(compiler=self.compiler, verbose=self.verbose, dry_run=self.dry_run, force=self.force) customize_compiler(self.compiler) # If we are cross-compiling, init the compiler now (if we are not # cross-compiling, init would not hurt, but people may rely on # late initialization of compiler even if they shouldn't...) if os.name == 'nt' and self.plat_name != get_platform(): self.compiler.initialize(self.plat_name) # And make sure that any compile/link-related options (which might # come from the command-line or from the setup script) are set in # that CCompiler object -- that way, they automatically apply to # all compiling and linking done here. if self.include_dirs is not None: self.compiler.set_include_dirs(self.include_dirs) if self.define is not None: # 'define' option is a list of (name,value) tuples for (name, value) in self.define: self.compiler.define_macro(name, value) if self.undef is not None: for macro in self.undef: self.compiler.undefine_macro(macro) if self.libraries is not None: self.compiler.set_libraries(self.libraries) if self.library_dirs is not None: self.compiler.set_library_dirs(self.library_dirs) if self.rpath is not None: self.compiler.set_runtime_library_dirs(self.rpath) if self.link_objects is not None: self.compiler.set_link_objects(self.link_objects) # Now actually compile and link everything. self.build_extensions() def check_extensions_list(self, extensions): """Ensure that the list of extensions (presumably provided as a command option 'extensions') is valid, i.e. it is a list of Extension objects. We also support the old-style list of 2-tuples, where the tuples are (ext_name, build_info), which are converted to Extension instances here. Raise DistutilsSetupError if the structure is invalid anywhere; just returns otherwise. """ if not isinstance(extensions, list): raise DistutilsSetupError( "'ext_modules' option must be a list of Extension instances") for i, ext in enumerate(extensions): if isinstance(ext, Extension): continue # OK! (assume type-checking done # by Extension constructor) if not isinstance(ext, tuple) or len(ext) != 2: raise DistutilsSetupError( "each element of 'ext_modules' option must be an " "Extension instance or 2-tuple") ext_name, build_info = ext log.warn(("old-style (ext_name, build_info) tuple found in " "ext_modules for extension '%s'" "-- please convert to Extension instance" % ext_name)) if not (isinstance(ext_name, str) and extension_name_re.match(ext_name)): raise DistutilsSetupError( "first element of each tuple in 'ext_modules' " "must be the extension name (a string)") if not isinstance(build_info, dict): raise DistutilsSetupError( "second element of each tuple in 'ext_modules' " "must be a dictionary (build info)") # OK, the (ext_name, build_info) dict is type-safe: convert it # to an Extension instance. ext = Extension(ext_name, build_info['sources']) # Easy stuff: one-to-one mapping from dict elements to # instance attributes. for key in ('include_dirs', 'library_dirs', 'libraries', 'extra_objects', 'extra_compile_args', 'extra_link_args'): val = build_info.get(key) if val is not None: setattr(ext, key, val) # Medium-easy stuff: same syntax/semantics, different names. ext.runtime_library_dirs = build_info.get('rpath') if 'def_file' in build_info: log.warn("'def_file' element of build info dict " "no longer supported") # Non-trivial stuff: 'macros' split into 'define_macros' # and 'undef_macros'. macros = build_info.get('macros') if macros: ext.define_macros = [] ext.undef_macros = [] for macro in macros: if not (isinstance(macro, tuple) and len(macro) in (1, 2)): raise DistutilsSetupError( "'macros' element of build info dict " "must be 1- or 2-tuple") if len(macro) == 1: ext.undef_macros.append(macro[0]) elif len(macro) == 2: ext.define_macros.append(macro) extensions[i] = ext def get_source_files(self): self.check_extensions_list(self.extensions) filenames = [] # Wouldn't it be neat if we knew the names of header files too... for ext in self.extensions: filenames.extend(ext.sources) return filenames def get_outputs(self): # Sanity check the 'extensions' list -- can't assume this is being # done in the same run as a 'build_extensions()' call (in fact, we # can probably assume that it *isn't*!). self.check_extensions_list(self.extensions) # And build the list of output (built) filenames. Note that this # ignores the 'inplace' flag, and assumes everything goes in the # "build" tree. outputs = [] for ext in self.extensions: outputs.append(self.get_ext_fullpath(ext.name)) return outputs def build_extensions(self): # First, sanity-check the 'extensions' list self.check_extensions_list(self.extensions) for ext in self.extensions: try: self.build_extension(ext) except (CCompilerError, DistutilsError, CompileError) as e: if not ext.optional: raise self.warn('building extension "%s" failed: %s' % (ext.name, e)) def build_extension(self, ext): sources = ext.sources if sources is None or not isinstance(sources, (list, tuple)): raise DistutilsSetupError( "in 'ext_modules' option (extension '%s'), " "'sources' must be present and must be " "a list of source filenames" % ext.name) sources = list(sources) ext_path = self.get_ext_fullpath(ext.name) depends = sources + ext.depends if not (self.force or newer_group(depends, ext_path, 'newer')): log.debug("skipping '%s' extension (up-to-date)", ext.name) return else: log.info("building '%s' extension", ext.name) # First, scan the sources for SWIG definition files (.i), run # SWIG on 'em to create .c files, and modify the sources list # accordingly. sources = self.swig_sources(sources, ext) # Next, compile the source code to object files. # XXX not honouring 'define_macros' or 'undef_macros' -- the # CCompiler API needs to change to accommodate this, and I # want to do one thing at a time! # Two possible sources for extra compiler arguments: # - 'extra_compile_args' in Extension object # - CFLAGS environment variable (not particularly # elegant, but people seem to expect it and I # guess it's useful) # The environment variable should take precedence, and # any sensible compiler will give precedence to later # command line args. Hence we combine them in order: extra_args = ext.extra_compile_args or [] macros = ext.define_macros[:] for undef in ext.undef_macros: macros.append((undef,)) objects = self.compiler.compile(sources, output_dir=self.build_temp, macros=macros, include_dirs=ext.include_dirs, debug=self.debug, extra_postargs=extra_args, depends=ext.depends) # XXX -- this is a Vile HACK! # # The setup.py script for Python on Unix needs to be able to # get this list so it can perform all the clean up needed to # avoid keeping object files around when cleaning out a failed # build of an extension module. Since Distutils does not # track dependencies, we have to get rid of intermediates to # ensure all the intermediates will be properly re-built. # self._built_objects = objects[:] # Now link the object files together into a "shared object" -- # of course, first we have to figure out all the other things # that go into the mix. if ext.extra_objects: objects.extend(ext.extra_objects) extra_args = ext.extra_link_args or [] # Detect target language, if not provided language = ext.language or self.compiler.detect_language(sources) self.compiler.link_shared_object( objects, ext_path, libraries=self.get_libraries(ext), library_dirs=ext.library_dirs, runtime_library_dirs=ext.runtime_library_dirs, extra_postargs=extra_args, export_symbols=self.get_export_symbols(ext), debug=self.debug, build_temp=self.build_temp, target_lang=language) def swig_sources(self, sources, extension): """Walk the list of source files in 'sources', looking for SWIG interface (.i) files. Run SWIG on all that are found, and return a modified 'sources' list with SWIG source files replaced by the generated C (or C++) files. """ new_sources = [] swig_sources = [] swig_targets = {} # XXX this drops generated C/C++ files into the source tree, which # is fine for developers who want to distribute the generated # source -- but there should be an option to put SWIG output in # the temp dir. if self.swig_cpp: log.warn("--swig-cpp is deprecated - use --swig-opts=-c++") if self.swig_cpp or ('-c++' in self.swig_opts) or \ ('-c++' in extension.swig_opts): target_ext = '.cpp' else: target_ext = '.c' for source in sources: (base, ext) = os.path.splitext(source) if ext == ".i": # SWIG interface file new_sources.append(base + '_wrap' + target_ext) swig_sources.append(source) swig_targets[source] = new_sources[-1] else: new_sources.append(source) if not swig_sources: return new_sources swig = self.swig or self.find_swig() swig_cmd = [swig, "-python"] swig_cmd.extend(self.swig_opts) if self.swig_cpp: swig_cmd.append("-c++") # Do not override commandline arguments if not self.swig_opts: for o in extension.swig_opts: swig_cmd.append(o) for source in swig_sources: target = swig_targets[source] log.info("swigging %s to %s", source, target) self.spawn(swig_cmd + ["-o", target, source]) return new_sources def find_swig(self): """Return the name of the SWIG executable. On Unix, this is just "swig" -- it should be in the PATH. Tries a bit harder on Windows. """ if os.name == "posix": return "swig" elif os.name == "nt": # Look for SWIG in its standard installation directory on # Windows (or so I presume!). If we find it there, great; # if not, act like Unix and assume it's in the PATH. for vers in ("1.3", "1.2", "1.1"): fn = os.path.join("c:\\swig%s" % vers, "swig.exe") if os.path.isfile(fn): return fn else: return "swig.exe" elif os.name == "os2": # assume swig available in the PATH. return "swig.exe" else: raise DistutilsPlatformError( "I don't know how to find (much less run) SWIG " "on platform '%s'" % os.name) # -- Name generators ----------------------------------------------- # (extension names, filenames, whatever) def get_ext_fullpath(self, ext_name): """Returns the path of the filename for a given extension. The file is located in `build_lib` or directly in the package (inplace option). """ fullname = self.get_ext_fullname(ext_name) modpath = fullname.split('.') filename = self.get_ext_filename(modpath[-1]) if not self.inplace: # no further work needed # returning : # build_dir/package/path/filename filename = os.path.join(*modpath[:-1]+[filename]) return os.path.join(self.build_lib, filename) # the inplace option requires to find the package directory # using the build_py command for that package = '.'.join(modpath[0:-1]) build_py = self.get_finalized_command('build_py') package_dir = os.path.abspath(build_py.get_package_dir(package)) # returning # package_dir/filename return os.path.join(package_dir, filename) def get_ext_fullname(self, ext_name): """Returns the fullname of a given extension name. Adds the `package.` prefix""" if self.package is None: return ext_name else: return self.package + '.' + ext_name def get_ext_filename(self, ext_name): r"""Convert the name of an extension (eg. "foo.bar") into the name of the file from which it will be loaded (eg. "foo/bar.so", or "foo\bar.pyd"). """ from distutils.sysconfig import get_config_var ext_path = ext_name.split('.') # OS/2 has an 8 character module (extension) limit :-( if os.name == "os2": ext_path[len(ext_path) - 1] = ext_path[len(ext_path) - 1][:8] # extensions in debug_mode are named 'module_d.pyd' under windows ext_suffix = get_config_var('EXT_SUFFIX') if os.name == 'nt' and self.debug: return os.path.join(*ext_path) + '_d' + ext_suffix return os.path.join(*ext_path) + ext_suffix def get_export_symbols(self, ext): """Return the list of symbols that a shared extension has to export. This either uses 'ext.export_symbols' or, if it's not provided, "PyInit_" + module_name. Only relevant on Windows, where the .pyd file (DLL) must export the module "PyInit_" function. """ initfunc_name = "PyInit_" + ext.name.split('.')[-1] if initfunc_name not in ext.export_symbols: ext.export_symbols.append(initfunc_name) return ext.export_symbols def get_libraries(self, ext): """Return the list of libraries to link against when building a shared extension. On most platforms, this is just 'ext.libraries'; on Windows and OS/2, we add the Python library (eg. python20.dll). """ # The python library is always needed on Windows. For MSVC, this # is redundant, since the library is mentioned in a pragma in # pyconfig.h that MSVC groks. The other Windows compilers all seem # to need it mentioned explicitly, though, so that's what we do. # Append '_d' to the python import library on debug builds. if sys.platform == "win32": from distutils.msvccompiler import MSVCCompiler if not isinstance(self.compiler, MSVCCompiler): template = "python%d%d" if self.debug: template = template + '_d' pythonlib = (template % (sys.hexversion >> 24, (sys.hexversion >> 16) & 0xff)) # don't extend ext.libraries, it may be shared with other # extensions, it is a reference to the original list return ext.libraries + [pythonlib] else: return ext.libraries elif sys.platform == "os2emx": # EMX/GCC requires the python library explicitly, and I # believe VACPP does as well (though not confirmed) - AIM Apr01 template = "python%d%d" # debug versions of the main DLL aren't supported, at least # not at this time - AIM Apr01 #if self.debug: # template = template + '_d' pythonlib = (template % (sys.hexversion >> 24, (sys.hexversion >> 16) & 0xff)) # don't extend ext.libraries, it may be shared with other # extensions, it is a reference to the original list return ext.libraries + [pythonlib] elif sys.platform[:6] == "cygwin": template = "python%d.%d" pythonlib = (template % (sys.hexversion >> 24, (sys.hexversion >> 16) & 0xff)) # don't extend ext.libraries, it may be shared with other # extensions, it is a reference to the original list return ext.libraries + [pythonlib] elif sys.platform[:6] == "atheos": from distutils import sysconfig template = "python%d.%d" pythonlib = (template % (sys.hexversion >> 24, (sys.hexversion >> 16) & 0xff)) # Get SHLIBS from Makefile extra = [] for lib in sysconfig.get_config_var('SHLIBS').split(): if lib.startswith('-l'): extra.append(lib[2:]) else: extra.append(lib) # don't extend ext.libraries, it may be shared with other # extensions, it is a reference to the original list return ext.libraries + [pythonlib, "m"] + extra elif sys.platform == 'darwin': # Don't use the default code below return ext.libraries elif sys.platform[:3] == 'aix': # Don't use the default code below return ext.libraries else: from distutils import sysconfig if sysconfig.get_config_var('Py_ENABLE_SHARED'): pythonlib = 'python{}.{}{}'.format( sys.hexversion >> 24, (sys.hexversion >> 16) & 0xff, sys.abiflags) return ext.libraries + [pythonlib] else: return ext.libraries PK!YA command/install_lib.pynu["""distutils.command.install_lib Implements the Distutils 'install_lib' command (install all Python modules).""" import os import imp import sys from distutils.core import Command from distutils.errors import DistutilsOptionError # Extension for Python source files. PYTHON_SOURCE_EXTENSION = ".py" class install_lib(Command): description = "install all Python modules (extensions and pure Python)" # The byte-compilation options are a tad confusing. Here are the # possible scenarios: # 1) no compilation at all (--no-compile --no-optimize) # 2) compile .pyc only (--compile --no-optimize; default) # 3) compile .pyc and "level 1" .pyo (--compile --optimize) # 4) compile "level 1" .pyo only (--no-compile --optimize) # 5) compile .pyc and "level 2" .pyo (--compile --optimize-more) # 6) compile "level 2" .pyo only (--no-compile --optimize-more) # # The UI for this is two option, 'compile' and 'optimize'. # 'compile' is strictly boolean, and only decides whether to # generate .pyc files. 'optimize' is three-way (0, 1, or 2), and # decides both whether to generate .pyo files and what level of # optimization to use. user_options = [ ('install-dir=', 'd', "directory to install to"), ('build-dir=','b', "build directory (where to install from)"), ('force', 'f', "force installation (overwrite existing files)"), ('compile', 'c', "compile .py to .pyc [default]"), ('no-compile', None, "don't compile .py files"), ('optimize=', 'O', "also compile with optimization: -O1 for \"python -O\", " "-O2 for \"python -OO\", and -O0 to disable [default: -O0]"), ('skip-build', None, "skip the build steps"), ] boolean_options = ['force', 'compile', 'skip-build'] negative_opt = {'no-compile' : 'compile'} def initialize_options(self): # let the 'install' command dictate our installation directory self.install_dir = None self.build_dir = None self.force = 0 self.compile = None self.optimize = None self.skip_build = None def finalize_options(self): # Get all the information we need to install pure Python modules # from the umbrella 'install' command -- build (source) directory, # install (target) directory, and whether to compile .py files. self.set_undefined_options('install', ('build_lib', 'build_dir'), ('install_lib', 'install_dir'), ('force', 'force'), ('compile', 'compile'), ('optimize', 'optimize'), ('skip_build', 'skip_build'), ) if self.compile is None: self.compile = True if self.optimize is None: self.optimize = False if not isinstance(self.optimize, int): try: self.optimize = int(self.optimize) if self.optimize not in (0, 1, 2): raise AssertionError except (ValueError, AssertionError): raise DistutilsOptionError("optimize must be 0, 1, or 2") def run(self): # Make sure we have built everything we need first self.build() # Install everything: simply dump the entire contents of the build # directory to the installation directory (that's the beauty of # having a build directory!) outfiles = self.install() # (Optionally) compile .py to .pyc if outfiles is not None and self.distribution.has_pure_modules(): self.byte_compile(outfiles) # -- Top-level worker functions ------------------------------------ # (called from 'run()') def build(self): if not self.skip_build: if self.distribution.has_pure_modules(): self.run_command('build_py') if self.distribution.has_ext_modules(): self.run_command('build_ext') def install(self): if os.path.isdir(self.build_dir): outfiles = self.copy_tree(self.build_dir, self.install_dir) else: self.warn("'%s' does not exist -- no Python modules to install" % self.build_dir) return return outfiles def byte_compile(self, files): if sys.dont_write_bytecode: self.warn('byte-compiling is disabled, skipping.') return from distutils.util import byte_compile # Get the "--root" directory supplied to the "install" command, # and use it as a prefix to strip off the purported filename # encoded in bytecode files. This is far from complete, but it # should at least generate usable bytecode in RPM distributions. install_root = self.get_finalized_command('install').root if self.compile: byte_compile(files, optimize=0, force=self.force, prefix=install_root, dry_run=self.dry_run) if self.optimize > 0: byte_compile(files, optimize=self.optimize, force=self.force, prefix=install_root, verbose=self.verbose, dry_run=self.dry_run) # -- Utility methods ----------------------------------------------- def _mutate_outputs(self, has_any, build_cmd, cmd_option, output_dir): if not has_any: return [] build_cmd = self.get_finalized_command(build_cmd) build_files = build_cmd.get_outputs() build_dir = getattr(build_cmd, cmd_option) prefix_len = len(build_dir) + len(os.sep) outputs = [] for file in build_files: outputs.append(os.path.join(output_dir, file[prefix_len:])) return outputs def _bytecode_filenames(self, py_filenames): bytecode_files = [] for py_file in py_filenames: # Since build_py handles package data installation, the # list of outputs can contain more than just .py files. # Make sure we only report bytecode for the .py files. ext = os.path.splitext(os.path.normcase(py_file))[1] if ext != PYTHON_SOURCE_EXTENSION: continue if self.compile: bytecode_files.append(imp.cache_from_source( py_file, debug_override=True)) if self.optimize > 0: bytecode_files.append(imp.cache_from_source( py_file, debug_override=False)) return bytecode_files # -- External interface -------------------------------------------- # (called by outsiders) def get_outputs(self): """Return the list of files that would be installed if this command were actually run. Not affected by the "dry-run" flag or whether modules have actually been built yet. """ pure_outputs = \ self._mutate_outputs(self.distribution.has_pure_modules(), 'build_py', 'build_lib', self.install_dir) if self.compile: bytecode_outputs = self._bytecode_filenames(pure_outputs) else: bytecode_outputs = [] ext_outputs = \ self._mutate_outputs(self.distribution.has_ext_modules(), 'build_ext', 'build_lib', self.install_dir) return pure_outputs + bytecode_outputs + ext_outputs def get_inputs(self): """Get the list of files that are input to this command, ie. the files that get installed as they are named in the build tree. The files in this list correspond one-to-one to the output filenames returned by 'get_outputs()'. """ inputs = [] if self.distribution.has_pure_modules(): build_py = self.get_finalized_command('build_py') inputs.extend(build_py.get_outputs()) if self.distribution.has_ext_modules(): build_ext = self.get_finalized_command('build_ext') inputs.extend(build_ext.get_outputs()) return inputs PK!uas--command/register.pynu["""distutils.command.register Implements the Distutils 'register' command (register with the repository). """ # created 2002/10/21, Richard Jones import os, string, getpass import io import urllib.parse, urllib.request from warnings import warn from distutils.core import PyPIRCCommand from distutils.errors import * from distutils import log class register(PyPIRCCommand): description = ("register the distribution with the Python package index") user_options = PyPIRCCommand.user_options + [ ('list-classifiers', None, 'list the valid Trove classifiers'), ('strict', None , 'Will stop the registering if the meta-data are not fully compliant') ] boolean_options = PyPIRCCommand.boolean_options + [ 'verify', 'list-classifiers', 'strict'] sub_commands = [('check', lambda self: True)] def initialize_options(self): PyPIRCCommand.initialize_options(self) self.list_classifiers = 0 self.strict = 0 def finalize_options(self): PyPIRCCommand.finalize_options(self) # setting options for the `check` subcommand check_options = {'strict': ('register', self.strict), 'restructuredtext': ('register', 1)} self.distribution.command_options['check'] = check_options def run(self): self.finalize_options() self._set_config() # Run sub commands for cmd_name in self.get_sub_commands(): self.run_command(cmd_name) if self.dry_run: self.verify_metadata() elif self.list_classifiers: self.classifiers() else: self.send_metadata() def check_metadata(self): """Deprecated API.""" warn("distutils.command.register.check_metadata is deprecated, \ use the check command instead", PendingDeprecationWarning) check = self.distribution.get_command_obj('check') check.ensure_finalized() check.strict = self.strict check.restructuredtext = 1 check.run() def _set_config(self): ''' Reads the configuration file and set attributes. ''' config = self._read_pypirc() if config != {}: self.username = config['username'] self.password = config['password'] self.repository = config['repository'] self.realm = config['realm'] self.has_config = True else: if self.repository not in ('pypi', self.DEFAULT_REPOSITORY): raise ValueError('%s not found in .pypirc' % self.repository) if self.repository == 'pypi': self.repository = self.DEFAULT_REPOSITORY self.has_config = False def classifiers(self): ''' Fetch the list of classifiers from the server. ''' url = self.repository+'?:action=list_classifiers' response = urllib.request.urlopen(url) log.info(self._read_pypi_response(response)) def verify_metadata(self): ''' Send the metadata to the package index server to be checked. ''' # send the info to the server and report the result (code, result) = self.post_to_server(self.build_post_data('verify')) log.info('Server response (%s): %s' % (code, result)) def send_metadata(self): ''' Send the metadata to the package index server. Well, do the following: 1. figure who the user is, and then 2. send the data as a Basic auth'ed POST. First we try to read the username/password from $HOME/.pypirc, which is a ConfigParser-formatted file with a section [distutils] containing username and password entries (both in clear text). Eg: [distutils] index-servers = pypi [pypi] username: fred password: sekrit Otherwise, to figure who the user is, we offer the user three choices: 1. use existing login, 2. register as a new user, or 3. set the password to a random string and email the user. ''' # see if we can short-cut and get the username/password from the # config if self.has_config: choice = '1' username = self.username password = self.password else: choice = 'x' username = password = '' # get the user's login info choices = '1 2 3 4'.split() while choice not in choices: self.announce('''\ We need to know who you are, so please choose either: 1. use your existing login, 2. register as a new user, 3. have the server generate a new password for you (and email it to you), or 4. quit Your selection [default 1]: ''', log.INFO) choice = input() if not choice: choice = '1' elif choice not in choices: print('Please choose one of the four options!') if choice == '1': # get the username and password while not username: username = input('Username: ') while not password: password = getpass.getpass('Password: ') # set up the authentication auth = urllib.request.HTTPPasswordMgr() host = urllib.parse.urlparse(self.repository)[1] auth.add_password(self.realm, host, username, password) # send the info to the server and report the result code, result = self.post_to_server(self.build_post_data('submit'), auth) self.announce('Server response (%s): %s' % (code, result), log.INFO) # possibly save the login if code == 200: if self.has_config: # sharing the password in the distribution instance # so the upload command can reuse it self.distribution.password = password else: self.announce(('I can store your PyPI login so future ' 'submissions will be faster.'), log.INFO) self.announce('(the login will be stored in %s)' % \ self._get_rc_file(), log.INFO) choice = 'X' while choice.lower() not in 'yn': choice = input('Save your login (y/N)?') if not choice: choice = 'n' if choice.lower() == 'y': self._store_pypirc(username, password) elif choice == '2': data = {':action': 'user'} data['name'] = data['password'] = data['email'] = '' data['confirm'] = None while not data['name']: data['name'] = input('Username: ') while data['password'] != data['confirm']: while not data['password']: data['password'] = getpass.getpass('Password: ') while not data['confirm']: data['confirm'] = getpass.getpass(' Confirm: ') if data['password'] != data['confirm']: data['password'] = '' data['confirm'] = None print("Password and confirm don't match!") while not data['email']: data['email'] = input(' EMail: ') code, result = self.post_to_server(data) if code != 200: log.info('Server response (%s): %s' % (code, result)) else: log.info('You will receive an email shortly.') log.info(('Follow the instructions in it to ' 'complete registration.')) elif choice == '3': data = {':action': 'password_reset'} data['email'] = '' while not data['email']: data['email'] = input('Your email address: ') code, result = self.post_to_server(data) log.info('Server response (%s): %s' % (code, result)) def build_post_data(self, action): # figure the data to send - the metadata plus some additional # information used by the package server meta = self.distribution.metadata data = { ':action': action, 'metadata_version' : '1.0', 'name': meta.get_name(), 'version': meta.get_version(), 'summary': meta.get_description(), 'home_page': meta.get_url(), 'author': meta.get_contact(), 'author_email': meta.get_contact_email(), 'license': meta.get_licence(), 'description': meta.get_long_description(), 'keywords': meta.get_keywords(), 'platform': meta.get_platforms(), 'classifiers': meta.get_classifiers(), 'download_url': meta.get_download_url(), # PEP 314 'provides': meta.get_provides(), 'requires': meta.get_requires(), 'obsoletes': meta.get_obsoletes(), } if data['provides'] or data['requires'] or data['obsoletes']: data['metadata_version'] = '1.1' return data def post_to_server(self, data, auth=None): ''' Post a query to the server, and return a string response. ''' if 'name' in data: self.announce('Registering %s to %s' % (data['name'], self.repository), log.INFO) # Build up the MIME payload for the urllib2 POST data boundary = '--------------GHSKFJDLGDS7543FJKLFHRE75642756743254' sep_boundary = '\n--' + boundary end_boundary = sep_boundary + '--' body = io.StringIO() for key, value in data.items(): # handle multiple entries for the same name if type(value) not in (type([]), type( () )): value = [value] for value in value: value = str(value) body.write(sep_boundary) body.write('\nContent-Disposition: form-data; name="%s"'%key) body.write("\n\n") body.write(value) if value and value[-1] == '\r': body.write('\n') # write an extra newline (lurve Macs) body.write(end_boundary) body.write("\n") body = body.getvalue().encode("utf-8") # build the Request headers = { 'Content-type': 'multipart/form-data; boundary=%s; charset=utf-8'%boundary, 'Content-length': str(len(body)) } req = urllib.request.Request(self.repository, body, headers) # handle HTTP and include the Basic Auth handler opener = urllib.request.build_opener( urllib.request.HTTPBasicAuthHandler(password_mgr=auth) ) data = '' try: result = opener.open(req) except urllib.error.HTTPError as e: if self.show_response: data = e.fp.read() result = e.code, e.msg except urllib.error.URLError as e: result = 500, str(e) else: if self.show_response: data = result.read() result = 200, 'OK' if self.show_response: dashes = '-' * 75 self.announce('%s%r%s' % (dashes, data, dashes)) return result PK!llcommand/check.pynu["""distutils.command.check Implements the Distutils 'check' command. """ from distutils.core import Command from distutils.errors import DistutilsSetupError try: # docutils is installed from docutils.utils import Reporter from docutils.parsers.rst import Parser from docutils import frontend from docutils import nodes from io import StringIO class SilentReporter(Reporter): def __init__(self, source, report_level, halt_level, stream=None, debug=0, encoding='ascii', error_handler='replace'): self.messages = [] Reporter.__init__(self, source, report_level, halt_level, stream, debug, encoding, error_handler) def system_message(self, level, message, *children, **kwargs): self.messages.append((level, message, children, kwargs)) return nodes.system_message(message, level=level, type=self.levels[level], *children, **kwargs) HAS_DOCUTILS = True except Exception: # Catch all exceptions because exceptions besides ImportError probably # indicate that docutils is not ported to Py3k. HAS_DOCUTILS = False class check(Command): """This command checks the meta-data of the package. """ description = ("perform some checks on the package") user_options = [('metadata', 'm', 'Verify meta-data'), ('restructuredtext', 'r', ('Checks if long string meta-data syntax ' 'are reStructuredText-compliant')), ('strict', 's', 'Will exit with an error if a check fails')] boolean_options = ['metadata', 'restructuredtext', 'strict'] def initialize_options(self): """Sets default values for options.""" self.restructuredtext = 0 self.metadata = 1 self.strict = 0 self._warnings = 0 def finalize_options(self): pass def warn(self, msg): """Counts the number of warnings that occurs.""" self._warnings += 1 return Command.warn(self, msg) def run(self): """Runs the command.""" # perform the various tests if self.metadata: self.check_metadata() if self.restructuredtext: if HAS_DOCUTILS: self.check_restructuredtext() elif self.strict: raise DistutilsSetupError('The docutils package is needed.') # let's raise an error in strict mode, if we have at least # one warning if self.strict and self._warnings > 0: raise DistutilsSetupError('Please correct your package.') def check_metadata(self): """Ensures that all required elements of meta-data are supplied. name, version, URL, (author and author_email) or (maintainer and maintainer_email)). Warns if any are missing. """ metadata = self.distribution.metadata missing = [] for attr in ('name', 'version', 'url'): if not (hasattr(metadata, attr) and getattr(metadata, attr)): missing.append(attr) if missing: self.warn("missing required meta-data: %s" % ', '.join(missing)) if metadata.author: if not metadata.author_email: self.warn("missing meta-data: if 'author' supplied, " + "'author_email' must be supplied too") elif metadata.maintainer: if not metadata.maintainer_email: self.warn("missing meta-data: if 'maintainer' supplied, " + "'maintainer_email' must be supplied too") else: self.warn("missing meta-data: either (author and author_email) " + "or (maintainer and maintainer_email) " + "must be supplied") def check_restructuredtext(self): """Checks if the long string fields are reST-compliant.""" data = self.distribution.get_long_description() for warning in self._check_rst_data(data): line = warning[-1].get('line') if line is None: warning = warning[1] else: warning = '%s (line %s)' % (warning[1], line) self.warn(warning) def _check_rst_data(self, data): """Returns warnings when the provided data doesn't compile.""" source_path = StringIO() parser = Parser() settings = frontend.OptionParser().get_default_values() settings.tab_width = 4 settings.pep_references = None settings.rfc_references = None reporter = SilentReporter(source_path, settings.report_level, settings.halt_level, stream=settings.warning_stream, debug=settings.debug, encoding=settings.error_encoding, error_handler=settings.error_encoding_error_handler) document = nodes.document(settings, reporter, source=source_path) document.note_source(source_path, -1) try: parser.parse(data, document) except AttributeError: reporter.messages.append((-1, 'Could not finish the parsing.', '', {})) return reporter.messages PK!ټE%%command/build.pynu["""distutils.command.build Implements the Distutils 'build' command.""" import sys, os from distutils.core import Command from distutils.errors import DistutilsOptionError from distutils.util import get_platform def show_compilers(): from distutils.ccompiler import show_compilers show_compilers() class build(Command): description = "build everything needed to install" user_options = [ ('build-base=', 'b', "base directory for build library"), ('build-purelib=', None, "build directory for platform-neutral distributions"), ('build-platlib=', None, "build directory for platform-specific distributions"), ('build-lib=', None, "build directory for all distribution (defaults to either " + "build-purelib or build-platlib"), ('build-scripts=', None, "build directory for scripts"), ('build-temp=', 't', "temporary build directory"), ('plat-name=', 'p', "platform name to build for, if supported " "(default: %s)" % get_platform()), ('compiler=', 'c', "specify the compiler type"), ('debug', 'g', "compile extensions and libraries with debugging information"), ('force', 'f', "forcibly build everything (ignore file timestamps)"), ('executable=', 'e', "specify final destination interpreter path (build.py)"), ] boolean_options = ['debug', 'force'] help_options = [ ('help-compiler', None, "list available compilers", show_compilers), ] def initialize_options(self): self.build_base = 'build' # these are decided only after 'build_base' has its final value # (unless overridden by the user or client) self.build_purelib = None self.build_platlib = None self.build_lib = None self.build_temp = None self.build_scripts = None self.compiler = None self.plat_name = None self.debug = None self.force = 0 self.executable = None def finalize_options(self): if self.plat_name is None: self.plat_name = get_platform() else: # plat-name only supported for windows (other platforms are # supported via ./configure flags, if at all). Avoid misleading # other platforms. if os.name != 'nt': raise DistutilsOptionError( "--plat-name only supported on Windows (try " "using './configure --help' on your platform)") plat_specifier = ".%s-%s" % (self.plat_name, sys.version[0:3]) # Make it so Python 2.x and Python 2.x with --with-pydebug don't # share the same build directories. Doing so confuses the build # process for C modules if hasattr(sys, 'gettotalrefcount'): plat_specifier += '-pydebug' # 'build_purelib' and 'build_platlib' just default to 'lib' and # 'lib.' under the base build directory. We only use one of # them for a given distribution, though -- if self.build_purelib is None: self.build_purelib = os.path.join(self.build_base, 'lib') if self.build_platlib is None: self.build_platlib = os.path.join(self.build_base, 'lib' + plat_specifier) # 'build_lib' is the actual directory that we will use for this # particular module distribution -- if user didn't supply it, pick # one of 'build_purelib' or 'build_platlib'. if self.build_lib is None: if self.distribution.ext_modules: self.build_lib = self.build_platlib else: self.build_lib = self.build_purelib # 'build_temp' -- temporary directory for compiler turds, # "build/temp." if self.build_temp is None: self.build_temp = os.path.join(self.build_base, 'temp' + plat_specifier) if self.build_scripts is None: self.build_scripts = os.path.join(self.build_base, 'scripts-' + sys.version[0:3]) if self.executable is None: self.executable = os.path.normpath(sys.executable) def run(self): # Run all relevant sub-commands. This will be some subset of: # - build_py - pure Python modules # - build_clib - standalone C libraries # - build_ext - Python extensions # - build_scripts - (Python) scripts for cmd_name in self.get_sub_commands(): self.run_command(cmd_name) # -- Predicates for the sub-command list --------------------------- def has_pure_modules(self): return self.distribution.has_pure_modules() def has_c_libraries(self): return self.distribution.has_c_libraries() def has_ext_modules(self): return self.distribution.has_ext_modules() def has_scripts(self): return self.distribution.has_scripts() sub_commands = [('build_py', has_pure_modules), ('build_clib', has_c_libraries), ('build_ext', has_ext_modules), ('build_scripts', has_scripts), ] PK!v3;VVcommand/build_clib.pynu["""distutils.command.build_clib Implements the Distutils 'build_clib' command, to build a C/C++ library that is included in the module distribution and needed by an extension module.""" # XXX this module has *lots* of code ripped-off quite transparently from # build_ext.py -- not surprisingly really, as the work required to build # a static library from a collection of C source files is not really all # that different from what's required to build a shared object file from # a collection of C source files. Nevertheless, I haven't done the # necessary refactoring to account for the overlap in code between the # two modules, mainly because a number of subtle details changed in the # cut 'n paste. Sigh. import os from distutils.core import Command from distutils.errors import * from distutils.sysconfig import customize_compiler from distutils import log def show_compilers(): from distutils.ccompiler import show_compilers show_compilers() class build_clib(Command): description = "build C/C++ libraries used by Python extensions" user_options = [ ('build-clib=', 'b', "directory to build C/C++ libraries to"), ('build-temp=', 't', "directory to put temporary build by-products"), ('debug', 'g', "compile with debugging information"), ('force', 'f', "forcibly build everything (ignore file timestamps)"), ('compiler=', 'c', "specify the compiler type"), ] boolean_options = ['debug', 'force'] help_options = [ ('help-compiler', None, "list available compilers", show_compilers), ] def initialize_options(self): self.build_clib = None self.build_temp = None # List of libraries to build self.libraries = None # Compilation options for all libraries self.include_dirs = None self.define = None self.undef = None self.debug = None self.force = 0 self.compiler = None def finalize_options(self): # This might be confusing: both build-clib and build-temp default # to build-temp as defined by the "build" command. This is because # I think that C libraries are really just temporary build # by-products, at least from the point of view of building Python # extensions -- but I want to keep my options open. self.set_undefined_options('build', ('build_temp', 'build_clib'), ('build_temp', 'build_temp'), ('compiler', 'compiler'), ('debug', 'debug'), ('force', 'force')) self.libraries = self.distribution.libraries if self.libraries: self.check_library_list(self.libraries) if self.include_dirs is None: self.include_dirs = self.distribution.include_dirs or [] if isinstance(self.include_dirs, str): self.include_dirs = self.include_dirs.split(os.pathsep) # XXX same as for build_ext -- what about 'self.define' and # 'self.undef' ? def run(self): if not self.libraries: return # Yech -- this is cut 'n pasted from build_ext.py! from distutils.ccompiler import new_compiler self.compiler = new_compiler(compiler=self.compiler, dry_run=self.dry_run, force=self.force) customize_compiler(self.compiler) if self.include_dirs is not None: self.compiler.set_include_dirs(self.include_dirs) if self.define is not None: # 'define' option is a list of (name,value) tuples for (name,value) in self.define: self.compiler.define_macro(name, value) if self.undef is not None: for macro in self.undef: self.compiler.undefine_macro(macro) self.build_libraries(self.libraries) def check_library_list(self, libraries): """Ensure that the list of libraries is valid. `library` is presumably provided as a command option 'libraries'. This method checks that it is a list of 2-tuples, where the tuples are (library_name, build_info_dict). Raise DistutilsSetupError if the structure is invalid anywhere; just returns otherwise. """ if not isinstance(libraries, list): raise DistutilsSetupError( "'libraries' option must be a list of tuples") for lib in libraries: if not isinstance(lib, tuple) and len(lib) != 2: raise DistutilsSetupError( "each element of 'libraries' must a 2-tuple") name, build_info = lib if not isinstance(name, str): raise DistutilsSetupError( "first element of each tuple in 'libraries' " "must be a string (the library name)") if '/' in name or (os.sep != '/' and os.sep in name): raise DistutilsSetupError("bad library name '%s': " "may not contain directory separators" % lib[0]) if not isinstance(build_info, dict): raise DistutilsSetupError( "second element of each tuple in 'libraries' " "must be a dictionary (build info)") def get_library_names(self): # Assume the library list is valid -- 'check_library_list()' is # called from 'finalize_options()', so it should be! if not self.libraries: return None lib_names = [] for (lib_name, build_info) in self.libraries: lib_names.append(lib_name) return lib_names def get_source_files(self): self.check_library_list(self.libraries) filenames = [] for (lib_name, build_info) in self.libraries: sources = build_info.get('sources') if sources is None or not isinstance(sources, (list, tuple)): raise DistutilsSetupError( "in 'libraries' option (library '%s'), " "'sources' must be present and must be " "a list of source filenames" % lib_name) filenames.extend(sources) return filenames def build_libraries(self, libraries): for (lib_name, build_info) in libraries: sources = build_info.get('sources') if sources is None or not isinstance(sources, (list, tuple)): raise DistutilsSetupError( "in 'libraries' option (library '%s'), " "'sources' must be present and must be " "a list of source filenames" % lib_name) sources = list(sources) log.info("building '%s' library", lib_name) # First, compile the source code to object files in the library # directory. (This should probably change to putting object # files in a temporary build directory.) macros = build_info.get('macros') include_dirs = build_info.get('include_dirs') objects = self.compiler.compile(sources, output_dir=self.build_temp, macros=macros, include_dirs=include_dirs, debug=self.debug) # Now "link" the object files together into a static library. # (On Unix at least, this isn't really linking -- it just # builds an archive. Whatever.) self.compiler.create_static_lib(objects, lib_name, output_dir=self.build_clib, debug=self.debug) PK!   command/install_data.pynu["""distutils.command.install_data Implements the Distutils 'install_data' command, for installing platform-independent data files.""" # contributed by Bastian Kleineidam import os from distutils.core import Command from distutils.util import change_root, convert_path class install_data(Command): description = "install data files" user_options = [ ('install-dir=', 'd', "base directory for installing data files " "(default: installation base dir)"), ('root=', None, "install everything relative to this alternate root directory"), ('force', 'f', "force installation (overwrite existing files)"), ] boolean_options = ['force'] def initialize_options(self): self.install_dir = None self.outfiles = [] self.root = None self.force = 0 self.data_files = self.distribution.data_files self.warn_dir = 1 def finalize_options(self): self.set_undefined_options('install', ('install_data', 'install_dir'), ('root', 'root'), ('force', 'force'), ) def run(self): self.mkpath(self.install_dir) for f in self.data_files: if isinstance(f, str): # it's a simple file, so copy it f = convert_path(f) if self.warn_dir: self.warn("setup script did not provide a directory for " "'%s' -- installing right in '%s'" % (f, self.install_dir)) (out, _) = self.copy_file(f, self.install_dir) self.outfiles.append(out) else: # it's a tuple with path to install to and a list of files dir = convert_path(f[0]) if not os.path.isabs(dir): dir = os.path.join(self.install_dir, dir) elif self.root: dir = change_root(self.root, dir) self.mkpath(dir) if f[1] == []: # If there are no files listed, the user must be # trying to create an empty directory, so add the # directory to the list of output files. self.outfiles.append(dir) else: # Copy files, adding them to the list of output files. for data in f[1]: data = convert_path(data) (out, _) = self.copy_file(data, dir) self.outfiles.append(out) def get_inputs(self): return self.data_files or [] def get_outputs(self): return self.outfiles PK!yjj config.pynu["""distutils.pypirc Provides the PyPIRCCommand class, the base class for the command classes that uses .pypirc in the distutils.command package. """ import os from configparser import ConfigParser from distutils.cmd import Command DEFAULT_PYPIRC = """\ [distutils] index-servers = pypi [pypi] username:%s password:%s """ class PyPIRCCommand(Command): """Base command that knows how to handle the .pypirc file """ DEFAULT_REPOSITORY = 'https://upload.pypi.org/legacy/' DEFAULT_REALM = 'pypi' repository = None realm = None user_options = [ ('repository=', 'r', "url of repository [default: %s]" % \ DEFAULT_REPOSITORY), ('show-response', None, 'display full response text from server')] boolean_options = ['show-response'] def _get_rc_file(self): """Returns rc file path.""" return os.path.join(os.path.expanduser('~'), '.pypirc') def _store_pypirc(self, username, password): """Creates a default .pypirc file.""" rc = self._get_rc_file() with os.fdopen(os.open(rc, os.O_CREAT | os.O_WRONLY, 0o600), 'w') as f: f.write(DEFAULT_PYPIRC % (username, password)) def _read_pypirc(self): """Reads the .pypirc file.""" rc = self._get_rc_file() if os.path.exists(rc): self.announce('Using PyPI login from %s' % rc) repository = self.repository or self.DEFAULT_REPOSITORY realm = self.realm or self.DEFAULT_REALM config = ConfigParser() config.read(rc) sections = config.sections() if 'distutils' in sections: # let's get the list of servers index_servers = config.get('distutils', 'index-servers') _servers = [server.strip() for server in index_servers.split('\n') if server.strip() != ''] if _servers == []: # nothing set, let's try to get the default pypi if 'pypi' in sections: _servers = ['pypi'] else: # the file is not properly defined, returning # an empty dict return {} for server in _servers: current = {'server': server} current['username'] = config.get(server, 'username') # optional params for key, default in (('repository', self.DEFAULT_REPOSITORY), ('realm', self.DEFAULT_REALM), ('password', None)): if config.has_option(server, key): current[key] = config.get(server, key) else: current[key] = default if (current['server'] == repository or current['repository'] == repository): return current elif 'server-login' in sections: # old format server = 'server-login' if config.has_option(server, 'repository'): repository = config.get(server, 'repository') else: repository = self.DEFAULT_REPOSITORY return {'username': config.get(server, 'username'), 'password': config.get(server, 'password'), 'repository': repository, 'server': server, 'realm': self.DEFAULT_REALM} return {} def _read_pypi_response(self, response): """Read and decode a PyPI HTTP response.""" import cgi content_type = response.getheader('content-type', 'text/plain') encoding = cgi.parse_header(content_type)[1].get('charset', 'ascii') return response.read().decode(encoding) def initialize_options(self): """Initialize options.""" self.repository = None self.realm = None self.show_response = 0 def finalize_options(self): """Finalizes options.""" if self.repository is None: self.repository = self.DEFAULT_REPOSITORY if self.realm is None: self.realm = self.DEFAULT_REALM PK!(( errors.pynu["""distutils.errors Provides exceptions used by the Distutils modules. Note that Distutils modules may raise standard exceptions; in particular, SystemExit is usually raised for errors that are obviously the end-user's fault (eg. bad command-line arguments). This module is safe to use in "from ... import *" mode; it only exports symbols whose names start with "Distutils" and end with "Error".""" class DistutilsError (Exception): """The root of all Distutils evil.""" pass class DistutilsModuleError (DistutilsError): """Unable to load an expected module, or to find an expected class within some module (in particular, command modules and classes).""" pass class DistutilsClassError (DistutilsError): """Some command class (or possibly distribution class, if anyone feels a need to subclass Distribution) is found not to be holding up its end of the bargain, ie. implementing some part of the "command "interface.""" pass class DistutilsGetoptError (DistutilsError): """The option table provided to 'fancy_getopt()' is bogus.""" pass class DistutilsArgError (DistutilsError): """Raised by fancy_getopt in response to getopt.error -- ie. an error in the command line usage.""" pass class DistutilsFileError (DistutilsError): """Any problems in the filesystem: expected file not found, etc. Typically this is for problems that we detect before IOError or OSError could be raised.""" pass class DistutilsOptionError (DistutilsError): """Syntactic/semantic errors in command options, such as use of mutually conflicting options, or inconsistent options, badly-spelled values, etc. No distinction is made between option values originating in the setup script, the command line, config files, or what-have-you -- but if we *know* something originated in the setup script, we'll raise DistutilsSetupError instead.""" pass class DistutilsSetupError (DistutilsError): """For errors that can be definitely blamed on the setup script, such as invalid keyword arguments to 'setup()'.""" pass class DistutilsPlatformError (DistutilsError): """We don't know how to do something on the current platform (but we do know how to do it on some platform) -- eg. trying to compile C files on a platform not supported by a CCompiler subclass.""" pass class DistutilsExecError (DistutilsError): """Any problems executing an external program (such as the C compiler, when compiling C files).""" pass class DistutilsInternalError (DistutilsError): """Internal inconsistencies or impossibilities (obviously, this should never be seen if the code is working!).""" pass class DistutilsTemplateError (DistutilsError): """Syntax error in a file list template.""" class DistutilsByteCompileError(DistutilsError): """Byte compile error.""" # Exception classes used by the CCompiler implementation classes class CCompilerError (Exception): """Some compile/link operation failed.""" class PreprocessError (CCompilerError): """Failure to preprocess one or more C/C++ files.""" class CompileError (CCompilerError): """Failure to compile one or more C/C++ source files.""" class LibError (CCompilerError): """Failure to create a static library from one or more C/C++ object files.""" class LinkError (CCompilerError): """Failure to link one or more C/C++ object files into an executable or shared library file.""" class UnknownFileError (CCompilerError): """Attempt to process an unknown file type.""" PK!" 11 filelist.pynu["""distutils.filelist Provides the FileList class, used for poking about the filesystem and building lists of files. """ import os, re import fnmatch from distutils.util import convert_path from distutils.errors import DistutilsTemplateError, DistutilsInternalError from distutils import log class FileList: """A list of files built by on exploring the filesystem and filtered by applying various patterns to what we find there. Instance attributes: dir directory from which files will be taken -- only used if 'allfiles' not supplied to constructor files list of filenames currently being built/filtered/manipulated allfiles complete list of files under consideration (ie. without any filtering applied) """ def __init__(self, warn=None, debug_print=None): # ignore argument to FileList, but keep them for backwards # compatibility self.allfiles = None self.files = [] def set_allfiles(self, allfiles): self.allfiles = allfiles def findall(self, dir=os.curdir): self.allfiles = findall(dir) def debug_print(self, msg): """Print 'msg' to stdout if the global DEBUG (taken from the DISTUTILS_DEBUG environment variable) flag is true. """ from distutils.debug import DEBUG if DEBUG: print(msg) # -- List-like methods --------------------------------------------- def append(self, item): self.files.append(item) def extend(self, items): self.files.extend(items) def sort(self): # Not a strict lexical sort! sortable_files = sorted(map(os.path.split, self.files)) self.files = [] for sort_tuple in sortable_files: self.files.append(os.path.join(*sort_tuple)) # -- Other miscellaneous utility methods --------------------------- def remove_duplicates(self): # Assumes list has been sorted! for i in range(len(self.files) - 1, 0, -1): if self.files[i] == self.files[i - 1]: del self.files[i] # -- "File template" methods --------------------------------------- def _parse_template_line(self, line): words = line.split() action = words[0] patterns = dir = dir_pattern = None if action in ('include', 'exclude', 'global-include', 'global-exclude'): if len(words) < 2: raise DistutilsTemplateError( "'%s' expects ..." % action) patterns = [convert_path(w) for w in words[1:]] elif action in ('recursive-include', 'recursive-exclude'): if len(words) < 3: raise DistutilsTemplateError( "'%s' expects ..." % action) dir = convert_path(words[1]) patterns = [convert_path(w) for w in words[2:]] elif action in ('graft', 'prune'): if len(words) != 2: raise DistutilsTemplateError( "'%s' expects a single " % action) dir_pattern = convert_path(words[1]) else: raise DistutilsTemplateError("unknown action '%s'" % action) return (action, patterns, dir, dir_pattern) def process_template_line(self, line): # Parse the line: split it up, make sure the right number of words # is there, and return the relevant words. 'action' is always # defined: it's the first word of the line. Which of the other # three are defined depends on the action; it'll be either # patterns, (dir and patterns), or (dir_pattern). (action, patterns, dir, dir_pattern) = self._parse_template_line(line) # OK, now we know that the action is valid and we have the # right number of words on the line for that action -- so we # can proceed with minimal error-checking. if action == 'include': self.debug_print("include " + ' '.join(patterns)) for pattern in patterns: if not self.include_pattern(pattern, anchor=1): log.warn("warning: no files found matching '%s'", pattern) elif action == 'exclude': self.debug_print("exclude " + ' '.join(patterns)) for pattern in patterns: if not self.exclude_pattern(pattern, anchor=1): log.warn(("warning: no previously-included files " "found matching '%s'"), pattern) elif action == 'global-include': self.debug_print("global-include " + ' '.join(patterns)) for pattern in patterns: if not self.include_pattern(pattern, anchor=0): log.warn(("warning: no files found matching '%s' " "anywhere in distribution"), pattern) elif action == 'global-exclude': self.debug_print("global-exclude " + ' '.join(patterns)) for pattern in patterns: if not self.exclude_pattern(pattern, anchor=0): log.warn(("warning: no previously-included files matching " "'%s' found anywhere in distribution"), pattern) elif action == 'recursive-include': self.debug_print("recursive-include %s %s" % (dir, ' '.join(patterns))) for pattern in patterns: if not self.include_pattern(pattern, prefix=dir): log.warn(("warning: no files found matching '%s' " "under directory '%s'"), pattern, dir) elif action == 'recursive-exclude': self.debug_print("recursive-exclude %s %s" % (dir, ' '.join(patterns))) for pattern in patterns: if not self.exclude_pattern(pattern, prefix=dir): log.warn(("warning: no previously-included files matching " "'%s' found under directory '%s'"), pattern, dir) elif action == 'graft': self.debug_print("graft " + dir_pattern) if not self.include_pattern(None, prefix=dir_pattern): log.warn("warning: no directories found matching '%s'", dir_pattern) elif action == 'prune': self.debug_print("prune " + dir_pattern) if not self.exclude_pattern(None, prefix=dir_pattern): log.warn(("no previously-included directories found " "matching '%s'"), dir_pattern) else: raise DistutilsInternalError( "this cannot happen: invalid action '%s'" % action) # -- Filtering/selection methods ----------------------------------- def include_pattern(self, pattern, anchor=1, prefix=None, is_regex=0): """Select strings (presumably filenames) from 'self.files' that match 'pattern', a Unix-style wildcard (glob) pattern. Patterns are not quite the same as implemented by the 'fnmatch' module: '*' and '?' match non-special characters, where "special" is platform- dependent: slash on Unix; colon, slash, and backslash on DOS/Windows; and colon on Mac OS. If 'anchor' is true (the default), then the pattern match is more stringent: "*.py" will match "foo.py" but not "foo/bar.py". If 'anchor' is false, both of these will match. If 'prefix' is supplied, then only filenames starting with 'prefix' (itself a pattern) and ending with 'pattern', with anything in between them, will match. 'anchor' is ignored in this case. If 'is_regex' is true, 'anchor' and 'prefix' are ignored, and 'pattern' is assumed to be either a string containing a regex or a regex object -- no translation is done, the regex is just compiled and used as-is. Selected strings will be added to self.files. Return True if files are found, False otherwise. """ # XXX docstring lying about what the special chars are? files_found = False pattern_re = translate_pattern(pattern, anchor, prefix, is_regex) self.debug_print("include_pattern: applying regex r'%s'" % pattern_re.pattern) # delayed loading of allfiles list if self.allfiles is None: self.findall() for name in self.allfiles: if pattern_re.search(name): self.debug_print(" adding " + name) self.files.append(name) files_found = True return files_found def exclude_pattern (self, pattern, anchor=1, prefix=None, is_regex=0): """Remove strings (presumably filenames) from 'files' that match 'pattern'. Other parameters are the same as for 'include_pattern()', above. The list 'self.files' is modified in place. Return True if files are found, False otherwise. """ files_found = False pattern_re = translate_pattern(pattern, anchor, prefix, is_regex) self.debug_print("exclude_pattern: applying regex r'%s'" % pattern_re.pattern) for i in range(len(self.files)-1, -1, -1): if pattern_re.search(self.files[i]): self.debug_print(" removing " + self.files[i]) del self.files[i] files_found = True return files_found # ---------------------------------------------------------------------- # Utility functions def findall(dir=os.curdir): """Find all files under 'dir' and return the list of full filenames (relative to 'dir'). """ from stat import ST_MODE, S_ISREG, S_ISDIR, S_ISLNK list = [] stack = [dir] pop = stack.pop push = stack.append while stack: dir = pop() names = os.listdir(dir) for name in names: if dir != os.curdir: # avoid the dreaded "./" syndrome fullname = os.path.join(dir, name) else: fullname = name # Avoid excess stat calls -- just one will do, thank you! stat = os.stat(fullname) mode = stat[ST_MODE] if S_ISREG(mode): list.append(fullname) elif S_ISDIR(mode) and not S_ISLNK(mode): push(fullname) return list def glob_to_re(pattern): """Translate a shell-like glob pattern to a regular expression; return a string containing the regex. Differs from 'fnmatch.translate()' in that '*' does not match "special characters" (which are platform-specific). """ pattern_re = fnmatch.translate(pattern) # '?' and '*' in the glob pattern become '.' and '.*' in the RE, which # IMHO is wrong -- '?' and '*' aren't supposed to match slash in Unix, # and by extension they shouldn't match such "special characters" under # any OS. So change all non-escaped dots in the RE to match any # character except the special characters (currently: just os.sep). sep = os.sep if os.sep == '\\': # we're using a regex to manipulate a regex, so we need # to escape the backslash twice sep = r'\\\\' escaped = r'\1[^%s]' % sep pattern_re = re.sub(r'((?= 1: log.info("creating %s", head) if not dry_run: try: os.mkdir(head, mode) except OSError as exc: if not (exc.errno == errno.EEXIST and os.path.isdir(head)): raise DistutilsFileError( "could not create '%s': %s" % (head, exc.args[-1])) created_dirs.append(head) _path_created[abs_head] = 1 return created_dirs def create_tree(base_dir, files, mode=0o777, verbose=1, dry_run=0): """Create all the empty directories under 'base_dir' needed to put 'files' there. 'base_dir' is just the a name of a directory which doesn't necessarily exist yet; 'files' is a list of filenames to be interpreted relative to 'base_dir'. 'base_dir' + the directory portion of every file in 'files' will be created if it doesn't already exist. 'mode', 'verbose' and 'dry_run' flags are as for 'mkpath()'. """ # First get the list of directories to create need_dir = set() for file in files: need_dir.add(os.path.join(base_dir, os.path.dirname(file))) # Now create them for dir in sorted(need_dir): mkpath(dir, mode, verbose=verbose, dry_run=dry_run) def copy_tree(src, dst, preserve_mode=1, preserve_times=1, preserve_symlinks=0, update=0, verbose=1, dry_run=0): """Copy an entire directory tree 'src' to a new location 'dst'. Both 'src' and 'dst' must be directory names. If 'src' is not a directory, raise DistutilsFileError. If 'dst' does not exist, it is created with 'mkpath()'. The end result of the copy is that every file in 'src' is copied to 'dst', and directories under 'src' are recursively copied to 'dst'. Return the list of files that were copied or might have been copied, using their output name. The return value is unaffected by 'update' or 'dry_run': it is simply the list of all files under 'src', with the names changed to be under 'dst'. 'preserve_mode' and 'preserve_times' are the same as for 'copy_file'; note that they only apply to regular files, not to directories. If 'preserve_symlinks' is true, symlinks will be copied as symlinks (on platforms that support them!); otherwise (the default), the destination of the symlink will be copied. 'update' and 'verbose' are the same as for 'copy_file'. """ from distutils.file_util import copy_file if not dry_run and not os.path.isdir(src): raise DistutilsFileError( "cannot copy tree '%s': not a directory" % src) try: names = os.listdir(src) except os.error as e: (errno, errstr) = e if dry_run: names = [] else: raise DistutilsFileError( "error listing files in '%s': %s" % (src, errstr)) if not dry_run: mkpath(dst, verbose=verbose) outputs = [] for n in names: src_name = os.path.join(src, n) dst_name = os.path.join(dst, n) if n.startswith('.nfs'): # skip NFS rename files continue if preserve_symlinks and os.path.islink(src_name): link_dest = os.readlink(src_name) if verbose >= 1: log.info("linking %s -> %s", dst_name, link_dest) if not dry_run: os.symlink(link_dest, dst_name) outputs.append(dst_name) elif os.path.isdir(src_name): outputs.extend( copy_tree(src_name, dst_name, preserve_mode, preserve_times, preserve_symlinks, update, verbose=verbose, dry_run=dry_run)) else: copy_file(src_name, dst_name, preserve_mode, preserve_times, update, verbose=verbose, dry_run=dry_run) outputs.append(dst_name) return outputs def _build_cmdtuple(path, cmdtuples): """Helper for remove_tree().""" for f in os.listdir(path): real_f = os.path.join(path,f) if os.path.isdir(real_f) and not os.path.islink(real_f): _build_cmdtuple(real_f, cmdtuples) else: cmdtuples.append((os.remove, real_f)) cmdtuples.append((os.rmdir, path)) def remove_tree(directory, verbose=1, dry_run=0): """Recursively remove an entire directory tree. Any errors are ignored (apart from being reported to stdout if 'verbose' is true). """ global _path_created if verbose >= 1: log.info("removing '%s' (and everything under it)", directory) if dry_run: return cmdtuples = [] _build_cmdtuple(directory, cmdtuples) for cmd in cmdtuples: try: cmd[0](cmd[1]) # remove dir from cache if it's already there abspath = os.path.abspath(cmd[1]) if abspath in _path_created: del _path_created[abspath] except (IOError, OSError) as exc: log.warn("error removing %s: %s", directory, exc) def ensure_relative(path): """Take the full path 'path', and make it a relative path. This is useful to make 'path' the second argument to os.path.join(). """ drive, path = os.path.splitdrive(path) if path[0:1] == os.sep: path = drive + path[1:] return path PK!hG00 version.pynu[# # distutils/version.py # # Implements multiple version numbering conventions for the # Python Module Distribution Utilities. # # $Id$ # """Provides classes to represent module version numbers (one class for each style of version numbering). There are currently two such classes implemented: StrictVersion and LooseVersion. Every version number class implements the following interface: * the 'parse' method takes a string and parses it to some internal representation; if the string is an invalid version number, 'parse' raises a ValueError exception * the class constructor takes an optional string argument which, if supplied, is passed to 'parse' * __str__ reconstructs the string that was passed to 'parse' (or an equivalent string -- ie. one that will generate an equivalent version number instance) * __repr__ generates Python code to recreate the version number instance * _cmp compares the current instance with either another instance of the same class or a string (which will be parsed to an instance of the same class, thus must follow the same rules) """ import re class Version: """Abstract base class for version numbering classes. Just provides constructor (__init__) and reproducer (__repr__), because those seem to be the same for all version numbering classes; and route rich comparisons to _cmp. """ def __init__ (self, vstring=None): if vstring: self.parse(vstring) def __repr__ (self): return "%s ('%s')" % (self.__class__.__name__, str(self)) def __eq__(self, other): c = self._cmp(other) if c is NotImplemented: return c return c == 0 def __ne__(self, other): c = self._cmp(other) if c is NotImplemented: return c return c != 0 def __lt__(self, other): c = self._cmp(other) if c is NotImplemented: return c return c < 0 def __le__(self, other): c = self._cmp(other) if c is NotImplemented: return c return c <= 0 def __gt__(self, other): c = self._cmp(other) if c is NotImplemented: return c return c > 0 def __ge__(self, other): c = self._cmp(other) if c is NotImplemented: return c return c >= 0 # Interface for version-number classes -- must be implemented # by the following classes (the concrete ones -- Version should # be treated as an abstract class). # __init__ (string) - create and take same action as 'parse' # (string parameter is optional) # parse (string) - convert a string representation to whatever # internal representation is appropriate for # this style of version numbering # __str__ (self) - convert back to a string; should be very similar # (if not identical to) the string supplied to parse # __repr__ (self) - generate Python code to recreate # the instance # _cmp (self, other) - compare two version numbers ('other' may # be an unparsed version string, or another # instance of your version class) class StrictVersion (Version): """Version numbering for anal retentives and software idealists. Implements the standard interface for version number classes as described above. A version number consists of two or three dot-separated numeric components, with an optional "pre-release" tag on the end. The pre-release tag consists of the letter 'a' or 'b' followed by a number. If the numeric components of two version numbers are equal, then one with a pre-release tag will always be deemed earlier (lesser) than one without. The following are valid version numbers (shown in the order that would be obtained by sorting according to the supplied cmp function): 0.4 0.4.0 (these two are equivalent) 0.4.1 0.5a1 0.5b3 0.5 0.9.6 1.0 1.0.4a3 1.0.4b1 1.0.4 The following are examples of invalid version numbers: 1 2.7.2.2 1.3.a4 1.3pl1 1.3c4 The rationale for this version numbering system will be explained in the distutils documentation. """ version_re = re.compile(r'^(\d+) \. (\d+) (\. (\d+))? ([ab](\d+))?$', re.VERBOSE | re.ASCII) def parse (self, vstring): match = self.version_re.match(vstring) if not match: raise ValueError("invalid version number '%s'" % vstring) (major, minor, patch, prerelease, prerelease_num) = \ match.group(1, 2, 4, 5, 6) if patch: self.version = tuple(map(int, [major, minor, patch])) else: self.version = tuple(map(int, [major, minor])) + (0,) if prerelease: self.prerelease = (prerelease[0], int(prerelease_num)) else: self.prerelease = None def __str__ (self): if self.version[2] == 0: vstring = '.'.join(map(str, self.version[0:2])) else: vstring = '.'.join(map(str, self.version)) if self.prerelease: vstring = vstring + self.prerelease[0] + str(self.prerelease[1]) return vstring def _cmp (self, other): if isinstance(other, str): other = StrictVersion(other) if self.version != other.version: # numeric versions don't match # prerelease stuff doesn't matter if self.version < other.version: return -1 else: return 1 # have to compare prerelease # case 1: neither has prerelease; they're equal # case 2: self has prerelease, other doesn't; other is greater # case 3: self doesn't have prerelease, other does: self is greater # case 4: both have prerelease: must compare them! if (not self.prerelease and not other.prerelease): return 0 elif (self.prerelease and not other.prerelease): return -1 elif (not self.prerelease and other.prerelease): return 1 elif (self.prerelease and other.prerelease): if self.prerelease == other.prerelease: return 0 elif self.prerelease < other.prerelease: return -1 else: return 1 else: assert False, "never get here" # end class StrictVersion # The rules according to Greg Stein: # 1) a version number has 1 or more numbers separated by a period or by # sequences of letters. If only periods, then these are compared # left-to-right to determine an ordering. # 2) sequences of letters are part of the tuple for comparison and are # compared lexicographically # 3) recognize the numeric components may have leading zeroes # # The LooseVersion class below implements these rules: a version number # string is split up into a tuple of integer and string components, and # comparison is a simple tuple comparison. This means that version # numbers behave in a predictable and obvious way, but a way that might # not necessarily be how people *want* version numbers to behave. There # wouldn't be a problem if people could stick to purely numeric version # numbers: just split on period and compare the numbers as tuples. # However, people insist on putting letters into their version numbers; # the most common purpose seems to be: # - indicating a "pre-release" version # ('alpha', 'beta', 'a', 'b', 'pre', 'p') # - indicating a post-release patch ('p', 'pl', 'patch') # but of course this can't cover all version number schemes, and there's # no way to know what a programmer means without asking him. # # The problem is what to do with letters (and other non-numeric # characters) in a version number. The current implementation does the # obvious and predictable thing: keep them as strings and compare # lexically within a tuple comparison. This has the desired effect if # an appended letter sequence implies something "post-release": # eg. "0.99" < "0.99pl14" < "1.0", and "5.001" < "5.001m" < "5.002". # # However, if letters in a version number imply a pre-release version, # the "obvious" thing isn't correct. Eg. you would expect that # "1.5.1" < "1.5.2a2" < "1.5.2", but under the tuple/lexical comparison # implemented here, this just isn't so. # # Two possible solutions come to mind. The first is to tie the # comparison algorithm to a particular set of semantic rules, as has # been done in the StrictVersion class above. This works great as long # as everyone can go along with bondage and discipline. Hopefully a # (large) subset of Python module programmers will agree that the # particular flavour of bondage and discipline provided by StrictVersion # provides enough benefit to be worth using, and will submit their # version numbering scheme to its domination. The free-thinking # anarchists in the lot will never give in, though, and something needs # to be done to accommodate them. # # Perhaps a "moderately strict" version class could be implemented that # lets almost anything slide (syntactically), and makes some heuristic # assumptions about non-digits in version number strings. This could # sink into special-case-hell, though; if I was as talented and # idiosyncratic as Larry Wall, I'd go ahead and implement a class that # somehow knows that "1.2.1" < "1.2.2a2" < "1.2.2" < "1.2.2pl3", and is # just as happy dealing with things like "2g6" and "1.13++". I don't # think I'm smart enough to do it right though. # # In any case, I've coded the test suite for this module (see # ../test/test_version.py) specifically to fail on things like comparing # "1.2a2" and "1.2". That's not because the *code* is doing anything # wrong, it's because the simple, obvious design doesn't match my # complicated, hairy expectations for real-world version numbers. It # would be a snap to fix the test suite to say, "Yep, LooseVersion does # the Right Thing" (ie. the code matches the conception). But I'd rather # have a conception that matches common notions about version numbers. class LooseVersion (Version): """Version numbering for anarchists and software realists. Implements the standard interface for version number classes as described above. A version number consists of a series of numbers, separated by either periods or strings of letters. When comparing version numbers, the numeric components will be compared numerically, and the alphabetic components lexically. The following are all valid version numbers, in no particular order: 1.5.1 1.5.2b2 161 3.10a 8.02 3.4j 1996.07.12 3.2.pl0 3.1.1.6 2g6 11g 0.960923 2.2beta29 1.13++ 5.5.kw 2.0b1pl0 In fact, there is no such thing as an invalid version number under this scheme; the rules for comparison are simple and predictable, but may not always give the results you want (for some definition of "want"). """ component_re = re.compile(r'(\d+ | [a-z]+ | \.)', re.VERBOSE) def __init__ (self, vstring=None): if vstring: self.parse(vstring) def parse (self, vstring): # I've given up on thinking I can reconstruct the version string # from the parsed tuple -- so I just store the string here for # use by __str__ self.vstring = vstring components = [x for x in self.component_re.split(vstring) if x and x != '.'] for i, obj in enumerate(components): try: components[i] = int(obj) except ValueError: pass self.version = components def __str__ (self): return self.vstring def __repr__ (self): return "LooseVersion ('%s')" % str(self) def _cmp (self, other): if isinstance(other, str): other = LooseVersion(other) if self.version == other.version: return 0 if self.version < other.version: return -1 if self.version > other.version: return 1 # end class LooseVersion PK!@w@wmsvc9compiler.pynu["""distutils.msvc9compiler Contains MSVCCompiler, an implementation of the abstract CCompiler class for the Microsoft Visual Studio 2008. The module is compatible with VS 2005 and VS 2008. You can find legacy support for older versions of VS in distutils.msvccompiler. """ # Written by Perry Stoll # hacked by Robin Becker and Thomas Heller to do a better job of # finding DevStudio (through the registry) # ported to VS2005 and VS 2008 by Christian Heimes import os import subprocess import sys import re from distutils.errors import DistutilsExecError, DistutilsPlatformError, \ CompileError, LibError, LinkError from distutils.ccompiler import CCompiler, gen_preprocess_options, \ gen_lib_options from distutils import log from distutils.util import get_platform import winreg RegOpenKeyEx = winreg.OpenKeyEx RegEnumKey = winreg.EnumKey RegEnumValue = winreg.EnumValue RegError = winreg.error HKEYS = (winreg.HKEY_USERS, winreg.HKEY_CURRENT_USER, winreg.HKEY_LOCAL_MACHINE, winreg.HKEY_CLASSES_ROOT) NATIVE_WIN64 = (sys.platform == 'win32' and sys.maxsize > 2**32) if NATIVE_WIN64: # Visual C++ is a 32-bit application, so we need to look in # the corresponding registry branch, if we're running a # 64-bit Python on Win64 VS_BASE = r"Software\Wow6432Node\Microsoft\VisualStudio\%0.1f" WINSDK_BASE = r"Software\Wow6432Node\Microsoft\Microsoft SDKs\Windows" NET_BASE = r"Software\Wow6432Node\Microsoft\.NETFramework" else: VS_BASE = r"Software\Microsoft\VisualStudio\%0.1f" WINSDK_BASE = r"Software\Microsoft\Microsoft SDKs\Windows" NET_BASE = r"Software\Microsoft\.NETFramework" # A map keyed by get_platform() return values to values accepted by # 'vcvarsall.bat'. Note a cross-compile may combine these (eg, 'x86_amd64' is # the param to cross-compile on x86 targetting amd64.) PLAT_TO_VCVARS = { 'win32' : 'x86', 'win-amd64' : 'amd64', 'win-ia64' : 'ia64', } class Reg: """Helper class to read values from the registry """ def get_value(cls, path, key): for base in HKEYS: d = cls.read_values(base, path) if d and key in d: return d[key] raise KeyError(key) get_value = classmethod(get_value) def read_keys(cls, base, key): """Return list of registry keys.""" try: handle = RegOpenKeyEx(base, key) except RegError: return None L = [] i = 0 while True: try: k = RegEnumKey(handle, i) except RegError: break L.append(k) i += 1 return L read_keys = classmethod(read_keys) def read_values(cls, base, key): """Return dict of registry keys and values. All names are converted to lowercase. """ try: handle = RegOpenKeyEx(base, key) except RegError: return None d = {} i = 0 while True: try: name, value, type = RegEnumValue(handle, i) except RegError: break name = name.lower() d[cls.convert_mbcs(name)] = cls.convert_mbcs(value) i += 1 return d read_values = classmethod(read_values) def convert_mbcs(s): dec = getattr(s, "decode", None) if dec is not None: try: s = dec("mbcs") except UnicodeError: pass return s convert_mbcs = staticmethod(convert_mbcs) class MacroExpander: def __init__(self, version): self.macros = {} self.vsbase = VS_BASE % version self.load_macros(version) def set_macro(self, macro, path, key): self.macros["$(%s)" % macro] = Reg.get_value(path, key) def load_macros(self, version): self.set_macro("VCInstallDir", self.vsbase + r"\Setup\VC", "productdir") self.set_macro("VSInstallDir", self.vsbase + r"\Setup\VS", "productdir") self.set_macro("FrameworkDir", NET_BASE, "installroot") try: if version >= 8.0: self.set_macro("FrameworkSDKDir", NET_BASE, "sdkinstallrootv2.0") else: raise KeyError("sdkinstallrootv2.0") except KeyError: raise DistutilsPlatformError( """Python was built with Visual Studio 2008; extensions must be built with a compiler than can generate compatible binaries. Visual Studio 2008 was not found on this system. If you have Cygwin installed, you can try compiling with MingW32, by passing "-c mingw32" to setup.py.""") if version >= 9.0: self.set_macro("FrameworkVersion", self.vsbase, "clr version") self.set_macro("WindowsSdkDir", WINSDK_BASE, "currentinstallfolder") else: p = r"Software\Microsoft\NET Framework Setup\Product" for base in HKEYS: try: h = RegOpenKeyEx(base, p) except RegError: continue key = RegEnumKey(h, 0) d = Reg.get_value(base, r"%s\%s" % (p, key)) self.macros["$(FrameworkVersion)"] = d["version"] def sub(self, s): for k, v in self.macros.items(): s = s.replace(k, v) return s def get_build_version(): """Return the version of MSVC that was used to build Python. For Python 2.3 and up, the version number is included in sys.version. For earlier versions, assume the compiler is MSVC 6. """ prefix = "MSC v." i = sys.version.find(prefix) if i == -1: return 6 i = i + len(prefix) s, rest = sys.version[i:].split(" ", 1) majorVersion = int(s[:-2]) - 6 minorVersion = int(s[2:3]) / 10.0 # I don't think paths are affected by minor version in version 6 if majorVersion == 6: minorVersion = 0 if majorVersion >= 6: return majorVersion + minorVersion # else we don't know what version of the compiler this is return None def normalize_and_reduce_paths(paths): """Return a list of normalized paths with duplicates removed. The current order of paths is maintained. """ # Paths are normalized so things like: /a and /a/ aren't both preserved. reduced_paths = [] for p in paths: np = os.path.normpath(p) # XXX(nnorwitz): O(n**2), if reduced_paths gets long perhaps use a set. if np not in reduced_paths: reduced_paths.append(np) return reduced_paths def removeDuplicates(variable): """Remove duplicate values of an environment variable. """ oldList = variable.split(os.pathsep) newList = [] for i in oldList: if i not in newList: newList.append(i) newVariable = os.pathsep.join(newList) return newVariable def find_vcvarsall(version): """Find the vcvarsall.bat file At first it tries to find the productdir of VS 2008 in the registry. If that fails it falls back to the VS90COMNTOOLS env var. """ vsbase = VS_BASE % version try: productdir = Reg.get_value(r"%s\Setup\VC" % vsbase, "productdir") except KeyError: log.debug("Unable to find productdir in registry") productdir = None if not productdir or not os.path.isdir(productdir): toolskey = "VS%0.f0COMNTOOLS" % version toolsdir = os.environ.get(toolskey, None) if toolsdir and os.path.isdir(toolsdir): productdir = os.path.join(toolsdir, os.pardir, os.pardir, "VC") productdir = os.path.abspath(productdir) if not os.path.isdir(productdir): log.debug("%s is not a valid directory" % productdir) return None else: log.debug("Env var %s is not set or invalid" % toolskey) if not productdir: log.debug("No productdir found") return None vcvarsall = os.path.join(productdir, "vcvarsall.bat") if os.path.isfile(vcvarsall): return vcvarsall log.debug("Unable to find vcvarsall.bat") return None def query_vcvarsall(version, arch="x86"): """Launch vcvarsall.bat and read the settings from its environment """ vcvarsall = find_vcvarsall(version) interesting = set(("include", "lib", "libpath", "path")) result = {} if vcvarsall is None: raise DistutilsPlatformError("Unable to find vcvarsall.bat") log.debug("Calling 'vcvarsall.bat %s' (version=%s)", arch, version) popen = subprocess.Popen('"%s" %s & set' % (vcvarsall, arch), stdout=subprocess.PIPE, stderr=subprocess.PIPE) try: stdout, stderr = popen.communicate() if popen.wait() != 0: raise DistutilsPlatformError(stderr.decode("mbcs")) stdout = stdout.decode("mbcs") for line in stdout.split("\n"): line = Reg.convert_mbcs(line) if '=' not in line: continue line = line.strip() key, value = line.split('=', 1) key = key.lower() if key in interesting: if value.endswith(os.pathsep): value = value[:-1] result[key] = removeDuplicates(value) finally: popen.stdout.close() popen.stderr.close() if len(result) != len(interesting): raise ValueError(str(list(result.keys()))) return result # More globals VERSION = get_build_version() if VERSION < 8.0: raise DistutilsPlatformError("VC %0.1f is not supported by this module" % VERSION) # MACROS = MacroExpander(VERSION) class MSVCCompiler(CCompiler) : """Concrete class that implements an interface to Microsoft Visual C++, as defined by the CCompiler abstract class.""" compiler_type = 'msvc' # Just set this so CCompiler's constructor doesn't barf. We currently # don't use the 'set_executables()' bureaucracy provided by CCompiler, # as it really isn't necessary for this sort of single-compiler class. # Would be nice to have a consistent interface with UnixCCompiler, # though, so it's worth thinking about. executables = {} # Private class data (need to distinguish C from C++ source for compiler) _c_extensions = ['.c'] _cpp_extensions = ['.cc', '.cpp', '.cxx'] _rc_extensions = ['.rc'] _mc_extensions = ['.mc'] # Needed for the filename generation methods provided by the # base class, CCompiler. src_extensions = (_c_extensions + _cpp_extensions + _rc_extensions + _mc_extensions) res_extension = '.res' obj_extension = '.obj' static_lib_extension = '.lib' shared_lib_extension = '.dll' static_lib_format = shared_lib_format = '%s%s' exe_extension = '.exe' def __init__(self, verbose=0, dry_run=0, force=0): CCompiler.__init__ (self, verbose, dry_run, force) self.__version = VERSION self.__root = r"Software\Microsoft\VisualStudio" # self.__macros = MACROS self.__paths = [] # target platform (.plat_name is consistent with 'bdist') self.plat_name = None self.__arch = None # deprecated name self.initialized = False def initialize(self, plat_name=None): # multi-init means we would need to check platform same each time... assert not self.initialized, "don't init multiple times" if plat_name is None: plat_name = get_platform() # sanity check for platforms to prevent obscure errors later. ok_plats = 'win32', 'win-amd64', 'win-ia64' if plat_name not in ok_plats: raise DistutilsPlatformError("--plat-name must be one of %s" % (ok_plats,)) if "DISTUTILS_USE_SDK" in os.environ and "MSSdk" in os.environ and self.find_exe("cl.exe"): # Assume that the SDK set up everything alright; don't try to be # smarter self.cc = "cl.exe" self.linker = "link.exe" self.lib = "lib.exe" self.rc = "rc.exe" self.mc = "mc.exe" else: # On x86, 'vcvars32.bat amd64' creates an env that doesn't work; # to cross compile, you use 'x86_amd64'. # On AMD64, 'vcvars32.bat amd64' is a native build env; to cross # compile use 'x86' (ie, it runs the x86 compiler directly) # No idea how itanium handles this, if at all. if plat_name == get_platform() or plat_name == 'win32': # native build or cross-compile to win32 plat_spec = PLAT_TO_VCVARS[plat_name] else: # cross compile from win32 -> some 64bit plat_spec = PLAT_TO_VCVARS[get_platform()] + '_' + \ PLAT_TO_VCVARS[plat_name] vc_env = query_vcvarsall(VERSION, plat_spec) self.__paths = vc_env['path'].split(os.pathsep) os.environ['lib'] = vc_env['lib'] os.environ['include'] = vc_env['include'] if len(self.__paths) == 0: raise DistutilsPlatformError("Python was built with %s, " "and extensions need to be built with the same " "version of the compiler, but it isn't installed." % self.__product) self.cc = self.find_exe("cl.exe") self.linker = self.find_exe("link.exe") self.lib = self.find_exe("lib.exe") self.rc = self.find_exe("rc.exe") # resource compiler self.mc = self.find_exe("mc.exe") # message compiler #self.set_path_env_var('lib') #self.set_path_env_var('include') # extend the MSVC path with the current path try: for p in os.environ['path'].split(';'): self.__paths.append(p) except KeyError: pass self.__paths = normalize_and_reduce_paths(self.__paths) os.environ['path'] = ";".join(self.__paths) self.preprocess_options = None if self.__arch == "x86": self.compile_options = [ '/nologo', '/Ox', '/MD', '/W3', '/DNDEBUG'] self.compile_options_debug = ['/nologo', '/Od', '/MDd', '/W3', '/Z7', '/D_DEBUG'] else: # Win64 self.compile_options = [ '/nologo', '/Ox', '/MD', '/W3', '/GS-' , '/DNDEBUG'] self.compile_options_debug = ['/nologo', '/Od', '/MDd', '/W3', '/GS-', '/Z7', '/D_DEBUG'] self.ldflags_shared = ['/DLL', '/nologo', '/INCREMENTAL:NO'] if self.__version >= 7: self.ldflags_shared_debug = [ '/DLL', '/nologo', '/INCREMENTAL:no', '/DEBUG', '/pdb:None' ] self.ldflags_static = [ '/nologo'] self.initialized = True # -- Worker methods ------------------------------------------------ def object_filenames(self, source_filenames, strip_dir=0, output_dir=''): # Copied from ccompiler.py, extended to return .res as 'object'-file # for .rc input file if output_dir is None: output_dir = '' obj_names = [] for src_name in source_filenames: (base, ext) = os.path.splitext (src_name) base = os.path.splitdrive(base)[1] # Chop off the drive base = base[os.path.isabs(base):] # If abs, chop off leading / if ext not in self.src_extensions: # Better to raise an exception instead of silently continuing # and later complain about sources and targets having # different lengths raise CompileError ("Don't know how to compile %s" % src_name) if strip_dir: base = os.path.basename (base) if ext in self._rc_extensions: obj_names.append (os.path.join (output_dir, base + self.res_extension)) elif ext in self._mc_extensions: obj_names.append (os.path.join (output_dir, base + self.res_extension)) else: obj_names.append (os.path.join (output_dir, base + self.obj_extension)) return obj_names def compile(self, sources, output_dir=None, macros=None, include_dirs=None, debug=0, extra_preargs=None, extra_postargs=None, depends=None): if not self.initialized: self.initialize() compile_info = self._setup_compile(output_dir, macros, include_dirs, sources, depends, extra_postargs) macros, objects, extra_postargs, pp_opts, build = compile_info compile_opts = extra_preargs or [] compile_opts.append ('/c') if debug: compile_opts.extend(self.compile_options_debug) else: compile_opts.extend(self.compile_options) for obj in objects: try: src, ext = build[obj] except KeyError: continue if debug: # pass the full pathname to MSVC in debug mode, # this allows the debugger to find the source file # without asking the user to browse for it src = os.path.abspath(src) if ext in self._c_extensions: input_opt = "/Tc" + src elif ext in self._cpp_extensions: input_opt = "/Tp" + src elif ext in self._rc_extensions: # compile .RC to .RES file input_opt = src output_opt = "/fo" + obj try: self.spawn([self.rc] + pp_opts + [output_opt] + [input_opt]) except DistutilsExecError as msg: raise CompileError(msg) continue elif ext in self._mc_extensions: # Compile .MC to .RC file to .RES file. # * '-h dir' specifies the directory for the # generated include file # * '-r dir' specifies the target directory of the # generated RC file and the binary message resource # it includes # # For now (since there are no options to change this), # we use the source-directory for the include file and # the build directory for the RC file and message # resources. This works at least for win32all. h_dir = os.path.dirname(src) rc_dir = os.path.dirname(obj) try: # first compile .MC to .RC and .H file self.spawn([self.mc] + ['-h', h_dir, '-r', rc_dir] + [src]) base, _ = os.path.splitext (os.path.basename (src)) rc_file = os.path.join (rc_dir, base + '.rc') # then compile .RC to .RES file self.spawn([self.rc] + ["/fo" + obj] + [rc_file]) except DistutilsExecError as msg: raise CompileError(msg) continue else: # how to handle this file? raise CompileError("Don't know how to compile %s to %s" % (src, obj)) output_opt = "/Fo" + obj try: self.spawn([self.cc] + compile_opts + pp_opts + [input_opt, output_opt] + extra_postargs) except DistutilsExecError as msg: raise CompileError(msg) return objects def create_static_lib(self, objects, output_libname, output_dir=None, debug=0, target_lang=None): if not self.initialized: self.initialize() (objects, output_dir) = self._fix_object_args(objects, output_dir) output_filename = self.library_filename(output_libname, output_dir=output_dir) if self._need_link(objects, output_filename): lib_args = objects + ['/OUT:' + output_filename] if debug: pass # XXX what goes here? try: self.spawn([self.lib] + lib_args) except DistutilsExecError as msg: raise LibError(msg) else: log.debug("skipping %s (up-to-date)", output_filename) def link(self, target_desc, objects, output_filename, output_dir=None, libraries=None, library_dirs=None, runtime_library_dirs=None, export_symbols=None, debug=0, extra_preargs=None, extra_postargs=None, build_temp=None, target_lang=None): if not self.initialized: self.initialize() (objects, output_dir) = self._fix_object_args(objects, output_dir) fixed_args = self._fix_lib_args(libraries, library_dirs, runtime_library_dirs) (libraries, library_dirs, runtime_library_dirs) = fixed_args if runtime_library_dirs: self.warn ("I don't know what to do with 'runtime_library_dirs': " + str (runtime_library_dirs)) lib_opts = gen_lib_options(self, library_dirs, runtime_library_dirs, libraries) if output_dir is not None: output_filename = os.path.join(output_dir, output_filename) if self._need_link(objects, output_filename): if target_desc == CCompiler.EXECUTABLE: if debug: ldflags = self.ldflags_shared_debug[1:] else: ldflags = self.ldflags_shared[1:] else: if debug: ldflags = self.ldflags_shared_debug else: ldflags = self.ldflags_shared export_opts = [] for sym in (export_symbols or []): export_opts.append("/EXPORT:" + sym) ld_args = (ldflags + lib_opts + export_opts + objects + ['/OUT:' + output_filename]) # The MSVC linker generates .lib and .exp files, which cannot be # suppressed by any linker switches. The .lib files may even be # needed! Make sure they are generated in the temporary build # directory. Since they have different names for debug and release # builds, they can go into the same directory. build_temp = os.path.dirname(objects[0]) if export_symbols is not None: (dll_name, dll_ext) = os.path.splitext( os.path.basename(output_filename)) implib_file = os.path.join( build_temp, self.library_filename(dll_name)) ld_args.append ('/IMPLIB:' + implib_file) self.manifest_setup_ldargs(output_filename, build_temp, ld_args) if extra_preargs: ld_args[:0] = extra_preargs if extra_postargs: ld_args.extend(extra_postargs) self.mkpath(os.path.dirname(output_filename)) try: self.spawn([self.linker] + ld_args) except DistutilsExecError as msg: raise LinkError(msg) # embed the manifest # XXX - this is somewhat fragile - if mt.exe fails, distutils # will still consider the DLL up-to-date, but it will not have a # manifest. Maybe we should link to a temp file? OTOH, that # implies a build environment error that shouldn't go undetected. mfinfo = self.manifest_get_embed_info(target_desc, ld_args) if mfinfo is not None: mffilename, mfid = mfinfo out_arg = '-outputresource:%s;%s' % (output_filename, mfid) try: self.spawn(['mt.exe', '-nologo', '-manifest', mffilename, out_arg]) except DistutilsExecError as msg: raise LinkError(msg) else: log.debug("skipping %s (up-to-date)", output_filename) def manifest_setup_ldargs(self, output_filename, build_temp, ld_args): # If we need a manifest at all, an embedded manifest is recommended. # See MSDN article titled # "How to: Embed a Manifest Inside a C/C++ Application" # (currently at http://msdn2.microsoft.com/en-us/library/ms235591(VS.80).aspx) # Ask the linker to generate the manifest in the temp dir, so # we can check it, and possibly embed it, later. temp_manifest = os.path.join( build_temp, os.path.basename(output_filename) + ".manifest") ld_args.append('/MANIFESTFILE:' + temp_manifest) def manifest_get_embed_info(self, target_desc, ld_args): # If a manifest should be embedded, return a tuple of # (manifest_filename, resource_id). Returns None if no manifest # should be embedded. See http://bugs.python.org/issue7833 for why # we want to avoid any manifest for extension modules if we can) for arg in ld_args: if arg.startswith("/MANIFESTFILE:"): temp_manifest = arg.split(":", 1)[1] break else: # no /MANIFESTFILE so nothing to do. return None if target_desc == CCompiler.EXECUTABLE: # by default, executables always get the manifest with the # CRT referenced. mfid = 1 else: # Extension modules try and avoid any manifest if possible. mfid = 2 temp_manifest = self._remove_visual_c_ref(temp_manifest) if temp_manifest is None: return None return temp_manifest, mfid def _remove_visual_c_ref(self, manifest_file): try: # Remove references to the Visual C runtime, so they will # fall through to the Visual C dependency of Python.exe. # This way, when installed for a restricted user (e.g. # runtimes are not in WinSxS folder, but in Python's own # folder), the runtimes do not need to be in every folder # with .pyd's. # Returns either the filename of the modified manifest or # None if no manifest should be embedded. manifest_f = open(manifest_file) try: manifest_buf = manifest_f.read() finally: manifest_f.close() pattern = re.compile( r"""|)""", re.DOTALL) manifest_buf = re.sub(pattern, "", manifest_buf) pattern = "\s*" manifest_buf = re.sub(pattern, "", manifest_buf) # Now see if any other assemblies are referenced - if not, we # don't want a manifest embedded. pattern = re.compile( r"""|)""", re.DOTALL) if re.search(pattern, manifest_buf) is None: return None manifest_f = open(manifest_file, 'w') try: manifest_f.write(manifest_buf) return manifest_file finally: manifest_f.close() except IOError: pass # -- Miscellaneous methods ----------------------------------------- # These are all used by the 'gen_lib_options() function, in # ccompiler.py. def library_dir_option(self, dir): return "/LIBPATH:" + dir def runtime_library_dir_option(self, dir): raise DistutilsPlatformError( "don't know how to set runtime library search path for MSVC++") def library_option(self, lib): return self.library_filename(lib) def find_library_file(self, dirs, lib, debug=0): # Prefer a debugging library if found (and requested), but deal # with it if we don't have one. if debug: try_names = [lib + "_d", lib] else: try_names = [lib] for dir in dirs: for name in try_names: libfile = os.path.join(dir, self.library_filename (name)) if os.path.exists(libfile): return libfile else: # Oops, didn't find it in *any* of 'dirs' return None # Helper methods for using the MSVC registry settings def find_exe(self, exe): """Return path to an MSVC executable program. Tries to find the program in several places: first, one of the MSVC program search paths from the registry; next, the directories in the PATH environment variable. If any of those work, return an absolute path that is known to exist. If none of them work, just return the original program name, 'exe'. """ for p in self.__paths: fn = os.path.join(os.path.abspath(p), exe) if os.path.isfile(fn): return fn # didn't find it; try existing path for p in os.environ['Path'].split(';'): fn = os.path.join(os.path.abspath(p),exe) if os.path.isfile(fn): return fn return exe PK!UOO_msvccompiler.pynu["""distutils._msvccompiler Contains MSVCCompiler, an implementation of the abstract CCompiler class for Microsoft Visual Studio 2015. The module is compatible with VS 2015 and later. You can find legacy support for older versions in distutils.msvc9compiler and distutils.msvccompiler. """ # Written by Perry Stoll # hacked by Robin Becker and Thomas Heller to do a better job of # finding DevStudio (through the registry) # ported to VS 2005 and VS 2008 by Christian Heimes # ported to VS 2015 by Steve Dower import os import shutil import stat import subprocess from distutils.errors import DistutilsExecError, DistutilsPlatformError, \ CompileError, LibError, LinkError from distutils.ccompiler import CCompiler, gen_lib_options from distutils import log from distutils.util import get_platform import winreg from itertools import count def _find_vcvarsall(plat_spec): try: key = winreg.OpenKeyEx( winreg.HKEY_LOCAL_MACHINE, r"Software\Microsoft\VisualStudio\SxS\VC7", access=winreg.KEY_READ | winreg.KEY_WOW64_32KEY ) except OSError: log.debug("Visual C++ is not registered") return None, None with key: best_version = 0 best_dir = None for i in count(): try: v, vc_dir, vt = winreg.EnumValue(key, i) except OSError: break if v and vt == winreg.REG_SZ and os.path.isdir(vc_dir): try: version = int(float(v)) except (ValueError, TypeError): continue if version >= 14 and version > best_version: best_version, best_dir = version, vc_dir if not best_version: log.debug("No suitable Visual C++ version found") return None, None vcvarsall = os.path.join(best_dir, "vcvarsall.bat") if not os.path.isfile(vcvarsall): log.debug("%s cannot be found", vcvarsall) return None, None vcruntime = None vcruntime_spec = _VCVARS_PLAT_TO_VCRUNTIME_REDIST.get(plat_spec) if vcruntime_spec: vcruntime = os.path.join(best_dir, vcruntime_spec.format(best_version)) if not os.path.isfile(vcruntime): log.debug("%s cannot be found", vcruntime) vcruntime = None return vcvarsall, vcruntime def _get_vc_env(plat_spec): if os.getenv("DISTUTILS_USE_SDK"): return { key.lower(): value for key, value in os.environ.items() } vcvarsall, vcruntime = _find_vcvarsall(plat_spec) if not vcvarsall: raise DistutilsPlatformError("Unable to find vcvarsall.bat") try: out = subprocess.check_output( 'cmd /u /c "{}" {} && set'.format(vcvarsall, plat_spec), stderr=subprocess.STDOUT, ).decode('utf-16le', errors='replace') except subprocess.CalledProcessError as exc: log.error(exc.output) raise DistutilsPlatformError("Error executing {}" .format(exc.cmd)) env = { key.lower(): value for key, _, value in (line.partition('=') for line in out.splitlines()) if key and value } if vcruntime: env['py_vcruntime_redist'] = vcruntime return env def _find_exe(exe, paths=None): """Return path to an MSVC executable program. Tries to find the program in several places: first, one of the MSVC program search paths from the registry; next, the directories in the PATH environment variable. If any of those work, return an absolute path that is known to exist. If none of them work, just return the original program name, 'exe'. """ if not paths: paths = os.getenv('path').split(os.pathsep) for p in paths: fn = os.path.join(os.path.abspath(p), exe) if os.path.isfile(fn): return fn return exe # A map keyed by get_platform() return values to values accepted by # 'vcvarsall.bat'. Always cross-compile from x86 to work with the # lighter-weight MSVC installs that do not include native 64-bit tools. PLAT_TO_VCVARS = { 'win32' : 'x86', 'win-amd64' : 'x86_amd64', } # A map keyed by get_platform() return values to the file under # the VC install directory containing the vcruntime redistributable. _VCVARS_PLAT_TO_VCRUNTIME_REDIST = { 'x86' : 'redist\\x86\\Microsoft.VC{0}0.CRT\\vcruntime{0}0.dll', 'amd64' : 'redist\\x64\\Microsoft.VC{0}0.CRT\\vcruntime{0}0.dll', 'x86_amd64' : 'redist\\x64\\Microsoft.VC{0}0.CRT\\vcruntime{0}0.dll', } # A set containing the DLLs that are guaranteed to be available for # all micro versions of this Python version. Known extension # dependencies that are not in this set will be copied to the output # path. _BUNDLED_DLLS = frozenset(['vcruntime140.dll']) class MSVCCompiler(CCompiler) : """Concrete class that implements an interface to Microsoft Visual C++, as defined by the CCompiler abstract class.""" compiler_type = 'msvc' # Just set this so CCompiler's constructor doesn't barf. We currently # don't use the 'set_executables()' bureaucracy provided by CCompiler, # as it really isn't necessary for this sort of single-compiler class. # Would be nice to have a consistent interface with UnixCCompiler, # though, so it's worth thinking about. executables = {} # Private class data (need to distinguish C from C++ source for compiler) _c_extensions = ['.c'] _cpp_extensions = ['.cc', '.cpp', '.cxx'] _rc_extensions = ['.rc'] _mc_extensions = ['.mc'] # Needed for the filename generation methods provided by the # base class, CCompiler. src_extensions = (_c_extensions + _cpp_extensions + _rc_extensions + _mc_extensions) res_extension = '.res' obj_extension = '.obj' static_lib_extension = '.lib' shared_lib_extension = '.dll' static_lib_format = shared_lib_format = '%s%s' exe_extension = '.exe' def __init__(self, verbose=0, dry_run=0, force=0): CCompiler.__init__ (self, verbose, dry_run, force) # target platform (.plat_name is consistent with 'bdist') self.plat_name = None self.initialized = False def initialize(self, plat_name=None): # multi-init means we would need to check platform same each time... assert not self.initialized, "don't init multiple times" if plat_name is None: plat_name = get_platform() # sanity check for platforms to prevent obscure errors later. if plat_name not in PLAT_TO_VCVARS: raise DistutilsPlatformError("--plat-name must be one of {}" .format(tuple(PLAT_TO_VCVARS))) # Get the vcvarsall.bat spec for the requested platform. plat_spec = PLAT_TO_VCVARS[plat_name] vc_env = _get_vc_env(plat_spec) if not vc_env: raise DistutilsPlatformError("Unable to find a compatible " "Visual Studio installation.") self._paths = vc_env.get('path', '') paths = self._paths.split(os.pathsep) self.cc = _find_exe("cl.exe", paths) self.linker = _find_exe("link.exe", paths) self.lib = _find_exe("lib.exe", paths) self.rc = _find_exe("rc.exe", paths) # resource compiler self.mc = _find_exe("mc.exe", paths) # message compiler self.mt = _find_exe("mt.exe", paths) # message compiler self._vcruntime_redist = vc_env.get('py_vcruntime_redist', '') for dir in vc_env.get('include', '').split(os.pathsep): if dir: self.add_include_dir(dir) for dir in vc_env.get('lib', '').split(os.pathsep): if dir: self.add_library_dir(dir) self.preprocess_options = None # If vcruntime_redist is available, link against it dynamically. Otherwise, # use /MT[d] to build statically, then switch from libucrt[d].lib to ucrt[d].lib # later to dynamically link to ucrtbase but not vcruntime. self.compile_options = [ '/nologo', '/Ox', '/W3', '/GL', '/DNDEBUG' ] self.compile_options.append('/MD' if self._vcruntime_redist else '/MT') self.compile_options_debug = [ '/nologo', '/Od', '/MDd', '/Zi', '/W3', '/D_DEBUG' ] ldflags = [ '/nologo', '/INCREMENTAL:NO', '/LTCG' ] if not self._vcruntime_redist: ldflags.extend(('/nodefaultlib:libucrt.lib', 'ucrt.lib')) ldflags_debug = [ '/nologo', '/INCREMENTAL:NO', '/LTCG', '/DEBUG:FULL' ] self.ldflags_exe = [*ldflags, '/MANIFEST:EMBED,ID=1'] self.ldflags_exe_debug = [*ldflags_debug, '/MANIFEST:EMBED,ID=1'] self.ldflags_shared = [*ldflags, '/DLL', '/MANIFEST:EMBED,ID=2', '/MANIFESTUAC:NO'] self.ldflags_shared_debug = [*ldflags_debug, '/DLL', '/MANIFEST:EMBED,ID=2', '/MANIFESTUAC:NO'] self.ldflags_static = [*ldflags] self.ldflags_static_debug = [*ldflags_debug] self._ldflags = { (CCompiler.EXECUTABLE, None): self.ldflags_exe, (CCompiler.EXECUTABLE, False): self.ldflags_exe, (CCompiler.EXECUTABLE, True): self.ldflags_exe_debug, (CCompiler.SHARED_OBJECT, None): self.ldflags_shared, (CCompiler.SHARED_OBJECT, False): self.ldflags_shared, (CCompiler.SHARED_OBJECT, True): self.ldflags_shared_debug, (CCompiler.SHARED_LIBRARY, None): self.ldflags_static, (CCompiler.SHARED_LIBRARY, False): self.ldflags_static, (CCompiler.SHARED_LIBRARY, True): self.ldflags_static_debug, } self.initialized = True # -- Worker methods ------------------------------------------------ def object_filenames(self, source_filenames, strip_dir=0, output_dir=''): ext_map = { **{ext: self.obj_extension for ext in self.src_extensions}, **{ext: self.res_extension for ext in self._rc_extensions + self._mc_extensions}, } output_dir = output_dir or '' def make_out_path(p): base, ext = os.path.splitext(p) if strip_dir: base = os.path.basename(base) else: _, base = os.path.splitdrive(base) if base.startswith((os.path.sep, os.path.altsep)): base = base[1:] try: # XXX: This may produce absurdly long paths. We should check # the length of the result and trim base until we fit within # 260 characters. return os.path.join(output_dir, base + ext_map[ext]) except LookupError: # Better to raise an exception instead of silently continuing # and later complain about sources and targets having # different lengths raise CompileError("Don't know how to compile {}".format(p)) return list(map(make_out_path, source_filenames)) def compile(self, sources, output_dir=None, macros=None, include_dirs=None, debug=0, extra_preargs=None, extra_postargs=None, depends=None): if not self.initialized: self.initialize() compile_info = self._setup_compile(output_dir, macros, include_dirs, sources, depends, extra_postargs) macros, objects, extra_postargs, pp_opts, build = compile_info compile_opts = extra_preargs or [] compile_opts.append('/c') if debug: compile_opts.extend(self.compile_options_debug) else: compile_opts.extend(self.compile_options) add_cpp_opts = False for obj in objects: try: src, ext = build[obj] except KeyError: continue if debug: # pass the full pathname to MSVC in debug mode, # this allows the debugger to find the source file # without asking the user to browse for it src = os.path.abspath(src) if ext in self._c_extensions: input_opt = "/Tc" + src elif ext in self._cpp_extensions: input_opt = "/Tp" + src add_cpp_opts = True elif ext in self._rc_extensions: # compile .RC to .RES file input_opt = src output_opt = "/fo" + obj try: self.spawn([self.rc] + pp_opts + [output_opt, input_opt]) except DistutilsExecError as msg: raise CompileError(msg) continue elif ext in self._mc_extensions: # Compile .MC to .RC file to .RES file. # * '-h dir' specifies the directory for the # generated include file # * '-r dir' specifies the target directory of the # generated RC file and the binary message resource # it includes # # For now (since there are no options to change this), # we use the source-directory for the include file and # the build directory for the RC file and message # resources. This works at least for win32all. h_dir = os.path.dirname(src) rc_dir = os.path.dirname(obj) try: # first compile .MC to .RC and .H file self.spawn([self.mc, '-h', h_dir, '-r', rc_dir, src]) base, _ = os.path.splitext(os.path.basename (src)) rc_file = os.path.join(rc_dir, base + '.rc') # then compile .RC to .RES file self.spawn([self.rc, "/fo" + obj, rc_file]) except DistutilsExecError as msg: raise CompileError(msg) continue else: # how to handle this file? raise CompileError("Don't know how to compile {} to {}" .format(src, obj)) args = [self.cc] + compile_opts + pp_opts if add_cpp_opts: args.append('/EHsc') args.append(input_opt) args.append("/Fo" + obj) args.extend(extra_postargs) try: self.spawn(args) except DistutilsExecError as msg: raise CompileError(msg) return objects def create_static_lib(self, objects, output_libname, output_dir=None, debug=0, target_lang=None): if not self.initialized: self.initialize() objects, output_dir = self._fix_object_args(objects, output_dir) output_filename = self.library_filename(output_libname, output_dir=output_dir) if self._need_link(objects, output_filename): lib_args = objects + ['/OUT:' + output_filename] if debug: pass # XXX what goes here? try: log.debug('Executing "%s" %s', self.lib, ' '.join(lib_args)) self.spawn([self.lib] + lib_args) except DistutilsExecError as msg: raise LibError(msg) else: log.debug("skipping %s (up-to-date)", output_filename) def link(self, target_desc, objects, output_filename, output_dir=None, libraries=None, library_dirs=None, runtime_library_dirs=None, export_symbols=None, debug=0, extra_preargs=None, extra_postargs=None, build_temp=None, target_lang=None): if not self.initialized: self.initialize() objects, output_dir = self._fix_object_args(objects, output_dir) fixed_args = self._fix_lib_args(libraries, library_dirs, runtime_library_dirs) libraries, library_dirs, runtime_library_dirs = fixed_args if runtime_library_dirs: self.warn("I don't know what to do with 'runtime_library_dirs': " + str(runtime_library_dirs)) lib_opts = gen_lib_options(self, library_dirs, runtime_library_dirs, libraries) if output_dir is not None: output_filename = os.path.join(output_dir, output_filename) if self._need_link(objects, output_filename): ldflags = self._ldflags[target_desc, debug] export_opts = ["/EXPORT:" + sym for sym in (export_symbols or [])] ld_args = (ldflags + lib_opts + export_opts + objects + ['/OUT:' + output_filename]) # The MSVC linker generates .lib and .exp files, which cannot be # suppressed by any linker switches. The .lib files may even be # needed! Make sure they are generated in the temporary build # directory. Since they have different names for debug and release # builds, they can go into the same directory. build_temp = os.path.dirname(objects[0]) if export_symbols is not None: (dll_name, dll_ext) = os.path.splitext( os.path.basename(output_filename)) implib_file = os.path.join( build_temp, self.library_filename(dll_name)) ld_args.append ('/IMPLIB:' + implib_file) if extra_preargs: ld_args[:0] = extra_preargs if extra_postargs: ld_args.extend(extra_postargs) output_dir = os.path.dirname(os.path.abspath(output_filename)) self.mkpath(output_dir) try: log.debug('Executing "%s" %s', self.linker, ' '.join(ld_args)) self.spawn([self.linker] + ld_args) self._copy_vcruntime(output_dir) except DistutilsExecError as msg: raise LinkError(msg) else: log.debug("skipping %s (up-to-date)", output_filename) def _copy_vcruntime(self, output_dir): vcruntime = self._vcruntime_redist if not vcruntime or not os.path.isfile(vcruntime): return if os.path.basename(vcruntime).lower() in _BUNDLED_DLLS: return log.debug('Copying "%s"', vcruntime) vcruntime = shutil.copy(vcruntime, output_dir) os.chmod(vcruntime, stat.S_IWRITE) def spawn(self, cmd): old_path = os.getenv('path') try: os.environ['path'] = self._paths return super().spawn(cmd) finally: os.environ['path'] = old_path # -- Miscellaneous methods ----------------------------------------- # These are all used by the 'gen_lib_options() function, in # ccompiler.py. def library_dir_option(self, dir): return "/LIBPATH:" + dir def runtime_library_dir_option(self, dir): raise DistutilsPlatformError( "don't know how to set runtime library search path for MSVC") def library_option(self, lib): return self.library_filename(lib) def find_library_file(self, dirs, lib, debug=0): # Prefer a debugging library if found (and requested), but deal # with it if we don't have one. if debug: try_names = [lib + "_d", lib] else: try_names = [lib] for dir in dirs: for name in try_names: libfile = os.path.join(dir, self.library_filename(name)) if os.path.isfile(libfile): return libfile else: # Oops, didn't find it in *any* of 'dirs' return None PK!= 1: log.debug("not copying %s (output up-to-date)", src) return (dst, 0) try: action = _copy_action[link] except KeyError: raise ValueError("invalid value '%s' for 'link' argument" % link) if verbose >= 1: if os.path.basename(dst) == os.path.basename(src): log.info("%s %s -> %s", action, src, dir) else: log.info("%s %s -> %s", action, src, dst) if dry_run: return (dst, 1) # If linking (hard or symbolic), use the appropriate system call # (Unix only, of course, but that's the caller's responsibility) elif link == 'hard': if not (os.path.exists(dst) and os.path.samefile(src, dst)): os.link(src, dst) elif link == 'sym': if not (os.path.exists(dst) and os.path.samefile(src, dst)): os.symlink(src, dst) # Otherwise (non-Mac, not linking), copy the file contents and # (optionally) copy the times and mode. else: _copy_file_contents(src, dst) if preserve_mode or preserve_times: st = os.stat(src) # According to David Ascher , utime() should be done # before chmod() (at least under NT). if preserve_times: os.utime(dst, (st[ST_ATIME], st[ST_MTIME])) if preserve_mode: os.chmod(dst, S_IMODE(st[ST_MODE])) return (dst, 1) # XXX I suspect this is Unix-specific -- need porting help! def move_file (src, dst, verbose=1, dry_run=0): """Move a file 'src' to 'dst'. If 'dst' is a directory, the file will be moved into it with the same name; otherwise, 'src' is just renamed to 'dst'. Return the new full name of the file. Handles cross-device moves on Unix using 'copy_file()'. What about other systems??? """ from os.path import exists, isfile, isdir, basename, dirname import errno if verbose >= 1: log.info("moving %s -> %s", src, dst) if dry_run: return dst if not isfile(src): raise DistutilsFileError("can't move '%s': not a regular file" % src) if isdir(dst): dst = os.path.join(dst, basename(src)) elif exists(dst): raise DistutilsFileError( "can't move '%s': destination '%s' already exists" % (src, dst)) if not isdir(dirname(dst)): raise DistutilsFileError( "can't move '%s': destination '%s' not a valid path" % (src, dst)) copy_it = False try: os.rename(src, dst) except os.error as e: (num, msg) = e if num == errno.EXDEV: copy_it = True else: raise DistutilsFileError( "couldn't move '%s' to '%s': %s" % (src, dst, msg)) if copy_it: copy_file(src, dst, verbose=verbose) try: os.unlink(src) except os.error as e: (num, msg) = e try: os.unlink(dst) except os.error: pass raise DistutilsFileError( "couldn't move '%s' to '%s' by copy/delete: " "delete '%s' failed: %s" % (src, dst, src, msg)) return dst def write_file (filename, contents): """Create a file with the specified name and write 'contents' (a sequence of strings without line terminators) to it. """ f = open(filename, "w") try: for line in contents: f.write(line + "\n") finally: f.close() PK!k"# dep_util.pynu["""distutils.dep_util Utility functions for simple, timestamp-based dependency of files and groups of files; also, function based entirely on such timestamp dependency analysis.""" import os from distutils.errors import DistutilsFileError def newer (source, target): """Return true if 'source' exists and is more recently modified than 'target', or if 'source' exists and 'target' doesn't. Return false if both exist and 'target' is the same age or younger than 'source'. Raise DistutilsFileError if 'source' does not exist. """ if not os.path.exists(source): raise DistutilsFileError("file '%s' does not exist" % os.path.abspath(source)) if not os.path.exists(target): return 1 from stat import ST_MTIME mtime1 = os.stat(source)[ST_MTIME] mtime2 = os.stat(target)[ST_MTIME] return mtime1 > mtime2 # newer () def newer_pairwise (sources, targets): """Walk two filename lists in parallel, testing if each source is newer than its corresponding target. Return a pair of lists (sources, targets) where source is newer than target, according to the semantics of 'newer()'. """ if len(sources) != len(targets): raise ValueError("'sources' and 'targets' must be same length") # build a pair of lists (sources, targets) where source is newer n_sources = [] n_targets = [] for i in range(len(sources)): if newer(sources[i], targets[i]): n_sources.append(sources[i]) n_targets.append(targets[i]) return (n_sources, n_targets) # newer_pairwise () def newer_group (sources, target, missing='error'): """Return true if 'target' is out-of-date with respect to any file listed in 'sources'. In other words, if 'target' exists and is newer than every file in 'sources', return false; otherwise return true. 'missing' controls what we do when a source file is missing; the default ("error") is to blow up with an OSError from inside 'stat()'; if it is "ignore", we silently drop any missing source files; if it is "newer", any missing source files make us assume that 'target' is out-of-date (this is handy in "dry-run" mode: it'll make you pretend to carry out commands that wouldn't work because inputs are missing, but that doesn't matter because you're not actually going to run the commands). """ # If the target doesn't even exist, then it's definitely out-of-date. if not os.path.exists(target): return 1 # Otherwise we have to find out the hard way: if *any* source file # is more recent than 'target', then 'target' is out-of-date and # we can immediately return true. If we fall through to the end # of the loop, then 'target' is up-to-date and we return false. from stat import ST_MTIME target_mtime = os.stat(target)[ST_MTIME] for source in sources: if not os.path.exists(source): if missing == 'error': # blow up when we stat() the file pass elif missing == 'ignore': # missing source dropped from continue # target's dependency list elif missing == 'newer': # missing source means target is return 1 # out-of-date source_mtime = os.stat(source)[ST_MTIME] if source_mtime > target_mtime: return 1 else: return 0 # newer_group () PK!¹¹ ccompiler.pynu["""distutils.ccompiler Contains CCompiler, an abstract base class that defines the interface for the Distutils compiler abstraction model.""" import sys, os, re from distutils.errors import * from distutils.spawn import spawn from distutils.file_util import move_file from distutils.dir_util import mkpath from distutils.dep_util import newer_pairwise, newer_group from distutils.util import split_quoted, execute from distutils import log class CCompiler: """Abstract base class to define the interface that must be implemented by real compiler classes. Also has some utility methods used by several compiler classes. The basic idea behind a compiler abstraction class is that each instance can be used for all the compile/link steps in building a single project. Thus, attributes common to all of those compile and link steps -- include directories, macros to define, libraries to link against, etc. -- are attributes of the compiler instance. To allow for variability in how individual files are treated, most of those attributes may be varied on a per-compilation or per-link basis. """ # 'compiler_type' is a class attribute that identifies this class. It # keeps code that wants to know what kind of compiler it's dealing with # from having to import all possible compiler classes just to do an # 'isinstance'. In concrete CCompiler subclasses, 'compiler_type' # should really, really be one of the keys of the 'compiler_class' # dictionary (see below -- used by the 'new_compiler()' factory # function) -- authors of new compiler interface classes are # responsible for updating 'compiler_class'! compiler_type = None # XXX things not handled by this compiler abstraction model: # * client can't provide additional options for a compiler, # e.g. warning, optimization, debugging flags. Perhaps this # should be the domain of concrete compiler abstraction classes # (UnixCCompiler, MSVCCompiler, etc.) -- or perhaps the base # class should have methods for the common ones. # * can't completely override the include or library searchg # path, ie. no "cc -I -Idir1 -Idir2" or "cc -L -Ldir1 -Ldir2". # I'm not sure how widely supported this is even by Unix # compilers, much less on other platforms. And I'm even less # sure how useful it is; maybe for cross-compiling, but # support for that is a ways off. (And anyways, cross # compilers probably have a dedicated binary with the # right paths compiled in. I hope.) # * can't do really freaky things with the library list/library # dirs, e.g. "-Ldir1 -lfoo -Ldir2 -lfoo" to link against # different versions of libfoo.a in different locations. I # think this is useless without the ability to null out the # library search path anyways. # Subclasses that rely on the standard filename generation methods # implemented below should override these; see the comment near # those methods ('object_filenames()' et. al.) for details: src_extensions = None # list of strings obj_extension = None # string static_lib_extension = None shared_lib_extension = None # string static_lib_format = None # format string shared_lib_format = None # prob. same as static_lib_format exe_extension = None # string # Default language settings. language_map is used to detect a source # file or Extension target language, checking source filenames. # language_order is used to detect the language precedence, when deciding # what language to use when mixing source types. For example, if some # extension has two files with ".c" extension, and one with ".cpp", it # is still linked as c++. language_map = {".c" : "c", ".cc" : "c++", ".cpp" : "c++", ".cxx" : "c++", ".m" : "objc", } language_order = ["c++", "objc", "c"] def __init__(self, verbose=0, dry_run=0, force=0): self.dry_run = dry_run self.force = force self.verbose = verbose # 'output_dir': a common output directory for object, library, # shared object, and shared library files self.output_dir = None # 'macros': a list of macro definitions (or undefinitions). A # macro definition is a 2-tuple (name, value), where the value is # either a string or None (no explicit value). A macro # undefinition is a 1-tuple (name,). self.macros = [] # 'include_dirs': a list of directories to search for include files self.include_dirs = [] # 'libraries': a list of libraries to include in any link # (library names, not filenames: eg. "foo" not "libfoo.a") self.libraries = [] # 'library_dirs': a list of directories to search for libraries self.library_dirs = [] # 'runtime_library_dirs': a list of directories to search for # shared libraries/objects at runtime self.runtime_library_dirs = [] # 'objects': a list of object files (or similar, such as explicitly # named library files) to include on any link self.objects = [] for key in self.executables.keys(): self.set_executable(key, self.executables[key]) def set_executables(self, **kwargs): """Define the executables (and options for them) that will be run to perform the various stages of compilation. The exact set of executables that may be specified here depends on the compiler class (via the 'executables' class attribute), but most will have: compiler the C/C++ compiler linker_so linker used to create shared objects and libraries linker_exe linker used to create binary executables archiver static library creator On platforms with a command-line (Unix, DOS/Windows), each of these is a string that will be split into executable name and (optional) list of arguments. (Splitting the string is done similarly to how Unix shells operate: words are delimited by spaces, but quotes and backslashes can override this. See 'distutils.util.split_quoted()'.) """ # Note that some CCompiler implementation classes will define class # attributes 'cpp', 'cc', etc. with hard-coded executable names; # this is appropriate when a compiler class is for exactly one # compiler/OS combination (eg. MSVCCompiler). Other compiler # classes (UnixCCompiler, in particular) are driven by information # discovered at run-time, since there are many different ways to do # basically the same things with Unix C compilers. for key in kwargs: if key not in self.executables: raise ValueError("unknown executable '%s' for class %s" % (key, self.__class__.__name__)) self.set_executable(key, kwargs[key]) def set_executable(self, key, value): if isinstance(value, str): setattr(self, key, split_quoted(value)) else: setattr(self, key, value) def _find_macro(self, name): i = 0 for defn in self.macros: if defn[0] == name: return i i += 1 return None def _check_macro_definitions(self, definitions): """Ensures that every element of 'definitions' is a valid macro definition, ie. either (name,value) 2-tuple or a (name,) tuple. Do nothing if all definitions are OK, raise TypeError otherwise. """ for defn in definitions: if not (isinstance(defn, tuple) and (len(defn) in (1, 2) and (isinstance (defn[1], str) or defn[1] is None)) and isinstance (defn[0], str)): raise TypeError(("invalid macro definition '%s': " % defn) + \ "must be tuple (string,), (string, string), or " + \ "(string, None)") # -- Bookkeeping methods ------------------------------------------- def define_macro(self, name, value=None): """Define a preprocessor macro for all compilations driven by this compiler object. The optional parameter 'value' should be a string; if it is not supplied, then the macro will be defined without an explicit value and the exact outcome depends on the compiler used (XXX true? does ANSI say anything about this?) """ # Delete from the list of macro definitions/undefinitions if # already there (so that this one will take precedence). i = self._find_macro (name) if i is not None: del self.macros[i] self.macros.append((name, value)) def undefine_macro(self, name): """Undefine a preprocessor macro for all compilations driven by this compiler object. If the same macro is defined by 'define_macro()' and undefined by 'undefine_macro()' the last call takes precedence (including multiple redefinitions or undefinitions). If the macro is redefined/undefined on a per-compilation basis (ie. in the call to 'compile()'), then that takes precedence. """ # Delete from the list of macro definitions/undefinitions if # already there (so that this one will take precedence). i = self._find_macro (name) if i is not None: del self.macros[i] undefn = (name,) self.macros.append(undefn) def add_include_dir(self, dir): """Add 'dir' to the list of directories that will be searched for header files. The compiler is instructed to search directories in the order in which they are supplied by successive calls to 'add_include_dir()'. """ self.include_dirs.append(dir) def set_include_dirs(self, dirs): """Set the list of directories that will be searched to 'dirs' (a list of strings). Overrides any preceding calls to 'add_include_dir()'; subsequence calls to 'add_include_dir()' add to the list passed to 'set_include_dirs()'. This does not affect any list of standard include directories that the compiler may search by default. """ self.include_dirs = dirs[:] def add_library(self, libname): """Add 'libname' to the list of libraries that will be included in all links driven by this compiler object. Note that 'libname' should *not* be the name of a file containing a library, but the name of the library itself: the actual filename will be inferred by the linker, the compiler, or the compiler class (depending on the platform). The linker will be instructed to link against libraries in the order they were supplied to 'add_library()' and/or 'set_libraries()'. It is perfectly valid to duplicate library names; the linker will be instructed to link against libraries as many times as they are mentioned. """ self.libraries.append(libname) def set_libraries(self, libnames): """Set the list of libraries to be included in all links driven by this compiler object to 'libnames' (a list of strings). This does not affect any standard system libraries that the linker may include by default. """ self.libraries = libnames[:] def add_library_dir(self, dir): """Add 'dir' to the list of directories that will be searched for libraries specified to 'add_library()' and 'set_libraries()'. The linker will be instructed to search for libraries in the order they are supplied to 'add_library_dir()' and/or 'set_library_dirs()'. """ self.library_dirs.append(dir) def set_library_dirs(self, dirs): """Set the list of library search directories to 'dirs' (a list of strings). This does not affect any standard library search path that the linker may search by default. """ self.library_dirs = dirs[:] def add_runtime_library_dir(self, dir): """Add 'dir' to the list of directories that will be searched for shared libraries at runtime. """ self.runtime_library_dirs.append(dir) def set_runtime_library_dirs(self, dirs): """Set the list of directories to search for shared libraries at runtime to 'dirs' (a list of strings). This does not affect any standard search path that the runtime linker may search by default. """ self.runtime_library_dirs = dirs[:] def add_link_object(self, object): """Add 'object' to the list of object files (or analogues, such as explicitly named library files or the output of "resource compilers") to be included in every link driven by this compiler object. """ self.objects.append(object) def set_link_objects(self, objects): """Set the list of object files (or analogues) to be included in every link to 'objects'. This does not affect any standard object files that the linker may include by default (such as system libraries). """ self.objects = objects[:] # -- Private utility methods -------------------------------------- # (here for the convenience of subclasses) # Helper method to prep compiler in subclass compile() methods def _setup_compile(self, outdir, macros, incdirs, sources, depends, extra): """Process arguments and decide which source files to compile.""" if outdir is None: outdir = self.output_dir elif not isinstance(outdir, str): raise TypeError("'output_dir' must be a string or None") if macros is None: macros = self.macros elif isinstance(macros, list): macros = macros + (self.macros or []) else: raise TypeError("'macros' (if supplied) must be a list of tuples") if incdirs is None: incdirs = self.include_dirs elif isinstance(incdirs, (list, tuple)): incdirs = list(incdirs) + (self.include_dirs or []) else: raise TypeError( "'include_dirs' (if supplied) must be a list of strings") if extra is None: extra = [] # Get the list of expected output (object) files objects = self.object_filenames(sources, strip_dir=0, output_dir=outdir) assert len(objects) == len(sources) pp_opts = gen_preprocess_options(macros, incdirs) build = {} for i in range(len(sources)): src = sources[i] obj = objects[i] ext = os.path.splitext(src)[1] self.mkpath(os.path.dirname(obj)) build[obj] = (src, ext) return macros, objects, extra, pp_opts, build def _get_cc_args(self, pp_opts, debug, before): # works for unixccompiler, emxccompiler, cygwinccompiler cc_args = pp_opts + ['-c'] if debug: cc_args[:0] = ['-g'] if before: cc_args[:0] = before return cc_args def _fix_compile_args(self, output_dir, macros, include_dirs): """Typecheck and fix-up some of the arguments to the 'compile()' method, and return fixed-up values. Specifically: if 'output_dir' is None, replaces it with 'self.output_dir'; ensures that 'macros' is a list, and augments it with 'self.macros'; ensures that 'include_dirs' is a list, and augments it with 'self.include_dirs'. Guarantees that the returned values are of the correct type, i.e. for 'output_dir' either string or None, and for 'macros' and 'include_dirs' either list or None. """ if output_dir is None: output_dir = self.output_dir elif not isinstance(output_dir, str): raise TypeError("'output_dir' must be a string or None") if macros is None: macros = self.macros elif isinstance(macros, list): macros = macros + (self.macros or []) else: raise TypeError("'macros' (if supplied) must be a list of tuples") if include_dirs is None: include_dirs = self.include_dirs elif isinstance(include_dirs, (list, tuple)): include_dirs = list(include_dirs) + (self.include_dirs or []) else: raise TypeError( "'include_dirs' (if supplied) must be a list of strings") return output_dir, macros, include_dirs def _prep_compile(self, sources, output_dir, depends=None): """Decide which souce files must be recompiled. Determine the list of object files corresponding to 'sources', and figure out which ones really need to be recompiled. Return a list of all object files and a dictionary telling which source files can be skipped. """ # Get the list of expected output (object) files objects = self.object_filenames(sources, output_dir=output_dir) assert len(objects) == len(sources) # Return an empty dict for the "which source files can be skipped" # return value to preserve API compatibility. return objects, {} def _fix_object_args(self, objects, output_dir): """Typecheck and fix up some arguments supplied to various methods. Specifically: ensure that 'objects' is a list; if output_dir is None, replace with self.output_dir. Return fixed versions of 'objects' and 'output_dir'. """ if not isinstance(objects, (list, tuple)): raise TypeError("'objects' must be a list or tuple of strings") objects = list(objects) if output_dir is None: output_dir = self.output_dir elif not isinstance(output_dir, str): raise TypeError("'output_dir' must be a string or None") return (objects, output_dir) def _fix_lib_args(self, libraries, library_dirs, runtime_library_dirs): """Typecheck and fix up some of the arguments supplied to the 'link_*' methods. Specifically: ensure that all arguments are lists, and augment them with their permanent versions (eg. 'self.libraries' augments 'libraries'). Return a tuple with fixed versions of all arguments. """ if libraries is None: libraries = self.libraries elif isinstance(libraries, (list, tuple)): libraries = list (libraries) + (self.libraries or []) else: raise TypeError( "'libraries' (if supplied) must be a list of strings") if library_dirs is None: library_dirs = self.library_dirs elif isinstance(library_dirs, (list, tuple)): library_dirs = list (library_dirs) + (self.library_dirs or []) else: raise TypeError( "'library_dirs' (if supplied) must be a list of strings") if runtime_library_dirs is None: runtime_library_dirs = self.runtime_library_dirs elif isinstance(runtime_library_dirs, (list, tuple)): runtime_library_dirs = (list(runtime_library_dirs) + (self.runtime_library_dirs or [])) else: raise TypeError("'runtime_library_dirs' (if supplied) " "must be a list of strings") return (libraries, library_dirs, runtime_library_dirs) def _need_link(self, objects, output_file): """Return true if we need to relink the files listed in 'objects' to recreate 'output_file'. """ if self.force: return True else: if self.dry_run: newer = newer_group (objects, output_file, missing='newer') else: newer = newer_group (objects, output_file) return newer def detect_language(self, sources): """Detect the language of a given file, or list of files. Uses language_map, and language_order to do the job. """ if not isinstance(sources, list): sources = [sources] lang = None index = len(self.language_order) for source in sources: base, ext = os.path.splitext(source) extlang = self.language_map.get(ext) try: extindex = self.language_order.index(extlang) if extindex < index: lang = extlang index = extindex except ValueError: pass return lang # -- Worker methods ------------------------------------------------ # (must be implemented by subclasses) def preprocess(self, source, output_file=None, macros=None, include_dirs=None, extra_preargs=None, extra_postargs=None): """Preprocess a single C/C++ source file, named in 'source'. Output will be written to file named 'output_file', or stdout if 'output_file' not supplied. 'macros' is a list of macro definitions as for 'compile()', which will augment the macros set with 'define_macro()' and 'undefine_macro()'. 'include_dirs' is a list of directory names that will be added to the default list. Raises PreprocessError on failure. """ pass def compile(self, sources, output_dir=None, macros=None, include_dirs=None, debug=0, extra_preargs=None, extra_postargs=None, depends=None): """Compile one or more source files. 'sources' must be a list of filenames, most likely C/C++ files, but in reality anything that can be handled by a particular compiler and compiler class (eg. MSVCCompiler can handle resource files in 'sources'). Return a list of object filenames, one per source filename in 'sources'. Depending on the implementation, not all source files will necessarily be compiled, but all corresponding object filenames will be returned. If 'output_dir' is given, object files will be put under it, while retaining their original path component. That is, "foo/bar.c" normally compiles to "foo/bar.o" (for a Unix implementation); if 'output_dir' is "build", then it would compile to "build/foo/bar.o". 'macros', if given, must be a list of macro definitions. A macro definition is either a (name, value) 2-tuple or a (name,) 1-tuple. The former defines a macro; if the value is None, the macro is defined without an explicit value. The 1-tuple case undefines a macro. Later definitions/redefinitions/ undefinitions take precedence. 'include_dirs', if given, must be a list of strings, the directories to add to the default include file search path for this compilation only. 'debug' is a boolean; if true, the compiler will be instructed to output debug symbols in (or alongside) the object file(s). 'extra_preargs' and 'extra_postargs' are implementation- dependent. On platforms that have the notion of a command-line (e.g. Unix, DOS/Windows), they are most likely lists of strings: extra command-line arguments to prepand/append to the compiler command line. On other platforms, consult the implementation class documentation. In any event, they are intended as an escape hatch for those occasions when the abstract compiler framework doesn't cut the mustard. 'depends', if given, is a list of filenames that all targets depend on. If a source file is older than any file in depends, then the source file will be recompiled. This supports dependency tracking, but only at a coarse granularity. Raises CompileError on failure. """ # A concrete compiler class can either override this method # entirely or implement _compile(). macros, objects, extra_postargs, pp_opts, build = \ self._setup_compile(output_dir, macros, include_dirs, sources, depends, extra_postargs) cc_args = self._get_cc_args(pp_opts, debug, extra_preargs) for obj in objects: try: src, ext = build[obj] except KeyError: continue self._compile(obj, src, ext, cc_args, extra_postargs, pp_opts) # Return *all* object filenames, not just the ones we just built. return objects def _compile(self, obj, src, ext, cc_args, extra_postargs, pp_opts): """Compile 'src' to product 'obj'.""" # A concrete compiler class that does not override compile() # should implement _compile(). pass def create_static_lib(self, objects, output_libname, output_dir=None, debug=0, target_lang=None): """Link a bunch of stuff together to create a static library file. The "bunch of stuff" consists of the list of object files supplied as 'objects', the extra object files supplied to 'add_link_object()' and/or 'set_link_objects()', the libraries supplied to 'add_library()' and/or 'set_libraries()', and the libraries supplied as 'libraries' (if any). 'output_libname' should be a library name, not a filename; the filename will be inferred from the library name. 'output_dir' is the directory where the library file will be put. 'debug' is a boolean; if true, debugging information will be included in the library (note that on most platforms, it is the compile step where this matters: the 'debug' flag is included here just for consistency). 'target_lang' is the target language for which the given objects are being compiled. This allows specific linkage time treatment of certain languages. Raises LibError on failure. """ pass # values for target_desc parameter in link() SHARED_OBJECT = "shared_object" SHARED_LIBRARY = "shared_library" EXECUTABLE = "executable" def link(self, target_desc, objects, output_filename, output_dir=None, libraries=None, library_dirs=None, runtime_library_dirs=None, export_symbols=None, debug=0, extra_preargs=None, extra_postargs=None, build_temp=None, target_lang=None): """Link a bunch of stuff together to create an executable or shared library file. The "bunch of stuff" consists of the list of object files supplied as 'objects'. 'output_filename' should be a filename. If 'output_dir' is supplied, 'output_filename' is relative to it (i.e. 'output_filename' can provide directory components if needed). 'libraries' is a list of libraries to link against. These are library names, not filenames, since they're translated into filenames in a platform-specific way (eg. "foo" becomes "libfoo.a" on Unix and "foo.lib" on DOS/Windows). However, they can include a directory component, which means the linker will look in that specific directory rather than searching all the normal locations. 'library_dirs', if supplied, should be a list of directories to search for libraries that were specified as bare library names (ie. no directory component). These are on top of the system default and those supplied to 'add_library_dir()' and/or 'set_library_dirs()'. 'runtime_library_dirs' is a list of directories that will be embedded into the shared library and used to search for other shared libraries that *it* depends on at run-time. (This may only be relevant on Unix.) 'export_symbols' is a list of symbols that the shared library will export. (This appears to be relevant only on Windows.) 'debug' is as for 'compile()' and 'create_static_lib()', with the slight distinction that it actually matters on most platforms (as opposed to 'create_static_lib()', which includes a 'debug' flag mostly for form's sake). 'extra_preargs' and 'extra_postargs' are as for 'compile()' (except of course that they supply command-line arguments for the particular linker being used). 'target_lang' is the target language for which the given objects are being compiled. This allows specific linkage time treatment of certain languages. Raises LinkError on failure. """ raise NotImplementedError # Old 'link_*()' methods, rewritten to use the new 'link()' method. def link_shared_lib(self, objects, output_libname, output_dir=None, libraries=None, library_dirs=None, runtime_library_dirs=None, export_symbols=None, debug=0, extra_preargs=None, extra_postargs=None, build_temp=None, target_lang=None): self.link(CCompiler.SHARED_LIBRARY, objects, self.library_filename(output_libname, lib_type='shared'), output_dir, libraries, library_dirs, runtime_library_dirs, export_symbols, debug, extra_preargs, extra_postargs, build_temp, target_lang) def link_shared_object(self, objects, output_filename, output_dir=None, libraries=None, library_dirs=None, runtime_library_dirs=None, export_symbols=None, debug=0, extra_preargs=None, extra_postargs=None, build_temp=None, target_lang=None): self.link(CCompiler.SHARED_OBJECT, objects, output_filename, output_dir, libraries, library_dirs, runtime_library_dirs, export_symbols, debug, extra_preargs, extra_postargs, build_temp, target_lang) def link_executable(self, objects, output_progname, output_dir=None, libraries=None, library_dirs=None, runtime_library_dirs=None, debug=0, extra_preargs=None, extra_postargs=None, target_lang=None): self.link(CCompiler.EXECUTABLE, objects, self.executable_filename(output_progname), output_dir, libraries, library_dirs, runtime_library_dirs, None, debug, extra_preargs, extra_postargs, None, target_lang) # -- Miscellaneous methods ----------------------------------------- # These are all used by the 'gen_lib_options() function; there is # no appropriate default implementation so subclasses should # implement all of these. def library_dir_option(self, dir): """Return the compiler option to add 'dir' to the list of directories searched for libraries. """ raise NotImplementedError def runtime_library_dir_option(self, dir): """Return the compiler option to add 'dir' to the list of directories searched for runtime libraries. """ raise NotImplementedError def library_option(self, lib): """Return the compiler option to add 'dir' to the list of libraries linked into the shared library or executable. """ raise NotImplementedError def has_function(self, funcname, includes=None, include_dirs=None, libraries=None, library_dirs=None): """Return a boolean indicating whether funcname is supported on the current platform. The optional arguments can be used to augment the compilation environment. """ # this can't be included at module scope because it tries to # import math which might not be available at that point - maybe # the necessary logic should just be inlined? import tempfile if includes is None: includes = [] if include_dirs is None: include_dirs = [] if libraries is None: libraries = [] if library_dirs is None: library_dirs = [] fd, fname = tempfile.mkstemp(".c", funcname, text=True) f = os.fdopen(fd, "w") try: for incl in includes: f.write("""#include "%s"\n""" % incl) f.write("""\ main (int argc, char **argv) { %s(); } """ % funcname) finally: f.close() try: objects = self.compile([fname], include_dirs=include_dirs) except CompileError: return False try: self.link_executable(objects, "a.out", libraries=libraries, library_dirs=library_dirs) except (LinkError, TypeError): return False return True def find_library_file (self, dirs, lib, debug=0): """Search the specified list of directories for a static or shared library file 'lib' and return the full path to that file. If 'debug' true, look for a debugging version (if that makes sense on the current platform). Return None if 'lib' wasn't found in any of the specified directories. """ raise NotImplementedError # -- Filename generation methods ----------------------------------- # The default implementation of the filename generating methods are # prejudiced towards the Unix/DOS/Windows view of the world: # * object files are named by replacing the source file extension # (eg. .c/.cpp -> .o/.obj) # * library files (shared or static) are named by plugging the # library name and extension into a format string, eg. # "lib%s.%s" % (lib_name, ".a") for Unix static libraries # * executables are named by appending an extension (possibly # empty) to the program name: eg. progname + ".exe" for # Windows # # To reduce redundant code, these methods expect to find # several attributes in the current object (presumably defined # as class attributes): # * src_extensions - # list of C/C++ source file extensions, eg. ['.c', '.cpp'] # * obj_extension - # object file extension, eg. '.o' or '.obj' # * static_lib_extension - # extension for static library files, eg. '.a' or '.lib' # * shared_lib_extension - # extension for shared library/object files, eg. '.so', '.dll' # * static_lib_format - # format string for generating static library filenames, # eg. 'lib%s.%s' or '%s.%s' # * shared_lib_format # format string for generating shared library filenames # (probably same as static_lib_format, since the extension # is one of the intended parameters to the format string) # * exe_extension - # extension for executable files, eg. '' or '.exe' def object_filenames(self, source_filenames, strip_dir=0, output_dir=''): if output_dir is None: output_dir = '' obj_names = [] for src_name in source_filenames: base, ext = os.path.splitext(src_name) base = os.path.splitdrive(base)[1] # Chop off the drive base = base[os.path.isabs(base):] # If abs, chop off leading / if ext not in self.src_extensions: raise UnknownFileError( "unknown file type '%s' (from '%s')" % (ext, src_name)) if strip_dir: base = os.path.basename(base) obj_names.append(os.path.join(output_dir, base + self.obj_extension)) return obj_names def shared_object_filename(self, basename, strip_dir=0, output_dir=''): assert output_dir is not None if strip_dir: basename = os.path.basename(basename) return os.path.join(output_dir, basename + self.shared_lib_extension) def executable_filename(self, basename, strip_dir=0, output_dir=''): assert output_dir is not None if strip_dir: basename = os.path.basename(basename) return os.path.join(output_dir, basename + (self.exe_extension or '')) def library_filename(self, libname, lib_type='static', # or 'shared' strip_dir=0, output_dir=''): assert output_dir is not None if lib_type not in ("static", "shared", "dylib"): raise ValueError( "'lib_type' must be \"static\", \"shared\" or \"dylib\"") fmt = getattr(self, lib_type + "_lib_format") ext = getattr(self, lib_type + "_lib_extension") dir, base = os.path.split(libname) filename = fmt % (base, ext) if strip_dir: dir = '' return os.path.join(output_dir, dir, filename) # -- Utility methods ----------------------------------------------- def announce(self, msg, level=1): log.debug(msg) def debug_print(self, msg): from distutils.debug import DEBUG if DEBUG: print(msg) def warn(self, msg): sys.stderr.write("warning: %s\n" % msg) def execute(self, func, args, msg=None, level=1): execute(func, args, msg, self.dry_run) def spawn(self, cmd): spawn(cmd, dry_run=self.dry_run) def move_file(self, src, dst): return move_file(src, dst, dry_run=self.dry_run) def mkpath (self, name, mode=0o777): mkpath(name, mode, dry_run=self.dry_run) # Map a sys.platform/os.name ('posix', 'nt') to the default compiler # type for that platform. Keys are interpreted as re match # patterns. Order is important; platform mappings are preferred over # OS names. _default_compilers = ( # Platform string mappings # on a cygwin built python we can use gcc like an ordinary UNIXish # compiler ('cygwin.*', 'unix'), ('os2emx', 'emx'), # OS name mappings ('posix', 'unix'), ('nt', 'msvc'), ) def get_default_compiler(osname=None, platform=None): """Determine the default compiler to use for the given platform. osname should be one of the standard Python OS names (i.e. the ones returned by os.name) and platform the common value returned by sys.platform for the platform in question. The default values are os.name and sys.platform in case the parameters are not given. """ if osname is None: osname = os.name if platform is None: platform = sys.platform for pattern, compiler in _default_compilers: if re.match(pattern, platform) is not None or \ re.match(pattern, osname) is not None: return compiler # Default to Unix compiler return 'unix' # Map compiler types to (module_name, class_name) pairs -- ie. where to # find the code that implements an interface to this compiler. (The module # is assumed to be in the 'distutils' package.) compiler_class = { 'unix': ('unixccompiler', 'UnixCCompiler', "standard UNIX-style compiler"), 'msvc': ('msvccompiler', 'MSVCCompiler', "Microsoft Visual C++"), 'cygwin': ('cygwinccompiler', 'CygwinCCompiler', "Cygwin port of GNU C Compiler for Win32"), 'mingw32': ('cygwinccompiler', 'Mingw32CCompiler', "Mingw32 port of GNU C Compiler for Win32"), 'bcpp': ('bcppcompiler', 'BCPPCompiler', "Borland C++ Compiler"), 'emx': ('emxccompiler', 'EMXCCompiler', "EMX port of GNU C Compiler for OS/2"), } def show_compilers(): """Print list of available compilers (used by the "--help-compiler" options to "build", "build_ext", "build_clib"). """ # XXX this "knows" that the compiler option it's describing is # "--compiler", which just happens to be the case for the three # commands that use it. from distutils.fancy_getopt import FancyGetopt compilers = [] for compiler in compiler_class.keys(): compilers.append(("compiler="+compiler, None, compiler_class[compiler][2])) compilers.sort() pretty_printer = FancyGetopt(compilers) pretty_printer.print_help("List of available compilers:") def new_compiler(plat=None, compiler=None, verbose=0, dry_run=0, force=0): """Generate an instance of some CCompiler subclass for the supplied platform/compiler combination. 'plat' defaults to 'os.name' (eg. 'posix', 'nt'), and 'compiler' defaults to the default compiler for that platform. Currently only 'posix' and 'nt' are supported, and the default compilers are "traditional Unix interface" (UnixCCompiler class) and Visual C++ (MSVCCompiler class). Note that it's perfectly possible to ask for a Unix compiler object under Windows, and a Microsoft compiler object under Unix -- if you supply a value for 'compiler', 'plat' is ignored. """ if plat is None: plat = os.name try: if compiler is None: compiler = get_default_compiler(plat) (module_name, class_name, long_description) = compiler_class[compiler] except KeyError: msg = "don't know how to compile C/C++ code on platform '%s'" % plat if compiler is not None: msg = msg + " with '%s' compiler" % compiler raise DistutilsPlatformError(msg) try: module_name = "distutils." + module_name __import__ (module_name) module = sys.modules[module_name] klass = vars(module)[class_name] except ImportError: raise DistutilsModuleError( "can't compile C/C++ code: unable to load module '%s'" % \ module_name) except KeyError: raise DistutilsModuleError( "can't compile C/C++ code: unable to find class '%s' " "in module '%s'" % (class_name, module_name)) # XXX The None is necessary to preserve backwards compatibility # with classes that expect verbose to be the first positional # argument. return klass(None, dry_run, force) def gen_preprocess_options(macros, include_dirs): """Generate C pre-processor options (-D, -U, -I) as used by at least two types of compilers: the typical Unix compiler and Visual C++. 'macros' is the usual thing, a list of 1- or 2-tuples, where (name,) means undefine (-U) macro 'name', and (name,value) means define (-D) macro 'name' to 'value'. 'include_dirs' is just a list of directory names to be added to the header file search path (-I). Returns a list of command-line options suitable for either Unix compilers or Visual C++. """ # XXX it would be nice (mainly aesthetic, and so we don't generate # stupid-looking command lines) to go over 'macros' and eliminate # redundant definitions/undefinitions (ie. ensure that only the # latest mention of a particular macro winds up on the command # line). I don't think it's essential, though, since most (all?) # Unix C compilers only pay attention to the latest -D or -U # mention of a macro on their command line. Similar situation for # 'include_dirs'. I'm punting on both for now. Anyways, weeding out # redundancies like this should probably be the province of # CCompiler, since the data structures used are inherited from it # and therefore common to all CCompiler classes. pp_opts = [] for macro in macros: if not (isinstance(macro, tuple) and 1 <= len(macro) <= 2): raise TypeError( "bad macro definition '%s': " "each element of 'macros' list must be a 1- or 2-tuple" % macro) if len(macro) == 1: # undefine this macro pp_opts.append("-U%s" % macro[0]) elif len(macro) == 2: if macro[1] is None: # define with no explicit value pp_opts.append("-D%s" % macro[0]) else: # XXX *don't* need to be clever about quoting the # macro value here, because we're going to avoid the # shell at all costs when we spawn the command! pp_opts.append("-D%s=%s" % macro) for dir in include_dirs: pp_opts.append("-I%s" % dir) return pp_opts def gen_lib_options (compiler, library_dirs, runtime_library_dirs, libraries): """Generate linker options for searching library directories and linking with specific libraries. 'libraries' and 'library_dirs' are, respectively, lists of library names (not filenames!) and search directories. Returns a list of command-line options suitable for use with some compiler (depending on the two format strings passed in). """ lib_opts = [] for dir in library_dirs: lib_opts.append(compiler.library_dir_option(dir)) for dir in runtime_library_dirs: opt = compiler.runtime_library_dir_option(dir) if isinstance(opt, list): lib_opts = lib_opts + opt else: lib_opts.append(opt) # XXX it's important that we *not* remove redundant library mentions! # sometimes you really do have to say "-lfoo -lbar -lfoo" in order to # resolve all symbols. I just hope we never have to say "-lfoo obj.o # -lbar" to get things to work -- that's certainly a possibility, but a # pretty nasty way to arrange your C code. for lib in libraries: (lib_dir, lib_name) = os.path.split(lib) if lib_dir: lib_file = compiler.find_library_file([lib_dir], lib_name) if lib_file: lib_opts.append(lib_file) else: compiler.warn("no library file corresponding to " "'%s' found (skipping)" % lib) else: lib_opts.append(compiler.library_option (lib)) return lib_opts PK!ec [[msvccompiler.pynu["""distutils.msvccompiler Contains MSVCCompiler, an implementation of the abstract CCompiler class for the Microsoft Visual Studio. """ # Written by Perry Stoll # hacked by Robin Becker and Thomas Heller to do a better job of # finding DevStudio (through the registry) import sys, os from distutils.errors import \ DistutilsExecError, DistutilsPlatformError, \ CompileError, LibError, LinkError from distutils.ccompiler import \ CCompiler, gen_preprocess_options, gen_lib_options from distutils import log _can_read_reg = False try: import winreg _can_read_reg = True hkey_mod = winreg RegOpenKeyEx = winreg.OpenKeyEx RegEnumKey = winreg.EnumKey RegEnumValue = winreg.EnumValue RegError = winreg.error except ImportError: try: import win32api import win32con _can_read_reg = True hkey_mod = win32con RegOpenKeyEx = win32api.RegOpenKeyEx RegEnumKey = win32api.RegEnumKey RegEnumValue = win32api.RegEnumValue RegError = win32api.error except ImportError: log.info("Warning: Can't read registry to find the " "necessary compiler setting\n" "Make sure that Python modules winreg, " "win32api or win32con are installed.") pass if _can_read_reg: HKEYS = (hkey_mod.HKEY_USERS, hkey_mod.HKEY_CURRENT_USER, hkey_mod.HKEY_LOCAL_MACHINE, hkey_mod.HKEY_CLASSES_ROOT) def read_keys(base, key): """Return list of registry keys.""" try: handle = RegOpenKeyEx(base, key) except RegError: return None L = [] i = 0 while True: try: k = RegEnumKey(handle, i) except RegError: break L.append(k) i += 1 return L def read_values(base, key): """Return dict of registry keys and values. All names are converted to lowercase. """ try: handle = RegOpenKeyEx(base, key) except RegError: return None d = {} i = 0 while True: try: name, value, type = RegEnumValue(handle, i) except RegError: break name = name.lower() d[convert_mbcs(name)] = convert_mbcs(value) i += 1 return d def convert_mbcs(s): dec = getattr(s, "decode", None) if dec is not None: try: s = dec("mbcs") except UnicodeError: pass return s class MacroExpander: def __init__(self, version): self.macros = {} self.load_macros(version) def set_macro(self, macro, path, key): for base in HKEYS: d = read_values(base, path) if d: self.macros["$(%s)" % macro] = d[key] break def load_macros(self, version): vsbase = r"Software\Microsoft\VisualStudio\%0.1f" % version self.set_macro("VCInstallDir", vsbase + r"\Setup\VC", "productdir") self.set_macro("VSInstallDir", vsbase + r"\Setup\VS", "productdir") net = r"Software\Microsoft\.NETFramework" self.set_macro("FrameworkDir", net, "installroot") try: if version > 7.0: self.set_macro("FrameworkSDKDir", net, "sdkinstallrootv1.1") else: self.set_macro("FrameworkSDKDir", net, "sdkinstallroot") except KeyError as exc: # raise DistutilsPlatformError( """Python was built with Visual Studio 2003; extensions must be built with a compiler than can generate compatible binaries. Visual Studio 2003 was not found on this system. If you have Cygwin installed, you can try compiling with MingW32, by passing "-c mingw32" to setup.py.""") p = r"Software\Microsoft\NET Framework Setup\Product" for base in HKEYS: try: h = RegOpenKeyEx(base, p) except RegError: continue key = RegEnumKey(h, 0) d = read_values(base, r"%s\%s" % (p, key)) self.macros["$(FrameworkVersion)"] = d["version"] def sub(self, s): for k, v in self.macros.items(): s = s.replace(k, v) return s def get_build_version(): """Return the version of MSVC that was used to build Python. For Python 2.3 and up, the version number is included in sys.version. For earlier versions, assume the compiler is MSVC 6. """ prefix = "MSC v." i = sys.version.find(prefix) if i == -1: return 6 i = i + len(prefix) s, rest = sys.version[i:].split(" ", 1) majorVersion = int(s[:-2]) - 6 minorVersion = int(s[2:3]) / 10.0 # I don't think paths are affected by minor version in version 6 if majorVersion == 6: minorVersion = 0 if majorVersion >= 6: return majorVersion + minorVersion # else we don't know what version of the compiler this is return None def get_build_architecture(): """Return the processor architecture. Possible results are "Intel", "Itanium", or "AMD64". """ prefix = " bit (" i = sys.version.find(prefix) if i == -1: return "Intel" j = sys.version.find(")", i) return sys.version[i+len(prefix):j] def normalize_and_reduce_paths(paths): """Return a list of normalized paths with duplicates removed. The current order of paths is maintained. """ # Paths are normalized so things like: /a and /a/ aren't both preserved. reduced_paths = [] for p in paths: np = os.path.normpath(p) # XXX(nnorwitz): O(n**2), if reduced_paths gets long perhaps use a set. if np not in reduced_paths: reduced_paths.append(np) return reduced_paths class MSVCCompiler(CCompiler) : """Concrete class that implements an interface to Microsoft Visual C++, as defined by the CCompiler abstract class.""" compiler_type = 'msvc' # Just set this so CCompiler's constructor doesn't barf. We currently # don't use the 'set_executables()' bureaucracy provided by CCompiler, # as it really isn't necessary for this sort of single-compiler class. # Would be nice to have a consistent interface with UnixCCompiler, # though, so it's worth thinking about. executables = {} # Private class data (need to distinguish C from C++ source for compiler) _c_extensions = ['.c'] _cpp_extensions = ['.cc', '.cpp', '.cxx'] _rc_extensions = ['.rc'] _mc_extensions = ['.mc'] # Needed for the filename generation methods provided by the # base class, CCompiler. src_extensions = (_c_extensions + _cpp_extensions + _rc_extensions + _mc_extensions) res_extension = '.res' obj_extension = '.obj' static_lib_extension = '.lib' shared_lib_extension = '.dll' static_lib_format = shared_lib_format = '%s%s' exe_extension = '.exe' def __init__(self, verbose=0, dry_run=0, force=0): CCompiler.__init__ (self, verbose, dry_run, force) self.__version = get_build_version() self.__arch = get_build_architecture() if self.__arch == "Intel": # x86 if self.__version >= 7: self.__root = r"Software\Microsoft\VisualStudio" self.__macros = MacroExpander(self.__version) else: self.__root = r"Software\Microsoft\Devstudio" self.__product = "Visual Studio version %s" % self.__version else: # Win64. Assume this was built with the platform SDK self.__product = "Microsoft SDK compiler %s" % (self.__version + 6) self.initialized = False def initialize(self): self.__paths = [] if "DISTUTILS_USE_SDK" in os.environ and "MSSdk" in os.environ and self.find_exe("cl.exe"): # Assume that the SDK set up everything alright; don't try to be # smarter self.cc = "cl.exe" self.linker = "link.exe" self.lib = "lib.exe" self.rc = "rc.exe" self.mc = "mc.exe" else: self.__paths = self.get_msvc_paths("path") if len(self.__paths) == 0: raise DistutilsPlatformError("Python was built with %s, " "and extensions need to be built with the same " "version of the compiler, but it isn't installed." % self.__product) self.cc = self.find_exe("cl.exe") self.linker = self.find_exe("link.exe") self.lib = self.find_exe("lib.exe") self.rc = self.find_exe("rc.exe") # resource compiler self.mc = self.find_exe("mc.exe") # message compiler self.set_path_env_var('lib') self.set_path_env_var('include') # extend the MSVC path with the current path try: for p in os.environ['path'].split(';'): self.__paths.append(p) except KeyError: pass self.__paths = normalize_and_reduce_paths(self.__paths) os.environ['path'] = ";".join(self.__paths) self.preprocess_options = None if self.__arch == "Intel": self.compile_options = [ '/nologo', '/Ox', '/MD', '/W3', '/GX' , '/DNDEBUG'] self.compile_options_debug = ['/nologo', '/Od', '/MDd', '/W3', '/GX', '/Z7', '/D_DEBUG'] else: # Win64 self.compile_options = [ '/nologo', '/Ox', '/MD', '/W3', '/GS-' , '/DNDEBUG'] self.compile_options_debug = ['/nologo', '/Od', '/MDd', '/W3', '/GS-', '/Z7', '/D_DEBUG'] self.ldflags_shared = ['/DLL', '/nologo', '/INCREMENTAL:NO'] if self.__version >= 7: self.ldflags_shared_debug = [ '/DLL', '/nologo', '/INCREMENTAL:no', '/DEBUG' ] else: self.ldflags_shared_debug = [ '/DLL', '/nologo', '/INCREMENTAL:no', '/pdb:None', '/DEBUG' ] self.ldflags_static = [ '/nologo'] self.initialized = True # -- Worker methods ------------------------------------------------ def object_filenames(self, source_filenames, strip_dir=0, output_dir=''): # Copied from ccompiler.py, extended to return .res as 'object'-file # for .rc input file if output_dir is None: output_dir = '' obj_names = [] for src_name in source_filenames: (base, ext) = os.path.splitext (src_name) base = os.path.splitdrive(base)[1] # Chop off the drive base = base[os.path.isabs(base):] # If abs, chop off leading / if ext not in self.src_extensions: # Better to raise an exception instead of silently continuing # and later complain about sources and targets having # different lengths raise CompileError ("Don't know how to compile %s" % src_name) if strip_dir: base = os.path.basename (base) if ext in self._rc_extensions: obj_names.append (os.path.join (output_dir, base + self.res_extension)) elif ext in self._mc_extensions: obj_names.append (os.path.join (output_dir, base + self.res_extension)) else: obj_names.append (os.path.join (output_dir, base + self.obj_extension)) return obj_names def compile(self, sources, output_dir=None, macros=None, include_dirs=None, debug=0, extra_preargs=None, extra_postargs=None, depends=None): if not self.initialized: self.initialize() compile_info = self._setup_compile(output_dir, macros, include_dirs, sources, depends, extra_postargs) macros, objects, extra_postargs, pp_opts, build = compile_info compile_opts = extra_preargs or [] compile_opts.append ('/c') if debug: compile_opts.extend(self.compile_options_debug) else: compile_opts.extend(self.compile_options) for obj in objects: try: src, ext = build[obj] except KeyError: continue if debug: # pass the full pathname to MSVC in debug mode, # this allows the debugger to find the source file # without asking the user to browse for it src = os.path.abspath(src) if ext in self._c_extensions: input_opt = "/Tc" + src elif ext in self._cpp_extensions: input_opt = "/Tp" + src elif ext in self._rc_extensions: # compile .RC to .RES file input_opt = src output_opt = "/fo" + obj try: self.spawn([self.rc] + pp_opts + [output_opt] + [input_opt]) except DistutilsExecError as msg: raise CompileError(msg) continue elif ext in self._mc_extensions: # Compile .MC to .RC file to .RES file. # * '-h dir' specifies the directory for the # generated include file # * '-r dir' specifies the target directory of the # generated RC file and the binary message resource # it includes # # For now (since there are no options to change this), # we use the source-directory for the include file and # the build directory for the RC file and message # resources. This works at least for win32all. h_dir = os.path.dirname(src) rc_dir = os.path.dirname(obj) try: # first compile .MC to .RC and .H file self.spawn([self.mc] + ['-h', h_dir, '-r', rc_dir] + [src]) base, _ = os.path.splitext (os.path.basename (src)) rc_file = os.path.join (rc_dir, base + '.rc') # then compile .RC to .RES file self.spawn([self.rc] + ["/fo" + obj] + [rc_file]) except DistutilsExecError as msg: raise CompileError(msg) continue else: # how to handle this file? raise CompileError("Don't know how to compile %s to %s" % (src, obj)) output_opt = "/Fo" + obj try: self.spawn([self.cc] + compile_opts + pp_opts + [input_opt, output_opt] + extra_postargs) except DistutilsExecError as msg: raise CompileError(msg) return objects def create_static_lib(self, objects, output_libname, output_dir=None, debug=0, target_lang=None): if not self.initialized: self.initialize() (objects, output_dir) = self._fix_object_args(objects, output_dir) output_filename = self.library_filename(output_libname, output_dir=output_dir) if self._need_link(objects, output_filename): lib_args = objects + ['/OUT:' + output_filename] if debug: pass # XXX what goes here? try: self.spawn([self.lib] + lib_args) except DistutilsExecError as msg: raise LibError(msg) else: log.debug("skipping %s (up-to-date)", output_filename) def link(self, target_desc, objects, output_filename, output_dir=None, libraries=None, library_dirs=None, runtime_library_dirs=None, export_symbols=None, debug=0, extra_preargs=None, extra_postargs=None, build_temp=None, target_lang=None): if not self.initialized: self.initialize() (objects, output_dir) = self._fix_object_args(objects, output_dir) fixed_args = self._fix_lib_args(libraries, library_dirs, runtime_library_dirs) (libraries, library_dirs, runtime_library_dirs) = fixed_args if runtime_library_dirs: self.warn ("I don't know what to do with 'runtime_library_dirs': " + str (runtime_library_dirs)) lib_opts = gen_lib_options(self, library_dirs, runtime_library_dirs, libraries) if output_dir is not None: output_filename = os.path.join(output_dir, output_filename) if self._need_link(objects, output_filename): if target_desc == CCompiler.EXECUTABLE: if debug: ldflags = self.ldflags_shared_debug[1:] else: ldflags = self.ldflags_shared[1:] else: if debug: ldflags = self.ldflags_shared_debug else: ldflags = self.ldflags_shared export_opts = [] for sym in (export_symbols or []): export_opts.append("/EXPORT:" + sym) ld_args = (ldflags + lib_opts + export_opts + objects + ['/OUT:' + output_filename]) # The MSVC linker generates .lib and .exp files, which cannot be # suppressed by any linker switches. The .lib files may even be # needed! Make sure they are generated in the temporary build # directory. Since they have different names for debug and release # builds, they can go into the same directory. if export_symbols is not None: (dll_name, dll_ext) = os.path.splitext( os.path.basename(output_filename)) implib_file = os.path.join( os.path.dirname(objects[0]), self.library_filename(dll_name)) ld_args.append ('/IMPLIB:' + implib_file) if extra_preargs: ld_args[:0] = extra_preargs if extra_postargs: ld_args.extend(extra_postargs) self.mkpath(os.path.dirname(output_filename)) try: self.spawn([self.linker] + ld_args) except DistutilsExecError as msg: raise LinkError(msg) else: log.debug("skipping %s (up-to-date)", output_filename) # -- Miscellaneous methods ----------------------------------------- # These are all used by the 'gen_lib_options() function, in # ccompiler.py. def library_dir_option(self, dir): return "/LIBPATH:" + dir def runtime_library_dir_option(self, dir): raise DistutilsPlatformError( "don't know how to set runtime library search path for MSVC++") def library_option(self, lib): return self.library_filename(lib) def find_library_file(self, dirs, lib, debug=0): # Prefer a debugging library if found (and requested), but deal # with it if we don't have one. if debug: try_names = [lib + "_d", lib] else: try_names = [lib] for dir in dirs: for name in try_names: libfile = os.path.join(dir, self.library_filename (name)) if os.path.exists(libfile): return libfile else: # Oops, didn't find it in *any* of 'dirs' return None # Helper methods for using the MSVC registry settings def find_exe(self, exe): """Return path to an MSVC executable program. Tries to find the program in several places: first, one of the MSVC program search paths from the registry; next, the directories in the PATH environment variable. If any of those work, return an absolute path that is known to exist. If none of them work, just return the original program name, 'exe'. """ for p in self.__paths: fn = os.path.join(os.path.abspath(p), exe) if os.path.isfile(fn): return fn # didn't find it; try existing path for p in os.environ['Path'].split(';'): fn = os.path.join(os.path.abspath(p),exe) if os.path.isfile(fn): return fn return exe def get_msvc_paths(self, path, platform='x86'): """Get a list of devstudio directories (include, lib or path). Return a list of strings. The list will be empty if unable to access the registry or appropriate registry keys not found. """ if not _can_read_reg: return [] path = path + " dirs" if self.__version >= 7: key = (r"%s\%0.1f\VC\VC_OBJECTS_PLATFORM_INFO\Win32\Directories" % (self.__root, self.__version)) else: key = (r"%s\6.0\Build System\Components\Platforms" r"\Win32 (%s)\Directories" % (self.__root, platform)) for base in HKEYS: d = read_values(base, key) if d: if self.__version >= 7: return self.__macros.sub(d[path]).split(";") else: return d[path].split(";") # MSVC 6 seems to create the registry entries we need only when # the GUI is run. if self.__version == 6: for base in HKEYS: if read_values(base, r"%s\6.0" % self.__root) is not None: self.warn("It seems you have Visual Studio 6 installed, " "but the expected registry settings are not present.\n" "You must at least run the Visual Studio GUI once " "so that these entries are created.") break return [] def set_path_env_var(self, name): """Set environment variable 'name' to an MSVC path type value. This is equivalent to a SET command prior to execution of spawned commands. """ if name == "lib": p = self.get_msvc_paths("library") else: p = self.get_msvc_paths(name) if p: os.environ[name] = ';'.join(p) if get_build_version() >= 8.0: log.debug("Importing new compiler from distutils.msvc9compiler") OldMSVCCompiler = MSVCCompiler from distutils.msvc9compiler import MSVCCompiler # get_build_architecture not really relevant now we support cross-compile from distutils.msvc9compiler import MacroExpander PK!RGttlog.pynu["""A simple log mechanism styled after PEP 282.""" # The class here is styled after PEP 282 so that it could later be # replaced with a standard Python logging implementation. DEBUG = 1 INFO = 2 WARN = 3 ERROR = 4 FATAL = 5 import sys class Log: def __init__(self, threshold=WARN): self.threshold = threshold def _log(self, level, msg, args): if level not in (DEBUG, INFO, WARN, ERROR, FATAL): raise ValueError('%s wrong log level' % str(level)) if level >= self.threshold: if args: msg = msg % args if level in (WARN, ERROR, FATAL): stream = sys.stderr else: stream = sys.stdout if stream.errors == 'strict': # emulate backslashreplace error handler encoding = stream.encoding msg = msg.encode(encoding, "backslashreplace").decode(encoding) stream.write('%s\n' % msg) stream.flush() def log(self, level, msg, *args): self._log(level, msg, args) def debug(self, msg, *args): self._log(DEBUG, msg, args) def info(self, msg, *args): self._log(INFO, msg, args) def warn(self, msg, *args): self._log(WARN, msg, args) def error(self, msg, *args): self._log(ERROR, msg, args) def fatal(self, msg, *args): self._log(FATAL, msg, args) _global_log = Log() log = _global_log.log debug = _global_log.debug info = _global_log.info warn = _global_log.warn error = _global_log.error fatal = _global_log.fatal def set_threshold(level): # return the old threshold for use from tests old = _global_log.threshold _global_log.threshold = level return old def set_verbosity(v): if v <= 0: set_threshold(WARN) elif v == 1: set_threshold(INFO) elif v >= 2: set_threshold(DEBUG) PK!lW:W:bcppcompiler.pynu["""distutils.bcppcompiler Contains BorlandCCompiler, an implementation of the abstract CCompiler class for the Borland C++ compiler. """ # This implementation by Lyle Johnson, based on the original msvccompiler.py # module and using the directions originally published by Gordon Williams. # XXX looks like there's a LOT of overlap between these two classes: # someone should sit down and factor out the common code as # WindowsCCompiler! --GPW import os from distutils.errors import \ DistutilsExecError, DistutilsPlatformError, \ CompileError, LibError, LinkError, UnknownFileError from distutils.ccompiler import \ CCompiler, gen_preprocess_options, gen_lib_options from distutils.file_util import write_file from distutils.dep_util import newer from distutils import log class BCPPCompiler(CCompiler) : """Concrete class that implements an interface to the Borland C/C++ compiler, as defined by the CCompiler abstract class. """ compiler_type = 'bcpp' # Just set this so CCompiler's constructor doesn't barf. We currently # don't use the 'set_executables()' bureaucracy provided by CCompiler, # as it really isn't necessary for this sort of single-compiler class. # Would be nice to have a consistent interface with UnixCCompiler, # though, so it's worth thinking about. executables = {} # Private class data (need to distinguish C from C++ source for compiler) _c_extensions = ['.c'] _cpp_extensions = ['.cc', '.cpp', '.cxx'] # Needed for the filename generation methods provided by the # base class, CCompiler. src_extensions = _c_extensions + _cpp_extensions obj_extension = '.obj' static_lib_extension = '.lib' shared_lib_extension = '.dll' static_lib_format = shared_lib_format = '%s%s' exe_extension = '.exe' def __init__ (self, verbose=0, dry_run=0, force=0): CCompiler.__init__ (self, verbose, dry_run, force) # These executables are assumed to all be in the path. # Borland doesn't seem to use any special registry settings to # indicate their installation locations. self.cc = "bcc32.exe" self.linker = "ilink32.exe" self.lib = "tlib.exe" self.preprocess_options = None self.compile_options = ['/tWM', '/O2', '/q', '/g0'] self.compile_options_debug = ['/tWM', '/Od', '/q', '/g0'] self.ldflags_shared = ['/Tpd', '/Gn', '/q', '/x'] self.ldflags_shared_debug = ['/Tpd', '/Gn', '/q', '/x'] self.ldflags_static = [] self.ldflags_exe = ['/Gn', '/q', '/x'] self.ldflags_exe_debug = ['/Gn', '/q', '/x','/r'] # -- Worker methods ------------------------------------------------ def compile(self, sources, output_dir=None, macros=None, include_dirs=None, debug=0, extra_preargs=None, extra_postargs=None, depends=None): macros, objects, extra_postargs, pp_opts, build = \ self._setup_compile(output_dir, macros, include_dirs, sources, depends, extra_postargs) compile_opts = extra_preargs or [] compile_opts.append ('-c') if debug: compile_opts.extend (self.compile_options_debug) else: compile_opts.extend (self.compile_options) for obj in objects: try: src, ext = build[obj] except KeyError: continue # XXX why do the normpath here? src = os.path.normpath(src) obj = os.path.normpath(obj) # XXX _setup_compile() did a mkpath() too but before the normpath. # Is it possible to skip the normpath? self.mkpath(os.path.dirname(obj)) if ext == '.res': # This is already a binary file -- skip it. continue # the 'for' loop if ext == '.rc': # This needs to be compiled to a .res file -- do it now. try: self.spawn (["brcc32", "-fo", obj, src]) except DistutilsExecError as msg: raise CompileError(msg) continue # the 'for' loop # The next two are both for the real compiler. if ext in self._c_extensions: input_opt = "" elif ext in self._cpp_extensions: input_opt = "-P" else: # Unknown file type -- no extra options. The compiler # will probably fail, but let it just in case this is a # file the compiler recognizes even if we don't. input_opt = "" output_opt = "-o" + obj # Compiler command line syntax is: "bcc32 [options] file(s)". # Note that the source file names must appear at the end of # the command line. try: self.spawn ([self.cc] + compile_opts + pp_opts + [input_opt, output_opt] + extra_postargs + [src]) except DistutilsExecError as msg: raise CompileError(msg) return objects # compile () def create_static_lib (self, objects, output_libname, output_dir=None, debug=0, target_lang=None): (objects, output_dir) = self._fix_object_args (objects, output_dir) output_filename = \ self.library_filename (output_libname, output_dir=output_dir) if self._need_link (objects, output_filename): lib_args = [output_filename, '/u'] + objects if debug: pass # XXX what goes here? try: self.spawn ([self.lib] + lib_args) except DistutilsExecError as msg: raise LibError(msg) else: log.debug("skipping %s (up-to-date)", output_filename) # create_static_lib () def link (self, target_desc, objects, output_filename, output_dir=None, libraries=None, library_dirs=None, runtime_library_dirs=None, export_symbols=None, debug=0, extra_preargs=None, extra_postargs=None, build_temp=None, target_lang=None): # XXX this ignores 'build_temp'! should follow the lead of # msvccompiler.py (objects, output_dir) = self._fix_object_args (objects, output_dir) (libraries, library_dirs, runtime_library_dirs) = \ self._fix_lib_args (libraries, library_dirs, runtime_library_dirs) if runtime_library_dirs: log.warn("I don't know what to do with 'runtime_library_dirs': %s", str(runtime_library_dirs)) if output_dir is not None: output_filename = os.path.join (output_dir, output_filename) if self._need_link (objects, output_filename): # Figure out linker args based on type of target. if target_desc == CCompiler.EXECUTABLE: startup_obj = 'c0w32' if debug: ld_args = self.ldflags_exe_debug[:] else: ld_args = self.ldflags_exe[:] else: startup_obj = 'c0d32' if debug: ld_args = self.ldflags_shared_debug[:] else: ld_args = self.ldflags_shared[:] # Create a temporary exports file for use by the linker if export_symbols is None: def_file = '' else: head, tail = os.path.split (output_filename) modname, ext = os.path.splitext (tail) temp_dir = os.path.dirname(objects[0]) # preserve tree structure def_file = os.path.join (temp_dir, '%s.def' % modname) contents = ['EXPORTS'] for sym in (export_symbols or []): contents.append(' %s=_%s' % (sym, sym)) self.execute(write_file, (def_file, contents), "writing %s" % def_file) # Borland C++ has problems with '/' in paths objects2 = map(os.path.normpath, objects) # split objects in .obj and .res files # Borland C++ needs them at different positions in the command line objects = [startup_obj] resources = [] for file in objects2: (base, ext) = os.path.splitext(os.path.normcase(file)) if ext == '.res': resources.append(file) else: objects.append(file) for l in library_dirs: ld_args.append("/L%s" % os.path.normpath(l)) ld_args.append("/L.") # we sometimes use relative paths # list of object files ld_args.extend(objects) # XXX the command-line syntax for Borland C++ is a bit wonky; # certain filenames are jammed together in one big string, but # comma-delimited. This doesn't mesh too well with the # Unix-centric attitude (with a DOS/Windows quoting hack) of # 'spawn()', so constructing the argument list is a bit # awkward. Note that doing the obvious thing and jamming all # the filenames and commas into one argument would be wrong, # because 'spawn()' would quote any filenames with spaces in # them. Arghghh!. Apparently it works fine as coded... # name of dll/exe file ld_args.extend([',',output_filename]) # no map file and start libraries ld_args.append(',,') for lib in libraries: # see if we find it and if there is a bcpp specific lib # (xxx_bcpp.lib) libfile = self.find_library_file(library_dirs, lib, debug) if libfile is None: ld_args.append(lib) # probably a BCPP internal library -- don't warn else: # full name which prefers bcpp_xxx.lib over xxx.lib ld_args.append(libfile) # some default libraries ld_args.append ('import32') ld_args.append ('cw32mt') # def file for export symbols ld_args.extend([',',def_file]) # add resource files ld_args.append(',') ld_args.extend(resources) if extra_preargs: ld_args[:0] = extra_preargs if extra_postargs: ld_args.extend(extra_postargs) self.mkpath (os.path.dirname (output_filename)) try: self.spawn ([self.linker] + ld_args) except DistutilsExecError as msg: raise LinkError(msg) else: log.debug("skipping %s (up-to-date)", output_filename) # link () # -- Miscellaneous methods ----------------------------------------- def find_library_file (self, dirs, lib, debug=0): # List of effective library names to try, in order of preference: # xxx_bcpp.lib is better than xxx.lib # and xxx_d.lib is better than xxx.lib if debug is set # # The "_bcpp" suffix is to handle a Python installation for people # with multiple compilers (primarily Distutils hackers, I suspect # ;-). The idea is they'd have one static library for each # compiler they care about, since (almost?) every Windows compiler # seems to have a different format for static libraries. if debug: dlib = (lib + "_d") try_names = (dlib + "_bcpp", lib + "_bcpp", dlib, lib) else: try_names = (lib + "_bcpp", lib) for dir in dirs: for name in try_names: libfile = os.path.join(dir, self.library_filename(name)) if os.path.exists(libfile): return libfile else: # Oops, didn't find it in *any* of 'dirs' return None # overwrite the one from CCompiler to support rc and res-files def object_filenames (self, source_filenames, strip_dir=0, output_dir=''): if output_dir is None: output_dir = '' obj_names = [] for src_name in source_filenames: # use normcase to make sure '.rc' is really '.rc' and not '.RC' (base, ext) = os.path.splitext (os.path.normcase(src_name)) if ext not in (self.src_extensions + ['.rc','.res']): raise UnknownFileError("unknown file type '%s' (from '%s')" % \ (ext, src_name)) if strip_dir: base = os.path.basename (base) if ext == '.res': # these can go unchanged obj_names.append (os.path.join (output_dir, base + ext)) elif ext == '.rc': # these need to be compiled to .res-files obj_names.append (os.path.join (output_dir, base + '.res')) else: obj_names.append (os.path.join (output_dir, base + self.obj_extension)) return obj_names # object_filenames () def preprocess (self, source, output_file=None, macros=None, include_dirs=None, extra_preargs=None, extra_postargs=None): (_, macros, include_dirs) = \ self._fix_compile_args(None, macros, include_dirs) pp_opts = gen_preprocess_options(macros, include_dirs) pp_args = ['cpp32.exe'] + pp_opts if output_file is not None: pp_args.append('-o' + output_file) if extra_preargs: pp_args[:0] = extra_preargs if extra_postargs: pp_args.extend(extra_postargs) pp_args.append(source) # We need to preprocess: either we're being forced to, or the # source file is newer than the target (or the target doesn't # exist). if self.force or output_file is None or newer(source, output_file): if output_file: self.mkpath(os.path.dirname(output_file)) try: self.spawn(pp_args) except DistutilsExecError as msg: print(msg) raise CompileError(msg) # preprocess() PK!= !!spawn.pynu["""distutils.spawn Provides the 'spawn()' function, a front-end to various platform- specific functions for launching another program in a sub-process. Also provides the 'find_executable()' to search the path for a given executable name. """ import sys import os from distutils.errors import DistutilsPlatformError, DistutilsExecError from distutils.debug import DEBUG from distutils import log def spawn(cmd, search_path=1, verbose=0, dry_run=0): """Run another program, specified as a command list 'cmd', in a new process. 'cmd' is just the argument list for the new process, ie. cmd[0] is the program to run and cmd[1:] are the rest of its arguments. There is no way to run a program with a name different from that of its executable. If 'search_path' is true (the default), the system's executable search path will be used to find the program; otherwise, cmd[0] must be the exact path to the executable. If 'dry_run' is true, the command will not actually be run. Raise DistutilsExecError if running the program fails in any way; just return on success. """ # cmd is documented as a list, but just in case some code passes a tuple # in, protect our %-formatting code against horrible death cmd = list(cmd) if os.name == 'posix': _spawn_posix(cmd, search_path, dry_run=dry_run) elif os.name == 'nt': _spawn_nt(cmd, search_path, dry_run=dry_run) elif os.name == 'os2': _spawn_os2(cmd, search_path, dry_run=dry_run) else: raise DistutilsPlatformError( "don't know how to spawn programs on platform '%s'" % os.name) def _nt_quote_args(args): """Quote command-line arguments for DOS/Windows conventions. Just wraps every argument which contains blanks in double quotes, and returns a new argument list. """ # XXX this doesn't seem very robust to me -- but if the Windows guys # say it'll work, I guess I'll have to accept it. (What if an arg # contains quotes? What other magic characters, other than spaces, # have to be escaped? Is there an escaping mechanism other than # quoting?) for i, arg in enumerate(args): if ' ' in arg: args[i] = '"%s"' % arg return args def _spawn_nt(cmd, search_path=1, verbose=0, dry_run=0): executable = cmd[0] cmd = _nt_quote_args(cmd) if search_path: # either we find one or it stays the same executable = find_executable(executable) or executable log.info(' '.join([executable] + cmd[1:])) if not dry_run: # spawn for NT requires a full path to the .exe try: rc = os.spawnv(os.P_WAIT, executable, cmd) except OSError as exc: # this seems to happen when the command isn't found if not DEBUG: cmd = executable raise DistutilsExecError( "command %r failed: %s" % (cmd, exc.args[-1])) if rc != 0: # and this reflects the command running but failing if not DEBUG: cmd = executable raise DistutilsExecError( "command %r failed with exit status %d" % (cmd, rc)) def _spawn_os2(cmd, search_path=1, verbose=0, dry_run=0): executable = cmd[0] if search_path: # either we find one or it stays the same executable = find_executable(executable) or executable log.info(' '.join([executable] + cmd[1:])) if not dry_run: # spawnv for OS/2 EMX requires a full path to the .exe try: rc = os.spawnv(os.P_WAIT, executable, cmd) except OSError as exc: # this seems to happen when the command isn't found if not DEBUG: cmd = executable raise DistutilsExecError( "command %r failed: %s" % (cmd, exc.args[-1])) if rc != 0: # and this reflects the command running but failing if not DEBUG: cmd = executable log.debug("command %r failed with exit status %d" % (cmd, rc)) raise DistutilsExecError( "command %r failed with exit status %d" % (cmd, rc)) if sys.platform == 'darwin': from distutils import sysconfig _cfg_target = None _cfg_target_split = None def _spawn_posix(cmd, search_path=1, verbose=0, dry_run=0): log.info(' '.join(cmd)) if dry_run: return executable = cmd[0] exec_fn = search_path and os.execvp or os.execv env = None if sys.platform == 'darwin': global _cfg_target, _cfg_target_split if _cfg_target is None: _cfg_target = sysconfig.get_config_var( 'MACOSX_DEPLOYMENT_TARGET') or '' if _cfg_target: _cfg_target_split = [int(x) for x in _cfg_target.split('.')] if _cfg_target: # ensure that the deployment target of build process is not less # than that used when the interpreter was built. This ensures # extension modules are built with correct compatibility values cur_target = os.environ.get('MACOSX_DEPLOYMENT_TARGET', _cfg_target) if _cfg_target_split > [int(x) for x in cur_target.split('.')]: my_msg = ('$MACOSX_DEPLOYMENT_TARGET mismatch: ' 'now "%s" but "%s" during configure' % (cur_target, _cfg_target)) raise DistutilsPlatformError(my_msg) env = dict(os.environ, MACOSX_DEPLOYMENT_TARGET=cur_target) exec_fn = search_path and os.execvpe or os.execve pid = os.fork() if pid == 0: # in the child try: if env is None: exec_fn(executable, cmd) else: exec_fn(executable, cmd, env) except OSError as e: if not DEBUG: cmd = executable sys.stderr.write("unable to execute %r: %s\n" % (cmd, e.strerror)) os._exit(1) if not DEBUG: cmd = executable sys.stderr.write("unable to execute %r for unknown reasons" % cmd) os._exit(1) else: # in the parent # Loop until the child either exits or is terminated by a signal # (ie. keep waiting if it's merely stopped) while True: try: pid, status = os.waitpid(pid, 0) except OSError as exc: import errno if exc.errno == errno.EINTR: continue if not DEBUG: cmd = executable raise DistutilsExecError( "command %r failed: %s" % (cmd, exc.args[-1])) if os.WIFSIGNALED(status): if not DEBUG: cmd = executable raise DistutilsExecError( "command %r terminated by signal %d" % (cmd, os.WTERMSIG(status))) elif os.WIFEXITED(status): exit_status = os.WEXITSTATUS(status) if exit_status == 0: return # hey, it succeeded! else: if not DEBUG: cmd = executable raise DistutilsExecError( "command %r failed with exit status %d" % (cmd, exit_status)) elif os.WIFSTOPPED(status): continue else: if not DEBUG: cmd = executable raise DistutilsExecError( "unknown error executing %r: termination status %d" % (cmd, status)) def find_executable(executable, path=None): """Tries to find 'executable' in the directories listed in 'path'. A string listing directories separated by 'os.pathsep'; defaults to os.environ['PATH']. Returns the complete filename or None if not found. """ if path is None: path = os.environ['PATH'] paths = path.split(os.pathsep) base, ext = os.path.splitext(executable) if (sys.platform == 'win32' or os.name == 'os2') and (ext != '.exe'): executable = executable + '.exe' if not os.path.isfile(executable): for p in paths: f = os.path.join(p, executable) if os.path.isfile(f): # the file exists, we have a shot at spawn working return f return None else: return executable PK!cn/  +__pycache__/extension.cpython-311.opt-2.pycnu[ 0i!)@ ddlZddlZddlZGddZdZdS)Nc:eZdZ ddZdZdS) ExtensionNc t|tstdt|trt d|Dstd||_||_|pg|_|pg|_|pg|_ |pg|_ |pg|_ |pg|_ | pg|_ | pg|_| pg|_| pg|_| pg|_|pg|_||_||_t+|dkrId|D}dt/|}d|z}t1j|dSdS)Nz'name' must be a stringc3@K|]}t|tVdS)N) isinstancestr).0vs :/opt/alt/python311/lib64/python3.11/distutils/extension.py z%Extension.__init__..ks,881Jq#&&888888z#'sources' must be a list of stringsrc,g|]}t|S)repr)r options r z&Extension.__init__..s555tF||555r z, zUnknown Extension options: %s)rrAssertionErrorlistallnamesources include_dirs define_macros undef_macros library_dirs librariesruntime_library_dirs extra_objectsextra_compile_argsextra_link_argsexport_symbols swig_optsdependslanguageoptionallenjoinsortedwarningswarn)selfrrrrrrrrrrr r!r"r#r$r%kwoptionsmsgs r __init__zExtension.__init__Ws{"$$$ < !:;; ;7D)) H8888888 H !FGG G  (.B*0b(.B(.B"b$8$>B!*0b"4":.4",2"b}"      r77Q;;55"555Giiw00G1G;C M#      ;r c`d|jj|jj|jt |fzS)Nz<%s.%s(%r) at %#x>) __class__ __module__ __qualname__rid)r+s r __repr__zExtension.__repr__s2# N % N ' I tHH ' r )NNNNNNNNNNNNNN)__name__r2r3r/r5rr r rrsj>F $ $## '+ $%)"&!%"----^r rc ddlm}m}m}ddlm}ddlm}||}||ddddd} g} |} | ntj || r/| d| dcxkrd krnn| d | zd|| |} || } | d} t| g} d} | ddD]?}| | |d} tj|d}|dd }|d d}|d vr| j |u|d kr| j ||dkri|d}|dkr| j |df| j |d|||d zdf|dkr| j |'|dkr| j |I|dkr| j |k|dkr| j ||dkr| j ||dkr | j} |dkr | j} |dkr | j} |dkr%| j ||s| j} |dvr| j |'| d|zA| |  |n#|wxYw|S)Nr)parse_makefileexpand_makefile_vars _variable_rx)TextFile) split_quoted)strip_comments skip_blanks join_lines lstrip_ws rstrip_wsT*z'%s' lines not handled yet)z.cz.ccz.cppz.cxxz.c++z.mz.mmz-Iz-D=z-Uz-Cz-lz-Lz-Rz-rpathz-Xlinkerz -Xcompilerz-u)z.az.soz.slz.oz.dylibzunrecognized argument '%s')distutils.sysconfigr8r9r:distutils.text_filer;distutils.utilr<readlinerematchr*rappendospathsplitextrrfindrrrrrrr rclose)filenamer8r9r:r;r<varsfile extensionslinewordsmoduleextappend_next_wordwordsuffixswitchvalueequalss r read_setup_filerasE=3333333333-,,,,,++++++ >( # #D 8H#$!1 . . .DQ L #==??D|x d++ Aw$r())))c))))) 6=>>>''d33D L&&E1XFFB''C# abb 2 C2 C#/$++D111'+$))$//2acT!""XUOOOK&&t,,,,t^^$++E2222t^^"ZZ__F||)00%????)00%&/27q 2B2DEEEEt^^$++E2222t^^*11$7777t^^M((////t^^$++E2222t^^,33E::::X%%'*'?$$Z'''*':$$\))'*'=$$t^^'..t444 ?+.+>(CCC %,,T2222II:TABBBB   c " " "YL #V  s K9MM)rNrKr)rrarr r rbsv  wwwwwwwwtcccccr PK![*__pycache__/dir_util.cpython-311.opt-2.pycnu[ 0ibh ddlZddlZddlmZmZddlmZiad dZd dZ d dZ d Z dd Z d Z dS)N)DistutilsFileErrorDistutilsInternalError)logc  t|tstd|dtj|}g}tj|s|dkr|Sttj |r|Stj |\}}|g}|r||rztj|s[tj |\}}| d||r!|rtj|[|D]}tj ||}tj |} t| r]|dkrtjd||s tj||nk#t $r^} | jt"jkrtj|s t'd|d| jd Yd} ~ nd} ~ wwxYw||dt| <|S) Nz%mkpath: 'name' must be a string (got )rrz creating %szcould not create '': ) isinstancestrrospathnormpathisdir _path_createdgetabspathsplitinsertjoinrinfomkdirOSErrorerrnoEEXISTrargsappend) namemodeverbosedry_run created_dirsheadtailtailsdabs_headexcs 9/opt/alt/python311/lib64/python3.11/distutils/dir_util.pymkpathr,sv dC D$$<@DDBDD D 7  D ! !DL w}}Tdbjj..//7==&<4 FE 4 d 3 3w}}T** t Q 4 d 3 3$$w||D!$$7??4((   X & &   a<< H]D ) ) ) & Nt$$$$ N N N U\11bgmmD6I6I1,,9=sx||LNNN21111 N    % % %"# h s G!! I +AII c  t}|D]R}|tj|tj|St |D]}t||||dS)Nr"r#)setaddrrrdirnamesortedr,)base_dirfilesr!r"r#need_dirfiledirs r+ create_treer8PsuuHDD RW\\(BGOOD,A,ABBCCCCh<<sD'7;;;;;<<c  ddlm}|s1tj|st d|z tj|} n6#t$r)} |rg} nt d|d| jYd} ~ nd} ~ wwxYw|st||g} | D]I} tj || } tj || }| drY|r|tj | r]tj | }|dkrtjd |||stj||| |tj| r,| t'| ||||||| "|| |||||| | |K| S) Nr) copy_filez&cannot copy tree '%s': not a directoryzerror listing files in 'r )r"z.nfsrzlinking %s -> %sr.)distutils.file_utilr;rrrrlistdirrstrerrorr,r startswithislinkreadlinkrrsymlinkrextend copy_tree)srcdst preserve_modepreserve_timespreserve_symlinksupdater"r#r;nameseoutputsnsrc_namedst_name link_dests r+rDrDcsW&.----- >27==--> 6<>> >I 3 III  IEE$$7:ssAJJGII I EEEEI %sG$$$$G %%7<<Q''7<<Q'' <<      %!9!9 % H--I!||+XyAAA 0 9h/// NN8 $ $ $ $ W]]8 $ $ % NN(Hm(*;V")7<<< = = = = Ih-$fg% ' ' ' ' NN8 $ $ $ $ NsA BA??Bc tj|D]}tj||}tj|r0tj|st ||q|tj|f|tj |fdS)N) rr=rrrr@_build_cmdtuplerremovermdir)r cmdtuplesfreal_fs r+rSrSs# Z  22d1%% 7==  2)?)? 2 FI . . . .   bi0 1 1 1 1 bh%&&&&&r9cj |dkrtjd||rdSg}t|||D]}} |d|dtj|d}|t vrt |=Q#t$r }tjd||Yd}~vd}~wwxYwdS)Nrz'removing '%s' (and everything under it)rzerror removing %s: %s) rrrSrrrrrwarn) directoryr"r#rVcmdrr*s r+ remove_treer]s!|| :IFFFIIy)))>> > CF3q6NNNgooc!f--G-''!'* > > > H,i = = = = = = = = >>>sA B B0B++B0c tj|\}}|ddtjkr ||ddz}|S)Nrr)rr splitdrivesep)rdrives r+ensure_relativerbsN'$$T**KE4 AaCyBFtABBx Kr9)rrr)rrrrrr)rr)rrdistutils.errorsrr distutilsrrr,r8rDrSr]rbr9r+rfsG GGGGGGGG ====~<<<<&9:@ACCCCJ'''>>>>0r9PK!@cmImI__pycache__/cmd.cpython-311.pycnu[ 0iFpdZddlZddlZddlZddlmZddlmZmZm Z m Z m Z ddlm Z GddZ dS)ztdistutils.cmd Provides the Command class, the base class for the command classes in the distutils.command package. N)DistutilsOptionError)utildir_util file_util archive_utildep_utillogceZdZdZgZdZdZdZdZdZ d%d Z d Z d&d Z d Z d'dZd'dZdZ d'dZdZdZdZdZd&dZd(dZdZdZdZd)dZd*dZ d+dZ d,d Zd&d!Zd-d"Z d.d#Z! d/d$Z"dS)0Commanda}Abstract base class for defining command classes, the "worker bees" of the Distutils. A useful analogy for command classes is to think of them as subroutines with local variables called "options". The options are "declared" in 'initialize_options()' and "defined" (given their final values, aka "finalized") in 'finalize_options()', both of which must be defined by every command class. The distinction between the two is necessary because option values might come from the outside world (command line, config file, ...), and any options dependent on other options must be computed *after* these outside influences have been processed -- hence 'finalize_options()'. The "body" of the subroutine, where it does all its work based on the values of its options, is the 'run()' method, which must also be implemented by every command class. cddlm}t||std|jt urt d||_|d|_ |j |_ d|_ d|_ d|_ dS)zCreate and initialize a new Command object. Most importantly, invokes the 'initialize_options()' method, which is the real initializer and depends on the actual command being instantiated. r) Distributionz$dist must be a Distribution instancezCommand is an abstract classN)distutils.distr isinstance TypeError __class__r RuntimeError distributioninitialize_options_dry_runverboseforcehelp finalized)selfdistrs 4/opt/alt/python311/lib64/python3.11/distutils/cmd.py__init__zCommand.__init__/s 0/////$ -- DBCC C >W $ $=>> >  !!! |   c|dkr,t|d|z}|t|j|S|St|)Ndry_run_)getattrrAttributeError)rattrmyvals r __getattr__zCommand.__getattr___sK 9  D#*--E}t0$777  && &rcJ|js|d|_dSN)rfinalize_optionsrs rensure_finalizedzCommand.ensure_finalizedis)~ $  ! ! # # #rc0td|jz)aSet default values for all the options that this command supports. Note that these defaults may be overridden by other commands, by the setup script, by config files, or by the command-line. Thus, this is not the place to code dependencies between options; generally, 'initialize_options()' implementations are just a bunch of "self.foo = None" assignments. This method must be implemented by all command classes. ,abstract method -- subclass %s must overriderrr,s rrzCommand.initialize_options{#I!^,-- -rc0td|jz)aSet final values for all the options that this command supports. This is always called as late as possible, ie. after any option assignments from the command-line or from other commands have been done. Thus, this is the place to code option dependencies: if 'foo' depends on 'bar', then it is safe to set 'foo' from 'bar' as long as 'foo' still has the same value it was assigned in 'initialize_options()'. This method must be implemented by all command classes. r/r0r,s rr+zCommand.finalize_optionss#I!^,-- -rNczddlm}|d|z}|||ztj|dz}|jD]j\}}}||}|ddkr |dd}t||}|||d|ztjkdS) Nr) longopt_xlatezcommand options for '%s':)levelz =z = ) distutils.fancy_getoptr5get_command_nameannouncer INFO user_options translater#)rheaderindentr5optionr"values r dump_optionszCommand.dump_optionss888888 >043H3H3J3JJF fvoSX 666$"/ * *NVQ%%m44FbzS  D&))E MM&#>> #  * * * *  * *rc0td|jz)aA command's raison d'etre: carry out the action it exists to perform, controlled by the options initialized in 'initialize_options()', customized by other commands, the setup script, the command-line, and config files, and finalized in 'finalize_options()'. All terminal output and filesystem interaction should be done by 'run()'. This method must be implemented by all command classes. r/r0r,s rrunz Command.runr1rr*c0tj||dS)zmIf the current verbosity level is of greater than or equal to 'level' print 'msg' to stdout. Nr )rmsgr6s rr;zCommand.announces srctddlm}|r/t|tjdSdS)z~Print 'msg' to stdout if the global DEBUG (taken from the DISTUTILS_DEBUG environment variable) flag is true. r)DEBUGN)distutils.debugrIprintsysstdoutflush)rrGrIs r debug_printzCommand.debug_printsM *)))))   #JJJ J         rc t||}|t||||St|tst d|d|d|d|S)N'z ' must be a z (got `z`))r#setattrrstrr)rrAwhatdefaultvals r_ensure_stringlikezCommand._ensure_stringlikesqdF## ; D&' * * *NC%% >&&*0&&$$$(=>> > rc4||d|dS)zWEnsure that 'option' is a string; if not defined, set it to 'default'. stringN)rW)rrArUs r ensure_stringzCommand.ensure_strings" ':::::rc6t||}|dSt|tr&t||t jd|dSt|t rtd|D}nd}|std|d|ddS)zEnsure that 'option' is a list of strings. If 'option' is currently a string, we split it either on /,\s*/ or /\s+/, so "foo bar baz", "foo,bar,baz", and "foo, bar baz" all become ["foo", "bar", "baz"]. Nz,\s*|\s+c3@K|]}t|tVdSN)rrS).0vs r z-Command.ensure_string_list..s,99As++999999rFrQz!' must be a list of strings (got )) r#rrSrRresplitlistallr)rrArVoks rensure_string_listzCommand.ensure_string_lists dF## ; F S ! ! ' D&"(;"<"< = = = = =#t$$ 99S99999 '**&''' ' 'rc||||}|"||std|z||fzdSdS)Nzerror in '%s' option: )rWr)rrAtesterrT error_fmtrUrVs r_ensure_tested_stringzCommand._ensure_tested_strings[%%fdG<< ?66#;;?&(@9(L*0#(788 8 ???rcT||tjjdddS)z5Ensure that 'option' is the name of an existing file.filenamez$'%s' does not exist or is not a fileN)rkospathisfilerrAs rensure_filenamezCommand.ensure_filenames7 ""627>#-#I K K K K KrcT||tjjdddS)Nzdirectory namez)'%s' does not exist or is not a directory)rkrnroisdirrqs rensure_dirnamezCommand.ensure_dirnames7 ""627=#3#N P P P P PrcHt|dr|jS|jjS)N command_name)hasattrrwr__name__r,s rr:zCommand.get_command_name s( 4 ( ( +$ $>* *rc |j|}||D]4\}}t||t ||t||5dS)a>Set the values of any "undefined" options from corresponding option values in some other command object. "Undefined" here means "is None", which is the convention used to indicate that an option has not been changed between 'initialize_options()' and 'finalize_options()'. Usually called from 'finalize_options()' for options that depend on some other command rather than another option of the same command. 'src_cmd' is the other command from which option values will be taken (a command object will be created for it if necessary); the remaining arguments are '(src_option,dst_option)' tuples which mean "take the value of 'src_option' in the 'src_cmd' command object, and copy it to 'dst_option' in the current command object". N)rget_command_objr-r#rR)rsrc_cmd option_pairs src_cmd_obj src_option dst_options rset_undefined_optionszCommand.set_undefined_optionss{'77@@ $$&&&(4 L L $ZtZ((0j'+z*J*JKKK L Lrcd|j||}||S)zWrapper around Distribution's 'get_command_obj()' method: find (create if necessary and 'create' is true) the command object for 'command', call its 'ensure_finalized()' method, and return the finalized command object. )rr{r-)rcommandcreatecmd_objs rget_finalized_commandzCommand.get_finalized_command$s3 #33GVDD  """rrc8|j||Sr])rreinitialize_command)rrreinit_subcommandss rrzCommand.reinitialize_command0s% 55g6HJJ Jrc:|j|dS)zRun some other command: uses the 'run_command()' method of Distribution, which creates and finalizes the command object if necessary and then invokes its 'run()' method. N)r run_command)rrs rrzCommand.run_command4s! %%g.....rchg}|jD]'\}}| ||r||(|S)akDetermine the sub-commands that are relevant in the current distribution (ie., that need to be run). This is based on the 'sub_commands' class attribute: each tuple in that list may include a method that we call to determine if the subcommand needs to be run for the current distribution. Return a list of command names. ) sub_commandsappend)rcommandscmd_namemethods rget_sub_commandszCommand.get_sub_commands;sI"&"3 * * Xv~~)))rcVtjd||dS)Nzwarning: %s: %s )r warnr:)rrGs rrz Command.warnKs) $d&;&;&=&=sCCCCCrc@tj||||jdSNr!)rexecuter!)rfuncargsrGr6s rrzCommand.executeNs# T4dl;;;;;;rc>tj|||jdSr)rmkpathr!)rnamemodes rrzCommand.mkpathQs!dDL999999rc Ntj|||||j ||jS)zCopy a file respecting verbose, dry-run and force flags. (The former two default to whatever is in the Distribution object, and the latter defaults to false for commands that don't define it.)r)r copy_filerr!)rinfileoutfile preserve_modepreserve_timeslinkr6s rrzCommand.copy_fileTs4 "67M#1tz>4+/<999 9rc Ntj||||||j |jS)z\Copy an entire directory tree respecting verbose, dry-run, and force flags. r)r copy_treerr!)rrrrrpreserve_symlinksr6s rrzCommand.copy_tree]s9 !&'="02C&*j.$,HHH Hrc:tj|||jS)z$Move a file respecting dry-run flag.r)r move_filer!)rsrcdstr6s rrzCommand.move_filefs"3T\BBBBrc8ddlm}||||jdS)z2Spawn an external command respecting dry-run flag.r)spawnrN)distutils.spawnrr!)rcmd search_pathr6rs rrz Command.spawnjs3)))))) c; 555555rc Btj|||||j||S)N)r!ownergroup)r make_archiver!)r base_nameformatroot_dirbase_dirrrs rrzCommand.make_archiveos2(FHh15/4ECCC Crcj|d|z}t|tr|f}n+t|ttfst d|d|dd|}|jstj||r| ||||dStj |dS)aSpecial case of 'execute()' for operations that process one or more input files and generate one output file. Works just like 'execute()', except the operation is skipped and a different message printed if 'outfile' already exists and is newer than all files listed in 'infiles'. If the command defined 'self.force', and it is true, then the command is unconditionally run -- does no timestamp checks. Nzskipping %s (inputs unchanged)z9'infiles' must be a string, or a list or tuple of stringsz generating z from z, ) rrSrdtuplerjoinrr newer_grouprr debug)rinfilesrrrexec_msgskip_msgr6s r make_filezCommand.make_fileus  7'AH gs # # OjGGGdE]33 OMOO O   29''499W;M;M;MNH : -gw?? LLtXu 5 5 5 5 5 Ih     r)Nr3)r*r])rr))r)r*r*Nr*)r*r*rr*)r*r*)NNNN)NNr*)#ry __module__ __qualname____doc__rrr'r-rr+rCrEr;rOrWrZrgrkrrrur:rrrrrrrrrrrrrrrrr r sw  :L ---`'''$ - - - - - - * * * * - - - .;;;; ''','+8888KKK PPP+++ LLL*JJJJ///    DDD<<<<::::JK#$9999JK./HHHHCCCC6666 GK'+CCCC78      rr )rrLrnrbdistutils.errorsr distutilsrrrrrr r rrrrs 111111GGGGGGGGGGGGGGG G G G G G G G G G rPK!*22%__pycache__/cmd.cpython-311.opt-2.pycnu[ 0iFn ddlZddlZddlZddlmZddlmZmZmZm Z m Z ddlm Z GddZ dS)N)DistutilsOptionError)utildir_util file_util archive_utildep_utillogceZdZ gZdZdZdZdZdZd$dZ d Z d%d Z d Z d&d Z d&dZdZ d&dZdZdZdZdZd%dZd'dZdZdZdZd(dZd)dZ d*dZ d+dZd%d Zd,d!Z d-d"Z d.d#Z!dS)/Commandc ddlm}t||std|jt urt d||_|d|_ |j |_ d|_ d|_ d|_ dS)Nr) Distributionz$dist must be a Distribution instancezCommand is an abstract class)distutils.distr isinstance TypeError __class__r RuntimeError distributioninitialize_options_dry_runverboseforcehelp finalized)selfdistrs 4/opt/alt/python311/lib64/python3.11/distutils/cmd.py__init__zCommand.__init__/s 0/////$ -- DBCC C >W $ $=>> >  !!! |   c|dkr,t|d|z}|t|j|S|St|)Ndry_run_)getattrrAttributeError)rattrmyvals r __getattr__zCommand.__getattr___sK 9  D#*--E}t0$777  && &rcJ|js|d|_dSN)rfinalize_optionsrs rensure_finalizedzCommand.ensure_finalizedis)~ $  ! ! # # #rc2 td|jzNz,abstract method -- subclass %s must overriderrr,s rrzCommand.initialize_options{( I!^,-- -rc2 td|jzr/r0r,s rr+zCommand.finalize_optionss( I!^,-- -rNczddlm}|d|z}|||ztj|dz}|jD]j\}}}||}|ddkr |dd}t||}|||d|ztjkdS) Nr) longopt_xlatezcommand options for '%s':)levelz =z = ) distutils.fancy_getoptr5get_command_nameannouncer INFO user_options translater#)rheaderindentr5optionr"values r dump_optionszCommand.dump_optionss888888 >043H3H3J3JJF fvoSX 666$"/ * *NVQ%%m44FbzS  D&))E MM&#>> #  * * * *  * *rc2 td|jzr/r0r,s rrunz Command.runr1rr*c2 tj||dSNr )rmsgr6s rr;zCommand.announces!  srcv ddlm}|r/t|tjdSdS)Nr)DEBUG)distutils.debugrJprintsysstdoutflush)rrHrJs r debug_printzCommand.debug_printsR  *)))))   #JJJ J         rc t||}|t||||St|tst d|d|d|d|S)N'z ' must be a z (got `z`))r#setattrrstrr)rrAwhatdefaultvals r_ensure_stringlikezCommand._ensure_stringlikesqdF## ; D&' * * *NC%% >&&*0&&$$$(=>> > rc6 ||d|dS)Nstring)rX)rrArVs r ensure_stringzCommand.ensure_strings'  ':::::rc8 t||}|dSt|tr&t||t jd|dSt|t rtd|D}nd}|std|d|ddS)Nz,\s*|\s+c3@K|]}t|tVdSrG)rrT).0vs r z-Command.ensure_string_list..s,99As++999999rFrRz!' must be a list of strings (got )) r#rrTrSresplitlistallr)rrArWoks rensure_string_listzCommand.ensure_string_lists dF## ; F S ! ! ' D&"(;"<"< = = = = =#t$$ 99S99999 '**&''' ' 'rc||||}|"||std|z||fzdSdS)Nzerror in '%s' option: )rXr)rrAtesterrU error_fmtrVrWs r_ensure_tested_stringzCommand._ensure_tested_strings[%%fdG<< ?66#;;?&(@9(L*0#(788 8 ???rcV ||tjjdddS)Nfilenamez$'%s' does not exist or is not a file)rkospathisfilerrAs rensure_filenamezCommand.ensure_filenames:C ""627>#-#I K K K K KrcT||tjjdddS)Nzdirectory namez)'%s' does not exist or is not a directory)rkrnroisdirrqs rensure_dirnamezCommand.ensure_dirnames7 ""627=#3#N P P P P PrcHt|dr|jS|jjS)N command_name)hasattrrwr__name__r,s rr:zCommand.get_command_name s( 4 ( ( +$ $>* *rc  |j|}||D]4\}}t||t ||t||5dSrG)rget_command_objr-r#rS)rsrc_cmd option_pairs src_cmd_obj src_option dst_options rset_undefined_optionszCommand.set_undefined_optionss '77@@ $$&&&(4 L L $ZtZ((0j'+z*J*JKKK L Lrcf |j||}||SrG)rr{r-)rcommandcreatecmd_objs rget_finalized_commandzCommand.get_finalized_command$s8 #33GVDD  """rrc8|j||SrG)rreinitialize_command)rrreinit_subcommandss rrzCommand.reinitialize_command0s% 55g6HJJ Jrc< |j|dSrG)r run_command)rrs rrzCommand.run_command4s&  %%g.....rcj g}|jD]'\}}| ||r||(|SrG) sub_commandsappend)rcommandscmd_namemethods rget_sub_commandszCommand.get_sub_commands;sN "&"3 * * Xv~~)))rcVtjd||dS)Nzwarning: %s: %s )r warnr:)rrHs rrz Command.warnKs) $d&;&;&=&=sCCCCCrc@tj||||jdSNr!)rexecuter!)rfuncargsrHr6s rrzCommand.executeNs# T4dl;;;;;;rc>tj|||jdSr)rmkpathr!)rnamemodes rrzCommand.mkpathQs!dDL999999rc P tj|||||j ||jSr)r copy_filerr!)rinfileoutfile preserve_modepreserve_timeslinkr6s rrzCommand.copy_fileTs: L"67M#1tz>4+/<999 9rc P tj||||||j |jSr)r copy_treerr!)rrrrrpreserve_symlinksr6s rrzCommand.copy_tree]s> !&'="02C&*j.$,HHH Hrc< tj|||jSr)r move_filer!)rsrcdstr6s rrzCommand.move_filefs2"3T\BBBBrc: ddlm}||||jdS)Nr)spawnr)distutils.spawnrr!)rcmd search_pathr6rs rrz Command.spawnjs6@)))))) c; 555555rc Btj|||||j||S)N)r!ownergroup)r make_archiver!)r base_nameformatroot_dirbase_dirrrs rrzCommand.make_archiveos2(FHh15/4ECCC Crcl |d|z}t|tr|f}n+t|ttfst d|d|dd|}|jstj||r| ||||dStj |dS)Nzskipping %s (inputs unchanged)z9'infiles' must be a string, or a list or tuple of stringsz generating z from z, ) rrTrdtuplerjoinrr newer_grouprr debug)rinfilesrrrexec_msgskip_msgr6s r make_filezCommand.make_fileus   7'AH gs # # OjGGGdE]33 OMOO O   29''499W;M;M;MNH : -gw?? LLtXu 5 5 5 5 5 Ih     r)Nr3)r*rG)rr))r)r*r*Nr*)r*r*rr*)r*r*)NNNN)NNr*)"ry __module__ __qualname__rrr'r-rr+rCrEr;rPrXr[rgrkrrrur:rrrrrrrrrrrrrrrrr r sr :L ---`'''$ - - - - - - * * * * - - - .;;;; ''','+8888KKK PPP+++ LLL*JJJJ///    DDD<<<<::::JK#$9999JK./HHHHCCCC6666 GK'+CCCC78      rr ) rMrnrbdistutils.errorsr distutilsrrrrrr r rrrrs 111111GGGGGGGGGGGGGGG G G G G G G G G G rPK!9ʋIcc"__pycache__/errors.cpython-311.pycnu[ 0i dZGddeZGddeZGddeZGddeZGd d eZGd d eZGd deZGddeZ GddeZ GddeZ GddeZ GddeZ GddeZGddeZGddeZGdd eZGd!d"eZGd#d$eZGd%d&eZd'S)(adistutils.errors Provides exceptions used by the Distutils modules. Note that Distutils modules may raise standard exceptions; in particular, SystemExit is usually raised for errors that are obviously the end-user's fault (eg. bad command-line arguments). This module is safe to use in "from ... import *" mode; it only exports symbols whose names start with "Distutils" and end with "Error".ceZdZdZdS)DistutilsErrorzThe root of all Distutils evil.N__name__ __module__ __qualname____doc__7/opt/alt/python311/lib64/python3.11/distutils/errors.pyrr s))Dr rceZdZdZdS)DistutilsModuleErrorzUnable to load an expected module, or to find an expected class within some module (in particular, command modules and classes).Nrr r r r r sHHDr r ceZdZdZdS)DistutilsClassErrorzSome command class (or possibly distribution class, if anyone feels a need to subclass Distribution) is found not to be holding up its end of the bargain, ie. implementing some part of the "command "interface.Nrr r r rrs Dr rceZdZdZdS)DistutilsGetoptErrorz7The option table provided to 'fancy_getopt()' is bogus.Nrr r r rrsAADr rceZdZdZdS)DistutilsArgErrorzaRaised by fancy_getopt in response to getopt.error -- ie. an error in the command line usage.Nrr r r rrs((Dr rceZdZdZdS)DistutilsFileErrorzAny problems in the filesystem: expected file not found, etc. Typically this is for problems that we detect before OSError could be raised.Nrr r r rr$s Dr rceZdZdZdS)DistutilsOptionErroraSyntactic/semantic errors in command options, such as use of mutually conflicting options, or inconsistent options, badly-spelled values, etc. No distinction is made between option values originating in the setup script, the command line, config files, or what-have-you -- but if we *know* something originated in the setup script, we'll raise DistutilsSetupError instead.Nrr r r rr*sBB  Dr rceZdZdZdS)DistutilsSetupErrorzqFor errors that can be definitely blamed on the setup script, such as invalid keyword arguments to 'setup()'.Nrr r r rr3s77Dr rceZdZdZdS)DistutilsPlatformErrorzWe don't know how to do something on the current platform (but we do know how to do it on some platform) -- eg. trying to compile C files on a platform not supported by a CCompiler subclass.Nrr r r rr8sDD Dr rceZdZdZdS)DistutilsExecErrorz`Any problems executing an external program (such as the C compiler, when compiling C files).Nrr r r rr>s**Dr rceZdZdZdS)DistutilsInternalErrorzoInternal inconsistencies or impossibilities (obviously, this should never be seen if the code is working!).Nrr r r rrCs66Dr rceZdZdZdS)DistutilsTemplateErrorz%Syntax error in a file list template.Nrr r r r!r!Hs////r r!ceZdZdZdS)DistutilsByteCompileErrorzByte compile error.Nrr r r r#r#Ksr r#ceZdZdZdS)CCompilerErrorz#Some compile/link operation failed.Nrr r r r%r%Os----r r%ceZdZdZdS)PreprocessErrorz.Failure to preprocess one or more C/C++ files.Nrr r r r'r'Rs8888r r'ceZdZdZdS) CompileErrorz2Failure to compile one or more C/C++ source files.Nrr r r r)r)Us<<<r1s9DD     i        N        >        N                .        N        >        n        .        n   00000n000.....i...99999~999=====N===3333333333r PK!=y33*__pycache__/filelist.cpython-311.opt-2.pycnu[ 0i 2 ddlZddlZddlZddlZddlmZddlmZmZddl m Z GddZ dZ ej fdZd Zd d ZdS) N convert_path)DistutilsTemplateErrorDistutilsInternalError)logcneZdZ ddZdZejfdZdZdZ dZ dZ d Z d Z d ZddZ ddZdS)FileListNc"d|_g|_dSN)allfilesfiles)selfwarn debug_prints 9/opt/alt/python311/lib64/python3.11/distutils/filelist.py__init__zFileList.__init__s  c||_dSr )r )rr s r set_allfileszFileList.set_allfiles#s   rc.t||_dSr )findallr )rdirs rrzFileList.findall&s  rc: ddlm}|rt|dSdS)Nr)DEBUG)distutils.debugrprint)rmsgrs rrzFileList.debug_print)s<  *)))))   #JJJJJ  rc:|j|dSr )r append)ritems rrzFileList.append3s $rc:|j|dSr )r extend)ritemss rr"zFileList.extend6s %     rctttjj|j}g|_|D]-}|jtjj|.dSr )sortedmapospathsplitr rjoin)rsortable_files sort_tuples rsortz FileList.sort9saBGM4: > >?? ( 9 9J J  bglJ7 8 8 8 8 9 9rctt|jdz ddD])}|j||j|dz kr|j|=*dS)Nr)rangelenr )ris rremove_duplicateszFileList.remove_duplicatesCsZs4:*Ar22 " "Az!} 1q5 111JqM " "rc|}|d}dx}x}}|dvr:t|dkrtd|zd|ddD}n|dvrOt|dkrtd |zt|d}d |ddD}nQ|d vr;t|dkrtd |zt|d}ntd |z||||fS)Nr)includeexcludeglobal-includeglobal-excludez&'%s' expects ...c,g|]}t|Sr.0ws r z1FileList._parse_template_line..W;;;A Q;;;rr/)recursive-includerecursive-excludez,'%s' expects ...c,g|]}t|Sr<rr=s rr@z1FileList._parse_template_line..]rAr)graftprunez#'%s' expects a single zunknown action '%s')r)r2rr)rlinewordsactionpatternsr dir_patterns r_parse_template_linezFileList._parse_template_lineLsV q'+++3 : : :5zzA~~,>GIII;;qrr;;;HH A A A5zzA~~,DvMOOOuQx((C;;qrr;;;HH ) ) )5zzQ,;fDFFF&uQx00KK()>)GHH H#{33rcR||\}}}}|dkr^|dd|z|D].}||dst jd|/dS|dkr^|dd|z|D].}||dst jd |/dS|d kr^|d d|z|D].}||d st jd |/dS|dkr^|dd|z|D].}||d st jd|/dS|dkrb|d|dd||D]/}|||st jd||0dS|dkrb|d|dd||D]/}|||st jd||0dS|dkrH|d|z|d|st jd|dSdS|dkrH|d|z|d|st jd|dSdStd|z)Nr6zinclude  r/)anchorz%warning: no files found matching '%s'r7zexclude z9warning: no previously-included files found matching '%s'r8zglobal-include rz>warning: no files found matching '%s' anywhere in distributionr9zglobal-exclude zRwarning: no previously-included files matching '%s' found anywhere in distributionrBzrecursive-include )prefixz:warning: no files found matching '%s' under directory '%s'rCzrecursive-exclude zNwarning: no previously-included files matching '%s' found under directory '%s'rFzgraft z+warning: no directories found matching '%s'rGzprune z6no previously-included directories found matching '%s'z'this cannot happen: invalid action '%s')rMrr*include_patternrrexclude_patternr)rrHrJrKrrLpatterns rprocess_template_linezFileList.process_template_linehsi 04/H/H/N/N,3 Y     Z#((8*<*<< = = =# & &++GA+>>&HD$&&& & & y   Z#((8*<*<< = = =# ? ?++GA+>>?H46=??? ? ? ' ' '   .(1C1CC D D D# D D++GA+>>DH9;BDDD D D ' ' '   .(1C1CC D D D# & &++GA+>>&HD$&&& & & * * *    !cc388H#5#5#57 8 8 8# + +++GC+@@+H7$c+++ + + * * *    !cc388H#5#5#57 8 8 8# + +++GC+@@+H@$c+++ + + w     X 3 4 4 4''['AA &F$&&&&& & &w     X 3 4 4 4''['AA 9*,799999 9 9);fDFF Frr/rcF d}t||||}|d|jz|j||jD]K}||r4|d|z|j|d}L|S)NFz%include_pattern: applying regex r'%s'z adding T)translate_patternrrTr rsearchr r)rrTrPrQis_regex files_found pattern_renames rrRzFileList.include_patterns 2 &wII  @#+, - - - = LLNNNM # #D  && #  d!2333 !!$'''" rcV d}t||||}|d|jztt |jdz ddD]O}||j|r-|d|j|z|j|=d}P|S)NFz%exclude_pattern: applying regex r'%s'r/r0z removing T)rWrrTr1r2r rX)rrTrPrQrYrZr[r3s rrSzFileList.exclude_patterns  &wII  @#+, - - -s4:q("b11 # #A  A// #   1 !=>>>JqM" r)NNr/Nr)__name__ __module__ __qualname__rrr'curdirrrrr"r-r4rMrUrRrSr<rrr r s  !!!)%%%%   !!!999"""4448GFGFGFX((((X:;rr c dtj|dD}ttjj|S)Nc3hK|]-\}}}|D]$}tj||V%.dSr )r'r(r*)r>basedirsr files r z#_find_all_simple..sc D$   T4  rT) followlinks)r'walkfilterr(isfile)r(resultss r_find_all_simplernsJ!#4!@!@!@G "'.' * **rc t|}|tjkr5tjtjj|}t||}t|S)N)start) rnr'rb functoolspartialr(relpathr&list)rr make_rels rrrsW S ! !E bi$RW_C@@@He$$ ;;rc tj|}tj}tjdkrd}d|z}t jd||}|S)N\z\\\\z\1[^%s]z((?>CE C OOc#hh,F FG */%%CCCSSQ  F&+eeZE -D-DEJ :j ! !!rr^)r'r{rxrqdistutils.utilrdistutils.errorsrr distutilsrr rnrbrr~rWr<rrrs  ''''''KKKKKKKKbbbbbbbbP + + +    .""""""""""""rPK!*%__pycache__/log.cpython-311.opt-2.pycnu[ 0i dZdZdZdZdZddlZGddZeZejZej Z ej Z ej Z ej Z ej Z d Zd ZdS) NcBeZdZefdZdZdZdZdZdZ dZ dZ d S) Logc||_dSN) threshold)selfr s 4/opt/alt/python311/lib64/python3.11/distutils/log.py__init__z Log.__init__s "c|tttttfvrt dt |z||jkr|r||z}|tttfvr tj }n tj } | d|znX#t$rK|j }||d|}| d|zYnwxYw|dSdS)Nz%s wrong log levelz%s backslashreplace)DEBUGINFOWARNERRORFATAL ValueErrorstrr sysstderrstdoutwriteUnicodeEncodeErrorencodingencodedecodeflush)r levelmsgargsstreamrs r_logzLog._logs  dE59 9 91CJJ>?? ? DN " " !Djue,,, + Vc\****% + + +!?jj+=>>EEhOO Vc\*****  + LLNNNNN # "sBAC21C2c4||||dSr )r')r r#r$r%s rlogzLog.log's %d#####rc>|t||dSr )r'rr r$r%s rdebugz Log.debug* %d#####rc>|t||dSr )r'rr+s rinfozLog.info- $T"""""rc>|t||dSr )r'rr+s rwarnzLog.warn0r0rc>|t||dSr )r'rr+s rerrorz Log.error3r-rc>|t||dSr )r'rr+s rfatalz Log.fatal6r-rN) __name__ __module__ __qualname__rrr'r)r,r/r2r4r6rrr r s!%####($$$$$$######$$$$$$$$rr c6tj}|t_|Sr ) _global_logr )r#olds r set_thresholdr>As  C!K Jrc|dkrttdS|dkrttdS|dkrttdSdS)Nrrr)r>rrr)vs r set_verbosityrAGs`Avvd ad ae r)rrrrrrr r<r)r,r/r2r4r6r>rAr:rrrBs2    )$)$)$)$)$)$)$)$Vcee o rPK!$,,%__pycache__/text_file.cpython-311.pycnu[ 0i04dZddlZddlZGddZdS)ztext_file provides the TextFile class, which gives an interface to text files that (optionally) takes care of stripping comments, ignoring blank lines, and joining lines with backslashes.NcdeZdZdZddddddddZddZdZd Zdd Zdd Z dd Z d Z dZ dZ dS)TextFilea Provides a file-like object that takes care of all the things you commonly want to do when processing a text file that has some line-by-line syntax: strip comments (as long as "#" is your comment character), skip blank lines, join adjacent lines by escaping the newline (ie. backslash at end of line), strip leading and/or trailing whitespace. All of these are optional and independently controllable. Provides a 'warn()' method so you can generate warning messages that report physical line number, even if the logical line in question spans multiple physical lines. Also provides 'unreadline()' for implementing line-at-a-time lookahead. Constructor is called as: TextFile (filename=None, file=None, **options) It bombs (RuntimeError) if both 'filename' and 'file' are None; 'filename' should be a string, and 'file' a file object (or something that provides 'readline()' and 'close()' methods). It is recommended that you supply at least 'filename', so that TextFile can include it in warning messages. If 'file' is not supplied, TextFile creates its own using 'io.open()'. The options are all boolean, and affect the value returned by 'readline()': strip_comments [default: true] strip from "#" to end-of-line, as well as any whitespace leading up to the "#" -- unless it is escaped by a backslash lstrip_ws [default: false] strip leading whitespace from each line before returning it rstrip_ws [default: true] strip trailing whitespace (including line terminator!) from each line before returning it skip_blanks [default: true} skip lines that are empty *after* stripping comments and whitespace. (If both lstrip_ws and rstrip_ws are false, then some lines may consist of solely whitespace: these will *not* be skipped, even if 'skip_blanks' is true.) join_lines [default: false] if a backslash is the last non-newline character on a line after stripping comments and whitespace, join the following line to it to form one "logical line"; if N consecutive lines end with a backslash, then N+1 physical lines will be joined to form one logical line. collapse_join [default: false] strip leading whitespace from lines that are joined to their predecessor; only matters if (join_lines and not lstrip_ws) errors [default: 'strict'] error handler used to decode the file content Note that since 'rstrip_ws' can strip the trailing newline, the semantics of 'readline()' must differ from those of the builtin file object's 'readline()' method! In particular, 'readline()' returns None for end-of-file: an empty string might just be a blank line (or an all-whitespace line), if 'rstrip_ws' is true but 'skip_blanks' is not.rstrict)strip_comments skip_blanks lstrip_ws rstrip_ws join_lines collapse_joinerrorsNc ||td|jD]:}||vrt||||t|||j|;|D]}||jvrt d|z|||n||_||_d|_g|_ dS)zConstruct a new TextFile object. At least one of 'filename' (a string) and 'file' (a file-like object) must be supplied. They keyword argument options are described above and affect the values returned by 'readline()'.Nz7you must supply either or both of 'filename' and 'file'zinvalid TextFile option '%s'r) RuntimeErrordefault_optionskeyssetattrKeyErroropenfilenamefile current_linelinebuf)selfrroptionsopts :/opt/alt/python311/lib64/python3.11/distutils/text_file.py__init__zTextFile.__init__Ns   XYY Y',,.. > >Cg~~c73<0000c4#7#<====<<>> E EC$...=CDDD/ < IIh    $DMDI !D   cn||_tj|jd|j|_d|_dS)zyOpen a new file named 'filename'. This overrides both the 'filename' and 'file' arguments to the constructor.r)r rN)riorr rr)rrs rrz TextFile.openos5! GDM3t{CCC rcf|j}d|_d|_d|_|dS)ziClose the current file and forget everything we know about it (filename, current line number).N)rrrclose)rrs rr#zTextFile.closevs2y    rctg}||j}||jdzt|tt fr&|dt |zn|d|z|t |d|S)Nz, z lines %d-%d: z line %d: )rappendr isinstancelisttuplestrjoin)rmsglineoutmsgs r gen_errorzTextFile.gen_errors <$D dmd*+++ dT5M * * . MM/E$KK7 8 8 8 8 MM+, - - - c#hhwwvrcNtd|||z)Nzerror: ) ValueErrorr/rr,r-s rerrorzTextFile.errors#T^^C%>%>>???rcxtjd|||zdzdS)aPrint (to stderr) a warning message tied to the current logical line in the current file. If the current logical line in the file spans multiple physical lines, the warning refers to the whole range, eg. "lines 3-5". If 'line' supplied, it overrides the current line number; it may be a list or tuple to indicate a range of physical lines, or an integer for a single physical line.z warning:  N)sysstderrwriter/r2s rwarnz TextFile.warns8 t~~c4'@'@@4GHHHHHrc|jr|jd}|jd=|Sd} |j}|dkrd}|jr|r~|d}|dkrnb|dks||dz dkr7|dd krd pd}|d||z}|dkrn|d d}|jr|r||d |S|j r| }||z}t|j tr|j ddz|j d<nZ|j |j dzg|_ nC|dSt|j tr|j ddz|_ n|j dz|_ |jr|jr|}n7|jr| }n|jr|}|dks|d kr |jr|jr5|ddkr |dd}|d dd kr|dd d z}#|S)aURead and return a single logical line from the current file (or from an internal buffer if lines have previously been "unread" with 'unreadline()'). If the 'join_lines' option is true, this may involve reading multiple physical lines concatenated into a single string. Updates the current line number, so calling 'warn()' after 'readline()' emits a warning about the physical line(s) just read. Returns None on end-of-file, since the empty string can occur if 'rstrip_ws' is true but 'strip_blanks' is not.r%TN#rr\r5z\#z2continuation line immediately precedes end-of-filez\ )rrreadlinerfindstripreplacer r9r lstripr'rr(r r rstripr)rr- buildup_lineposeols rr?zTextFile.readlines < <#D R K a 9%%''Drzz"$ 4t$ 4iinn"99AXXc!e!4!4 8t+5;C#;,Dzz||r)) * <<s33D >< ><II,---''%);;==D#d*d/66@+/+)@D%%<4d/66>(,(9!(rRs^.. T"T"T"T"T"T"T"T"T"T"rPK!'P~~*__pycache__/__init__.cpython-311.opt-2.pycnu[ 0i ddlZddlZejdejdZdZejeeddS)N zThe distutils package is deprecated and slated for removal in Python 3.12. Use setuptools or check PEP 632 for potential alternatives)syswarningsversionindex __version___DEPRECATION_MESSAGEwarnDeprecationWarning9/opt/alt/python311/lib64/python3.11/distutils/__init__.pyrsr k13;,,S1112 = " !%%%%%rPK!/L䌁)__pycache__/msvc9compiler.cpython-311.pycnu[ 0ivdZddlZddlZddlZddlZddlmZmZmZm Z m Z ddl m Z m Z ddlmZddlmZddlZejZejZejZejZejejejejfZej dko ej!dkZ"e"rd Z#d Z$d Z%nd Z#d Z$dZ%dddZ&GddZ'GddZ(dZ)dZ*dZ+dZ,ddZ-e)Z.e.dkrede.zGdde Z/dS) a distutils.msvc9compiler Contains MSVCCompiler, an implementation of the abstract CCompiler class for the Microsoft Visual Studio 2008. The module is compatible with VS 2005 and VS 2008. You can find legacy support for older versions of VS in distutils.msvccompiler. N)DistutilsExecErrorDistutilsPlatformError CompileErrorLibError LinkError) CCompilergen_lib_options)log) get_platformwin32lz1Software\Wow6432Node\Microsoft\VisualStudio\%0.1fz5Software\Wow6432Node\Microsoft\Microsoft SDKs\Windowsz,Software\Wow6432Node\Microsoft\.NETFrameworkz%Software\Microsoft\VisualStudio\%0.1fz)Software\Microsoft\Microsoft SDKs\Windowsz Software\Microsoft\.NETFrameworkx86amd64r z win-amd64ceZdZdZdZeeZdZeeZdZeeZdZe eZdS)Regz2Helper class to read values from the registry ctD](}|||}|r||vr ||cS)t|N)HKEYS read_valuesKeyError)clspathkeybaseds >/opt/alt/python311/lib64/python3.11/distutils/msvc9compiler.py get_valuez Reg.get_value?sN  Dd++A SAXXv smmc t||}n#t$rYdSwxYwg}d} t||}n#t$rYnwxYw|||dz }=|S)zReturn list of registry keys.NrT) RegOpenKeyExRegError RegEnumKeyappend)rrrhandleLiks r read_keysz Reg.read_keysGs !$,,FF   44     vq))     HHQKKK FA  s !!; AAc, t||}n#t$rYdSwxYwi}d} t||\}}}n#t$rYnIwxYw|}|||||<|dz }k|S)z`Return dict of registry keys and values. All names are converted to lowercase. NrTr )r!r" RegEnumValuelower convert_mbcs) rrrr%rr'namevaluetypes rrzReg.read_valuesYs  !$,,FF   44     $0$;$;!eTT    ::<> NN-t{M J J J NN?K9O P P P P PAA B B$T1--AAH A&&MM$AAAss(;<<56y\ 122 B Bs2BB)8D  DDcp|jD]\}}|||}|Sr)rBitemsreplace)rFr6r(vs rsubzMacroExpander.subs;K%%''  DAq !QAArN)r8r9r:rHrKrEr`r>rrr@r@ysV""" @@@BBB>rr@cvd}tj|}|dkrdS|t|z}tj|ddd\}}t |dddz }|dkr|dz }t |d d d z }|dkrd }|dkr||zSdS) zReturn the version of MSVC that was used to build Python. For Python 2.3 and up, the version number is included in sys.version. For earlier versions, assume the compiler is MSVC 6. zMSC v.N r g$@r)sysrGfindlensplitint)prefixr'r6rest majorVersion minorVersions rget_build_versionrrs F   ABwwq CKKAk!""o##C++GAtq"v;;?Lr q1v;;%Lq ql** 4rcg}|D]:}tj|}||vr||;|S)znReturn a list of normalized paths with duplicates removed. The current order of paths is maintained. )osrnormpathr$)paths reduced_pathsrZnps rnormalize_and_reduce_pathsrysS M %% W  a  ] " "   $ $ $ rc|tj}g}|D]}||vr||tj|}|S)z8Remove duplicate values of an environment variable. )rlrtpathsepr$join)variableoldListnewListr' newVariables rremoveDuplicatesrsbnnRZ((GG  G   NN1   *//'**K rct|z} td|zd}n&#t$rt jdd}YnwxYw|rt j|sd|z}t j |d}|rt j|rt j |t j t j d}t j |}t j|st jd|zdSnt jd|z|st jd dSt j |d }t j|r|St jd dS) zFind the vcvarsall.bat file At first it tries to find the productdir of VS 2008 in the registry. If that fails it falls back to the VS90COMNTOOLS env var. z %s\Setup\VCrNz%Unable to find productdir in registryNzVS%0.f0COMNTOOLSVCz%s is not a valid directoryz Env var %s is not set or invalidzNo productdir foundz vcvarsall.batUnable to find vcvarsall.bat)rCrrrr debugrtrisdirenvirongetr|pardirabspathisfile)rGrDrNtoolskeytoolsdir vcvarsalls rfind_vcvarsallrs w F]]>F#:#/11  9:::   ERW]]:66 E%/:>>(D11  E h// Eh 29dKKJ44J7==,,  7*DEEEt  I88C D D D  '(((t Z99I w~~i  I,--- 4s+ A Act|}hd}i}|tdtjd||t jd|d|dtjtj} |\}}|d kr"t| d | d }| d D]}t |}d |vr!| }| d d \} } | } | |vr;| t jr | dd} t%| || < |j|jn7#|j|jwxYwt-|t-|kr;t/t1t3||S)zDLaunch vcvarsall.bat and read the settings from its environment >librincludelibpathNrz'Calling 'vcvarsall.bat %s' (version=%s)"z" z & set)stdoutstderrrr3 =r rb)rrr r subprocessPopenPIPE communicatewaitr2rlrr-stripr,endswithrtr{rrcloserrk ValueErrorstrlistkeys) rGarchr interestingresultpopenrrlinerr/s rquery_vcvarsallrs(w''I777K F$%CDDDI7wGGG    444@$.O$.O 5 5 5E**,, ::<<1  (v)>)>?? ?v&&LL&& 6 6D##D))D$::<>"*--'!#2#JE.u55s  6       6{{c+&&&&T&++--0011222 Ms 0DG4G5rRz(VC %0.1f is not supported by this moduleceZdZdZdZiZdgZgdZdgZdgZ eezeze zZ dZ dZ d Z d Zd xZZd ZddZddZ d dZ d!dZ d"dZ d#dZdZdZdZdZdZdZd$dZdZdS)% MSVCCompilerzwConcrete class that implements an interface to Microsoft Visual C++, as defined by the CCompiler abstract class.msvcz.c)z.ccz.cppz.cxx.rcz.mcz.resz.objz.libz.dllz%s%sz.exerctj||||t|_d|_g|_d|_d|_d|_dS)NzSoftware\Microsoft\VisualStudioF) rrHVERSION_MSVCCompiler__version_MSVCCompiler__root_MSVCCompiler__paths plat_name_MSVCCompiler__arch initialized)rFverbosedry_runforces rrHzMSVCCompiler.__init__HsJD'7E::: 8    rNc|jr Jd|t}d}||vrtd|dtjvrHdtjvr:|dr%d|_d|_d|_d |_ d |_ nj|tks|d krt|}n*ttd zt|z}tt|}|d tj|_|dtjd<|dtjd<t#|jdkrtd|jz|d|_|d|_|d|_|d |_ |d |_ tjd dD]}|j|n#t($rYnwxYwt+|j|_d|jtjd <d|_|jdkrgd|_gd|_ngd|_gd|_gd|_|jdkr gd|_dg|_d|_dS)Nzdon't init multiple timesrz--plat-name must be one of DISTUTILS_USE_SDKMSSdkzcl.exezlink.exezlib.exezrc.exezmc.exer _rrrrzxPython was built with %s, and extensions need to be built with the same version of the compiler, but it isn't installed.;r )/nologo/Ox/MD/W3/DNDEBUG)r/Od/MDdr/Z7/D_DEBUG)rrrr/GS-r)rrrrrrr)/DLLrz/INCREMENTAL:NO)rrz/INCREMENTAL:noz/DEBUGrT)rr rrtrfind_execclinkerrrcmcPLAT_TO_VCVARSrrrlr{rrk_MSVCCompiler__productr$rryr|preprocess_optionsrcompile_optionscompile_options_debugldflags_sharedrldflags_shared_debugldflags_static)rFrok_plats plat_specvc_envrZs r initializezMSVCCompiler.initializeSs"#@@%@@@#  $I' H $ $((*2(*566 6 "* , ,BJ1F1F4==YaKbKb1FDG$DK DHDGDGG LNN**i7.B.B*95 +<>>:S@*956 %Wi88F!&>// ;;DL &u BJu $*9$5BJy !4<  A%%,.J.())) mmH--DG-- 33DK}}Y//DHmmH--DGmmH--DG  Z'--c22 ' ' ##A&&&& '    D 1$,??  XXdl33 6"& ;%  $1$1$1D *=*=*=D & &$1$1$1D *=*=*=D &EDD >Q  )))D %!*ls;AH>> I  I c|d}g}|D]s}tj|\}}tj|d}|tj|d}||jvrt d|z|rtj|}||jvr<| tj |||j z||j vr=| tj |||j z8| tj |||j zu|S)Nrr zDon't know how to compile %s)rtrsplitext splitdriveisabssrc_extensionsrbasename_rc_extensionsr$r| res_extension_mc_extensions obj_extension)rFsource_filenames strip_dir output_dir obj_namessrc_namerexts robject_filenameszMSVCCompiler.object_filenamess  Bz ( L LH'**H55KT37%%d++A.D d++,,-D$---#$BX$MNNN /w''..d)))  "',, 04t7I0I#K#KLLLL+++  "',, 04t7I0I#K#KLLLL  "',, 04t7I0I#K#KLLLLrc |js||||||||} | \}} }} } |pg} | d|r| |jn| |j| D];} | |\}}n#t$rYwxYw|rtj |}||j vrd|z}n||j vrd|z}n||j vrQ|}d|z} ||jg| z|gz|gzn!#t $r}t#|d}~wwxYw||jvrtj |}tj |} ||jgd|d|gz|gztj tj |\}}tj ||dz}||jgd|zgz|gzn!#t $r}t#|d}~wwxYwt#d|d |d |z} ||jg| z| z||gz|z#t $r}t#|d}~wwxYw| S) Nz/cz/Tcz/Tpz/foz-hz-rrzDon't know how to compile z to z/Fo)rr_setup_compiler$extendrrrrtrr _c_extensions_cpp_extensionsrspawnrrrrdirnamerrrr|r)rFsourcesrrB include_dirsr extra_preargsextra_postargsdepends compile_infoobjectspp_optsbuild compile_optsobjsrcr input_opt output_optmsgh_dirrc_dirrrrc_files rcompilezMSVCCompiler.compiles  OO   **:v|+2G^MM :F7%$* T"""  6    : ; ; ; ;    4 5 5 5? (? (C  :SS     +gooc**d(((!CK ,,,!CK +++ "S[ ,JJy72 *| ,/8k :;;;;),,,&s+++,+++,,-- ,JJy $eT6: ;>AU CDDD g..0@0@#0F0FGGGD! gllFD5LAAGJJy % } -07y 9::::*,,,&s+++,#l&)cc33$0111J ( DG9|3g=%z23)*++++& ( ( ("3''' (s[ B  B-,B-&D)) E3EEB.I I! II!)J,, K 6KK c|js||||\}}|||}|||rN|d|zgz}|r ||jg|zdS#t$r}t|d}~wwxYwtj d|dS)N)r/OUT:skipping %s (up-to-date)) rr_fix_object_argslibrary_filename _need_linkrrrrr r) rFroutput_libnamerr target_langoutput_filenamelib_argsrs rcreate_static_libzMSVCCompiler.create_static_libs  OO    $ 5 5gz J J*//;E0GG ??7O 4 4 C'O";!<> :D7L"6  5 IIN2334 5 5 5#4#/1E#,..  ! gll:GGO ??7O 4 4= Ci2226"7;GG"1!""5GG2"7GG"1GK&," 5 5"":#34444)K7")O";!<=G44J)&(g&6&6G$$_55'7'7#7 gll))(3355  [ 8999  & & G L L L ,+  /~... KK88 9 9 9 % DK=723333% % % %nn$ %11+wGGF!#) DD5D__ddK)JJ)[ *G 566666))))#C..() "! I0/ B B B B Bs0I44 J>J  J;K K5!K00K5ctj|tj|dz}|d|zdS)Nz .manifest/MANIFESTFILE:)rtrr|rr$)rFrrr% temp_manifests rrz"MSVCCompiler.manifest_setup_ldargssV   11K?AA  '-788888rc|D]5}|dr|ddd}n6dS|tjkrd}nd}||}|dS||fS)Nr/:r rg) startswithrlrr_remove_visual_c_ref)rFrr%argr0r+s rrz$MSVCCompiler.manifest_get_embed_infos   C~~.//  # #q 1 1! 4   4 ). . .DDD 55mDDM  4d""rcz t|} |}|n#|wxYwtjdtj}tj|d|}d}tj|d|}tjdtj}tj||dSt|d} ||||S#|wxYw#t$rYdSwxYw)NzU|)rz*\s*zI|)w) openreadrrerDOTALLr`searchwriteOSError)rF manifest_file manifest_f manifest_bufpatterns rr4z!MSVCCompiler._remove_visual_c_refsR$ m,,J #)00   """"   """"jD G6'2|<D,D))D,, D:9D:c d|zS)Nz /LIBPATH:r>rFdirs rlibrary_dir_optionzMSVCCompiler.library_dir_options S  rc td)Nz>'**#"NNNNN# # 4rc|jD]b}tjtj||}tj|r|cSctjddD]b}tjtj||}tj|r|cSc|S)aReturn path to an MSVC executable program. Tries to find the program in several places: first, one of the MSVC program search paths from the registry; next, the directories in the PATH environment variable. If any of those work, return an absolute path that is known to exist. If none of them work, just return the original program name, 'exe'. Pathr)rrtrr|rrrrl)rFexerZfns rrzMSVCCompiler.find_exes  Abgooa00#66Bw~~b!!   F#))#..  Abgooa0055Bw~~b!!    r)rrrr)rr)NNNrNNN)NrN) NNNNNrNNNN)r) r8r9r:r; compiler_type executablesrrrrrrrstatic_lib_extensionshared_lib_extensionstatic_lib_formatshared_lib_format exe_extensionrHrrrrr-rrr4rFrHrJrQrr>rrrr*s66MKFM---OWNWN$o5$%'56NMM!!,22)M ! ! ! !Q Q Q Q n$%$&@HIAERRRRp&* !&* CCCC:"&  ]C]C]C]C~ 9 9 9###0%%%V!!!NNN***$rr)r )0r;rtrrir:distutils.errorsrrrrrdistutils.ccompilerrr distutilsr distutils.utilr winreg OpenKeyExr!EnumKeyr# EnumValuer+errorr" HKEY_USERSHKEY_CURRENT_USERHKEY_LOCAL_MACHINEHKEY_CLASSES_ROOTrplatformmaxsize NATIVE_WIN64rCrYrXrrr@rrryrrrrrr>rrrmsk  ??????????????::::::::''''''  ^  <    !  "  ! #  '?CK%,?  3CGJK>HH6G>K2H  <.<.<.<.<.<.<.<.|,,,,,,,,\2      !!!F&&&&R     S== !Kg!U V VVjjjjj9jjjjjrPK!.|55+__pycache__/text_file.cpython-311.opt-2.pycnu[ 0i02 ddlZddlZGddZdS)NcbeZdZ ddddddddZddZdZdZdd Zdd Zdd Z d Z d Z dZ dS)TextFilerstrict)strip_comments skip_blanks lstrip_ws rstrip_ws join_lines collapse_joinerrorsNc  ||td|jD]:}||vrt||||t|||j|;|D]}||jvrt d|z|||n||_||_d|_g|_ dS)Nz7you must supply either or both of 'filename' and 'file'zinvalid TextFile option '%s'r) RuntimeErrordefault_optionskeyssetattrKeyErroropenfilenamefile current_linelinebuf)selfrroptionsopts :/opt/alt/python311/lib64/python3.11/distutils/text_file.py__init__zTextFile.__init__Ns 3   XYY Y',,.. > >Cg~~c73<0000c4#7#<====<<>> E EC$...=CDDD/ < IIh    $DMDI !D   cp ||_tj|jd|j|_d|_dS)Nr)r r)riorr rr)rrs rrz TextFile.openos9 B  GDM3t{CCC rch |j}d|_d|_d|_|dSN)rrrclose)rrs rr$zTextFile.closevs5 /y    rctg}||j}||jdzt|tt fr&|dt |zn|d|z|t |d|S)Nz, z lines %d-%d: z line %d: )rappendr isinstancelisttuplestrjoin)rmsglineoutmsgs r gen_errorzTextFile.gen_errors <$D dmd*+++ dT5M * * . MM/E$KK7 8 8 8 8 MM+, - - - c#hhwwvrcNtd|||z)Nzerror: ) ValueErrorr0rr-r.s rerrorzTextFile.errors#T^^C%>%>>???rcz tjd|||zdzdS)Nz warning:  )sysstderrwriter0r3s rwarnz TextFile.warns=  t~~c4'@'@@4GHHHHHrc |jr|jd}|jd=|Sd} |j}|dkrd}|jr|r~|d}|dkrnb|dks||dz dkr7|ddkrdpd}|d||z}|dkrn|d d}|jr|r||d |S|j r| }||z}t|j tr|j ddz|j d<nZ|j |j dzg|_ nC|dSt|j tr|j ddz|_ n|j dz|_ |jr|jr|}n7|jr| }n|jr|}|dks|dkr |jr|jr5|ddkr |dd}|d dd kr|dd dz}#|S) Nr&T#rr\r6z\#z2continuation line immediately precedes end-of-filez\ )rrreadlinerfindstripreplacer r:r lstripr(rr)r r rstripr)rr. buildup_lineposeols rr@zTextFile.readlines  < <#D R K a 9%%''Drzz"$ 4t$ 4iinn"99AXXc!e!4!4 8t+5;C#;,Dzz||r)) * <<s33D >< ><II,---''%);;==D#d*d/66@+/+)@D%%<4d/66>(,(9!(rRsY. T"T"T"T"T"T"T"T"T"T"rPK!ѕ9hh(__pycache__/msvccompiler.cpython-311.pycnu[ 0i[0dZddlZddlZddlmZmZmZmZmZddl m Z m Z ddl m Z dZ ddlZdZeZejZejZejZejZnP#e$rH ddlZddlZdZeZejZejZejZejZn#e$re jdYnwxYwYnwxYwerejejejej fZ!d Z"d Z#d Z$Gd d Z%dZ&dZ'dZ(Gdde Z)e&dkr e j*de)Z+ddl,m)Z)ddl,m%Z%dSdS)zdistutils.msvccompiler Contains MSVCCompiler, an implementation of the abstract CCompiler class for the Microsoft Visual Studio. N)DistutilsExecErrorDistutilsPlatformError CompileErrorLibError LinkError) CCompilergen_lib_options)logFTzWarning: Can't read registry to find the necessary compiler setting Make sure that Python modules winreg, win32api or win32con are installed.c t||}n#t$rYdSwxYwg}d} t||}n#t$rYnwxYw|||dz }=|S)zReturn list of registry keys.NrT) RegOpenKeyExRegError RegEnumKeyappend)basekeyhandleLiks =/opt/alt/python311/lib64/python3.11/distutils/msvccompiler.py read_keysr6sdC(( tt A A 61%%AA    E    Q  Hs !!; AAc t||}n#t$rYdSwxYwi}d} t||\}}}n#t$rYn=wxYw|}t ||t |<|dz }_|S)zXReturn dict of registry keys and values. All names are converted to lowercase. NrTr )r r RegEnumValuelower convert_mbcs)rrrdrnamevaluetypes r read_valuesr!Gs dC(( tt A A  ,VQ 7 7 D%    E zz|| ,U 3 3,t   Q Hs !!? A  A cft|dd}| |d}n#t$rYnwxYw|S)Ndecodembcs)getattr UnicodeError)sdecs rrr\sQ !Xt $ $C  F AA    D  Hs ! ..c&eZdZdZdZdZdZdS) MacroExpanderc>i|_||dSN)macros load_macros)selfversions r__init__zMacroExpander.__init__fs#  !!!!!cjtD]*}t||}|r|||jd|z<dS+dS)Nz$(%s))HKEYSr!r-)r/macropathrrrs r set_macrozMacroExpander.set_macrojsR  DD$''A /0v GeO,   r2c d|z}|d|dzd|d|dzdd}|d|d  |d kr|d |d n|d |d n!#t$r}tdd}~wwxYwd}tD]Y} t ||}n#t $rY wxYwt |d}t||d|} | d|jd<ZdS)Nz%Software\Microsoft\VisualStudio\%0.1f VCInstallDirz \Setup\VC productdir VSInstallDirz \Setup\VSz Software\Microsoft\.NETFramework FrameworkDir installrootg@FrameworkSDKDirzsdkinstallrootv1.1sdkinstallrootaPython was built with Visual Studio 2003; extensions must be built with a compiler than can generate compatible binaries. Visual Studio 2003 was not found on this system. If you have Cygwin installed, you can try compiling with MingW32, by passing "-c mingw32" to setup.py.z.Software\Microsoft\NET Framework Setup\Productr\r0z$(FrameworkVersion)) r7KeyErrorrr4r rrr!r-) r/r0vsbasenetexcprhrrs rr.zMacroExpander.load_macrosqsq9GC ~v ' > >D  q))    Q""CDaaa"566A129DK- . . > >s*5B B(B##B(7C CCcp|jD]\}}|||}|Sr,)r-itemsreplace)r/r'rvs rsubzMacroExpander.subs;K%%''  DAq !QAAr2N)__name__ __module__ __qualname__r1r7r.rKr2rr*r*esP""">>>8r2r*cvd}tj|}|dkrdS|t|z}tj|ddd\}}t |dddz }|dkr|dz }t |d d d z }|dkrd }|dkr||zSdS) zReturn the version of MSVC that was used to build Python. For Python 2.3 and up, the version number is included in sys.version. For earlier versions, assume the compiler is MSVC 6. zMSC v.N r g$@r)sysr0findlensplitint)prefixrr'rest majorVersion minorVersions rget_build_versionras F   ABwwq CKKAk!""o##C++GAtq"v;;?Lr q1v;;%Lq ql** 4r2cd}tj|}|dkrdStjd|}tj|t|z|S)zUReturn the processor architecture. Possible results are "Intel" or "AMD64". z bit (rQIntel))rXr0rYrZ)r]rjs rget_build_architecturerfs^ F   ABwww a  A ;qV}Q ''r2cg}|D]:}tj|}||vr||;|S)znReturn a list of normalized paths with duplicates removed. The current order of paths is maintained. )osr6normpathr)paths reduced_pathsrEnps rnormalize_and_reduce_pathsrmsS M %% W  a  ] " "   $ $ $ r2ceZdZdZdZiZdgZgdZdgZdgZ eezeze zZ dZ dZ d Z d Zd xZZd ZddZdZ ddZ d dZ d!dZ d"dZdZdZdZd#dZdZd$dZdZdS)% MSVCCompilerzwConcrete class that implements an interface to Microsoft Visual C++, as defined by the CCompiler abstract class.msvcz.c)z.ccz.cppz.cxx.rcz.mcz.resz.objz.libz.dllz%s%sz.exercNtj||||t|_t |_|jdkrC|jdkr!d|_t|j|_nd|_d|jz|_ nd|jdzz|_ d|_ dS) NrczSoftware\Microsoft\VisualStudiozSoftware\Microsoft\DevstudiozVisual Studio version %szMicrosoft SDK compiler %srRF) rr1ra_MSVCCompiler__versionrf_MSVCCompiler__arch_MSVCCompiler__rootr*_MSVCCompiler__macros_MSVCCompiler__product initialized)r/verbosedry_runforces rr1zMSVCCompiler.__init__sD'7E:::*,,,.. ;' ! !~""@ -dn = = = 7$.HDNN9DNQQ  )))D % %)))D %!*lsAF F#"F#c|d}g}|D]s}tj|\}}tj|d}|tj|d}||jvrt d|z|rtj|}||jvr<| tj |||j z||j vr=| tj |||j z8| tj |||j zu|S)Nrr zDon't know how to compile %s)rhr6splitext splitdriveisabssrc_extensionsrbasename_rc_extensionsrr res_extension_mc_extensions obj_extension)r/source_filenames strip_dir output_dir obj_namessrc_namerexts robject_filenameszMSVCCompiler.object_filenames7s  Bz ( L LH'**H55KT37%%d++A.D d++,,-D$---#$BX$MNNN /w''..d)))  "',, 04t7I0I#K#KLLLL+++  "',, 04t7I0I#K#KLLLL  "',, 04t7I0I#K#KLLLLr2Nc |js||||||||} | \}} }} } |pg} | d|r| |jn| |j| D];} | |\}}n#t$rYwxYw|rtj |}||j vrd|z}n||j vrd|z}n||j vrQ|}d|z} ||jg| z|gz|gzn!#t $r}t#|d}~wwxYw||jvrtj |}tj |} ||jgd|d|gz|gztj tj |\}}tj ||dz}||jgd|zgz|gzn!#t $r}t#|d}~wwxYwt#d|d |d |z} ||jg| z| z||gz|z#t $r}t#|d}~wwxYw| S) Nz/cz/Tcz/Tpz/foz-hz-rrqzDon't know how to compile z to z/Fo)ryr_setup_compilerextendrrrArhr6abspath _c_extensions_cpp_extensionsrspawnrrrrdirnamerrrrr)r/sourcesrr- include_dirsdebug extra_preargsextra_postargsdepends compile_infoobjectspp_optsbuild compile_optsobjsrcr input_opt output_optmsgh_dirrc_dirr_rc_files rcompilezMSVCCompiler.compileVs  OO   **:v|+2G^MM :F7%$* T"""  6    : ; ; ; ;    4 5 5 5? (? (C  :SS     +gooc**d(((!CK ,,,!CK +++ "S[ ,JJy72 *| ,/8k :;;;;),,,&s+++,+++,,-- ,JJy $eT6: ;>AU CDDD g..0@0@#0F0FGGGD! gllFD5LAAGJJy % } -07y 9::::*,,,&s+++,#l&)cc33$0111J ( DG9|3g=%z23)*++++& ( ( ("3''' (s[ B  B-,B-&D)) E3EEB.I I! II!)J,, K 6KK c|js||||\}}|||}|||rN|d|zgz}|r ||jg|zdS#t$r}t|d}~wwxYwtj d|dS)N)r/OUT:skipping %s (up-to-date)) ryr_fix_object_argslibrary_filename _need_linkrrrrr r) r/routput_libnamerr target_langoutput_filenamelib_argsrs rcreate_static_libzMSVCCompiler.create_static_libs  OO    $ 5 5gz J J*//;E0GG ??7O 4 4 C'O";!<> :D7L"6  5 IIN2334 5 5 5#4#/1E#,..  ! gll:GGO ??7O 4 4, Ci2226"7;GG"1!""5GG2"7GG"1GK&," 5 5"":#34444)K7")O";!<=G)&(g&6&6G$$_55'7'7#7 gllGOOGAJ//))(3355  [ 8999 ,+  /~... KK88 9 9 9 % DK=7233333% % % %nn$ % I0/ B B B B Bs<I I:&I55I:c d|zS)Nz /LIBPATH:rOr/dirs rlibrary_dir_optionzMSVCCompiler.library_dir_options S  r2c td)Nz>'**#"NNNNN# # 4r2c|jD]b}tjtj||}tj|r|cSctjddD]b}tjtj||}tj|r|cSc|S)aReturn path to an MSVC executable program. Tries to find the program in several places: first, one of the MSVC program search paths from the registry; next, the directories in the PATH environment variable. If any of those work, return an absolute path that is known to exist. If none of them work, just return the original program name, 'exe'. Pathr)rrhr6rrisfilerr[)r/exerEfns rrzMSVCCompiler.find_exe4s  Abgooa00#66Bw~~b!!   F#))#..  Abgooa0055Bw~~b!!    r2x86ctsgS|dz}|jdkrd|j|jfz}n |jd|d}tD]q}t ||}|r]|jdkr5|j||dcS||dcSr|jdkr9tD]1}t |d|jz|d n2gS) zGet a list of devstudio directories (include, lib or path). Return a list of strings. The list will be empty if unable to access the registry or appropriate registry keys not found. z dirsrsz6%s\%0.1f\VC\VC_OBJECTS_PLATFORM_INFO\Win32\Directoriesz.\6.0\Build System\Components\Platforms\Win32 (z )\DirectoriesrrRz%s\6.0NzIt seems you have Visual Studio 6 installed, but the expected registry settings are not present. You must at least run the Visual Studio GUI once so that these entries are created.) _can_read_regrtrvr4r!rwrKr[r)r/r6platformrrrs rrzMSVCCompiler.get_msvc_pathsJs@  Ig~ >Q  Lk4>23CC26hhhHC . .DD#&&A .>Q&&=,,QtW55;;C@@@@@T7==-----  . >Q    tY%<==III=>>>E J  r2c|dkr|d}n||}|r$d|tj|<dSdS)zSet environment variable 'name' to an MSVC path type value. This is equivalent to a SET command prior to execution of spawned commands. rlibraryrN)rrrhr)r/rrEs rrzMSVCCompiler.set_path_env_varnsc 5==##I..AA##D))A  +"xx{{BJt    + +r2)rrr)rr)NNNrNNN)NrN) NNNNNrNNNN)r)r)rLrMrN__doc__ compiler_type executablesrrrrrrrstatic_lib_extensionshared_lib_extensionstatic_lib_formatshared_lib_format exe_extensionr1rrrrrrrrrrrrrOr2rroros66MKFM---OWNWN$o5$%'56NMM!!,22)M!!!!$< < < D$%$&@HIAERRRRp&* !&* CCCC:"&  LCLCLCLCf!!!NNN***$,""""H + + + + +r2rog @z3Importing new compiler from distutils.msvc9compiler)ro)r*)-r rXrhdistutils.errorsrrrrrdistutils.ccompilerrr distutilsr rwinreghkey_mod OpenKeyExr EnumKeyr EnumValuererrorr ImportErrorwin32apiwin32coninfo HKEY_USERSHKEY_CURRENT_USERHKEY_LOCAL_MACHINEHKEY_CLASSES_ROOTr4rr!rr*rarfrmrorOldMSVCCompilerdistutils.msvc9compilerrOr2rr's''''''''''''''         8MMMMH#LJ#L|HH8888 , ( , > 8887 8 8 8 8 888")   '  (  ' )E    "   *   ++++++++Z2 ( ( (   s+s+s+s+s+9s+s+s+l # CICDDD"O44444455555555 s5$AB(A>=B>BBBBBPK!'__pycache__/spawn.cpython-311.opt-2.pycnu[ 0i4v ddlZddlZddlZddlmZmZddlmZddlm Z ej dkrda da d dZ d dZdS) N)DistutilsPlatformErrorDistutilsExecError)DEBUG)logdarwinc t|}tjd||rdS|rt |d}|||d<d}t jdkrtHddlm }| dpdatr$dt dDa trtjdt}d | dD}tdd d d gkr-|dd d d gkrd |dtd} t!| t#tj|} t%j||} | | j} nB#t,$r5} t.s|d}t1d|d| jd| d} ~ wwxYw| r$t.s|d}t1d|d| dS)N rr) sysconfigMACOSX_DEPLOYMENT_TARGETc,g|]}t|Sint.0xs 6/opt/alt/python311/lib64/python3.11/distutils/spawn.py zspawn..<s$L$L$LSVV$L$L$L.c,g|]}t|Srrrs rrzspawn..DsFFF1AFFFr z)$MACOSX_DEPLOYMENT_TARGET mismatch: now "z" but "z)" during configure;must use 10.3 or later)r )envzcommand z failed: z failed with exit code )listrinfojoinfind_executablesysplatform _cfg_target distutilsr get_config_varsplit_cfg_target_splitosenvirongetrdict subprocessPopenwait returncodeOSErrorrrargs) cmd search_pathverbosedry_run executablerr cur_targetcur_target_splitmy_msgprocexitcodeexcs rspawnr?ss" s))CHSXXc]] $SV,,  !CF C |x   + + + + + +#22"<>>DAC  M$L$L[5F5Fs5K5K$L$L$L!  < (BKPPJFF 0@0@0E0EFFF  !$Q//4DRaR4HBPQ74R4R4R$.::{{{<-V444rz0:<<>!   HHH  4sBB:9B:)rrr)N)r#r*r.distutils.errorsrrdistutils.debugrr&rr$r%r)r?r"rrrrSs GGGGGGGG!!!!!!<8KEGEGEGEGP""""""rPK!JC/C/%__pycache__/sysconfig.cpython-311.pycnu[ 0i0xdZddlZddlZddlZddlZddlZddlmZddlm Z ddl m Z m ZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%e#Z&ej'de(d dd Zee d Z)eee&Zeee&Z*dd Z+dZ, esej-Z,n #e.$rYnwxYwdZ/ddZ0ddZ1dS)aProvide access to Python's configuration information. The specific configuration variables available depend heavily on the platform and configuration. The values may be retrieved using get_config_var(name), and the list of variables is available via get_config_vars().keys(). Additional convenience functions are also available. Written by: Fred L. Drake, Jr. Email: N)partial)DistutilsPlatformError)_PREFIX _BASE_PREFIX _EXEC_PREFIX_BASE_EXEC_PREFIX _PROJECT_BASE _PYTHON_BUILD _init_posixparse_config_h_init_non_posix _variable_rx _findvar1_rx _findvar2_rxexpand_makefile_varsis_python_buildget_config_h_filenameget_config_varget_config_varsget_makefile_filenameget_python_versionzCThe distutils.sysconfig module is deprecated, use sysconfig instead) stacklevelc$t||S)N)vars)sysconfig_parse_config_h)fpgs :/opt/alt/python311/lib64/python3.11/distutils/sysconfig.pyr r =s #BQ / / //T) check_homec4ddlm}||dddd}|i}i}i} |}|ntjt |}|r|dd\}} | } | d d } d | vr| ||<n? t| } | ||<n)#t$r| d d ||<YnwxYwd } |rt|D]} || } tj t| ptj t| }|rk|d}d}||vrt||}nz||vrd }ns|t jvrt j|}nR|| vrG| dr| dd| vrd }n*d|z|vrd }n t|d|z}nd x||<}|r| |d}| d||z|z} d |vr| || <8t| } | || <n'#t$r| || <YnwxYw|| =| dr| dd| vr| dd} | |vr| || <|| =|||D]1\}} t/| tr| ||<2|||S)zParse a Makefile-style file. A dictionary containing name/value pairs is returned. If an optional dictionary is passed in as the second argument, it is used instead of a new dictionary. r)TextFilersurrogateescape)strip_comments skip_blanks join_lineserrorsNTrz$$$)CFLAGSLDFLAGSCPPFLAGSFPY_)distutils.text_filer$readlinerematchrgroupstripreplaceint ValueErrorlistsearchrrstrosenviron startswithendstartcloseitems isinstanceupdate)fnrr$rdonenotdonelinemnvtmpvrenamed_variablesnamevaluefounditemafterks r parse_makefilerUHs -,,,,, "QA!L] ^ ^ ^By  DG {{}} <  H\4 ( (  771a==DAq A99T2&&Dd{{  AA  DGG "333iic22DGGG3! 4: 0"MM/ "/ "DDME ,..P")L%2P2PA, "GGAJJ99tAw<O2O2O!g-- % #4 ?33%''DGd3!!%%''((OE!*17799*-4ur?lenset_executablesshared_lib_extension)rerpcccxxcflagsccsharedldshared shlib_suffixarar_flagsnewcccpprjcc_cmds r rqrqs '' <8 # # ##$=>> A####// ===:@ 67 D%& ND) U U JS&(HlB 2:  Jt$E ((""*44 ++B//5!8CGGHH#55B BJ  *U#C  # #z*-H BJ  *U#CCu*C  " "#~ 9(==H rz ! !c\BJx$88F#~ 8(<>H 2:  D!B  " "Cx"*Y"77HHCx(*HcF"   x/ !   )5%%%}('r!c||rtpt}tjdkrtrU|rt Stjtdd}tj |Sdtztz}tj|d|StjdkrztrStj|dtjj ztj|dzStj|dStd tjz) aReturn the directory containing installed Python header files. If 'plat_specific' is false (the default), this is the path to the non-platform-specific header files, i.e. Python.h and so on; otherwise, this is the path to platform-specific header files (namely pyconfig.h). If 'prefix' is supplied, use it instead of sys.base_prefix or sys.base_exec_prefix -- i.e., ignore 'plat_specific'. NposixsrcdirIncludepythonincludentPCzFI don't know where Python installs its C header files on platform '%s')BASE_EXEC_PREFIX BASE_PREFIXr=rO python_build project_basepathjoinrnormpathr build_flagspathsepr) plat_specificprefixincdir python_dirs r get_python_incrs$~3#3B{ w'  0  0##nX&>&> JJw''/// 2 4 44{B w||FIz::: D  0GLL33bgoEGLL../ 0w||FI...$ !# )** *r!c|#|r|rtpt}n|rtpt}tjdkrg|s|r t j}nd}tj ||dtz}|r|Stj |dStjdkrC|r tj |dStj |ddStdtjz) aSReturn the directory containing the Python library (standard or site additions). If 'plat_specific' is true, return the directory containing platform-specific modules, i.e. any module from a non-pure-Python module distribution; otherwise, return the platform-shared library directory. If 'standard_lib' is true, return the directory containing standard Python library modules; otherwise, return the directory for site-specific modules. If 'prefix' is supplied, use it instead of sys.base_prefix or sys.base_exec_prefix -- i.e., ignore 'plat_specific'. Nrlibrz site-packagesrLibz?I don't know where Python installs its library on platform '%s') rr EXEC_PREFIXPREFIXr=rOrl platlibdirrrrr)r standard_librlibdir libpythons r get_python_libr0s~  ="7'7F;FF"2{,@,@!@BB  < 7<< ?;; ; D  @7<<.. .7<<?? ?$ !# )** *r!)N)rN)rrN)2__doc___impr=r3rlwarnings functoolsrr)r sysconfigrrrrrrr rr rr rr sysconfig_init_posixr rrrrrrrrrrrrrnwarnDeprecationWarning _python_build_init_ntrUrabiflagsAttributeErrorrqrrr!r rsQ   ******:   I0000D999 g*L99 7?L 1 1 f f f f ^  #l     D D5D5D5N%*%*%*%*P************s B$$B,+B,PK!]z-(__pycache__/config.cpython-311.opt-2.pycnu[ 0iWP ddlZddlmZddlZddlmZdZGddeZdS)N)RawConfigParser)CommandzE[distutils] index-servers = pypi [pypi] username:%s password:%s c^eZdZ dZdZdZdZdddezfdgZdgZd Z d Z d Z d Z d Z dZdS) PyPIRCCommandzhttps://upload.pypi.org/legacy/pypiNz repository=rzurl of repository [default: %s]) show-responseNz&display full response text from serverr c~ tjtjddS)N~z.pypirc)ospathjoin expanduserselfs 7/opt/alt/python311/lib64/python3.11/distutils/config.py _get_rc_filezPyPIRCCommand._get_rc_file's+#w||BG..s33Y???c  |}tjtj|tjtjzdd5}|t||fzddddS#1swxYwYdS)Niw)rr fdopenopenO_CREATO_WRONLYwriteDEFAULT_PYPIRC)rusernamepasswordrcfs r _store_pypirczPyPIRCCommand._store_pypirc+s-     Yrwr2: #;UCCS I I ;Q GGNh%99 : : : ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;s BB Bc |}tj|r|d|z|jp|j}t}||| }d|vr| dd}d| dD}|gkr d|vrdg}niS|D]}d|i}| |d|d<d |jfd |j fd fD]:\} } | || r| || || <5| || <;|dkr||jdfvr|j|d <|cS|d|ks |d |kr|cSnod |vrkd }| |d r| |d }n|j}| |d| |d |||j dSiS)NzUsing PyPI login from %s distutilsz index-serverscfg|].}|dk|/S))strip).0servers r z.PyPIRCCommand._read_pypirc..>s<555v%||~~33#LLNN333r rr(r repositoryrealm)rNz server-loginr)rrr+r(r,)rr r existsannouncer+DEFAULT_REPOSITORYrreadsectionsgetsplit DEFAULT_REALM has_option) rrr+configr1 index_servers_serversr(currentkeydefaults r _read_pypirczPyPIRCCommand._read_pypirc1s%     7>>"  9 5 MM4r9 : : :CD,CJ$&&F KKOOO((Hh&& & ; H H 55)//55555r>>))$*8 " &''F'0G*0**VZ*H*HGJ'+7*.*A*C*143E)F);)=33 W",,VS993+1::fc+B+BGCLL+2GCLL &(("t'>&GGG040G -&)Z77 -;;& ? ? ? JJJ                )).,GG ##L11!488GLL}}%%h///sAAAc2 d|_d|_d|_dS)Nr)r+r, show_responsers rinitialize_optionsz PyPIRCCommand.initialize_optionszs!! rcX |j |j|_|j|j|_dSdS)N)r+r/r,r4rs rfinalize_optionszPyPIRCCommand.finalize_optionss5 ? ""5DO : +DJJJ  r)__name__ __module__ __qualname__r/r4r+r, user_optionsboolean_optionsrr!r<rMrPrRrrrrs:MJ E  *    3 4L''O@@@;;; >>>@000 ,,,,,rr)r configparserrrB distutils.cmdrrrrXrrr[s  ((((((!!!!!!o,o,o,o,o,Go,o,o,o,o,rPK!T?<<__pycache__/log.cpython-311.pycnu[ 0idZdZdZdZdZdZddlZGdd ZeZej Z ej Z ej Z ej Z ej Z ejZd Zd ZdS) z,A simple log mechanism styled after PEP 282.NcBeZdZefdZdZdZdZdZdZ dZ dZ d S) Logc||_dSN) threshold)selfr s 4/opt/alt/python311/lib64/python3.11/distutils/log.py__init__z Log.__init__s "c|tttttfvrt dt |z||jkr|r||z}|tttfvr tj }n tj } | d|znX#t$rK|j }||d|}| d|zYnwxYw|dSdS)Nz%s wrong log levelz%s backslashreplace)DEBUGINFOWARNERRORFATAL ValueErrorstrr sysstderrstdoutwriteUnicodeEncodeErrorencodingencodedecodeflush)r levelmsgargsstreamrs r_logzLog._logs  dE59 9 91CJJ>?? ? DN " " !Djue,,, + Vc\****% + + +!?jj+=>>EEhOO Vc\*****  + LLNNNNN # "sBAC21C2c4||||dSr )r')r r#r$r%s rlogzLog.log's %d#####rc>|t||dSr )r'rr r$r%s rdebugz Log.debug* %d#####rc>|t||dSr )r'rr+s rinfozLog.info- $T"""""rc>|t||dSr )r'rr+s rwarnzLog.warn0r0rc>|t||dSr )r'rr+s rerrorz Log.error3r-rc>|t||dSr )r'rr+s rfatalz Log.fatal6r-rN) __name__ __module__ __qualname__rrr'r)r,r/r2r4r6rrr r s!%####($$$$$$######$$$$$$$$rr c6tj}|t_|Sr ) _global_logr )r#olds r set_thresholdr>As  C!K Jrc|dkrttdS|dkrttdS|dkrttdSdS)Nrrr)r>rrr)vs r set_verbosityrAGs`Avvd ad ae r)__doc__rrrrrrr r<r)r,r/r2r4r6r>rAr:rrrCs22    )$)$)$)$)$)$)$)$Vcee o rPK!ql+?+?$__pycache__/filelist.cpython-311.pycnu[ 0i 2dZddlZddlZddlZddlZddlmZddlmZm Z ddl m Z GddZ dZ ejfd Zd Zd d ZdS)zsdistutils.filelist Provides the FileList class, used for poking about the filesystem and building lists of files. N convert_path)DistutilsTemplateErrorDistutilsInternalError)logcpeZdZdZddZdZejfdZdZ dZ dZ d Z d Z d Zd ZddZ ddZdS)FileListaA list of files built by on exploring the filesystem and filtered by applying various patterns to what we find there. Instance attributes: dir directory from which files will be taken -- only used if 'allfiles' not supplied to constructor files list of filenames currently being built/filtered/manipulated allfiles complete list of files under consideration (ie. without any filtering applied) Nc"d|_g|_dSN)allfilesfiles)selfwarn debug_prints 9/opt/alt/python311/lib64/python3.11/distutils/filelist.py__init__zFileList.__init__s  c||_dSr )r )rr s r set_allfileszFileList.set_allfiles#s   rc.t||_dSr )findallr )rdirs rrzFileList.findall&s  rc8ddlm}|rt|dSdS)z~Print 'msg' to stdout if the global DEBUG (taken from the DISTUTILS_DEBUG environment variable) flag is true. r)DEBUGN)distutils.debugrprint)rmsgrs rrzFileList.debug_print)s7 *)))))   #JJJJJ  rc:|j|dSr )r append)ritems rrzFileList.append3s $rc:|j|dSr )r extend)ritemss rr"zFileList.extend6s %     rctttjj|j}g|_|D]-}|jtjj|.dSr )sortedmapospathsplitr rjoin)rsortable_files sort_tuples rsortz FileList.sort9saBGM4: > >?? ( 9 9J J  bglJ7 8 8 8 8 9 9rctt|jdz ddD])}|j||j|dz kr|j|=*dS)Nr)rangelenr )ris rremove_duplicateszFileList.remove_duplicatesCsZs4:*Ar22 " "Az!} 1q5 111JqM " "rc|}|d}dx}x}}|dvr:t|dkrtd|zd|ddD}n|dvrOt|dkrtd |zt|d}d |ddD}nQ|d vr;t|dkrtd |zt|d}ntd |z||||fS)Nr)includeexcludeglobal-includeglobal-excludez&'%s' expects ...c,g|]}t|Sr.0ws r z1FileList._parse_template_line..W;;;A Q;;;rr/)recursive-includerecursive-excludez,'%s' expects ...c,g|]}t|Sr<rr=s rr@z1FileList._parse_template_line..]rAr)graftprunez#'%s' expects a single zunknown action '%s')r)r2rr)rlinewordsactionpatternsr dir_patterns r_parse_template_linezFileList._parse_template_lineLsV q'+++3 : : :5zzA~~,>GIII;;qrr;;;HH A A A5zzA~~,DvMOOOuQx((C;;qrr;;;HH ) ) )5zzQ,;fDFFF&uQx00KK()>)GHH H#{33rcR||\}}}}|dkr^|dd|z|D].}||dst jd|/dS|dkr^|dd|z|D].}||dst jd |/dS|d kr^|d d|z|D].}||d st jd |/dS|dkr^|dd|z|D].}||d st jd|/dS|dkrb|d|dd||D]/}|||st jd||0dS|dkrb|d|dd||D]/}|||st jd||0dS|dkrH|d|z|d|st jd|dSdS|dkrH|d|z|d|st jd|dSdStd|z)Nr6zinclude  r/)anchorz%warning: no files found matching '%s'r7zexclude z9warning: no previously-included files found matching '%s'r8zglobal-include rz>warning: no files found matching '%s' anywhere in distributionr9zglobal-exclude zRwarning: no previously-included files matching '%s' found anywhere in distributionrBzrecursive-include )prefixz:warning: no files found matching '%s' under directory '%s'rCzrecursive-exclude zNwarning: no previously-included files matching '%s' found under directory '%s'rFzgraft z+warning: no directories found matching '%s'rGzprune z6no previously-included directories found matching '%s'z'this cannot happen: invalid action '%s')rMrr*include_patternrrexclude_patternr)rrHrJrKrrLpatterns rprocess_template_linezFileList.process_template_linehsi 04/H/H/N/N,3 Y     Z#((8*<*<< = = =# & &++GA+>>&HD$&&& & & y   Z#((8*<*<< = = =# ? ?++GA+>>?H46=??? ? ? ' ' '   .(1C1CC D D D# D D++GA+>>DH9;BDDD D D ' ' '   .(1C1CC D D D# & &++GA+>>&HD$&&& & & * * *    !cc388H#5#5#57 8 8 8# + +++GC+@@+H7$c+++ + + * * *    !cc388H#5#5#57 8 8 8# + +++GC+@@+H@$c+++ + + w     X 3 4 4 4''['AA &F$&&&&& & &w     X 3 4 4 4''['AA 9*,799999 9 9);fDFF Frr/rcDd}t||||}|d|jz|j||jD]K}||r4|d|z|j|d}L|S)aSelect strings (presumably filenames) from 'self.files' that match 'pattern', a Unix-style wildcard (glob) pattern. Patterns are not quite the same as implemented by the 'fnmatch' module: '*' and '?' match non-special characters, where "special" is platform- dependent: slash on Unix; colon, slash, and backslash on DOS/Windows; and colon on Mac OS. If 'anchor' is true (the default), then the pattern match is more stringent: "*.py" will match "foo.py" but not "foo/bar.py". If 'anchor' is false, both of these will match. If 'prefix' is supplied, then only filenames starting with 'prefix' (itself a pattern) and ending with 'pattern', with anything in between them, will match. 'anchor' is ignored in this case. If 'is_regex' is true, 'anchor' and 'prefix' are ignored, and 'pattern' is assumed to be either a string containing a regex or a regex object -- no translation is done, the regex is just compiled and used as-is. Selected strings will be added to self.files. Return True if files are found, False otherwise. Fz%include_pattern: applying regex r'%s'Nz adding T)translate_patternrrTr rsearchr r)rrTrPrQis_regex files_found pattern_renames rrRzFileList.include_patterns4 &wII  @#+, - - - = LLNNNM # #D  && #  d!2333 !!$'''" rcTd}t||||}|d|jztt |jdz ddD]O}||j|r-|d|j|z|j|=d}P|S)aRemove strings (presumably filenames) from 'files' that match 'pattern'. Other parameters are the same as for 'include_pattern()', above. The list 'self.files' is modified in place. Return True if files are found, False otherwise. Fz%exclude_pattern: applying regex r'%s'r/r0z removing T)rWrrTr1r2r rX)rrTrPrQrYrZr[r3s rrSzFileList.exclude_patterns &wII  @#+, - - -s4:q("b11 # #A  A// #   1 !=>>>JqM" r)NNr/Nr)__name__ __module__ __qualname____doc__rrr'curdirrrrr"r-r4rMrUrRrSr<rrr r s   !!!)%%%%   !!!999"""4448GFGFGFX((((X:;rr cdtj|dD}ttjj|S)z% Find all files under 'path' c3hK|]-\}}}|D]$}tj||V%.dSr )r'r(r*)r>basedirsr files r z#_find_all_simple..sc D$   T4  rT) followlinks)r'walkfilterr(isfile)r(resultss r_find_all_simplerosE!#4!@!@!@G "'.' * **rct|}|tjkr5tjtjj|}t||}t|S)z Find all files under 'dir' and return the list of full filenames. Unless dir is '.', return full filenames with dir prepended. )start) ror'rc functoolspartialr(relpathr&list)rr make_rels rrrsR S ! !E bi$RW_C@@@He$$ ;;rctj|}tj}tjdkrd}d|z}t jd||}|S)zTranslate a shell-like glob pattern to a regular expression; return a string containing the regex. Differs from 'fnmatch.translate()' in that '*' does not match "special characters" (which are platform-specific). \z\\\\z\1[^%s]z((?>CE C OOc#hh,F FG */%%CCCSSQ  F&+eeZE -D-DEJ :j ! !!rr^)rbr'r|ryrrdistutils.utilrdistutils.errorsrr distutilsrr rorcrrrWr<rrrs  ''''''KKKKKKKKbbbbbbbbP + + +    .""""""""""""rPK!R[j((+__pycache__/file_util.cpython-311.opt-1.pycnu[ 0i\dZddlZddlmZddlmZddddZdd Z dd Z dd Z dZ dS)zFdistutils.file_util Utility functions for operating on single files. N)DistutilsFileError)logcopyingz hard linkingzsymbolically linking)Nhardsym@cd}d} t|d}n,#t$r}td|d|jd}~wwxYwtj|rB t j|n,#t$r}td|d|jd}~wwxYw t|d}n,#t$r}td|d|jd}~wwxYw ||}n,#t$r}td |d|jd}~wwxYw|snD | |n,#t$r}td |d|jd}~wwxYw |r| |r| dSdS#|r| |r| wwxYw) a5Copy the file 'src' to 'dst'; both must be filenames. Any error opening either file, reading from 'src', or writing to 'dst', raises DistutilsFileError. Data is read/written in chunks of 'buffer_size' bytes (default 16k). No attempt is made to handle anything apart from regular files. Nrbzcould not open '': zcould not delete 'wbzcould not create 'Tzcould not read from 'zcould not write to ') openOSErrorrstrerrorospathexistsunlinkreadwriteclose)srcdst buffer_sizefsrcfdstebufs :/opt/alt/python311/lib64/python3.11/distutils/file_util.py_copy_file_contentsrs D D& TT??DD T T T$$###qzz%RSS S T 7>>#   G G # G G G((58SS!**EGGG G CT??DD C C C$$14ajjACC C C I Jii ,, J J J((8;QZZHJJJ J  I 3 I I I((7:ssAJJGIII I I   JJLLL   JJLLLLL     JJLLL   JJLLLL sF A<A"F$A98F9 B"BB""F&B76F7 C CC  F%C;:F; D$DD$$F+EF E* E%%E**F/Gcddlm}ddlm} m} m} m} tj |std|ztj |r@|} tj |tj |}ntj|} |r+|||s|dkrtjd||dfS t"|}n #t$$rt'd|zwxYw|dkrotj |tj |krtjd||| ntjd||||r|dfS|d krjtj|r tj||s* tj|||dfS#t0$rYncwxYwn^|d krXtj|r tj||stj|||dfSt5|||s|r_tj|}|r#tj||| || f|r$tj|| || |dfS) aCopy a file 'src' to 'dst'. If 'dst' is a directory, then 'src' is copied there with the same name; otherwise, it must be a filename. (If the file exists, it will be ruthlessly clobbered.) If 'preserve_mode' is true (the default), the file's mode (type and permission bits, or whatever is analogous on the current platform) is copied. If 'preserve_times' is true (the default), the last-modified and last-access times are copied as well. If 'update' is true, 'src' will only be copied if 'dst' does not exist, or if 'dst' does exist but is older than 'src'. 'link' allows you to make hard links (os.link) or symbolic links (os.symlink) instead of copying: set it to "hard" or "sym"; if it is None (the default), files are copied. Don't set 'link' on systems that don't support it: 'copy_file()' doesn't check if hard or symbolic linking is available. If hardlink fails, falls back to _copy_file_contents(). Under Mac OS, uses the native file copy function in macostools; on other systems, uses '_copy_file_contents()' to copy file contents. Return a tuple (dest_name, copied): 'dest_name' is the actual name of the output file, and 'copied' is true if the file was copied (or would have been copied, if 'dry_run' true). r)newer)ST_ATIMEST_MTIMEST_MODES_IMODEz4can't copy '%s': doesn't exist or not a regular filer z"not copying %s (output up-to-date)z&invalid value '%s' for 'link' argumentz %s %s -> %srr)distutils.dep_utilr"statr#r$r%r&rrisfilerisdirjoinbasenamedirnamerdebug _copy_actionKeyError ValueErrorinforsamefilelinkrsymlinkrutimechmod)rr preserve_modepreserve_timesupdater4verbosedry_runr"r#r$r%r&diractionsts r copy_filer@CsB)(((((999999999999 7>>#  L DsJLL L w}}S#gll3 0 0 5 566gooc"" eeCoo a<< I:C @ @ @QxJd# JJJADHIIIJ!|| 7  C BG$4$4S$9$9 9 9 H]FC 5 5 5 5 H]FC 5 5 5Qx s## (8(8c(B(B  S!!!Qx        s## (8(8c(B(B  JsC 8OS!!!00 WS\\  8 HS2h<H6 7 7 7  0 HS''"W+.. / / / 8Os0 C>>DG88 HHc rddlm}m}m}m}m}ddl} |dkrtjd|||r|S||std|z||r*tj |||}n!||rtd|d|d |||std|d|d d } tj ||nG#t$r:} | j\} } | | jkrd } ntd |d|d| Yd} ~ nd} ~ wwxYw| rt#||| tj|n]#t$rP} | j\} } tj|n#t$rYnwxYwtd |d|d|d| d} ~ wwxYw|S)a%Move a file 'src' to 'dst'. If 'dst' is a directory, the file will be moved into it with the same name; otherwise, 'src' is just renamed to 'dst'. Return the new full name of the file. Handles cross-device moves on Unix using 'copy_file()'. What about other systems??? r)rr)r*r,r-Nr zmoving %s -> %sz#can't move '%s': not a regular filez can't move 'z': destination 'z' already existsz' not a valid pathFTzcouldn't move 'z' to 'r )r;z' by copy/delete: delete 'z ' failed: )os.pathrr)r*r,r-errnorr2rrrr+renamerargsEXDEVr@r)rrr;r<rr)r*r,r-rCcopy_itrnummsgs r move_filerJsA@@@@@@@@@@@@@LLL!|| "C--- 6#;;N !F!LMMM uSzzgll3 ..   ssCCC  5    ssCCC GF #s FFFV c %+  GG$$69cc333DFF F GGGGF *#sG,,,, * IcNNNN * * *JS#  #    $$SS###sssCC)** * * JsTC)) D-30D((D-E F4$ F//FF/ FF/FF//F4ct|d} |D]}||dz |dS#|wxYw)z{Create a file with the specified name and write 'contents' (a sequence of strings without line terminators) to it. w N)r rr)filenamecontentsflines r write_filerRsj XsA ! !D GGD4K  !   s AA)r)r r rNr r)r r) __doc__rdistutils.errorsr distutilsrr/rr@rJrRrrXs  //////#'/22 1111fCD,-____H<<<<~     rWPK!^'__pycache__/spawn.cpython-311.opt-1.pycnu[ 0i4xdZddlZddlZddlZddlmZmZddlmZddl m Z ej dkrda da d dZd d ZdS) zdistutils.spawn Provides the 'spawn()' function, a front-end to various platform- specific functions for launching another program in a sub-process. Also provides the 'find_executable()' to search the path for a given executable name. N)DistutilsPlatformErrorDistutilsExecError)DEBUG)logdarwinct|}tjd||rdS|rt |d}|||d<d}t jdkrtHddlm }| dpdatr$dt d Da trtjdt}d | d D}tdd d d gkr-|dd d d gkrd|dtd} t!| t#tj|} t%j||} | | j} nB#t,$r5} t.s|d}t1d|d| jd| d} ~ wwxYw| r$t.s|d}t1d|d| dS)aRun another program, specified as a command list 'cmd', in a new process. 'cmd' is just the argument list for the new process, ie. cmd[0] is the program to run and cmd[1:] are the rest of its arguments. There is no way to run a program with a name different from that of its executable. If 'search_path' is true (the default), the system's executable search path will be used to find the program; otherwise, cmd[0] must be the exact path to the executable. If 'dry_run' is true, the command will not actually be run. Raise DistutilsExecError if running the program fails in any way; just return on success.  Nrr) sysconfigMACOSX_DEPLOYMENT_TARGETc,g|]}t|Sint.0xs 6/opt/alt/python311/lib64/python3.11/distutils/spawn.py zspawn..<s$L$L$LSVV$L$L$L.c,g|]}t|Srrrs rrzspawn..DsFFF1AFFFr z)$MACOSX_DEPLOYMENT_TARGET mismatch: now "z" but "z)" during configure;must use 10.3 or later)r )envzcommand z failed: z failed with exit code )listrinfojoinfind_executablesysplatform _cfg_target distutilsr get_config_varsplit_cfg_target_splitosenvirongetrdict subprocessPopenwait returncodeOSErrorrrargs) cmd search_pathverbosedry_run executablerr cur_targetcur_target_splitmy_msgprocexitcodeexcs rspawnr?sn$ s))CHSXXc]] $SV,,  !CF C |x   + + + + + +#22"<>>DAC  M$L$L[5F5Fs5K5K$L$L$L!  < (BKPPJFF 0@0@0E0EFFF  !$Q//4DRaR4HBPQ74R4R4R$.::{{{<-V444rz0:<<>!   HHH  4sBB98B9)rrr)N)__doc__r#r*r.distutils.errorsrrdistutils.debugrr&rr$r%r)r?r"rrrrTs GGGGGGGG!!!!!!<8KEGEGEGEGP""""""rPK! ͓)__pycache__/version.cpython-311.opt-2.pycnu[ 0i0b ddlZGddZGddeZGddeZdS)Nc<eZdZ d dZdZdZdZdZdZdZ dS) VersionNc8|r||dSdSNparseselfvstrings 8/opt/alt/python311/lib64/python3.11/distutils/version.py__init__zVersion.__init__&,  JJw       c@|jjdt|dS)Nz ('z')) __class____name__strr s r __repr__zVersion.__repr__*s""n555s4yyyyAArcN||}|tur|S|dkSNr_cmpNotImplementedr othercs r __eq__zVersion.__eq__-, IIe     HAv rcN||}|tur|S|dkSrrrs r __lt__zVersion.__lt__3, IIe     H1u rcN||}|tur|S|dkSrrrs r __le__zVersion.__le__9rrcN||}|tur|S|dkSrrrs r __gt__zVersion.__gt__?r"rcN||}|tur|S|dkSrrrs r __ge__zVersion.__ge__Errr) r __module__ __qualname__r rrr!r$r&r(rr rrs     BBB    rrc^eZdZ ejdejejzZdZdZ dZ dS) StrictVersionz)^(\d+) \. (\d+) (\. (\d+))? ([ab](\d+))?$c|j|}|std|z|ddddd\}}}}}|r+t t t |||g|_n,t t t ||gdz|_|r|dt |f|_dSd|_dS) Nzinvalid version number '%s')rr) version_rematch ValueErrorgrouptuplemapintversion prerelease)r r r5majorminorpatchr<prerelease_nums r rzStrictVersion.parses%%g.. F:WDEE E KK1aA & & :uj.  B S5%*?!@!@AADLL S5%.!9!9::TADL  #)!}c..A.ABDOOO"DOOOrcR|jddkr6dtt|jdd}n-dtt|j}|jr+||jdzt|jdz}|S)Nr0r.r/)r;joinr9rr<r s r __str__zStrictVersion.__str__s <?a  hhs3 QqS(9::;;GGhhs3 5566G ? M 22S9K5L5LLGrct|trt|}nt|tstS|j|jkr|j|jkrdSdS|js |jsdS|jr |jsdS|js |jrdS|jr-|jr(|j|jkrdS|j|jkrdSdSdSdS)Nr/r) isinstancerr-rr;r<r rs r rzStrictVersion._cmps  eS ! ! "!%((EEE=11 "! ! <5= ( (|em++rq +(8 +1o +e&6 +2/ +e&6 +1o +%"2 +%"222q5#333rq  + + + +rN) rr)r*recompileVERBOSEASCIIr4rrDrr+rr r-r-]sk!FHJ133J###&   "+"+"+"+"+rr-c\eZdZ ejdejZddZdZdZ dZ dZ dS) LooseVersionz(\d+ | [a-z]+ | \.)Nc8|r||dSdSrrr s r r zLooseVersion.__init__0rrc||_d|j|D}t|D](\}} t |||<#t $rY%wxYw||_dS)Nc"g|] }|r|dk | S)rBr+).0xs r z&LooseVersion.parse..:s0111A!"1'(Cxx'/xxr)r component_resplit enumerater:r6r;)r r componentsiobjs r rzLooseVersion.parse5s 11!2!8!8!A!A111  ++  FAs  #C 1     " sA A! A!c|jSr)r rs r rDzLooseVersion.__str__Es |rc&dt|zS)NzLooseVersion ('%s'))rrs r rzLooseVersion.__repr__Is$s4yy00rct|trt|}nt|tstS|j|jkrdS|j|jkrdS|j|jkrdSdS)NrrFr/)rGrrNrr;rHs r rzLooseVersion._cmpMs eS ! ! " ''EEE<00 "! ! <5= ( (1 <%- ' '2 <%- ' '1 ( 'rr) rr)r*rIrJrKrUr rrDrrr+rr rNrN s>2:4bjAAL    " " " 111     rrN)rIrr-rNr+rr r^s& ********|k+k+k+k+k+Wk+k+k+`KKKKKGKKKKKrPK!N](b(b.__pycache__/msvccompiler.cpython-311.opt-2.pycnu[ 0i[. ddlZddlZddlmZmZmZmZmZddlm Z m Z ddl m Z dZ ddlZdZ eZejZejZejZejZnP#e$rH ddlZddlZdZ eZejZejZejZejZn#e$re jdYnwxYwYnwxYwe rejejejejfZ dZ!d Z"d Z#Gd d Z$d Z%dZ&dZ'Gdde Z(e%dkr e j)de(Z*ddl+m(Z(ddl+m$Z$dSdS)N)DistutilsExecErrorDistutilsPlatformError CompileErrorLibError LinkError) CCompilergen_lib_options)logFTzWarning: Can't read registry to find the necessary compiler setting Make sure that Python modules winreg, win32api or win32con are installed.c t||}n#t$rYdSwxYwg}d} t||}n#t$rYnwxYw|||dz }=|SNrT) RegOpenKeyExRegError RegEnumKeyappend)basekeyhandleLiks =/opt/alt/python311/lib64/python3.11/distutils/msvccompiler.py read_keysr6s'dC(( tt A A 61%%AA    E    Q  Hs ""< A A c t||}n#t$rYdSwxYwi}d} t||\}}}n#t$rYn=wxYw|}t ||t |<|dz }_|Sr )rr RegEnumValuelower convert_mbcs)rrrdrnamevaluetypes r read_valuesr"GsdC(( tt A A  ,VQ 7 7 D%    E zz|| ,U 3 3,t   Q Hs ""A A  A cft|dd}| |d}n#t$rYnwxYw|S)Ndecodembcs)getattr UnicodeError)sdecs rrr\sQ !Xt $ $C  F AA    D  Hs ! ..c&eZdZdZdZdZdZdS) MacroExpanderc>i|_||dSN)macros load_macros)selfversions r__init__zMacroExpander.__init__fs#  !!!!!cjtD]*}t||}|r|||jd|z<dS+dS)Nz$(%s))HKEYSr"r.)r0macropathrrrs r set_macrozMacroExpander.set_macrojsR  DD$''A /0v GeO,   r3c d|z}|d|dzd|d|dzdd}|d|d  |d kr|d |d n|d |d n!#t$r}tdd}~wwxYwd}tD]Y} t ||}n#t $rY wxYwt |d}t||d|} | d|jd<ZdS)Nz%Software\Microsoft\VisualStudio\%0.1f VCInstallDirz \Setup\VC productdir VSInstallDirz \Setup\VSz Software\Microsoft\.NETFramework FrameworkDir installrootg@FrameworkSDKDirzsdkinstallrootv1.1sdkinstallrootaPython was built with Visual Studio 2003; extensions must be built with a compiler than can generate compatible binaries. Visual Studio 2003 was not found on this system. If you have Cygwin installed, you can try compiling with MingW32, by passing "-c mingw32" to setup.py.z.Software\Microsoft\NET Framework Setup\Productr\r1z$(FrameworkVersion)) r8KeyErrorrr5rrrr"r.) r0r1vsbasenetexcprhrrs rr/zMacroExpander.load_macrosqsq9GC ~v ' > >D  q))    Q""CDaaa"566A129DK- . . > >s*5B B(B##B(7C CCcp|jD]\}}|||}|Sr-)r.itemsreplace)r0r(rvs rsubzMacroExpander.subs;K%%''  DAq !QAAr3N)__name__ __module__ __qualname__r2r8r/rLr3rr+r+esP""">>>8r3r+cx d}tj|}|dkrdS|t|z}tj|ddd\}}t |dddz }|dkr|dz }t |dd d z }|dkrd }|dkr||zSdS) NzMSC v. r g$@r)sysr1findlensplitint)prefixrr(rest majorVersion minorVersions rget_build_versionrbs F   ABwwq CKKAk!""o##C++GAtq"v;;?Lr q1v;;%Lq ql** 4r3c d}tj|}|dkrdStjd|}tj|t|z|S)Nz bit (rRIntel))rYr1rZr[)r^rjs rget_build_architecturergsc F   ABwww a  A ;qV}Q ''r3c g}|D]:}tj|}||vr||;|Sr-)osr7normpathr)paths reduced_pathsrFnps rnormalize_and_reduce_pathsrnsX M %% W  a  ] " "   $ $ $ r3ceZdZ dZiZdgZgdZdgZdgZeezezezZ dZ dZ dZ d Z d xZZd Zdd ZdZ ddZ ddZ d dZ d!dZdZdZdZd"dZdZd#dZdZdS)$ MSVCCompilermsvcz.c)z.ccz.cppz.cxx.rcz.mcz.resz.objz.libz.dllz%s%sz.exercNtj||||t|_t |_|jdkrC|jdkr!d|_t|j|_nd|_d|jz|_ nd|jdzz|_ d|_ dS) NrdzSoftware\Microsoft\VisualStudiozSoftware\Microsoft\DevstudiozVisual Studio version %szMicrosoft SDK compiler %srSF) rr2rb_MSVCCompiler__versionrg_MSVCCompiler__arch_MSVCCompiler__rootr+_MSVCCompiler__macros_MSVCCompiler__product initialized)r0verbosedry_runforces rr2zMSVCCompiler.__init__sD'7E:::*,,,.. ;' ! !~""@ -dn = = = 7$.HDNN9DNQQ  )))D % %)))D %!*lsAF F#"F#c|d}g}|D]s}tj|\}}tj|d}|tj|d}||jvrt d|z|rtj|}||jvr<| tj |||j z||j vr=| tj |||j z8| tj |||j zu|S)Nrr zDon't know how to compile %s)rir7splitext splitdriveisabssrc_extensionsrbasename_rc_extensionsrr res_extension_mc_extensions obj_extension)r0source_filenames strip_dir output_dir obj_namessrc_namerexts robject_filenameszMSVCCompiler.object_filenames7s  Bz ( L LH'**H55KT37%%d++A.D d++,,-D$---#$BX$MNNN /w''..d)))  "',, 04t7I0I#K#KLLLL+++  "',, 04t7I0I#K#KLLLL  "',, 04t7I0I#K#KLLLLr3Nc |js||||||||} | \}} }} } |pg} | d|r| |jn| |j| D];} | |\}}n#t$rYwxYw|rtj |}||j vrd|z}n||j vrd|z}n||j vrQ|}d|z} ||jg| z|gz|gzn!#t $r}t#|d}~wwxYw||jvrtj |}tj |} ||jgd|d|gz|gztj tj |\}}tj ||dz}||jgd|zgz|gzn!#t $r}t#|d}~wwxYwt#d|d |d |z} ||jg| z| z||gz|z#t $r}t#|d}~wwxYw| S) Nz/cz/Tcz/Tpz/foz-hz-rrrzDon't know how to compile z to z/Fo)rzr_setup_compilerextendrrrBrir7abspath _c_extensions_cpp_extensionsrspawnrrrrdirnamerrrrr)r0sourcesrr. include_dirsdebug extra_preargsextra_postargsdepends compile_infoobjectspp_optsbuild compile_optsobjsrcr input_opt output_optmsgh_dirrc_dirr_rc_files rcompilezMSVCCompiler.compileVs  OO   **:v|+2G^MM :F7%$* T"""  6    : ; ; ; ;    4 5 5 5? (? (C  :SS     +gooc**d(((!CK ,,,!CK +++ "S[ ,JJy72 *| ,/8k :;;;;),,,&s+++,+++,,-- ,JJy $eT6: ;>AU CDDD g..0@0@#0F0FGGGD! gllFD5LAAGJJy % } -07y 9::::*,,,&s+++,#l&)cc33$0111J ( DG9|3g=%z23)*++++& ( ( ("3''' (s[ B  B-,B-&D)) E3EEB.I I! II!)J,, K 6KK c|js||||\}}|||}|||rN|d|zgz}|r ||jg|zdS#t$r}t|d}~wwxYwtj d|dS)N)r/OUT:skipping %s (up-to-date)) rzr_fix_object_argslibrary_filename _need_linkrrrrr r) r0routput_libnamerr target_langoutput_filenamelib_argsrs rcreate_static_libzMSVCCompiler.create_static_libs  OO    $ 5 5gz J J*//;E0GG ??7O 4 4 C'O";!<> :D7L"6  5 IIN2334 5 5 5#4#/1E#,..  ! gll:GGO ??7O 4 4, Ci2226"7;GG"1!""5GG2"7GG"1GK&," 5 5"":#34444)K7")O";!<=G)&(g&6&6G$$_55'7'7#7 gllGOOGAJ//))(3355  [ 8999 ,+  /~... KK88 9 9 9 % DK=7233333% % % %nn$ % I0/ B B B B Bs<I I:&I55I:c d|zS)Nz /LIBPATH:rPr0dirs rlibrary_dir_optionzMSVCCompiler.library_dir_options S  r3c td)Nz>'**#"NNNNN# # 4r3c |jD]b}tjtj||}tj|r|cSctjddD]b}tjtj||}tj|r|cSc|S)NPathr)rrir7rrisfilerr\)r0exerFfns rrzMSVCCompiler.find_exe4s   Abgooa00#66Bw~~b!!   F#))#..  Abgooa0055Bw~~b!!    r3x86c tsgS|dz}|jdkrd|j|jfz}n |jd|d}tD]q}t ||}|r]|jdkr5|j||dcS||dcSr|jdkr9tD]1}t |d|jz|d n2gS) Nz dirsrtz6%s\%0.1f\VC\VC_OBJECTS_PLATFORM_INFO\Win32\Directoriesz.\6.0\Build System\Components\Platforms\Win32 (z )\DirectoriesrrSz%s\6.0zIt seems you have Visual Studio 6 installed, but the expected registry settings are not present. You must at least run the Visual Studio GUI once so that these entries are created.) _can_read_regrurwr5r"rxrLr\r)r0r7platformrrrs rrzMSVCCompiler.get_msvc_pathsJsE  Ig~ >Q  Lk4>23CC26hhhHC . .DD#&&A .>Q&&=,,QtW55;;C@@@@@T7==-----  . >Q    tY%<==III=>>>E J  r3c |dkr|d}n||}|r$d|tj|<dSdS)Nrlibraryr)rrrir)r0rrFs rrzMSVCCompiler.set_path_env_varnsh 5==##I..AA##D))A  +"xx{{BJt    + +r3)rrr)rr)NNNrNNN)NrN) NNNNNrNNNN)r)r)rMrNrO compiler_type executablesrrrrrrrstatic_lib_extensionshared_lib_extensionstatic_lib_formatshared_lib_format exe_extensionr2rrrrrrrrrrrrrPr3rrprps6MKFM---OWNWN$o5$%'56NMM!!,22)M!!!!$< < < D$%$&@HIAERRRRp&* !&* CCCC:"&  LCLCLCLCf!!!NNN***$,""""H + + + + +r3rpg @z3Importing new compiler from distutils.msvc9compiler)rp)r+),rYridistutils.errorsrrrrrdistutils.ccompilerrr distutilsr r winreghkey_mod OpenKeyExrEnumKeyr EnumValuererrorr ImportErrorwin32apiwin32coninfo HKEY_USERSHKEY_CURRENT_USERHKEY_LOCAL_MACHINEHKEY_CLASSES_ROOTr5rr"rr+rbrgrnrprOldMSVCCompilerdistutils.msvc9compilerrPr3rr's''''''''''''''         8MMMMH#LJ#L|HH8888 , ( , > 8887 8 8 8 8 888")   '  (  ' )E    "   *   ++++++++Z2 ( ( (   s+s+s+s+s+9s+s+s+l # CICDDD"O44444455555555 s5$AB(A=<B=BBBBBPK!Q2'2'*__pycache__/dir_util.cpython-311.opt-1.pycnu[ 0ibjdZddlZddlZddlmZmZddlmZiad dZ d dZ dd Z d Z dd Z d ZdS)zWdistutils.dir_util Utility functions for manipulating directories and directory trees.N)DistutilsFileErrorDistutilsInternalError)logc t|tstd|dtj|}g}tj|s|dkr|Sttj |r|Stj |\}}|g}|r||rztj|s[tj |\}}| d||r!|rtj|[|D]}tj ||}tj |} t| r]|dkrtjd||s tj||nk#t $r^} | jt"jkrtj|s t'd|d| jd Yd } ~ nd } ~ wwxYw||dt| <|S) aCreate a directory and any missing ancestor directories. If the directory already exists (or if 'name' is the empty string, which means the current directory, which of course exists), then do nothing. Raise DistutilsFileError if unable to create some directory along the way (eg. some sub-path exists, but is a file rather than a directory). If 'verbose' is true, print a one-line summary of each mkdir to stdout. Return the list of directories actually created. z%mkpath: 'name' must be a string (got )rrz creating %szcould not create '': N) isinstancestrrospathnormpathisdir _path_createdgetabspathsplitinsertjoinrinfomkdirOSErrorerrnoEEXISTrargsappend) namemodeverbosedry_run created_dirsheadtailtailsdabs_headexcs 9/opt/alt/python311/lib64/python3.11/distutils/dir_util.pymkpathr,sq dC D$$<@DDBDD D 7  D ! !DL w}}Tdbjj..//7==&<4 FE 4 d 3 3w}}T** t Q 4 d 3 3$$w||D!$$7??4((   X & &   a<< H]D ) ) ) & Nt$$$$ N N N U\11bgmmD6I6I1,,9=sx||LNNN21111 N    % % %"# h s G  I*AIIc t}|D]R}|tj|tj|St |D]}t||||dS)aCreate all the empty directories under 'base_dir' needed to put 'files' there. 'base_dir' is just the name of a directory which doesn't necessarily exist yet; 'files' is a list of filenames to be interpreted relative to 'base_dir'. 'base_dir' + the directory portion of every file in 'files' will be created if it doesn't already exist. 'mode', 'verbose' and 'dry_run' flags are as for 'mkpath()'. r"r#N)setaddrrrdirnamesortedr,)base_dirfilesr!r"r#need_dirfiledirs r+ create_treer8PsuuHDD RW\\(BGOOD,A,ABBCCCCh<<sD'7;;;;;<<c ddlm}|s1tj|st d|z tj|} n6#t$r)} |rg} nt d|d| jYd} ~ nd} ~ wwxYw|st||g} | D]I} tj || } tj || }| drY|r|tj | r]tj | }|d krtjd |||stj||| |tj| r,| t'| ||||||| "|| |||||| | |K| S) aCopy an entire directory tree 'src' to a new location 'dst'. Both 'src' and 'dst' must be directory names. If 'src' is not a directory, raise DistutilsFileError. If 'dst' does not exist, it is created with 'mkpath()'. The end result of the copy is that every file in 'src' is copied to 'dst', and directories under 'src' are recursively copied to 'dst'. Return the list of files that were copied or might have been copied, using their output name. The return value is unaffected by 'update' or 'dry_run': it is simply the list of all files under 'src', with the names changed to be under 'dst'. 'preserve_mode' and 'preserve_times' are the same as for 'copy_file'; note that they only apply to regular files, not to directories. If 'preserve_symlinks' is true, symlinks will be copied as symlinks (on platforms that support them!); otherwise (the default), the destination of the symlink will be copied. 'update' and 'verbose' are the same as for 'copy_file'. r) copy_filez&cannot copy tree '%s': not a directoryzerror listing files in 'r N)r"z.nfsrzlinking %s -> %sr.)distutils.file_utilr;rrrrlistdirrstrerrorr,r startswithislinkreadlinkrrsymlinkrextend copy_tree)srcdst preserve_modepreserve_timespreserve_symlinksupdater"r#r;nameseoutputsnsrc_namedst_name link_dests r+rDrDcsR*.----- >27==--> 6<>> >I 3 III  IEE$$7:ssAJJGII I EEEEI %sG$$$$G %%7<<Q''7<<Q'' <<      %!9!9 % H--I!||+XyAAA 0 9h/// NN8 $ $ $ $ W]]8 $ $ % NN(Hm(*;V")7<<< = = = = Ih-$fg% ' ' ' ' NN8 $ $ $ $ NsA BA>>Bctj|D]}tj||}tj|r0tj|st ||q|tj|f|tj |fdS)zHelper for remove_tree().N) rr=rrrr@_build_cmdtuplerremovermdir)r cmdtuplesfreal_fs r+rSrSs Z  22d1%% 7==  2)?)? 2 FI . . . .   bi0 1 1 1 1 bh%&&&&&r9ch|dkrtjd||rdSg}t|||D]}} |d|dtj|d}|t vrt |=Q#t$r }tjd||Yd}~vd}~wwxYwdS)zRecursively remove an entire directory tree. Any errors are ignored (apart from being reported to stdout if 'verbose' is true). rz'removing '%s' (and everything under it)Nrzerror removing %s: %s) rrrSrrrrrwarn) directoryr"r#rVcmdrr*s r+ remove_treer]s!|| :IFFFIIy)))>> > CF3q6NNNgooc!f--G-''!'* > > > H,i = = = = = = = = >>>sA B B/B**B/ctj|\}}|ddtjkr ||ddz}|S)zTake the full path 'path', and make it a relative path. This is useful to make 'path' the second argument to os.path.join(). rrN)rr splitdrivesep)rdrives r+ensure_relativerbsI '$$T**KE4 AaCyBFtABBx Kr9)rrr)rrrrrr)rr)__doc__rrdistutils.errorsrr distutilsrrr,r8rDrSr]rbr9r+rgsGG GGGGGGGG ====~<<<<&9:@ACCCCJ'''>>>>0r9PK!LIq&&&__pycache__/dist.cpython-311.opt-2.pycnu[ 0i ddlZddlZddlZddlmZ ddlZn #e$rdZYnwxYwddlTddlm Z m Z ddl m Z m Z mZddlmZddlmZejdZd ZGd d ZGd d ZdZdS)N)message_from_file)*) FancyGetopttranslate_longopt) check_environ strtobool rfc822_escapelog)DEBUGz^[a-zA-Z]([a-zA-Z0-9_]*)$ct|trn`t|tsKt|j}d|d|d}t jt j|t|}|S)Nz Warning: 'z' should be a list, got type '') isinstancestrlisttype__name__r WARN)value fieldnametypenamemsgs 5/opt/alt/python311/lib64/python3.11/distutils/dist.py _ensure_listrsu%  t $ $;;'O9OOHOOO #U  LceZdZ gdZdZgdZdeDZddiZd)dZd Z d*d Z d Z d)d Z dZ dZdZdZddgfdZdZdZdZdZdZdZd+dZd)dZd,dZejfdZdZd Zd!Z d"Z!d#Z"d$Z#d%Z$d&Z%d'Z&d(Z'dS)- Distribution))verbosevzrun verbosely (default))quietqz!run quietly (turns verbosity off))zdry-runnzdon't actually do anything)helphzshow detailed help message)z no-user-cfgNz-ignore pydistutils.cfg in your home directoryzCommon commands: (see '--help-commands' for more) setup.py build will build the package underneath 'build/' setup.py install will install the package ))z help-commandsNzlist all available commands)nameNzprint package name)versionVzprint package version)fullnameNzprint -)authorNzprint the author's name) author-emailNz print the author's email address) maintainerNzprint the maintainer's name)zmaintainer-emailNz$print the maintainer's email address)contactNz7print the maintainer's name if known, else the author's)z contact-emailNz@print the maintainer's email address if known, else the author's)urlNzprint the URL for this package)licenseNz print the license of the package)licenceNzalias for --license) descriptionNzprint the package description)zlong-descriptionNz"print the long package description) platformsNzprint the list of platforms) classifiersNzprint the list of classifiers)keywordsNzprint the list of keywords)providesNz+print the list of packages/modules provided)requiresNz+print the list of packages/modules required) obsoletesNz0print the list of packages/modules made obsoletec8g|]}t|dSrr).0xs r zDistribution.s%MMM-ad33MMMrr!rNc  d|_d|_d|_|jD]}t ||dt |_|jjD]+}d|z}t ||t|j|,i|_ d|_ d|_ d|_ i|_ g|_d|_i|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_i|_i|_|r|d}|S|d=|D];\}}| |}|D] \} } d| f|| < >*Wk#33G<> c)7(= >E!!#(#3i )$R'M#&&&&J$$S4Z000$kkmm ' ' c4=&3,77'8GDM6C<88====T]C00'DM34444T3'''D#s++++;d3iiGCM#&&&&"   ''  ~~c**E/))).D&E* rcX |j|}| ix}|j|<|SN)rPra)rnrsdicts rrczDistribution.get_option_dict&s; #''00 <35 5D4'0 rr@cddlm}|&t|j}||||z|dz}|s||dzdS|D]}|j|}|||d|zz:||d|zz||}|dD]}||dz|zdS)Nr)pformatz zno commands known yetzno option dict for '%s' commandzoption dict for '%s' command:rB)pprintrsortedrPkeysannouncerasplit) rnheadercommandsindentrcmd_nameruoutlines rdump_option_dictszDistribution.dump_option_dicts1sZ""""""  d27799::H   MM&6/ * * *d]F  MM&#:: ; ; ; F 8 8H+//99H f?(JKLLLL f=HIJJJgh''IIdOO88DMM&4-$"677778 8 8rc" g}ttjtjdj}tj|d}tj|r| |tj dkrd}nd}|j rqtjtj d|}tj|r| |d}tj|r| |tr+|dd |z|S) N distutilsz distutils.cfgposixz.pydistutils.cfgzpydistutils.cfg~z setup.cfgzusing config files: %sz, )rospathdirnamerfmodules__file__joinisfileappendr&rk expanduserr r)rnfilessys_dirsys_file user_filename user_file local_files rfind_config_fileszDistribution.find_config_filesMsK '//#+k":"CDD7<<99 7>>( # # # LL " " " 7g  .MM-M   ( RW%7%7%<%>* % % % LL $ $ $  G MM2TYYu5E5EE F F F rcddlm}tjtjkrgd}ng}t |}||}tr|d|}|D]}tr|d|z| || D]n}| |}| |}|D]?} | dkr7| |vr3| || } | dd} || f|| <@o|d |jvr|jd D]\} \} } |j | } | r t'|| t)|  n4| d vrt'|| t)| nt'|| | z#t*$r} t-| d} ~ wwxYwdSdS) Nr) ConfigParser) z install-basezinstall-platbasez install-libzinstall-platlibzinstall-purelibzinstall-headerszinstall-scriptsz install-dataprefixz exec-prefixhomeuserrootz"Distribution.parse_config_files():z reading %srrD_global)rrE) configparserrrfr base_prefix frozensetrr rreadsectionsrArcrareplacerzrPrb negative_optrGr ValueErrorDistutilsOptionError)rn filenamesrignore_optionsparserfilenamesectionrArurvrwsrcaliasrs rparse_config_fileszDistribution.parse_config_files}so------ : ( ((((NN  N">22  ..00I  @ MM> ? ? ?!  H 9 nx7888 KK ! ! !!??,, 8 8 ..11//88"88Cj((S-F-F$jj55!kk#s33)13 8 OO     t+ + +%)%9(%C%I%I%K%K 4 4!jsC)--c2240e3-?@@@@ 666c9S>>::::c3///!444.s3334 , + 4 4sAG%% H/G>>Hcn |}g|_t||jz}||j|ddi||j|}| }tj |j | |rdS|r|||}|dS||jr5||t#|jdk|jdS|jst%ddS)Nr0r/)argsobjectrdisplay_optionsrzno commands suppliedT)_get_toplevel_optionsrrrset_negative_aliasesr set_aliasesgetoptrOget_option_orderr set_verbosityrhandle_display_options_parse_command_optsr$ _show_helplenDistutilsArgError)rntoplevel_optionsrr option_orders rparse_command_linezDistribution.parse_command_lines] , 5577 -0DDEE##D$5666Iy1222}}$"24}@@..00  $,'''  & &| 4 4  F ++FD99D|  9  OOF,/ ,>,>!,C%)]  4 4 4 F} <#$:;; ;trc |jdgzS)N)zcommand-packages=Nz0list of packages that provide distutils commands)global_optionsrns rrz"Distribution._get_toplevel_optionss$ " A& rc ddlm}|d}t|st d|z|j| ||}n!#t$r}t|d}~wwxYwt||std|zt|drt|jtsd}t||z|j}t|dr.|}||jt|dr/t|jtrt)|j}ng}||j|jz|z||||d d\}} t| d r"| jr||d|g dSt|drt|jtrjd} |jD]\\} } } }t| || r2d } t9|r |Ftd |d | d]| rdS||}t=| D] \}}d|f||< |S)NrCommandzinvalid command name '%s'z&command class %s must subclass Command user_optionszIcommand class %s must provide 'user_options' attribute (a list of tuples)r help_optionsr r$rzinvalid help function z for help option 'z-': must be a callable object (function, etc.)z command line) distutils.cmdr command_rematch SystemExitrrget_command_classDistutilsModuleErrorr issubclassDistutilsClassErrorrirrrrcopyupdaterfix_help_optionsset_option_tablerrrr$r get_attr_namecallablercvarsrb)rnrrrrs cmd_classrrroptshelp_option_found help_optionshortdescfuncrur&rs rrz Distribution._parse_command_optssZ  *)))))q'(( D87BCC C W%%%  )..w77II# ) ) )#C(( ( ) )W-- F%89DFF F  >22 791488 7>C%cIo66 6( 9n - - 8',,..L    6 7 7 7 I~ . . 91488 +I,BCCLLL  3 ) 6!7 ,!- . . . ##L111}}T!""X.. t 4  TY  OOFA O L L L F I~ . . 91488  4=4J 3 30eT44!5!5k!B!BCC3&'%~~311 $tt[[[2333 3! ''00!$ZZ--// 5 5MT5,e4HTNN sA-- B 7BB c dD]d}t|j|}|t|tr5d|dD}t |j||edS)Nr4r2c6g|]}|Sstrip)r;elms rr=z1Distribution.finalize_options..js AAAAAAr,)rKrIrrrrG)rnrprs rrmzDistribution.finalize_options`s . 4 4DDM400E}%%% 4AA C0@0@AAA tU333  4 4rr cj ddlm}ddlm}|r_|r|}n|j}||||jdztd|r>||j |dtd|j D]}t|trt||r|} n||} t!| drJt| jt$r0|| jt)| jzn|| j|d| jztdt||jdS) Nr gen_usagerz Global options:r@zKInformation display options (just display information, ignore any commands)rzOptions for '%s' command:)distutils.corerrrrrr print_help common_usageprintrrrrrrrirrrrrrN) rnrrrrrrrArsklasss rrzDistribution._show_helpms  -,,,,,))))))   .4466-  # #G , , ,   d/2EE F F F "III    # #D$8 9 9 9   4 5 5 5 "III}  G'4(( 8Z-I-I 8..w77~.. <u1488 <''(:(89K(L(L)MNNNN''(:;;;   9ENJ K K K "IIII ii())*****rc2 ddlm}|jrB|t dt ||jdSd}i}|jD] }d||d<|D]\}}|r||rt|}t|j d|z}|dvr#t d |n6|dvr#t d |nt |d}|S) Nrrr@r r?rr)r3r5r6r7rB) rr help_commandsprint_commandsrrNrrarrKrIr) rnrrany_display_optionsis_display_optionoptionrvrwrs rrz#Distribution.handle_display_optionss` -,,,,,       ! ! ! "III ))D,-- . . .1  * - -F+, fQi ( (& ( (JS# ((,,S11 (',,: vcz::<<333#((5//*******$))E**++++%LLL&'#""rc t|dz|D]c}|j|}|s||} |j}n#t $rd}YnwxYwtd|||fzddS)N:(no description available)z %-*s %s)rrLrarr1AttributeError)rnrr max_lengthcmdrr1s rprint_command_listzDistribution.print_command_lists  fsl A ACM%%c**E 4..s33 ;#/ ! ; ; ;:  ; ,*c;!?? @ @ @ @ A As A A! A!c ddl}|jj}i}|D]}d||<g}|jD],}||s||-d}||zD]$}t||krt|}%||d||r't||d|dSdS)Nrr zStandard commandszExtra commands) distutils.commandrs__all__rLrrarrrr)rnr std_commandsis_stdrextra_commandsrs rrzDistribution.print_commandss%  !    (0   CF3KK=%%'' + +C::c?? +%%c***  >1 & &C3xx*$$ XX   3 * , , ,  0 GGG  # #N$4$. 0 0 0 0 0 0 0rc ddl}|jj}i}|D]}d||<g}|jD],}||s||-g}||zD]e}|j|}|s||} |j}n#t$rd}YnwxYw|||ff|S)Nrr r) rrsr rLrrarrr1r) rnrr r rr rvrr1s rget_command_listzDistribution.get_command_lists#  !    (0   CF3KK=%%'' + +C::c?? +%%c***  >1 * *CM%%c**E 4..s33 ;#/ ! ; ; ;:  ; IIsK( ) ) ) ) s!B)) B87B8c |j}t|tsD|d}d|dD}d|vr|dd||_|S)Nr@cBg|]}|dk|S)r@r)r;pkgs rr=z5Distribution.get_command_packages..!s%HHHCcRiiCIIKKiiirrzdistutils.commandr)rMrrrinsert)rnpkgss rget_command_packagesz!Distribution.get_command_packagesssG$$%% )|HH4::c??HHHD"$.. A2333$(D ! rc  |j|}|r|S|D]}|d|}|} t|tj|}n#t $rY:wxYw t||}n'#t$rtd|d|d|dwxYw||j|<|cStd|z)N.zinvalid command 'z ' (no class 'z ' in module 'z')zinvalid command '%s') rLrar __import__rfr ImportErrorrKrr)rnrsrpkgname module_name klass_namemodules rrzDistribution.get_command_class's%  !!'**  L0022  G%,WWgg6K J ;'''[1     : 33! : : :**ww KKK9::: : &+DM' "LLL"#9G#CDDDs!A"" A/.A/3B$B(cN |j|}|s|rtr|d|z||}||x}|j|<d|j|<|j|}|r||||S)Nz.|s6CCC!"/q11CCCrz error in z : command 'z' has no such option 'r)get_command_namercr rrbboolean_optionsrrrrrGrrirr) rnr_ option_dict command_namersourcer bool_optsneg_opt is_stringrs rrz!Distribution._set_command_optionshs< #3355  ..|<N>N:NOOOOy((Y(K51A1ABBBB[&11:K7777..!66<<<9::: 0 0 0*3/// 05 0 0s=B"" B10B15B== C  C B!E33 F=F  Frcp ddlm}t||s|}||}n|}|js|S|d|_d|j|<|||r-| D]}| |||S)Nrr) rrrr"r' finalizedinitialize_optionsr`rget_sub_commandsreinitialize_command)rnrsreinit_subcommandsrr*subs rr3z!Distribution.reinitialize_commands $ *)))))'7++ 6"L**<88GG"3355L  N""$$$&' l# !!'***  C//11 C C))#/ABBBBrc0tj||dSr|r )rnrlevels rrzDistribution.announces srcF |jD]}||dSr|)r run_command)rnrs r run_commandszDistribution.run_commandss; = " "C   S ! ! ! ! " "rc |j|rdStjd|||}||d|j|<dS)Nz running %sr )r`rar infor"ensure_finalizedrun)rnrsr!s rr9zDistribution.run_commands|  =  W % %  F w'''&&w//  """ !" grcDt|jp|jpgdkSNr)rrRrUrs rhas_pure_moduleszDistribution.has_pure_moduless#4=9DO9r::Q>>rc@|jot|jdkSr@)rXrrs rhas_ext_moduleszDistribution.has_ext_moduless =C(8$9$9A$==rc@|jot|jdkSr@)rVrrs rhas_c_librarieszDistribution.has_c_librariess~9#dn"5"5"99rcR|p|Sr|)rArCrs r has_moduleszDistribution.has_moduless%$$&&@$*>*>*@*@@rc@|jot|jdkSr@)rWrrs r has_headerszDistribution.has_headers|5DL 1 1A 55rc@|jot|jdkSr@)r\rrs r has_scriptszDistribution.has_scriptsrJrc@|jot|jdkSr@)r]rrs rhas_data_fileszDistribution.has_data_filess;3t#7#7!#;;rc~|o)| o| Sr|)rArCrErs ris_purezDistribution.is_puresD%%''+((***+((*** ,rr|)NNr@)r r9)(r __module__ __qualname__rrrrFrrzrcrrrrrrrmrrrrrrrr"rr3r INFOrr:r9rArCrErGrIrLrNrPrrrrr,s *NL+ + + OXNM_MMMY'L\ \ \ \ |   88888...`64646464tAAAF   YYYv 4 4 41210+0+0+0+d&#&#&#PAAA"000BD   $E$E$EL6*0*0*0*0X%%%%R#&("""###(???>>>:::AAA666666<<<,,,,,rrceZdZ dZd"dZdZdZdZdZdZ d Z d Z d Z d Z d ZdZdZdZdZdZeZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!d Z"d!Z#dS)#rH)r&r'r* author_emailr,maintainer_emailr.r/r1long_descriptionr4r2r)r- contact_emailr3 download_urlr5r6r7Nc@|$|t|dSd|_d|_d|_d|_d|_d|_d|_d|_ d|_ d|_ d|_ d|_ d|_d|_d|_d|_d|_dSr|) read_pkg_fileopenr&r'r*rUr,rVr.r/r1rWr4r2r3rYr5r6r7)rnrs rrzzDistributionMetadata.__init__ s     tDzz * * * * *DIDLDK $D "DO$(D !DHDL#D $(D ! DM!DN#D  $D  DM DM!DNNNrc t|fd}fd}d}|d|_|d|_|d|_|d|_d|_|d|_d|_|d |_|d |_ d vr|d |_ nd|_ |d |_ |d|_d vr#|d  d|_ |d|_|d|_|dkr2|d|_|d|_|d|_dSd|_d|_d|_dS)Nc(|}|dkrdS|SNUNKNOWNr)r&rrs r _read_fieldz7DistributionMetadata.read_pkg_file.._read_field(s!IE !!tLrcD|d}|gkrdS|Sr|)get_all)r&valuesrs r _read_listz6DistributionMetadata.read_pkg_file.._read_list.s)[[t,,F||tMrzmetadata-versionr&r'summaryr*r+z home-pager/z download-urlr1r4rplatform classifier1.1r6r5r7)rr&r'r1r*r,rUrVr.r/rYrWrr4r2r3r6r5r7)rnfileraremetadata_versionrs @rr[z"DistributionMetadata.read_pkg_file$s;%%            12K'' "{9-- &;y11!k(++ 'K77 $;{++"{9-- S + N ; ;D   $D  + M : :&;y11   'K 3399#>>DM#J//%:l33 u $ $&Jz22DM&Jz22DM'Z 44DNNN DM DM!DNNNrc ttj|ddd5}||ddddS#1swxYwYdS)NzPKG-INFOwzUTF-8)encoding)r\rrrwrite_pkg_file)rnbase_dirpkg_infos rwrite_pkg_infoz#DistributionMetadata.write_pkg_infoXs "',,x44c"$$$ *'/    ) ) ) * * * * * * * * * * * * * * * * * *sAAAc d}|js|js|js|js|jrd}|d|z|d|z|d|z|d|z|d| z|d| z|d | z|d | z|jr|d |jzt|}|d |zd |}|r|d|z||d|||d|||d|||d|||d|dS)Nz1.0rizMetadata-Version: %s z Name: %s z Version: %s z Summary: %s zHome-page: %s z Author: %s zAuthor-email: %s z License: %s zDownload-URL: %s zDescription: %s rz Keywords: %s Platform ClassifierRequiresProvides Obsoletes)r5r6r7r3rYrhget_name get_versionget_descriptionget_url get_contactget_contact_email get_licenser get_long_descriptionr get_keywords _write_list get_platformsget_classifiers get_requires get_provides get_obsoletes)rnrjr' long_descr4s rroz#DistributionMetadata.write_pkg_file_s  M T] dn   $($5 G +g5666 <$--//1222 ?T%5%5%7%77888 ?T%9%9%;%;;<<< $t||~~5666 >D$4$4$6$66777 '$*@*@*B*BBCCC ?T%5%5%7%77888   A JJ+d.?? @ @ @!$";";"="=>>  &233388D--//00  4 JJ'(2 3 3 3 z4+=+=+?+?@@@ |T-A-A-C-CDDD z4+<+<+>+>??? z4+<+<+>+>??? {D,>,>,@,@AAAAArcF|D]}||d|ddS)Nz: rB)rh)rnrjr&rdrs rrz DistributionMetadata._write_lists= 3 3E JJTTT5551 2 2 2 2 3 3rc|jpdSr_)r&rs rryzDistributionMetadata.get_namesy%I%rc|jpdS)Nz0.0.0)r'rs rrzz DistributionMetadata.get_versions|&w&rcX|d|S)NrD)ryrzrs r get_fullnamez!DistributionMetadata.get_fullnames(--////4+;+;+=+=+=>>rc|jpdSr_)r*rs r get_authorzDistributionMetadata.get_authors{'i'rc|jpdSr_)rUrs rget_author_emailz%DistributionMetadata.get_author_email -I-rc|jpdSr_)r,rs rget_maintainerz#DistributionMetadata.get_maintainers+)+rc|jpdSr_)rVrs rget_maintainer_emailz)DistributionMetadata.get_maintainer_email$1 1rc"|jp|jpdSr_)r,r*rs rr}z DistributionMetadata.get_contacts:$+::rc"|jp|jpdSr_)rVrUrs rr~z&DistributionMetadata.get_contact_emails$F(9FYFrc|jpdSr_)r.rs rr|zDistributionMetadata.get_urlsx$9$rc|jpdSr_)r/rs rrz DistributionMetadata.get_licenses|(y(rc|jpdSr_)r1rs rr{z$DistributionMetadata.get_descriptions,9,rc|jpdSr_)rWrs rrz)DistributionMetadata.get_long_descriptionrrc|jpgSr|)r4rs rrz!DistributionMetadata.get_keywords}""rc0t|d|_dS)Nr4)rr4rnrs r set_keywordsz!DistributionMetadata.set_keywordss$UJ77 rc|jpdgSr_)r2rs rrz"DistributionMetadata.get_platformss~,),rc0t|d|_dS)Nr2)rr2rs r set_platformsz"DistributionMetadata.set_platformss%e[99rc|jpgSr|)r3rs rrz$DistributionMetadata.get_classifierss%2%rc0t|d|_dS)Nr3)rr3rs rset_classifiersz$DistributionMetadata.set_classifierss'}==rc|jpdSr_)rYrs rget_download_urlz%DistributionMetadata.get_download_urlrrc|jpgSr|)r6rs rrz!DistributionMetadata.get_requiresrrctddl}|D]}|j|t||_dSr@)distutils.versionpredicateversionpredicateVersionPredicaterr6rnrrrs r set_requiresz!DistributionMetadata.set_requiressH)))) ; ;A  & 7 7 : : : :U  rc|jpgSr|)r5rs rrz!DistributionMetadata.get_providesrrcrd|D}|D] }ddl}|j|!||_dS)Nc6g|]}|Srr)r;rs rr=z5DistributionMetadata.set_provides..s ***q***rr)rrsplit_provisionr5)rnrrrs r set_providesz!DistributionMetadata.set_providessU**E*** : :A - - - -  & 6 6q 9 9 9 9 rc|jpgSr|)r7rs rrz"DistributionMetadata.get_obsoletess~##rctddl}|D]}|j|t||_dSr@)rrrrr7rs r set_obsoletesz"DistributionMetadata.set_obsoletessH)))) ; ;A  & 7 7 : : : :err|)$rrQrRrJrzr[rrrorryrzrrrrrr}r~r|r get_licencer{rrrrrrrrrrrrrrrrrrHrHs"""".2"2"2"h*** B B BD333 &&&'''???(((...,,,222;;;GGG%%%)))K---222###888---:::&&&>>>...###$$$ ###$$$%%%%%rrHcP g}|D]}||dd |S)Nr)r)rA new_options help_tuples rrrsBK,, :ac?++++ r)rfrreemailrrdrdistutils.errorsdistutils.fancy_getoptrrdistutils.utilrrr rr distutils.debugr compilerrrrHrrrrrss  ######OOOOHHHAAAAAAAABBBBBBBBBB!!!!!! RZ4 5 5    J,J,J,J,J,J,J,J,f`%`%`%`%`%`%`%`%Ds $$PK!gj!CC%__pycache__/ccompiler.cpython-311.pycnu[ 0i:dZddlZddlZddlZddlTddlmZddlmZddl m Z ddl m Z ddl mZmZdd lmZGd d Zd Zdd ZddddddZdZddZdZdZdS)zdistutils.ccompiler Contains CCompiler, an abstract base class that defines the interface for the Distutils compiler abstraction model.N)*)spawn) move_file)mkpath) newer_group) split_quotedexecute)logceZdZdZdZdZdZdZdZdZ dZ dZ ddddddZ gdZ dAd Zd Zd Zd Zd ZdBdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!dBdZ"dZ#dZ$d Z%d!Z& dCd"Z' dDd#Z(d$Z) dEd%Z*d&Z+d'Z,d(Z- dFd)Z. dFd*Z/ dFd+Z0 dGd,Z1d-Z2d.Z3d/Z4 dHd0Z5dId1Z6dJd3Z7dJd4Z8dJd5Z9 dKd7Z:dLd9Z;d:Zd=Z?d>Z@dNd@ZAdS)O CCompileraAbstract base class to define the interface that must be implemented by real compiler classes. Also has some utility methods used by several compiler classes. The basic idea behind a compiler abstraction class is that each instance can be used for all the compile/link steps in building a single project. Thus, attributes common to all of those compile and link steps -- include directories, macros to define, libraries to link against, etc. -- are attributes of the compiler instance. To allow for variability in how individual files are treated, most of those attributes may be varied on a per-compilation or per-link basis. Ncc++objc).cz.ccz.cppz.cxxz.m)rrr rc ||_||_||_d|_g|_g|_g|_g|_g|_g|_ |j D]#}| ||j |$dSN) dry_runforceverbose output_dirmacros include_dirs libraries library_dirsruntime_library_dirsobjects executableskeysset_executable)selfrrrkeys :/opt/alt/python311/lib64/python3.11/distutils/ccompiler.py__init__zCCompiler.__init__Us     %'! #((** < K  DAw$ FAAtr$c|D]~}t|trOt|dvr>t|dts|dt|dtst d|zdzdzdS)zEnsures that every element of 'definitions' is a valid macro definition, ie. either (name,value) 2-tuple or a (name,) tuple. Do nothing if all definitions are OK, raise TypeError otherwise. )r1r1Nrzinvalid macro definition '%s': z.must be tuple (string,), (string, string), or z(string, None))r,tuplelenr- TypeError)r definitionsr4s r"_check_macro_definitionsz"CCompiler._check_macro_definitionss   ( (DtU++ (YY&((!47C00)48GOQ--5D!BT!IF!G&!'(((5D ( (r$c|||}||j|=|j||fdS)a_Define a preprocessor macro for all compilations driven by this compiler object. The optional parameter 'value' should be a string; if it is not supplied, then the macro will be defined without an explicit value and the exact outcome depends on the compiler used (XXX true? does ANSI say anything about this?) Nr5rappend)r r2r/r3s r" define_macrozCCompiler.define_macrosE   d # # = A D%=)))))r$c~||}||j|=|f}|j|dS)aUndefine a preprocessor macro for all compilations driven by this compiler object. If the same macro is defined by 'define_macro()' and undefined by 'undefine_macro()' the last call takes precedence (including multiple redefinitions or undefinitions). If the macro is redefined/undefined on a per-compilation basis (ie. in the call to 'compile()'), then that takes precedence. Nr>)r r2r3undefns r"undefine_macrozCCompiler.undefine_macrosH   d # # = A 6"""""r$c:|j|dS)zAdd 'dir' to the list of directories that will be searched for header files. The compiler is instructed to search directories in the order in which they are supplied by successive calls to 'add_include_dir()'. N)rr?r dirs r"add_include_dirzCCompiler.add_include_dir!   %%%%%r$c$|dd|_dS)aySet the list of directories that will be searched to 'dirs' (a list of strings). Overrides any preceding calls to 'add_include_dir()'; subsequence calls to 'add_include_dir()' add to the list passed to 'set_include_dirs()'. This does not affect any list of standard include directories that the compiler may search by default. Nrr dirss r"set_include_dirszCCompiler.set_include_dirss!Gr$c:|j|dS)aAdd 'libname' to the list of libraries that will be included in all links driven by this compiler object. Note that 'libname' should *not* be the name of a file containing a library, but the name of the library itself: the actual filename will be inferred by the linker, the compiler, or the compiler class (depending on the platform). The linker will be instructed to link against libraries in the order they were supplied to 'add_library()' and/or 'set_libraries()'. It is perfectly valid to duplicate library names; the linker will be instructed to link against libraries as many times as they are mentioned. N)rr?)r libnames r" add_libraryzCCompiler.add_librarys  g&&&&&r$c$|dd|_dS)zSet the list of libraries to be included in all links driven by this compiler object to 'libnames' (a list of strings). This does not affect any standard system libraries that the linker may include by default. N)r)r libnamess r" set_librarieszCCompiler.set_librariess "!!!r$c:|j|dS)a'Add 'dir' to the list of directories that will be searched for libraries specified to 'add_library()' and 'set_libraries()'. The linker will be instructed to search for libraries in the order they are supplied to 'add_library_dir()' and/or 'set_library_dirs()'. N)rr?rEs r"add_library_dirzCCompiler.add_library_dirrHr$c$|dd|_dS)zSet the list of library search directories to 'dirs' (a list of strings). This does not affect any standard library search path that the linker may search by default. N)rrKs r"set_library_dirszCCompiler.set_library_dirs s !Gr$c:|j|dS)zlAdd 'dir' to the list of directories that will be searched for shared libraries at runtime. N)rr?rEs r"add_runtime_library_dirz!CCompiler.add_runtime_library_dirs! !((-----r$c$|dd|_dS)zSet the list of directories to search for shared libraries at runtime to 'dirs' (a list of strings). This does not affect any standard search path that the runtime linker may search by default. N)rrKs r"set_runtime_library_dirsz"CCompiler.set_runtime_library_dirss %)G!!!r$c:|j|dS)zAdd 'object' to the list of object files (or analogues, such as explicitly named library files or the output of "resource compilers") to be included in every link driven by this compiler object. N)rr?)r objects r"add_link_objectzCCompiler.add_link_object s F#####r$c$|dd|_dS)zSet the list of object files (or analogues) to be included in every link to 'objects'. This does not affect any standard object files that the linker may include by default (such as system libraries). N)r)r rs r"set_link_objectszCCompiler.set_link_objects(s qqqz r$c:||j}n$t|tstd||j}n1t|t r ||jpgz}ntd||j}nEt|t tfrt ||jpgz}ntd|g}||d|}t|t|ksJt||}i} tt|D]p} || } || } tj | d} |tj | | | f| | <q||||| fS)z;Process arguments and decide which source files to compile.N%'output_dir' must be a string or None/'macros' (if supplied) must be a list of tuples6'include_dirs' (if supplied) must be a list of stringsr) strip_dirrr1)rr,r-r:rlistrr8object_filenamesr9gen_preprocess_optionsrangeospathsplitextrdirname)r outdirrincdirssourcesdependsextrarpp_optsbuildr3srcobjexts r"_setup_compilezCCompiler._setup_compile6s >_FFFC(( ECDD D >[FF  % % Ot{0b1FFMNN N ?'GG $ / / L7mmt'8'>B?GGJLL L =E''139(;;7||s7||++++(99s7||$$ $ $A!*C!*C'""3''*C KK,, - - -sE#JJww55r$c8|dgz}|rdg|dd<|r||dd<|S)Nz-cz-gr)r rsdebugbeforecc_argss r" _get_cc_argszCCompiler._get_cc_argsas?TF"  !&GBQBK  ! GBQBKr$c|||j}n$t|tstd||j}n1t|t r ||jpgz}ntd||j}nEt|t tfrt ||jpgz}ntd|||fS)a'Typecheck and fix-up some of the arguments to the 'compile()' method, and return fixed-up values. Specifically: if 'output_dir' is None, replaces it with 'self.output_dir'; ensures that 'macros' is a list, and augments it with 'self.macros'; ensures that 'include_dirs' is a list, and augments it with 'self.include_dirs'. Guarantees that the returned values are of the correct type, i.e. for 'output_dir' either string or None, and for 'macros' and 'include_dirs' either list or None. Nrbrcrd)rr,r-r:rrfrr8)r rrrs r"_fix_compile_argszCCompiler._fix_compile_argsjs  JJJ,, ECDD D >[FF  % % Ot{0b1FFMNN N  ,LL  tUm 4 4 L --1B1HbILLJLL L6<//r$c||||}t|t|ksJ|ifS)a,Decide which source files must be recompiled. Determine the list of object files corresponding to 'sources', and figure out which ones really need to be recompiled. Return a list of all object files and a dictionary telling which source files can be skipped. )r)rgr9)r rprrqrs r" _prep_compilezCCompiler._prep_compilesE''J'GG7||s7||++++{r$ct|ttfstdt|}||j}n$t|t std||fS)zTypecheck and fix up some arguments supplied to various methods. Specifically: ensure that 'objects' is a list; if output_dir is None, replace with self.output_dir. Return fixed versions of 'objects' and 'output_dir'. z,'objects' must be a list or tuple of stringsNrb)r,rfr8r:rr-)r rrs r"_fix_object_argszCCompiler._fix_object_argssq 'D%=11 LJKK Kw--  JJJ,, ECDD D$$r$c||j}nEt|ttfrt||jpgz}nt d||j}nEt|ttfrt||jpgz}nt d||j}nEt|ttfrt||jpgz}nt d|||fS)a;Typecheck and fix up some of the arguments supplied to the 'link_*' methods. Specifically: ensure that all arguments are lists, and augment them with their permanent versions (eg. 'self.libraries' augments 'libraries'). Return a tuple with fixed versions of all arguments. Nz3'libraries' (if supplied) must be a list of stringsz6'library_dirs' (if supplied) must be a list of stringsz>'runtime_library_dirs' (if supplied) must be a list of strings)rr,rfr8r:rr)r rrrs r" _fix_lib_argszCCompiler._fix_lib_argss1  II  D%= 1 1 Ii((DN,@bAIIGII I  ,LL  tUm 4 4 L..$2C2IrJLLJLL L '#'#< ,tUm < < 9$()=$>$>%)%>%D"%F 899 9<)=>>r$cl|jrdS|jrt||d}nt||}|S)zjReturn true if we need to relink the files listed in 'objects' to recreate 'output_file'. Tnewer)missing)rrr)r r output_filers r" _need_linkzCCompiler._need_linksG : 4| ;#Wk7KKK#Wk::Lr$cNt|ts|g}d}t|j}|D]s}tj|\}}|j|} |j |}||kr|}|}d#t$rYpwxYw|S)z|Detect the language of a given file, or list of files. Uses language_map, and language_order to do the job. N) r,rfr9language_orderrjrkrl language_mapgetindexr&) r rplangrsourcebaserwextlangextindexs r"detect_languagezCCompiler.detect_languages'4(( iGD'((  F((00ID#'++C00G .44W==e##"D$E     s0$B B"!B"cdS)aPreprocess a single C/C++ source file, named in 'source'. Output will be written to file named 'output_file', or stdout if 'output_file' not supplied. 'macros' is a list of macro definitions as for 'compile()', which will augment the macros set with 'define_macro()' and 'undefine_macro()'. 'include_dirs' is a list of directory names that will be added to the default list. Raises PreprocessError on failure. Nrz)r rrrr extra_preargsextra_postargss r" preprocesszCCompiler.preprocesss  r$c |||||||\}} }} } || ||} | D]9} | | \}}n#t$rYwxYw|| ||| || :| S)aK Compile one or more source files. 'sources' must be a list of filenames, most likely C/C++ files, but in reality anything that can be handled by a particular compiler and compiler class (eg. MSVCCompiler can handle resource files in 'sources'). Return a list of object filenames, one per source filename in 'sources'. Depending on the implementation, not all source files will necessarily be compiled, but all corresponding object filenames will be returned. If 'output_dir' is given, object files will be put under it, while retaining their original path component. That is, "foo/bar.c" normally compiles to "foo/bar.o" (for a Unix implementation); if 'output_dir' is "build", then it would compile to "build/foo/bar.o". 'macros', if given, must be a list of macro definitions. A macro definition is either a (name, value) 2-tuple or a (name,) 1-tuple. The former defines a macro; if the value is None, the macro is defined without an explicit value. The 1-tuple case undefines a macro. Later definitions/redefinitions/ undefinitions take precedence. 'include_dirs', if given, must be a list of strings, the directories to add to the default include file search path for this compilation only. 'debug' is a boolean; if true, the compiler will be instructed to output debug symbols in (or alongside) the object file(s). 'extra_preargs' and 'extra_postargs' are implementation- dependent. On platforms that have the notion of a command-line (e.g. Unix, DOS/Windows), they are most likely lists of strings: extra command-line arguments to prepend/append to the compiler command line. On other platforms, consult the implementation class documentation. In any event, they are intended as an escape hatch for those occasions when the abstract compiler framework doesn't cut the mustard. 'depends', if given, is a list of filenames that all targets depend on. If a source file is older than any file in depends, then the source file will be recompiled. This supports dependency tracking, but only at a coarse granularity. Raises CompileError on failure. )rxr~KeyError_compile)r rprrrr{rrrqrrsrtr}rvrurws r"compilezCCompiler.compilesl##J g$+^== 8%##GUMBB K KC  :SS     MM#sC.' J J J Js A  AAcdS)zCompile 'src' to product 'obj'.Nrz)r rvrurwr}rrss r"rzCCompiler._compileCs  r$cdS)a&Link a bunch of stuff together to create a static library file. The "bunch of stuff" consists of the list of object files supplied as 'objects', the extra object files supplied to 'add_link_object()' and/or 'set_link_objects()', the libraries supplied to 'add_library()' and/or 'set_libraries()', and the libraries supplied as 'libraries' (if any). 'output_libname' should be a library name, not a filename; the filename will be inferred from the library name. 'output_dir' is the directory where the library file will be put. 'debug' is a boolean; if true, debugging information will be included in the library (note that on most platforms, it is the compile step where this matters: the 'debug' flag is included here just for consistency). 'target_lang' is the target language for which the given objects are being compiled. This allows specific linkage time treatment of certain languages. Raises LibError on failure. Nrz)r routput_libnamerr{ target_langs r"create_static_libzCCompiler.create_static_libIs 0 r$ shared_objectshared_library executablect)auLink a bunch of stuff together to create an executable or shared library file. The "bunch of stuff" consists of the list of object files supplied as 'objects'. 'output_filename' should be a filename. If 'output_dir' is supplied, 'output_filename' is relative to it (i.e. 'output_filename' can provide directory components if needed). 'libraries' is a list of libraries to link against. These are library names, not filenames, since they're translated into filenames in a platform-specific way (eg. "foo" becomes "libfoo.a" on Unix and "foo.lib" on DOS/Windows). However, they can include a directory component, which means the linker will look in that specific directory rather than searching all the normal locations. 'library_dirs', if supplied, should be a list of directories to search for libraries that were specified as bare library names (ie. no directory component). These are on top of the system default and those supplied to 'add_library_dir()' and/or 'set_library_dirs()'. 'runtime_library_dirs' is a list of directories that will be embedded into the shared library and used to search for other shared libraries that *it* depends on at run-time. (This may only be relevant on Unix.) 'export_symbols' is a list of symbols that the shared library will export. (This appears to be relevant only on Windows.) 'debug' is as for 'compile()' and 'create_static_lib()', with the slight distinction that it actually matters on most platforms (as opposed to 'create_static_lib()', which includes a 'debug' flag mostly for form's sake). 'extra_preargs' and 'extra_postargs' are as for 'compile()' (except of course that they supply command-line arguments for the particular linker being used). 'target_lang' is the target language for which the given objects are being compiled. This allows specific linkage time treatment of certain languages. Raises LinkError on failure. NotImplementedError)r target_descroutput_filenamerrrrexport_symbolsr{rr build_temprs r"linkzCCompiler.linkis r"!r$c |tj|||d||||||| | | | dS)Nshared)lib_type)rr SHARED_LIBRARYlibrary_filename) r rrrrrrrr{rrrrs r"link_shared_libzCCompiler.link_shared_libs_ )*G'''JJ\+? %[  J J J J Jr$c \|tj||||||||| | | | dSr)rr SHARED_OBJECT) r rrrrrrrr{rrrrs r"link_shared_objectzCCompiler.link_shared_objectsK ))7!:\+? %[  J J J J Jr$c |tj|||||||d||| d| dSr)rr EXECUTABLEexecutable_filename) r routput_prognamerrrrr{rrrs r"link_executablezCCompiler.link_executablesX )&**?;;Z\+?k K K K K Kr$ct)zkReturn the compiler option to add 'dir' to the list of directories searched for libraries. rrEs r"library_dir_optionzCCompiler.library_dir_option "!r$ct)zsReturn the compiler option to add 'dir' to the list of directories searched for runtime libraries. rrEs r"runtime_library_dir_optionz$CCompiler.runtime_library_dir_optionrr$ct)zReturn the compiler option to add 'lib' to the list of libraries linked into the shared library or executable. r)r libs r"library_optionzCCompiler.library_optionrr$cddl}|g}|g}|g}|g}|d|d\}}tj|d} |D]} | d| z| d|z| n#| wxYw ||g| } n#t$rYd SwxYw || d || n#ttf$rYd SwxYwdS) zReturn a boolean indicating whether funcname is supported on the current platform. The optional arguments can be used to augment the compilation environment. rNrT)textwz#include "%s" z=int main (int argc, char **argv) { %s(); return 0; } rJFza.out)rr) tempfilemkstemprjfdopenwritecloser CompileErrorr LinkErrorr:) r funcnameincludesrrrrfdfnamefinclrs r" has_functionzCCompiler.has_functions~   H  L  I  L$$T8$$?? E Ib#     6 6-45555 GG      GGIIIIAGGIIII llE7lFFGG   55    '+4.: ! < < < <9%   55 ts05BB&*C CCC//DDct)aHSearch the specified list of directories for a static or shared library file 'lib' and return the full path to that file. If 'debug' true, look for a debugging version (if that makes sense on the current platform). Return None if 'lib' wasn't found in any of the specified directories. r)r rLrr{s r"find_library_filezCCompiler.find_library_file$s "!r$c|d}g}|D]}tj|\}}tj|d}|tj|d}||jvrt d|d|d|rtj|}|tj |||j z|S)Nrr1zunknown file type 'z ' (from 'z')) rjrkrl splitdriveisabssrc_extensionsUnknownFileErrorbasenamer?join obj_extension)r source_filenamesrer obj_namessrc_namerrws r"rgzCCompiler.object_filenamesOs  J ( F FH((22ID#7%%d++A.D d++,,-D$---&&>Acc888LNNN .w''--   RW\\**.1C*CEE F F F Fr$c|J|rtj|}tj|||jzSr)rjrkrrshared_lib_extensionr rrers r"shared_object_filenamez CCompiler.shared_object_filename`sI%%%  2w''11Hw||J43L(LMMMr$c|J|rtj|}tj|||jpdzS)Nr)rjrkrr exe_extensionrs r"rzCCompiler.executable_filenamefsN%%%  2w''11Hw||JD4F4L"(MNNNr$staticc|J|dvrtdt||dz}t||dz}tj|\}}|||fz} |rd}tj||| S)N)rrdylib xcode_stubz?'lib_type' must be "static", "shared", "dylib", or "xcode_stub" _lib_format_lib_extensionr)r&getattrrjrksplitr) r rOrrerfmtrwrFrfilenames r"rzCCompiler.library_filenamels%%% F F F[]] ]dH}455dH'7788GMM'** T$$  Cw||JX666r$r1c.tj|dSr)r r{)r msglevels r"announcezCCompiler.announces #r$c8ddlm}|rt|dSdS)Nr)DEBUG)distutils.debugrprint)r rrs r" debug_printzCCompiler.debug_prints5))))))   #JJJJJ  r$cJtjd|zdS)Nz warning: %s )sysstderrr)r rs r"warnzCCompiler.warns# 3./////r$c4t||||jdSr)r r)r funcargsrrs r"r zCCompiler.executesdC.....r$c2t||jdSN)r)rr)r cmds r"rzCCompiler.spawns c4<((((((r$c0t|||jSr)rr)r rudsts r"rzCCompiler.move_filesc4<8888r$c4t|||jdSr)rr)r r2modes r"rzCCompiler.mkpathstT4<000000r$)rrrr)NNNNN)NNNrNNN)NrN) NNNNNrNNNN)NNNNrNNN)NNNN)r)rr)rrr)r1)Nr1)r )Br( __module__ __qualname____doc__ compiler_typerrstatic_lib_extensionrstatic_lib_formatshared_lib_formatrrrr#r*rr5r<r@rCrGrMrPrSrUrWrYr[r^r`rxr~rrrrrrrrrrrrrrrrrrrrrrrgrrrrrrr rrrrzr$r"r r s  *M4NMM!"""# L *))N"<"<"<"-1BBBBH   EI/3    8$M%NJ "&  9"9"9"9"B$("&%)-1'+&*'+#'$(JJJJ0'+%)(,04*.!")-*.&*'+JJJJ.$("&%)-1&*'+$(KKKK,""" """ """ BF26****X""""V"NNNN OOOO 2:137777& 000////)))999111111r$r ))zcygwin.*unix)posixr)ntmsvcc| tj}| tj}tD]3\}}t j||t j|||cS4dS)akDetermine the default compiler to use for the given platform. osname should be one of the standard Python OS names (i.e. the ones returned by os.name) and platform the common value returned by sys.platform for the platform in question. The default values are os.name and sys.platform in case the parameters are not given. Nr)rjr2rplatform_default_compilersrematch)osnamerpatterncompilers r"get_default_compilerrsj~</ 8GX & & 2 8GV $ $ 0OOO 1 6r$) unixccompiler UnixCCompilerzstandard UNIX-style compiler) _msvccompiler MSVCCompilerzMicrosoft Visual C++)cygwinccompilerCygwinCCompilerz'Cygwin port of GNU C Compiler for Win32)r$Mingw32CCompilerz(Mingw32 port of GNU C Compiler for Win32) bcppcompiler BCPPCompilerzBorland C++ Compiler)rrcygwinmingw32bcppcddlm}g}tD].}|d|zdt|df/|||}|ddS)zyPrint list of available compilers (used by the "--help-compiler" options to "build", "build_ext", "build_clib"). r) FancyGetoptz compiler=Nr7zList of available compilers:)distutils.fancy_getoptr-compiler_classrr?sort print_help)r- compilersrpretty_printers r"show_compilersr4s322222I"''))88+h.(2157 8 8 8 8 NN [++N<=====r$c| tj} |t|}t|\}}}n,#t$rd|z}||d|zz}t |wxYw d|z}t |tj|} t| |} n?#t$rtd|zt$rtd|d|dwxYw| d||S) a[Generate an instance of some CCompiler subclass for the supplied platform/compiler combination. 'plat' defaults to 'os.name' (eg. 'posix', 'nt'), and 'compiler' defaults to the default compiler for that platform. Currently only 'posix' and 'nt' are supported, and the default compilers are "traditional Unix interface" (UnixCCompiler class) and Visual C++ (MSVCCompiler class). Note that it's perfectly possible to ask for a Unix compiler object under Windows, and a Microsoft compiler object under Unix -- if you supply a value for 'compiler', 'plat' is ignored. Nz5don't know how to compile C/C++ code on platform '%s'z with '%s' compilerz distutils.z4can't compile C/C++ code: unable to load module '%s'z0can't compile C/C++ code: unable to find class 'z ' in module '') rjr2rr/rDistutilsPlatformError __import__rmodulesvars ImportErrorDistutilsModuleError) platrrrr module_name class_namelong_descriptionrmoduleklasss r" new_compilerrCsJ |w *  +D11H6DX6N3j"2"2 ***EL  -88C$S))) * ="[0 K   [)V Z( "D  ===""#-::{{{<== == 5w & &&s"3)A ;BrTst11 !!!!!!))))))%%%%%%******00000000E1E1E1E1E1E1E1E1X 0?7JK7  >>>"*'*'*'*'Z***Z$$$$$r$PK!&__pycache__/dist.cpython-311.opt-1.pycnu[ 0idZddlZddlZddlZddlmZ ddlZn #e$rdZYnwxYwddlTddl m Z m Z ddl m Z mZmZddlmZddlmZejd Zd ZGd d ZGd dZdZdS)z}distutils.dist Provides the Distribution class, which represents the module distribution being built/installed/distributed. N)message_from_file)*) FancyGetopttranslate_longopt) check_environ strtobool rfc822_escapelog)DEBUGz^[a-zA-Z]([a-zA-Z0-9_]*)$ct|trn`t|tsKt|j}d|d|d}t jt j|t|}|S)Nz Warning: 'z' should be a list, got type '') isinstancestrlisttype__name__r WARN)value fieldnametypenamemsgs 5/opt/alt/python311/lib64/python3.11/distutils/dist.py _ensure_listrsu%  t $ $;;'O9OOHOOO #U  LceZdZdZgdZdZgdZdeDZddiZd*d Z d Z d+d Z d Z d*dZ dZdZdZdZddgfdZdZdZdZdZdZdZd,dZd*dZd-dZejfdZd Zd!Z d"Z!d#Z"d$Z#d%Z$d&Z%d'Z&d(Z'd)Z(dS). DistributionaThe core of the Distutils. Most of the work hiding behind 'setup' is really done within a Distribution instance, which farms the work out to the Distutils commands specified on the command line. Setup scripts will almost never instantiate Distribution directly, unless the 'setup()' function is totally inadequate to their needs. However, it is conceivable that a setup script might wish to subclass Distribution for some specialized purpose, and then pass the subclass to 'setup()' as the 'distclass' keyword argument. If so, it is necessary to respect the expectations that 'setup' has of Distribution. See the code for 'setup()', in core.py, for details. ))verbosevzrun verbosely (default))quietqz!run quietly (turns verbosity off))zdry-runnzdon't actually do anything)helphzshow detailed help message)z no-user-cfgNz-ignore pydistutils.cfg in your home directoryzCommon commands: (see '--help-commands' for more) setup.py build will build the package underneath 'build/' setup.py install will install the package ))z help-commandsNzlist all available commands)nameNzprint package name)versionVzprint package version)fullnameNzprint -)authorNzprint the author's name) author-emailNz print the author's email address) maintainerNzprint the maintainer's name)zmaintainer-emailNz$print the maintainer's email address)contactNz7print the maintainer's name if known, else the author's)z contact-emailNz@print the maintainer's email address if known, else the author's)urlNzprint the URL for this package)licenseNz print the license of the package)licenceNzalias for --license) descriptionNzprint the package description)zlong-descriptionNz"print the long package description) platformsNzprint the list of platforms) classifiersNzprint the list of classifiers)keywordsNzprint the list of keywords)providesNz+print the list of packages/modules provided)requiresNz+print the list of packages/modules required) obsoletesNz0print the list of packages/modules made obsoletec8g|]}t|dSrr).0xs r zDistribution.s%MMM-ad33MMMrr!rNc d|_d|_d|_|jD]}t ||dt |_|jjD]+}d|z}t ||t|j|,i|_ d|_ d|_ d|_ i|_ g|_d|_i|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_i|_i|_|r|d}|S|d=|D];\}}| |}|D] \} } d| f|| < >*Wk#33G<> c)7(= >E!!#(#3i )$R'M#&&&&J$$S4Z000$kkmm ' ' c4=&3,77'8GDM6C<88====T]C00'DM34444T3'''D#s++++;d3iiGCM#&&&&"   ''  ~~c**E/))).D&E* rcV|j|}| ix}|j|<|S)zGet the option dictionary for a given command. If that command's option dictionary hasn't been created yet, then create it and return the new dictionary; otherwise, return the existing option dictionary. )rPra)rnrsdicts rrczDistribution.get_option_dict&s6 #''00 <35 5D4'0 rr@cddlm}|&t|j}||||z|dz}|s||dzdS|D]}|j|}|||d|zz:||d|zz||}|dD]}||dz|zdS)Nr)pformatz zno commands known yetzno option dict for '%s' commandzoption dict for '%s' command:rB)pprintr~sortedrPkeysannouncerasplit) rnheadercommandsindentr~cmd_nameruoutlines rdump_option_dictszDistribution.dump_option_dicts1sZ""""""  d27799::H   MM&6/ * * *d]F  MM&#:: ; ; ; F 8 8H+//99H f?(JKLLLL f=HIJJJgh''IIdOO88DMM&4-$"677778 8 8rc g}ttjtjdj}tj|d}tj|r| |tj dkrd}nd}|j rqtjtj d|}tj|r| |d}tj|r| |tr+|dd |z|S) aFind as many configuration files as should be processed for this platform, and return a list of filenames in the order in which they should be parsed. The filenames returned are guaranteed to exist (modulo nasty race conditions). There are three possible config files: distutils.cfg in the Distutils installation directory (ie. where the top-level Distutils __inst__.py file lives), a file in the user's home directory named .pydistutils.cfg on Unix and pydistutils.cfg on Windows/Mac; and setup.cfg in the current directory. The file in the user's home directory can be disabled with the --no-user-cfg option. distutilsz distutils.cfgposixz.pydistutils.cfgzpydistutils.cfg~z setup.cfgzusing config files: %sz, )rospathdirnamerfmodules__file__joinisfileappendr&rk expanduserr r)rnfilessys_dirsys_file user_filename user_file local_files rfind_config_fileszDistribution.find_config_filesMsF'//#+k":"CDD7<<99 7>>( # # # LL " " " 7g  .MM-M   ( RW%7%7%<%>* % % % LL $ $ $  G MM2TYYu5E5EE F F F rcddlm}tjtjkrgd}ng}t |}||}tr|d|}|D]}tr|d|z| || D]n}| |}| |}|D]?} | dkr7| |vr3| || } | dd} || f|| <@o|d |jvr|jd D]\} \} } |j | } | r t'|| t)|  n4| d vrt'|| t)| nt'|| | z#t*$r} t-| d} ~ wwxYwdSdS) Nr) ConfigParser) z install-basezinstall-platbasez install-libzinstall-platlibzinstall-purelibzinstall-headerszinstall-scriptsz install-dataprefixz exec-prefixhomeuserrootz"Distribution.parse_config_files():z reading %srrD_global)rrE) configparserrrfr base_prefix frozensetrr rreadsectionsrArcrareplacerzrPrb negative_optrGr ValueErrorDistutilsOptionError)rn filenamesrignore_optionsparserfilenamesectionrArurvrwsrcaliasrs rparse_config_fileszDistribution.parse_config_files}so------ : ( ((((NN  N">22  ..00I  @ MM> ? ? ?!  H 9 nx7888 KK ! ! !!??,, 8 8 ..11//88"88Cj((S-F-F$jj55!kk#s33)13 8 OO     t+ + +%)%9(%C%I%I%K%K 4 4!jsC)--c2240e3-?@@@@ 666c9S>>::::c3///!444.s3334 , + 4 4sAG%% H/G>>Hcl|}g|_t||jz}||j|ddi||j|}| }tj |j | |rdS|r|||}|dS||jr5||t#|jdk|jdS|jst%ddS) aParse the setup script's command line, taken from the 'script_args' instance attribute (which defaults to 'sys.argv[1:]' -- see 'setup()' in core.py). This list is first processed for "global options" -- options that set attributes of the Distribution instance. Then, it is alternately scanned for Distutils commands and options for that command. Each new command terminates the options for the previous command. The allowed options for a command are determined by the 'user_options' attribute of the command class -- thus, we have to be able to load command classes in order to parse the command line. Any error in that 'options' attribute raises DistutilsGetoptError; any error on the command-line raises DistutilsArgError. If no Distutils commands were found on the command line, raises DistutilsArgError. Return true if command-line was successfully parsed and we should carry on with executing commands; false if no errors but we shouldn't execute commands (currently, this only happens if user asks for help). r0r/)argsobjectNrdisplay_optionsrzno commands suppliedT)_get_toplevel_optionsrrrset_negative_aliasesr set_aliasesgetoptrOget_option_orderr set_verbosityrhandle_display_options_parse_command_optsr$ _show_helplenDistutilsArgError)rntoplevel_optionsrr option_orders rparse_command_linezDistribution.parse_command_linesX. 5577 -0DDEE##D$5666Iy1222}}$"24}@@..00  $,'''  & &| 4 4  F ++FD99D|  9  OOF,/ ,>,>!,C%)]  4 4 4 F} <#$:;; ;trc|jdgzS)zReturn the non-display options recognized at the top level. This includes options that are recognized *only* at the top level as well as options recognized for commands. )zcommand-packages=Nz0list of packages that provide distutils commands)global_optionsrns rrz"Distribution._get_toplevel_optionss " A& rcddlm}|d}t|st d|z|j| ||}n!#t$r}t|d}~wwxYwt||std|zt|drt|jtsd}t||z|j}t|dr.|}||jt|d r/t|jtrt)|j}ng}||j|jz|z||||d d\}} t| d r"| jr||d|g dSt|d rt|jtrjd} |jD]\\} } } }t| || r2d } t9|r |Ftd |d| d]| rdS||}t=| D] \}}d|f||< |S)aParse the command-line options for a single command. 'parser' must be a FancyGetopt instance; 'args' must be the list of arguments, starting with the current command (whose options we are about to parse). Returns a new version of 'args' with the next command at the front of the list; will be the empty list if there are no more commands on the command line. Returns None if the user asked for help on this command. rCommandzinvalid command name '%s'Nz&command class %s must subclass Command user_optionszIcommand class %s must provide 'user_options' attribute (a list of tuples)r help_optionsr r$rzinvalid help function z for help option 'z-': must be a callable object (function, etc.)z command line) distutils.cmdr command_rematch SystemExitrrget_command_classDistutilsModuleErrorr issubclassDistutilsClassErrorrirrrrcopyupdaterfix_help_optionsset_option_tablerrrr$r get_attr_namecallablercvarsrb)rnrrrrs cmd_classrrroptshelp_option_found help_optionshortdescfuncrur&rs rrz Distribution._parse_command_optssU *)))))q'(( D87BCC C W%%%  )..w77II# ) ) )#C(( ( ) )W-- F%89DFF F  >22 791488 7>C%cIo66 6( 9n - - 8',,..L    6 7 7 7 I~ . . 91488 +I,BCCLLL  3 ) 6!7 ,!- . . . ##L111}}T!""X.. t 4  TY  OOFA O L L L F I~ . . 91488  4=4J 3 30eT44!5!5k!B!BCC3&'%~~311 $tt[[[2333 3! ''00!$ZZ--// 5 5MT5,e4HTNN sA,, B 6BB cdD]d}t|j|}|t|tr5d|dD}t |j||edS)zSet final values for all the options on the Distribution instance, analogous to the .finalize_options() method of Command objects. r4r2Nc6g|]}|Sstrip)r;elms rr=z1Distribution.finalize_options..js AAAAAAr,)rKrIrrrrG)rnrprs rrmzDistribution.finalize_options`s| . 4 4DDM400E}%%% 4AA C0@0@AAA tU333  4 4rr chddlm}ddlm}|r_|r|}n|j}||||jdztd|r>||j |dtd|j D]}t|trt||r|} n||} t!| drJt| jt$r0|| jt)| jzn|| j|d| jztdt||jd S) abShow help for the setup script command-line in the form of several lists of command-line options. 'parser' should be a FancyGetopt instance; do not expect it to be returned in the same state, as its option table will be reset to make it generate the correct help text. If 'global_options' is true, lists the global options: --verbose, --dry-run, etc. If 'display_options' is true, lists the "display-only" options: --name, --version, etc. Finally, lists per-command help for every command name or command class in 'commands'. r gen_usagerz Global options:r@zKInformation display options (just display information, ignore any commands)rzOptions for '%s' command:N)distutils.corerrrrrr print_help common_usageprintrrrrrrrirrrrrrN) rnrrrrrrrArsklasss rrzDistribution._show_helpms -,,,,,))))))   .4466-  # #G , , ,   d/2EE F F F "III    # #D$8 9 9 9   4 5 5 5 "III}  G'4(( 8Z-I-I 8..w77~.. <u1488 <''(:(89K(L(L)MNNNN''(:;;;   9ENJ K K K "IIII ii())*****rc0ddlm}|jrB|t dt ||jdSd}i}|jD] }d||d<|D]\}}|r||rt|}t|j d|z}|dvr#t d |n6|dvr#t d |nt |d}|S) zIf there were any non-global "display-only" options (--help-commands or the metadata display options) on the command line, display the requested info and return true; else return false. rrr@r r?rr)r3r5r6r7rB) rr help_commandsprint_commandsrrNrrarrKrIr) rnrrany_display_optionsis_display_optionoptionrvrwrs rrz#Distribution.handle_display_optionss[ -,,,,,       ! ! ! "III ))D,-- . . .1  * - -F+, fQi ( (& ( (JS# ((,,S11 (',,: vcz::<<333#((5//*******$))E**++++%LLL&'#""rct|dz|D]c}|j|}|s||} |j}n#t $rd}YnwxYwtd|||fzddS)zZPrint a subset of the list of all commands -- used by 'print_commands()'. :(no description available)z %-*s %sN)rrLrarr1AttributeError)rnrr max_lengthcmdrr1s rprint_command_listzDistribution.print_command_lists fsl A ACM%%c**E 4..s33 ;#/ ! ; ; ;:  ; ,*c;!?? @ @ @ @ A As A A A cddl}|jj}i}|D]}d||<g}|jD],}||s||-d}||zD]$}t||krt|}%||d||r't||d|dSdS)anPrint out a help message listing all available commands with a description of each. The list is divided into "standard commands" (listed in distutils.command.__all__) and "extra commands" (mentioned in self.cmdclass, but not a standard command). The descriptions come from the command class attribute 'description'. rNr zStandard commandszExtra commands) distutils.commandrs__all__rLrrarrrr)rnr std_commandsis_stdrextra_commandsrs rrzDistribution.print_commandss  !    (0   CF3KK=%%'' + +C::c?? +%%c***  >1 & &C3xx*$$ XX   3 * , , ,  0 GGG  # #N$4$. 0 0 0 0 0 0 0rcddl}|jj}i}|D]}d||<g}|jD],}||s||-g}||zD]e}|j|}|s||} |j}n#t$rd}YnwxYw|||ff|S)a>Get a list of (command, description) tuples. The list is divided into "standard commands" (listed in distutils.command.__all__) and "extra commands" (mentioned in self.cmdclass, but not a standard command). The descriptions come from the command class attribute 'description'. rNr r) rrsrrLrrarrr1r) rnrr r rr rvrr1s rget_command_listzDistribution.get_command_lists !    (0   CF3KK=%%'' + +C::c?? +%%c***  >1 * *CM%%c**E 4..s33 ;#/ ! ; ; ;:  ; IIsK( ) ) ) ) s B(( B76B7c|j}t|tsD|d}d|dD}d|vr|dd||_|S)z9Return a list of packages from which commands are loaded.Nr@cBg|]}|dk|S)r@r)r;pkgs rr=z5Distribution.get_command_packages..!s%HHHCcRiiCIIKKiiirrzdistutils.commandr)rMrrrinsert)rnpkgss rget_command_packagesz!Distribution.get_command_packagessp$$%% )|HH4::c??HHHD"$.. A2333$(D ! rc |j|}|r|S|D]}|d|}|} t|tj|}n#t $rY:wxYw t||}n'#t$rtd|d|d|dwxYw||j|<|cStd|z)aoReturn the class that implements the Distutils command named by 'command'. First we check the 'cmdclass' dictionary; if the command is mentioned there, we fetch the class object from the dictionary and return it. Otherwise we load the command module ("distutils.command." + command) and fetch the command class from the module. The loaded class is also stored in 'cmdclass' to speed future calls to 'get_command_class()'. Raises DistutilsModuleError if the expected module could not be found, or if that module does not define the expected class. .zinvalid command 'z ' (no class 'z ' in module 'z')zinvalid command '%s') rLrar __import__rfr ImportErrorrKrr)rnrsrpkgname module_name klass_namemodules rrzDistribution.get_command_class's  !!'**  L0022  G%,WWgg6K J ;'''[1     : 33! : : :**ww KKK9::: : &+DM' "LLL"#9G#CDDDs!A!! A.-A.2B$B'cL|j|}|s|rtr|d|z||}||x}|j|<d|j|<|j|}|r||||S)aReturn the command object for 'command'. Normally this object is cached on a previous call to 'get_command_obj()'; if no command object for 'command' is in the cache, then we either create and return it (if 'create' is true) or return None. z.|s6CCC!"/q11CCCrz error in z : command 'z' has no such option 'r)get_command_namercr rrbboolean_optionsrrrrrGrrirr) rnr_ option_dict command_namersourcer bool_optsneg_opt is_stringrs rrz!Distribution._set_command_optionshs7#3355  ..|<N>N:NOOOOy((Y(K51A1ABBBB[&11:K7777..!66<<<9::: 0 0 0*3/// 05 0 0s=B!! B0/B04B<< C  C B!E22 F<F  Frcnddlm}t||s|}||}n|}|js|S|d|_d|j|<|||r-| D]}| |||S)aReinitializes a command to the state it was in when first returned by 'get_command_obj()': ie., initialized but not yet finalized. This provides the opportunity to sneak option values in programmatically, overriding or supplementing user-supplied values from the config files and command line. You'll have to re-finalize the command object (by calling 'finalize_options()' or 'ensure_finalized()') before using it for real. 'command' should be a command name (string) or command object. If 'reinit_subcommands' is true, also reinitializes the command's sub-commands, as declared by the 'sub_commands' class attribute (if it has one). See the "install" command for an example. Only reinitializes the sub-commands that actually matter, ie. those whose test predicates return true. Returns the reinitialized command object. rr) rrrr!r& finalizedinitialize_optionsr`rget_sub_commandsreinitialize_command)rnrsreinit_subcommandsrr)subs rr2z!Distribution.reinitialize_commands& *)))))'7++ 6"L**<88GG"3355L  N""$$$&' l# !!'***  C//11 C C))#/ABBBBrc0tj||dSNr )rnrlevels rrzDistribution.announces srcD|jD]}||dS)zRun each command that was seen on the setup script command line. Uses the list of commands found and cache of command objects created by 'get_command_obj()'. N)r run_command)rnrs r run_commandszDistribution.run_commandss6 = " "C   S ! ! ! ! " "rc|j|rdStjd|||}||d|j|<dS)aDo whatever it takes to run a command (including nothing at all, if the command has already been run). Specifically: if we have already created and run the command named by 'command', return silently without doing anything. If the command named by 'command' doesn't even have a command object yet, create one. Then invoke 'run()' on that command object (or an existing one). Nz running %sr )r`rar infor!ensure_finalizedrun)rnrsr s rr9zDistribution.run_commandsw =  W % %  F w'''&&w//  """ !" grcDt|jp|jpgdkSNr)rrRrUrs rhas_pure_moduleszDistribution.has_pure_moduless#4=9DO9r::Q>>rc@|jot|jdkSr@)rXrrs rhas_ext_moduleszDistribution.has_ext_moduless =C(8$9$9A$==rc@|jot|jdkSr@)rVrrs rhas_c_librarieszDistribution.has_c_librariess~9#dn"5"5"99rcR|p|Sr6)rArCrs r has_moduleszDistribution.has_moduless%$$&&@$*>*>*@*@@rc@|jot|jdkSr@)rWrrs r has_headerszDistribution.has_headers|5DL 1 1A 55rc@|jot|jdkSr@)r\rrs r has_scriptszDistribution.has_scriptsrJrc@|jot|jdkSr@)r]rrs rhas_data_fileszDistribution.has_data_filess;3t#7#7!#;;rc~|o)| o| Sr6)rArCrErs ris_purezDistribution.is_puresD%%''+((***+((*** ,rr6)NNr@)r r9))r __module__ __qualname____doc__rrrrFrrzrcrrrrrrrmrrrrrrrr!rr2r INFOrr:r9rArCrErGrIrLrNrPrrrrr,s  *NL+ + + OXNM_MMMY'L\ \ \ \ |   88888...`64646464tAAAF   YYYv 4 4 41210+0+0+0+d&#&#&#PAAA"000BD   $E$E$EL6*0*0*0*0X%%%%R#&("""###(???>>>:::AAA666666<<<,,,,,rrceZdZdZdZd#dZdZdZdZdZ d Z d Z d Z d Z d ZdZdZdZdZdZdZeZdZdZdZdZdZdZdZdZdZdZdZ dZ!d Z"d!Z#d"Z$dS)$rHz]Dummy class to hold the distribution meta-data: name, version, author, and so forth. )r&r'r* author_emailr,maintainer_emailr.r/r1long_descriptionr4r2r)r- contact_emailr3 download_urlr5r6r7Nc@|$|t|dSd|_d|_d|_d|_d|_d|_d|_d|_ d|_ d|_ d|_ d|_ d|_d|_d|_d|_d|_dSr6) read_pkg_fileopenr&r'r*rVr,rWr.r/r1rXr4r2r3rZr5r6r7)rnrs rrzzDistributionMetadata.__init__ s     tDzz * * * * *DIDLDK $D "DO$(D !DHDL#D $(D ! DM!DN#D  $D  DM DM!DNNNrct|fd}fd}d}|d|_|d|_|d|_|d|_d|_|d |_d|_|d |_|d |_ d vr|d |_ nd|_ |d |_ |d|_dvr#|d d|_ |d|_|d|_|dkr2|d|_|d|_|d|_dSd|_d|_d|_dS)z-Reads the metadata values from a file object.c(|}|dkrdS|SNUNKNOWNr)r&rrs r _read_fieldz7DistributionMetadata.read_pkg_file.._read_field(s!IE !!tLrcD|d}|gkrdS|Sr6)get_all)r&valuesrs r _read_listz6DistributionMetadata.read_pkg_file.._read_list.s)[[t,,F||tMrzmetadata-versionr&r'summaryr*Nr+z home-pager/z download-urlr1r4rplatform classifier1.1r6r5r7)rr&r'r1r*r,rVrWr.r/rZrXrr4r2r3r6r5r7)rnfilerbrfmetadata_versionrs @rr\z"DistributionMetadata.read_pkg_file$s%%            12K'' "{9-- &;y11!k(++ 'K77 $;{++"{9-- S + N ; ;D   $D  + M : :&;y11   'K 3399#>>DM#J//%:l33 u $ $&Jz22DM&Jz22DM'Z 44DNNN DM DM!DNNNrcttj|ddd5}||ddddS#1swxYwYdS)z7Write the PKG-INFO file into the release tree. zPKG-INFOwzUTF-8)encodingN)r]rrrwrite_pkg_file)rnbase_dirpkg_infos rwrite_pkg_infoz#DistributionMetadata.write_pkg_infoXs"',,x44c"$$$ *'/    ) ) ) * * * * * * * * * * * * * * * * * *sAAAcd}|js|js|js|js|jrd}|d|z|d|z|d|z|d|z|d| z|d| z|d | z|d | z|jr|d |jzt|}|d |zd |}|r|d|z||d|||d|||d|||d|||d|dS)z9Write the PKG-INFO format data to a file object. z1.0rjzMetadata-Version: %s z Name: %s z Version: %s z Summary: %s zHome-page: %s z Author: %s zAuthor-email: %s z License: %s zDownload-URL: %s zDescription: %s rz Keywords: %s Platform ClassifierRequiresProvides ObsoletesN)r5r6r7r3rZrhget_name get_versionget_descriptionget_url get_contactget_contact_email get_licenser get_long_descriptionr get_keywords _write_list get_platformsget_classifiers get_requires get_provides get_obsoletes)rnrkr' long_descr4s rrpz#DistributionMetadata.write_pkg_file_s M T] dn   $($5 G +g5666 <$--//1222 ?T%5%5%7%77888 ?T%9%9%;%;;<<< $t||~~5666 >D$4$4$6$66777 '$*@*@*B*BBCCC ?T%5%5%7%77888   A JJ+d.?? @ @ @!$";";"="=>>  &233388D--//00  4 JJ'(2 3 3 3 z4+=+=+?+?@@@ |T-A-A-C-CDDD z4+<+<+>+>??? z4+<+<+>+>??? {D,>,>,@,@AAAAArcF|D]}||d|ddS)Nz: rB)rh)rnrkr&rers rrz DistributionMetadata._write_lists= 3 3E JJTTT5551 2 2 2 2 3 3rc|jpdSr`)r&rs rrzzDistributionMetadata.get_namesy%I%rc|jpdS)Nz0.0.0)r'rs rr{z DistributionMetadata.get_versions|&w&rcX|d|S)NrD)rzr{rs r get_fullnamez!DistributionMetadata.get_fullnames(--////4+;+;+=+=+=>>rc|jpdSr`)r*rs r get_authorzDistributionMetadata.get_authors{'i'rc|jpdSr`)rVrs rget_author_emailz%DistributionMetadata.get_author_email -I-rc|jpdSr`)r,rs rget_maintainerz#DistributionMetadata.get_maintainers+)+rc|jpdSr`)rWrs rget_maintainer_emailz)DistributionMetadata.get_maintainer_email$1 1rc"|jp|jpdSr`)r,r*rs rr~z DistributionMetadata.get_contacts:$+::rc"|jp|jpdSr`)rWrVrs rrz&DistributionMetadata.get_contact_emails$F(9FYFrc|jpdSr`)r.rs rr}zDistributionMetadata.get_urlsx$9$rc|jpdSr`)r/rs rrz DistributionMetadata.get_licenses|(y(rc|jpdSr`)r1rs rr|z$DistributionMetadata.get_descriptions,9,rc|jpdSr`)rXrs rrz)DistributionMetadata.get_long_descriptionrrc|jpgSr6)r4rs rrz!DistributionMetadata.get_keywords}""rc0t|d|_dS)Nr4)rr4rnrs r set_keywordsz!DistributionMetadata.set_keywordss$UJ77 rc|jpdgSr`)r2rs rrz"DistributionMetadata.get_platformss~,),rc0t|d|_dS)Nr2)rr2rs r set_platformsz"DistributionMetadata.set_platformss%e[99rc|jpgSr6)r3rs rrz$DistributionMetadata.get_classifierss%2%rc0t|d|_dS)Nr3)rr3rs rset_classifiersz$DistributionMetadata.set_classifierss'}==rc|jpdSr`)rZrs rget_download_urlz%DistributionMetadata.get_download_urlrrc|jpgSr6)r6rs rrz!DistributionMetadata.get_requiresrrctddl}|D]}|j|t||_dSr@)distutils.versionpredicateversionpredicateVersionPredicaterr6rnrrrs r set_requiresz!DistributionMetadata.set_requiressH)))) ; ;A  & 7 7 : : : :U  rc|jpgSr6)r5rs rrz!DistributionMetadata.get_providesrrcrd|D}|D] }ddl}|j|!||_dS)Nc6g|]}|Srr)r;rs rr=z5DistributionMetadata.set_provides..s ***q***rr)rrsplit_provisionr5)rnrrrs r set_providesz!DistributionMetadata.set_providessU**E*** : :A - - - -  & 6 6q 9 9 9 9 rc|jpgSr6)r7rs rrz"DistributionMetadata.get_obsoletess~##rctddl}|D]}|j|t||_dSr@)rrrrr7rs r set_obsoletesz"DistributionMetadata.set_obsoletessH)))) ; ;A  & 7 7 : : : :err6)%rrQrRrSrJrzr\rsrprrzr{rrrrrr~rr}r get_licencer|rrrrrrrrrrrrrrrrrrHrHs """".2"2"2"h*** B B BD333 &&&'''???(((...,,,222;;;GGG%%%)))K---222###888---:::&&&>>>...###$$$ ###$$$%%%%%rrHcNg}|D]}||dd |S)zConvert a 4-tuple 'help_options' list as found in various command classes to the 3-tuple form required by FancyGetopt. r)r)rA new_options help_tuples rrrs=K,, :ac?++++ r)rSrfrreemailrrdrdistutils.errorsdistutils.fancy_getoptrrdistutils.utilrrr rr distutils.debugr compilerrrrHrrrrrsx  ######OOOOHHHAAAAAAAABBBBBBBBBB!!!!!! RZ4 5 5    J,J,J,J,J,J,J,J,f`%`%`%`%`%`%`%`%Ds %%PK!55$__pycache__/__init__.cpython-311.pycnu[ 0idZddlZddlZejdejdZdZejeeddS)zdistutils The main package for the Python Module Distribution Utilities. Normally used from a setup script as from distutils.core import setup setup (...) N zThe distutils package is deprecated and slated for removal in Python 3.12. Use setuptools or check PEP 632 for potential alternatives) __doc__syswarningsversionindex __version___DEPRECATION_MESSAGEwarnDeprecationWarning9/opt/alt/python311/lib64/python3.11/distutils/__init__.pyrsw k13;,,S1112 = " !%%%%%rPK!݁|n|n+__pycache__/ccompiler.cpython-311.opt-2.pycnu[ 0i: ddlZddlZddlZddlTddlmZddlmZddlm Z ddl m Z ddl m Z mZddlmZGd d Zd Zdd Zd dddddZdZddZdZdZdS)N)*)spawn) move_file)mkpath) newer_group) split_quotedexecute)logceZdZ dZdZdZdZdZdZdZ dZ ddddddZ gdZ d@dZ d Zd Zd Zd ZdAd ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dAdZ!dZ"dZ#dZ$d Z% dBd!Z& dCd"Z'd#Z( dDd$Z)d%Z*d&Z+d'Z, dEd(Z- dEd)Z. dEd*Z/ dFd+Z0d,Z1d-Z2d.Z3 dGd/Z4dHd0Z5dId2Z6dId3Z7dId4Z8 dJd6Z9dKd8Z:d9Z;d:Zd=Z?dMd?Z@dS)N CCompilerNcc++objc).cz.ccz.cppz.cxxz.m)rrr rc ||_||_||_d|_g|_g|_g|_g|_g|_g|_ |j D]#}| ||j |$dSN) dry_runforceverbose output_dirmacros include_dirs libraries library_dirsruntime_library_dirsobjects executableskeysset_executable)selfrrrkeys :/opt/alt/python311/lib64/python3.11/distutils/ccompiler.py__init__zCCompiler.__init__Us     %'! #((** < K  DAw$ FAAtr$c  |D]~}t|trOt|dvr>t|dts|dt|dtst d|zdzdzdS)N)r1r1rzinvalid macro definition '%s': z.must be tuple (string,), (string, string), or z(string, None))r,tuplelenr- TypeError)r definitionsr4s r"_check_macro_definitionsz"CCompiler._check_macro_definitionss   ( (DtU++ (YY&((!47C00)48GOQ--5D!BT!IF!G&!'(((5D ( (r$c~ ||}||j|=|j||fdSrr5rappend)r r2r/r3s r" define_macrozCCompiler.define_macrosJ    d # # = A D%=)))))r$c ||}||j|=|f}|j|dSrr>)r r2r3undefns r"undefine_macrozCCompiler.undefine_macrosM    d # # = A 6"""""r$c< |j|dSr)rr?r dirs r"add_include_dirzCCompiler.add_include_dir&   %%%%%r$c& |dd|_dSrrr dirss r"set_include_dirszCCompiler.set_include_dirss !Gr$c< |j|dSr)rr?)r libnames r" add_libraryzCCompiler.add_librarys%  g&&&&&r$c& |dd|_dSr)r)r libnamess r" set_librarieszCCompiler.set_librariess "!!!r$c< |j|dSr)rr?rEs r"add_library_dirzCCompiler.add_library_dirrHr$c& |dd|_dSr)rrKs r"set_library_dirszCCompiler.set_library_dirs s !Gr$c< |j|dSr)rr?rEs r"add_runtime_library_dirz!CCompiler.add_runtime_library_dirs&  !((-----r$c& |dd|_dSr)rrKs r"set_runtime_library_dirsz"CCompiler.set_runtime_library_dirss %)G!!!r$c< |j|dSr)rr?)r objects r"add_link_objectzCCompiler.add_link_object s% F#####r$c& |dd|_dSr)r)r rs r"set_link_objectszCCompiler.set_link_objects(s qqqz r$c ||j}n$t|tstd||j}n1t|t r ||jpgz}ntd||j}nEt|t tfrt ||jpgz}ntd|g}||d|}t||}i} tt|D]p} || } || } tj | d} |tj | | | f| | <q||||| fS)N%'output_dir' must be a string or None/'macros' (if supplied) must be a list of tuples6'include_dirs' (if supplied) must be a list of stringsr) strip_dirrr1)rr,r-r:rlistrr8object_filenamesgen_preprocess_optionsranger9ospathsplitextrdirname)r outdirrincdirssourcesdependsextrarpp_optsbuildr3srcobjexts r"_setup_compilezCCompiler._setup_compile6sI >_FFFC(( ECDD D >[FF  % % Ot{0b1FFMNN N ?'GG $ / / L7mmt'8'>B?GGJLL L =E''139(;;)99s7||$$ $ $A!*C!*C'""3''*C KK,, - - -sE#JJww55r$c8|dgz}|rdg|dd<|r||dd<|S)Nz-cz-gr)r rsdebugbeforecc_argss r" _get_cc_argszCCompiler._get_cc_argsas?TF"  !&GBQBK  ! GBQBKr$c~ ||j}n$t|tstd||j}n1t|t r ||jpgz}ntd||j}nEt|t tfrt ||jpgz}ntd|||fS)Nrbrcrd)rr,r-r:rrfrr8)r rrrs r"_fix_compile_argszCCompiler._fix_compile_argsjs   JJJ,, ECDD D >[FF  % % Ot{0b1FFMNN N  ,LL  tUm 4 4 L --1B1HbILLJLL L6<//r$c: |||}|ifS)N)r)rg)r rprrqrs r" _prep_compilezCCompiler._prep_compiles- ''J'GG {r$c t|ttfstdt|}||j}n$t|t std||fS)Nz,'objects' must be a list or tuple of stringsrb)r,rfr8r:rr-)r rrs r"_fix_object_argszCCompiler._fix_object_argssv 'D%=11 LJKK Kw--  JJJ,, ECDD D$$r$c ||j}nEt|ttfrt||jpgz}nt d||j}nEt|ttfrt||jpgz}nt d||j}nEt|ttfrt||jpgz}nt d|||fS)Nz3'libraries' (if supplied) must be a list of stringsz6'library_dirs' (if supplied) must be a list of stringsz>'runtime_library_dirs' (if supplied) must be a list of strings)rr,rfr8r:rr)r rrrs r" _fix_lib_argszCCompiler._fix_lib_argss6  II  D%= 1 1 Ii((DN,@bAIIGII I  ,LL  tUm 4 4 L..$2C2IrJLLJLL L '#'#< ,tUm < < 9$()=$>$>%)%>%D"%F 899 9<)=>>r$cn |jrdS|jrt||d}nt||}|S)NTnewer)missing)rrr)r r output_filers r" _need_linkzCCompiler._need_linksL  : 4| ;#Wk7KKK#Wk::Lr$cP t|ts|g}d}t|j}|D]s}tj|\}}|j|} |j |}||kr|}|}d#t$rYpwxYw|Sr) r,rfr9language_orderrjrkrl language_mapgetindexr&) r rplangrsourcebaserwextlangextindexs r"detect_languagezCCompiler.detect_languages '4(( iGD'((  F((00ID#'++C00G .44W==e##"D$E     s1$B B#"B#c dSrrz)r rrrr extra_preargsextra_postargss r" preprocesszCCompiler.preprocesss  r$c  |||||||\}} }} } || ||} | D]9} | | \}}n#t$rYwxYw|| ||| || :| Sr)rxr~KeyError_compile)r rprrrr{rrrqrrsrtr}rvrurws r"compilezCCompiler.compiles/ f##J g$+^== 8%##GUMBB K KC  :SS     MM#sC.' J J J Js A  AAc dSrrz)r rvrurwr}rrss r"rzCCompiler._compileCs - r$c dSrrz)r routput_libnamerr{ target_langs r"create_static_libzCCompiler.create_static_libIs , r$ shared_objectshared_library executablec trNotImplementedError)r target_descroutput_filenamerrrrexport_symbolsr{rr build_temprs r"linkzCCompiler.linkis* V"!r$c |tj|||d||||||| | | | dS)Nshared)lib_type)rr SHARED_LIBRARYlibrary_filename) r rrrrrrrr{rrrrs r"link_shared_libzCCompiler.link_shared_libs_ )*G'''JJ\+? %[  J J J J Jr$c \|tj||||||||| | | | dSr)rr SHARED_OBJECT) r rrrrrrrr{rrrrs r"link_shared_objectzCCompiler.link_shared_objectsK ))7!:\+? %[  J J J J Jr$c |tj|||||||d||| d| dSr)rr EXECUTABLEexecutable_filename) r routput_prognamerrrrr{rrrs r"link_executablezCCompiler.link_executablesX )&**?;;Z\+?k K K K K Kr$c trrrEs r"library_dir_optionzCCompiler.library_dir_option "!r$c trrrEs r"runtime_library_dir_optionz$CCompiler.runtime_library_dir_optionrr$c trr)r libs r"library_optionzCCompiler.library_optionrr$c ddl}|g}|g}|g}|g}|d|d\}}tj|d} |D]} | d| z| d|z| n#| wxYw ||g|} n#t$rYd SwxYw || d || n#ttf$rYd SwxYwdS) NrrT)textwz#include "%s" z=int main (int argc, char **argv) { %s(); return 0; } rJFza.out)rr) tempfilemkstemprjfdopenwritecloser CompileErrorr LinkErrorr:) r funcnameincludesrrrrfdfnamefinclrs r" has_functionzCCompiler.has_functions    H  L  I  L$$T8$$?? E Ib#     6 6-45555 GG      GGIIIIAGGIIII llE7lFFGG   55    '+4.: ! < < < <9%   55 ts05BB'+C CCC00DDc trr)r rLrr{s r"find_library_filezCCompiler.find_library_file$s "!r$c|d}g}|D]}tj|\}}tj|d}|tj|d}||jvrt d|d|d|rtj|}|tj |||j z|S)Nrr1zunknown file type 'z ' (from 'z')) rjrkrl splitdriveisabssrc_extensionsUnknownFileErrorbasenamer?join obj_extension)r source_filenamesrer obj_namessrc_namerrws r"rgzCCompiler.object_filenamesOs  J ( F FH((22ID#7%%d++A.D d++,,-D$---&&>Acc888LNNN .w''--   RW\\**.1C*CEE F F F Fr$c|rtj|}tj|||jzSr)rjrkrrshared_lib_extensionr rrers r"shared_object_filenamez CCompiler.shared_object_filename`s=  2w''11Hw||J43L(LMMMr$c|rtj|}tj|||jpdzS)Nr)rjrkrr exe_extensionrs r"rzCCompiler.executable_filenamefsB  2w''11Hw||JD4F4L"(MNNNr$staticc|dvrtdt||dz}t||dz}tj|\}}|||fz} |rd}tj||| S)N)rrdylib xcode_stubz?'lib_type' must be "static", "shared", "dylib", or "xcode_stub" _lib_format_lib_extensionr)r&getattrrjrksplitr) r rOrrerfmtrwrFrfilenames r"rzCCompiler.library_filenamels F F F[]] ]dH}455dH'7788GMM'** T$$  Cw||JX666r$r1c.tj|dSr)r r{)r msglevels r"announcezCCompiler.announces #r$c8ddlm}|rt|dSdS)Nr)DEBUG)distutils.debugrprint)r rrs r" debug_printzCCompiler.debug_prints5))))))   #JJJJJ  r$cJtjd|zdS)Nz warning: %s )sysstderrr)r rs r"warnzCCompiler.warns# 3./////r$c4t||||jdSr)r r)r funcargsrrs r"r zCCompiler.executesdC.....r$c2t||jdSN)r)rr)r cmds r"rzCCompiler.spawns c4<((((((r$c0t|||jSr)rr)r rudsts r"rzCCompiler.move_filesc4<8888r$c4t|||jdSr)rr)r r2modes r"rzCCompiler.mkpathstT4<000000r$)rrrr)NNNNN)NNNrNNN)NrN) NNNNNrNNNN)NNNNrNNN)NNNN)r)rr)rrr)r1)Nr1)r )Ar( __module__ __qualname__ compiler_typerrstatic_lib_extensionrstatic_lib_formatshared_lib_formatrrrr#r*rr5r<r@rCrGrMrPrSrUrWrYr[r^r`rxr~rrrrrrrrrrrrrrrrrrrrrrrgrrrrrrr rrrrzr$r"r r s *M4NMM!"""# L *))N"<"<"<"-1BBBBH   EI/3    8$M%NJ "&  9"9"9"9"B$("&%)-1'+&*'+#'$(JJJJ0'+%)(,04*.!")-*.&*'+JJJJ.$("&%)-1&*'+$(KKKK,""" """ """ BF26****X""""V"NNNN OOOO 2:137777& 000////)))999111111r$r ))zcygwin.*unix)posixr)ntmsvcc | tj}| tj}tD]3\}}t j||t j|||cS4dS)Nr)rjr2rplatform_default_compilersrematch)osnamerpatterncompilers r"get_default_compilerrso~</ 8GX & & 2 8GV $ $ 0OOO 1 6r$) unixccompiler UnixCCompilerzstandard UNIX-style compiler) _msvccompiler MSVCCompilerzMicrosoft Visual C++)cygwinccompilerCygwinCCompilerz'Cygwin port of GNU C Compiler for Win32)r#Mingw32CCompilerz(Mingw32 port of GNU C Compiler for Win32) bcppcompiler BCPPCompilerzBorland C++ Compiler)rrcygwinmingw32bcppc ddlm}g}tD].}|d|zdt|df/|||}|ddS)Nr) FancyGetoptz compiler=r7zList of available compilers:)distutils.fancy_getoptr,compiler_classrr?sort print_help)r, compilersrpretty_printers r"show_compilersr3s 322222I"''))88+h.(2157 8 8 8 8 NN [++N<=====r$c | tj} |t|}t|\}}}n,#t$rd|z}||d|zz}t |wxYw d|z}t |tj|} t| |} n?#t$rtd|zt$rtd|d|dwxYw| d||S)Nz5don't know how to compile C/C++ code on platform '%s'z with '%s' compilerz distutils.z4can't compile C/C++ code: unable to load module '%s'z0can't compile C/C++ code: unable to find class 'z ' in module '') rjr2rr.rDistutilsPlatformError __import__rmodulesvars ImportErrorDistutilsModuleError) platrrrr module_name class_namelong_descriptionrmoduleklasss r" new_compilerrBsO  |w *  +D11H6DX6N3j"2"2 ***EL  -88C$S))) * ="[0 K   [)V Z( "D  ===""#-::{{{<== == 5w & &&s"4)A!;BrSso1 !!!!!!))))))%%%%%%******00000000E1E1E1E1E1E1E1E1X 0?7JK7  >>>"*'*'*'*'Z***Z$$$$$r$PK!JC/C/+__pycache__/sysconfig.cpython-311.opt-1.pycnu[ 0i0xdZddlZddlZddlZddlZddlZddlmZddlm Z ddl m Z m ZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%e#Z&ej'de(d dd Zee d Z)eee&Zeee&Z*dd Z+dZ, esej-Z,n #e.$rYnwxYwdZ/ddZ0ddZ1dS)aProvide access to Python's configuration information. The specific configuration variables available depend heavily on the platform and configuration. The values may be retrieved using get_config_var(name), and the list of variables is available via get_config_vars().keys(). Additional convenience functions are also available. Written by: Fred L. Drake, Jr. Email: N)partial)DistutilsPlatformError)_PREFIX _BASE_PREFIX _EXEC_PREFIX_BASE_EXEC_PREFIX _PROJECT_BASE _PYTHON_BUILD _init_posixparse_config_h_init_non_posix _variable_rx _findvar1_rx _findvar2_rxexpand_makefile_varsis_python_buildget_config_h_filenameget_config_varget_config_varsget_makefile_filenameget_python_versionzCThe distutils.sysconfig module is deprecated, use sysconfig instead) stacklevelc$t||S)N)vars)sysconfig_parse_config_h)fpgs :/opt/alt/python311/lib64/python3.11/distutils/sysconfig.pyr r =s #BQ / / //T) check_homec4ddlm}||dddd}|i}i}i} |}|ntjt |}|r|dd\}} | } | d d } d | vr| ||<n? t| } | ||<n)#t$r| d d ||<YnwxYwd } |rt|D]} || } tj t| ptj t| }|rk|d}d}||vrt||}nz||vrd }ns|t jvrt j|}nR|| vrG| dr| dd| vrd }n*d|z|vrd }n t|d|z}nd x||<}|r| |d}| d||z|z} d |vr| || <8t| } | || <n'#t$r| || <YnwxYw|| =| dr| dd| vr| dd} | |vr| || <|| =|||D]1\}} t/| tr| ||<2|||S)zParse a Makefile-style file. A dictionary containing name/value pairs is returned. If an optional dictionary is passed in as the second argument, it is used instead of a new dictionary. r)TextFilersurrogateescape)strip_comments skip_blanks join_lineserrorsNTrz$$$)CFLAGSLDFLAGSCPPFLAGSFPY_)distutils.text_filer$readlinerematchrgroupstripreplaceint ValueErrorlistsearchrrstrosenviron startswithendstartcloseitems isinstanceupdate)fnrr$rdonenotdonelinemnvtmpvrenamed_variablesnamevaluefounditemafterks r parse_makefilerUHs -,,,,, "QA!L] ^ ^ ^By  DG {{}} <  H\4 ( (  771a==DAq A99T2&&Dd{{  AA  DGG "333iic22DGGG3! 4: 0"MM/ "/ "DDME ,..P")L%2P2PA, "GGAJJ99tAw<O2O2O!g-- % #4 ?33%''DGd3!!%%''((OE!*17799*-4ur?lenset_executablesshared_lib_extension)rerpcccxxcflagsccsharedldshared shlib_suffixarar_flagsnewcccpprjcc_cmds r rqrqs '' <8 # # ##$=>> A####// ===:@ 67 D%& ND) U U JS&(HlB 2:  Jt$E ((""*44 ++B//5!8CGGHH#55B BJ  *U#C  # #z*-H BJ  *U#CCu*C  " "#~ 9(==H rz ! !c\BJx$88F#~ 8(<>H 2:  D!B  " "Cx"*Y"77HHCx(*HcF"   x/ !   )5%%%}('r!c||rtpt}tjdkrtrU|rt Stjtdd}tj |Sdtztz}tj|d|StjdkrztrStj|dtjj ztj|dzStj|dStd tjz) aReturn the directory containing installed Python header files. If 'plat_specific' is false (the default), this is the path to the non-platform-specific header files, i.e. Python.h and so on; otherwise, this is the path to platform-specific header files (namely pyconfig.h). If 'prefix' is supplied, use it instead of sys.base_prefix or sys.base_exec_prefix -- i.e., ignore 'plat_specific'. NposixsrcdirIncludepythonincludentPCzFI don't know where Python installs its C header files on platform '%s')BASE_EXEC_PREFIX BASE_PREFIXr=rO python_build project_basepathjoinrnormpathr build_flagspathsepr) plat_specificprefixincdir python_dirs r get_python_incrs$~3#3B{ w'  0  0##nX&>&> JJw''/// 2 4 44{B w||FIz::: D  0GLL33bgoEGLL../ 0w||FI...$ !# )** *r!c|#|r|rtpt}n|rtpt}tjdkrg|s|r t j}nd}tj ||dtz}|r|Stj |dStjdkrC|r tj |dStj |ddStdtjz) aSReturn the directory containing the Python library (standard or site additions). If 'plat_specific' is true, return the directory containing platform-specific modules, i.e. any module from a non-pure-Python module distribution; otherwise, return the platform-shared library directory. If 'standard_lib' is true, return the directory containing standard Python library modules; otherwise, return the directory for site-specific modules. If 'prefix' is supplied, use it instead of sys.base_prefix or sys.base_exec_prefix -- i.e., ignore 'plat_specific'. Nrlibrz site-packagesrLibz?I don't know where Python installs its library on platform '%s') rr EXEC_PREFIXPREFIXr=rOrl platlibdirrrrr)r standard_librlibdir libpythons r get_python_libr0s~  ="7'7F;FF"2{,@,@!@BB  < 7<< ?;; ; D  @7<<.. .7<<?? ?$ !# )** *r!)N)rN)rrN)2__doc___impr=r3rlwarnings functoolsrr)r sysconfigrrrrrrr rr rr rr sysconfig_init_posixr rrrrrrrrrrrrrnwarnDeprecationWarning _python_build_init_ntrUrabiflagsAttributeErrorrqrrr!r rsQ   ******:   I0000D999 g*L99 7?L 1 1 f f f f ^  #l     D D5D5D5N%*%*%*%*P************s B$$B,+B,PK!Q2'2'$__pycache__/dir_util.cpython-311.pycnu[ 0ibjdZddlZddlZddlmZmZddlmZiad dZ d dZ dd Z d Z dd Z d ZdS)zWdistutils.dir_util Utility functions for manipulating directories and directory trees.N)DistutilsFileErrorDistutilsInternalError)logc t|tstd|dtj|}g}tj|s|dkr|Sttj |r|Stj |\}}|g}|r||rztj|s[tj |\}}| d||r!|rtj|[|D]}tj ||}tj |} t| r]|dkrtjd||s tj||nk#t $r^} | jt"jkrtj|s t'd|d| jd Yd } ~ nd } ~ wwxYw||dt| <|S) aCreate a directory and any missing ancestor directories. If the directory already exists (or if 'name' is the empty string, which means the current directory, which of course exists), then do nothing. Raise DistutilsFileError if unable to create some directory along the way (eg. some sub-path exists, but is a file rather than a directory). If 'verbose' is true, print a one-line summary of each mkdir to stdout. Return the list of directories actually created. z%mkpath: 'name' must be a string (got )rrz creating %szcould not create '': N) isinstancestrrospathnormpathisdir _path_createdgetabspathsplitinsertjoinrinfomkdirOSErrorerrnoEEXISTrargsappend) namemodeverbosedry_run created_dirsheadtailtailsdabs_headexcs 9/opt/alt/python311/lib64/python3.11/distutils/dir_util.pymkpathr,sq dC D$$<@DDBDD D 7  D ! !DL w}}Tdbjj..//7==&<4 FE 4 d 3 3w}}T** t Q 4 d 3 3$$w||D!$$7??4((   X & &   a<< H]D ) ) ) & Nt$$$$ N N N U\11bgmmD6I6I1,,9=sx||LNNN21111 N    % % %"# h s G  I*AIIc t}|D]R}|tj|tj|St |D]}t||||dS)aCreate all the empty directories under 'base_dir' needed to put 'files' there. 'base_dir' is just the name of a directory which doesn't necessarily exist yet; 'files' is a list of filenames to be interpreted relative to 'base_dir'. 'base_dir' + the directory portion of every file in 'files' will be created if it doesn't already exist. 'mode', 'verbose' and 'dry_run' flags are as for 'mkpath()'. r"r#N)setaddrrrdirnamesortedr,)base_dirfilesr!r"r#need_dirfiledirs r+ create_treer8PsuuHDD RW\\(BGOOD,A,ABBCCCCh<<sD'7;;;;;<<c ddlm}|s1tj|st d|z tj|} n6#t$r)} |rg} nt d|d| jYd} ~ nd} ~ wwxYw|st||g} | D]I} tj || } tj || }| drY|r|tj | r]tj | }|d krtjd |||stj||| |tj| r,| t'| ||||||| "|| |||||| | |K| S) aCopy an entire directory tree 'src' to a new location 'dst'. Both 'src' and 'dst' must be directory names. If 'src' is not a directory, raise DistutilsFileError. If 'dst' does not exist, it is created with 'mkpath()'. The end result of the copy is that every file in 'src' is copied to 'dst', and directories under 'src' are recursively copied to 'dst'. Return the list of files that were copied or might have been copied, using their output name. The return value is unaffected by 'update' or 'dry_run': it is simply the list of all files under 'src', with the names changed to be under 'dst'. 'preserve_mode' and 'preserve_times' are the same as for 'copy_file'; note that they only apply to regular files, not to directories. If 'preserve_symlinks' is true, symlinks will be copied as symlinks (on platforms that support them!); otherwise (the default), the destination of the symlink will be copied. 'update' and 'verbose' are the same as for 'copy_file'. r) copy_filez&cannot copy tree '%s': not a directoryzerror listing files in 'r N)r"z.nfsrzlinking %s -> %sr.)distutils.file_utilr;rrrrlistdirrstrerrorr,r startswithislinkreadlinkrrsymlinkrextend copy_tree)srcdst preserve_modepreserve_timespreserve_symlinksupdater"r#r;nameseoutputsnsrc_namedst_name link_dests r+rDrDcsR*.----- >27==--> 6<>> >I 3 III  IEE$$7:ssAJJGII I EEEEI %sG$$$$G %%7<<Q''7<<Q'' <<      %!9!9 % H--I!||+XyAAA 0 9h/// NN8 $ $ $ $ W]]8 $ $ % NN(Hm(*;V")7<<< = = = = Ih-$fg% ' ' ' ' NN8 $ $ $ $ NsA BA>>Bctj|D]}tj||}tj|r0tj|st ||q|tj|f|tj |fdS)zHelper for remove_tree().N) rr=rrrr@_build_cmdtuplerremovermdir)r cmdtuplesfreal_fs r+rSrSs Z  22d1%% 7==  2)?)? 2 FI . . . .   bi0 1 1 1 1 bh%&&&&&r9ch|dkrtjd||rdSg}t|||D]}} |d|dtj|d}|t vrt |=Q#t$r }tjd||Yd}~vd}~wwxYwdS)zRecursively remove an entire directory tree. Any errors are ignored (apart from being reported to stdout if 'verbose' is true). rz'removing '%s' (and everything under it)Nrzerror removing %s: %s) rrrSrrrrrwarn) directoryr"r#rVcmdrr*s r+ remove_treer]s!|| :IFFFIIy)))>> > CF3q6NNNgooc!f--G-''!'* > > > H,i = = = = = = = = >>>sA B B/B**B/ctj|\}}|ddtjkr ||ddz}|S)zTake the full path 'path', and make it a relative path. This is useful to make 'path' the second argument to os.path.join(). rrN)rr splitdrivesep)rdrives r+ensure_relativerbsI '$$T**KE4 AaCyBFtABBx Kr9)rrr)rrrrrr)rr)__doc__rrdistutils.errorsrr distutilsrrr,r8rDrSr]rbr9r+rgsGG GGGGGGGG ====~<<<<&9:@ACCCCJ'''>>>>0r9PK! __pycache__/dist.cpython-311.pycnu[ 0idZddlZddlZddlZddlmZ ddlZn #e$rdZYnwxYwddlTddl m Z m Z ddl m Z mZmZddlmZddlmZejd Zd ZGd d ZGd dZdZdS)z}distutils.dist Provides the Distribution class, which represents the module distribution being built/installed/distributed. N)message_from_file)*) FancyGetopttranslate_longopt) check_environ strtobool rfc822_escapelog)DEBUGz^[a-zA-Z]([a-zA-Z0-9_]*)$ct|trn`t|tsKt|j}d|d|d}t jt j|t|}|S)Nz Warning: 'z' should be a list, got type '') isinstancestrlisttype__name__r WARN)value fieldnametypenamemsgs 5/opt/alt/python311/lib64/python3.11/distutils/dist.py _ensure_listrsu%  t $ $;;'O9OOHOOO #U  LceZdZdZgdZdZgdZdeDZddiZd*d Z d Z d+d Z d Z d*dZ dZdZdZdZddgfdZdZdZdZdZdZdZd,dZd*dZd-dZejfdZd Zd!Z d"Z!d#Z"d$Z#d%Z$d&Z%d'Z&d(Z'd)Z(dS). DistributionaThe core of the Distutils. Most of the work hiding behind 'setup' is really done within a Distribution instance, which farms the work out to the Distutils commands specified on the command line. Setup scripts will almost never instantiate Distribution directly, unless the 'setup()' function is totally inadequate to their needs. However, it is conceivable that a setup script might wish to subclass Distribution for some specialized purpose, and then pass the subclass to 'setup()' as the 'distclass' keyword argument. If so, it is necessary to respect the expectations that 'setup' has of Distribution. See the code for 'setup()', in core.py, for details. ))verbosevzrun verbosely (default))quietqz!run quietly (turns verbosity off))zdry-runnzdon't actually do anything)helphzshow detailed help message)z no-user-cfgNz-ignore pydistutils.cfg in your home directoryzCommon commands: (see '--help-commands' for more) setup.py build will build the package underneath 'build/' setup.py install will install the package ))z help-commandsNzlist all available commands)nameNzprint package name)versionVzprint package version)fullnameNzprint -)authorNzprint the author's name) author-emailNz print the author's email address) maintainerNzprint the maintainer's name)zmaintainer-emailNz$print the maintainer's email address)contactNz7print the maintainer's name if known, else the author's)z contact-emailNz@print the maintainer's email address if known, else the author's)urlNzprint the URL for this package)licenseNz print the license of the package)licenceNzalias for --license) descriptionNzprint the package description)zlong-descriptionNz"print the long package description) platformsNzprint the list of platforms) classifiersNzprint the list of classifiers)keywordsNzprint the list of keywords)providesNz+print the list of packages/modules provided)requiresNz+print the list of packages/modules required) obsoletesNz0print the list of packages/modules made obsoletec8g|]}t|dSrr).0xs r zDistribution.s%MMM-ad33MMMrr!rNc d|_d|_d|_|jD]}t ||dt |_|jjD]+}d|z}t ||t|j|,i|_ d|_ d|_ d|_ i|_ g|_d|_i|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_i|_i|_|r|d}|S|d=|D];\}}| |}|D] \} } d| f|| < >*Wk#33G<> c)7(= >E!!#(#3i )$R'M#&&&&J$$S4Z000$kkmm ' ' c4=&3,77'8GDM6C<88====T]C00'DM34444T3'''D#s++++;d3iiGCM#&&&&"   ''  ~~c**E/))).D&E* rcV|j|}| ix}|j|<|S)zGet the option dictionary for a given command. If that command's option dictionary hasn't been created yet, then create it and return the new dictionary; otherwise, return the existing option dictionary. )rPra)rnrsdicts rrczDistribution.get_option_dict&s6 #''00 <35 5D4'0 rr@cddlm}|&t|j}||||z|dz}|s||dzdS|D]}|j|}|||d|zz:||d|zz||}|dD]}||dz|zdS)Nr)pformatz zno commands known yetzno option dict for '%s' commandzoption dict for '%s' command:rB)pprintr~sortedrPkeysannouncerasplit) rnheadercommandsindentr~cmd_nameruoutlines rdump_option_dictszDistribution.dump_option_dicts1sZ""""""  d27799::H   MM&6/ * * *d]F  MM&#:: ; ; ; F 8 8H+//99H f?(JKLLLL f=HIJJJgh''IIdOO88DMM&4-$"677778 8 8rc g}ttjtjdj}tj|d}tj|r| |tj dkrd}nd}|j rqtjtj d|}tj|r| |d}tj|r| |tr+|dd |z|S) aFind as many configuration files as should be processed for this platform, and return a list of filenames in the order in which they should be parsed. The filenames returned are guaranteed to exist (modulo nasty race conditions). There are three possible config files: distutils.cfg in the Distutils installation directory (ie. where the top-level Distutils __inst__.py file lives), a file in the user's home directory named .pydistutils.cfg on Unix and pydistutils.cfg on Windows/Mac; and setup.cfg in the current directory. The file in the user's home directory can be disabled with the --no-user-cfg option. distutilsz distutils.cfgposixz.pydistutils.cfgzpydistutils.cfg~z setup.cfgzusing config files: %sz, )rospathdirnamerfmodules__file__joinisfileappendr&rk expanduserr r)rnfilessys_dirsys_file user_filename user_file local_files rfind_config_fileszDistribution.find_config_filesMsF'//#+k":"CDD7<<99 7>>( # # # LL " " " 7g  .MM-M   ( RW%7%7%<%>* % % % LL $ $ $  G MM2TYYu5E5EE F F F rcddlm}tjtjkrgd}ng}t |}||}tr|d|}|D]}tr|d|z| || D]n}| |}| |}|D]?} | dkr7| |vr3| || } | dd} || f|| <@o|d |jvr|jd D]\} \} } |j | } | r t'|| t)|  n4| d vrt'|| t)| nt'|| | z#t*$r} t-| d} ~ wwxYwdSdS) Nr) ConfigParser) z install-basezinstall-platbasez install-libzinstall-platlibzinstall-purelibzinstall-headerszinstall-scriptsz install-dataprefixz exec-prefixhomeuserrootz"Distribution.parse_config_files():z reading %srrD_global)rrE) configparserrrfr base_prefix frozensetrr rreadsectionsrArcrareplacerzrPrb negative_optrGr ValueErrorDistutilsOptionError)rn filenamesrignore_optionsparserfilenamesectionrArurvrwsrcaliasrs rparse_config_fileszDistribution.parse_config_files}so------ : ( ((((NN  N">22  ..00I  @ MM> ? ? ?!  H 9 nx7888 KK ! ! !!??,, 8 8 ..11//88"88Cj((S-F-F$jj55!kk#s33)13 8 OO     t+ + +%)%9(%C%I%I%K%K 4 4!jsC)--c2240e3-?@@@@ 666c9S>>::::c3///!444.s3334 , + 4 4sAG%% H/G>>Hcl|}g|_t||jz}||j|ddi||j|}| }tj |j | |rdS|r|||}|dS||jr5||t#|jdk|jdS|jst%ddS) aParse the setup script's command line, taken from the 'script_args' instance attribute (which defaults to 'sys.argv[1:]' -- see 'setup()' in core.py). This list is first processed for "global options" -- options that set attributes of the Distribution instance. Then, it is alternately scanned for Distutils commands and options for that command. Each new command terminates the options for the previous command. The allowed options for a command are determined by the 'user_options' attribute of the command class -- thus, we have to be able to load command classes in order to parse the command line. Any error in that 'options' attribute raises DistutilsGetoptError; any error on the command-line raises DistutilsArgError. If no Distutils commands were found on the command line, raises DistutilsArgError. Return true if command-line was successfully parsed and we should carry on with executing commands; false if no errors but we shouldn't execute commands (currently, this only happens if user asks for help). r0r/)argsobjectNrdisplay_optionsrzno commands suppliedT)_get_toplevel_optionsrrrset_negative_aliasesr set_aliasesgetoptrOget_option_orderr set_verbosityrhandle_display_options_parse_command_optsr$ _show_helplenDistutilsArgError)rntoplevel_optionsrr option_orders rparse_command_linezDistribution.parse_command_linesX. 5577 -0DDEE##D$5666Iy1222}}$"24}@@..00  $,'''  & &| 4 4  F ++FD99D|  9  OOF,/ ,>,>!,C%)]  4 4 4 F} <#$:;; ;trc|jdgzS)zReturn the non-display options recognized at the top level. This includes options that are recognized *only* at the top level as well as options recognized for commands. )zcommand-packages=Nz0list of packages that provide distutils commands)global_optionsrns rrz"Distribution._get_toplevel_optionss " A& rcddlm}|d}t|st d|z|j| ||}n!#t$r}t|d}~wwxYwt||std|zt|drt|jtsd}t||z|j}t|dr.|}||jt|d r/t|jtrt)|j}ng}||j|jz|z||||d d\}} t| d r"| jr||d|g dSt|d rt|jtrjd} |jD]\\} } } }t| || r2d } t9|r |Ftd |d| d]| rdS||}t=| D] \}}d|f||< |S)aParse the command-line options for a single command. 'parser' must be a FancyGetopt instance; 'args' must be the list of arguments, starting with the current command (whose options we are about to parse). Returns a new version of 'args' with the next command at the front of the list; will be the empty list if there are no more commands on the command line. Returns None if the user asked for help on this command. rCommandzinvalid command name '%s'Nz&command class %s must subclass Command user_optionszIcommand class %s must provide 'user_options' attribute (a list of tuples)r help_optionsr r$rzinvalid help function z for help option 'z-': must be a callable object (function, etc.)z command line) distutils.cmdr command_rematch SystemExitrrget_command_classDistutilsModuleErrorr issubclassDistutilsClassErrorrirrrrcopyupdaterfix_help_optionsset_option_tablerrrr$r get_attr_namecallablercvarsrb)rnrrrrs cmd_classrrroptshelp_option_found help_optionshortdescfuncrur&rs rrz Distribution._parse_command_optssU *)))))q'(( D87BCC C W%%%  )..w77II# ) ) )#C(( ( ) )W-- F%89DFF F  >22 791488 7>C%cIo66 6( 9n - - 8',,..L    6 7 7 7 I~ . . 91488 +I,BCCLLL  3 ) 6!7 ,!- . . . ##L111}}T!""X.. t 4  TY  OOFA O L L L F I~ . . 91488  4=4J 3 30eT44!5!5k!B!BCC3&'%~~311 $tt[[[2333 3! ''00!$ZZ--// 5 5MT5,e4HTNN sA,, B 6BB cdD]d}t|j|}|t|tr5d|dD}t |j||edS)zSet final values for all the options on the Distribution instance, analogous to the .finalize_options() method of Command objects. r4r2Nc6g|]}|Sstrip)r;elms rr=z1Distribution.finalize_options..js AAAAAAr,)rKrIrrrrG)rnrprs rrmzDistribution.finalize_options`s| . 4 4DDM400E}%%% 4AA C0@0@AAA tU333  4 4rr chddlm}ddlm}|r_|r|}n|j}||||jdztd|r>||j |dtd|j D]}t|trt||r|} n||} t!| drJt| jt$r0|| jt)| jzn|| j|d| jztdt||jd S) abShow help for the setup script command-line in the form of several lists of command-line options. 'parser' should be a FancyGetopt instance; do not expect it to be returned in the same state, as its option table will be reset to make it generate the correct help text. If 'global_options' is true, lists the global options: --verbose, --dry-run, etc. If 'display_options' is true, lists the "display-only" options: --name, --version, etc. Finally, lists per-command help for every command name or command class in 'commands'. r gen_usagerz Global options:r@zKInformation display options (just display information, ignore any commands)rzOptions for '%s' command:N)distutils.corerrrrrr print_help common_usageprintrrrrrrrirrrrrrN) rnrrrrrrrArsklasss rrzDistribution._show_helpms -,,,,,))))))   .4466-  # #G , , ,   d/2EE F F F "III    # #D$8 9 9 9   4 5 5 5 "III}  G'4(( 8Z-I-I 8..w77~.. <u1488 <''(:(89K(L(L)MNNNN''(:;;;   9ENJ K K K "IIII ii())*****rc0ddlm}|jrB|t dt ||jdSd}i}|jD] }d||d<|D]\}}|r||rt|}t|j d|z}|dvr#t d |n6|dvr#t d |nt |d}|S) zIf there were any non-global "display-only" options (--help-commands or the metadata display options) on the command line, display the requested info and return true; else return false. rrr@r r?rr)r3r5r6r7rB) rr help_commandsprint_commandsrrNrrarrKrIr) rnrrany_display_optionsis_display_optionoptionrvrwrs rrz#Distribution.handle_display_optionss[ -,,,,,       ! ! ! "III ))D,-- . . .1  * - -F+, fQi ( (& ( (JS# ((,,S11 (',,: vcz::<<333#((5//*******$))E**++++%LLL&'#""rct|dz|D]c}|j|}|s||} |j}n#t $rd}YnwxYwtd|||fzddS)zZPrint a subset of the list of all commands -- used by 'print_commands()'. :(no description available)z %-*s %sN)rrLrarr1AttributeError)rnrr max_lengthcmdrr1s rprint_command_listzDistribution.print_command_lists fsl A ACM%%c**E 4..s33 ;#/ ! ; ; ;:  ; ,*c;!?? @ @ @ @ A As A A A cddl}|jj}i}|D]}d||<g}|jD],}||s||-d}||zD]$}t||krt|}%||d||r't||d|dSdS)anPrint out a help message listing all available commands with a description of each. The list is divided into "standard commands" (listed in distutils.command.__all__) and "extra commands" (mentioned in self.cmdclass, but not a standard command). The descriptions come from the command class attribute 'description'. rNr zStandard commandszExtra commands) distutils.commandrs__all__rLrrarrrr)rnr std_commandsis_stdrextra_commandsrs rrzDistribution.print_commandss  !    (0   CF3KK=%%'' + +C::c?? +%%c***  >1 & &C3xx*$$ XX   3 * , , ,  0 GGG  # #N$4$. 0 0 0 0 0 0 0rcddl}|jj}i}|D]}d||<g}|jD],}||s||-g}||zD]e}|j|}|s||} |j}n#t$rd}YnwxYw|||ff|S)a>Get a list of (command, description) tuples. The list is divided into "standard commands" (listed in distutils.command.__all__) and "extra commands" (mentioned in self.cmdclass, but not a standard command). The descriptions come from the command class attribute 'description'. rNr r) rrsrrLrrarrr1r) rnrr r rr rvrr1s rget_command_listzDistribution.get_command_lists !    (0   CF3KK=%%'' + +C::c?? +%%c***  >1 * *CM%%c**E 4..s33 ;#/ ! ; ; ;:  ; IIsK( ) ) ) ) s B(( B76B7c|j}t|tsD|d}d|dD}d|vr|dd||_|S)z9Return a list of packages from which commands are loaded.Nr@cBg|]}|dk|S)r@r)r;pkgs rr=z5Distribution.get_command_packages..!s%HHHCcRiiCIIKKiiirrzdistutils.commandr)rMrrrinsert)rnpkgss rget_command_packagesz!Distribution.get_command_packagessp$$%% )|HH4::c??HHHD"$.. A2333$(D ! rc |j|}|r|S|D]}|d|}|} t|tj|}n#t $rY:wxYw t||}n'#t$rtd|d|d|dwxYw||j|<|cStd|z)aoReturn the class that implements the Distutils command named by 'command'. First we check the 'cmdclass' dictionary; if the command is mentioned there, we fetch the class object from the dictionary and return it. Otherwise we load the command module ("distutils.command." + command) and fetch the command class from the module. The loaded class is also stored in 'cmdclass' to speed future calls to 'get_command_class()'. Raises DistutilsModuleError if the expected module could not be found, or if that module does not define the expected class. .zinvalid command 'z ' (no class 'z ' in module 'z')zinvalid command '%s') rLrar __import__rfr ImportErrorrKrr)rnrsrpkgname module_name klass_namemodules rrzDistribution.get_command_class's  !!'**  L0022  G%,WWgg6K J ;'''[1     : 33! : : :**ww KKK9::: : &+DM' "LLL"#9G#CDDDs!A!! A.-A.2B$B'cL|j|}|s|rtr|d|z||}||x}|j|<d|j|<|j|}|r||||S)aReturn the command object for 'command'. Normally this object is cached on a previous call to 'get_command_obj()'; if no command object for 'command' is in the cache, then we either create and return it (if 'create' is true) or return None. z.|s6CCC!"/q11CCCrz error in z : command 'z' has no such option 'r)get_command_namercr rrbboolean_optionsrrrrrGrrirr) rnr_ option_dict command_namersourcer bool_optsneg_opt is_stringrs rrz!Distribution._set_command_optionshs7#3355  ..|<N>N:NOOOOy((Y(K51A1ABBBB[&11:K7777..!66<<<9::: 0 0 0*3/// 05 0 0s=B!! B0/B04B<< C  C B!E22 F<F  Frcnddlm}t||s|}||}n|}|js|S|d|_d|j|<|||r-| D]}| |||S)aReinitializes a command to the state it was in when first returned by 'get_command_obj()': ie., initialized but not yet finalized. This provides the opportunity to sneak option values in programmatically, overriding or supplementing user-supplied values from the config files and command line. You'll have to re-finalize the command object (by calling 'finalize_options()' or 'ensure_finalized()') before using it for real. 'command' should be a command name (string) or command object. If 'reinit_subcommands' is true, also reinitializes the command's sub-commands, as declared by the 'sub_commands' class attribute (if it has one). See the "install" command for an example. Only reinitializes the sub-commands that actually matter, ie. those whose test predicates return true. Returns the reinitialized command object. rr) rrrr!r& finalizedinitialize_optionsr`rget_sub_commandsreinitialize_command)rnrsreinit_subcommandsrr)subs rr2z!Distribution.reinitialize_commands& *)))))'7++ 6"L**<88GG"3355L  N""$$$&' l# !!'***  C//11 C C))#/ABBBBrc0tj||dSNr )rnrlevels rrzDistribution.announces srcD|jD]}||dS)zRun each command that was seen on the setup script command line. Uses the list of commands found and cache of command objects created by 'get_command_obj()'. N)r run_command)rnrs r run_commandszDistribution.run_commandss6 = " "C   S ! ! ! ! " "rc|j|rdStjd|||}||d|j|<dS)aDo whatever it takes to run a command (including nothing at all, if the command has already been run). Specifically: if we have already created and run the command named by 'command', return silently without doing anything. If the command named by 'command' doesn't even have a command object yet, create one. Then invoke 'run()' on that command object (or an existing one). Nz running %sr )r`rar infor!ensure_finalizedrun)rnrsr s rr9zDistribution.run_commandsw =  W % %  F w'''&&w//  """ !" grcDt|jp|jpgdkSNr)rrRrUrs rhas_pure_moduleszDistribution.has_pure_moduless#4=9DO9r::Q>>rc@|jot|jdkSr@)rXrrs rhas_ext_moduleszDistribution.has_ext_moduless =C(8$9$9A$==rc@|jot|jdkSr@)rVrrs rhas_c_librarieszDistribution.has_c_librariess~9#dn"5"5"99rcR|p|Sr6)rArCrs r has_moduleszDistribution.has_moduless%$$&&@$*>*>*@*@@rc@|jot|jdkSr@)rWrrs r has_headerszDistribution.has_headers|5DL 1 1A 55rc@|jot|jdkSr@)r\rrs r has_scriptszDistribution.has_scriptsrJrc@|jot|jdkSr@)r]rrs rhas_data_fileszDistribution.has_data_filess;3t#7#7!#;;rc~|o)| o| Sr6)rArCrErs ris_purezDistribution.is_puresD%%''+((***+((*** ,rr6)NNr@)r r9))r __module__ __qualname____doc__rrrrFrrzrcrrrrrrrmrrrrrrrr!rr2r INFOrr:r9rArCrErGrIrLrNrPrrrrr,s  *NL+ + + OXNM_MMMY'L\ \ \ \ |   88888...`64646464tAAAF   YYYv 4 4 41210+0+0+0+d&#&#&#PAAA"000BD   $E$E$EL6*0*0*0*0X%%%%R#&("""###(???>>>:::AAA666666<<<,,,,,rrceZdZdZdZd#dZdZdZdZdZ d Z d Z d Z d Z d ZdZdZdZdZdZdZeZdZdZdZdZdZdZdZdZdZdZdZ dZ!d Z"d!Z#d"Z$dS)$rHz]Dummy class to hold the distribution meta-data: name, version, author, and so forth. )r&r'r* author_emailr,maintainer_emailr.r/r1long_descriptionr4r2r)r- contact_emailr3 download_urlr5r6r7Nc@|$|t|dSd|_d|_d|_d|_d|_d|_d|_d|_ d|_ d|_ d|_ d|_ d|_d|_d|_d|_d|_dSr6) read_pkg_fileopenr&r'r*rVr,rWr.r/r1rXr4r2r3rZr5r6r7)rnrs rrzzDistributionMetadata.__init__ s     tDzz * * * * *DIDLDK $D "DO$(D !DHDL#D $(D ! DM!DN#D  $D  DM DM!DNNNrct|fd}fd}d}|d|_|d|_|d|_|d|_d|_|d |_d|_|d |_|d |_ d vr|d |_ nd|_ |d |_ |d|_dvr#|d d|_ |d|_|d|_|dkr2|d|_|d|_|d|_dSd|_d|_d|_dS)z-Reads the metadata values from a file object.c(|}|dkrdS|SNUNKNOWNr)r&rrs r _read_fieldz7DistributionMetadata.read_pkg_file.._read_field(s!IE !!tLrcD|d}|gkrdS|Sr6)get_all)r&valuesrs r _read_listz6DistributionMetadata.read_pkg_file.._read_list.s)[[t,,F||tMrzmetadata-versionr&r'summaryr*Nr+z home-pager/z download-urlr1r4rplatform classifier1.1r6r5r7)rr&r'r1r*r,rVrWr.r/rZrXrr4r2r3r6r5r7)rnfilerbrfmetadata_versionrs @rr\z"DistributionMetadata.read_pkg_file$s%%            12K'' "{9-- &;y11!k(++ 'K77 $;{++"{9-- S + N ; ;D   $D  + M : :&;y11   'K 3399#>>DM#J//%:l33 u $ $&Jz22DM&Jz22DM'Z 44DNNN DM DM!DNNNrcttj|ddd5}||ddddS#1swxYwYdS)z7Write the PKG-INFO file into the release tree. zPKG-INFOwzUTF-8)encodingN)r]rrrwrite_pkg_file)rnbase_dirpkg_infos rwrite_pkg_infoz#DistributionMetadata.write_pkg_infoXs"',,x44c"$$$ *'/    ) ) ) * * * * * * * * * * * * * * * * * *sAAAcd}|js|js|js|js|jrd}|d|z|d|z|d|z|d|z|d| z|d| z|d | z|d | z|jr|d |jzt|}|d |zd |}|r|d|z||d|||d|||d|||d|||d|dS)z9Write the PKG-INFO format data to a file object. z1.0rjzMetadata-Version: %s z Name: %s z Version: %s z Summary: %s zHome-page: %s z Author: %s zAuthor-email: %s z License: %s zDownload-URL: %s zDescription: %s rz Keywords: %s Platform ClassifierRequiresProvides ObsoletesN)r5r6r7r3rZrhget_name get_versionget_descriptionget_url get_contactget_contact_email get_licenser get_long_descriptionr get_keywords _write_list get_platformsget_classifiers get_requires get_provides get_obsoletes)rnrkr' long_descr4s rrpz#DistributionMetadata.write_pkg_file_s M T] dn   $($5 G +g5666 <$--//1222 ?T%5%5%7%77888 ?T%9%9%;%;;<<< $t||~~5666 >D$4$4$6$66777 '$*@*@*B*BBCCC ?T%5%5%7%77888   A JJ+d.?? @ @ @!$";";"="=>>  &233388D--//00  4 JJ'(2 3 3 3 z4+=+=+?+?@@@ |T-A-A-C-CDDD z4+<+<+>+>??? z4+<+<+>+>??? {D,>,>,@,@AAAAArcF|D]}||d|ddS)Nz: rB)rh)rnrkr&rers rrz DistributionMetadata._write_lists= 3 3E JJTTT5551 2 2 2 2 3 3rc|jpdSr`)r&rs rrzzDistributionMetadata.get_namesy%I%rc|jpdS)Nz0.0.0)r'rs rr{z DistributionMetadata.get_versions|&w&rcX|d|S)NrD)rzr{rs r get_fullnamez!DistributionMetadata.get_fullnames(--////4+;+;+=+=+=>>rc|jpdSr`)r*rs r get_authorzDistributionMetadata.get_authors{'i'rc|jpdSr`)rVrs rget_author_emailz%DistributionMetadata.get_author_email -I-rc|jpdSr`)r,rs rget_maintainerz#DistributionMetadata.get_maintainers+)+rc|jpdSr`)rWrs rget_maintainer_emailz)DistributionMetadata.get_maintainer_email$1 1rc"|jp|jpdSr`)r,r*rs rr~z DistributionMetadata.get_contacts:$+::rc"|jp|jpdSr`)rWrVrs rrz&DistributionMetadata.get_contact_emails$F(9FYFrc|jpdSr`)r.rs rr}zDistributionMetadata.get_urlsx$9$rc|jpdSr`)r/rs rrz DistributionMetadata.get_licenses|(y(rc|jpdSr`)r1rs rr|z$DistributionMetadata.get_descriptions,9,rc|jpdSr`)rXrs rrz)DistributionMetadata.get_long_descriptionrrc|jpgSr6)r4rs rrz!DistributionMetadata.get_keywords}""rc0t|d|_dS)Nr4)rr4rnrs r set_keywordsz!DistributionMetadata.set_keywordss$UJ77 rc|jpdgSr`)r2rs rrz"DistributionMetadata.get_platformss~,),rc0t|d|_dS)Nr2)rr2rs r set_platformsz"DistributionMetadata.set_platformss%e[99rc|jpgSr6)r3rs rrz$DistributionMetadata.get_classifierss%2%rc0t|d|_dS)Nr3)rr3rs rset_classifiersz$DistributionMetadata.set_classifierss'}==rc|jpdSr`)rZrs rget_download_urlz%DistributionMetadata.get_download_urlrrc|jpgSr6)r6rs rrz!DistributionMetadata.get_requiresrrctddl}|D]}|j|t||_dSr@)distutils.versionpredicateversionpredicateVersionPredicaterr6rnrrrs r set_requiresz!DistributionMetadata.set_requiressH)))) ; ;A  & 7 7 : : : :U  rc|jpgSr6)r5rs rrz!DistributionMetadata.get_providesrrcrd|D}|D] }ddl}|j|!||_dS)Nc6g|]}|Srr)r;rs rr=z5DistributionMetadata.set_provides..s ***q***rr)rrsplit_provisionr5)rnrrrs r set_providesz!DistributionMetadata.set_providessU**E*** : :A - - - -  & 6 6q 9 9 9 9 rc|jpgSr6)r7rs rrz"DistributionMetadata.get_obsoletess~##rctddl}|D]}|j|t||_dSr@)rrrrr7rs r set_obsoletesz"DistributionMetadata.set_obsoletessH)))) ; ;A  & 7 7 : : : :err6)%rrQrRrSrJrzr\rsrprrzr{rrrrrr~rr}r get_licencer|rrrrrrrrrrrrrrrrrrHrHs """".2"2"2"h*** B B BD333 &&&'''???(((...,,,222;;;GGG%%%)))K---222###888---:::&&&>>>...###$$$ ###$$$%%%%%rrHcNg}|D]}||dd |S)zConvert a 4-tuple 'help_options' list as found in various command classes to the 3-tuple form required by FancyGetopt. r)r)rA new_options help_tuples rrrs=K,, :ac?++++ r)rSrfrreemailrrdrdistutils.errorsdistutils.fancy_getoptrrdistutils.utilrrr rr distutils.debugr compilerrrrHrrrrrsx  ######OOOOHHHAAAAAAAABBBBBBBBBB!!!!!! RZ4 5 5    J,J,J,J,J,J,J,J,f`%`%`%`%`%`%`%`%Ds %%PK!$'BB(__pycache__/fancy_getopt.cpython-311.pycnu[ 0ixE dZddlZddlZddlZddlZddlTdZejdezZejdededZ e d d Z Gd d Z d ZdejDZdZdZGddZedkrGdZdD]DZedezedeeeeCdSdS)a6distutils.fancy_getopt Wrapper around the standard getopt module that provides the following additional features: * short and long options are tied together * options have help strings, so fancy_getopt could potentially create a complete usage summary * options set attributes of a passed-in object N)*z[a-zA-Z](?:[a-zA-Z0-9-]*)z^%s$z^(z)=!(z)$-_cpeZdZdZddZdZdZddZdZdZ d Z d Z d Z d Z dd ZdZddZddZdS) FancyGetoptaWrapper around the standard 'getopt()' module that provides some handy extra functionality: * short and long options are tied together * options have help strings, and help text can be assembled from them * options set attributes of a passed-in object * boolean options can have "negative aliases" -- eg. if --quiet is the "negative alias" of --verbose, then "--quiet" on the command line sets 'verbose' to false Nc||_i|_|jr|i|_i|_g|_g|_i|_i|_i|_ g|_ dSN) option_table option_index _build_indexaliasnegative_alias short_opts long_opts short2long attr_name takes_arg option_orderselfr s =/opt/alt/python311/lib64/python3.11/distutils/fancy_getopt.py__init__zFancyGetopt.__init__)s{)         !  cl|j|jD]}||j|d<dS)Nr)r clearr )roptions rr zFancyGetopt._build_indexQsG !!!' 2 2F+1D fQi ( ( 2 2rc<||_|dSr )r r rs rset_option_tablezFancyGetopt.set_option_tableVs"( rc||jvrtd|z|||f}|j|||j|<dS)Nz'option conflict: already an option '%s')r DistutilsGetoptErrorr append)r long_option short_option help_stringrs r add_optionzFancyGetopt.add_optionZse $+ + +&;kIKK K"<=F   $ $V , , ,-3D k * * *rc||jvS)zcReturn true if the option table for this parser has an option with long name 'long_option'.)r rr"s r has_optionzFancyGetopt.has_optioncsd///rc6|tS)zTranslate long option name 'long_option' to the form it has as an attribute of some object: ie., translate hyphens to underscores. translate longopt_xlater's r get_attr_namezFancyGetopt.get_attr_namehs$$]333rc t|tsJ|D]I\}}||jvrt d|d|d|d||jvrt d|d|d|dJdS)Nzinvalid z 'z ': option 'z ' not defined': aliased option ') isinstancedictitemsr r )raliaseswhatr opts r_check_alias_dictzFancyGetopt._check_alias_dictns'4(((((#MMOO P PLUCD---**59TT555%%%,IJJJ$+++**=ATT555###,OPPP,  P Prc@||d||_dS)z'Set the aliases for this option parser.r N)r6r )rr s r set_aliaseszFancyGetopt.set_aliasesxs# ug... rc@||d||_dS)zSet the negative aliases for this option parser. 'negative_alias' should be a dictionary mapping option names to option names, both the key and value must already be defined in the option table.znegative aliasN)r6r)rrs rset_negative_aliasesz FancyGetopt.set_negative_aliases}s) ~/?@@@,rcg|_g|_|ji|_|jD]$}t |dkr |\}}}d}n-t |dkr|\}}}}ntd|t|trt |dkrtd|z|:t|trt |dkstd |z||j|<|j ||d d kr|r|d z}|dd }d|j |<nS|j |}|-|j |rtd |d|d||jd <d|j |<|j|}|2|j ||j |krtd|d|dt |std|z|||j|<|r*|j |||j|d<&dS)zPopulate the various data structures that keep tabs on the option table. Called by 'getopt()' before it can do anything worthwhile. rzinvalid option tuple: z9invalid long option '%s': must be a string of length >= 2Nz:invalid short option '%s': must a single character or None=:zinvalid negative alias 'r/z' takes a valuezinvalid alias 'z%': inconsistent with aliased option 'z/' (one of them takes a value, the other doesn'tzEinvalid long option name '%s' (must be letters, numbers, hyphens only)rrrrrepeatr len ValueErrorr0strr r!rrgetr longopt_rematchr-r)rrlongshorthelprCalias_tos r_grok_option_tablezFancyGetopt._grok_option_tables   'A 1A 1F6{{a$*!eTV!!,2)eT66!jvv!GHHHdC(( BCIIMM*-9<@,ABBBm ,,$14Uq*,9;@,ABBB!'DK  N ! !$ ' ' 'Bx3-%#+%AbDz'(t$$ .22488'~h/222"&xxx1222 *.DN2&'(t$z~~d++H#>$'4>(+CCC.."TT888-...##D)) I*ACGHIII$(#5#5d#;#;DN4  1&&u---,0a)CA 1A 1rc|tjdd}|t}d}nd}|d|j} t j|||j\}}n&#t j$r}t|d}~wwxYw|D].\}}t|dkr |ddkr|j |d}n-t|dkr|ddd ksJ|dd}|j |} | r| }|j|s3|d ks Jd |j |} | r| }d}nd}|j|} |r.|j | t%|| ddz}t'|| ||j||f0|r||fS|S) aParse command-line options in args. Store as attributes on object. If 'args' is None or not supplied, uses 'sys.argv[1:]'. If 'object' is None or not supplied, creates a new OptionDummy object, stores option values there, and returns a tuple (args, object). If 'object' is supplied, it is modified in place and 'getopt()' just returns 'args'; in both cases, the returned 'args' is a modified copy of the passed-in 'args' list, which is left untouched. Nr?TF r>rrz--zboolean option can't have value)sysargv OptionDummyrNjoinrgetoptrerrorDistutilsArgErrorrDrr rGrrrrCgetattrsetattrrr!) rargsobjectcreated_objectroptsmsgr5valr attrs rrVzFancyGetopt.getopts <8ABB ]]F!NN"N !!!XXdo..  )tZHHJD$$| ) ) )#C(( ( ) 1 1HC3xx1}}Q3oc!f-3xx!||BQB47!""gJNN3''E >#& byyy"Cyyy+//44CCCC>#&D 3t{t,,8fdA..2 FD# & & &   $ $c3Z 0 0 0 0  < KsA::B BBc<|jtd|jS)zReturns the list of (option, value) tuples processed by the previous run of 'getopt()'. Raises RuntimeError if 'getopt()' hasn't been called yet. Nz!'getopt()' hasn't been called yet)r RuntimeError)rs rget_option_orderzFancyGetopt.get_option_orders%   $BCC C$ $rcd}|jD]A}|d}|d}t|}|ddkr|dz }||dz}||kr|}B|dzdzdz}d}||z } d |z} |r|g} nd g} |jD]}|dd \}}} t| | } |ddkr |dd}|?| r"| d ||| dfzn_| d ||fznD|d|d}| r"| d ||| dfzn| d|z| ddD]}| | |z| S)zGenerate help text (a list of strings, one per suggested line of output) from the option table for this FancyGetopt object. rr?r@rANr>NrPzOption summary:r<z --%-*s %sz --%-*s z (-)z --%-*s)r rD wrap_textr!)rheadermax_optrrJrKl opt_width line_width text_width big_indentlinesrLtext opt_namess r generate_helpzFancyGetopt.generate_helps'  F!9D1IED ABx3E E7{{aK!Oa' 0 )+ 9_  (HEE&'E' - -F &rr D%T:..DBx3AbDz}ALL7D$q'2J!JKKKKLL$!?@@@@ +/$$6 9LL")9d1g!>"?@@@@LLi!7888!""X - - Z!^,,,, - rc| tj}||D]}||dzdS)N )rRstdoutrtwrite)rrjfilelines r print_helpzFancyGetopt.print_helphsN <:D&&v.. $ $D JJtd{ # # # # $ $rr )NN)__name__ __module__ __qualname____doc__rr rr%r(r-r6r8r:rNrVrdrtr{rrrrs  &&&&P222 4444000 444 PPP ---K1K1K1Z;;;;z%%%MMMM^$$$$$$rrcvt|}|||||Sr )rr:rV)options negative_optr\r[parsers r fancy_getoptros7  ! !F  --- ==v & &&rc.i|]}t|dS)rP)ord).0_wschars r rus @ @ @7CLL3 @ @ @rc|gSt||kr|gS|}|t}t jd|}d|D}g}|rg}d}|r\t|d}||z|kr$||d|d=||z}n|r|dddkr|d=n|\|rQ|dkr6||dd||d|d|d<|dddkr|d=|d|||S)zwrap_text(text : string, width : int) -> [string] Split 'text' into multiple lines of no more than 'width' characters each, and return the list of strings that results. Nz( +|-+)cg|]}||Srr)rchs r zwrap_text..s ( ( (RR (b ( ( (rrr@rPrQ)rD expandtabsr+WS_TRANSresplitr!rU)rrwidthchunksrqcur_linecur_lenrls rririws  |  4yyEv ??  D >>( # #D Xj$ ' 'F ( (6 ( ( (F E  ( F1IA{e##q ***1I!A+% Q3 6 6     !||q !E' 2333"1Ieff-q ay|s""1I  RWWX&&'''A  (D Lrc6|tS)zXConvert a long option name to a valid Python identifier by changing "-" to "_". r*)r5s rtranslate_longoptrs == ' ''rceZdZdZgfdZdS)rTz_Dummy class just used as a place to hold command-line option values as instance attributes.c2|D]}t||ddS)zkCreate a new OptionDummy instance. The attributes listed in 'options' will be initialized to None.N)rZ)rrr5s rrzOptionDummy.__init__s2 % %C D#t $ $ $ $ % %rN)r|r}r~rrrrrrTrTs7&& "%%%%%%rrT__main__zTra-la-la, supercalifragilisticexpialidocious. How *do* you spell that odd word, anyways? (Someone ask Mary -- she'll know [or she'll say, "How should I know?"].)) (z width: %drv)rrRstringrrVdistutils.errors longopt_patcompilerH neg_alias_rerF maketransr,rr whitespacerrirrTr|rrwprintrUrrrrs  + RZ+- . . rzzKKKEFF  c3'' O$O$O$O$O$O$O$O$d ''' A @f.? @ @ @333l(((%%%%%%%% z D  kAo dii $**++,,, rPK!e<e`e` __pycache__/util.cpython-311.pycnu[ 0i(RdZddlZddlZddlZddlZddlZddlZddlm Z ddl m Z ddl m Z ddlmZddlmZdZd Zd Zd Zdad Zd ZddZdxaxaadZdZddZdZ ddZdZ ddZ! ddZ"GddZ#dS) zudistutils.util Miscellaneous utility functions -- anything that doesn't fit into one of the other *util.py modules. N)DistutilsPlatformError)newer)spawn)log)DistutilsByteCompileErrorctjdkrrdtjvrdSdtjvrdSdtjvrdStjSdtjvrtjdStjd ksttd s tjStj\}}}}}| d d }| d d}| d d}|dddkr|d|S|dddkrQ|ddkrDd}dt|ddz |ddfz}ddd}|d|tj zz }n|dddkrddl m }|S|dd d!krMd!}tjd"tj}||}|r|}nI|dd d#kr;ddl} ddl} | | j|||\}}}|d|d|S)$aReturn a string that identifies the current platform. This is used mainly to distinguish platform-specific build directories and platform-specific built distributions. Typically includes the OS name and version and the architecture (as supplied by 'os.uname()'), although the exact information included depends on the OS; eg. on Linux, the kernel version isn't particularly important. Examples of returned values: linux-i586 linux-alpha (?) solaris-2.6-sun4u Windows will return one of: win-amd64 (64bit Windows on AMD64 (aka x86_64, Intel64, EM64T, etc) win32 (all others - specifically, sys.platform is returned) For other non-POSIX platforms, currently just returns 'sys.platform'. ntamd64 win-amd64z(arm) win-arm32z(arm64)z win-arm64_PYTHON_HOST_PLATFORMposixuname/ _-Nlinuxsunosr5solarisz%d.%s32bit64bit)ilz.%saix) aix_platformcygwinz[\d.]+darwin)osnamesysversionlowerplatformenvironhasattrrreplaceintmaxsize _aix_supportrrecompileASCIImatchgroup _osx_supportdistutils.sysconfigget_platform_osx sysconfigget_config_vars) osnamehostreleaser&machinebitnessrrel_remr4 distutilss 5/opt/alt/python311/lib64/python3.11/distutils/util.pyget_host_platformrBs( w$ ck'')) ) ); ck'')) ) );  ))++ + +;|"*,,z122 w'W!5!5|13 -VT7GW\\^^ # #C , ,Fooc3''Gooc3''G bqbzW"6677++ w   1:  FWQZ1!4gabbk BBG#*wGGG uws{33 3G u  ------|~~ x  Y11 LL ! !  ggiiG x  00000000#/#@#@(1(;(K(K(M(M(.$B$B  '' 22ctjdkrFdddd}|tjdp t St S)Nr win32r r )x86x64armVSCMD_ARG_TGT_ARCH)r#r$getr)rB)TARGET_TO_PLATs rA get_platformrLcs_ w$   !!"*..1E"F"FGG^K\K^K^^ """rCcLtjdkr|S|s|S|ddkrtd|z|ddkrtd|z|d}d|vr|dd|v|s tjStjj|S)aReturn 'pathname' as a name that will work on the native filesystem, i.e. split it on '/' and put it back together again using the current directory separator. Needed because filenames in the setup script are always supplied in Unix style, and have to be converted to the local convention before we can actually use them in the filesystem. Raises ValueError on non-Unix-ish systems if 'pathname' either starts or ends with a slash. rrzpath '%s' cannot be absolutezpath '%s' cannot end with '/'.)r#sep ValueErrorsplitremovecurdirpathjoin)pathnamepathss rA convert_pathrYns v}} {c7(BCCC|s88CDDD NN3  E ,, S ,, y 7< rCctjdkrgtj|s tj||Stj||ddStjdkrXtj|\}}|ddkr |dd}tj||St dtjz)a Return 'pathname' with 'new_root' prepended. If 'pathname' is relative, this is equivalent to "os.path.join(new_root,pathname)". Otherwise, it requires making 'pathname' relative and then joining the two, which is tricky on DOS/Windows and Mac OS. rNr r\z!nothing known about platform '%s')r#r$rUisabsrV splitdriver)new_rootrWdriverUs rA change_rootras  w'w}}X&& 87<<(33 37<<(122,77 7 D**844  7d??8Dw||Hd+++%%H27%RSSSrCcVtrdStjdkrddtjvrV ddl}|tjdtjd<n#ttf$rYnwxYwdtjvrttjd<dadS)aLEnsure that 'os.environ' has all the environment variables we guarantee that users can use in config files, command-line options, etc. Currently this includes: HOME - user's home directory (Unix only) PLAT - description of the current platform, including hardware and OS (see 'get_platform()') NrHOMErrPLATr[) _environ_checkedr#r$r)pwdgetpwuidgetuid ImportErrorKeyErrorrL)rfs rA check_environrks w'fBJ66  JJJ!$bikk!:!:1!=BJv  X&    D  RZ)^^ 6s=A''A;:A;ct|fd} tjd||S#t$r}t d|zd}~wwxYw)aPerform shell/Perl-style variable substitution on 'string'. Every occurrence of '$' followed by a name is considered a variable, and variable is substituted by the value found in the 'local_vars' dictionary, or in 'os.environ' if it's not in 'local_vars'. 'os.environ' is first checked/augmented to guarantee that it contains certain values: see 'check_environ()'. Raise ValueError for any variables not found in either 'local_vars' or 'os.environ'. c|d}||vrt||Stj|S)Nr[)r3strr#r))r2 local_varsvar_names rA_substzsubst_vars.._substs<;;q>> z ! !z(+,, ,:h' 'rCz\$([a-zA-Z_][a-zA-Z_0-9]*)zinvalid variable '$%s'N)rkr/subrjrQ)srorqvars rA subst_varsrusqOOO",((((9v3VQ??? 9991C78889s+ A AA error: c&|t|zSN)rn)excprefixs rAgrok_environment_errorr{s CHH rCctjdtjzatjdatjdadS)Nz [^\\\'\"%s ]*z'(?:[^'\\]|\\.)*'z"(?:[^"\\]|\\.)*")r/r0string whitespace _wordchars_re _squote_re _dquote_rerCrA _init_regexrs>J/&2CCDDM011J011JJJrCc"tt|}g}d}|rt||}|}|t |kr||d|n}||tjvr=||d|||d }d}n||dkr|d|||dzdz}|dz}n||dkrt||}n@||dkrt||}ntd||z|td||z|\}}|d|||dz|dz z||dz}|d z }|t |kr||n||S) aSplit a string up according to Unix shell-like rules for quotes and backslashes. In short: words are delimited by spaces, as long as those spaces are not escaped by a backslash, or inside a quoted string. Single and double quotes are equivalent, and the quote characters can be backslash-escaped. The backslash is stripped from any two-character escape sequence, leaving only the escaped character. The quote characters are stripped from any quoted string. Returns a list of words. Nrr\r['"z!this can't happen (bad char '%c')z"bad string (mismatched %s quotes?)r)rrstripr2endlenappendr}r~lstriprr RuntimeErrorrQspan)rswordsposr?rbegs rA split_quotedrskmmm  A E C "   3 ' 'eegg #a&&== LL4C4 ! ! !  S6V& & & LL4C4 ! ! !#$$  ACC sVt^^$3$!CEFF)#Aa%CCv}}$$Q,,33$$Q,,"#F3#OPPPy !E#!NOOOJS#$3$!CE#a%K.(1STT72A%%''A+C #a&&== LLOOO E "H LrCc|&|j|}|dddkr |dddz}tj||s||dSdS)aPerform some action that affects the outside world (eg. by writing to the filesystem). Such actions are special because they are disabled by the 'dry_run' flag. This method takes care of all that bureaucracy for you; all you have to do is supply the function to call and an argument tuple for it (to embody the "external action" being performed), and an optional message to print. Nz,)r))__name__rinfo)funcargsmsgverbosedry_runs rAexecuter!sk { tt, rss8t  ad)c/CHSMMM  d rCcf|}|dvrdS|dvrdStd|)zConvert a string representation of truth to true (1) or false (0). True values are 'y', 'yes', 't', 'true', 'on', and '1'; false values are 'n', 'no', 'f', 'false', 'off', and '0'. Raises ValueError if 'val' is anything else. )yyesttrueon1r[)nnoffalseoff0rzinvalid truth value )r'rQ)vals rA strtoboolr4sH ))++C 222q 5 5 5qjSS:;;;rCr[cFddl}tjrtd||dk}|s ddlm} | d\} } n##t $rddlm} d| d} } YnwxYwtj d| |s| tj | d } nt| d } | 5| d | d tt |d z| d |d|d|d|d|d dddn #1swxYwYt"j}tjg}|||d|d|| t/||t1tj| fd| z|dSddlm}|D]@}|dddkr|dkr,|dkrdn|}t8j||}nt8j|}|}|rG|dt?||krtAd|d||t?|d}|r tj!||}tj!"|}|rO|stG||r'tj d|||s ||||*tj$d||BdS)a~Byte-compile a collection of Python source files to .pyc files in a __pycache__ subdirectory. 'py_files' is a list of files to compile; any files that don't end in ".py" are silently skipped. 'optimize' must be one of the following: 0 - don't optimize 1 - normal optimization (like "python -O") 2 - extra optimization (like "python -OO") If 'force' is true, all files are recompiled regardless of timestamps. The source filename encoded in each bytecode file defaults to the filenames listed in 'py_files'; you can modify these with 'prefix' and 'basedir'. 'prefix' is a string that will be stripped off of each source filename, and 'base_dir' is a directory name that will be prepended (after 'prefix' is stripped). You can supply either or both (or neither) of 'prefix' and 'base_dir', as you wish. If 'dry_run' is true, doesn't actually do anything that would affect the filesystem. Byte-compilation is either done directly in this interpreter process with the standard py_compile module, or indirectly by writing a temporary script and executing it. Normally, you should let 'byte_compile()' figure out to use direct compilation or not (see the source for details). The 'direct' flag is used by the script generated in indirect mode; unless you know what you're doing, leave it set to None. rNzbyte-compiling is disabled.T)mkstemp.py)mktempz$writing byte-compilation script '%s'wz2from distutils.util import byte_compile files = [ z, z] z byte_compile(files, optimize=z, force=z, prefix=z , base_dir=z, verbose=z$, dry_run=0, direct=1) z -Wignore:z:DeprecationWarning)rz removing %s)r0r) optimizationzinvalid prefix: filename z doesn't start with zbyte-compiling %s to %sz%skipping byte-compilation of %s to %s)% subprocessr%dont_write_bytecodertempfilerrirrrr#fdopenopenwriterVmapreprr@_DEPRECATION_MESSAGE executableextend"_optim_args_from_interpreter_flagsrrrrS py_compiler0 importlibutilcache_from_sourcerrQrUbasenamerdebug)py_filesoptimizeforcerzbase_dirrrdirectrr script_fd script_namerscriptrcmdr0fileoptcfiledfile cfile_bases rA byte_compilerDs"H G'(EFFF~ (A  Z0 ; ( ( ( ( ( ('.wu~~ $Y  ; ; ; ' ' ' ' ' ''+VVE]] YYY ; 7EEE 4$9c22k3// 4 4 & UZZD((;(;<=;+F ! ! ! ! ! ! '&&&&& 0 0DBCCyE!! 1}}$MMbbx!88s9,,"88>>E , V %//$*"ddFF&,---c&kkll+ 6 Xu55))%00J 00E$..0H6jIII"4eU333IE"J000? 0 0s$AA! A!%A9D**D.1D.cZ|d}d}||S)zReturn a version of the string escaped for inclusion in an RFC-822 header, by ensuring there are 8 spaces space after each newline.  z )rRrV)headerlinesrPs rA rfc822_escapers* LL  E C 88E??rCc|sdSddlm}m}Gdd|}| |d}|||}||d dS) a Invoke 2to3 on a list of Python files. The files should all come from the build area, as the modification is done in-place. To reduce the build time, only files modified since the last invocation of this function should be passed in the files argument.Nr)RefactoringToolget_fixers_from_packagec eZdZdZdZdZdS)*run_2to3..DistutilsRefactoringToolc*tj|g|RdSrx)rerror)selfrrkws rA log_errorz4run_2to3..DistutilsRefactoringTool.log_error Ic !D ! ! ! ! ! !rCc*tj|g|RdSrx)rrrrrs rA log_messagez6run_2to3..DistutilsRefactoringTool.log_messages HS 4 rCc*tj|g|RdSrx)rrrs rA log_debugz4run_2to3..DistutilsRefactoringTool.log_debugrrCN)r __module__ __qualname__rrrrrCrADistutilsRefactoringToolrsA " " " ! ! ! " " " " "rCrz lib2to3.fixes)optionsT)r)lib2to3.refactorrrrefactor)files fixer_namesrexplicitrrrrs rArun_2to3rs JIIIIIII"""""?"""--o>>   g>>>AJJuDJ!!!!!rCc2ddlm}ddlm}ddlm}|} t j} t j| | t j| n#t j| wxYw| j | j dd<|rC| D].} | } | s| | /g} | j D]} t j|| }|t j||t j|| |d}|dr| |t'd| D||| | S) zRecursively copy a directory, only copying new and changed files, running run_2to3 over all newly copied Python modules afterward. If you give a template string, it's parsed like a MANIFEST.in. r)mkpath) copy_file)FileListNr[)updatec`g|]+}|d)|,S)r)r'endswith).0fns rA z$copydir_run_2to3..s3 @ @ @RRXXZZ%8%8%?%? @b @ @ @rC)rrr)distutils.dir_utilrdistutils.file_utilrdistutils.filelistrr#getcwdchdirfindallallfilesr splitlinesrprocess_template_linerUrVdirnamerr)srcdesttemplaterrrrrrfilelistrTlinecopiedfilenameoutnameress rAcopydir_run_2to3rs*)))))------++++++xzzH Y[[FHSMMM  )HN1111'')) 1 1D::<rs   333333$$$$$$!!!!!!666666N3N3N3` # # #   8TTT,69992+/. . Z222 888z& < < <"%&(,%& S0S0S0S0n""""6<@,0BNNNNNNNNNNrCPK!b$%33)__pycache__/unixccompiler.cpython-311.pycnu[ Pi;dZddlZddlZddlZddlmZddlmZddlm Z m Z m Z ddl m Z mZmZmZddlmZejdkrddlZGd d e ZdS) a9distutils.unixccompiler Contains the UnixCCompiler class, a subclass of CCompiler that handles the "typical" Unix-style command-line C compiler: * macros defined with -Dname[=value] * macros undefined with -Uname * include search directories specified with -Idir * libraries specified with -lllib * library search directories specified with -Ldir * compile handled by 'cc' (or similar) executable with -c option: compiles .c to .o * link static library handled by 'ar' command (possibly with 'ranlib') * link shared library handled by 'cc -shared' N) sysconfig)newer) CCompilergen_preprocess_optionsgen_lib_options)DistutilsExecError CompileErrorLibError LinkError)logdarwinc eZdZdZddgdgdgddgdgddgddZejddd krd ged <gd Zd Zd Z dZ dZ dZ dxZ xZZeZejdkrdZfdZ ddZdZ d dZ d!dZdZdZdZdZd"dZxZS)# UnixCCompilerunixNccz-sharedarz-cr) preprocessorcompiler compiler_so compiler_cxx linker_so linker_exearchiverranlibr r)z.cz.Cz.ccz.cxxz.cppz.mz.oz.az.soz.dylibz.tbdzlib%s%scygwinz.exect|||\}}}tjd}|r||vr|||||fS)z'Remove standard library path from rpathLIBDIR)super _fix_lib_argsrget_config_varremove)self libraries library_dirsruntime_library_dirslibdir __class__s >/opt/alt/python311/lib64/python3.11/distutils/unixccompiler.pyr zUnixCCompiler._fix_lib_argsUsq8=8M8M |%99;9;5 >#g-  0 NND+. / / /  ('GBQBK  + NN> * * *v : (,fk0J0J, : BGOOK88999 ( 7#####% ( ( ("3''' ( -,sC++ D 5DD c|j}tjdkrtj|||z} |||z|d|gz|zdS#t $r}t|d}~wwxYw)Nr r,)rsysplatform _osx_supportcompiler_fixupr5rr ) r#objsrcextcc_argsr;r>rr@s r)_compilezUnixCCompiler._compilexs& <8 # #&5k4;n4LNNK $ JJ{W,T3/??%& ' ' ' ' '! $ $ $s## # $s!A A2A--A2rc|||\}}|||}|||r|tj|||j|gz|z|j z|j rB ||j |gzdS#t$r}t|d}~wwxYwdStjd|dS)N) output_dirskipping %s (up-to-date))_fix_object_argslibrary_filename _need_linkr1r2r3r4r5robjectsrrr r debug)r#rRoutput_libnamerMrS target_langoutput_filenamer@s r)create_static_libzUnixCCompiler.create_static_libs,"33GZHH  ! !.Z ! H H  ??7O 4 4 C KK88 9 9 9 JJt}'()!%. / / /{ ((JJt{o->>?????)((("3--'( ( ( I0/ B B B B Bs*C C(C##C(c|||\}}||||}|\}}}t||||}t|tt dfst d| tj ||}| ||r||j z|zd|gz}| rdg|dd<| r| |dd<| r| | | tj| |tjkr|jdd}n|jdd}| dkr|jrd}tj|ddkrd}d||vr|dz }d||vtj||d krd}nd}|j||||z<t*jd krt/j||}|||zdS#t4$r}t7|d}~wwxYwt9jd |dS) Nz%'output_dir' must be a string or Noner,z-grzc++env= ld_so_aixr rN)rOr r isinstancestrtype TypeErrorr2r3joinrQrRr.r1r4r EXECUTABLErrrbasenamerCrDrErFr5rr r rS)r# target_descrRrVrMr$r%r&export_symbolsrSr:r; build_temprUr<lib_optsld_argslinkerioffsetr@s r)linkzUnixCCompiler.links #33GZHH'' <(<>> 8B5 z(UnixCCompiler._is_gcc..s(MMT4=(MMMMMMr*)gcczg++clang)any)r#rws `r)_is_gcczUnixCCompiler._is_gccs'MMMM5LMMMMMMr*ctjtjd}t jdddkrd|zSt jdddkrd|zSt jddd kr#||rd d|zgSd d|zgS||r"tjd d krd|zSd|zSd|zS)NCCrr rnfreebsdz -Wl,-rpath=zhp-uxz-Wl,+sz+sGNULDyesz-Wl,--enable-new-dtags,-Rz-Wl,-Rz-R)r2r3rcrr!rCrDr|)r#rprs r)runtime_library_dir_optionz(UnixCCompiler.runtime_library_dir_options7##I$) cz!r*c d|zS)Nz-lro)r#libs r)library_optionzUnixCCompiler.library_optionrrr*c||d}||d}||d}||d}tjdkrgtjd}t jd|} | 'tjtjd } n| d } |D]} tj | |} tj | |} tj | |}tj | |}tjdkr| d s*| d r| d stj | | d d|} tj | | d d|} tj | | d d|}tj | | d d|}tj | r| cStj |r|cStj | r| cStj |r|cSdS)Nshared)lib_typedylib xcode_stubstaticr CFLAGSz-isysroot\s*(\S+)r~rZz/System/z/usr/z /usr/local/)rPrCrDrr!researchrE_default_sysrootgroupr2r3ra startswithexists)r#dirsrrSshared_fdylib_f xcode_stub_fstatic_fcflagsmsysrootrprrrrs r)find_library_filezUnixCCompiler.find_library_files~((x(@@''g'>>,,S<,HH ((x(@@ <8 # #&-h77F .77Ay&7 8PQU8V8VWW''!**  CW\\#x00FGLLg..EW\\#x00Fc<88J|x''z**(w''(03}0M0M(gs122wAA Wc!""gw??gs122wAAW\\'3qrr7LII w~~e$$   ++ !!!!''  ''   tr*)NNNNN)NrN) NNNNNrNNNN)r)__name__ __module__ __qualname__ compiler_type executablesrCrDsrc_extensions obj_extensionstatic_lib_extensionshared_lib_extensiondylib_lib_extensionxcode_stub_lib_extensionstatic_lib_formatshared_lib_formatdylib_lib_formatxcode_stub_lib_format exe_extensionr rArKrWrlrqr|rrr __classcell__)r(s@r)rr-sM%)%)F%)F%)F%)9$5%)F%)5M$(K |BQB8##!) H:99NM "%?HHH),<, |x =====;?IM((((4 $ $ $AECCCC6:>599=?C <C<C<C<CDNNN("("("T????????r*r)__doc__r2rCr distutilsrdistutils.dep_utilrdistutils.ccompilerrrrdistutils.errorsrr r r r rDrError*r)rs0  $$$$$$8888888888;;;;;;;;;;;;<8$eeeeeIeeeeer*PK!DY))(__pycache__/archive_util.cpython-311.pycnu[ 0i|!BdZddlZddlmZddlZ ddlZn #e$rdZYnwxYwddlmZddl m Z ddl m Z ddl mZ ddlmZn #e$rdZYnwxYw dd lmZn #e$rdZYnwxYwd Zd Z dd ZddZedgdfedgdfedgdfedgdfedgdfegdfdZdZ ddZdS) zodistutils.archive_util Utility functions for creating archive files (tarballs, zip files, that sort of thing).N)warn)DistutilsExecError)spawn)mkpath)log)getpwnam)getgrnamcvt|dS t|}n#t$rd}YnwxYw||dSdS)z"Returns a gid, given a group name.N)r KeyErrornameresults =/opt/alt/python311/lib64/python3.11/distutils/archive_util.py_get_gidr\4<t$  ay 4  ,,cvt|dS t|}n#t$rd}YnwxYw||dSdS)z"Returns an uid, given a user name.Nr )rr r s r_get_uidr+rrgzipcdddddd}dddd d }|%||vrtd |d z} |dkr| ||dz } ttj| |dd l} tj dttfd} |se| | d||z} | || | n#| wxYw|dkrNtdt | ||z} t"jdkr|| | g}n|d| g}t'||| S| S)a=Create a (possibly compressed) tar file from all the files under 'base_dir'. 'compress' must be "gzip" (the default), "bzip2", "xz", "compress", or None. ("compress" will be deprecated in Python 3.2) 'owner' and 'group' can be used to define an owner and a group for the archive that is being built. If not provided, the current owner and group will be used. The output tar file will be named 'base_dir' + ".tar", possibly plus the appropriate compression extension (".gz", ".bz2", ".xz" or ".Z"). Returns the output filename. gzbz2xz)rbzip2rNcompressz.gzz.bz2z.xzz.Z)rrrrNzKbad value for 'compress': must be None, 'gzip', 'bzip2', 'xz' or 'compress'z.tarrdry_runrzCreating tar archivecH|_|_|_|_|S)N)gidgnameuiduname)tarinfor!groupownerr#s r _set_uid_gidz"make_tarball.._set_uid_gidas. ?GK!GM ?GK!GMzw|%s)filterz'compress' will be deprecated.win32z-f)keys ValueErrorgetrospathdirnametarfilerinforropenaddcloserPendingDeprecationWarningsysplatformr) base_namebase_dirrverboserr'r&tar_compression compress_ext archive_namer2r(tarcompressed_namecmdr!r#s `` @@r make_tarballrC7s" $e4r#%''O!F% $&&L 0A0A0C0C C C#$$ $v%L: ((2666  27??< ( ('::::NNNH #$$$ 5//C 5//C ll</(2K)KLL  GGH\G 2 2 2 IIKKKKCIIKKKK: -/HIII&h)?? <7 " "\?;CCT<0C c7#### s -DD/c &|dz}ttj||t?|rd}nd} t d|||g|n7#t $rt d|zwxYwtjd|||s t j |d tj }n1#t$r$t j |d tj }YnwxYw|5|tj krhtjtj|d }|||tjd |tj|D]\}} } | D]k} tjtj|| d }|||tjd |l| D]} tjtj|| }tj|r+|||tjd | dddn #1swxYwY|S) avCreate a zip file from all the files under 'base_dir'. The output zip file will be named 'base_name' + ".zip". Uses either the "zipfile" Python module (if available) or the InfoZIP "zip" utility (if installed and found on the default search path). If neither tool is available, raises DistutilsExecError. Returns the name of the output zip file. z.ziprNz-rz-rqzipzkunable to create zip file '%s': could neither import the 'zipfile' module nor find a standalone zip utilityz#creating '%s' and adding '%s' to itw) compressionrz adding '%s')rr/r0r1zipfilerrrr3ZipFile ZIP_DEFLATED RuntimeError ZIP_STOREDcurdirnormpathjoinwritewalkisfile) r:r;r<r zip_filename zipoptionsrEr0dirpathdirnames filenamesrs r make_zipfilerXsv%L 27??< ( ('::::  JJJ D 5*lH=! # # # # #! D D D%'36B&CDD D D 6x ) ) ) : FolC292FHHH F F FolC292DFFF F : :ry((7++BGLL2,F,FGGDIIdD)))H]D11146GH4E4E : :0GXy (66!w// WdB0O0OPP $---5555 )::!w// Wd0K0KLL7>>$//:IIdD111H]D999 : :  : : : : : : : : : : : : : : : s1AA7!B66+C$#C$)FJJ  J )rrzgzip'ed tar-file)rrzbzip2'ed tar-file)rrzxz'ed tar-file)rrzcompressed tar file)rNzuncompressed tar filezZIP file)gztarbztarxztarztarr@rEc*|D]}|tvr|cSdS)zqReturns the first format from the 'format' list that is unknown. If all formats are known, returns None N)ARCHIVE_FORMATS)formatsformats rcheck_archive_formatsras1   ( (MMM ) 4r)cltj}|Jtjd|tj|}|stj|| tj}d|i} t|} n #t$rtd|zwxYw| d} | dD] \} } | | | < |dkr || d<|| d < | ||fi| }|)tjd |tj|n1#|*tjd |tj|wwxYw|S) aCreate an archive file (eg. zip or tar). 'base_name' is the name of the file to create, minus any format-specific extension; 'format' is the archive format: one of "zip", "tar", "gztar", "bztar", "xztar", or "ztar". 'root_dir' is a directory that will be the root directory of the archive; ie. we typically chdir into 'root_dir' before creating the archive. 'base_dir' is the directory where we start archiving from; ie. 'base_dir' will be the common prefix of all files and directories in the archive. 'root_dir' and 'base_dir' both default to the current directory. Returns the name of the archive file. 'owner' and 'group' are used when creating a tar archive. By default, uses the current owner and group. Nzchanging into '%s'rzunknown archive format '%s'rrEr'r&zchanging back to '%s') r/getcwdrdebugr0abspathchdirrMr^r r-)r:r`root_dirr;r<rr'r&save_cwdkwargs format_infofuncargvalfilenames r make_archiverps}$y{{H &111GOOI..   HX   9 !FA%f- AAA6?@@@A q>DNSs  ww4 866v66   I-x 8 8 8 HX      I-x 8 8 8 HX      Os3 BB D.D1)rrrNN)rr)NNrrNN)__doc__r/warningsrr8rH ImportErrordistutils.errorsrdistutils.spawnrdistutils.dir_utilr distutilsrpwdrgrpr rrrCrXr^rarpr)rr{s   NNNNGGG0/////!!!!!!%%%%%%HHHHHH      KL#'FFFFP::::z124F G235H I/02B C568M N/02I JBz * KL.2222222s/!!AA AAA#"A#PK!_ > >*__pycache__/filelist.cpython-311.opt-1.pycnu[ 0i 2dZddlZddlZddlZddlZddlmZddlmZm Z ddl m Z GddZ dZ ejfd Zd Zd d ZdS)zsdistutils.filelist Provides the FileList class, used for poking about the filesystem and building lists of files. N convert_path)DistutilsTemplateErrorDistutilsInternalError)logcpeZdZdZddZdZejfdZdZ dZ dZ d Z d Z d Zd ZddZ ddZdS)FileListaA list of files built by on exploring the filesystem and filtered by applying various patterns to what we find there. Instance attributes: dir directory from which files will be taken -- only used if 'allfiles' not supplied to constructor files list of filenames currently being built/filtered/manipulated allfiles complete list of files under consideration (ie. without any filtering applied) Nc"d|_g|_dSN)allfilesfiles)selfwarn debug_prints 9/opt/alt/python311/lib64/python3.11/distutils/filelist.py__init__zFileList.__init__s  c||_dSr )r )rr s r set_allfileszFileList.set_allfiles#s   rc.t||_dSr )findallr )rdirs rrzFileList.findall&s  rc8ddlm}|rt|dSdS)z~Print 'msg' to stdout if the global DEBUG (taken from the DISTUTILS_DEBUG environment variable) flag is true. r)DEBUGN)distutils.debugrprint)rmsgrs rrzFileList.debug_print)s7 *)))))   #JJJJJ  rc:|j|dSr )r append)ritems rrzFileList.append3s $rc:|j|dSr )r extend)ritemss rr"zFileList.extend6s %     rctttjj|j}g|_|D]-}|jtjj|.dSr )sortedmapospathsplitr rjoin)rsortable_files sort_tuples rsortz FileList.sort9saBGM4: > >?? ( 9 9J J  bglJ7 8 8 8 8 9 9rctt|jdz ddD])}|j||j|dz kr|j|=*dS)Nr)rangelenr )ris rremove_duplicateszFileList.remove_duplicatesCsZs4:*Ar22 " "Az!} 1q5 111JqM " "rc|}|d}dx}x}}|dvr:t|dkrtd|zd|ddD}n|dvrOt|dkrtd |zt|d}d |ddD}nQ|d vr;t|dkrtd |zt|d}ntd |z||||fS)Nr)includeexcludeglobal-includeglobal-excludez&'%s' expects ...c,g|]}t|Sr.0ws r z1FileList._parse_template_line..W;;;A Q;;;rr/)recursive-includerecursive-excludez,'%s' expects ...c,g|]}t|Sr<rr=s rr@z1FileList._parse_template_line..]rAr)graftprunez#'%s' expects a single zunknown action '%s')r)r2rr)rlinewordsactionpatternsr dir_patterns r_parse_template_linezFileList._parse_template_lineLsV q'+++3 : : :5zzA~~,>GIII;;qrr;;;HH A A A5zzA~~,DvMOOOuQx((C;;qrr;;;HH ) ) )5zzQ,;fDFFF&uQx00KK()>)GHH H#{33rcR||\}}}}|dkr^|dd|z|D].}||dst jd|/dS|dkr^|dd|z|D].}||dst jd |/dS|d kr^|d d|z|D].}||d st jd |/dS|dkr^|dd|z|D].}||d st jd|/dS|dkrb|d|dd||D]/}|||st jd||0dS|dkrb|d|dd||D]/}|||st jd||0dS|dkrH|d|z|d|st jd|dSdS|dkrH|d|z|d|st jd|dSdStd|z)Nr6zinclude  r/)anchorz%warning: no files found matching '%s'r7zexclude z9warning: no previously-included files found matching '%s'r8zglobal-include rz>warning: no files found matching '%s' anywhere in distributionr9zglobal-exclude zRwarning: no previously-included files matching '%s' found anywhere in distributionrBzrecursive-include )prefixz:warning: no files found matching '%s' under directory '%s'rCzrecursive-exclude zNwarning: no previously-included files matching '%s' found under directory '%s'rFzgraft z+warning: no directories found matching '%s'rGzprune z6no previously-included directories found matching '%s'z'this cannot happen: invalid action '%s')rMrr*include_patternrrexclude_patternr)rrHrJrKrrLpatterns rprocess_template_linezFileList.process_template_linehsi 04/H/H/N/N,3 Y     Z#((8*<*<< = = =# & &++GA+>>&HD$&&& & & y   Z#((8*<*<< = = =# ? ?++GA+>>?H46=??? ? ? ' ' '   .(1C1CC D D D# D D++GA+>>DH9;BDDD D D ' ' '   .(1C1CC D D D# & &++GA+>>&HD$&&& & & * * *    !cc388H#5#5#57 8 8 8# + +++GC+@@+H7$c+++ + + * * *    !cc388H#5#5#57 8 8 8# + +++GC+@@+H@$c+++ + + w     X 3 4 4 4''['AA &F$&&&&& & &w     X 3 4 4 4''['AA 9*,799999 9 9);fDFF Frr/rcDd}t||||}|d|jz|j||jD]K}||r4|d|z|j|d}L|S)aSelect strings (presumably filenames) from 'self.files' that match 'pattern', a Unix-style wildcard (glob) pattern. Patterns are not quite the same as implemented by the 'fnmatch' module: '*' and '?' match non-special characters, where "special" is platform- dependent: slash on Unix; colon, slash, and backslash on DOS/Windows; and colon on Mac OS. If 'anchor' is true (the default), then the pattern match is more stringent: "*.py" will match "foo.py" but not "foo/bar.py". If 'anchor' is false, both of these will match. If 'prefix' is supplied, then only filenames starting with 'prefix' (itself a pattern) and ending with 'pattern', with anything in between them, will match. 'anchor' is ignored in this case. If 'is_regex' is true, 'anchor' and 'prefix' are ignored, and 'pattern' is assumed to be either a string containing a regex or a regex object -- no translation is done, the regex is just compiled and used as-is. Selected strings will be added to self.files. Return True if files are found, False otherwise. Fz%include_pattern: applying regex r'%s'Nz adding T)translate_patternrrTr rsearchr r)rrTrPrQis_regex files_found pattern_renames rrRzFileList.include_patterns4 &wII  @#+, - - - = LLNNNM # #D  && #  d!2333 !!$'''" rcTd}t||||}|d|jztt |jdz ddD]O}||j|r-|d|j|z|j|=d}P|S)aRemove strings (presumably filenames) from 'files' that match 'pattern'. Other parameters are the same as for 'include_pattern()', above. The list 'self.files' is modified in place. Return True if files are found, False otherwise. Fz%exclude_pattern: applying regex r'%s'r/r0z removing T)rWrrTr1r2r rX)rrTrPrQrYrZr[r3s rrSzFileList.exclude_patterns &wII  @#+, - - -s4:q("b11 # #A  A// #   1 !=>>>JqM" r)NNr/Nr)__name__ __module__ __qualname____doc__rrr'curdirrrrr"r-r4rMrUrRrSr<rrr r s   !!!)%%%%   !!!999"""4448GFGFGFX((((X:;rr cdtj|dD}ttjj|S)z% Find all files under 'path' c3hK|]-\}}}|D]$}tj||V%.dSr )r'r(r*)r>basedirsr files r z#_find_all_simple..sc D$   T4  rT) followlinks)r'walkfilterr(isfile)r(resultss r_find_all_simplerosE!#4!@!@!@G "'.' * **rct|}|tjkr5tjtjj|}t||}t|S)z Find all files under 'dir' and return the list of full filenames. Unless dir is '.', return full filenames with dir prepended. )start) ror'rc functoolspartialr(relpathr&list)rr make_rels rrrsR S ! !E bi$RW_C@@@He$$ ;;rctj|}tj}tjdkrd}d|z}t jd||}|S)zTranslate a shell-like glob pattern to a regular expression; return a string containing the regex. Differs from 'fnmatch.translate()' in that '*' does not match "special characters" (which are platform-specific). \z\\\\z\1[^%s]z((?>CE C OOc#hh,F FG */%%CCCSSQ  F&+eeZE -D-DEJ :j ! !!rr^)rbr'r|ryrrdistutils.utilrdistutils.errorsrr distutilsrr rorcrrrWr<rrrs  ''''''KKKKKKKKbbbbbbbbP + + +    .""""""""""""rPK!gT//&__pycache__/core.cpython-311.opt-2.pycnu[ 0i" ddlZddlZddlmZddlTddlmZddlmZddl m Z ddl m Z dZ d Zdadad Zd Zd ZddZdS)N)DEBUG)*) Distribution)Command) PyPIRCCommand) Extensionzusage: %(script)s [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...] or: %(script)s --help [cmd1 cmd2 ...] or: %(script)s --help-commands or: %(script)s cmd --help cltj|}tt zS)N)ospathbasenameUSAGEvars) script_namescripts 5/opt/alt/python311/lib64/python3.11/distutils/core.py gen_usager s% W  k * *F 466>) distclassr script_argsoptionsnameversionauthor author_email maintainermaintainer_emailurllicense descriptionlong_descriptionkeywords platforms classifiers download_urlrequiresprovides obsoletes)rsources include_dirs define_macros undef_macros library_dirs librariesruntime_library_dirs extra_objectsextra_compile_argsextra_link_args swig_optsexport_symbolsdependslanguagec  |d}|r|d=nt}d|vr2tjt jd|d<d|vrt jdd|d< ||xa}nC#t$r6}d|vrtd|ztd|dd |d}~wwxYwtd kr|S| tr#td |td kr|S |}n9#t $r,}tt#|jd |zzd}~wwxYwtr#td|tdkr|S|r |n#t($rtdt*$rB}tr$t jd|dtd|d}~wt0t2f$r,}trtdt5|zd}~wwxYw|S)Nrrrrrzerror in setup command: %sz error in z setup command: initz%options (after parsing config files):configz error: %sz%options (after parsing command line): commandline interruptedzerror:  )getrr r r sysargv_setup_distributionDistutilsSetupError SystemExit_setup_stop_afterparse_config_filesrprintdump_option_dictsparse_command_lineDistutilsArgErrorrr run_commandsKeyboardInterruptOSErrorstderrwriteDistutilsErrorCCompilerErrorstr)attrsklassdistmsgokexcs rsetuprW9sH IIk " "E  +  E!!!w// <<mU"""x|m(%*U5\\1dd (((   9C?@@ @*===##'(( ( (F""   ! 5666    H$$ L  $ $ & & LLL4#344}s7JJKKKL ! 5666    M))  7 7         , , ,]++ + 7 7 7 7    ###!7888 j!5666  7 7 7 7 SXX!5666  7 KsT6 B C1B??C D55 E+?'E&&E+(F=="I=HI0'IIrunc |dvrtd||atj}d|i} |tjd<||tjdd<t |d5}t ||dddn #1swxYwY|t_dan#|t_dawxYwn#t$rYnwxYwttd|ztS)N)r8r9r:rXz invalid value for 'stop_after': __file__rr7rbzZ'distutils.core.setup()' was never called -- perhaps '%s' is not a Distutils setup script?) ValueErrorrCr>r?copyopenexecreadrBr@ RuntimeError)rr stop_after save_argvgfs r run_setuprfsq<AAAjMNNN# I [!A   %%CHQK&* k4(( "AQVVXXq!!! " " " " " " " " " " " " " " "!CH $  !CH $  $ $ $ $       "?  sG2B90#B B9B##B9&B#'B9*C 9C  C CC)NrX)r r>distutils.debugrdistutils.errorsdistutils.distr distutils.cmdrdistutils.configrdistutils.extensionrr rrCr@setup_keywordsextension_keywordsrWrfrrrps !!!!!!('''''!!!!!!******))))))   L lllb>>>>>>rPK!] *__pycache__/dep_util.cpython-311.opt-2.pycnu[ 0i 0 ddlZddlmZdZdZddZdS)N)DistutilsFileErrorcb tj|s/tdtj|ztj|sdSddlm}tj||}tj||}||kS)Nzfile '%s' does not existrST_MTIME)ospathexistsrabspathstatr)sourcetargetrmtime1mtime2s 9/opt/alt/python311/lib64/python3.11/distutils/dep_util.pynewerr s 7>>& ! !: !;!#!8!8"9:: : 7>>& ! !q WV__X &F WV__X &F F?cT t|t|krtdg}g}tt|D]T}t||||r6||||||U||fS)Nz+'sources' and 'targets' must be same length)len ValueErrorrangerappend)sourcestargets n_sources n_targetsis rnewer_pairwiser s  7||s7||##FGGGII 3w<< )) WQZ ( ( )   WQZ ( ( (   WQZ ( ( ( y !!rerrorcF tj|sdSddlm}tj||}|D][}tj|s|dkrn|dkr/|dkrdStj||}||krdS\dS)Nrrrrignorer)rr r r r)rrmissingr target_mtimer source_mtimes r newer_groupr%6s  7>>& ! !q 76??8,L  w~~f%% '!!H$$G##qqwvx0 , & &11 'qr)r)rdistutils.errorsrrrr%rrr(sc"  //////*""",$$$$$$rPK!qsII&__pycache__/util.cpython-311.opt-2.pycnu[ 0i(R ddlZddlZddlZddlZddlZddlZddlmZddl m Z ddl m Z ddlm Z ddlmZdZdZd Zd Zdad Zd ZddZdxaxaadZdZddZdZ ddZdZddZ ddZ!GddZ"dS)N)DistutilsPlatformError)newer)spawn)log)DistutilsByteCompileErrorc tjdkrrdtjvrdSdtjvrdSdtjvrdStjSdtjvrtjdStjd ksttd s tjStj\}}}}}| d d }| d d}| d d}|dddkr|d|S|dddkrQ|ddkrDd}dt|ddz |ddfz}ddd}|d|tj zz }n|dddkrddl m }|S|ddd krMd }tjd!tj}||}|r|}nI|ddd"kr;ddl} ddl} | | j|||\}}}|d|d|S)#Nntamd64 win-amd64z(arm) win-arm32z(arm64)z win-arm64_PYTHON_HOST_PLATFORMposixuname/ _-linuxsunosr5solarisz%d.%s32bit64bit)ilz.%saix) aix_platformcygwinz[\d.]+darwin)osnamesysversionlowerplatformenvironhasattrrreplaceintmaxsize _aix_supportrrecompileASCIImatchgroup _osx_supportdistutils.sysconfigget_platform_osx sysconfigget_config_vars) osnamehostreleaser&machinebitnessrrel_remr4 distutilss 5/opt/alt/python311/lib64/python3.11/distutils/util.pyget_host_platformrBs& w$ ck'')) ) ); ck'')) ) );  ))++ + +;|"*,,z122 w'W!5!5|13 -VT7GW\\^^ # #C , ,Fooc3''Gooc3''G bqbzW"6677++ w   1:  FWQZ1!4gabbk BBG#*wGGG uws{33 3G u  ------|~~ x  Y11 LL ! !  ggiiG x  00000000#/#@#@(1(;(K(K(M(M(.$B$B  '' 22ctjdkrFdddd}|tjdp t St S)Nr win32r r )x86x64armVSCMD_ARG_TGT_ARCH)r#r$getr)rB)TARGET_TO_PLATs rA get_platformrLcs_ w$   !!"*..1E"F"FGG^K\K^K^^ """rCcN tjdkr|S|s|S|ddkrtd|z|ddkrtd|z|d}d|vr|dd|v|s tjStjj|S)Nrrzpath '%s' cannot be absolutezpath '%s' cannot end with '/'.)r#sep ValueErrorsplitremovecurdirpathjoin)pathnamepathss rA convert_pathrYns v}} {c7(BCCC|s88CDDD NN3  E ,, S ,, y 7< rCc tjdkrgtj|s tj||Stj||ddStjdkrXtj|\}}|ddkr |dd}tj||St dtjz)Nrr r\z!nothing known about platform '%s')r#r$rUisabsrV splitdriver)new_rootrWdriverUs rA change_rootras  w'w}}X&& 87<<(33 37<<(122,77 7 D**844  7d??8Dw||Hd+++%%H27%RSSSrCcX trdStjdkrddtjvrV ddl}|tjdtjd<n#ttf$rYnwxYwdtjvrttjd<dadS)NrHOMErrPLATr[) _environ_checkedr#r$r)pwdgetpwuidgetuid ImportErrorKeyErrorrL)rfs rA check_environrks w'fBJ66  JJJ!$bikk!:!:1!=BJv  X&    D  RZ)^^ 6s=A((A<;A<c t|fd} tjd||S#t$r}t d|zd}~wwxYw)Nc|d}||vrt||Stj|S)Nr[)r3strr#r))r2 local_varsvar_names rA_substzsubst_vars.._substs<;;q>> z ! !z(+,, ,:h' 'rCz\$([a-zA-Z_][a-zA-Z_0-9]*)zinvalid variable '$%s')rkr/subrjrQ)srorqvars rA subst_varsrusvOOO",((((9v3VQ??? 9991C78889s, A AA error: c&|t|zSN)rn)excprefixs rAgrok_environment_errorr{s CHH rCctjdtjzatjdatjdadS)Nz [^\\\'\"%s ]*z'(?:[^'\\]|\\.)*'z"(?:[^"\\]|\\.)*")r/r0string whitespace _wordchars_re _squote_re _dquote_rerCrA _init_regexrs>J/&2CCDDM011J011JJJrCc$ tt|}g}d}|rt||}|}|t |kr||d|n}||tjvr=||d|||d }d}n||dkr|d|||dzdz}|dz}n||dkrt||}n@||dkrt||}ntd||z|td||z|\}}|d|||dz|dz z||dz}|dz }|t |kr||n||S) Nrr\r['"z!this can't happen (bad char '%c')z"bad string (mismatched %s quotes?)r)rrstripr2endlenappendr}r~lstriprr RuntimeErrorrQspan)rswordsposr?rbegs rA split_quotedrskmmm  A E C "   3 ' 'eegg #a&&== LL4C4 ! ! !  S6V& & & LL4C4 ! ! !#$$  ACC sVt^^$3$!CEFF)#Aa%CCv}}$$Q,,33$$Q,,"#F3#OPPPy !E#!NOOOJS#$3$!CE#a%K.(1STT72A%%''A+C #a&&== LLOOO E "H LrCc |&|j|}|dddkr |dddz}tj||s||dSdS)Nz,)r))__name__rinfo)funcargsmsgverbosedry_runs rAexecuter!sp { tt, rss8t  ad)c/CHSMMM  d rCch |}|dvrdS|dvrdStd|)N)yyesttrueon1r[)nnoffalseoff0rzinvalid truth value )r'rQ)vals rA strtoboolr4sM ))++C 222q 5 5 5qjSS:;;;rCr[c@ ddl}tjrtd|d}|s ddlm} | d\} } n##t $rddlm} d| d} } YnwxYwtj d| |s| tj | d} nt| d} | 5| d | d tt |d z| d |d |d|d|d|d dddn #1swxYwYt"j}tjg}|||d|d|| t/||t1tj| fd| z|dSddlm}|D]@}|dddkr|dkr,|dkrdn|}t8j||}nt8j|}|}|rG|dt?||krtAd|d||t?|d}|r tj!||}tj!"|}|rO|stG||r'tj d|||s ||||*tj$d||BdS)Nrzbyte-compiling is disabled.F)mkstemp.py)mktempz$writing byte-compilation script '%s'wz2from distutils.util import byte_compile files = [ z, z] z byte_compile(files, optimize=z, force=z, prefix=z , base_dir=z, verbose=z$, dry_run=0, direct=1) z -Wignore:z:DeprecationWarning)rz removing %s)r0r) optimizationzinvalid prefix: filename z doesn't start with zbyte-compiling %s to %sz%skipping byte-compilation of %s to %s)% subprocessr%dont_write_bytecodertempfilerrirrrr#fdopenopenwriterVmapreprr@_DEPRECATION_MESSAGE executableextend"_optim_args_from_interpreter_flagsrrrrS py_compiler0 importlibutilcache_from_sourcerrQrUbasenamerdebug)py_filesoptimizeforcerzbase_dirrrdirectrr script_fd script_namerscriptrcmdr0fileoptcfiledfile cfile_bases rA byte_compilerDs" > G'(EFFF~ Z0 ; ( ( ( ( ( ('.wu~~ $Y  ; ; ; ' ' ' ' ' ''+VVE]] YYY ; 7EEE 4$9c22k3// 4 4 & UZZD((;(;<=;+F ! ! ! ! ! ! '&&&&& 0 0DBCCyE!! 1}}$MMbbx!88s9,,"88>>E , V %//$*"ddFF&,---c&kkll+ 6 Xu55))%00J 00E$..0H6jIII"4eU333IE"J000? 0 0s">AA"A9D''D+.D+c\ |d}d}||S)N z )rRrV)headerlinesrPs rA rfc822_escapers/ LL  E C 88E??rCc |sdSddlm}m}Gdd|}| |d}|||}||ddS) Nr)RefactoringToolget_fixers_from_packagec eZdZdZdZdZdS)*run_2to3..DistutilsRefactoringToolc*tj|g|RdSrx)rerror)selfrrkws rA log_errorz4run_2to3..DistutilsRefactoringTool.log_error Ic !D ! ! ! ! ! !rCc*tj|g|RdSrx)rrrrrs rA log_messagez6run_2to3..DistutilsRefactoringTool.log_messages HS 4 rCc*tj|g|RdSrx)rrrs rA log_debugz4run_2to3..DistutilsRefactoringTool.log_debugrrCN)r __module__ __qualname__rrrrrCrADistutilsRefactoringToolrsA " " " ! ! ! " " " " "rCrz lib2to3.fixes)optionsT)r)lib2to3.refactorrrrefactor)files fixer_namesrexplicitrrrrs rArun_2to3rs8 JIIIIIII"""""?"""--o>>   g>>>AJJuDJ!!!!!rCc4 ddlm}ddlm}ddlm}|} t j} t j| | t j| n#t j| wxYw| j | j dd<|rC| D].} | } | s| | /g} | j D]} t j|| }|t j||t j|| |d}|dr| |t'd| D|||| S) Nr)mkpath) copy_file)FileListr[)updatec`g|]+}|d)|,S)r)r'endswith).0fns rA z$copydir_run_2to3..s3 @ @ @RRXXZZ%8%8%?%? @b @ @ @rC)rrr)distutils.dir_utilrdistutils.file_utilrdistutils.filelistrr#getcwdchdirfindallallfilesr splitlinesrprocess_template_linerUrVdirnamerr)srcdesttemplaterrrrrrfilelistrTlinecopiedfilenameoutnameress rAcopydir_run_2to3rs *)))))------++++++xzzH Y[[FHSMMM  )HN1111'')) 1 1D::<rs   333333$$$$$$!!!!!!666666N3N3N3` # # #   8TTT,69992+/. . Z222 888z& < < <"%&(,%& S0S0S0S0n""""6<@,0BNNNNNNNNNNrCPK!$''+__pycache__/extension.cpython-311.opt-1.pycnu[ 0i!)BdZddlZddlZddlZGddZdZdS)zmdistutils.extension Provides the Extension class, used to describe C/C++ extension modules in setup scripts.Nc<eZdZdZ ddZdZdS) Extensiona Just a collection of attributes that describes an extension module and everything needed to build it (hopefully in a portable way, but there are hooks that let you be as unportable as you need). Instance attributes: name : string the full name of the extension, including any packages -- ie. *not* a filename or pathname, but Python dotted name sources : [string] list of source filenames, relative to the distribution root (where the setup script lives), in Unix form (slash-separated) for portability. Source files may be C, C++, SWIG (.i), platform-specific resource files, or whatever else is recognized by the "build_ext" command as source for a Python extension. include_dirs : [string] list of directories to search for C/C++ header files (in Unix form for portability) define_macros : [(name : string, value : string|None)] list of macros to define; each macro is defined using a 2-tuple, where 'value' is either the string to define it to or None to define it without a particular value (equivalent of "#define FOO" in source or -DFOO on Unix C compiler command line) undef_macros : [string] list of macros to undefine explicitly library_dirs : [string] list of directories to search for C/C++ libraries at link time libraries : [string] list of library names (not filenames or paths) to link against runtime_library_dirs : [string] list of directories to search for C/C++ libraries at run time (for shared extensions, this is when the extension is loaded) extra_objects : [string] list of extra files to link with (eg. object files not implied by 'sources', static library that must be explicitly specified, binary resource files, etc.) extra_compile_args : [string] any extra platform- and compiler-specific information to use when compiling the source files in 'sources'. For platforms and compilers where "command line" makes sense, this is typically a list of command-line arguments, but for other platforms it could be anything. extra_link_args : [string] any extra platform- and compiler-specific information to use when linking object files together to create the extension (or to create a new static Python interpreter). Similar interpretation as for 'extra_compile_args'. export_symbols : [string] list of symbols to be exported from a shared extension. Not used on all platforms, and not generally necessary for Python extensions, which typically export exactly one symbol: "init" + extension_name. swig_opts : [string] any extra options to pass to SWIG if a source file has the .i extension. depends : [string] list of files that the extension depends on language : string extension language (i.e. "c", "c++", "objc"). Will be detected from the source extensions if not provided. optional : boolean specifies that a build failure in the extension should not abort the build process, but simply not install the failing extension. Nc t|tstdt|trt d|Dstd||_||_|pg|_|pg|_|pg|_ |pg|_ |pg|_ |pg|_ | pg|_ | pg|_| pg|_| pg|_| pg|_|pg|_||_||_t+|dkrId|D}dt/|}d|z}t1j|dSdS)Nz'name' must be a stringc3@K|]}t|tVdS)N) isinstancestr).0vs :/opt/alt/python311/lib64/python3.11/distutils/extension.py z%Extension.__init__..ks,881Jq#&&888888z#'sources' must be a list of stringsrc,g|]}t|S)repr)r options r z&Extension.__init__..s555tF||555r z, zUnknown Extension options: %s)rrAssertionErrorlistallnamesources include_dirs define_macros undef_macros library_dirs librariesruntime_library_dirs extra_objectsextra_compile_argsextra_link_argsexport_symbols swig_optsdependslanguageoptionallenjoinsortedwarningswarn)selfrrrrrrrrrrr r!r"r#r$r%kwoptionsmsgs r __init__zExtension.__init__Ws{"$$$ < !:;; ;7D)) H8888888 H !FGG G  (.B*0b(.B(.B"b$8$>B!*0b"4":.4",2"b}"      r77Q;;55"555Giiw00G1G;C M#      ;r c`d|jj|jj|jt |fzS)Nz<%s.%s(%r) at %#x>) __class__ __module__ __qualname__rid)r+s r __repr__zExtension.__repr__s2# N % N ' I tHH ' r )NNNNNNNNNNNNNN)__name__r2r3__doc__r/r5rr r rrso>>F $ $## '+ $%)"&!%"----^r rcddlm}m}m}ddlm}ddlm}||}||ddddd} g} |} | ntj || r/| d| d cxkrd krnn| d | zd|| |} || } | d} t| g} d} | ddD]?}| | |d} tj|d}|dd }|d d}|d vr| j |u|dkr| j ||dkri|d}|d kr| j |df| j |d|||d zdf|dkr| j |'|dkr| j |I|dkr| j |k|dkr| j ||dkr| j ||dkr | j} |dkr | j} |dkr | j} |dkr%| j ||s| j} |dvr| j |'| d|zA| |  |n#|wxYw|S)z3Reads a Setup file and returns Extension instances.r)parse_makefileexpand_makefile_vars _variable_rx)TextFile) split_quoted)strip_comments skip_blanks join_lines lstrip_ws rstrip_wsTN*z'%s' lines not handled yet)z.cz.ccz.cppz.cxxz.c++z.mz.mmz-Iz-D=z-Uz-Cz-lz-Lz-Rz-rpathz-Xlinkerz -Xcompilerz-u)z.az.soz.slz.oz.dylibzunrecognized argument '%s')distutils.sysconfigr9r:r;distutils.text_filer<distutils.utilr=readlinerematchr*rappendospathsplitextrrfindrrrrrrr rclose)filenamer9r:r;r<r=varsfile extensionslinewordsmoduleextappend_next_wordwordsuffixswitchvalueequalss r read_setup_filerbsB3333333333-,,,,,++++++ >( # #D 8H#$!1 . . .DQ L #==??D|x d++ Aw$r())))c))))) 6=>>>''d33D L&&E1XFFB''C# abb 2 C2 C#/$++D111'+$))$//2acT!""XUOOOK&&t,,,,t^^$++E2222t^^"ZZ__F||)00%????)00%&/27q 2B2DEEEEt^^$++E2222t^^*11$7777t^^M((////t^^$++E2222t^^,33E::::X%%'*'?$$Z'''*':$$\))'*'=$$t^^'..t444 ?+.+>(CCC %,,T2222II:TABBBB   c " " "YL #V  s K9MM)r7rOrLr)rrbrr r rcs{  wwwwwwwwtcccccr PK!A$$!__pycache__/debug.cpython-311.pycnu[ 0iBddlZejdZdS)NDISTUTILS_DEBUG)osenvirongetDEBUG6/opt/alt/python311/lib64/python3.11/distutils/debug.pyr s(  ())r PK!x]#]# __pycache__/core.cpython-311.pycnu[ 0i"dZddlZddlZddlmZddlTddlmZddlm Z ddl m Z ddl m Z d Zd Zdadad Zd Zd ZddZdS)a#distutils.core The only module that needs to be imported to use the Distutils; provides the 'setup' function (which is to be called from the setup script). Also indirectly provides the Distribution and Command classes, although they are really defined in distutils.dist and distutils.cmd. N)DEBUG)*) Distribution)Command) PyPIRCCommand) Extensionzusage: %(script)s [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...] or: %(script)s --help [cmd1 cmd2 ...] or: %(script)s --help-commands or: %(script)s cmd --help cltj|}tt zS)N)ospathbasenameUSAGEvars) script_namescripts 5/opt/alt/python311/lib64/python3.11/distutils/core.py gen_usager s% W  k * *F 466>) distclassr script_argsoptionsnameversionauthor author_email maintainermaintainer_emailurllicense descriptionlong_descriptionkeywords platforms classifiers download_urlrequiresprovides obsoletes)rsources include_dirs define_macros undef_macros library_dirs librariesruntime_library_dirs extra_objectsextra_compile_argsextra_link_args swig_optsexport_symbolsdependslanguagec |d}|r|d=nt}d|vr2tjt jd|d<d|vrt jdd|d< ||xa}nC#t$r6}d|vrtd|ztd |dd |d}~wwxYwtd kr|S| tr#td |td kr|S |}n9#t $r,}tt#|jd|zzd}~wwxYwtr#td|tdkr|S|r |n#t($rtdt*$rB}tr$t jd|dtd|d}~wt0t2f$r,}trtdt5|zd}~wwxYw|S)aThe gateway to the Distutils: do everything your setup script needs to do, in a highly flexible and user-driven way. Briefly: create a Distribution instance; find and parse config files; parse the command line; run each Distutils command found there, customized by the options supplied to 'setup()' (as keyword arguments), in config files, and on the command line. The Distribution instance might be an instance of a class supplied via the 'distclass' keyword argument to 'setup'; if no such class is supplied, then the Distribution class (in dist.py) is instantiated. All other arguments to 'setup' (except for 'cmdclass') are used to set attributes of the Distribution instance. The 'cmdclass' argument, if supplied, is a dictionary mapping command names to command classes. Each command encountered on the command line will be turned into a command class, which is in turn instantiated; any class found in 'cmdclass' is used in place of the default, which is (for command 'foo_bar') class 'foo_bar' in module 'distutils.command.foo_bar'. The command class must provide a 'user_options' attribute which is a list of option specifiers for 'distutils.fancy_getopt'. Any command-line options between the current and the next command are used to set attributes of the current command object. When the entire command-line has been successfully parsed, calls the 'run()' method on each command object in turn. This method will be driven entirely by the Distribution object (which each command object has a reference to, thanks to its constructor), and the command-specific options that became attributes of each command object. rrrrNrzerror in setup command: %sz error in z setup command: initz%options (after parsing config files):configz error: %sz%options (after parsing command line): commandline interruptedzerror:  )getrr r r sysargv_setup_distributionDistutilsSetupError SystemExit_setup_stop_afterparse_config_filesrprintdump_option_dictsparse_command_lineDistutilsArgErrorrr run_commandsKeyboardInterruptOSErrorstderrwriteDistutilsErrorCCompilerErrorstr)attrsklassdistmsgokexcs rsetuprW9sJ IIk " "E  +  E!!!w// <<mU"""x|m(%*U5\\1dd (((   9C?@@ @*===##'(( ( (F""   ! 5666    H$$ L  $ $ & & LLL4#344}s7JJKKKL ! 5666    M))  7 7         , , ,]++ + 7 7 7 7    ###!7888 j!5666  7 7 7 7 SXX!5666  7 KsT5 B C 1B>>CD44 E*>'E%%E*'F<<"I=HI/'IIrunc|dvrtd||atj}d|i} |tjd<||tjdd<t |d5}t ||dddn #1swxYwY|t_dan#|t_dawxYwn#t$rYnwxYwttd|ztS) a.Run a setup script in a somewhat controlled environment, and return the Distribution instance that drives things. This is useful if you need to find out the distribution meta-data (passed as keyword args from 'script' to 'setup()', or the contents of the config files or command-line. 'script_name' is a file that will be read and run with 'exec()'; 'sys.argv[0]' will be replaced with 'script' for the duration of the call. 'script_args' is a list of strings; if supplied, 'sys.argv[1:]' will be replaced by 'script_args' for the duration of the call. 'stop_after' tells 'setup()' when to stop processing; possible values: init stop after the Distribution instance has been created and populated with the keyword arguments to 'setup()' config stop after config files have been parsed (and their data stored in the Distribution instance) commandline stop after the command-line ('sys.argv[1:]' or 'script_args') have been parsed (and the data stored in the Distribution) run [default] stop after all commands have been run (the same as if 'setup()' had been called in the usual way Returns the Distribution instance, which provides all information used to drive the Distutils. )r8r9r:rXz invalid value for 'stop_after': __file__rNr7rbzZ'distutils.core.setup()' was never called -- perhaps '%s' is not a Distutils setup script?) ValueErrorrCr>r?copyopenexecreadrBr@ RuntimeError)rr stop_after save_argvgfs r run_setuprfsl>AAAjMNNN# I [!A   %%CHQK&* k4(( "AQVVXXq!!! " " " " " " " " " " " " " " "!CH $  !CH $  $ $ $ $       "?  sG2B8/#B B8B""B8%B"&B8)C 8CC CC)NrX)__doc__r r>distutils.debugrdistutils.errorsdistutils.distr distutils.cmdrdistutils.configrdistutils.extensionrr rrCr@setup_keywordsextension_keywordsrWrfrrrqs !!!!!!('''''!!!!!!******))))))   L lllb>>>>>>rPK!2__pycache__/versionpredicate.cpython-311.opt-2.pycnu[ 0i  ddlZddlZddlZejdejZejdZejdZdZ ej ej ej ej ejejdZGddZdad ZdS) Nz'(?i)^\s*([a-z_]\w*(?:\.[a-z_]\w*)*)(.*)z^\s*\((.*)\)\s*$z%^\s*(<=|>=|<|>|!=|==)\s*([^\s,]+)\s*$c t|}|std|z|\}}|tj|fS)Nz"bad package restriction syntax: %r)re_splitComparisonmatch ValueErrorgroups distutilsversion StrictVersion)predrescompverStrs A/opt/alt/python311/lib64/python3.11/distutils/versionpredicate.pysplitUprsf  " "4 ( (C F=DEEE::<z>=z!=c"eZdZ dZdZdZdS)VersionPredicatec. |}|stdt|}|std|z|\|_}|}|rt |}|std|z|d}d|dD|_|jstd|zdSg|_dS)Nzempty package restrictionzbad package name in %rzexpected parenthesized list: %rrc,g|]}t|S)r).0aPreds r z-VersionPredicate.__init__..tsDDDEDDDr,zempty parenthesized list in %r) striprre_validPackagerrnamere_parensplitr )selfversionPredicateStrrparenstrs r__init__zVersionPredicate.__init__`s* 27799" :899 9%%&9:: M58KKLL L <<>> 5   NN5))E L !BU!JKKK,,..#CDDSYYs^^DDDDI9 8 !A#6"7888 8 8DIIIrc|jr4d|jD}|jdzd|zdzS|jS)Nc>g|]\}}|dzt|zS) )r%)rcondvers rrz,VersionPredicate.__str__..}s+DDDYT34#:C(DDDrz (z, ))r rjoin)r"seqs r__str__zVersionPredicate.__str__{sJ 9 DD$)DDDC9t#diinn4s: :9 rcT |jD]\}}t|||sdSdS)NFT)r compmap)r"r r*r+s r satisfied_byzVersionPredicate.satisfied_bysE   ID#4=#.. uu trN)__name__ __module__ __qualname__r&r/r2rrrrrsG>@6rrcr ttjdtja|}t|}|st d|z|dpd}|rtj |}|d|fS)Nz=([a-zA-Z_]\w*(?:\.[a-zA-Z_]\w*)*)(?:\s*\(\s*([^)\s]+)\s*\))?$z"illegal provides specification: %r) _provision_rxrecompileASCIIrrrgrouprr r )valuemr+s rsplit_provisionr@s  L H  KKMMEE""A G=EFFF ''!** C 3--c22 771::s?r)r:distutils.versionroperatorr;r<rr rrltleeqgtgener1rr9r@rrrrIs "*GH 2:) * *RZ HII ; ; ; 8;hk 8;hk C Ckkkkkkkk\ rPK!Yi++(__pycache__/errors.cpython-311.opt-2.pycnu[ 0i  GddeZGddeZGddeZGddeZGdd eZGd d eZGd d eZGddeZGddeZ GddeZ GddeZ GddeZ GddeZ GddeZGddeZGddeZGd d!eZGd"d#eZGd$d%eZd&S)'ceZdZ dS)DistutilsErrorN__name__ __module__ __qualname__7/opt/alt/python311/lib64/python3.11/distutils/errors.pyrr s)Dr rceZdZ dS)DistutilsModuleErrorNrrr r r r sHDr r ceZdZ dS)DistutilsClassErrorNrrr r rrs Dr rceZdZ dS)DistutilsGetoptErrorNrrr r rrsADr rceZdZ dS)DistutilsArgErrorNrrr r rrs(Dr rceZdZ dS)DistutilsFileErrorNrrr r rr$s Dr rceZdZ dS)DistutilsOptionErrorNrrr r rr*sB  Dr rceZdZ dS)DistutilsSetupErrorNrrr r rr3s7Dr rceZdZ dS)DistutilsPlatformErrorNrrr r rr8sD Dr rceZdZ dS)DistutilsExecErrorNrrr r rr>s*Dr rceZdZ dS)DistutilsInternalErrorNrrr r rrCs6Dr rceZdZdS)DistutilsTemplateErrorNrrr r r r Hs//r r ceZdZdS)DistutilsByteCompileErrorNrrr r r"r"Ksr r"ceZdZdS)CCompilerErrorNrrr r r$r$Os--r r$ceZdZdS)PreprocessErrorNrrr r r&r&Rs88r r&ceZdZdS) CompileErrorNrrr r r(r(Us<r0s3D     i        N        >        N                .        N        >        n        .        n   00000n000.....i...99999~999=====N===3333333333r PK!s2W`W`&__pycache__/util.cpython-311.opt-1.pycnu[ 0i(RdZddlZddlZddlZddlZddlZddlZddlm Z ddl m Z ddl m Z ddlmZddlmZdZd Zd Zd Zdad Zd ZddZdxaxaadZdZddZdZ ddZdZ ddZ! ddZ"GddZ#dS) zudistutils.util Miscellaneous utility functions -- anything that doesn't fit into one of the other *util.py modules. N)DistutilsPlatformError)newer)spawn)log)DistutilsByteCompileErrorctjdkrrdtjvrdSdtjvrdSdtjvrdStjSdtjvrtjdStjd ksttd s tjStj\}}}}}| d d }| d d}| d d}|dddkr|d|S|dddkrQ|ddkrDd}dt|ddz |ddfz}ddd}|d|tj zz }n|dddkrddl m }|S|dd d!krMd!}tjd"tj}||}|r|}nI|dd d#kr;ddl} ddl} | | j|||\}}}|d|d|S)$aReturn a string that identifies the current platform. This is used mainly to distinguish platform-specific build directories and platform-specific built distributions. Typically includes the OS name and version and the architecture (as supplied by 'os.uname()'), although the exact information included depends on the OS; eg. on Linux, the kernel version isn't particularly important. Examples of returned values: linux-i586 linux-alpha (?) solaris-2.6-sun4u Windows will return one of: win-amd64 (64bit Windows on AMD64 (aka x86_64, Intel64, EM64T, etc) win32 (all others - specifically, sys.platform is returned) For other non-POSIX platforms, currently just returns 'sys.platform'. ntamd64 win-amd64z(arm) win-arm32z(arm64)z win-arm64_PYTHON_HOST_PLATFORMposixuname/ _-Nlinuxsunosr5solarisz%d.%s32bit64bit)ilz.%saix) aix_platformcygwinz[\d.]+darwin)osnamesysversionlowerplatformenvironhasattrrreplaceintmaxsize _aix_supportrrecompileASCIImatchgroup _osx_supportdistutils.sysconfigget_platform_osx sysconfigget_config_vars) osnamehostreleaser&machinebitnessrrel_remr4 distutilss 5/opt/alt/python311/lib64/python3.11/distutils/util.pyget_host_platformrBs( w$ ck'')) ) ); ck'')) ) );  ))++ + +;|"*,,z122 w'W!5!5|13 -VT7GW\\^^ # #C , ,Fooc3''Gooc3''G bqbzW"6677++ w   1:  FWQZ1!4gabbk BBG#*wGGG uws{33 3G u  ------|~~ x  Y11 LL ! !  ggiiG x  00000000#/#@#@(1(;(K(K(M(M(.$B$B  '' 22ctjdkrFdddd}|tjdp t St S)Nr win32r r )x86x64armVSCMD_ARG_TGT_ARCH)r#r$getr)rB)TARGET_TO_PLATs rA get_platformrLcs_ w$   !!"*..1E"F"FGG^K\K^K^^ """rCcLtjdkr|S|s|S|ddkrtd|z|ddkrtd|z|d}d|vr|dd|v|s tjStjj|S)aReturn 'pathname' as a name that will work on the native filesystem, i.e. split it on '/' and put it back together again using the current directory separator. Needed because filenames in the setup script are always supplied in Unix style, and have to be converted to the local convention before we can actually use them in the filesystem. Raises ValueError on non-Unix-ish systems if 'pathname' either starts or ends with a slash. rrzpath '%s' cannot be absolutezpath '%s' cannot end with '/'.)r#sep ValueErrorsplitremovecurdirpathjoin)pathnamepathss rA convert_pathrYns v}} {c7(BCCC|s88CDDD NN3  E ,, S ,, y 7< rCctjdkrgtj|s tj||Stj||ddStjdkrXtj|\}}|ddkr |dd}tj||St dtjz)a Return 'pathname' with 'new_root' prepended. If 'pathname' is relative, this is equivalent to "os.path.join(new_root,pathname)". Otherwise, it requires making 'pathname' relative and then joining the two, which is tricky on DOS/Windows and Mac OS. rNr r\z!nothing known about platform '%s')r#r$rUisabsrV splitdriver)new_rootrWdriverUs rA change_rootras  w'w}}X&& 87<<(33 37<<(122,77 7 D**844  7d??8Dw||Hd+++%%H27%RSSSrCcVtrdStjdkrddtjvrV ddl}|tjdtjd<n#ttf$rYnwxYwdtjvrttjd<dadS)aLEnsure that 'os.environ' has all the environment variables we guarantee that users can use in config files, command-line options, etc. Currently this includes: HOME - user's home directory (Unix only) PLAT - description of the current platform, including hardware and OS (see 'get_platform()') NrHOMErrPLATr[) _environ_checkedr#r$r)pwdgetpwuidgetuid ImportErrorKeyErrorrL)rfs rA check_environrks w'fBJ66  JJJ!$bikk!:!:1!=BJv  X&    D  RZ)^^ 6s=A''A;:A;ct|fd} tjd||S#t$r}t d|zd}~wwxYw)aPerform shell/Perl-style variable substitution on 'string'. Every occurrence of '$' followed by a name is considered a variable, and variable is substituted by the value found in the 'local_vars' dictionary, or in 'os.environ' if it's not in 'local_vars'. 'os.environ' is first checked/augmented to guarantee that it contains certain values: see 'check_environ()'. Raise ValueError for any variables not found in either 'local_vars' or 'os.environ'. c|d}||vrt||Stj|S)Nr[)r3strr#r))r2 local_varsvar_names rA_substzsubst_vars.._substs<;;q>> z ! !z(+,, ,:h' 'rCz\$([a-zA-Z_][a-zA-Z_0-9]*)zinvalid variable '$%s'N)rkr/subrjrQ)srorqvars rA subst_varsrusqOOO",((((9v3VQ??? 9991C78889s+ A AA error: c&|t|zSN)rn)excprefixs rAgrok_environment_errorr{s CHH rCctjdtjzatjdatjdadS)Nz [^\\\'\"%s ]*z'(?:[^'\\]|\\.)*'z"(?:[^"\\]|\\.)*")r/r0string whitespace _wordchars_re _squote_re _dquote_rerCrA _init_regexrs>J/&2CCDDM011J011JJJrCc"tt|}g}d}|rt||}|}|t |kr||d|n}||tjvr=||d|||d }d}n||dkr|d|||dzdz}|dz}n||dkrt||}n@||dkrt||}ntd||z|td||z|\}}|d|||dz|dz z||dz}|d z }|t |kr||n||S) aSplit a string up according to Unix shell-like rules for quotes and backslashes. In short: words are delimited by spaces, as long as those spaces are not escaped by a backslash, or inside a quoted string. Single and double quotes are equivalent, and the quote characters can be backslash-escaped. The backslash is stripped from any two-character escape sequence, leaving only the escaped character. The quote characters are stripped from any quoted string. Returns a list of words. Nrr\r['"z!this can't happen (bad char '%c')z"bad string (mismatched %s quotes?)r)rrstripr2endlenappendr}r~lstriprr RuntimeErrorrQspan)rswordsposr?rbegs rA split_quotedrskmmm  A E C "   3 ' 'eegg #a&&== LL4C4 ! ! !  S6V& & & LL4C4 ! ! !#$$  ACC sVt^^$3$!CEFF)#Aa%CCv}}$$Q,,33$$Q,,"#F3#OPPPy !E#!NOOOJS#$3$!CE#a%K.(1STT72A%%''A+C #a&&== LLOOO E "H LrCc|&|j|}|dddkr |dddz}tj||s||dSdS)aPerform some action that affects the outside world (eg. by writing to the filesystem). Such actions are special because they are disabled by the 'dry_run' flag. This method takes care of all that bureaucracy for you; all you have to do is supply the function to call and an argument tuple for it (to embody the "external action" being performed), and an optional message to print. Nz,)r))__name__rinfo)funcargsmsgverbosedry_runs rAexecuter!sk { tt, rss8t  ad)c/CHSMMM  d rCcf|}|dvrdS|dvrdStd|)zConvert a string representation of truth to true (1) or false (0). True values are 'y', 'yes', 't', 'true', 'on', and '1'; false values are 'n', 'no', 'f', 'false', 'off', and '0'. Raises ValueError if 'val' is anything else. )yyesttrueon1r[)nnoffalseoff0rzinvalid truth value )r'rQ)vals rA strtoboolr4sH ))++C 222q 5 5 5qjSS:;;;rCr[c>ddl}tjrtd|d}|s ddlm} | d\} } n##t $rddlm} d| d} } YnwxYwtj d| |s| tj | d } nt| d } | 5| d | d tt |d z| d |d|d|d|d|d dddn #1swxYwYt"j}tjg}|||d|d|| t/||t1tj| fd| z|dSddlm}|D]@}|dddkr|dkr,|dkrdn|}t8j||}nt8j|}|}|rG|dt?||krtAd|d||t?|d}|r tj!||}tj!"|}|rO|stG||r'tj d|||s ||||*tj$d||BdS)a~Byte-compile a collection of Python source files to .pyc files in a __pycache__ subdirectory. 'py_files' is a list of files to compile; any files that don't end in ".py" are silently skipped. 'optimize' must be one of the following: 0 - don't optimize 1 - normal optimization (like "python -O") 2 - extra optimization (like "python -OO") If 'force' is true, all files are recompiled regardless of timestamps. The source filename encoded in each bytecode file defaults to the filenames listed in 'py_files'; you can modify these with 'prefix' and 'basedir'. 'prefix' is a string that will be stripped off of each source filename, and 'base_dir' is a directory name that will be prepended (after 'prefix' is stripped). You can supply either or both (or neither) of 'prefix' and 'base_dir', as you wish. If 'dry_run' is true, doesn't actually do anything that would affect the filesystem. Byte-compilation is either done directly in this interpreter process with the standard py_compile module, or indirectly by writing a temporary script and executing it. Normally, you should let 'byte_compile()' figure out to use direct compilation or not (see the source for details). The 'direct' flag is used by the script generated in indirect mode; unless you know what you're doing, leave it set to None. rNzbyte-compiling is disabled.F)mkstemp.py)mktempz$writing byte-compilation script '%s'wz2from distutils.util import byte_compile files = [ z, z] z byte_compile(files, optimize=z, force=z, prefix=z , base_dir=z, verbose=z$, dry_run=0, direct=1) z -Wignore:z:DeprecationWarning)rz removing %s)r0r) optimizationzinvalid prefix: filename z doesn't start with zbyte-compiling %s to %sz%skipping byte-compilation of %s to %s)% subprocessr%dont_write_bytecodertempfilerrirrrr#fdopenopenwriterVmapreprr@_DEPRECATION_MESSAGE executableextend"_optim_args_from_interpreter_flagsrrrrS py_compiler0 importlibutilcache_from_sourcerrQrUbasenamerdebug)py_filesoptimizeforcerzbase_dirrrdirectrr script_fd script_namerscriptrcmdr0fileoptcfiledfile cfile_bases rA byte_compilerDsH G'(EFFF~ Z0 ; ( ( ( ( ( ('.wu~~ $Y  ; ; ; ' ' ' ' ' ''+VVE]] YYY ; 7EEE 4$9c22k3// 4 4 & UZZD((;(;<=;+F ! ! ! ! ! ! '&&&&& 0 0DBCCyE!! 1}}$MMbbx!88s9,,"88>>E , V %//$*"ddFF&,---c&kkll+ 6 Xu55))%00J 00E$..0H6jIII"4eU333IE"J000? 0 0s"=AA!A9D&&D*-D*cZ|d}d}||S)zReturn a version of the string escaped for inclusion in an RFC-822 header, by ensuring there are 8 spaces space after each newline.  z )rRrV)headerlinesrPs rA rfc822_escapers* LL  E C 88E??rCc|sdSddlm}m}Gdd|}| |d}|||}||d dS) a Invoke 2to3 on a list of Python files. The files should all come from the build area, as the modification is done in-place. To reduce the build time, only files modified since the last invocation of this function should be passed in the files argument.Nr)RefactoringToolget_fixers_from_packagec eZdZdZdZdZdS)*run_2to3..DistutilsRefactoringToolc*tj|g|RdSrx)rerror)selfrrkws rA log_errorz4run_2to3..DistutilsRefactoringTool.log_error Ic !D ! ! ! ! ! !rCc*tj|g|RdSrx)rrrrrs rA log_messagez6run_2to3..DistutilsRefactoringTool.log_messages HS 4 rCc*tj|g|RdSrx)rrrs rA log_debugz4run_2to3..DistutilsRefactoringTool.log_debugrrCN)r __module__ __qualname__rrrrrCrADistutilsRefactoringToolrsA " " " ! ! ! " " " " "rCrz lib2to3.fixes)optionsT)r)lib2to3.refactorrrrefactor)files fixer_namesrexplicitrrrrs rArun_2to3rs JIIIIIII"""""?"""--o>>   g>>>AJJuDJ!!!!!rCc2ddlm}ddlm}ddlm}|} t j} t j| | t j| n#t j| wxYw| j | j dd<|rC| D].} | } | s| | /g} | j D]} t j|| }|t j||t j|| |d}|dr| |t'd| D||| | S) zRecursively copy a directory, only copying new and changed files, running run_2to3 over all newly copied Python modules afterward. If you give a template string, it's parsed like a MANIFEST.in. r)mkpath) copy_file)FileListNr[)updatec`g|]+}|d)|,S)r)r'endswith).0fns rA z$copydir_run_2to3..s3 @ @ @RRXXZZ%8%8%?%? @b @ @ @rC)rrr)distutils.dir_utilrdistutils.file_utilrdistutils.filelistrr#getcwdchdirfindallallfilesr splitlinesrprocess_template_linerUrVdirnamerr)srcdesttemplaterrrrrrfilelistrTlinecopiedfilenameoutnameress rAcopydir_run_2to3rs*)))))------++++++xzzH Y[[FHSMMM  )HN1111'')) 1 1D::<rs   333333$$$$$$!!!!!!666666N3N3N3` # # #   8TTT,69992+/. . Z222 888z& < < <"%&(,%& S0S0S0S0n""""6<@,0BNNNNNNNNNNrCPK!%11.__pycache__/bcppcompiler.cpython-311.opt-2.pycnu[ 0i.:| ddlZddlmZmZmZmZmZddlmZm Z ddl m Z ddl m Z ddlmZGddeZdS) N)DistutilsExecError CompileErrorLibError LinkErrorUnknownFileError) CCompilergen_preprocess_options) write_file)newer)logceZdZ dZiZdgZgdZeezZdZdZ dZ dxZ Z dZ dd Z dd Z dd Z ddZddZ ddZ ddZd S) BCPPCompilerbcppz.c)z.ccz.cppz.cxxz.objz.libz.dllz%s%sz.exerctj||||d|_d|_d|_d|_gd|_gd|_gd|_gd|_ g|_ gd|_ gd|_ dS) Nz bcc32.exez ilink32.exeztlib.exe)/tWMz/O2/q/g0)rz/Odrr)z/Tpd/Gnr/x)rrr)rrrz/r) r__init__cclinkerlibpreprocess_optionscompile_optionscompile_options_debugldflags_sharedldflags_shared_debugldflags_static ldflags_exeldflags_exe_debug)selfverbosedry_runforces =/opt/alt/python311/lib64/python3.11/distutils/bcppcompiler.pyrzBCPPCompiler.__init__5s D'7E::: # "&;;;%A%A%A"999$?$?$?! ...!9!9!9Nc ~|||||||\}} }} } |pg} | d|r| |jn| |j| D]H} | | \}}n#t $rYwxYwt j|}t j| } | t j | |dkr|dkr= | dd| |gn!#t$r}t|d}~wwxYw||jvrd}n||jvrd}nd}d| z} | |jg| z| z||gz|z|gz)#t$r}t|d}~wwxYw| S) Nz-c.res.rcbrcc32z-foz-P-o)_setup_compileappendextendrrKeyErrorospathnormpathmkpathdirnamespawnrr _c_extensions_cpp_extensionsr)r"sources output_dirmacros include_dirsdebug extra_preargsextra_postargsdependsobjectspp_optsbuild compile_optsobjsrcextmsg input_opt output_opts r&compilezBCPPCompiler.compileQsF ##J g$+^== 8%%* T"""  7   !; < < < <   !5 6 6 6, (, (C  :SS    '""3''C'""3''C KK,, - - -f}}e||,JJ5#s ;<<<<),,,&s+++,d((( ,,,  J  ( TWI 4w>& 34*+.1U34444& ( ( ("3''' (sB7 B BBD++ E 5EE --F F:&F55F:cT|||\}}|||}|||rL|dg|z}|r ||jg|zdS#t $r}t |d}~wwxYwtjd|dS)N)r;z/uskipping %s (up-to-date)) _fix_object_argslibrary_filename _need_linkr7rrrr r>) r"rBoutput_libnamer;r> target_langoutput_filenamelib_argsrIs r&create_static_libzBCPPCompiler.create_static_libs!% 5 5w K K*  ! !>j ! I I  ??G_ 5 5 C'.8H  $ TXJ122222% $ $ $smm# $ I0/ B B B B BsA22 B<B  Bc|||\}}||||\}}}|r"tjdt || t j||}|||r|tj kr$d}| r|j dd}n3|j dd}n#d}| r|j dd}n|jdd}|d}nt j|\}}t j|\}}t j|d}t j|d|z}dg}|pgD]}|d|d ||t(||fd |zt+t jj|}|g}g}|D]r}t jt j|\}}|d kr||]||s|D]7}|d t j|z8|d |||d|g|d|D]F}|||| }|||1||G|d|d|d|g|d||| r| |dd<| r|| |t j| ||jg|zdS#t:$r}t=|d}~wwxYwtjd|dS)Nz7I don't know what to do with 'runtime_library_dirs': %sc0w32c0d32r,rz%s.defEXPORTSz z=_z writing %sr)z/L%sz/L.,z,,import32cw32mtrN) rO _fix_lib_argsr warnstrr2r3joinrQr EXECUTABLEr!r rrsplitsplitextr6r/executer mapr4normcaser0find_library_filer5r7rrrr>) r" target_descrBrTr; libraries library_dirsruntime_library_dirsexport_symbolsr>r?r@ build_temprS startup_objld_argsdef_fileheadtailmodnamerHtemp_dircontentssymobjects2 resourcesfilebaselrlibfilerIs r&linkzBCPPCompiler.links$!% 5 5w K K*    <9M N N 8L"6  0 HN-.. 0 0 0  ! gllJHHO ??G_ 5 5e Ci222% 2"4QQQ7GG".qqq1GG% 5"7:GG"1!!!4G%W]]O<< d!w//66 7??71:667<<8g3EFF%;*0b==COOO###ss$;<<<< Z(H)=)H466627+W55H#mGI  ) ) g..rw/?/?/E/EFF s&==$$T****NN4((((" = =v(8(8(;(;;<<<< NN5 ! ! ! NN7 # # # NNC0 1 1 1 NN4  , ,00sEJJ?NN3''''NN7++++ NNJ ' ' ' NNH % % % NNC> * * * NN3    NN9 % % % ,+  /~... KK/:: ; ; ; % T[MG344444% % % %nn$ % I0/ B B B B Bs0P P.P))P.c|r|dz}|dz|dz||f}n|dz|f}|D]_}|D]Z}tj|||}tj|r|ccS[`dS)N_d_bcpp)r2r3rarPexists) r"dirsrr>dlib try_namesdirnamer}s r&rhzBCPPCompiler.find_library_file4s  -$JDwcBIIw,I  C! # #',,sD,A,A$,G,GHH7>>'**#"NNNNN# # 4r'r,c|d}g}|D]=}tjtj|\}}||jddgzvrt d|d|d|rtj|}|dkr7|tj|||z|dkr8|tj||dz|tj|||j z?|S)Nr,r*r)zunknown file type 'z ' (from 'z')) r2r3rdrgsrc_extensionsrbasenamer/ra obj_extension)r"source_filenames strip_dirr; obj_namessrc_namer{rHs r&object_filenameszBCPPCompiler.object_filenamesNsX  Bz ( H HH'**BG,<, > "FL(>>-')  " NN4+- . . .  ('GBQBK  + NN> * * *v : (,fk0J0J, : BGOOK88999 ( 7#####% ( ( (c "3''' ( -,sC&& D0DD)rrr)NNNrNNN)NrN) NNNNNrNNNN)r)rr,)NNNNN)__name__ __module__ __qualname__ compiler_type executablesr8r9rrstatic_lib_extensionshared_lib_extensionstatic_lib_formatshared_lib_format exe_extensionrrLrVr~rhrrr'r&rrs\MKFM---O#_4NM!!,22)M:::::HIAE<<<<H'+!"'+ CCCC:#'! !BCBCBCBCR8%&%':!%!%"&#' ((((((r'r)r2distutils.errorsrrrrrdistutils.ccompilerrr distutils.file_utilr distutils.dep_utilr distutilsr rrr'r&rs 99999999999999''''''''******$$$$$$n(n(n(n(n(9n(n(n(n(n(r'PK!.$$__pycache__/dep_util.cpython-311.pycnu[ 0i 2dZddlZddlmZdZdZddZdS) zdistutils.dep_util Utility functions for simple, timestamp-based dependency of files and groups of files; also, function based entirely on such timestamp dependency analysis.N)DistutilsFileErrorc`tj|s/tdtj|ztj|sdSddlm}tj||}tj||}||kS)aReturn true if 'source' exists and is more recently modified than 'target', or if 'source' exists and 'target' doesn't. Return false if both exist and 'target' is the same age or younger than 'source'. Raise DistutilsFileError if 'source' does not exist. zfile '%s' does not existrST_MTIME)ospathexistsrabspathstatr)sourcetargetrmtime1mtime2s 9/opt/alt/python311/lib64/python3.11/distutils/dep_util.pynewerr s 7>>& ! !: !;!#!8!8"9:: : 7>>& ! !q WV__X &F WV__X &F F?cRt|t|krtdg}g}tt|D]T}t||||r6||||||U||fS)zWalk two filename lists in parallel, testing if each source is newer than its corresponding target. Return a pair of lists (sources, targets) where source is newer than target, according to the semantics of 'newer()'. z+'sources' and 'targets' must be same length)len ValueErrorrangerappend)sourcestargets n_sources n_targetsis rnewer_pairwiser s  7||s7||##FGGGII 3w<< )) WQZ ( ( )   WQZ ( ( (   WQZ ( ( ( y !!rerrorcDtj|sdSddlm}tj||}|D][}tj|s|dkrn|dkr/|dkrdStj||}||krdS\dS)aReturn true if 'target' is out-of-date with respect to any file listed in 'sources'. In other words, if 'target' exists and is newer than every file in 'sources', return false; otherwise return true. 'missing' controls what we do when a source file is missing; the default ("error") is to blow up with an OSError from inside 'stat()'; if it is "ignore", we silently drop any missing source files; if it is "newer", any missing source files make us assume that 'target' is out-of-date (this is handy in "dry-run" mode: it'll make you pretend to carry out commands that wouldn't work because inputs are missing, but that doesn't matter because you're not actually going to run the commands). rrrrignorer)rr r r r)rrmissingr target_mtimer source_mtimes r newer_groupr%6s 7>>& ! !q 76??8,L  w~~f%% '!!H$$G##qqwvx0 , & &11 'qr)r)__doc__rdistutils.errorsrrrr%rrr)sh""  //////*""",$$$$$$rPK!DY)).__pycache__/archive_util.cpython-311.opt-1.pycnu[ 0i|!BdZddlZddlmZddlZ ddlZn #e$rdZYnwxYwddlmZddl m Z ddl m Z ddl mZ ddlmZn #e$rdZYnwxYw dd lmZn #e$rdZYnwxYwd Zd Z dd ZddZedgdfedgdfedgdfedgdfedgdfegdfdZdZ ddZdS) zodistutils.archive_util Utility functions for creating archive files (tarballs, zip files, that sort of thing).N)warn)DistutilsExecError)spawn)mkpath)log)getpwnam)getgrnamcvt|dS t|}n#t$rd}YnwxYw||dSdS)z"Returns a gid, given a group name.N)r KeyErrornameresults =/opt/alt/python311/lib64/python3.11/distutils/archive_util.py_get_gidr\4<t$  ay 4  ,,cvt|dS t|}n#t$rd}YnwxYw||dSdS)z"Returns an uid, given a user name.Nr )rr r s r_get_uidr+rrgzipcdddddd}dddd d }|%||vrtd |d z} |dkr| ||dz } ttj| |dd l} tj dttfd} |se| | d||z} | || | n#| wxYw|dkrNtdt | ||z} t"jdkr|| | g}n|d| g}t'||| S| S)a=Create a (possibly compressed) tar file from all the files under 'base_dir'. 'compress' must be "gzip" (the default), "bzip2", "xz", "compress", or None. ("compress" will be deprecated in Python 3.2) 'owner' and 'group' can be used to define an owner and a group for the archive that is being built. If not provided, the current owner and group will be used. The output tar file will be named 'base_dir' + ".tar", possibly plus the appropriate compression extension (".gz", ".bz2", ".xz" or ".Z"). Returns the output filename. gzbz2xz)rbzip2rNcompressz.gzz.bz2z.xzz.Z)rrrrNzKbad value for 'compress': must be None, 'gzip', 'bzip2', 'xz' or 'compress'z.tarrdry_runrzCreating tar archivecH|_|_|_|_|S)N)gidgnameuiduname)tarinfor!groupownerr#s r _set_uid_gidz"make_tarball.._set_uid_gidas. ?GK!GM ?GK!GMzw|%s)filterz'compress' will be deprecated.win32z-f)keys ValueErrorgetrospathdirnametarfilerinforropenaddcloserPendingDeprecationWarningsysplatformr) base_namebase_dirrverboserr'r&tar_compression compress_ext archive_namer2r(tarcompressed_namecmdr!r#s `` @@r make_tarballrC7s" $e4r#%''O!F% $&&L 0A0A0C0C C C#$$ $v%L: ((2666  27??< ( ('::::NNNH #$$$ 5//C 5//C ll</(2K)KLL  GGH\G 2 2 2 IIKKKKCIIKKKK: -/HIII&h)?? <7 " "\?;CCT<0C c7#### s -DD/c &|dz}ttj||t?|rd}nd} t d|||g|n7#t $rt d|zwxYwtjd|||s t j |d tj }n1#t$r$t j |d tj }YnwxYw|5|tj krhtjtj|d }|||tjd |tj|D]\}} } | D]k} tjtj|| d }|||tjd |l| D]} tjtj|| }tj|r+|||tjd | dddn #1swxYwY|S) avCreate a zip file from all the files under 'base_dir'. The output zip file will be named 'base_name' + ".zip". Uses either the "zipfile" Python module (if available) or the InfoZIP "zip" utility (if installed and found on the default search path). If neither tool is available, raises DistutilsExecError. Returns the name of the output zip file. z.ziprNz-rz-rqzipzkunable to create zip file '%s': could neither import the 'zipfile' module nor find a standalone zip utilityz#creating '%s' and adding '%s' to itw) compressionrz adding '%s')rr/r0r1zipfilerrrr3ZipFile ZIP_DEFLATED RuntimeError ZIP_STOREDcurdirnormpathjoinwritewalkisfile) r:r;r<r zip_filename zipoptionsrEr0dirpathdirnames filenamesrs r make_zipfilerXsv%L 27??< ( ('::::  JJJ D 5*lH=! # # # # #! D D D%'36B&CDD D D 6x ) ) ) : FolC292FHHH F F FolC292DFFF F : :ry((7++BGLL2,F,FGGDIIdD)))H]D11146GH4E4E : :0GXy (66!w// WdB0O0OPP $---5555 )::!w// Wd0K0KLL7>>$//:IIdD111H]D999 : :  : : : : : : : : : : : : : : : s1AA7!B66+C$#C$)FJJ  J )rrzgzip'ed tar-file)rrzbzip2'ed tar-file)rrzxz'ed tar-file)rrzcompressed tar file)rNzuncompressed tar filezZIP file)gztarbztarxztarztarr@rEc*|D]}|tvr|cSdS)zqReturns the first format from the 'format' list that is unknown. If all formats are known, returns None N)ARCHIVE_FORMATS)formatsformats rcheck_archive_formatsras1   ( (MMM ) 4r)cltj}|Jtjd|tj|}|stj|| tj}d|i} t|} n #t$rtd|zwxYw| d} | dD] \} } | | | < |dkr || d<|| d < | ||fi| }|)tjd |tj|n1#|*tjd |tj|wwxYw|S) aCreate an archive file (eg. zip or tar). 'base_name' is the name of the file to create, minus any format-specific extension; 'format' is the archive format: one of "zip", "tar", "gztar", "bztar", "xztar", or "ztar". 'root_dir' is a directory that will be the root directory of the archive; ie. we typically chdir into 'root_dir' before creating the archive. 'base_dir' is the directory where we start archiving from; ie. 'base_dir' will be the common prefix of all files and directories in the archive. 'root_dir' and 'base_dir' both default to the current directory. Returns the name of the archive file. 'owner' and 'group' are used when creating a tar archive. By default, uses the current owner and group. Nzchanging into '%s'rzunknown archive format '%s'rrEr'r&zchanging back to '%s') r/getcwdrdebugr0abspathchdirrMr^r r-)r:r`root_dirr;r<rr'r&save_cwdkwargs format_infofuncargvalfilenames r make_archiverps}$y{{H &111GOOI..   HX   9 !FA%f- AAA6?@@@A q>DNSs  ww4 866v66   I-x 8 8 8 HX      I-x 8 8 8 HX      Os3 BB D.D1)rrrNN)rr)NNrrNN)__doc__r/warningsrr8rH ImportErrordistutils.errorsrdistutils.spawnrdistutils.dir_utilr distutilsrpwdrgrpr rrrCrXr^rarpr)rr{s   NNNNGGG0/////!!!!!!%%%%%%HHHHHH      KL#'FFFFP::::z124F G235H I/02B C568M N/02I JBz * KL.2222222s/!!AA AAA#"A#PK!x]#]#&__pycache__/core.cpython-311.opt-1.pycnu[ 0i"dZddlZddlZddlmZddlTddlmZddlm Z ddl m Z ddl m Z d Zd Zdadad Zd Zd ZddZdS)a#distutils.core The only module that needs to be imported to use the Distutils; provides the 'setup' function (which is to be called from the setup script). Also indirectly provides the Distribution and Command classes, although they are really defined in distutils.dist and distutils.cmd. N)DEBUG)*) Distribution)Command) PyPIRCCommand) Extensionzusage: %(script)s [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...] or: %(script)s --help [cmd1 cmd2 ...] or: %(script)s --help-commands or: %(script)s cmd --help cltj|}tt zS)N)ospathbasenameUSAGEvars) script_namescripts 5/opt/alt/python311/lib64/python3.11/distutils/core.py gen_usager s% W  k * *F 466>) distclassr script_argsoptionsnameversionauthor author_email maintainermaintainer_emailurllicense descriptionlong_descriptionkeywords platforms classifiers download_urlrequiresprovides obsoletes)rsources include_dirs define_macros undef_macros library_dirs librariesruntime_library_dirs extra_objectsextra_compile_argsextra_link_args swig_optsexport_symbolsdependslanguagec |d}|r|d=nt}d|vr2tjt jd|d<d|vrt jdd|d< ||xa}nC#t$r6}d|vrtd|ztd |dd |d}~wwxYwtd kr|S| tr#td |td kr|S |}n9#t $r,}tt#|jd|zzd}~wwxYwtr#td|tdkr|S|r |n#t($rtdt*$rB}tr$t jd|dtd|d}~wt0t2f$r,}trtdt5|zd}~wwxYw|S)aThe gateway to the Distutils: do everything your setup script needs to do, in a highly flexible and user-driven way. Briefly: create a Distribution instance; find and parse config files; parse the command line; run each Distutils command found there, customized by the options supplied to 'setup()' (as keyword arguments), in config files, and on the command line. The Distribution instance might be an instance of a class supplied via the 'distclass' keyword argument to 'setup'; if no such class is supplied, then the Distribution class (in dist.py) is instantiated. All other arguments to 'setup' (except for 'cmdclass') are used to set attributes of the Distribution instance. The 'cmdclass' argument, if supplied, is a dictionary mapping command names to command classes. Each command encountered on the command line will be turned into a command class, which is in turn instantiated; any class found in 'cmdclass' is used in place of the default, which is (for command 'foo_bar') class 'foo_bar' in module 'distutils.command.foo_bar'. The command class must provide a 'user_options' attribute which is a list of option specifiers for 'distutils.fancy_getopt'. Any command-line options between the current and the next command are used to set attributes of the current command object. When the entire command-line has been successfully parsed, calls the 'run()' method on each command object in turn. This method will be driven entirely by the Distribution object (which each command object has a reference to, thanks to its constructor), and the command-specific options that became attributes of each command object. rrrrNrzerror in setup command: %sz error in z setup command: initz%options (after parsing config files):configz error: %sz%options (after parsing command line): commandline interruptedzerror:  )getrr r r sysargv_setup_distributionDistutilsSetupError SystemExit_setup_stop_afterparse_config_filesrprintdump_option_dictsparse_command_lineDistutilsArgErrorrr run_commandsKeyboardInterruptOSErrorstderrwriteDistutilsErrorCCompilerErrorstr)attrsklassdistmsgokexcs rsetuprW9sJ IIk " "E  +  E!!!w// <<mU"""x|m(%*U5\\1dd (((   9C?@@ @*===##'(( ( (F""   ! 5666    H$$ L  $ $ & & LLL4#344}s7JJKKKL ! 5666    M))  7 7         , , ,]++ + 7 7 7 7    ###!7888 j!5666  7 7 7 7 SXX!5666  7 KsT5 B C 1B>>CD44 E*>'E%%E*'F<<"I=HI/'IIrunc|dvrtd||atj}d|i} |tjd<||tjdd<t |d5}t ||dddn #1swxYwY|t_dan#|t_dawxYwn#t$rYnwxYwttd|ztS) a.Run a setup script in a somewhat controlled environment, and return the Distribution instance that drives things. This is useful if you need to find out the distribution meta-data (passed as keyword args from 'script' to 'setup()', or the contents of the config files or command-line. 'script_name' is a file that will be read and run with 'exec()'; 'sys.argv[0]' will be replaced with 'script' for the duration of the call. 'script_args' is a list of strings; if supplied, 'sys.argv[1:]' will be replaced by 'script_args' for the duration of the call. 'stop_after' tells 'setup()' when to stop processing; possible values: init stop after the Distribution instance has been created and populated with the keyword arguments to 'setup()' config stop after config files have been parsed (and their data stored in the Distribution instance) commandline stop after the command-line ('sys.argv[1:]' or 'script_args') have been parsed (and the data stored in the Distribution) run [default] stop after all commands have been run (the same as if 'setup()' had been called in the usual way Returns the Distribution instance, which provides all information used to drive the Distutils. )r8r9r:rXz invalid value for 'stop_after': __file__rNr7rbzZ'distutils.core.setup()' was never called -- perhaps '%s' is not a Distutils setup script?) ValueErrorrCr>r?copyopenexecreadrBr@ RuntimeError)rr stop_after save_argvgfs r run_setuprfsl>AAAjMNNN# I [!A   %%CHQK&* k4(( "AQVVXXq!!! " " " " " " " " " " " " " " "!CH $  !CH $  $ $ $ $       "?  sG2B8/#B B8B""B8%B"&B8)C 8CC CC)NrX)__doc__r r>distutils.debugrdistutils.errorsdistutils.distr distutils.cmdrdistutils.configrdistutils.extensionrr rrCr@setup_keywordsextension_keywordsrWrfrrrqs !!!!!!('''''!!!!!!******))))))   L lllb>>>>>>rPK!)()(+__pycache__/sysconfig.cpython-311.opt-2.pycnu[ 0i0v ddlZddlZddlZddlZddlZddlmZddlmZddl m Z m Z mZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$e"Z%ej&de'ddd Zeed Z(eee%Zeee%Z)dd Z*d Z+ esej,Z+n #e-$rYnwxYwdZ.ddZ/ddZ0dS)N)partial)DistutilsPlatformError)_PREFIX _BASE_PREFIX _EXEC_PREFIX_BASE_EXEC_PREFIX _PROJECT_BASE _PYTHON_BUILD _init_posixparse_config_h_init_non_posix _variable_rx _findvar1_rx _findvar2_rxexpand_makefile_varsis_python_buildget_config_h_filenameget_config_varget_config_varsget_makefile_filenameget_python_versionzCThe distutils.sysconfig module is deprecated, use sysconfig instead) stacklevelc$t||S)N)vars)sysconfig_parse_config_h)fpgs :/opt/alt/python311/lib64/python3.11/distutils/sysconfig.pyr r =s #BQ / / //T) check_homec6 ddlm}||dddd}|i}i}i} |}|ntjt |}|r|dd\}} | } | dd } d | vr| ||<n? t| } | ||<n)#t$r| dd ||<YnwxYwd } |rt|D]} || } tj t| ptj t| }|rk|d}d}||vrt||}nz||vrd }ns|t jvrt j|}nR|| vrG| d r| dd| vrd }n*d |z|vrd }n t|d |z}nd x||<}|r| |d}| d||z|z} d |vr| || <8t| } | || <n'#t$r| || <YnwxYw|| =| d r| dd| vr| dd} | |vr| || <|| =|||D]1\}} t/| tr| ||<2|||S)Nr)TextFilersurrogateescape)strip_comments skip_blanks join_lineserrorsTrz$$$)CFLAGSLDFLAGSCPPFLAGSFPY_)distutils.text_filer$readlinerematchrgroupstripreplaceint ValueErrorlistsearchrrstrosenviron startswithendstartcloseitems isinstanceupdate)fnrr$rdonenotdonelinemnvtmpvrenamed_variablesnamevaluefounditemafterks r parse_makefilerUHs -,,,,, "QA!L] ^ ^ ^By  DG {{}} <  H\4 ( (  771a==DAq A99T2&&Dd{{  AA  DGG "333iic22DGGG3! 4: 0"MM/ "/ "DDME ,..P")L%2P2PA, "GGAJJ99tAw<O2O2O!g-- % #4 ?33%''DGd3!!%%''((OE!*17799*-4ur?lenset_executablesshared_lib_extension)rerpcccxxcflagsccsharedldshared shlib_suffixarar_flagsnewcccpprjcc_cmds r rqrqs '' <8 # # ##$=>> A####// ===:@ 67 D%& ND) U U JS&(HlB 2:  Jt$E ((""*44 ++B//5!8CGGHH#55B BJ  *U#C  # #z*-H BJ  *U#CCu*C  " "#~ 9(==H rz ! !c\BJx$88F#~ 8(<>H 2:  D!B  " "Cx"*Y"77HHCx(*HcF"   x/ !   )5%%%}('r!c ||rtpt}tjdkrtrU|rt Stjtdd}tj |Sdtztz}tj|d|StjdkrztrStj|dtjj ztj|dzStj|dStdtjz) NposixsrcdirIncludepythonincludentPCzFI don't know where Python installs its C header files on platform '%s')BASE_EXEC_PREFIX BASE_PREFIXr=rO python_build project_basepathjoinrnormpathr build_flagspathsepr) plat_specificprefixincdir python_dirs r get_python_incrs) ~3#3B{ w'  0  0##nX&>&> JJw''/// 2 4 44{B w||FIz::: D  0GLL33bgoEGLL../ 0w||FI...$ !# )** *r!c |#|r|rtpt}n|rtpt}tjdkrg|s|r t j}nd}tj ||dtz}|r|Stj |dStjdkrC|r tj |dStj |ddStdtjz)Nrlibrz site-packagesrLibz?I don't know where Python installs its library on platform '%s') rr EXEC_PREFIXPREFIXr=rOrl platlibdirrrrr)r standard_librlibdir libpythons r get_python_libr0s ~  ="7'7F;FF"2{,@,@!@BB  < 7<< ?;; ; D  @7<<.. .7<<?? ?$ !# )** *r!)N)rN)rrN)1_impr=r3rlwarnings functoolsrr)r sysconfigrrrrrrr rr rr rr sysconfig_init_posixr rrrrrrrrrrrrrnwarnDeprecationWarning _python_build_init_ntrUrabiflagsAttributeErrorrqrrr!r rsL  ******:   I0000D999 g*L99 7?L 1 1 f f f f ^  #l     D D5D5D5N%*%*%*%*P************s B##B+*B+PK!A$$'__pycache__/debug.cpython-311.opt-2.pycnu[ 0iBddlZejdZdS)NDISTUTILS_DEBUG)osenvirongetDEBUG6/opt/alt/python311/lib64/python3.11/distutils/debug.pyr s(  ())r PK!AA.__pycache__/fancy_getopt.cpython-311.opt-1.pycnu[ 0ixE dZddlZddlZddlZddlZddlTdZejdezZejdededZ e d d Z Gd d Z d ZdejDZdZdZGddZedkrGdZdD]DZedezedeeeeCdSdS)a6distutils.fancy_getopt Wrapper around the standard getopt module that provides the following additional features: * short and long options are tied together * options have help strings, so fancy_getopt could potentially create a complete usage summary * options set attributes of a passed-in object N)*z[a-zA-Z](?:[a-zA-Z0-9-]*)z^%s$z^(z)=!(z)$-_cpeZdZdZddZdZdZddZdZdZ d Z d Z d Z d Z dd ZdZddZddZdS) FancyGetoptaWrapper around the standard 'getopt()' module that provides some handy extra functionality: * short and long options are tied together * options have help strings, and help text can be assembled from them * options set attributes of a passed-in object * boolean options can have "negative aliases" -- eg. if --quiet is the "negative alias" of --verbose, then "--quiet" on the command line sets 'verbose' to false Nc||_i|_|jr|i|_i|_g|_g|_i|_i|_i|_ g|_ dSN) option_table option_index _build_indexaliasnegative_alias short_opts long_opts short2long attr_name takes_arg option_orderselfr s =/opt/alt/python311/lib64/python3.11/distutils/fancy_getopt.py__init__zFancyGetopt.__init__)s{)         !  cl|j|jD]}||j|d<dS)Nr)r clearr )roptions rr zFancyGetopt._build_indexQsG !!!' 2 2F+1D fQi ( ( 2 2rc<||_|dSr )r r rs rset_option_tablezFancyGetopt.set_option_tableVs"( rc||jvrtd|z|||f}|j|||j|<dS)Nz'option conflict: already an option '%s')r DistutilsGetoptErrorr append)r long_option short_option help_stringrs r add_optionzFancyGetopt.add_optionZse $+ + +&;kIKK K"<=F   $ $V , , ,-3D k * * *rc||jvS)zcReturn true if the option table for this parser has an option with long name 'long_option'.)r rr"s r has_optionzFancyGetopt.has_optioncsd///rc6|tS)zTranslate long option name 'long_option' to the form it has as an attribute of some object: ie., translate hyphens to underscores. translate longopt_xlater's r get_attr_namezFancyGetopt.get_attr_namehs$$]333rc |D]I\}}||jvrtd|d|d|d||jvrtd|d|d|dJdS)Nzinvalid z 'z ': option 'z ' not defined': aliased option ')itemsr r )raliaseswhatr opts r_check_alias_dictzFancyGetopt._check_alias_dictns#MMOO P PLUCD---**59TT555%%%,IJJJ$+++**=ATT555###,OPPP,  P Prc@||d||_dS)z'Set the aliases for this option parser.r N)r4r )rr s r set_aliaseszFancyGetopt.set_aliasesxs# ug... rc@||d||_dS)zSet the negative aliases for this option parser. 'negative_alias' should be a dictionary mapping option names to option names, both the key and value must already be defined in the option table.znegative aliasN)r4r)rrs rset_negative_aliasesz FancyGetopt.set_negative_aliases}s) ~/?@@@,rcg|_g|_|ji|_|jD]$}t |dkr |\}}}d}n-t |dkr|\}}}}ntd|t|trt |dkrtd|z|:t|trt |dkstd |z||j|<|j ||d d kr|r|d z}|dd }d|j |<nS|j |}|-|j |rtd |d|d||jd <d|j |<|j|}|2|j ||j |krtd|d|dt |std|z|||j|<|r*|j |||j|d<&dS)zPopulate the various data structures that keep tabs on the option table. Called by 'getopt()' before it can do anything worthwhile. rzinvalid option tuple: z9invalid long option '%s': must be a string of length >= 2Nz:invalid short option '%s': must a single character or None=:zinvalid negative alias 'r/z' takes a valuezinvalid alias 'z%': inconsistent with aliased option 'z/' (one of them takes a value, the other doesn'tzEinvalid long option name '%s' (must be letters, numbers, hyphens only)rrrrrepeatr len ValueError isinstancestrr r!rrgetr longopt_rematchr-r)rrlongshorthelprAalias_tos r_grok_option_tablezFancyGetopt._grok_option_tables   'A 1A 1F6{{a$*!eTV!!,2)eT66!jvv!GHHHdC(( BCIIMM*-9<@,ABBBm ,,$14Uq*,9;@,ABBB!'DK  N ! !$ ' ' 'Bx3-%#+%AbDz'(t$$ .22488'~h/222"&xxx1222 *.DN2&'(t$z~~d++H#>$'4>(+CCC.."TT888-...##D)) I*ACGHIII$(#5#5d#;#;DN4  1&&u---,0a)CA 1A 1rcJ|tjdd}|t}d}nd}|d|j} t j|||j\}}n&#t j$r}t|d}~wwxYw|D]\}}t|dkr |ddkr|j |d}n |dd}|j |} | r| }|j|s#|j |} | r| }d}nd}|j|} |r.|j | t%|| ddz}t'|| ||j||f|r||fS|S) aParse command-line options in args. Store as attributes on object. If 'args' is None or not supplied, uses 'sys.argv[1:]'. If 'object' is None or not supplied, creates a new OptionDummy object, stores option values there, and returns a tuple (args, object). If 'object' is supplied, it is modified in place and 'getopt()' just returns 'args'; in both cases, the returned 'args' is a modified copy of the passed-in 'args' list, which is left untouched. Nr=TF r<rr)sysargv OptionDummyrMjoinrgetoptrerrorDistutilsArgErrorrBrr rFrrrrAgetattrsetattrrr!) rargsobjectcreated_objectroptsmsgr3valr attrs rrTzFancyGetopt.getopts <8ABB ]]F!NN"N !!!XXdo..  )tZHHJD$$| ) ) )#C(( ( ) 1 1HC3xx1}}Q3oc!f-!""gJNN3''E >#& +//44CCCC>#&D 3t{t,,8fdA..2 FD# & & &   $ $c3Z 0 0 0 0  < KsA::B BBc<|jtd|jS)zReturns the list of (option, value) tuples processed by the previous run of 'getopt()'. Raises RuntimeError if 'getopt()' hasn't been called yet. Nz!'getopt()' hasn't been called yet)r RuntimeError)rs rget_option_orderzFancyGetopt.get_option_orders%   $BCC C$ $rcd}|jD]A}|d}|d}t|}|ddkr|dz }||dz}||kr|}B|dzdzdz}d}||z } d |z} |r|g} nd g} |jD]}|dd \}}} t| | } |ddkr |dd}|?| r"| d ||| dfzn_| d ||fznD|d|d}| r"| d ||| dfzn| d|z| ddD]}| | |z| S)zGenerate help text (a list of strings, one per suggested line of output) from the option table for this FancyGetopt object. rr=r>r?Nr<NrOzOption summary:r:z --%-*s %sz --%-*s z (-)z --%-*s)r rB wrap_textr!)rheadermax_optrrIrJl opt_width line_width text_width big_indentlinesrKtext opt_namess r generate_helpzFancyGetopt.generate_helps'  F!9D1IED ABx3E E7{{aK!Oa' 0 )+ 9_  (HEE&'E' - -F &rr D%T:..DBx3AbDz}ALL7D$q'2J!JKKKKLL$!?@@@@ +/$$6 9LL")9d1g!>"?@@@@LLi!7888!""X - - Z!^,,,, - rc| tj}||D]}||dzdS)N )rPstdoutrrwrite)rrhfilelines r print_helpzFancyGetopt.print_helphsN <:D&&v.. $ $D JJtd{ # # # # $ $rr )NN)__name__ __module__ __qualname____doc__rr rr%r(r-r4r6r8rMrTrbrrryrrrrs  &&&&P222 4444000 444 PPP ---K1K1K1Z;;;;z%%%MMMM^$$$$$$rrcvt|}|||||Sr )rr8rT)options negative_optrZrYparsers r fancy_getoptros7  ! !F  --- ==v & &&rc.i|]}t|dS)rO)ord).0_wschars r rus @ @ @7CLL3 @ @ @rc|gSt||kr|gS|}|t}t jd|}d|D}g}|rg}d}|r\t|d}||z|kr$||d|d=||z}n|r|dddkr|d=n|\|rQ|dkr6||dd||d|d|d<|dddkr|d=|d|||S)zwrap_text(text : string, width : int) -> [string] Split 'text' into multiple lines of no more than 'width' characters each, and return the list of strings that results. Nz( +|-+)cg|]}||Sr~r~)rchs r zwrap_text..s ( ( (RR (b ( ( (rrr>rO)rB expandtabsr+WS_TRANSresplitr!rS)rpwidthchunksrocur_linecur_lenrjs rrgrgws  |  4yyEv ??  D >>( # #D Xj$ ' 'F ( (6 ( ( (F E  ( F1IA{e##q ***1I!A+% Q3 6 6     !||q !E' 2333"1Ieff-q ay|s""1I  RWWX&&'''A  (D Lrc6|tS)zXConvert a long option name to a valid Python identifier by changing "-" to "_". r*)r3s rtranslate_longoptrs == ' ''rceZdZdZgfdZdS)rRz_Dummy class just used as a place to hold command-line option values as instance attributes.c2|D]}t||ddS)zkCreate a new OptionDummy instance. The attributes listed in 'options' will be initialized to None.N)rX)rrr3s rrzOptionDummy.__init__s2 % %C D#t $ $ $ $ % %rN)rzr{r|r}rr~rrrRrRs7&& "%%%%%%rrR__main__zTra-la-la, supercalifragilisticexpialidocious. How *do* you spell that odd word, anyways? (Someone ask Mary -- she'll know [or she'll say, "How should I know?"].)) (z width: %drt)r}rPstringrrTdistutils.errors longopt_patcompilerG neg_alias_rerE maketransr,rr whitespacerrgrrRrzrpwprintrSr~rrrs  + RZ+- . . rzzKKKEFF  c3'' O$O$O$O$O$O$O$O$d ''' A @f.? @ @ @333l(((%%%%%%%% z D  kAo dii $**++,,, rPK! =bl(l()__pycache__/version.cpython-311.opt-1.pycnu[ 0i0ddZddlZGddZGddeZGddeZdS) aProvides classes to represent module version numbers (one class for each style of version numbering). There are currently two such classes implemented: StrictVersion and LooseVersion. Every version number class implements the following interface: * the 'parse' method takes a string and parses it to some internal representation; if the string is an invalid version number, 'parse' raises a ValueError exception * the class constructor takes an optional string argument which, if supplied, is passed to 'parse' * __str__ reconstructs the string that was passed to 'parse' (or an equivalent string -- ie. one that will generate an equivalent version number instance) * __repr__ generates Python code to recreate the version number instance * _cmp compares the current instance with either another instance of the same class or a string (which will be parsed to an instance of the same class, thus must follow the same rules) Nc>eZdZdZd dZdZdZdZdZdZ d Z dS) VersionzAbstract base class for version numbering classes. Just provides constructor (__init__) and reproducer (__repr__), because those seem to be the same for all version numbering classes; and route rich comparisons to _cmp. Nc8|r||dSdSNparseselfvstrings 8/opt/alt/python311/lib64/python3.11/distutils/version.py__init__zVersion.__init__&,  JJw       c@|jjdt|dS)Nz ('z')) __class____name__strr s r __repr__zVersion.__repr__*s""n555s4yyyyAArcN||}|tur|S|dkSNr_cmpNotImplementedr othercs r __eq__zVersion.__eq__-, IIe     HAv rcN||}|tur|S|dkSrrrs r __lt__zVersion.__lt__3, IIe     H1u rcN||}|tur|S|dkSrrrs r __le__zVersion.__le__9rrcN||}|tur|S|dkSrrrs r __gt__zVersion.__gt__?r"rcN||}|tur|S|dkSrrrs r __ge__zVersion.__ge__Errr) r __module__ __qualname____doc__r rrr!r$r&r(rr rrs     BBB    rrc`eZdZdZejdejejzZdZ dZ dZ dS) StrictVersiona?Version numbering for anal retentives and software idealists. Implements the standard interface for version number classes as described above. A version number consists of two or three dot-separated numeric components, with an optional "pre-release" tag on the end. The pre-release tag consists of the letter 'a' or 'b' followed by a number. If the numeric components of two version numbers are equal, then one with a pre-release tag will always be deemed earlier (lesser) than one without. The following are valid version numbers (shown in the order that would be obtained by sorting according to the supplied cmp function): 0.4 0.4.0 (these two are equivalent) 0.4.1 0.5a1 0.5b3 0.5 0.9.6 1.0 1.0.4a3 1.0.4b1 1.0.4 The following are examples of invalid version numbers: 1 2.7.2.2 1.3.a4 1.3pl1 1.3c4 The rationale for this version numbering system will be explained in the distutils documentation. z)^(\d+) \. (\d+) (\. (\d+))? ([ab](\d+))?$c|j|}|std|z|ddddd\}}}}}|r+t t t |||g|_n,t t t ||gdz|_|r|dt |f|_dSd|_dS) Nzinvalid version number '%s')rr) version_rematch ValueErrorgrouptuplemapintversion prerelease)r r r6majorminorpatchr=prerelease_nums r rzStrictVersion.parses%%g.. F:WDEE E KK1aA & & :uj.  B S5%*?!@!@AADLL S5%.!9!9::TADL  #)!}c..A.ABDOOO"DOOOrcR|jddkr6dtt|jdd}n-dtt|j}|jr+||jdzt|jdz}|S)Nr1r.r0)r<joinr:rr=r s r __str__zStrictVersion.__str__s <?a  hhs3 QqS(9::;;GGhhs3 5566G ? M 22S9K5L5LLGrct|trt|}nt|tstS|j|jkr|j|jkrdSdS|js |jsdS|jr |jsdS|js |jrdS|jr-|jr(|j|jkrdS|j|jkrdSdSdSdS)Nr0r) isinstancerr.rr<r=r rs r rzStrictVersion._cmps  eS ! ! "!%((EEE=11 "! ! <5= ( (|em++rq +(8 +1o +e&6 +2/ +e&6 +1o +%"2 +%"222q5#333rq  + + + +rN) rr)r*r+recompileVERBOSEASCIIr5rrErr,rr r.r.]sp!!FHJ133J###&   "+"+"+"+"+rr.c^eZdZdZejdejZd dZdZ dZ dZ dZ dS) LooseVersionaVersion numbering for anarchists and software realists. Implements the standard interface for version number classes as described above. A version number consists of a series of numbers, separated by either periods or strings of letters. When comparing version numbers, the numeric components will be compared numerically, and the alphabetic components lexically. The following are all valid version numbers, in no particular order: 1.5.1 1.5.2b2 161 3.10a 8.02 3.4j 1996.07.12 3.2.pl0 3.1.1.6 2g6 11g 0.960923 2.2beta29 1.13++ 5.5.kw 2.0b1pl0 In fact, there is no such thing as an invalid version number under this scheme; the rules for comparison are simple and predictable, but may not always give the results you want (for some definition of "want"). z(\d+ | [a-z]+ | \.)Nc8|r||dSdSrrr s r r zLooseVersion.__init__0rrc||_d|j|D}t|D](\}} t |||<#t $rY%wxYw||_dS)Nc"g|] }|r|dk | S)rCr,).0xs r z&LooseVersion.parse..:s0111A!"1'(Cxx'/xxr)r component_resplit enumerater;r7r<)r r componentsiobjs r rzLooseVersion.parse5s 11!2!8!8!A!A111  ++  FAs  #C 1     " sA A! A!c|jSr)r rs r rEzLooseVersion.__str__Es |rc&dt|zS)NzLooseVersion ('%s'))rrs r rzLooseVersion.__repr__Is$s4yy00rct|trt|}nt|tstS|j|jkrdS|j|jkrdS|j|jkrdSdS)NrrGr0)rHrrOrr<rIs r rzLooseVersion._cmpMs eS ! ! " ''EEE<00 "! ! <5= ( (1 <%- ' '2 <%- ' '1 ( 'rr) rr)r*r+rJrKrLrVr rrErrr,rr rOrO s>2:4bjAAL    " " " 111     rrO)r+rJrr.rOr,rr r_s& ********|k+k+k+k+k+Wk+k+k+`KKKKKGKKKKKrPK!__)__pycache__/_msvccompiler.cpython-311.pycnu[ 0i'NdZddlZddlZddlZddlmZmZmZmZm Z ddl m Z m Z ddl mZddlmZddlmZdZd Zd d d d dZdZdZddZd ddddZGdde ZdS)adistutils._msvccompiler Contains MSVCCompiler, an implementation of the abstract CCompiler class for Microsoft Visual Studio 2015. The module is compatible with VS 2015 and later. You can find legacy support for older versions in distutils.msvc9compiler and distutils.msvccompiler. N)DistutilsExecErrorDistutilsPlatformError CompileErrorLibError LinkError) CCompilergen_lib_options)log) get_platform)countcj tjtjdtjtjz}n%#t $rt jdYdSwxYwd}d}|5tD]} tj ||\}}}n#t $rYn{wxYw|rt|tj krdtj |rE tt|}n#t t"f$rYwxYw|dkr ||kr||}}dddn #1swxYwY||fS)Nz'Software\Microsoft\VisualStudio\SxS\VC7)accesszVisual C++ is not registeredNNr)winreg OpenKeyExHKEY_LOCAL_MACHINEKEY_READKEY_WOW64_32KEYOSErrorr debugr EnumValueREG_SZospathisdirintfloat ValueError TypeError)key best_versionbest_dirivvc_dirvtversions >/opt/alt/python311/lib64/python3.11/distutils/_msvccompiler.py _find_vc2015r*s  % 6?V%;;     0111zzLH = = = =A  & 0a 8 8 622     =R6=((RW]]6-B-B(!%((mmGG"I.Hb==W|%;%;-4f(L = = = = = = = = = = = = = = =  !!si8;AA&D&8BD& B D&B  4D&C21D&2DD&DD&&D*-D*c tjdptjd}|sdS tjtj|dddddd d d d d dg dd}n##tjttf$rYdSwxYwtj|ddd}tj |rd|fSdS)aJReturns "15, path" based on the result of invoking vswhere.exe If no install is found, returns "None, None" The version is returned to avoid unnecessarily changing the function result. It may be ignored when the path is not None. If vswhere.exe is not available, by definition, VS 2017 is not installed. zProgramFiles(x86) ProgramFilesrzMicrosoft Visual Studio Installerz vswhere.exez-latestz -prereleasez -requiresz1Microsoft.VisualStudio.Component.VC.Tools.x86.x64z -propertyinstallationPathz -products*mbcsstrict)encodingerrorsVC AuxiliaryBuild) renvironget subprocess check_outputrjoinstripCalledProcessErrorrUnicodeDecodeErrorr)rootrs r) _find_vc2017rA8s  :>>- . . P"*..2P2PD z & GLL8+} U U   L +  ( 8---.3UWW   )74F Gzz 7<<dK 9 9D w}}T4x :sABB76B7x86x64armarm64)rB x86_amd64x86_arm x86_arm64c.t\}}|st\}}|stjddStj|d}tj|stjd|dS|dfS)Nz$No suitable Visual C++ version foundrz vcvarsall.batz%s cannot be found)rAr*r rrrr<isfile) plat_spec_r#r" vcvarsalls r)_find_vcvarsallrN_s..KAx 0!- h  8999z X77I 7>>) $ $ & 222z d?cXtjdr(dtjDSt |\}}|st d t jd||t j  dd}nW#t j $rE}tj |jt d |jd}~wwxYwd d |DD}|S) NDISTUTILS_USE_SDKc>i|]\}}||Slower).0r!values r) z_get_vc_env..ss6   U IIKK   rOzUnable to find vcvarsall.batzcmd /u /c "{}" {} && set)stderrzutf-16lereplace)r3zError executing {}cHi|]\}}}|| || SrSrT)rVr!rLrWs r)rXz_get_vc_env..sH    CE      U   rOc3@K|]}|dVdS)=N) partition)rVlines r) z_get_vc_env..s.::  ::::::rO)rgetenvr8itemsrNrr:r;formatSTDOUTdecoder>r erroroutputcmd splitlines)rKrMrLoutexcenvs r) _get_vc_envrmqsS y$%%    j..00    #9--LIq E$%CDDD"% & - -i C C$    &I& . .   (""" #*$%9"" ""    ;:)9)9:::   C Js!A B++C?:AC::C?c6|s1tjdtj}|D]b}tjtj||}tj|r|cSc|S)atReturn path to an MSVC executable program. Tries to find the program in several places: first, one of the MSVC program search paths from the registry; next, the directories in the PATH environment variable. If any of those work, return an absolute path that is known to exist. If none of them work, just return the original program name, 'exe'. r)rrasplitpathseprr<abspathrJ)exepathspfns r) _find_exervs 4 &!!'' 33  W\\"'//!,,c 2 2 7>>"   III  JrOrFrGrH)win32z win-amd64z win-arm32z win-arm64ceZdZdZdZiZdgZgdZdgZdgZ eezeze zZ dZ dZ d Z d Zd xZZd ZddZddZ ddZ ddZ ddZ d dZfdZdZdZdZd!dZxZS)" MSVCCompilerzwConcrete class that implements an interface to Microsoft Visual C++, as defined by the CCompiler abstract class.msvcz.c)z.ccz.cppz.cxx.rcz.mcz.resz.objz.libz.dllz%s%sz.exercPtj||||d|_d|_dS)NF)r__init__ plat_name initialized)selfverbosedry_runforces r)r}zMSVCCompiler.__init__s.D'7E::: rONc~|jr Jd|t}|tvr4tdt tt|}t |}|std|dd|_|j tj }td||_ td||_td||_td ||_td ||_td ||_|d d tj D]6}|r2||tj7|d d tj D]6}|r2||tj7d|_gd|_gd|_gd}gd}g|d|_g|d|_g|ddd|_g|ddd|_g||_g||_t@j!df|jt@j!df|jt@j!df|jt@j"df|jt@j"df|jt@j"df|jt@j#df|jt@j#df|jt@j#df|ji |_$d|_dS)Nzdon't init multiple timesz--plat-name must be one of {}z7Unable to find a compatible Visual Studio installation.rzcl.exezlink.exezlib.exezrc.exezmc.exezmt.exeincludelib)/nologoz/Ox/W3z/GLz/DNDEBUGz/MD)rz/Odz/MDdz/Zirz/D_DEBUG)r/INCREMENTAL:NO/LTCG)rrrz /DEBUG:FULLz/MANIFEST:EMBED,ID=1z/DLLz/MANIFEST:EMBED,ID=2z/MANIFESTUAC:NOFT)%rr PLAT_TO_VCVARSrrctuplermr9_pathsrorrprvcclinkerrrcmcmtadd_include_dirrstripsepadd_library_dirpreprocess_optionscompile_optionscompile_options_debug ldflags_exeldflags_exe_debugldflags_sharedldflags_shared_debugldflags_staticldflags_static_debugr EXECUTABLE SHARED_OBJECTSHARED_LIBRARY_ldflags)rr~rKvc_envrsdirldflags ldflags_debugs r) initializezMSVCCompiler.initializesW#@@%@@@#  $I N * *()H*0&~1F1F*G*GII I#9- Y'' /(*.// /jj,,  !!"*--He,, E22 Y..He,,He,,He,,::i,,222:>> 9 9C 9$$SZZ%7%7888::eR((..rz:: 9 9C 9$$SZZ%7%7888"&   & & & "      >W=&<=!I=!I2H!I[[[1G[IZ[$gm$gV$g=S$gUf$g!(j$4m$4! !4 ($*:  !5 )4+;  !4 ($*@  $d +T-@  $e ,d.A  $d +T-F  %t ,d.A  %u -t/B  %t ,d.G    rOrcifdjDfdjjzDpdfd}tt ||S)Nc i|] }|j SrS) obj_extensionrVextrs r)rXz1MSVCCompiler.object_filenames.."sFFF3sD&FFFrOc i|] }|j SrS) res_extensionrs r)rXz1MSVCCompiler.object_filenames..#s\\\3sD&\\\rOrctj|\}}r tj|}natj|\}}|tjjtjjfr |dd} tj||zS#t$r#td |wxYw)NzDon't know how to compile {}) rrsplitextbasename splitdrive startswithraltsepr< LookupErrorrrc)rtbaserrLext_map output_dir strip_dirs r) make_out_pathz4MSVCCompiler.object_filenames..make_out_path(s((++ID# $w''--',,T224??BGK#@AA$8D Mw||Jws|0CDDD M M M##A#H#H#K#KLLL  Ms ((C-C>)src_extensions_rc_extensions_mc_extensionslistmap)rsource_filenamesrrrrs` `` @r)object_filenameszMSVCCompiler.object_filenamess FFFF$2EFFF \\\\$2EH[2[\\\   %2  M M M M M M M&C '788999rOc @|js||||||||} | \}} }} } |pg} | d|r| |jn| |jd}| D]} | |\}}n#t$rYwxYw|rtj |}||j vrd|z}n||j vr d|z}d}n||j vrN|}d|z} ||jg| z||gzn!#t $r}t#|d}~wwxYw||jvrtj |}tj |} ||jd|d||gtj tj |\}}tj ||d z}||jd|z|gn!#t $r}t#|d}~wwxYwt#d |||jg| z| z}|r|d |||d |z|| ||k#t $r}t#|d}~wwxYw| S) Nz/cFz/Tcz/TpTz/foz-hz-rr{z"Don't know how to compile {} to {}z/EHscz/Fo)rr_setup_compileappendextendrrKeyErrorrrrq _c_extensions_cpp_extensionsrspawnrrrrdirnamerrrr<rcr)rsourcesrmacros include_dirsr extra_preargsextra_postargsdepends compile_infoobjectspp_optsbuild compile_opts add_cpp_optsobjsrcr input_opt output_optmsgh_dirrc_dirrrLrc_fileargss r)compilezMSVCCompiler.compile>s  OO   **:v|+2G^MM :F7%$* D!!!  6    : ; ; ; ;    4 5 5 5 A (A (C  :SS     +gooc**d(((!CK ,,,!CK # +++ "S[ ,JJy72j)5LLMMMM),,,&s+++,+++,,-- ,JJudFCHIII g..rw/?/?/E/EFFGD! gll64%<@@GJJg>????),,,&s+++,##G$*F3$4$4666G9|+g5D % G$$$ KK " " " KK $ $ $ KK ' ' ' ( 4    % ( ( ("3''' (s[ B"" B/.B/#D** E4EEB"H88 III&K== LLLc|js||||\}}|||}|||r||d|zgz}|r t jd|jd|| |jg|zdS#t$r}t|d}~wwxYwt jd|dS)N)r/OUT:Executing "%s" %s skipping %s (up-to-date)) rr_fix_object_argslibrary_filename _need_linkr rrr<rrr) rroutput_libnamerr target_langoutput_filenamelib_argsrs r)create_static_libzMSVCCompiler.create_static_libs  OO   "33GZHH//;E0GG ??7O 4 4 C'O";!<z%MSVCCompiler.link..sNNN:+NNNrOrrz/IMPLIB:rrr)rrr _fix_lib_argswarnstrr rrr<rrrrrrrrrqmkpathr rrrrr)r target_descrrr libraries library_dirsruntime_library_dirsexport_symbolsrrr build_tempr fixed_argslib_optsr export_optsld_argsdll_namedll_ext implib_filers r)linkzMSVCCompiler.links  OO   "33GZHH'' <(<>> 8B5 >'**#"NNNNN# # 4rO)rrrr)rr)NNNrNNN)NrN) NNNNNrNNNN)r)__name__ __module__ __qualname____doc__ compiler_type executablesrrrrrrrstatic_lib_extensionshared_lib_extensionstatic_lib_formatshared_lib_format exe_extensionr}rrrrrrr rrr __classcell__)r s@r)ryrys66MKFM---OWNWN$o5$%'56NMM!!,22)M!!!! J J J J `$%$&::::DHIAEWWWWz&* !&* CCCC<"&  CCCCCCCCJ*****!!!LLL***rOryr)rrr:rdistutils.errorsrrrrrdistutils.ccompilerrr distutilsr distutils.utilr itertoolsr r*rAPLAT_SPEC_TO_RUNTIMErNrmrvrryrSrOr)r,s  ??????????????::::::::''''''"""8B  $<* qqqqq9qqqqqrOPK!V!!.__pycache__/archive_util.cpython-311.opt-2.pycnu[ 0i|!@ ddlZddlmZddlZ ddlZn #e$rdZYnwxYwddlmZddlm Z ddl m Z ddl m Z  ddlmZn #e$rdZYnwxYw ddlmZn #e$rdZYnwxYwd Zd Z dd Zdd ZedgdfedgdfedgdfedgdfedgdfegdfdZdZ ddZdS)N)warn)DistutilsExecError)spawn)mkpath)log)getpwnam)getgrnamcx t|dS t|}n#t$rd}YnwxYw||dSdSN)r KeyErrornameresults =/opt/alt/python311/lib64/python3.11/distutils/archive_util.py_get_gidr_,4<t$  ay 4  --cx t|dS t|}n#t$rd}YnwxYw||dSdSr )rr rs r_get_uidr+rrgzipc dddddd}dddd d }|%||vrtd |d z} |d kr| ||dz } ttj| |ddl} tj dttfd} |se| | d||z} | || | n#| wxYw|d krNtdt | ||z} t"jdkr|| | g}n|d| g}t'||| S| S)Ngzbz2xz)rbzip2rNcompressz.gzz.bz2z.xzz.Z)rrrrzKbad value for 'compress': must be None, 'gzip', 'bzip2', 'xz' or 'compress'z.tarrdry_runrzCreating tar archivecH|_|_|_|_|SN)gidgnameuiduname)tarinfor#groupownerr%s r _set_uid_gidz"make_tarball.._set_uid_gidas. ?GK!GM ?GK!GMzw|%s)filterz'compress' will be deprecated.win32z-f)keys ValueErrorgetrospathdirnametarfilerinforropenaddcloserPendingDeprecationWarningsysplatformr) base_namebase_dirrverboser r)r(tar_compression compress_ext archive_namer4r*tarcompressed_namecmdr#r%s `` @@r make_tarballrE7s $e4r#%''O!F% $&&L 0A0A0C0C C C#$$ $v%L: ((2666  27??< ( ('::::NNNH #$$$ 5//C 5//C ll</(2K)KLL  GGH\G 2 2 2 IIKKKKCIIKKKK: -/HIII&h)?? <7 " "\?;CCT<0C c7#### s .DD0c ( |dz}ttj||t?|rd}nd} t d|||g|n7#t $rt d|zwxYwtjd|||s t j |dtj }n1#t$r$t j |dtj }YnwxYw|5|tj krhtjtj|d }|||tjd |tj|D]\}} } | D]k} tjtj|| d }|||tjd |l| D]} tjtj|| }tj|r+|||tjd | dddn #1swxYwY|S) Nz.ziprz-rz-rqzipzkunable to create zip file '%s': could neither import the 'zipfile' module nor find a standalone zip utilityz#creating '%s' and adding '%s' to itw) compressionrz adding '%s')rr1r2r3zipfilerrrr5ZipFile ZIP_DEFLATED RuntimeError ZIP_STOREDcurdirnormpathjoinwritewalkisfile) r<r=r>r zip_filename zipoptionsrGr2dirpathdirnames filenamesrs r make_zipfilerZsv%L 27??< ( ('::::  JJJ D 5*lH=! # # # # #! D D D%'36B&CDD D D 6x ) ) ) : FolC292FHHH F F FolC292DFFF F : :ry((7++BGLL2,F,FGGDIIdD)))H]D11146GH4E4E : :0GXy (66!w// WdB0O0OPP $---5555 )::!w// Wd0K0KLL7>>$//:IIdD111H]D999 : :  : : : : : : : : : : : : : : : s1AA8!B77+C%$C%*FJJ J )rrzgzip'ed tar-file)rrzbzip2'ed tar-file)rrzxz'ed tar-file)rrzcompressed tar file)rNzuncompressed tar filezZIP file)gztarbztarxztarztarrBrGc, |D]}|tvr|cSdSr")ARCHIVE_FORMATS)formatsformats rcheck_archive_formatsrcs6  ( (MMM ) 4r+cn tj}|Jtjd|tj|}|stj|| tj}d|i} t|} n #t$rtd|zwxYw| d} | dD] \} } | | | < |dkr || d<|| d< | ||fi| }|)tjd |tj|n1#|*tjd |tj|wwxYw|S) Nzchanging into '%s'r zunknown archive format '%s'rrGr)r(zchanging back to '%s') r1getcwdrdebugr2abspathchdirrOr`r r/)r<rbroot_dirr=r>r r)r(save_cwdkwargs format_infofuncargvalfilenames r make_archiverrs y{{H &111GOOI..   HX   9 !FA%f- AAA6?@@@A q>DNSs  ww4 866v66   I-x 8 8 8 HX      I-x 8 8 8 HX      Os4 BB D.D2)rrrNN)rr)NNrrNN)r1warningsrr:rJ ImportErrordistutils.errorsrdistutils.spawnrdistutils.dir_utilr distutilsrpwdrgrpr rrrErZr`rcrrr+rr|s   NNNNGGG0/////!!!!!!%%%%%%HHHHHH      KL#'FFFFP::::z124F G235H I/02B C568M N/02I JBz * KL.2222222s/  AA  A AA"!A"PK!kwTZTZ/__pycache__/_msvccompiler.cpython-311.opt-2.pycnu[ 0i'N ddlZddlZddlZddlmZmZmZmZmZddl m Z m Z ddl m Z ddlmZddlmZdZdZd d d d d ZdZdZddZd ddddZGdde ZdS)N)DistutilsExecErrorDistutilsPlatformError CompileErrorLibError LinkError) CCompilergen_lib_options)log) get_platform)countcj tjtjdtjtjz}n%#t $rt jdYdSwxYwd}d}|5tD]} tj ||\}}}n#t $rYn{wxYw|rt|tj krdtj |rE tt|}n#t t"f$rYwxYw|dkr ||kr||}}dddn #1swxYwY||fS)Nz'Software\Microsoft\VisualStudio\SxS\VC7)accesszVisual C++ is not registeredNNr)winreg OpenKeyExHKEY_LOCAL_MACHINEKEY_READKEY_WOW64_32KEYOSErrorr debugr EnumValueREG_SZospathisdirintfloat ValueError TypeError)key best_versionbest_dirivvc_dirvtversions >/opt/alt/python311/lib64/python3.11/distutils/_msvccompiler.py _find_vc2015r*s  % 6?V%;;     0111zzLH = = = =A  & 0a 8 8 622     =R6=((RW]]6-B-B(!%((mmGG"I.Hb==W|%;%;-4f(L = = = = = = = = = = = = = = =  !!si8;AA&D&8BD& B D&B  4D&C21D&2DD&DD&&D*-D*c  tjdptjd}|sdS tjtj|dddddd d d d d dg dd}n##tjttf$rYdSwxYwtj|ddd}tj |rd|fSdS)NzProgramFiles(x86) ProgramFilesrzMicrosoft Visual Studio Installerz vswhere.exez-latestz -prereleasez -requiresz1Microsoft.VisualStudio.Component.VC.Tools.x86.x64z -propertyinstallationPathz -products*mbcsstrict)encodingerrorsVC AuxiliaryBuild) renvironget subprocess check_outputrjoinstripCalledProcessErrorrUnicodeDecodeErrorr)rootrs r) _find_vc2017rA8s :>>- . . P"*..2P2PD z & GLL8+} U U   L +  ( 8---.3UWW   )74F Gzz 7<<dK 9 9D w}}T4x :sABB87B8x86x64armarm64)rB x86_amd64x86_arm x86_arm64c.t\}}|st\}}|stjddStj|d}tj|stjd|dS|dfS)Nz$No suitable Visual C++ version foundrz vcvarsall.batz%s cannot be found)rAr*r rrrr<isfile) plat_spec_r#r" vcvarsalls r)_find_vcvarsallrN_s..KAx 0!- h  8999z X77I 7>>) $ $ & 222z d?cXtjdr(dtjDSt |\}}|st d t jd||t j  dd}nW#t j $rE}tj |jt d |jd}~wwxYwd d |DD}|S) NDISTUTILS_USE_SDKc>i|]\}}||Slower).0r!values r) z_get_vc_env..ss6   U IIKK   rOzUnable to find vcvarsall.batzcmd /u /c "{}" {} && set)stderrzutf-16lereplace)r3zError executing {}cHi|]\}}}|| || SrSrT)rVr!rLrWs r)rXz_get_vc_env..sH    CE      U   rOc3@K|]}|dVdS)=N) partition)rVlines r) z_get_vc_env..s.::  ::::::rO)rgetenvr8itemsrNrr:r;formatSTDOUTdecoder>r erroroutputcmd splitlines)rKrMrLoutexcenvs r) _get_vc_envrmqsS y$%%    j..00    #9--LIq E$%CDDD"% & - -i C C$    &I& . .   (""" #*$%9"" ""    ;:)9)9:::   C Js!A B++C?:AC::C?c8 |s1tjdtj}|D]b}tjtj||}tj|r|cSc|SNr)rrasplitpathseprr<abspathrJ)exepathspfns r) _find_exerws 4 &!!'' 33  W\\"'//!,,c 2 2 7>>"   III  JrOrFrGrH)win32z win-amd64z win-arm32z win-arm64ceZdZ dZiZdgZgdZdgZdgZeezezezZ dZ dZ dZ d Z d xZZd Zdd ZddZ ddZ ddZ ddZ ddZfdZdZdZdZd dZxZS)! MSVCCompilermsvcz.c)z.ccz.cppz.cxx.rcz.mcz.resz.objz.libz.dllz%s%sz.exercPtj||||d|_d|_dS)NF)r__init__ plat_name initialized)selfverbosedry_runforces r)r~zMSVCCompiler.__init__s.D'7E::: rONc\|t}|tvr4tdt tt|}t |}|std|dd|_|jtj }td||_ td||_ td||_td||_td ||_td ||_|d dtj D]6}|r2||tj7|d dtj D]6}|r2||tj7d|_gd |_gd|_gd}gd}g|d|_g|d|_g|ddd|_g|ddd|_g||_g||_t>j df|jt>j df|jt>j df|jt>j!df|jt>j!df|jt>j!df|jt>j"df|jt>j"df|jt>j"df|ji |_#d|_$dS)Nz--plat-name must be one of {}z7Unable to find a compatible Visual Studio installation.rzcl.exezlink.exezlib.exezrc.exezmc.exezmt.exeincludelib)/nologoz/Ox/W3z/GLz/DNDEBUGz/MD)rz/Odz/MDdz/Zirz/D_DEBUG)r/INCREMENTAL:NO/LTCG)rrrz /DEBUG:FULLz/MANIFEST:EMBED,ID=1z/DLLz/MANIFEST:EMBED,ID=2z/MANIFESTUAC:NOFT)%r PLAT_TO_VCVARSrrctuplermr9_pathsrprrqrwcclinkerrrcmcmtadd_include_dirrstripsepadd_library_dirpreprocess_optionscompile_optionscompile_options_debug ldflags_exeldflags_exe_debugldflags_sharedldflags_shared_debugldflags_staticldflags_static_debugr EXECUTABLE SHARED_OBJECTSHARED_LIBRARY_ldflagsr)rrrKvc_envrtdirldflags ldflags_debugs r) initializezMSVCCompiler.initializesA  $I N * *()H*0&~1F1F*G*GII I#9- Y'' /(*.// /jj,,  !!"*--He,, E22 Y..He,,He,,He,,::i,,222:>> 9 9C 9$$SZZ%7%7888::eR((..rz:: 9 9C 9$$SZZ%7%7888"&   & & & "      >W=&<=!I=!I2H!I[[[1G[IZ[$gm$gV$g=S$gUf$g!(j$4m$4! !4 ($*:  !5 )4+;  !4 ($*@  $d +T-@  $e ,d.A  $d +T-F  %t ,d.A  %u -t/B  %t ,d.G    rOrcifdjDfdjjzDpdfd}tt ||S)Nc i|] }|j SrS) obj_extensionrVextrs r)rXz1MSVCCompiler.object_filenames.."sFFF3sD&FFFrOc i|] }|j SrS) res_extensionrs r)rXz1MSVCCompiler.object_filenames..#s\\\3sD&\\\rOrctj|\}}r tj|}natj|\}}|tjjtjjfr |dd} tj||zS#t$r#td |wxYw)NzDon't know how to compile {}) rrsplitextbasename splitdrive startswithraltsepr< LookupErrorrrc)rubaserrLext_map output_dir strip_dirs r) make_out_pathz4MSVCCompiler.object_filenames..make_out_path(s((++ID# $w''--',,T224??BGK#@AA$8D Mw||Jws|0CDDD M M M##A#H#H#K#KLLL  Ms ((C-C>)src_extensions_rc_extensions_mc_extensionslistmap)rsource_filenamesrrrrs` `` @r)object_filenameszMSVCCompiler.object_filenamess FFFF$2EFFF \\\\$2EH[2[\\\   %2  M M M M M M M&C '788999rOc @|js||||||||} | \}} }} } |pg} | d|r| |jn| |jd}| D]} | |\}}n#t$rYwxYw|rtj |}||j vrd|z}n||j vr d|z}d}n||j vrN|}d|z} ||jg| z||gzn!#t $r}t#|d}~wwxYw||jvrtj |}tj |} ||jd|d||gtj tj |\}}tj ||d z}||jd|z|gn!#t $r}t#|d}~wwxYwt#d |||jg| z| z}|r|d |||d |z|| ||k#t $r}t#|d}~wwxYw| S) Nz/cFz/Tcz/TpTz/foz-hz-rr|z"Don't know how to compile {} to {}z/EHscz/Fo)rr_setup_compileappendextendrrKeyErrorrrrr _c_extensions_cpp_extensionsrspawnrrrrdirnamerrrr<rcr)rsourcesrmacros include_dirsr extra_preargsextra_postargsdepends compile_infoobjectspp_optsbuild compile_opts add_cpp_optsobjsrcr input_opt output_optmsgh_dirrc_dirrrLrc_fileargss r)compilezMSVCCompiler.compile>s  OO   **:v|+2G^MM :F7%$* D!!!  6    : ; ; ; ;    4 5 5 5 A (A (C  :SS     +gooc**d(((!CK ,,,!CK # +++ "S[ ,JJy72j)5LLMMMM),,,&s+++,+++,,-- ,JJudFCHIII g..rw/?/?/E/EFFGD! gll64%<@@GJJg>????),,,&s+++,##G$*F3$4$4666G9|+g5D % G$$$ KK " " " KK $ $ $ KK ' ' ' ( 4    % ( ( ("3''' (s[ B"" B/.B/#D** E4EEB"H88 III&K== LLLc|js||||\}}|||}|||r||d|zgz}|r t jd|jd|| |jg|zdS#t$r}t|d}~wwxYwt jd|dS)N)r/OUT:Executing "%s" %s skipping %s (up-to-date)) rr_fix_object_argslibrary_filename _need_linkr rrr<rrr) rroutput_libnamerr target_langoutput_filenamelib_argsrs r)create_static_libzMSVCCompiler.create_static_libs  OO   "33GZHH//;E0GG ??7O 4 4 C'O";!<z%MSVCCompiler.link..sNNN:+NNNrOrrz/IMPLIB:rrr)rrr _fix_lib_argswarnstrr rrr<rrrrrrrrrrmkpathr rrrrr)r target_descrrr libraries library_dirsruntime_library_dirsexport_symbolsrrr build_tempr fixed_argslib_optsr export_optsld_argsdll_namedll_ext implib_filers r)linkzMSVCCompiler.links  OO   "33GZHH'' <(<>> 8B5 >'**#"NNNNN# # 4rO)rrrr)rr)NNNrNNN)NrN) NNNNNrNNNN)r)__name__ __module__ __qualname__ compiler_type executablesrrrrrrrstatic_lib_extensionshared_lib_extensionstatic_lib_formatshared_lib_format exe_extensionr~rrrrrrrrrr __classcell__)r s@r)rzrzs6MKFM---OWNWN$o5$%'56NMM!!,22)M!!!! J J J J `$%$&::::DHIAEWWWWz&* !&* CCCC<"&  CCCCCCCCJ*****!!!LLL***rOrzr)rr:rdistutils.errorsrrrrrdistutils.ccompilerrr distutilsr distutils.utilr itertoolsr r*rAPLAT_SPEC_TO_RUNTIMErNrmrwrrzrSrOr)r,s  ??????????????::::::::''''''"""8B  $<* qqqqq9qqqqqrOPK!$,,+__pycache__/text_file.cpython-311.opt-1.pycnu[ 0i04dZddlZddlZGddZdS)ztext_file provides the TextFile class, which gives an interface to text files that (optionally) takes care of stripping comments, ignoring blank lines, and joining lines with backslashes.NcdeZdZdZddddddddZddZdZd Zdd Zdd Z dd Z d Z dZ dZ dS)TextFilea Provides a file-like object that takes care of all the things you commonly want to do when processing a text file that has some line-by-line syntax: strip comments (as long as "#" is your comment character), skip blank lines, join adjacent lines by escaping the newline (ie. backslash at end of line), strip leading and/or trailing whitespace. All of these are optional and independently controllable. Provides a 'warn()' method so you can generate warning messages that report physical line number, even if the logical line in question spans multiple physical lines. Also provides 'unreadline()' for implementing line-at-a-time lookahead. Constructor is called as: TextFile (filename=None, file=None, **options) It bombs (RuntimeError) if both 'filename' and 'file' are None; 'filename' should be a string, and 'file' a file object (or something that provides 'readline()' and 'close()' methods). It is recommended that you supply at least 'filename', so that TextFile can include it in warning messages. If 'file' is not supplied, TextFile creates its own using 'io.open()'. The options are all boolean, and affect the value returned by 'readline()': strip_comments [default: true] strip from "#" to end-of-line, as well as any whitespace leading up to the "#" -- unless it is escaped by a backslash lstrip_ws [default: false] strip leading whitespace from each line before returning it rstrip_ws [default: true] strip trailing whitespace (including line terminator!) from each line before returning it skip_blanks [default: true} skip lines that are empty *after* stripping comments and whitespace. (If both lstrip_ws and rstrip_ws are false, then some lines may consist of solely whitespace: these will *not* be skipped, even if 'skip_blanks' is true.) join_lines [default: false] if a backslash is the last non-newline character on a line after stripping comments and whitespace, join the following line to it to form one "logical line"; if N consecutive lines end with a backslash, then N+1 physical lines will be joined to form one logical line. collapse_join [default: false] strip leading whitespace from lines that are joined to their predecessor; only matters if (join_lines and not lstrip_ws) errors [default: 'strict'] error handler used to decode the file content Note that since 'rstrip_ws' can strip the trailing newline, the semantics of 'readline()' must differ from those of the builtin file object's 'readline()' method! In particular, 'readline()' returns None for end-of-file: an empty string might just be a blank line (or an all-whitespace line), if 'rstrip_ws' is true but 'skip_blanks' is not.rstrict)strip_comments skip_blanks lstrip_ws rstrip_ws join_lines collapse_joinerrorsNc ||td|jD]:}||vrt||||t|||j|;|D]}||jvrt d|z|||n||_||_d|_g|_ dS)zConstruct a new TextFile object. At least one of 'filename' (a string) and 'file' (a file-like object) must be supplied. They keyword argument options are described above and affect the values returned by 'readline()'.Nz7you must supply either or both of 'filename' and 'file'zinvalid TextFile option '%s'r) RuntimeErrordefault_optionskeyssetattrKeyErroropenfilenamefile current_linelinebuf)selfrroptionsopts :/opt/alt/python311/lib64/python3.11/distutils/text_file.py__init__zTextFile.__init__Ns   XYY Y',,.. > >Cg~~c73<0000c4#7#<====<<>> E EC$...=CDDD/ < IIh    $DMDI !D   cn||_tj|jd|j|_d|_dS)zyOpen a new file named 'filename'. This overrides both the 'filename' and 'file' arguments to the constructor.r)r rN)riorr rr)rrs rrz TextFile.openos5! GDM3t{CCC rcf|j}d|_d|_d|_|dS)ziClose the current file and forget everything we know about it (filename, current line number).N)rrrclose)rrs rr#zTextFile.closevs2y    rctg}||j}||jdzt|tt fr&|dt |zn|d|z|t |d|S)Nz, z lines %d-%d: z line %d: )rappendr isinstancelisttuplestrjoin)rmsglineoutmsgs r gen_errorzTextFile.gen_errors <$D dmd*+++ dT5M * * . MM/E$KK7 8 8 8 8 MM+, - - - c#hhwwvrcNtd|||z)Nzerror: ) ValueErrorr/rr,r-s rerrorzTextFile.errors#T^^C%>%>>???rcxtjd|||zdzdS)aPrint (to stderr) a warning message tied to the current logical line in the current file. If the current logical line in the file spans multiple physical lines, the warning refers to the whole range, eg. "lines 3-5". If 'line' supplied, it overrides the current line number; it may be a list or tuple to indicate a range of physical lines, or an integer for a single physical line.z warning:  N)sysstderrwriter/r2s rwarnz TextFile.warns8 t~~c4'@'@@4GHHHHHrc|jr|jd}|jd=|Sd} |j}|dkrd}|jr|r~|d}|dkrnb|dks||dz dkr7|dd krd pd}|d||z}|dkrn|d d}|jr|r||d |S|j r| }||z}t|j tr|j ddz|j d<nZ|j |j dzg|_ nC|dSt|j tr|j ddz|_ n|j dz|_ |jr|jr|}n7|jr| }n|jr|}|dks|d kr |jr|jr5|ddkr |dd}|d dd kr|dd d z}#|S)aURead and return a single logical line from the current file (or from an internal buffer if lines have previously been "unread" with 'unreadline()'). If the 'join_lines' option is true, this may involve reading multiple physical lines concatenated into a single string. Updates the current line number, so calling 'warn()' after 'readline()' emits a warning about the physical line(s) just read. Returns None on end-of-file, since the empty string can occur if 'rstrip_ws' is true but 'strip_blanks' is not.r%TN#rr\r5z\#z2continuation line immediately precedes end-of-filez\ )rrreadlinerfindstripreplacer r9r lstripr'rr(r r rstripr)rr- buildup_lineposeols rr?zTextFile.readlines < <#D R K a 9%%''Drzz"$ 4t$ 4iinn"99AXXc!e!4!4 8t+5;C#;,Dzz||r)) * <<s33D >< ><II,---''%);;==D#d*d/66@+/+)@D%%<4d/66>(,(9!(rRs^.. T"T"T"T"T"T"T"T"T"T"rPK!R"__pycache__/config.cpython-311.pycnu[ 0iWRdZddlZddlmZddlZddlmZdZGddeZdS)zdistutils.pypirc Provides the PyPIRCCommand class, the base class for the command classes that uses .pypirc in the distutils.command package. N)RawConfigParser)CommandzE[distutils] index-servers = pypi [pypi] username:%s password:%s c`eZdZdZdZdZdZdZdddezfdgZd gZ d Z d Z d Z d Z dZdZdS) PyPIRCCommandz;Base command that knows how to handle the .pypirc file zhttps://upload.pypi.org/legacy/pypiNz repository=rzurl of repository [default: %s]) show-responseNz&display full response text from serverr c|tjtjddS)zReturns rc file path.~z.pypirc)ospathjoin expanduserselfs 7/opt/alt/python311/lib64/python3.11/distutils/config.py _get_rc_filezPyPIRCCommand._get_rc_file's(w||BG..s33Y???c|}tjtj|tjtjzdd5}|t||fzddddS#1swxYwYdS)zCreates a default .pypirc file.iwN)rr fdopenopenO_CREATO_WRONLYwriteDEFAULT_PYPIRC)rusernamepasswordrcfs r _store_pypirczPyPIRCCommand._store_pypirc+s     Yrwr2: #;UCCS I I ;Q GGNh%99 : : : ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;s BB Bc|}tj|r|d|z|jp|j}t}||| }d|vr| dd}d| dD}|gkr d|vrdg}niS|D]}d|i}| |d|d<d |jfd |j fd fD]:\} } | || r| || || <5| || <;|dkr||jdfvr|j|d <|cS|d|ks |d |kr|cSnod |vrkd }| |d r| |d }n|j}| |d| |d |||j dSiS)zReads the .pypirc file.zUsing PyPI login from %s distutilsz index-serverscfg|].}|dk|/S))strip).0servers r z.PyPIRCCommand._read_pypirc..>s<555v%||~~33#LLNN333r rr(r repositoryrealm)rNz server-loginr)rrr+r(r,)rr r existsannouncer+DEFAULT_REPOSITORYrreadsectionsgetsplit DEFAULT_REALM has_option) rrr+configr1 index_servers_serversr(currentkeydefaults r _read_pypirczPyPIRCCommand._read_pypirc1s     7>>"  9 5 MM4r9 : : :CD,CJ$&&F KKOOO((Hh&& & ; H H 55)//55555r>>))$*8 " &''F'0G*0**VZ*H*HGJ'+7*.*A*C*143E)F);)=33 W",,VS993+1::fc+B+BGCLL+2GCLL &(("t'>&GGG040G -&)Z77 -;;& ? ? ? JJJ                )).,GG ##L11!488GLL}}%%h///s?AAc0d|_d|_d|_dS)zInitialize options.Nr)r+r, show_responsers rinitialize_optionsz PyPIRCCommand.initialize_optionszs rcV|j |j|_|j|j|_dSdS)zFinalizes options.N)r+r/r,r4rs rfinalize_optionszPyPIRCCommand.finalize_optionss2 ? ""5DO : +DJJJ  r)__name__ __module__ __qualname____doc__r/r4r+r, user_optionsboolean_optionsrr!r<rMrPrRrrrrs:MJ E  *    3 4L''O@@@;;; >>>@000 ,,,,,rr) rVr configparserrrB distutils.cmdrrrrYrrr\s  ((((((!!!!!!o,o,o,o,o,Go,o,o,o,o,rPK!M I I +__pycache__/file_util.cpython-311.opt-2.pycnu[ 0iZ ddlZddlmZddlmZddddZdd Z dd Z dd Zd Z dS)N)DistutilsFileError)logcopyingz hard linkingzsymbolically linking)Nhardsym@c d}d} t|d}n,#t$r}td|d|jd}~wwxYwtj|rB t j|n,#t$r}td|d|jd}~wwxYw t|d}n,#t$r}td|d|jd}~wwxYw ||}n,#t$r}td|d|jd}~wwxYw|snD | |n,#t$r}td |d|jd}~wwxYw |r| |r| dSdS#|r| |r| wwxYw) Nrbzcould not open '': zcould not delete 'wbzcould not create 'Tzcould not read from 'zcould not write to ') openOSErrorrstrerrorospathexistsunlinkreadwriteclose)srcdst buffer_sizefsrcfdstebufs :/opt/alt/python311/lib64/python3.11/distutils/file_util.py_copy_file_contentsrs D D& TT??DD T T T$$###qzz%RSS S T 7>>#   G G # G G G((58SS!**EGGG G CT??DD C C C$$14ajjACC C C I Jii ,, J J J((8;QZZHJJJ J  I 3 I I I((7:ssAJJGIII I I   JJLLL   JJLLLLL     JJLLL   JJLLLL sF A=A"F %A:9F : B#BB##F 'B87F 8 C!CC!!F &C<;F < D%D  D%%F ,EF  E+ E&&E++F /Gc ddlm}ddlm} m} m} m} tj |std|ztj |r@|} tj |tj |}ntj|} |r+|||s|dkrtjd||dfS t"|}n #t$$rt'd|zwxYw|dkrotj |tj |krtjd||| ntjd||||r|dfS|d krjtj|r tj||s* tj|||dfS#t0$rYncwxYwn^|d krXtj|r tj||stj|||dfSt5|||s|r_tj|}|r#tj||| || f|r$tj|| || |dfS) Nr)newer)ST_ATIMEST_MTIMEST_MODES_IMODEz4can't copy '%s': doesn't exist or not a regular filer z"not copying %s (output up-to-date)z&invalid value '%s' for 'link' argumentz %s %s -> %srr)distutils.dep_utilr"statr#r$r%r&rrisfilerisdirjoinbasenamedirnamerdebug _copy_actionKeyError ValueErrorinforsamefilelinkrsymlinkrutimechmod)rr preserve_modepreserve_timesupdater4verbosedry_runr"r#r$r%r&diractionsts r copy_filer@Cs!>)(((((999999999999 7>>#  L DsJLL L w}}S#gll3 0 0 5 566gooc"" eeCoo a<< I:C @ @ @QxJd# JJJADHIIIJ!|| 7  C BG$4$4S$9$9 9 9 H]FC 5 5 5 5 H]FC 5 5 5Qx s## (8(8c(B(B  S!!!Qx        s## (8(8c(B(B  JsC 8OS!!!00 WS\\  8 HS2h<H6 7 7 7  0 HS''"W+.. / / / 8Os1 C??D G99 HHc t ddlm}m}m}m}m}ddl} |dkrtjd|||r|S||std|z||r*tj |||}n!||rtd|d|d|||std|d|d d } tj ||nG#t$r:} | j\} } | | jkrd } ntd |d |d| Yd} ~ nd} ~ wwxYw| rt#||| tj|n]#t$rP} | j\} } tj|n#t$rYnwxYwtd |d |d|d| d} ~ wwxYw|S)Nr)rr)r*r,r-r zmoving %s -> %sz#can't move '%s': not a regular filez can't move 'z': destination 'z' already existsz' not a valid pathFTzcouldn't move 'z' to 'r )r;z' by copy/delete: delete 'z ' failed: )os.pathrr)r*r,r-errnorr2rrrr+renamerargsEXDEVr@r)rrr;r<rr)r*r,r-rCcopy_itrnummsgs r move_filerJsA@@@@@@@@@@@@@LLL!|| "C--- 6#;;N !F!LMMM uSzzgll3 ..   ssCCC  5    ssCCC GF #s FFFV c %+  GG$$69cc333DFF F GGGGF *#sG,,,, * IcNNNN * * *JS#  #    $$SS###sssCC)** * * JsTC** D.40D))D.E F5% F00FF0 FF0FF00F5c t|d} |D]}||dz |dS#|wxYw)Nw )r rr)filenamecontentsflines r write_filerRso XsA ! !D GGD4K  !   s AA)r)r r rNr r)r r) rdistutils.errorsr distutilsrr/rr@rJrRrrWs  //////#'/22 1111fCD,-____H<<<<~     rVPK!ѕ9hh.__pycache__/msvccompiler.cpython-311.opt-1.pycnu[ 0i[0dZddlZddlZddlmZmZmZmZmZddl m Z m Z ddl m Z dZ ddlZdZeZejZejZejZejZnP#e$rH ddlZddlZdZeZejZejZejZejZn#e$re jdYnwxYwYnwxYwerejejejej fZ!d Z"d Z#d Z$Gd d Z%dZ&dZ'dZ(Gdde Z)e&dkr e j*de)Z+ddl,m)Z)ddl,m%Z%dSdS)zdistutils.msvccompiler Contains MSVCCompiler, an implementation of the abstract CCompiler class for the Microsoft Visual Studio. N)DistutilsExecErrorDistutilsPlatformError CompileErrorLibError LinkError) CCompilergen_lib_options)logFTzWarning: Can't read registry to find the necessary compiler setting Make sure that Python modules winreg, win32api or win32con are installed.c t||}n#t$rYdSwxYwg}d} t||}n#t$rYnwxYw|||dz }=|S)zReturn list of registry keys.NrT) RegOpenKeyExRegError RegEnumKeyappend)basekeyhandleLiks =/opt/alt/python311/lib64/python3.11/distutils/msvccompiler.py read_keysr6sdC(( tt A A 61%%AA    E    Q  Hs !!; AAc t||}n#t$rYdSwxYwi}d} t||\}}}n#t$rYn=wxYw|}t ||t |<|dz }_|S)zXReturn dict of registry keys and values. All names are converted to lowercase. NrTr )r r RegEnumValuelower convert_mbcs)rrrdrnamevaluetypes r read_valuesr!Gs dC(( tt A A  ,VQ 7 7 D%    E zz|| ,U 3 3,t   Q Hs !!? A  A cft|dd}| |d}n#t$rYnwxYw|S)Ndecodembcs)getattr UnicodeError)sdecs rrr\sQ !Xt $ $C  F AA    D  Hs ! ..c&eZdZdZdZdZdZdS) MacroExpanderc>i|_||dSN)macros load_macros)selfversions r__init__zMacroExpander.__init__fs#  !!!!!cjtD]*}t||}|r|||jd|z<dS+dS)Nz$(%s))HKEYSr!r-)r/macropathrrrs r set_macrozMacroExpander.set_macrojsR  DD$''A /0v GeO,   r2c d|z}|d|dzd|d|dzdd}|d|d  |d kr|d |d n|d |d n!#t$r}tdd}~wwxYwd}tD]Y} t ||}n#t $rY wxYwt |d}t||d|} | d|jd<ZdS)Nz%Software\Microsoft\VisualStudio\%0.1f VCInstallDirz \Setup\VC productdir VSInstallDirz \Setup\VSz Software\Microsoft\.NETFramework FrameworkDir installrootg@FrameworkSDKDirzsdkinstallrootv1.1sdkinstallrootaPython was built with Visual Studio 2003; extensions must be built with a compiler than can generate compatible binaries. Visual Studio 2003 was not found on this system. If you have Cygwin installed, you can try compiling with MingW32, by passing "-c mingw32" to setup.py.z.Software\Microsoft\NET Framework Setup\Productr\r0z$(FrameworkVersion)) r7KeyErrorrr4r rrr!r-) r/r0vsbasenetexcprhrrs rr.zMacroExpander.load_macrosqsq9GC ~v ' > >D  q))    Q""CDaaa"566A129DK- . . > >s*5B B(B##B(7C CCcp|jD]\}}|||}|Sr,)r-itemsreplace)r/r'rvs rsubzMacroExpander.subs;K%%''  DAq !QAAr2N)__name__ __module__ __qualname__r1r7r.rKr2rr*r*esP""">>>8r2r*cvd}tj|}|dkrdS|t|z}tj|ddd\}}t |dddz }|dkr|dz }t |d d d z }|dkrd }|dkr||zSdS) zReturn the version of MSVC that was used to build Python. For Python 2.3 and up, the version number is included in sys.version. For earlier versions, assume the compiler is MSVC 6. zMSC v.N r g$@r)sysr0findlensplitint)prefixrr'rest majorVersion minorVersions rget_build_versionras F   ABwwq CKKAk!""o##C++GAtq"v;;?Lr q1v;;%Lq ql** 4r2cd}tj|}|dkrdStjd|}tj|t|z|S)zUReturn the processor architecture. Possible results are "Intel" or "AMD64". z bit (rQIntel))rXr0rYrZ)r]rjs rget_build_architecturerfs^ F   ABwww a  A ;qV}Q ''r2cg}|D]:}tj|}||vr||;|S)znReturn a list of normalized paths with duplicates removed. The current order of paths is maintained. )osr6normpathr)paths reduced_pathsrEnps rnormalize_and_reduce_pathsrmsS M %% W  a  ] " "   $ $ $ r2ceZdZdZdZiZdgZgdZdgZdgZ eezeze zZ dZ dZ d Z d Zd xZZd ZddZdZ ddZ d dZ d!dZ d"dZdZdZdZd#dZdZd$dZdZdS)% MSVCCompilerzwConcrete class that implements an interface to Microsoft Visual C++, as defined by the CCompiler abstract class.msvcz.c)z.ccz.cppz.cxx.rcz.mcz.resz.objz.libz.dllz%s%sz.exercNtj||||t|_t |_|jdkrC|jdkr!d|_t|j|_nd|_d|jz|_ nd|jdzz|_ d|_ dS) NrczSoftware\Microsoft\VisualStudiozSoftware\Microsoft\DevstudiozVisual Studio version %szMicrosoft SDK compiler %srRF) rr1ra_MSVCCompiler__versionrf_MSVCCompiler__arch_MSVCCompiler__rootr*_MSVCCompiler__macros_MSVCCompiler__product initialized)r/verbosedry_runforces rr1zMSVCCompiler.__init__sD'7E:::*,,,.. ;' ! !~""@ -dn = = = 7$.HDNN9DNQQ  )))D % %)))D %!*lsAF F#"F#c|d}g}|D]s}tj|\}}tj|d}|tj|d}||jvrt d|z|rtj|}||jvr<| tj |||j z||j vr=| tj |||j z8| tj |||j zu|S)Nrr zDon't know how to compile %s)rhr6splitext splitdriveisabssrc_extensionsrbasename_rc_extensionsrr res_extension_mc_extensions obj_extension)r/source_filenames strip_dir output_dir obj_namessrc_namerexts robject_filenameszMSVCCompiler.object_filenames7s  Bz ( L LH'**H55KT37%%d++A.D d++,,-D$---#$BX$MNNN /w''..d)))  "',, 04t7I0I#K#KLLLL+++  "',, 04t7I0I#K#KLLLL  "',, 04t7I0I#K#KLLLLr2Nc |js||||||||} | \}} }} } |pg} | d|r| |jn| |j| D];} | |\}}n#t$rYwxYw|rtj |}||j vrd|z}n||j vrd|z}n||j vrQ|}d|z} ||jg| z|gz|gzn!#t $r}t#|d}~wwxYw||jvrtj |}tj |} ||jgd|d|gz|gztj tj |\}}tj ||dz}||jgd|zgz|gzn!#t $r}t#|d}~wwxYwt#d|d |d |z} ||jg| z| z||gz|z#t $r}t#|d}~wwxYw| S) Nz/cz/Tcz/Tpz/foz-hz-rrqzDon't know how to compile z to z/Fo)ryr_setup_compilerextendrrrArhr6abspath _c_extensions_cpp_extensionsrspawnrrrrdirnamerrrrr)r/sourcesrr- include_dirsdebug extra_preargsextra_postargsdepends compile_infoobjectspp_optsbuild compile_optsobjsrcr input_opt output_optmsgh_dirrc_dirr_rc_files rcompilezMSVCCompiler.compileVs  OO   **:v|+2G^MM :F7%$* T"""  6    : ; ; ; ;    4 5 5 5? (? (C  :SS     +gooc**d(((!CK ,,,!CK +++ "S[ ,JJy72 *| ,/8k :;;;;),,,&s+++,+++,,-- ,JJy $eT6: ;>AU CDDD g..0@0@#0F0FGGGD! gllFD5LAAGJJy % } -07y 9::::*,,,&s+++,#l&)cc33$0111J ( DG9|3g=%z23)*++++& ( ( ("3''' (s[ B  B-,B-&D)) E3EEB.I I! II!)J,, K 6KK c|js||||\}}|||}|||rN|d|zgz}|r ||jg|zdS#t$r}t|d}~wwxYwtj d|dS)N)r/OUT:skipping %s (up-to-date)) ryr_fix_object_argslibrary_filename _need_linkrrrrr r) r/routput_libnamerr target_langoutput_filenamelib_argsrs rcreate_static_libzMSVCCompiler.create_static_libs  OO    $ 5 5gz J J*//;E0GG ??7O 4 4 C'O";!<> :D7L"6  5 IIN2334 5 5 5#4#/1E#,..  ! gll:GGO ??7O 4 4, Ci2226"7;GG"1!""5GG2"7GG"1GK&," 5 5"":#34444)K7")O";!<=G)&(g&6&6G$$_55'7'7#7 gllGOOGAJ//))(3355  [ 8999 ,+  /~... KK88 9 9 9 % DK=7233333% % % %nn$ % I0/ B B B B Bs<I I:&I55I:c d|zS)Nz /LIBPATH:rOr/dirs rlibrary_dir_optionzMSVCCompiler.library_dir_options S  r2c td)Nz>'**#"NNNNN# # 4r2c|jD]b}tjtj||}tj|r|cSctjddD]b}tjtj||}tj|r|cSc|S)aReturn path to an MSVC executable program. Tries to find the program in several places: first, one of the MSVC program search paths from the registry; next, the directories in the PATH environment variable. If any of those work, return an absolute path that is known to exist. If none of them work, just return the original program name, 'exe'. Pathr)rrhr6rrisfilerr[)r/exerEfns rrzMSVCCompiler.find_exe4s  Abgooa00#66Bw~~b!!   F#))#..  Abgooa0055Bw~~b!!    r2x86ctsgS|dz}|jdkrd|j|jfz}n |jd|d}tD]q}t ||}|r]|jdkr5|j||dcS||dcSr|jdkr9tD]1}t |d|jz|d n2gS) zGet a list of devstudio directories (include, lib or path). Return a list of strings. The list will be empty if unable to access the registry or appropriate registry keys not found. z dirsrsz6%s\%0.1f\VC\VC_OBJECTS_PLATFORM_INFO\Win32\Directoriesz.\6.0\Build System\Components\Platforms\Win32 (z )\DirectoriesrrRz%s\6.0NzIt seems you have Visual Studio 6 installed, but the expected registry settings are not present. You must at least run the Visual Studio GUI once so that these entries are created.) _can_read_regrtrvr4r!rwrKr[r)r/r6platformrrrs rrzMSVCCompiler.get_msvc_pathsJs@  Ig~ >Q  Lk4>23CC26hhhHC . .DD#&&A .>Q&&=,,QtW55;;C@@@@@T7==-----  . >Q    tY%<==III=>>>E J  r2c|dkr|d}n||}|r$d|tj|<dSdS)zSet environment variable 'name' to an MSVC path type value. This is equivalent to a SET command prior to execution of spawned commands. rlibraryrN)rrrhr)r/rrEs rrzMSVCCompiler.set_path_env_varnsc 5==##I..AA##D))A  +"xx{{BJt    + +r2)rrr)rr)NNNrNNN)NrN) NNNNNrNNNN)r)r)rLrMrN__doc__ compiler_type executablesrrrrrrrstatic_lib_extensionshared_lib_extensionstatic_lib_formatshared_lib_format exe_extensionr1rrrrrrrrrrrrrOr2rroros66MKFM---OWNWN$o5$%'56NMM!!,22)M!!!!$< < < D$%$&@HIAERRRRp&* !&* CCCC:"&  LCLCLCLCf!!!NNN***$,""""H + + + + +r2rog @z3Importing new compiler from distutils.msvc9compiler)ro)r*)-r rXrhdistutils.errorsrrrrrdistutils.ccompilerrr distutilsr rwinreghkey_mod OpenKeyExr EnumKeyr EnumValuererrorr ImportErrorwin32apiwin32coninfo HKEY_USERSHKEY_CURRENT_USERHKEY_LOCAL_MACHINEHKEY_CLASSES_ROOTr4rr!rr*rarfrmrorOldMSVCCompilerdistutils.msvc9compilerrOr2rr's''''''''''''''         8MMMMH#LJ#L|HH8888 , ( , > 8887 8 8 8 8 888")   '  (  ' )E    "   *   ++++++++Z2 ( ( (   s+s+s+s+s+9s+s+s+l # CICDDD"O44444455555555 s5$AB(A>=B>BBBBBPK!A$$'__pycache__/debug.cpython-311.opt-1.pycnu[ 0iBddlZejdZdS)NDISTUTILS_DEBUG)osenvirongetDEBUG6/opt/alt/python311/lib64/python3.11/distutils/debug.pyr s(  ())r PK!R[j((%__pycache__/file_util.cpython-311.pycnu[ 0i\dZddlZddlmZddlmZddddZdd Z dd Z dd Z dZ dS)zFdistutils.file_util Utility functions for operating on single files. N)DistutilsFileError)logcopyingz hard linkingzsymbolically linking)Nhardsym@cd}d} t|d}n,#t$r}td|d|jd}~wwxYwtj|rB t j|n,#t$r}td|d|jd}~wwxYw t|d}n,#t$r}td|d|jd}~wwxYw ||}n,#t$r}td |d|jd}~wwxYw|snD | |n,#t$r}td |d|jd}~wwxYw |r| |r| dSdS#|r| |r| wwxYw) a5Copy the file 'src' to 'dst'; both must be filenames. Any error opening either file, reading from 'src', or writing to 'dst', raises DistutilsFileError. Data is read/written in chunks of 'buffer_size' bytes (default 16k). No attempt is made to handle anything apart from regular files. Nrbzcould not open '': zcould not delete 'wbzcould not create 'Tzcould not read from 'zcould not write to ') openOSErrorrstrerrorospathexistsunlinkreadwriteclose)srcdst buffer_sizefsrcfdstebufs :/opt/alt/python311/lib64/python3.11/distutils/file_util.py_copy_file_contentsrs D D& TT??DD T T T$$###qzz%RSS S T 7>>#   G G # G G G((58SS!**EGGG G CT??DD C C C$$14ajjACC C C I Jii ,, J J J((8;QZZHJJJ J  I 3 I I I((7:ssAJJGIII I I   JJLLL   JJLLLLL     JJLLL   JJLLLL sF A<A"F$A98F9 B"BB""F&B76F7 C CC  F%C;:F; D$DD$$F+EF E* E%%E**F/Gcddlm}ddlm} m} m} m} tj |std|ztj |r@|} tj |tj |}ntj|} |r+|||s|dkrtjd||dfS t"|}n #t$$rt'd|zwxYw|dkrotj |tj |krtjd||| ntjd||||r|dfS|d krjtj|r tj||s* tj|||dfS#t0$rYncwxYwn^|d krXtj|r tj||stj|||dfSt5|||s|r_tj|}|r#tj||| || f|r$tj|| || |dfS) aCopy a file 'src' to 'dst'. If 'dst' is a directory, then 'src' is copied there with the same name; otherwise, it must be a filename. (If the file exists, it will be ruthlessly clobbered.) If 'preserve_mode' is true (the default), the file's mode (type and permission bits, or whatever is analogous on the current platform) is copied. If 'preserve_times' is true (the default), the last-modified and last-access times are copied as well. If 'update' is true, 'src' will only be copied if 'dst' does not exist, or if 'dst' does exist but is older than 'src'. 'link' allows you to make hard links (os.link) or symbolic links (os.symlink) instead of copying: set it to "hard" or "sym"; if it is None (the default), files are copied. Don't set 'link' on systems that don't support it: 'copy_file()' doesn't check if hard or symbolic linking is available. If hardlink fails, falls back to _copy_file_contents(). Under Mac OS, uses the native file copy function in macostools; on other systems, uses '_copy_file_contents()' to copy file contents. Return a tuple (dest_name, copied): 'dest_name' is the actual name of the output file, and 'copied' is true if the file was copied (or would have been copied, if 'dry_run' true). r)newer)ST_ATIMEST_MTIMEST_MODES_IMODEz4can't copy '%s': doesn't exist or not a regular filer z"not copying %s (output up-to-date)z&invalid value '%s' for 'link' argumentz %s %s -> %srr)distutils.dep_utilr"statr#r$r%r&rrisfilerisdirjoinbasenamedirnamerdebug _copy_actionKeyError ValueErrorinforsamefilelinkrsymlinkrutimechmod)rr preserve_modepreserve_timesupdater4verbosedry_runr"r#r$r%r&diractionsts r copy_filer@CsB)(((((999999999999 7>>#  L DsJLL L w}}S#gll3 0 0 5 566gooc"" eeCoo a<< I:C @ @ @QxJd# JJJADHIIIJ!|| 7  C BG$4$4S$9$9 9 9 H]FC 5 5 5 5 H]FC 5 5 5Qx s## (8(8c(B(B  S!!!Qx        s## (8(8c(B(B  JsC 8OS!!!00 WS\\  8 HS2h<H6 7 7 7  0 HS''"W+.. / / / 8Os0 C>>DG88 HHc rddlm}m}m}m}m}ddl} |dkrtjd|||r|S||std|z||r*tj |||}n!||rtd|d|d |||std|d|d d } tj ||nG#t$r:} | j\} } | | jkrd } ntd |d|d| Yd} ~ nd} ~ wwxYw| rt#||| tj|n]#t$rP} | j\} } tj|n#t$rYnwxYwtd |d|d|d| d} ~ wwxYw|S)a%Move a file 'src' to 'dst'. If 'dst' is a directory, the file will be moved into it with the same name; otherwise, 'src' is just renamed to 'dst'. Return the new full name of the file. Handles cross-device moves on Unix using 'copy_file()'. What about other systems??? r)rr)r*r,r-Nr zmoving %s -> %sz#can't move '%s': not a regular filez can't move 'z': destination 'z' already existsz' not a valid pathFTzcouldn't move 'z' to 'r )r;z' by copy/delete: delete 'z ' failed: )os.pathrr)r*r,r-errnorr2rrrr+renamerargsEXDEVr@r)rrr;r<rr)r*r,r-rCcopy_itrnummsgs r move_filerJsA@@@@@@@@@@@@@LLL!|| "C--- 6#;;N !F!LMMM uSzzgll3 ..   ssCCC  5    ssCCC GF #s FFFV c %+  GG$$69cc333DFF F GGGGF *#sG,,,, * IcNNNN * * *JS#  #    $$SS###sssCC)** * * JsTC)) D-30D((D-E F4$ F//FF/ FF/FF//F4ct|d} |D]}||dz |dS#|wxYw)z{Create a file with the specified name and write 'contents' (a sequence of strings without line terminators) to it. w N)r rr)filenamecontentsflines r write_filerRsj XsA ! !D GGD4K  !   s AA)r)r r rNr r)r r) __doc__rdistutils.errorsr distutilsrr/rr@rJrRrrXs  //////#'/22 1111fCD,-____H<<<<~     rWPK!$''%__pycache__/extension.cpython-311.pycnu[ 0i!)BdZddlZddlZddlZGddZdZdS)zmdistutils.extension Provides the Extension class, used to describe C/C++ extension modules in setup scripts.Nc<eZdZdZ ddZdZdS) Extensiona Just a collection of attributes that describes an extension module and everything needed to build it (hopefully in a portable way, but there are hooks that let you be as unportable as you need). Instance attributes: name : string the full name of the extension, including any packages -- ie. *not* a filename or pathname, but Python dotted name sources : [string] list of source filenames, relative to the distribution root (where the setup script lives), in Unix form (slash-separated) for portability. Source files may be C, C++, SWIG (.i), platform-specific resource files, or whatever else is recognized by the "build_ext" command as source for a Python extension. include_dirs : [string] list of directories to search for C/C++ header files (in Unix form for portability) define_macros : [(name : string, value : string|None)] list of macros to define; each macro is defined using a 2-tuple, where 'value' is either the string to define it to or None to define it without a particular value (equivalent of "#define FOO" in source or -DFOO on Unix C compiler command line) undef_macros : [string] list of macros to undefine explicitly library_dirs : [string] list of directories to search for C/C++ libraries at link time libraries : [string] list of library names (not filenames or paths) to link against runtime_library_dirs : [string] list of directories to search for C/C++ libraries at run time (for shared extensions, this is when the extension is loaded) extra_objects : [string] list of extra files to link with (eg. object files not implied by 'sources', static library that must be explicitly specified, binary resource files, etc.) extra_compile_args : [string] any extra platform- and compiler-specific information to use when compiling the source files in 'sources'. For platforms and compilers where "command line" makes sense, this is typically a list of command-line arguments, but for other platforms it could be anything. extra_link_args : [string] any extra platform- and compiler-specific information to use when linking object files together to create the extension (or to create a new static Python interpreter). Similar interpretation as for 'extra_compile_args'. export_symbols : [string] list of symbols to be exported from a shared extension. Not used on all platforms, and not generally necessary for Python extensions, which typically export exactly one symbol: "init" + extension_name. swig_opts : [string] any extra options to pass to SWIG if a source file has the .i extension. depends : [string] list of files that the extension depends on language : string extension language (i.e. "c", "c++", "objc"). Will be detected from the source extensions if not provided. optional : boolean specifies that a build failure in the extension should not abort the build process, but simply not install the failing extension. Nc t|tstdt|trt d|Dstd||_||_|pg|_|pg|_|pg|_ |pg|_ |pg|_ |pg|_ | pg|_ | pg|_| pg|_| pg|_| pg|_|pg|_||_||_t+|dkrId|D}dt/|}d|z}t1j|dSdS)Nz'name' must be a stringc3@K|]}t|tVdS)N) isinstancestr).0vs :/opt/alt/python311/lib64/python3.11/distutils/extension.py z%Extension.__init__..ks,881Jq#&&888888z#'sources' must be a list of stringsrc,g|]}t|S)repr)r options r z&Extension.__init__..s555tF||555r z, zUnknown Extension options: %s)rrAssertionErrorlistallnamesources include_dirs define_macros undef_macros library_dirs librariesruntime_library_dirs extra_objectsextra_compile_argsextra_link_argsexport_symbols swig_optsdependslanguageoptionallenjoinsortedwarningswarn)selfrrrrrrrrrrr r!r"r#r$r%kwoptionsmsgs r __init__zExtension.__init__Ws{"$$$ < !:;; ;7D)) H8888888 H !FGG G  (.B*0b(.B(.B"b$8$>B!*0b"4":.4",2"b}"      r77Q;;55"555Giiw00G1G;C M#      ;r c`d|jj|jj|jt |fzS)Nz<%s.%s(%r) at %#x>) __class__ __module__ __qualname__rid)r+s r __repr__zExtension.__repr__s2# N % N ' I tHH ' r )NNNNNNNNNNNNNN)__name__r2r3__doc__r/r5rr r rrso>>F $ $## '+ $%)"&!%"----^r rcddlm}m}m}ddlm}ddlm}||}||ddddd} g} |} | ntj || r/| d| d cxkrd krnn| d | zd|| |} || } | d} t| g} d} | ddD]?}| | |d} tj|d}|dd }|d d}|d vr| j |u|dkr| j ||dkri|d}|d kr| j |df| j |d|||d zdf|dkr| j |'|dkr| j |I|dkr| j |k|dkr| j ||dkr| j ||dkr | j} |dkr | j} |dkr | j} |dkr%| j ||s| j} |dvr| j |'| d|zA| |  |n#|wxYw|S)z3Reads a Setup file and returns Extension instances.r)parse_makefileexpand_makefile_vars _variable_rx)TextFile) split_quoted)strip_comments skip_blanks join_lines lstrip_ws rstrip_wsTN*z'%s' lines not handled yet)z.cz.ccz.cppz.cxxz.c++z.mz.mmz-Iz-D=z-Uz-Cz-lz-Lz-Rz-rpathz-Xlinkerz -Xcompilerz-u)z.az.soz.slz.oz.dylibzunrecognized argument '%s')distutils.sysconfigr9r:r;distutils.text_filer<distutils.utilr=readlinerematchr*rappendospathsplitextrrfindrrrrrrr rclose)filenamer9r:r;r<r=varsfile extensionslinewordsmoduleextappend_next_wordwordsuffixswitchvalueequalss r read_setup_filerbsB3333333333-,,,,,++++++ >( # #D 8H#$!1 . . .DQ L #==??D|x d++ Aw$r())))c))))) 6=>>>''d33D L&&E1XFFB''C# abb 2 C2 C#/$++D111'+$))$//2acT!""XUOOOK&&t,,,,t^^$++E2222t^^"ZZ__F||)00%????)00%&/27q 2B2DEEEEt^^$++E2222t^^*11$7777t^^M((////t^^$++E2222t^^,33E::::X%%'*'?$$Z'''*':$$\))'*'=$$t^^'..t444 ?+.+>(CCC %,,T2222II:TABBBB   c " " "YL #V  s K9MM)r7rOrLr)rrbrr r rcs{  wwwwwwwwtcccccr PK!9ʋIcc(__pycache__/errors.cpython-311.opt-1.pycnu[ 0i dZGddeZGddeZGddeZGddeZGd d eZGd d eZGd deZGddeZ GddeZ GddeZ GddeZ GddeZ GddeZGddeZGddeZGdd eZGd!d"eZGd#d$eZGd%d&eZd'S)(adistutils.errors Provides exceptions used by the Distutils modules. Note that Distutils modules may raise standard exceptions; in particular, SystemExit is usually raised for errors that are obviously the end-user's fault (eg. bad command-line arguments). This module is safe to use in "from ... import *" mode; it only exports symbols whose names start with "Distutils" and end with "Error".ceZdZdZdS)DistutilsErrorzThe root of all Distutils evil.N__name__ __module__ __qualname____doc__7/opt/alt/python311/lib64/python3.11/distutils/errors.pyrr s))Dr rceZdZdZdS)DistutilsModuleErrorzUnable to load an expected module, or to find an expected class within some module (in particular, command modules and classes).Nrr r r r r sHHDr r ceZdZdZdS)DistutilsClassErrorzSome command class (or possibly distribution class, if anyone feels a need to subclass Distribution) is found not to be holding up its end of the bargain, ie. implementing some part of the "command "interface.Nrr r r rrs Dr rceZdZdZdS)DistutilsGetoptErrorz7The option table provided to 'fancy_getopt()' is bogus.Nrr r r rrsAADr rceZdZdZdS)DistutilsArgErrorzaRaised by fancy_getopt in response to getopt.error -- ie. an error in the command line usage.Nrr r r rrs((Dr rceZdZdZdS)DistutilsFileErrorzAny problems in the filesystem: expected file not found, etc. Typically this is for problems that we detect before OSError could be raised.Nrr r r rr$s Dr rceZdZdZdS)DistutilsOptionErroraSyntactic/semantic errors in command options, such as use of mutually conflicting options, or inconsistent options, badly-spelled values, etc. No distinction is made between option values originating in the setup script, the command line, config files, or what-have-you -- but if we *know* something originated in the setup script, we'll raise DistutilsSetupError instead.Nrr r r rr*sBB  Dr rceZdZdZdS)DistutilsSetupErrorzqFor errors that can be definitely blamed on the setup script, such as invalid keyword arguments to 'setup()'.Nrr r r rr3s77Dr rceZdZdZdS)DistutilsPlatformErrorzWe don't know how to do something on the current platform (but we do know how to do it on some platform) -- eg. trying to compile C files on a platform not supported by a CCompiler subclass.Nrr r r rr8sDD Dr rceZdZdZdS)DistutilsExecErrorz`Any problems executing an external program (such as the C compiler, when compiling C files).Nrr r r rr>s**Dr rceZdZdZdS)DistutilsInternalErrorzoInternal inconsistencies or impossibilities (obviously, this should never be seen if the code is working!).Nrr r r rrCs66Dr rceZdZdZdS)DistutilsTemplateErrorz%Syntax error in a file list template.Nrr r r r!r!Hs////r r!ceZdZdZdS)DistutilsByteCompileErrorzByte compile error.Nrr r r r#r#Ksr r#ceZdZdZdS)CCompilerErrorz#Some compile/link operation failed.Nrr r r r%r%Os----r r%ceZdZdZdS)PreprocessErrorz.Failure to preprocess one or more C/C++ files.Nrr r r r'r'Rs8888r r'ceZdZdZdS) CompileErrorz2Failure to compile one or more C/C++ source files.Nrr r r r)r)Us<<<r1s9DD     i        N        >        N                .        N        >        n        .        n   00000n000.....i...99999~999=====N===3333333333r PK!v^^/__pycache__/_msvccompiler.cpython-311.opt-1.pycnu[ 0i'NdZddlZddlZddlZddlmZmZmZmZm Z ddl m Z m Z ddl mZddlmZddlmZdZd Zd d d d dZdZdZddZd ddddZGdde ZdS)adistutils._msvccompiler Contains MSVCCompiler, an implementation of the abstract CCompiler class for Microsoft Visual Studio 2015. The module is compatible with VS 2015 and later. You can find legacy support for older versions in distutils.msvc9compiler and distutils.msvccompiler. N)DistutilsExecErrorDistutilsPlatformError CompileErrorLibError LinkError) CCompilergen_lib_options)log) get_platform)countcj tjtjdtjtjz}n%#t $rt jdYdSwxYwd}d}|5tD]} tj ||\}}}n#t $rYn{wxYw|rt|tj krdtj |rE tt|}n#t t"f$rYwxYw|dkr ||kr||}}dddn #1swxYwY||fS)Nz'Software\Microsoft\VisualStudio\SxS\VC7)accesszVisual C++ is not registeredNNr)winreg OpenKeyExHKEY_LOCAL_MACHINEKEY_READKEY_WOW64_32KEYOSErrorr debugr EnumValueREG_SZospathisdirintfloat ValueError TypeError)key best_versionbest_dirivvc_dirvtversions >/opt/alt/python311/lib64/python3.11/distutils/_msvccompiler.py _find_vc2015r*s  % 6?V%;;     0111zzLH = = = =A  & 0a 8 8 622     =R6=((RW]]6-B-B(!%((mmGG"I.Hb==W|%;%;-4f(L = = = = = = = = = = = = = = =  !!si8;AA&D&8BD& B D&B  4D&C21D&2DD&DD&&D*-D*c tjdptjd}|sdS tjtj|dddddd d d d d dg dd}n##tjttf$rYdSwxYwtj|ddd}tj |rd|fSdS)aJReturns "15, path" based on the result of invoking vswhere.exe If no install is found, returns "None, None" The version is returned to avoid unnecessarily changing the function result. It may be ignored when the path is not None. If vswhere.exe is not available, by definition, VS 2017 is not installed. zProgramFiles(x86) ProgramFilesrzMicrosoft Visual Studio Installerz vswhere.exez-latestz -prereleasez -requiresz1Microsoft.VisualStudio.Component.VC.Tools.x86.x64z -propertyinstallationPathz -products*mbcsstrict)encodingerrorsVC AuxiliaryBuild) renvironget subprocess check_outputrjoinstripCalledProcessErrorrUnicodeDecodeErrorr)rootrs r) _find_vc2017rA8s  :>>- . . P"*..2P2PD z & GLL8+} U U   L +  ( 8---.3UWW   )74F Gzz 7<<dK 9 9D w}}T4x :sABB76B7x86x64armarm64)rB x86_amd64x86_arm x86_arm64c.t\}}|st\}}|stjddStj|d}tj|stjd|dS|dfS)Nz$No suitable Visual C++ version foundrz vcvarsall.batz%s cannot be found)rAr*r rrrr<isfile) plat_spec_r#r" vcvarsalls r)_find_vcvarsallrN_s..KAx 0!- h  8999z X77I 7>>) $ $ & 222z d?cXtjdr(dtjDSt |\}}|st d t jd||t j  dd}nW#t j $rE}tj |jt d |jd}~wwxYwd d |DD}|S) NDISTUTILS_USE_SDKc>i|]\}}||Slower).0r!values r) z_get_vc_env..ss6   U IIKK   rOzUnable to find vcvarsall.batzcmd /u /c "{}" {} && set)stderrzutf-16lereplace)r3zError executing {}cHi|]\}}}|| || SrSrT)rVr!rLrWs r)rXz_get_vc_env..sH    CE      U   rOc3@K|]}|dVdS)=N) partition)rVlines r) z_get_vc_env..s.::  ::::::rO)rgetenvr8itemsrNrr:r;formatSTDOUTdecoder>r erroroutputcmd splitlines)rKrMrLoutexcenvs r) _get_vc_envrmqsS y$%%    j..00    #9--LIq E$%CDDD"% & - -i C C$    &I& . .   (""" #*$%9"" ""    ;:)9)9:::   C Js!A B++C?:AC::C?c6|s1tjdtj}|D]b}tjtj||}tj|r|cSc|S)atReturn path to an MSVC executable program. Tries to find the program in several places: first, one of the MSVC program search paths from the registry; next, the directories in the PATH environment variable. If any of those work, return an absolute path that is known to exist. If none of them work, just return the original program name, 'exe'. r)rrasplitpathseprr<abspathrJ)exepathspfns r) _find_exervs 4 &!!'' 33  W\\"'//!,,c 2 2 7>>"   III  JrOrFrGrH)win32z win-amd64z win-arm32z win-arm64ceZdZdZdZiZdgZgdZdgZdgZ eezeze zZ dZ dZ d Z d Zd xZZd ZddZddZ ddZ ddZ ddZ d dZfdZdZdZdZd!dZxZS)" MSVCCompilerzwConcrete class that implements an interface to Microsoft Visual C++, as defined by the CCompiler abstract class.msvcz.c)z.ccz.cppz.cxx.rcz.mcz.resz.objz.libz.dllz%s%sz.exercPtj||||d|_d|_dS)NF)r__init__ plat_name initialized)selfverbosedry_runforces r)r}zMSVCCompiler.__init__s.D'7E::: rONc\|t}|tvr4tdt tt|}t |}|std|dd|_|jtj }td||_ td||_ td||_td||_td ||_td ||_|d dtj D]6}|r2||tj7|d dtj D]6}|r2||tj7d|_gd |_gd|_gd}gd}g|d|_g|d|_g|ddd|_g|ddd|_g||_g||_t>j df|jt>j df|jt>j df|jt>j!df|jt>j!df|jt>j!df|jt>j"df|jt>j"df|jt>j"df|ji |_#d|_$dS)Nz--plat-name must be one of {}z7Unable to find a compatible Visual Studio installation.rzcl.exezlink.exezlib.exezrc.exezmc.exezmt.exeincludelib)/nologoz/Ox/W3z/GLz/DNDEBUGz/MD)rz/Odz/MDdz/Zirz/D_DEBUG)r/INCREMENTAL:NO/LTCG)rrrz /DEBUG:FULLz/MANIFEST:EMBED,ID=1z/DLLz/MANIFEST:EMBED,ID=2z/MANIFESTUAC:NOFT)%r PLAT_TO_VCVARSrrctuplermr9_pathsrorrprvcclinkerrrcmcmtadd_include_dirrstripsepadd_library_dirpreprocess_optionscompile_optionscompile_options_debug ldflags_exeldflags_exe_debugldflags_sharedldflags_shared_debugldflags_staticldflags_static_debugr EXECUTABLE SHARED_OBJECTSHARED_LIBRARY_ldflagsr)rr~rKvc_envrsdirldflags ldflags_debugs r) initializezMSVCCompiler.initializesA  $I N * *()H*0&~1F1F*G*GII I#9- Y'' /(*.// /jj,,  !!"*--He,, E22 Y..He,,He,,He,,::i,,222:>> 9 9C 9$$SZZ%7%7888::eR((..rz:: 9 9C 9$$SZZ%7%7888"&   & & & "      >W=&<=!I=!I2H!I[[[1G[IZ[$gm$gV$g=S$gUf$g!(j$4m$4! !4 ($*:  !5 )4+;  !4 ($*@  $d +T-@  $e ,d.A  $d +T-F  %t ,d.A  %u -t/B  %t ,d.G    rOrcifdjDfdjjzDpdfd}tt ||S)Nc i|] }|j SrS) obj_extensionrVextrs r)rXz1MSVCCompiler.object_filenames.."sFFF3sD&FFFrOc i|] }|j SrS) res_extensionrs r)rXz1MSVCCompiler.object_filenames..#s\\\3sD&\\\rOrctj|\}}r tj|}natj|\}}|tjjtjjfr |dd} tj||zS#t$r#td |wxYw)NzDon't know how to compile {}) rrsplitextbasename splitdrive startswithraltsepr< LookupErrorrrc)rtbaserrLext_map output_dir strip_dirs r) make_out_pathz4MSVCCompiler.object_filenames..make_out_path(s((++ID# $w''--',,T224??BGK#@AA$8D Mw||Jws|0CDDD M M M##A#H#H#K#KLLL  Ms ((C-C>)src_extensions_rc_extensions_mc_extensionslistmap)rsource_filenamesrrrrs` `` @r)object_filenameszMSVCCompiler.object_filenamess FFFF$2EFFF \\\\$2EH[2[\\\   %2  M M M M M M M&C '788999rOc @|js||||||||} | \}} }} } |pg} | d|r| |jn| |jd}| D]} | |\}}n#t$rYwxYw|rtj |}||j vrd|z}n||j vr d|z}d}n||j vrN|}d|z} ||jg| z||gzn!#t $r}t#|d}~wwxYw||jvrtj |}tj |} ||jd|d||gtj tj |\}}tj ||d z}||jd|z|gn!#t $r}t#|d}~wwxYwt#d |||jg| z| z}|r|d |||d |z|| ||k#t $r}t#|d}~wwxYw| S) Nz/cFz/Tcz/TpTz/foz-hz-rr{z"Don't know how to compile {} to {}z/EHscz/Fo)rr_setup_compileappendextendrrKeyErrorrrrq _c_extensions_cpp_extensionsrspawnrrrrdirnamerrrr<rcr)rsourcesrmacros include_dirsr extra_preargsextra_postargsdepends compile_infoobjectspp_optsbuild compile_opts add_cpp_optsobjsrcr input_opt output_optmsgh_dirrc_dirrrLrc_fileargss r)compilezMSVCCompiler.compile>s  OO   **:v|+2G^MM :F7%$* D!!!  6    : ; ; ; ;    4 5 5 5 A (A (C  :SS     +gooc**d(((!CK ,,,!CK # +++ "S[ ,JJy72j)5LLMMMM),,,&s+++,+++,,-- ,JJudFCHIII g..rw/?/?/E/EFFGD! gll64%<@@GJJg>????),,,&s+++,##G$*F3$4$4666G9|+g5D % G$$$ KK " " " KK $ $ $ KK ' ' ' ( 4    % ( ( ("3''' (s[ B"" B/.B/#D** E4EEB"H88 III&K== LLLc|js||||\}}|||}|||r||d|zgz}|r t jd|jd|| |jg|zdS#t$r}t|d}~wwxYwt jd|dS)N)r/OUT:Executing "%s" %s skipping %s (up-to-date)) rr_fix_object_argslibrary_filename _need_linkr rrr<rrr) rroutput_libnamerr target_langoutput_filenamelib_argsrs r)create_static_libzMSVCCompiler.create_static_libs  OO   "33GZHH//;E0GG ??7O 4 4 C'O";!<z%MSVCCompiler.link..sNNN:+NNNrOrrz/IMPLIB:rrr)rrr _fix_lib_argswarnstrr rrr<rrrrrrrrrqmkpathr rrrrr)r target_descrrr libraries library_dirsruntime_library_dirsexport_symbolsrrr build_tempr fixed_argslib_optsr export_optsld_argsdll_namedll_ext implib_filers r)linkzMSVCCompiler.links  OO   "33GZHH'' <(<>> 8B5 >'**#"NNNNN# # 4rO)rrrr)rr)NNNrNNN)NrN) NNNNNrNNNN)r)__name__ __module__ __qualname____doc__ compiler_type executablesrrrrrrrstatic_lib_extensionshared_lib_extensionstatic_lib_formatshared_lib_format exe_extensionr}rrrrrrr rrr __classcell__)r s@r)ryrys66MKFM---OWNWN$o5$%'56NMM!!,22)M!!!! J J J J `$%$&::::DHIAEWWWWz&* !&* CCCC<"&  CCCCCCCCJ*****!!!LLL***rOryr)rrr:rdistutils.errorsrrrrrdistutils.ccompilerrr distutilsr distutils.utilr itertoolsr r*rAPLAT_SPEC_TO_RUNTIMErNrmrvrryrSrOr)r,s  ??????????????::::::::''''''"""8B  $<* qqqqq9qqqqqrOPK!@cmImI%__pycache__/cmd.cpython-311.opt-1.pycnu[ 0iFpdZddlZddlZddlZddlmZddlmZmZm Z m Z m Z ddlm Z GddZ dS)ztdistutils.cmd Provides the Command class, the base class for the command classes in the distutils.command package. N)DistutilsOptionError)utildir_util file_util archive_utildep_utillogceZdZdZgZdZdZdZdZdZ d%d Z d Z d&d Z d Z d'dZd'dZdZ d'dZdZdZdZdZd&dZd(dZdZdZdZd)dZd*dZ d+dZ d,d Zd&d!Zd-d"Z d.d#Z! d/d$Z"dS)0Commanda}Abstract base class for defining command classes, the "worker bees" of the Distutils. A useful analogy for command classes is to think of them as subroutines with local variables called "options". The options are "declared" in 'initialize_options()' and "defined" (given their final values, aka "finalized") in 'finalize_options()', both of which must be defined by every command class. The distinction between the two is necessary because option values might come from the outside world (command line, config file, ...), and any options dependent on other options must be computed *after* these outside influences have been processed -- hence 'finalize_options()'. The "body" of the subroutine, where it does all its work based on the values of its options, is the 'run()' method, which must also be implemented by every command class. cddlm}t||std|jt urt d||_|d|_ |j |_ d|_ d|_ d|_ dS)zCreate and initialize a new Command object. Most importantly, invokes the 'initialize_options()' method, which is the real initializer and depends on the actual command being instantiated. r) Distributionz$dist must be a Distribution instancezCommand is an abstract classN)distutils.distr isinstance TypeError __class__r RuntimeError distributioninitialize_options_dry_runverboseforcehelp finalized)selfdistrs 4/opt/alt/python311/lib64/python3.11/distutils/cmd.py__init__zCommand.__init__/s 0/////$ -- DBCC C >W $ $=>> >  !!! |   c|dkr,t|d|z}|t|j|S|St|)Ndry_run_)getattrrAttributeError)rattrmyvals r __getattr__zCommand.__getattr___sK 9  D#*--E}t0$777  && &rcJ|js|d|_dSN)rfinalize_optionsrs rensure_finalizedzCommand.ensure_finalizedis)~ $  ! ! # # #rc0td|jz)aSet default values for all the options that this command supports. Note that these defaults may be overridden by other commands, by the setup script, by config files, or by the command-line. Thus, this is not the place to code dependencies between options; generally, 'initialize_options()' implementations are just a bunch of "self.foo = None" assignments. This method must be implemented by all command classes. ,abstract method -- subclass %s must overriderrr,s rrzCommand.initialize_options{#I!^,-- -rc0td|jz)aSet final values for all the options that this command supports. This is always called as late as possible, ie. after any option assignments from the command-line or from other commands have been done. Thus, this is the place to code option dependencies: if 'foo' depends on 'bar', then it is safe to set 'foo' from 'bar' as long as 'foo' still has the same value it was assigned in 'initialize_options()'. This method must be implemented by all command classes. r/r0r,s rr+zCommand.finalize_optionss#I!^,-- -rNczddlm}|d|z}|||ztj|dz}|jD]j\}}}||}|ddkr |dd}t||}|||d|ztjkdS) Nr) longopt_xlatezcommand options for '%s':)levelz =z = ) distutils.fancy_getoptr5get_command_nameannouncer INFO user_options translater#)rheaderindentr5optionr"values r dump_optionszCommand.dump_optionss888888 >043H3H3J3JJF fvoSX 666$"/ * *NVQ%%m44FbzS  D&))E MM&#>> #  * * * *  * *rc0td|jz)aA command's raison d'etre: carry out the action it exists to perform, controlled by the options initialized in 'initialize_options()', customized by other commands, the setup script, the command-line, and config files, and finalized in 'finalize_options()'. All terminal output and filesystem interaction should be done by 'run()'. This method must be implemented by all command classes. r/r0r,s rrunz Command.runr1rr*c0tj||dS)zmIf the current verbosity level is of greater than or equal to 'level' print 'msg' to stdout. Nr )rmsgr6s rr;zCommand.announces srctddlm}|r/t|tjdSdS)z~Print 'msg' to stdout if the global DEBUG (taken from the DISTUTILS_DEBUG environment variable) flag is true. r)DEBUGN)distutils.debugrIprintsysstdoutflush)rrGrIs r debug_printzCommand.debug_printsM *)))))   #JJJ J         rc t||}|t||||St|tst d|d|d|d|S)N'z ' must be a z (got `z`))r#setattrrstrr)rrAwhatdefaultvals r_ensure_stringlikezCommand._ensure_stringlikesqdF## ; D&' * * *NC%% >&&*0&&$$$(=>> > rc4||d|dS)zWEnsure that 'option' is a string; if not defined, set it to 'default'. stringN)rW)rrArUs r ensure_stringzCommand.ensure_strings" ':::::rc6t||}|dSt|tr&t||t jd|dSt|t rtd|D}nd}|std|d|ddS)zEnsure that 'option' is a list of strings. If 'option' is currently a string, we split it either on /,\s*/ or /\s+/, so "foo bar baz", "foo,bar,baz", and "foo, bar baz" all become ["foo", "bar", "baz"]. Nz,\s*|\s+c3@K|]}t|tVdSN)rrS).0vs r z-Command.ensure_string_list..s,99As++999999rFrQz!' must be a list of strings (got )) r#rrSrRresplitlistallr)rrArVoks rensure_string_listzCommand.ensure_string_lists dF## ; F S ! ! ' D&"(;"<"< = = = = =#t$$ 99S99999 '**&''' ' 'rc||||}|"||std|z||fzdSdS)Nzerror in '%s' option: )rWr)rrAtesterrT error_fmtrUrVs r_ensure_tested_stringzCommand._ensure_tested_strings[%%fdG<< ?66#;;?&(@9(L*0#(788 8 ???rcT||tjjdddS)z5Ensure that 'option' is the name of an existing file.filenamez$'%s' does not exist or is not a fileN)rkospathisfilerrAs rensure_filenamezCommand.ensure_filenames7 ""627>#-#I K K K K KrcT||tjjdddS)Nzdirectory namez)'%s' does not exist or is not a directory)rkrnroisdirrqs rensure_dirnamezCommand.ensure_dirnames7 ""627=#3#N P P P P PrcHt|dr|jS|jjS)N command_name)hasattrrwr__name__r,s rr:zCommand.get_command_name s( 4 ( ( +$ $>* *rc |j|}||D]4\}}t||t ||t||5dS)a>Set the values of any "undefined" options from corresponding option values in some other command object. "Undefined" here means "is None", which is the convention used to indicate that an option has not been changed between 'initialize_options()' and 'finalize_options()'. Usually called from 'finalize_options()' for options that depend on some other command rather than another option of the same command. 'src_cmd' is the other command from which option values will be taken (a command object will be created for it if necessary); the remaining arguments are '(src_option,dst_option)' tuples which mean "take the value of 'src_option' in the 'src_cmd' command object, and copy it to 'dst_option' in the current command object". N)rget_command_objr-r#rR)rsrc_cmd option_pairs src_cmd_obj src_option dst_options rset_undefined_optionszCommand.set_undefined_optionss{'77@@ $$&&&(4 L L $ZtZ((0j'+z*J*JKKK L Lrcd|j||}||S)zWrapper around Distribution's 'get_command_obj()' method: find (create if necessary and 'create' is true) the command object for 'command', call its 'ensure_finalized()' method, and return the finalized command object. )rr{r-)rcommandcreatecmd_objs rget_finalized_commandzCommand.get_finalized_command$s3 #33GVDD  """rrc8|j||Sr])rreinitialize_command)rrreinit_subcommandss rrzCommand.reinitialize_command0s% 55g6HJJ Jrc:|j|dS)zRun some other command: uses the 'run_command()' method of Distribution, which creates and finalizes the command object if necessary and then invokes its 'run()' method. N)r run_command)rrs rrzCommand.run_command4s! %%g.....rchg}|jD]'\}}| ||r||(|S)akDetermine the sub-commands that are relevant in the current distribution (ie., that need to be run). This is based on the 'sub_commands' class attribute: each tuple in that list may include a method that we call to determine if the subcommand needs to be run for the current distribution. Return a list of command names. ) sub_commandsappend)rcommandscmd_namemethods rget_sub_commandszCommand.get_sub_commands;sI"&"3 * * Xv~~)))rcVtjd||dS)Nzwarning: %s: %s )r warnr:)rrGs rrz Command.warnKs) $d&;&;&=&=sCCCCCrc@tj||||jdSNr!)rexecuter!)rfuncargsrGr6s rrzCommand.executeNs# T4dl;;;;;;rc>tj|||jdSr)rmkpathr!)rnamemodes rrzCommand.mkpathQs!dDL999999rc Ntj|||||j ||jS)zCopy a file respecting verbose, dry-run and force flags. (The former two default to whatever is in the Distribution object, and the latter defaults to false for commands that don't define it.)r)r copy_filerr!)rinfileoutfile preserve_modepreserve_timeslinkr6s rrzCommand.copy_fileTs4 "67M#1tz>4+/<999 9rc Ntj||||||j |jS)z\Copy an entire directory tree respecting verbose, dry-run, and force flags. r)r copy_treerr!)rrrrrpreserve_symlinksr6s rrzCommand.copy_tree]s9 !&'="02C&*j.$,HHH Hrc:tj|||jS)z$Move a file respecting dry-run flag.r)r move_filer!)rsrcdstr6s rrzCommand.move_filefs"3T\BBBBrc8ddlm}||||jdS)z2Spawn an external command respecting dry-run flag.r)spawnrN)distutils.spawnrr!)rcmd search_pathr6rs rrz Command.spawnjs3)))))) c; 555555rc Btj|||||j||S)N)r!ownergroup)r make_archiver!)r base_nameformatroot_dirbase_dirrrs rrzCommand.make_archiveos2(FHh15/4ECCC Crcj|d|z}t|tr|f}n+t|ttfst d|d|dd|}|jstj||r| ||||dStj |dS)aSpecial case of 'execute()' for operations that process one or more input files and generate one output file. Works just like 'execute()', except the operation is skipped and a different message printed if 'outfile' already exists and is newer than all files listed in 'infiles'. If the command defined 'self.force', and it is true, then the command is unconditionally run -- does no timestamp checks. Nzskipping %s (inputs unchanged)z9'infiles' must be a string, or a list or tuple of stringsz generating z from z, ) rrSrdtuplerjoinrr newer_grouprr debug)rinfilesrrrexec_msgskip_msgr6s r make_filezCommand.make_fileus  7'AH gs # # OjGGGdE]33 OMOO O   29''499W;M;M;MNH : -gw?? LLtXu 5 5 5 5 5 Ih     r)Nr3)r*r])rr))r)r*r*Nr*)r*r*rr*)r*r*)NNNN)NNr*)#ry __module__ __qualname____doc__rrr'r-rr+rCrEr;rOrWrZrgrkrrrur:rrrrrrrrrrrrrrrrr r sw  :L ---`'''$ - - - - - - * * * * - - - .;;;; ''','+8888KKK PPP+++ LLL*JJJJ///    DDD<<<<::::JK#$9999JK./HHHHCCCC6666 GK'+CCCC78      rr )rrLrnrbdistutils.errorsr distutilsrrrrrr r rrrrs 111111GGGGGGGGGGGGGGG G G G G G G G G G rPK!cb7M33(__pycache__/bcppcompiler.cpython-311.pycnu[ 0i.:~dZddlZddlmZmZmZmZmZddlm Z m Z ddl m Z ddl mZddlmZGdd e ZdS) zdistutils.bcppcompiler Contains BorlandCCompiler, an implementation of the abstract CCompiler class for the Borland C++ compiler. N)DistutilsExecError CompileErrorLibError LinkErrorUnknownFileError) CCompilergen_preprocess_options) write_file)newer)logceZdZdZdZiZdgZgdZeezZdZ dZ dZ dxZ Z d Z dd Z dd Z ddZ ddZddZ ddZ ddZd S) BCPPCompilerzConcrete class that implements an interface to the Borland C/C++ compiler, as defined by the CCompiler abstract class. bcppz.c)z.ccz.cppz.cxxz.objz.libz.dllz%s%sz.exerctj||||d|_d|_d|_d|_gd|_gd|_gd|_gd|_ g|_ gd|_ gd|_ dS) Nz bcc32.exez ilink32.exeztlib.exe)/tWMz/O2/q/g0)rz/Odrr)z/Tpd/Gnr/x)rrr)rrrz/r) r__init__cclinkerlibpreprocess_optionscompile_optionscompile_options_debugldflags_sharedldflags_shared_debugldflags_static ldflags_exeldflags_exe_debug)selfverbosedry_runforces =/opt/alt/python311/lib64/python3.11/distutils/bcppcompiler.pyrzBCPPCompiler.__init__5s D'7E::: # "&;;;%A%A%A"999$?$?$?! ...!9!9!9Nc ~|||||||\}} }} } |pg} | d|r| |jn| |j| D]H} | | \}}n#t $rYwxYwt j|}t j| } | t j | |dkr|dkr= | dd| |gn!#t$r}t|d}~wwxYw||jvrd}n||jvrd}nd}d| z} | |jg| z| z||gz|z|gz)#t$r}t|d}~wwxYw| S) Nz-c.res.rcbrcc32z-foz-P-o)_setup_compileappendextendrrKeyErrorospathnormpathmkpathdirnamespawnrr _c_extensions_cpp_extensionsr)r"sources output_dirmacros include_dirsdebug extra_preargsextra_postargsdependsobjectspp_optsbuild compile_optsobjsrcextmsg input_opt output_opts r&compilezBCPPCompiler.compileQsF ##J g$+^== 8%%* T"""  7   !; < < < <   !5 6 6 6, (, (C  :SS    '""3''C'""3''C KK,, - - -f}}e||,JJ5#s ;<<<<),,,&s+++,d((( ,,,  J  ( TWI 4w>& 34*+.1U34444& ( ( ("3''' (sB7 B BBD++ E 5EE --F F:&F55F:cT|||\}}|||}|||rL|dg|z}|r ||jg|zdS#t $r}t |d}~wwxYwtjd|dS)N)r;z/uskipping %s (up-to-date)) _fix_object_argslibrary_filename _need_linkr7rrrr r>) r"rBoutput_libnamer;r> target_langoutput_filenamelib_argsrIs r&create_static_libzBCPPCompiler.create_static_libs!% 5 5w K K*  ! !>j ! I I  ??G_ 5 5 C'.8H  $ TXJ122222% $ $ $smm# $ I0/ B B B B BsA22 B<B  Bc|||\}}||||\}}}|r"tjdt || t j||}|||r|tj kr$d}| r|j dd}n3|j dd}n#d}| r|j dd}n|jdd}|d}nt j|\}}t j|\}}t j|d}t j|d|z}dg}|pgD]}|d|d ||t(||fd |zt+t jj|}|g}g}|D]r}t jt j|\}}|d kr||]||s|D]7}|d t j|z8|d |||d|g|d|D]F}|||| }|||1||G|d|d|d|g|d||| r| |dd<| r|| |t j| ||jg|zdS#t:$r}t=|d}~wwxYwtjd|dS)Nz7I don't know what to do with 'runtime_library_dirs': %sc0w32c0d32r,rz%s.defEXPORTSz z=_z writing %sr)z/L%sz/L.,z,,import32cw32mtrN) rO _fix_lib_argsr warnstrr2r3joinrQr EXECUTABLEr!r rrsplitsplitextr6r/executer mapr4normcaser0find_library_filer5r7rrrr>) r" target_descrBrTr; libraries library_dirsruntime_library_dirsexport_symbolsr>r?r@ build_temprS startup_objld_argsdef_fileheadtailmodnamerHtemp_dircontentssymobjects2 resourcesfilebaselrlibfilerIs r&linkzBCPPCompiler.links$!% 5 5w K K*    <9M N N 8L"6  0 HN-.. 0 0 0  ! gllJHHO ??G_ 5 5e Ci222% 2"4QQQ7GG".qqq1GG% 5"7:GG"1!!!4G%W]]O<< d!w//66 7??71:667<<8g3EFF%;*0b==COOO###ss$;<<<< Z(H)=)H466627+W55H#mGI  ) ) g..rw/?/?/E/EFF s&==$$T****NN4((((" = =v(8(8(;(;;<<<< NN5 ! ! ! NN7 # # # NNC0 1 1 1 NN4  , ,00sEJJ?NN3''''NN7++++ NNJ ' ' ' NNH % % % NNC> * * * NN3    NN9 % % % ,+  /~... KK/:: ; ; ; % T[MG344444% % % %nn$ % I0/ B B B B Bs0P P.P))P.c|r|dz}|dz|dz||f}n|dz|f}|D]_}|D]Z}tj|||}tj|r|ccS[`dS)N_d_bcpp)r2r3rarPexists) r"dirsrr>dlib try_namesdirnamer}s r&rhzBCPPCompiler.find_library_file4s  -$JDwcBIIw,I  C! # #',,sD,A,A$,G,GHH7>>'**#"NNNNN# # 4r'r,c|d}g}|D]=}tjtj|\}}||jddgzvrt d|d|d|rtj|}|dkr7|tj|||z|dkr8|tj||dz|tj|||j z?|S)Nr,r*r)zunknown file type 'z ' (from 'z')) r2r3rdrgsrc_extensionsrbasenamer/ra obj_extension)r"source_filenames strip_dirr; obj_namessrc_namer{rHs r&object_filenameszBCPPCompiler.object_filenamesNsX  Bz ( H HH'**BG,<, > "FL(>>-')  " NN4+- . . .  ('GBQBK  + NN> * * *v : (,fk0J0J, : BGOOK88999 ( 7#####% ( ( (c "3''' ( -,sC&& D0DD)rrr)NNNrNNN)NrN) NNNNNrNNNN)r)rr,)NNNNN)__name__ __module__ __qualname____doc__ compiler_type executablesr8r9rrstatic_lib_extensionshared_lib_extensionstatic_lib_formatshared_lib_format exe_extensionrrLrVr~rhrrr'r&rrsaMKFM---O#_4NM!!,22)M:::::HIAE<<<<H'+!"'+ CCCC:#'! !BCBCBCBCR8%&%':!%!%"&#' ((((((r'r)rr2distutils.errorsrrrrrdistutils.ccompilerrr distutils.file_utilr distutils.dep_utilr distutilsr rrr'r&rs 99999999999999''''''''******$$$$$$n(n(n(n(n(9n(n(n(n(n(r'PK!!552__pycache__/versionpredicate.cpython-311.opt-1.pycnu[ 0i dZddlZddlZddlZejdejZejdZejdZ dZ ej ej ej ejejejdZGdd Zdad ZdS) zBModule for parsing and testing package version predicate strings. Nz'(?i)^\s*([a-z_]\w*(?:\.[a-z_]\w*)*)(.*)z^\s*\((.*)\)\s*$z%^\s*(<=|>=|<|>|!=|==)\s*([^\s,]+)\s*$ct|}|std|z|\}}|tj|fS)zVParse a single version comparison. Return (comparison string, StrictVersion) z"bad package restriction syntax: %r)re_splitComparisonmatch ValueErrorgroups distutilsversion StrictVersion)predrescompverStrs A/opt/alt/python311/lib64/python3.11/distutils/versionpredicate.pysplitUprsa  " "4 ( (C F=DEEE::<z>=z!=c$eZdZdZdZdZdZdS)VersionPredicateaParse and test package version predicates. >>> v = VersionPredicate('pyepat.abc (>1.0, <3333.3a1, !=1555.1b3)') The `name` attribute provides the full dotted name that is given:: >>> v.name 'pyepat.abc' The str() of a `VersionPredicate` provides a normalized human-readable version of the expression:: >>> print(v) pyepat.abc (> 1.0, < 3333.3a1, != 1555.1b3) The `satisfied_by()` method can be used to determine with a given version number is included in the set described by the version restrictions:: >>> v.satisfied_by('1.1') True >>> v.satisfied_by('1.4') True >>> v.satisfied_by('1.0') False >>> v.satisfied_by('4444.4') False >>> v.satisfied_by('1555.1b3') False `VersionPredicate` is flexible in accepting extra whitespace:: >>> v = VersionPredicate(' pat( == 0.1 ) ') >>> v.name 'pat' >>> v.satisfied_by('0.1') True >>> v.satisfied_by('0.2') False If any version numbers passed in do not conform to the restrictions of `StrictVersion`, a `ValueError` is raised:: >>> v = VersionPredicate('p1.p2.p3.p4(>=1.0, <=1.3a1, !=1.2zb3)') Traceback (most recent call last): ... ValueError: invalid version number '1.2zb3' It the module or package name given does not conform to what's allowed as a legal module or package name, `ValueError` is raised:: >>> v = VersionPredicate('foo-bar') Traceback (most recent call last): ... ValueError: expected parenthesized list: '-bar' >>> v = VersionPredicate('foo bar (12.21)') Traceback (most recent call last): ... ValueError: expected parenthesized list: 'bar (12.21)' c,|}|stdt|}|std|z|\|_}|}|rt |}|std|z|d}d|dD|_|jstd|zdSg|_dS) z*Parse a version predicate string. zempty package restrictionzbad package name in %rzexpected parenthesized list: %rrc,g|]}t|S)r).0aPreds r z-VersionPredicate.__init__..tsDDDEDDDr,zempty parenthesized list in %rN) striprre_validPackagerrnamere_parensplitr )selfversionPredicateStrrparenstrs r__init__zVersionPredicate.__init__`s%27799" :899 9%%&9:: M58KKLL L <<>> 5   NN5))E L !BU!JKKK,,..#CDDSYYs^^DDDDI9 8 !A#6"7888 8 8DIIIrc|jr4d|jD}|jdzd|zdzS|jS)Nc>g|]\}}|dzt|zS) )r%)rcondvers rrz,VersionPredicate.__str__..}s+DDDYT34#:C(DDDrz (z, ))r rjoin)r"seqs r__str__zVersionPredicate.__str__{sJ 9 DD$)DDDC9t#diinn4s: :9 rcR|jD]\}}t|||sdSdS)zTrue if version is compatible with all the predicates in self. The parameter version must be acceptable to the StrictVersion constructor. It may be either a string or StrictVersion. FT)r compmap)r"r r*r+s r satisfied_byzVersionPredicate.satisfied_bys@   ID#4=#.. uu trN)__name__ __module__ __qualname____doc__r&r/r2rrrrrsL>>@6rrcpttjdtja|}t|}|st d|z|dpd}|rtj |}|d|fS)a9Return the name and optional version number of a provision. The version number, if given, will be returned as a `StrictVersion` instance, otherwise it will be `None`. >>> split_provision('mypkg') ('mypkg', None) >>> split_provision(' mypkg( 1.2 ) ') ('mypkg', StrictVersion ('1.2')) Nz=([a-zA-Z_]\w*(?:\.[a-zA-Z_]\w*)*)(?:\s*\(\s*([^)\s]+)\s*\))?$z"illegal provides specification: %r) _provision_rxrecompileASCIIrrrgrouprr r )valuemr+s rsplit_provisionrAs L H  KKMMEE""A G=EFFF ''!** C 3--c22 771::s?r)r6r;distutils.versionroperatorr<r=rr rrltleeqgtgener1rr:rArrrrJs "*GH 2:) * *RZ HII ; ; ; 8;hk 8;hk C Ckkkkkkkk\ rPK!b$%33/__pycache__/unixccompiler.cpython-311.opt-1.pycnu[ Pi;dZddlZddlZddlZddlmZddlmZddlm Z m Z m Z ddl m Z mZmZmZddlmZejdkrddlZGd d e ZdS) a9distutils.unixccompiler Contains the UnixCCompiler class, a subclass of CCompiler that handles the "typical" Unix-style command-line C compiler: * macros defined with -Dname[=value] * macros undefined with -Uname * include search directories specified with -Idir * libraries specified with -lllib * library search directories specified with -Ldir * compile handled by 'cc' (or similar) executable with -c option: compiles .c to .o * link static library handled by 'ar' command (possibly with 'ranlib') * link shared library handled by 'cc -shared' N) sysconfig)newer) CCompilergen_preprocess_optionsgen_lib_options)DistutilsExecError CompileErrorLibError LinkError)logdarwinc eZdZdZddgdgdgddgdgddgddZejddd krd ged <gd Zd Zd Z dZ dZ dZ dxZ xZZeZejdkrdZfdZ ddZdZ d dZ d!dZdZdZdZdZd"dZxZS)# UnixCCompilerunixNccz-sharedarz-cr) preprocessorcompiler compiler_so compiler_cxx linker_so linker_exearchiverranlibr r)z.cz.Cz.ccz.cxxz.cppz.mz.oz.az.soz.dylibz.tbdzlib%s%scygwinz.exect|||\}}}tjd}|r||vr|||||fS)z'Remove standard library path from rpathLIBDIR)super _fix_lib_argsrget_config_varremove)self libraries library_dirsruntime_library_dirslibdir __class__s >/opt/alt/python311/lib64/python3.11/distutils/unixccompiler.pyr zUnixCCompiler._fix_lib_argsUsq8=8M8M |%99;9;5 >#g-  0 NND+. / / /  ('GBQBK  + NN> * * *v : (,fk0J0J, : BGOOK88999 ( 7#####% ( ( ("3''' ( -,sC++ D 5DD c|j}tjdkrtj|||z} |||z|d|gz|zdS#t $r}t|d}~wwxYw)Nr r,)rsysplatform _osx_supportcompiler_fixupr5rr ) r#objsrcextcc_argsr;r>rr@s r)_compilezUnixCCompiler._compilexs& <8 # #&5k4;n4LNNK $ JJ{W,T3/??%& ' ' ' ' '! $ $ $s## # $s!A A2A--A2rc|||\}}|||}|||r|tj|||j|gz|z|j z|j rB ||j |gzdS#t$r}t|d}~wwxYwdStjd|dS)N) output_dirskipping %s (up-to-date))_fix_object_argslibrary_filename _need_linkr1r2r3r4r5robjectsrrr r debug)r#rRoutput_libnamerMrS target_langoutput_filenamer@s r)create_static_libzUnixCCompiler.create_static_libs,"33GZHH  ! !.Z ! H H  ??7O 4 4 C KK88 9 9 9 JJt}'()!%. / / /{ ((JJt{o->>?????)((("3--'( ( ( I0/ B B B B Bs*C C(C##C(c|||\}}||||}|\}}}t||||}t|tt dfst d| tj ||}| ||r||j z|zd|gz}| rdg|dd<| r| |dd<| r| | | tj| |tjkr|jdd}n|jdd}| dkr|jrd}tj|ddkrd}d||vr|dz }d||vtj||d krd}nd}|j||||z<t*jd krt/j||}|||zdS#t4$r}t7|d}~wwxYwt9jd |dS) Nz%'output_dir' must be a string or Noner,z-grzc++env= ld_so_aixr rN)rOr r isinstancestrtype TypeErrorr2r3joinrQrRr.r1r4r EXECUTABLErrrbasenamerCrDrErFr5rr r rS)r# target_descrRrVrMr$r%r&export_symbolsrSr:r; build_temprUr<lib_optsld_argslinkerioffsetr@s r)linkzUnixCCompiler.links #33GZHH'' <(<>> 8B5 z(UnixCCompiler._is_gcc..s(MMT4=(MMMMMMr*)gcczg++clang)any)r#rws `r)_is_gcczUnixCCompiler._is_gccs'MMMM5LMMMMMMr*ctjtjd}t jdddkrd|zSt jdddkrd|zSt jddd kr#||rd d|zgSd d|zgS||r"tjd d krd|zSd|zSd|zS)NCCrr rnfreebsdz -Wl,-rpath=zhp-uxz-Wl,+sz+sGNULDyesz-Wl,--enable-new-dtags,-Rz-Wl,-Rz-R)r2r3rcrr!rCrDr|)r#rprs r)runtime_library_dir_optionz(UnixCCompiler.runtime_library_dir_options7##I$) cz!r*c d|zS)Nz-lro)r#libs r)library_optionzUnixCCompiler.library_optionrrr*c||d}||d}||d}||d}tjdkrgtjd}t jd|} | 'tjtjd } n| d } |D]} tj | |} tj | |} tj | |}tj | |}tjdkr| d s*| d r| d stj | | d d|} tj | | d d|} tj | | d d|}tj | | d d|}tj | r| cStj |r|cStj | r| cStj |r|cSdS)Nshared)lib_typedylib xcode_stubstaticr CFLAGSz-isysroot\s*(\S+)r~rZz/System/z/usr/z /usr/local/)rPrCrDrr!researchrE_default_sysrootgroupr2r3ra startswithexists)r#dirsrrSshared_fdylib_f xcode_stub_fstatic_fcflagsmsysrootrprrrrs r)find_library_filezUnixCCompiler.find_library_files~((x(@@''g'>>,,S<,HH ((x(@@ <8 # #&-h77F .77Ay&7 8PQU8V8VWW''!**  CW\\#x00FGLLg..EW\\#x00Fc<88J|x''z**(w''(03}0M0M(gs122wAA Wc!""gw??gs122wAAW\\'3qrr7LII w~~e$$   ++ !!!!''  ''   tr*)NNNNN)NrN) NNNNNrNNNN)r)__name__ __module__ __qualname__ compiler_type executablesrCrDsrc_extensions obj_extensionstatic_lib_extensionshared_lib_extensiondylib_lib_extensionxcode_stub_lib_extensionstatic_lib_formatshared_lib_formatdylib_lib_formatxcode_stub_lib_format exe_extensionr rArKrWrlrqr|rrr __classcell__)r(s@r)rr-sM%)%)F%)F%)F%)9$5%)F%)5M$(K |BQB8##!) H:99NM "%?HHH),<, |x =====;?IM((((4 $ $ $AECCCC6:>599=?C <C<C<C<CDNNN("("("T????????r*r)__doc__r2rCr distutilsrdistutils.dep_utilrdistutils.ccompilerrrrdistutils.errorsrr r r r rDrError*r)rs0  $$$$$$8888888888;;;;;;;;;;;;<8$eeeeeIeeeeer*PK!d*8{{/__pycache__/msvc9compiler.cpython-311.opt-2.pycnu[ 0iv ddlZddlZddlZddlZddlmZmZmZmZm Z ddl m Z m Z ddl mZddlmZddlZejZejZejZejZejejejejfZejdko ej dkZ!e!rdZ"d Z#d Z$nd Z"d Z#d Z$dddZ%GddZ&GddZ'dZ(dZ)dZ*dZ+ddZ,e(Z-e-dkrede-zGdde Z.dS)N)DistutilsExecErrorDistutilsPlatformError CompileErrorLibError LinkError) CCompilergen_lib_options)log) get_platformwin32lz1Software\Wow6432Node\Microsoft\VisualStudio\%0.1fz5Software\Wow6432Node\Microsoft\Microsoft SDKs\Windowsz,Software\Wow6432Node\Microsoft\.NETFrameworkz%Software\Microsoft\VisualStudio\%0.1fz)Software\Microsoft\Microsoft SDKs\Windowsz Software\Microsoft\.NETFrameworkx86amd64r z win-amd64ceZdZ dZeeZdZeeZdZeeZdZeeZdS)RegctD](}|||}|r||vr ||cS)t|N)HKEYS read_valuesKeyError)clspathkeybaseds >/opt/alt/python311/lib64/python3.11/distutils/msvc9compiler.py get_valuez Reg.get_value?sN  Dd++A SAXXv smmc t||}n#t$rYdSwxYwg}d} t||}n#t$rYnwxYw|||dz }=|SNrT) RegOpenKeyExRegError RegEnumKeyappend)rrrhandleLiks r read_keysz Reg.read_keysGs+ !$,,FF   44     vq))     HHQKKK FA  s ""< A A c. t||}n#t$rYdSwxYwi}d} t||\}}}n#t$rYnIwxYw|}|||||<|dz }k|Sr )r"r# RegEnumValuelower convert_mbcs) rrrr&rr(namevaluetypes rrzReg.read_valuesYs  !$,,FF   44     $0$;$;!eTT    ::<> NN-t{M J J J NN?K9O P P P P PAA B B$T1--AAH A&&MM$AAAss(;<<56y\ 122 B Bs2BB)8D  DDcp|jD]\}}|||}|Sr)rBitemsreplace)rFr7r)vs rsubzMacroExpander.subs;K%%''  DAq !QAArN)r9r:r;rHrKrEr`r>rrr@r@ysV""" @@@BBB>rr@cx d}tj|}|dkrdS|t|z}tj|ddd\}}t |dddz }|dkr|dz }t |dd d z }|dkrd }|dkr||zSdS) NzMSC v. r! g$@r)sysrGfindlensplitint)prefixr(r7rest majorVersion minorVersions rget_build_versionrrs F   ABwwq CKKAk!""o##C++GAtq"v;;?Lr q1v;;%Lq ql** 4rc g}|D]:}tj|}||vr||;|Sr)osrnormpathr%)paths reduced_pathsrZnps rnormalize_and_reduce_pathsrysX M %% W  a  ] " "   $ $ $ rc |tj}g}|D]}||vr||tj|}|Sr)rlrtpathsepr%join)variableoldListnewListr( newVariables rremoveDuplicatesrsennRZ((GG  G   NN1   *//'**K rc t|z} td|zd}n&#t$rt jdd}YnwxYw|rt j|sd|z}t j |d}|rt j|rt j |t j t j d}t j |}t j|st jd|zdSnt jd|z|st jddSt j |d }t j|r|St jd dS) Nz %s\Setup\VCrNz%Unable to find productdir in registryzVS%0.f0COMNTOOLSVCz%s is not a valid directoryz Env var %s is not set or invalidzNo productdir foundz vcvarsall.batUnable to find vcvarsall.bat)rCrrrr debugrtrisdirenvirongetr|pardirabspathisfile)rGrDrNtoolskeytoolsdir vcvarsalls rfind_vcvarsallrs w F]]>F#:#/11  9:::   ERW]]:66 E%/:>>(D11  E h// Eh 29dKKJ44J7==,,  7*DEEEt  I88C D D D  '(((t Z99I w~~i  I,--- 4s, AAc t|}hd}i}|tdtjd||t jd|d|dtjtj} |\}}|dkr"t| d | d }| d D]}t |}d |vr!| }| d d \} } | } | |vr;| t jr | dd } t%| || < |j|jn7#|j|jwxYwt-|t-|kr;t/t1t3||S)N>librincludelibpathrz'Calling 'vcvarsall.bat %s' (version=%s)"z" z & set)stdoutstderrrr4 =r!rb)rrr r subprocessPopenPIPE communicatewaitr3rlrr.stripr-endswithrtr{rrcloserrk ValueErrorstrlistkeys) rGarchr interestingresultpopenrrlinerr0s rquery_vcvarsallrs+w''I777K F$%CDDDI7wGGG    444@$.O$.O 5 5 5E**,, ::<<1  (v)>)>?? ?v&&LL&& 6 6D##D))D$::<>"*--'!#2#JE.u55s  6       6{{c+&&&&T&++--0011222 Ms 1DG4G6rRz(VC %0.1f is not supported by this moduleceZdZ dZiZdgZgdZdgZdgZeezezezZ dZ dZ dZ d Z d xZZd Zdd ZddZ ddZ d dZ d!dZ d"dZdZdZdZdZdZdZd#dZdZdS)$ MSVCCompilermsvcz.c)z.ccz.cppz.cxx.rcz.mcz.resz.objz.libz.dllz%s%sz.exerctj||||t|_d|_g|_d|_d|_d|_dS)NzSoftware\Microsoft\VisualStudioF) rrHVERSION_MSVCCompiler__version_MSVCCompiler__root_MSVCCompiler__paths plat_name_MSVCCompiler__arch initialized)rFverbosedry_runforces rrHzMSVCCompiler.__init__HsJD'7E::: 8    rNc|t}d}||vrtd|dtjvrHdtjvr:|dr%d|_d|_d|_d|_d |_ nj|tks|d krt|}n*ttd zt|z}tt|}|d  tj|_|d tjd <|dtjd<t!|jdkrtd|jz|d|_|d|_|d|_|d|_|d |_ tjd  dD]}|j|n#t&$rYnwxYwt)|j|_d|jtjd <d|_|jdkrgd|_gd|_ngd|_gd|_gd|_|jdkr gd|_dg|_d|_dS)Nrz--plat-name must be one of DISTUTILS_USE_SDKMSSdkzcl.exezlink.exezlib.exezrc.exezmc.exer _rrrrzxPython was built with %s, and extensions need to be built with the same version of the compiler, but it isn't installed.;r )/nologo/Ox/MD/W3/DNDEBUG)r/Od/MDdr/Z7/D_DEBUG)rrrr/GS-r)rrrrrrr)/DLLrz/INCREMENTAL:NO)rrz/INCREMENTAL:noz/DEBUGrT)r rrtrfind_execclinkerrrcmcPLAT_TO_VCVARSrrrlr{rrk_MSVCCompiler__productr%rryr|preprocess_optionsrcompile_optionscompile_options_debugldflags_sharedrldflags_shared_debugldflags_staticr)rFrok_plats plat_specvc_envrZs r initializezMSVCCompiler.initializeSs   $I' H $ $((*2(*566 6 "* , ,BJ1F1F4==YaKbKb1FDG$DK DHDGDGG LNN**i7.B.B*95 +<>>:S@*956 %Wi88F!&>// ;;DL &u BJu $*9$5BJy !4<  A%%,.J.())) mmH--DG-- 33DK}}Y//DHmmH--DGmmH--DG  Z'--c22 ' ' ##A&&&& '    D 1$,??  XXdl33 6"& ;%  $1$1$1D *=*=*=D & &$1$1$1D *=*=*=D &EDD >Q  )))D %!*ls*AH-- H:9H:c|d}g}|D]s}tj|\}}tj|d}|tj|d}||jvrt d|z|rtj|}||jvr<| tj |||j z||j vr=| tj |||j z8| tj |||j zu|S)Nrr!zDon't know how to compile %s)rtrsplitext splitdriveisabssrc_extensionsrbasename_rc_extensionsr%r| res_extension_mc_extensions obj_extension)rFsource_filenames strip_dir output_dir obj_namessrc_namerexts robject_filenameszMSVCCompiler.object_filenamess  Bz ( L LH'**H55KT37%%d++A.D d++,,-D$---#$BX$MNNN /w''..d)))  "',, 04t7I0I#K#KLLLL+++  "',, 04t7I0I#K#KLLLL  "',, 04t7I0I#K#KLLLLrc |js||||||||} | \}} }} } |pg} | d|r| |jn| |j| D];} | |\}}n#t$rYwxYw|rtj |}||j vrd|z}n||j vrd|z}n||j vrQ|}d|z} ||jg| z|gz|gzn!#t $r}t#|d}~wwxYw||jvrtj |}tj |} ||jgd|d|gz|gztj tj |\}}tj ||dz}||jgd|zgz|gzn!#t $r}t#|d}~wwxYwt#d|d |d |z} ||jg| z| z||gz|z#t $r}t#|d}~wwxYw| S) Nz/cz/Tcz/Tpz/foz-hz-rrzDon't know how to compile z to z/Fo)rr_setup_compiler%extendrrrrtrr _c_extensions_cpp_extensionsrspawnrrrrdirnamerrrr|r)rFsourcesrrB include_dirsr extra_preargsextra_postargsdepends compile_infoobjectspp_optsbuild compile_optsobjsrcr input_opt output_optmsgh_dirrc_dirrrrc_files rcompilezMSVCCompiler.compiles  OO   **:v|+2G^MM :F7%$* T"""  6    : ; ; ; ;    4 5 5 5? (? (C  :SS     +gooc**d(((!CK ,,,!CK +++ "S[ ,JJy72 *| ,/8k :;;;;),,,&s+++,+++,,-- ,JJy $eT6: ;>AU CDDD g..0@0@#0F0FGGGD! gllFD5LAAGJJy % } -07y 9::::*,,,&s+++,#l&)cc33$0111J ( DG9|3g=%z23)*++++& ( ( ("3''' (s[ B  B-,B-&D)) E3EEB.I I! II!)J,, K 6KK c|js||||\}}|||}|||rN|d|zgz}|r ||jg|zdS#t$r}t|d}~wwxYwtj d|dS)N)r/OUT:skipping %s (up-to-date)) rr_fix_object_argslibrary_filename _need_linkrrrrr r) rFroutput_libnamerr target_langoutput_filenamelib_argsrs rcreate_static_libzMSVCCompiler.create_static_libs  OO    $ 5 5gz J J*//;E0GG ??7O 4 4 C'O";!<> :D7L"6  5 IIN2334 5 5 5#4#/1E#,..  ! gll:GGO ??7O 4 4= Ci2226"7;GG"1!""5GG2"7GG"1GK&," 5 5"":#34444)K7")O";!<=G44J)&(g&6&6G$$_55'7'7#7 gll))(3355  [ 8999  & & G L L L ,+  /~... KK88 9 9 9 % DK=723333% % % %nn$ %11+wGGF!#) DD5D__ddK)JJ)[ *G 566666))))#C..() "! I0/ B B B B Bs0I44 J>J  J;K K5!K00K5ctj|tj|dz}|d|zdS)Nz .manifest/MANIFESTFILE:)rtrr|rr%)rFrrr% temp_manifests rrz"MSVCCompiler.manifest_setup_ldargssV   11K?AA  '-788888rc|D]5}|dr|ddd}n6dS|tjkrd}nd}||}|dS||fS)Nr/:r!rg) startswithrlrr_remove_visual_c_ref)rFrr%argr0r+s rrz$MSVCCompiler.manifest_get_embed_infos   C~~.//  # #q 1 1! 4   4 ). . .DDD 55mDDM  4d""rcz t|} |}|n#|wxYwtjdtj}tj|d|}d}tj|d|}tjdtj}tj||dSt|d} ||||S#|wxYw#t$rYdSwxYw)NzU|)rz*\s*zI|)w) openreadrrerDOTALLr`searchwriteOSError)rF manifest_file manifest_f manifest_bufpatterns rr4z!MSVCCompiler._remove_visual_c_refsR$ m,,J #)00   """"   """"jD G6'2|<D,D))D,, D:9D:c d|zS)Nz /LIBPATH:r>rFdirs rlibrary_dir_optionzMSVCCompiler.library_dir_options S  rc td)Nz>'**#"NNNNN# # 4rc |jD]b}tjtj||}tj|r|cSctjddD]b}tjtj||}tj|r|cSc|S)NPathr)rrtrr|rrrrl)rFexerZfns rrzMSVCCompiler.find_exes   Abgooa00#66Bw~~b!!   F#))#..  Abgooa0055Bw~~b!!    r)rrrr)rr)NNNrNNN)NrN) NNNNNrNNNN)r)r9r:r; compiler_type executablesrrrrrrrstatic_lib_extensionshared_lib_extensionstatic_lib_formatshared_lib_format exe_extensionrHrrrrr-rrr4rFrHrJrQrr>rrrr*s6MKFM---OWNWN$o5$%'56NMM!!,22)M ! ! ! !Q Q Q Q n$%$&@HIAERRRRp&* !&* CCCC:"&  ]C]C]C]C~ 9 9 9###0%%%V!!!NNN***$rr)r )/rtrrir:distutils.errorsrrrrrdistutils.ccompilerrr distutilsr distutils.utilr winreg OpenKeyExr"EnumKeyr$ EnumValuer,errorr# HKEY_USERSHKEY_CURRENT_USERHKEY_LOCAL_MACHINEHKEY_CLASSES_ROOTrplatformmaxsize NATIVE_WIN64rCrYrXrrr@rrryrrrrrr>rrrmsf  ??????????????::::::::''''''  ^  <    !  "  ! #  '?CK%,?  3CGJK>HH6G>K2H  <.<.<.<.<.<.<.<.|,,,,,,,,\2      !!!F&&&&R     S== !Kg!U V VVjjjjj9jjjjjrPK!q((#__pycache__/version.cpython-311.pycnu[ 0i0ddZddlZGddZGddeZGddeZdS) aProvides classes to represent module version numbers (one class for each style of version numbering). There are currently two such classes implemented: StrictVersion and LooseVersion. Every version number class implements the following interface: * the 'parse' method takes a string and parses it to some internal representation; if the string is an invalid version number, 'parse' raises a ValueError exception * the class constructor takes an optional string argument which, if supplied, is passed to 'parse' * __str__ reconstructs the string that was passed to 'parse' (or an equivalent string -- ie. one that will generate an equivalent version number instance) * __repr__ generates Python code to recreate the version number instance * _cmp compares the current instance with either another instance of the same class or a string (which will be parsed to an instance of the same class, thus must follow the same rules) Nc>eZdZdZd dZdZdZdZdZdZ d Z dS) VersionzAbstract base class for version numbering classes. Just provides constructor (__init__) and reproducer (__repr__), because those seem to be the same for all version numbering classes; and route rich comparisons to _cmp. Nc8|r||dSdSNparseselfvstrings 8/opt/alt/python311/lib64/python3.11/distutils/version.py__init__zVersion.__init__&,  JJw       c@|jjdt|dS)Nz ('z')) __class____name__strr s r __repr__zVersion.__repr__*s""n555s4yyyyAArcN||}|tur|S|dkSNr_cmpNotImplementedr othercs r __eq__zVersion.__eq__-, IIe     HAv rcN||}|tur|S|dkSrrrs r __lt__zVersion.__lt__3, IIe     H1u rcN||}|tur|S|dkSrrrs r __le__zVersion.__le__9rrcN||}|tur|S|dkSrrrs r __gt__zVersion.__gt__?r"rcN||}|tur|S|dkSrrrs r __ge__zVersion.__ge__Errr) r __module__ __qualname____doc__r rrr!r$r&r(rr rrs     BBB    rrc`eZdZdZejdejejzZdZ dZ dZ dS) StrictVersiona?Version numbering for anal retentives and software idealists. Implements the standard interface for version number classes as described above. A version number consists of two or three dot-separated numeric components, with an optional "pre-release" tag on the end. The pre-release tag consists of the letter 'a' or 'b' followed by a number. If the numeric components of two version numbers are equal, then one with a pre-release tag will always be deemed earlier (lesser) than one without. The following are valid version numbers (shown in the order that would be obtained by sorting according to the supplied cmp function): 0.4 0.4.0 (these two are equivalent) 0.4.1 0.5a1 0.5b3 0.5 0.9.6 1.0 1.0.4a3 1.0.4b1 1.0.4 The following are examples of invalid version numbers: 1 2.7.2.2 1.3.a4 1.3pl1 1.3c4 The rationale for this version numbering system will be explained in the distutils documentation. z)^(\d+) \. (\d+) (\. (\d+))? ([ab](\d+))?$c|j|}|std|z|ddddd\}}}}}|r+t t t |||g|_n,t t t ||gdz|_|r|dt |f|_dSd|_dS) Nzinvalid version number '%s')rr) version_rematch ValueErrorgrouptuplemapintversion prerelease)r r r6majorminorpatchr=prerelease_nums r rzStrictVersion.parses%%g.. F:WDEE E KK1aA & & :uj.  B S5%*?!@!@AADLL S5%.!9!9::TADL  #)!}c..A.ABDOOO"DOOOrcR|jddkr6dtt|jdd}n-dtt|j}|jr+||jdzt|jdz}|S)Nr1r.r0)r<joinr:rr=r s r __str__zStrictVersion.__str__s <?a  hhs3 QqS(9::;;GGhhs3 5566G ? M 22S9K5L5LLGrct|trt|}nt|tstS|j|jkr|j|jkrdSdS|js |jsdS|jr |jsdS|js |jrdS|jr-|jr&|j|jkrdS|j|jkrdSdSJd)Nr0rFznever get here) isinstancerr.rr<r=r rs r rzStrictVersion._cmps eS ! ! "!%((EEE=11 "! ! <5= ( (|em++rq +(8 +1o +e&6 +2/ +e&6 +1o +%"2 +%"222q5#333rq ** * *5rN) rr)r*r+recompileVERBOSEASCIIr5rrErr,rr r.r.]sp!!FHJ133J###&   "+"+"+"+"+rr.c^eZdZdZejdejZd dZdZ dZ dZ dZ dS) LooseVersionaVersion numbering for anarchists and software realists. Implements the standard interface for version number classes as described above. A version number consists of a series of numbers, separated by either periods or strings of letters. When comparing version numbers, the numeric components will be compared numerically, and the alphabetic components lexically. The following are all valid version numbers, in no particular order: 1.5.1 1.5.2b2 161 3.10a 8.02 3.4j 1996.07.12 3.2.pl0 3.1.1.6 2g6 11g 0.960923 2.2beta29 1.13++ 5.5.kw 2.0b1pl0 In fact, there is no such thing as an invalid version number under this scheme; the rules for comparison are simple and predictable, but may not always give the results you want (for some definition of "want"). z(\d+ | [a-z]+ | \.)Nc8|r||dSdSrrr s r r zLooseVersion.__init__0rrc||_d|j|D}t|D](\}} t |||<#t $rY%wxYw||_dS)Nc"g|] }|r|dk | S)rCr,).0xs r z&LooseVersion.parse..:s0111A!"1'(Cxx'/xxr)r component_resplit enumerater;r7r<)r r componentsiobjs r rzLooseVersion.parse5s 11!2!8!8!A!A111  ++  FAs  #C 1     " sA A! A!c|jSr)r rs r rEzLooseVersion.__str__Es |rc&dt|zS)NzLooseVersion ('%s'))rrs r rzLooseVersion.__repr__Is$s4yy00rct|trt|}nt|tstS|j|jkrdS|j|jkrdS|j|jkrdSdS)NrrGr0)rHrrOrr<rIs r rzLooseVersion._cmpMs eS ! ! " ''EEE<00 "! ! <5= ( (1 <%- ' '2 <%- ' '1 ( 'rr) rr)r*r+rJrKrLrVr rrErrr,rr rOrO s>2:4bjAAL    " " " 111     rrO)r+rJrr.rOr,rr r_s& ********|k+k+k+k+k+Wk+k+k+`KKKKKGKKKKKrPK!55*__pycache__/__init__.cpython-311.opt-1.pycnu[ 0idZddlZddlZejdejdZdZejeeddS)zdistutils The main package for the Python Module Distribution Utilities. Normally used from a setup script as from distutils.core import setup setup (...) N zThe distutils package is deprecated and slated for removal in Python 3.12. Use setuptools or check PEP 632 for potential alternatives) __doc__syswarningsversionindex __version___DEPRECATION_MESSAGEwarnDeprecationWarning9/opt/alt/python311/lib64/python3.11/distutils/__init__.pyrsw k13;,,S1112 = " !%%%%%rPK!0U*7*71__pycache__/cygwinccompiler.cpython-311.opt-1.pycnu[ 0i?dZddlZddlZddlZddlmZmZmZddlZddl m Z ddl m Z ddl mZmZmZmZddlmZddlmZd ZGd d e ZGd d eZdZdZdZdZejdZdZdZ dZ!dS)adistutils.cygwinccompiler Provides the CygwinCCompiler class, a subclass of UnixCCompiler that handles the Cygwin port of the GNU C compiler to Windows. It also contains the Mingw32CCompiler class which handles the mingw32 port of GCC (same as cygwin in no-cygwin mode). N)PopenPIPE check_output) UnixCCompiler) write_file)DistutilsExecErrorCCompilerError CompileErrorUnknownFileError) LooseVersion)find_executablectjd}|dkrYtj|dz|dz}|dkrdgS|dkrdgS|d krd gS|d krd gS|d krdgStd|zdS)zaInclude the appropriate MSVC runtime library if Python was built with MSVC 7.0 or later. zMSC v. 1300msvcr701310msvcr711400msvcr801500msvcr901600msvcr100zUnknown MS Compiler version %s N)sysversionfind ValueError)msc_posmsc_vers @/opt/alt/python311/lib64/python3.11/distutils/cygwinccompiler.py get_msvcrr#=skx((G"}}+gai 23 f  ;    ;    ;    ;    < >HII I%}cTeZdZdZdZdZdZdZdZdZ dZ dd Z d Z dd Z ddZd S)CygwinCCompilerz? Handles the Cygwin port of the GNU C compiler to Windows. cygwinz.o.az.dllzlib%s%sz%s%sz.exerc tj||||t\}}|d|d|d|tur|d|zt \|_|_|_ ||j d|jd|jd|j dz|jd krd |_ nd |_ |jd krd }nd}| dddd|j d||jdkrdg|_ |ddSt|_ dS)NzPython's GCC status: z (details: )zPython's pyconfig.h doesn't seem to support your compiler. Reason: %s. Compiling may fail because of undefined preprocessor macros.z: gcc z, ld z , dllwrap  z2.10.90gccdllwrap2.13-shared -mdll -staticzgcc -mcygwin -O -Wallzgcc -mcygwin -mdll -O -Wallzg++ -mcygwin -O -Wallz gcc -mcygwinz -mcygwin compiler compiler_so compiler_cxx linker_exe linker_so2.91.57msvcrtz,Consider upgrading to a newer version of gcc)r__init__check_config_h debug_print CONFIG_H_OKwarn get_versions gcc_version ld_versiondllwrap_version compiler_type linker_dllset_executables dll_librariesr#)selfverbosedry_runforcestatusdetails shared_options r"r9zCygwinCCompiler.__init__bstWgu===(**  &&'''+ , , ,  $ $ IIO    NN @$/4+? ++***///.../00 2 2 2 ?i ' '#DOO'DO ?f $ $%MM+M &=)F*A(6)---)I  K K K  y ( (!)zD  II> @ @ @ @ @ "+D   r$c*|dks|dkr> |dd|d|gdS#t$r}t|d}~wwxYw ||j|z|d|gz|zdS#t$r}t|d}~wwxYw)z:Compiles the source by spawning GCC and windres if needed..rc.reswindresz-iz-oN)spawnrr r3)rFobjsrcextcc_argsextra_postargspp_optsmsgs r"_compilezCygwinCCompiler._compiles %<<3&== ( ItS$<=====% ( ( ("3''' ( ( 4+g5dC8HH)*+++++% ( ( ("3''' (s,* AAA &A44 B>B  BNctj| pg} tj|pg}tj|pg}||j|r||jks |jdkr[t j|d}t jt j |\}}t j ||dz}t j |d|zdz}dt j |zdg}|D]}| || t||fd |z|jd kr/| d |g| d |gn| || s| d tj||||||||d| | | | | dS)zLink the objects.Nr,rz.deflibr(z LIBRARY %sEXPORTSz writing %sr-z --output-libz--defz-s)copyextendrE EXECUTABLErCospathdirnamesplitextbasenamejoinappendexecuterrlink)rF target_descobjectsoutput_filename output_dir libraries library_dirsruntime_library_dirsexport_symbolsdebug extra_preargsrV build_temp target_langtemp_dirdll_name dll_extensiondef_filelib_filecontentssyms r"rhzCygwinCCompiler.links"  -"5266 Iio2.. )GMr** +,,, ' DO + +t%/G/Gwwqz22H(*(8(8  11)3)3 %X}w||Hh.?@@Hw||Heh.>.EFFHrw//@@@H& % %$$$$ LLh%9%0 2 2 2 )++$$nh%?@@@$$gx%89999 x((( '   & & &4g%y,/ -&  ( ( ( ( (r$c$|d}g}|D]}tjtj|\}}||jddgzvrt d|d|d|rtj|}|dvr?|tj|||z|j z|tj|||j z|S) z#Adds supports for rc and res files.Nr|rNrOzunknown file type 'z ' (from 'z'))rOrN) r`rarcnormcasesrc_extensionsr rdrfre obj_extension)rFsource_filenames strip_dirrl obj_namessrc_namebaserTs r"object_filenamesz CygwinCCompiler.object_filenamessB  J ( K KH(()9)9()C)CDDID#4.%?@@&&ssHHH(&''' /w''..o%%  "',,z.2Sj4;M.M#O#OPPPP  "',,z/3d6H/H#J#JKKKKr$rrr) NNNNNrNNNN)rr|)__name__ __module__ __qualname____doc__rBrstatic_lib_extensionshared_lib_extensionstatic_lib_formatshared_lib_format exe_extensionr9rYrhrr$r"r&r&WsMM!!M9-9-9-9-v ( ( (FJEI9=?CJ(J(J(J(\r$r&ceZdZdZdZddZdS)Mingw32CCompilerz@ Handles the Mingw32 port of the GNU C compiler to Windows. mingw32rc <t|||||jdkrd}nd}|jdkrd}nd}t rt d|dd d d |jd |d | g|_t|_dS)Nr.r/r0r7z--entry _DllMain@12r|z1Cygwin gcc cannot be used with --compiler=mingw32z gcc -O -Wallzgcc -mdll -O -Wallz g++ -O -Wallr, r1) r&r9r@r? is_cygwingccr rDrCrEr#)rFrGrHrIrL entry_points r"r9zMingw32CCompiler.__init__s  $%@@@ ?f $ $%MM+M  y ( (/KKK >> E CEE E n)=*8(-+/???MMM+6;(8  9 9 9'[[r$Nr)rrrrrBr9rr$r"rrs7M&)&)&)&)&)&)r$rokznot ok uncertaincddlm}dtjvr tdfS|} t |} d|vr td|zf|Std|zf|S#|wxYw#t$r}td|d |j fcYd }~Sd }~wwxYw) awCheck if the current Python installation appears amenable to building extensions with GCC. Returns a tuple (status, details), where 'status' is one of the following constants: - CONFIG_H_OK: all is well, go ahead and compile - CONFIG_H_NOTOK: doesn't look good - CONFIG_H_UNCERTAIN: not sure -- unable to read pyconfig.h 'details' is a human-readable string explaining the situation. Note there are two ways to conclude "OK": either 'sys.version' contains the string "GCC" (implying that this Python was built with GCC), or the installed "pyconfig.h" contains the string "__GNUC__". r) sysconfigGCCzsys.version mentions 'GCC'__GNUC__z'%s' mentions '__GNUC__'z '%s' does not mention '__GNUC__'zcouldn't read 'z': N) distutilsrrrr<get_config_h_filenameopenreadcloseCONFIG_H_NOTOKOSErrorCONFIG_H_UNCERTAINstrerror)rfnconfig_hexcs r"r:r:Fs *$#####  888  ( ( * *B ?88 X]]__,,"$>$CC NN    &'IB'NN NN    HNN     ???"",.BB =? ? ? ? ? ? ??sAB2!B$B29 BB2B//B22 C<CCCs(\d+\.\d+(\.\d+)*)c|d}t|dSt|dtj} |}|n#|wxYwt|}|dSt| d S)zFind the version of an executable by running `cmd` in the shell. If the command is not found, or the output does not match `RE_VERSION`, returns None. rNT)shellstdout) splitr rrrrr RE_VERSIONsearchr groupdecode)cmd executableout out_stringresults r"_find_exe_versionrss QJz""*t 4 - - - 4CXXZZ     z * *F ~t  Q..00 1 11s A22Bc<gd}td|DS)zg Try to find out the versions of gcc, ld and dllwrap. If not possible it returns None for it. )zgcc -dumpversionzld -vzdllwrap --versionc,g|]}t|Sr)r).0rs r" z get_versions..s!===S#C((===r$)tuple)commandss r"r>r>s- BAAH ==H=== > >>r$crtddg}|dS)z>Try to determine if the gcc that would be used is from cygwin.r,z -dumpmachinescygwin)rstripendswith)rs r"rrs4un566J      & &y 1 11r$)"rr`rr] subprocessrrrredistutils.unixccompilerrdistutils.file_utilrdistutils.errorsrr r r distutils.versionr distutils.spawnr r#r&rr<rrr:compilerrr>rrr$r"rs^ 0000000000 111111******((((((((((((******++++++JJJ4wwwwwmwwwt+)+)+)+)+)+)+)+)b  )?)?)?VRZ. / / 222*???22222r$PK!^!__pycache__/spawn.cpython-311.pycnu[ 0i4xdZddlZddlZddlZddlmZmZddlmZddl m Z ej dkrda da d dZd d ZdS) zdistutils.spawn Provides the 'spawn()' function, a front-end to various platform- specific functions for launching another program in a sub-process. Also provides the 'find_executable()' to search the path for a given executable name. N)DistutilsPlatformErrorDistutilsExecError)DEBUG)logdarwinct|}tjd||rdS|rt |d}|||d<d}t jdkrtHddlm }| dpdatr$dt d Da trtjdt}d | d D}tdd d d gkr-|dd d d gkrd|dtd} t!| t#tj|} t%j||} | | j} nB#t,$r5} t.s|d}t1d|d| jd| d} ~ wwxYw| r$t.s|d}t1d|d| dS)aRun another program, specified as a command list 'cmd', in a new process. 'cmd' is just the argument list for the new process, ie. cmd[0] is the program to run and cmd[1:] are the rest of its arguments. There is no way to run a program with a name different from that of its executable. If 'search_path' is true (the default), the system's executable search path will be used to find the program; otherwise, cmd[0] must be the exact path to the executable. If 'dry_run' is true, the command will not actually be run. Raise DistutilsExecError if running the program fails in any way; just return on success.  Nrr) sysconfigMACOSX_DEPLOYMENT_TARGETc,g|]}t|Sint.0xs 6/opt/alt/python311/lib64/python3.11/distutils/spawn.py zspawn..<s$L$L$LSVV$L$L$L.c,g|]}t|Srrrs rrzspawn..DsFFF1AFFFr z)$MACOSX_DEPLOYMENT_TARGET mismatch: now "z" but "z)" during configure;must use 10.3 or later)r )envzcommand z failed: z failed with exit code )listrinfojoinfind_executablesysplatform _cfg_target distutilsr get_config_varsplit_cfg_target_splitosenvirongetrdict subprocessPopenwait returncodeOSErrorrrargs) cmd search_pathverbosedry_run executablerr cur_targetcur_target_splitmy_msgprocexitcodeexcs rspawnr?sn$ s))CHSXXc]] $SV,,  !CF C |x   + + + + + +#22"<>>DAC  M$L$L[5F5Fs5K5K$L$L$L!  < (BKPPJFF 0@0@0E0EFFF  !$Q//4DRaR4HBPQ74R4R4R$.::{{{<-V444rz0:<<>!   HHH  4sBB98B9)rrr)N)__doc__r#r*r.distutils.errorsrrdistutils.debugrr&rr$r%r)r?r"rrrrTs GGGGGGGG!!!!!!<8KEGEGEGEGP""""""rPK!: HDD+__pycache__/ccompiler.cpython-311.opt-1.pycnu[ 0i:dZddlZddlZddlZddlTddlmZddlmZddl m Z ddl m Z ddl mZmZdd lmZGd d Zd Zdd ZddddddZdZddZdZdZdS)zdistutils.ccompiler Contains CCompiler, an abstract base class that defines the interface for the Distutils compiler abstraction model.N)*)spawn) move_file)mkpath) newer_group) split_quotedexecute)logceZdZdZdZdZdZdZdZdZ dZ dZ ddddddZ gdZ dAd Zd Zd Zd Zd ZdBdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!dBdZ"dZ#dZ$d Z%d!Z& dCd"Z' dDd#Z(d$Z) dEd%Z*d&Z+d'Z,d(Z- dFd)Z. dFd*Z/ dFd+Z0 dGd,Z1d-Z2d.Z3d/Z4 dHd0Z5dId1Z6dJd3Z7dJd4Z8dJd5Z9 dKd7Z:dLd9Z;d:Zd=Z?d>Z@dNd@ZAdS)O CCompileraAbstract base class to define the interface that must be implemented by real compiler classes. Also has some utility methods used by several compiler classes. The basic idea behind a compiler abstraction class is that each instance can be used for all the compile/link steps in building a single project. Thus, attributes common to all of those compile and link steps -- include directories, macros to define, libraries to link against, etc. -- are attributes of the compiler instance. To allow for variability in how individual files are treated, most of those attributes may be varied on a per-compilation or per-link basis. Ncc++objc).cz.ccz.cppz.cxxz.m)rrr rc ||_||_||_d|_g|_g|_g|_g|_g|_g|_ |j D]#}| ||j |$dSN) dry_runforceverbose output_dirmacros include_dirs libraries library_dirsruntime_library_dirsobjects executableskeysset_executable)selfrrrkeys :/opt/alt/python311/lib64/python3.11/distutils/ccompiler.py__init__zCCompiler.__init__Us     %'! #((** < K  DAw$ FAAtr$c|D]~}t|trOt|dvr>t|dts|dt|dtst d|zdzdzdS)zEnsures that every element of 'definitions' is a valid macro definition, ie. either (name,value) 2-tuple or a (name,) tuple. Do nothing if all definitions are OK, raise TypeError otherwise. )r1r1Nrzinvalid macro definition '%s': z.must be tuple (string,), (string, string), or z(string, None))r,tuplelenr- TypeError)r definitionsr4s r"_check_macro_definitionsz"CCompiler._check_macro_definitionss   ( (DtU++ (YY&((!47C00)48GOQ--5D!BT!IF!G&!'(((5D ( (r$c|||}||j|=|j||fdS)a_Define a preprocessor macro for all compilations driven by this compiler object. The optional parameter 'value' should be a string; if it is not supplied, then the macro will be defined without an explicit value and the exact outcome depends on the compiler used (XXX true? does ANSI say anything about this?) Nr5rappend)r r2r/r3s r" define_macrozCCompiler.define_macrosE   d # # = A D%=)))))r$c~||}||j|=|f}|j|dS)aUndefine a preprocessor macro for all compilations driven by this compiler object. If the same macro is defined by 'define_macro()' and undefined by 'undefine_macro()' the last call takes precedence (including multiple redefinitions or undefinitions). If the macro is redefined/undefined on a per-compilation basis (ie. in the call to 'compile()'), then that takes precedence. Nr>)r r2r3undefns r"undefine_macrozCCompiler.undefine_macrosH   d # # = A 6"""""r$c:|j|dS)zAdd 'dir' to the list of directories that will be searched for header files. The compiler is instructed to search directories in the order in which they are supplied by successive calls to 'add_include_dir()'. N)rr?r dirs r"add_include_dirzCCompiler.add_include_dir!   %%%%%r$c$|dd|_dS)aySet the list of directories that will be searched to 'dirs' (a list of strings). Overrides any preceding calls to 'add_include_dir()'; subsequence calls to 'add_include_dir()' add to the list passed to 'set_include_dirs()'. This does not affect any list of standard include directories that the compiler may search by default. Nrr dirss r"set_include_dirszCCompiler.set_include_dirss!Gr$c:|j|dS)aAdd 'libname' to the list of libraries that will be included in all links driven by this compiler object. Note that 'libname' should *not* be the name of a file containing a library, but the name of the library itself: the actual filename will be inferred by the linker, the compiler, or the compiler class (depending on the platform). The linker will be instructed to link against libraries in the order they were supplied to 'add_library()' and/or 'set_libraries()'. It is perfectly valid to duplicate library names; the linker will be instructed to link against libraries as many times as they are mentioned. N)rr?)r libnames r" add_libraryzCCompiler.add_librarys  g&&&&&r$c$|dd|_dS)zSet the list of libraries to be included in all links driven by this compiler object to 'libnames' (a list of strings). This does not affect any standard system libraries that the linker may include by default. N)r)r libnamess r" set_librarieszCCompiler.set_librariess "!!!r$c:|j|dS)a'Add 'dir' to the list of directories that will be searched for libraries specified to 'add_library()' and 'set_libraries()'. The linker will be instructed to search for libraries in the order they are supplied to 'add_library_dir()' and/or 'set_library_dirs()'. N)rr?rEs r"add_library_dirzCCompiler.add_library_dirrHr$c$|dd|_dS)zSet the list of library search directories to 'dirs' (a list of strings). This does not affect any standard library search path that the linker may search by default. N)rrKs r"set_library_dirszCCompiler.set_library_dirs s !Gr$c:|j|dS)zlAdd 'dir' to the list of directories that will be searched for shared libraries at runtime. N)rr?rEs r"add_runtime_library_dirz!CCompiler.add_runtime_library_dirs! !((-----r$c$|dd|_dS)zSet the list of directories to search for shared libraries at runtime to 'dirs' (a list of strings). This does not affect any standard search path that the runtime linker may search by default. N)rrKs r"set_runtime_library_dirsz"CCompiler.set_runtime_library_dirss %)G!!!r$c:|j|dS)zAdd 'object' to the list of object files (or analogues, such as explicitly named library files or the output of "resource compilers") to be included in every link driven by this compiler object. N)rr?)r objects r"add_link_objectzCCompiler.add_link_object s F#####r$c$|dd|_dS)zSet the list of object files (or analogues) to be included in every link to 'objects'. This does not affect any standard object files that the linker may include by default (such as system libraries). N)r)r rs r"set_link_objectszCCompiler.set_link_objects(s qqqz r$c||j}n$t|tstd||j}n1t|t r ||jpgz}ntd||j}nEt|t tfrt ||jpgz}ntd|g}||d|}t||}i} tt|D]p} || } || } tj | d} |tj | | | f| | <q||||| fS)z;Process arguments and decide which source files to compile.N%'output_dir' must be a string or None/'macros' (if supplied) must be a list of tuples6'include_dirs' (if supplied) must be a list of stringsr) strip_dirrr1)rr,r-r:rlistrr8object_filenamesgen_preprocess_optionsranger9ospathsplitextrdirname)r outdirrincdirssourcesdependsextrarpp_optsbuildr3srcobjexts r"_setup_compilezCCompiler._setup_compile6s >_FFFC(( ECDD D >[FF  % % Ot{0b1FFMNN N ?'GG $ / / L7mmt'8'>B?GGJLL L =E''139(;;)99s7||$$ $ $A!*C!*C'""3''*C KK,, - - -sE#JJww55r$c8|dgz}|rdg|dd<|r||dd<|S)Nz-cz-gr)r rsdebugbeforecc_argss r" _get_cc_argszCCompiler._get_cc_argsas?TF"  !&GBQBK  ! GBQBKr$c|||j}n$t|tstd||j}n1t|t r ||jpgz}ntd||j}nEt|t tfrt ||jpgz}ntd|||fS)a'Typecheck and fix-up some of the arguments to the 'compile()' method, and return fixed-up values. Specifically: if 'output_dir' is None, replaces it with 'self.output_dir'; ensures that 'macros' is a list, and augments it with 'self.macros'; ensures that 'include_dirs' is a list, and augments it with 'self.include_dirs'. Guarantees that the returned values are of the correct type, i.e. for 'output_dir' either string or None, and for 'macros' and 'include_dirs' either list or None. Nrbrcrd)rr,r-r:rrfrr8)r rrrs r"_fix_compile_argszCCompiler._fix_compile_argsjs  JJJ,, ECDD D >[FF  % % Ot{0b1FFMNN N  ,LL  tUm 4 4 L --1B1HbILLJLL L6<//r$c8|||}|ifS)a,Decide which source files must be recompiled. Determine the list of object files corresponding to 'sources', and figure out which ones really need to be recompiled. Return a list of all object files and a dictionary telling which source files can be skipped. )r)rg)r rprrqrs r" _prep_compilezCCompiler._prep_compiles(''J'GG {r$ct|ttfstdt|}||j}n$t|t std||fS)zTypecheck and fix up some arguments supplied to various methods. Specifically: ensure that 'objects' is a list; if output_dir is None, replace with self.output_dir. Return fixed versions of 'objects' and 'output_dir'. z,'objects' must be a list or tuple of stringsNrb)r,rfr8r:rr-)r rrs r"_fix_object_argszCCompiler._fix_object_argssq 'D%=11 LJKK Kw--  JJJ,, ECDD D$$r$c||j}nEt|ttfrt||jpgz}nt d||j}nEt|ttfrt||jpgz}nt d||j}nEt|ttfrt||jpgz}nt d|||fS)a;Typecheck and fix up some of the arguments supplied to the 'link_*' methods. Specifically: ensure that all arguments are lists, and augment them with their permanent versions (eg. 'self.libraries' augments 'libraries'). Return a tuple with fixed versions of all arguments. Nz3'libraries' (if supplied) must be a list of stringsz6'library_dirs' (if supplied) must be a list of stringsz>'runtime_library_dirs' (if supplied) must be a list of strings)rr,rfr8r:rr)r rrrs r" _fix_lib_argszCCompiler._fix_lib_argss1  II  D%= 1 1 Ii((DN,@bAIIGII I  ,LL  tUm 4 4 L..$2C2IrJLLJLL L '#'#< ,tUm < < 9$()=$>$>%)%>%D"%F 899 9<)=>>r$cl|jrdS|jrt||d}nt||}|S)zjReturn true if we need to relink the files listed in 'objects' to recreate 'output_file'. Tnewer)missing)rrr)r r output_filers r" _need_linkzCCompiler._need_linksG : 4| ;#Wk7KKK#Wk::Lr$cNt|ts|g}d}t|j}|D]s}tj|\}}|j|} |j |}||kr|}|}d#t$rYpwxYw|S)z|Detect the language of a given file, or list of files. Uses language_map, and language_order to do the job. N) r,rfr9language_orderrjrkrl language_mapgetindexr&) r rplangrsourcebaserwextlangextindexs r"detect_languagezCCompiler.detect_languages'4(( iGD'((  F((00ID#'++C00G .44W==e##"D$E     s0$B B"!B"cdS)aPreprocess a single C/C++ source file, named in 'source'. Output will be written to file named 'output_file', or stdout if 'output_file' not supplied. 'macros' is a list of macro definitions as for 'compile()', which will augment the macros set with 'define_macro()' and 'undefine_macro()'. 'include_dirs' is a list of directory names that will be added to the default list. Raises PreprocessError on failure. Nrz)r rrrr extra_preargsextra_postargss r" preprocesszCCompiler.preprocesss  r$c |||||||\}} }} } || ||} | D]9} | | \}}n#t$rYwxYw|| ||| || :| S)aK Compile one or more source files. 'sources' must be a list of filenames, most likely C/C++ files, but in reality anything that can be handled by a particular compiler and compiler class (eg. MSVCCompiler can handle resource files in 'sources'). Return a list of object filenames, one per source filename in 'sources'. Depending on the implementation, not all source files will necessarily be compiled, but all corresponding object filenames will be returned. If 'output_dir' is given, object files will be put under it, while retaining their original path component. That is, "foo/bar.c" normally compiles to "foo/bar.o" (for a Unix implementation); if 'output_dir' is "build", then it would compile to "build/foo/bar.o". 'macros', if given, must be a list of macro definitions. A macro definition is either a (name, value) 2-tuple or a (name,) 1-tuple. The former defines a macro; if the value is None, the macro is defined without an explicit value. The 1-tuple case undefines a macro. Later definitions/redefinitions/ undefinitions take precedence. 'include_dirs', if given, must be a list of strings, the directories to add to the default include file search path for this compilation only. 'debug' is a boolean; if true, the compiler will be instructed to output debug symbols in (or alongside) the object file(s). 'extra_preargs' and 'extra_postargs' are implementation- dependent. On platforms that have the notion of a command-line (e.g. Unix, DOS/Windows), they are most likely lists of strings: extra command-line arguments to prepend/append to the compiler command line. On other platforms, consult the implementation class documentation. In any event, they are intended as an escape hatch for those occasions when the abstract compiler framework doesn't cut the mustard. 'depends', if given, is a list of filenames that all targets depend on. If a source file is older than any file in depends, then the source file will be recompiled. This supports dependency tracking, but only at a coarse granularity. Raises CompileError on failure. )rxr~KeyError_compile)r rprrrr{rrrqrrsrtr}rvrurws r"compilezCCompiler.compilesl##J g$+^== 8%##GUMBB K KC  :SS     MM#sC.' J J J Js A  AAcdS)zCompile 'src' to product 'obj'.Nrz)r rvrurwr}rrss r"rzCCompiler._compileCs  r$cdS)a&Link a bunch of stuff together to create a static library file. The "bunch of stuff" consists of the list of object files supplied as 'objects', the extra object files supplied to 'add_link_object()' and/or 'set_link_objects()', the libraries supplied to 'add_library()' and/or 'set_libraries()', and the libraries supplied as 'libraries' (if any). 'output_libname' should be a library name, not a filename; the filename will be inferred from the library name. 'output_dir' is the directory where the library file will be put. 'debug' is a boolean; if true, debugging information will be included in the library (note that on most platforms, it is the compile step where this matters: the 'debug' flag is included here just for consistency). 'target_lang' is the target language for which the given objects are being compiled. This allows specific linkage time treatment of certain languages. Raises LibError on failure. Nrz)r routput_libnamerr{ target_langs r"create_static_libzCCompiler.create_static_libIs 0 r$ shared_objectshared_library executablect)auLink a bunch of stuff together to create an executable or shared library file. The "bunch of stuff" consists of the list of object files supplied as 'objects'. 'output_filename' should be a filename. If 'output_dir' is supplied, 'output_filename' is relative to it (i.e. 'output_filename' can provide directory components if needed). 'libraries' is a list of libraries to link against. These are library names, not filenames, since they're translated into filenames in a platform-specific way (eg. "foo" becomes "libfoo.a" on Unix and "foo.lib" on DOS/Windows). However, they can include a directory component, which means the linker will look in that specific directory rather than searching all the normal locations. 'library_dirs', if supplied, should be a list of directories to search for libraries that were specified as bare library names (ie. no directory component). These are on top of the system default and those supplied to 'add_library_dir()' and/or 'set_library_dirs()'. 'runtime_library_dirs' is a list of directories that will be embedded into the shared library and used to search for other shared libraries that *it* depends on at run-time. (This may only be relevant on Unix.) 'export_symbols' is a list of symbols that the shared library will export. (This appears to be relevant only on Windows.) 'debug' is as for 'compile()' and 'create_static_lib()', with the slight distinction that it actually matters on most platforms (as opposed to 'create_static_lib()', which includes a 'debug' flag mostly for form's sake). 'extra_preargs' and 'extra_postargs' are as for 'compile()' (except of course that they supply command-line arguments for the particular linker being used). 'target_lang' is the target language for which the given objects are being compiled. This allows specific linkage time treatment of certain languages. Raises LinkError on failure. NotImplementedError)r target_descroutput_filenamerrrrexport_symbolsr{rr build_temprs r"linkzCCompiler.linkis r"!r$c |tj|||d||||||| | | | dS)Nshared)lib_type)rr SHARED_LIBRARYlibrary_filename) r rrrrrrrr{rrrrs r"link_shared_libzCCompiler.link_shared_libs_ )*G'''JJ\+? %[  J J J J Jr$c \|tj||||||||| | | | dSr)rr SHARED_OBJECT) r rrrrrrrr{rrrrs r"link_shared_objectzCCompiler.link_shared_objectsK ))7!:\+? %[  J J J J Jr$c |tj|||||||d||| d| dSr)rr EXECUTABLEexecutable_filename) r routput_prognamerrrrr{rrrs r"link_executablezCCompiler.link_executablesX )&**?;;Z\+?k K K K K Kr$ct)zkReturn the compiler option to add 'dir' to the list of directories searched for libraries. rrEs r"library_dir_optionzCCompiler.library_dir_option "!r$ct)zsReturn the compiler option to add 'dir' to the list of directories searched for runtime libraries. rrEs r"runtime_library_dir_optionz$CCompiler.runtime_library_dir_optionrr$ct)zReturn the compiler option to add 'lib' to the list of libraries linked into the shared library or executable. r)r libs r"library_optionzCCompiler.library_optionrr$cddl}|g}|g}|g}|g}|d|d\}}tj|d} |D]} | d| z| d|z| n#| wxYw ||g| } n#t$rYd SwxYw || d || n#ttf$rYd SwxYwdS) zReturn a boolean indicating whether funcname is supported on the current platform. The optional arguments can be used to augment the compilation environment. rNrT)textwz#include "%s" z=int main (int argc, char **argv) { %s(); return 0; } rJFza.out)rr) tempfilemkstemprjfdopenwritecloser CompileErrorr LinkErrorr:) r funcnameincludesrrrrfdfnamefinclrs r" has_functionzCCompiler.has_functions~   H  L  I  L$$T8$$?? E Ib#     6 6-45555 GG      GGIIIIAGGIIII llE7lFFGG   55    '+4.: ! < < < <9%   55 ts05BB&*C CCC//DDct)aHSearch the specified list of directories for a static or shared library file 'lib' and return the full path to that file. If 'debug' true, look for a debugging version (if that makes sense on the current platform). Return None if 'lib' wasn't found in any of the specified directories. r)r rLrr{s r"find_library_filezCCompiler.find_library_file$s "!r$c|d}g}|D]}tj|\}}tj|d}|tj|d}||jvrt d|d|d|rtj|}|tj |||j z|S)Nrr1zunknown file type 'z ' (from 'z')) rjrkrl splitdriveisabssrc_extensionsUnknownFileErrorbasenamer?join obj_extension)r source_filenamesrer obj_namessrc_namerrws r"rgzCCompiler.object_filenamesOs  J ( F FH((22ID#7%%d++A.D d++,,-D$---&&>Acc888LNNN .w''--   RW\\**.1C*CEE F F F Fr$c|rtj|}tj|||jzSr)rjrkrrshared_lib_extensionr rrers r"shared_object_filenamez CCompiler.shared_object_filename`s=  2w''11Hw||J43L(LMMMr$c|rtj|}tj|||jpdzS)Nr)rjrkrr exe_extensionrs r"rzCCompiler.executable_filenamefsB  2w''11Hw||JD4F4L"(MNNNr$staticc|dvrtdt||dz}t||dz}tj|\}}|||fz} |rd}tj||| S)N)rrdylib xcode_stubz?'lib_type' must be "static", "shared", "dylib", or "xcode_stub" _lib_format_lib_extensionr)r&getattrrjrksplitr) r rOrrerfmtrwrFrfilenames r"rzCCompiler.library_filenamels F F F[]] ]dH}455dH'7788GMM'** T$$  Cw||JX666r$r1c.tj|dSr)r r{)r msglevels r"announcezCCompiler.announces #r$c8ddlm}|rt|dSdS)Nr)DEBUG)distutils.debugrprint)r rrs r" debug_printzCCompiler.debug_prints5))))))   #JJJJJ  r$cJtjd|zdS)Nz warning: %s )sysstderrr)r rs r"warnzCCompiler.warns# 3./////r$c4t||||jdSr)r r)r funcargsrrs r"r zCCompiler.executesdC.....r$c2t||jdSN)r)rr)r cmds r"rzCCompiler.spawns c4<((((((r$c0t|||jSr)rr)r rudsts r"rzCCompiler.move_filesc4<8888r$c4t|||jdSr)rr)r r2modes r"rzCCompiler.mkpathstT4<000000r$)rrrr)NNNNN)NNNrNNN)NrN) NNNNNrNNNN)NNNNrNNN)NNNN)r)rr)rrr)r1)Nr1)r )Br( __module__ __qualname____doc__ compiler_typerrstatic_lib_extensionrstatic_lib_formatshared_lib_formatrrrr#r*rr5r<r@rCrGrMrPrSrUrWrYr[r^r`rxr~rrrrrrrrrrrrrrrrrrrrrrrgrrrrrrr rrrrzr$r"r r s  *M4NMM!"""# L *))N"<"<"<"-1BBBBH   EI/3    8$M%NJ "&  9"9"9"9"B$("&%)-1'+&*'+#'$(JJJJ0'+%)(,04*.!")-*.&*'+JJJJ.$("&%)-1&*'+$(KKKK,""" """ """ BF26****X""""V"NNNN OOOO 2:137777& 000////)))999111111r$r ))zcygwin.*unix)posixr)ntmsvcc| tj}| tj}tD]3\}}t j||t j|||cS4dS)akDetermine the default compiler to use for the given platform. osname should be one of the standard Python OS names (i.e. the ones returned by os.name) and platform the common value returned by sys.platform for the platform in question. The default values are os.name and sys.platform in case the parameters are not given. Nr)rjr2rplatform_default_compilersrematch)osnamerpatterncompilers r"get_default_compilerrsj~</ 8GX & & 2 8GV $ $ 0OOO 1 6r$) unixccompiler UnixCCompilerzstandard UNIX-style compiler) _msvccompiler MSVCCompilerzMicrosoft Visual C++)cygwinccompilerCygwinCCompilerz'Cygwin port of GNU C Compiler for Win32)r$Mingw32CCompilerz(Mingw32 port of GNU C Compiler for Win32) bcppcompiler BCPPCompilerzBorland C++ Compiler)rrcygwinmingw32bcppcddlm}g}tD].}|d|zdt|df/|||}|ddS)zyPrint list of available compilers (used by the "--help-compiler" options to "build", "build_ext", "build_clib"). r) FancyGetoptz compiler=Nr7zList of available compilers:)distutils.fancy_getoptr-compiler_classrr?sort print_help)r- compilersrpretty_printers r"show_compilersr4s322222I"''))88+h.(2157 8 8 8 8 NN [++N<=====r$c| tj} |t|}t|\}}}n,#t$rd|z}||d|zz}t |wxYw d|z}t |tj|} t| |} n?#t$rtd|zt$rtd|d|dwxYw| d||S) a[Generate an instance of some CCompiler subclass for the supplied platform/compiler combination. 'plat' defaults to 'os.name' (eg. 'posix', 'nt'), and 'compiler' defaults to the default compiler for that platform. Currently only 'posix' and 'nt' are supported, and the default compilers are "traditional Unix interface" (UnixCCompiler class) and Visual C++ (MSVCCompiler class). Note that it's perfectly possible to ask for a Unix compiler object under Windows, and a Microsoft compiler object under Unix -- if you supply a value for 'compiler', 'plat' is ignored. Nz5don't know how to compile C/C++ code on platform '%s'z with '%s' compilerz distutils.z4can't compile C/C++ code: unable to load module '%s'z0can't compile C/C++ code: unable to find class 'z ' in module '') rjr2rr/rDistutilsPlatformError __import__rmodulesvars ImportErrorDistutilsModuleError) platrrrr module_name class_namelong_descriptionrmoduleklasss r" new_compilerrCsJ |w *  +D11H6DX6N3j"2"2 ***EL  -88C$S))) * ="[0 K   [)V Z( "D  ===""#-::{{{<== == 5w & &&s"3)A ;BrTst11 !!!!!!))))))%%%%%%******00000000E1E1E1E1E1E1E1E1X 0?7JK7  >>>"*'*'*'*'Z***Z$$$$$r$PK!f001__pycache__/cygwinccompiler.cpython-311.opt-2.pycnu[ 0i? ddlZddlZddlZddlmZmZmZddlZddlm Z ddl m Z ddl m Z mZmZmZddlmZddlmZdZGd d e ZGd d eZd ZdZdZdZejdZdZdZdZ dS)N)PopenPIPE check_output) UnixCCompiler) write_file)DistutilsExecErrorCCompilerError CompileErrorUnknownFileError) LooseVersion)find_executablec tjd}|dkrYtj|dz|dz}|dkrdgS|dkrdgS|d krd gS|d krd gS|d krdgStd|zdS)NzMSC v. 1300msvcr701310msvcr711400msvcr801500msvcr901600msvcr100zUnknown MS Compiler version %s )sysversionfind ValueError)msc_posmsc_vers @/opt/alt/python311/lib64/python3.11/distutils/cygwinccompiler.py get_msvcrr#=skx((G"}}+gai 23 f  ;    ;    ;    ;    < >HII I%}cReZdZ dZdZdZdZdZdZdZ dd Z d Z dd Z ddZ d S)CygwinCCompilercygwinz.o.az.dllzlib%s%sz%s%sz.exerc tj||||t\}}|d|d|d|tur|d|zt \|_|_|_ ||j d|jd|jd|j dz|jd krd |_ nd |_ |jd krd }nd}| dddd|j d||jdkrdg|_ |ddSt|_ dS)NzPython's GCC status: z (details: )zPython's pyconfig.h doesn't seem to support your compiler. Reason: %s. Compiling may fail because of undefined preprocessor macros.z: gcc z, ld z , dllwrap  z2.10.90gccdllwrap2.13-shared -mdll -staticzgcc -mcygwin -O -Wallzgcc -mcygwin -mdll -O -Wallzg++ -mcygwin -O -Wallz gcc -mcygwinz -mcygwin compiler compiler_so compiler_cxx linker_exe linker_so2.91.57msvcrtz,Consider upgrading to a newer version of gcc)r__init__check_config_h debug_print CONFIG_H_OKwarn get_versions gcc_version ld_versiondllwrap_version compiler_type linker_dllset_executables dll_librariesr#)selfverbosedry_runforcestatusdetails shared_options r"r9zCygwinCCompiler.__init__bstWgu===(**  &&'''+ , , ,  $ $ IIO    NN @$/4+? ++***///.../00 2 2 2 ?i ' '#DOO'DO ?f $ $%MM+M &=)F*A(6)---)I  K K K  y ( (!)zD  II> @ @ @ @ @ "+D   r$c, |dks|dkr> |dd|d|gdS#t$r}t|d}~wwxYw ||j|z|d|gz|zdS#t$r}t|d}~wwxYw)N.rc.reswindresz-iz-o)spawnrr r3)rFobjsrcextcc_argsextra_postargspp_optsmsgs r"_compilezCygwinCCompiler._compilesH %<<3&== ( ItS$<=====% ( ( ("3''' ( ( 4+g5dC8HH)*+++++% ( ( ("3''' (s,+ A AA  &A55 B?BBNc tj| pg} tj|pg}tj|pg}||j|r||jks |jdkr[t j|d}t jt j |\}}t j ||dz}t j |d|zdz}dt j |zdg}|D]}| || t||fd|z|jd kr/| d |g| d |gn| || s| d tj||||||||d| | | | | dS) Nr,rz.deflibr(z LIBRARY %sEXPORTSz writing %sr-z --output-libz--defz-s)copyextendrE EXECUTABLErCospathdirnamesplitextbasenamejoinappendexecuterrlink)rF target_descobjectsoutput_filename output_dir libraries library_dirsruntime_library_dirsexport_symbolsdebug extra_preargsrV build_temp target_langtemp_dirdll_name dll_extensiondef_filelib_filecontentssyms r"rhzCygwinCCompiler.links%  -"5266 Iio2.. )GMr** +,,, ' DO + +t%/G/Gwwqz22H(*(8(8  11)3)3 %X}w||Hh.?@@Hw||Heh.>.EFFHrw//@@@H& % %$$$$ LLh%9%0 2 2 2 )++$$nh%?@@@$$gx%89999 x((( '   & & &4g%y,/ -&  ( ( ( ( (r$c& |d}g}|D]}tjtj|\}}||jddgzvrt d|d|d|rtj|}|dvr?|tj|||z|j z|tj|||j z|S)Nr|rNrOzunknown file type 'z ' (from 'z'))rOrN) r`rarcnormcasesrc_extensionsr rdrfre obj_extension)rFsource_filenames strip_dirrl obj_namessrc_namebaserTs r"object_filenamesz CygwinCCompiler.object_filenamessE1  J ( K KH(()9)9()C)CDDID#4.%?@@&&ssHHH(&''' /w''..o%%  "',,z.2Sj4;M.M#O#OPPPP  "',,z/3d6H/H#J#JKKKKr$rrr) NNNNNrNNNN)rr|)__name__ __module__ __qualname__rBrstatic_lib_extensionshared_lib_extensionstatic_lib_formatshared_lib_format exe_extensionr9rYrhrr$r"r&r&WsMM!!M9-9-9-9-v ( ( (FJEI9=?CJ(J(J(J(\r$r&ceZdZ dZddZdS)Mingw32CCompilermingw32rc <t|||||jdkrd}nd}|jdkrd}nd}t rt d|dd d d |jd |d | g|_t|_dS)Nr.r/r0r7z--entry _DllMain@12r|z1Cygwin gcc cannot be used with --compiler=mingw32z gcc -O -Wallzgcc -mdll -O -Wallz g++ -O -Wallr, r1) r&r9r@r? is_cygwingccr rDrCrEr#)rFrGrHrIrL entry_points r"r9zMingw32CCompiler.__init__s  $%@@@ ?f $ $%MM+M  y ( (/KKK >> E CEE E n)=*8(-+/???MMM+6;(8  9 9 9'[[r$Nr)rrrrBr9rr$r"rrs2M&)&)&)&)&)&)r$rokznot ok uncertainc ddlm}dtjvr tdfS|} t |} d|vr td|zf|Std|zf|S#|wxYw#t$r}td|d |j fcYd}~Sd}~wwxYw) Nr) sysconfigGCCzsys.version mentions 'GCC'__GNUC__z'%s' mentions '__GNUC__'z '%s' does not mention '__GNUC__'zcouldn't read 'z': ) distutilsrrrr<get_config_h_filenameopenreadcloseCONFIG_H_NOTOKOSErrorCONFIG_H_UNCERTAINstrerror)rfnconfig_hexcs r"r:r:Fs%($#####  888  ( ( * *B ?88 X]]__,,"$>$CC NN    &'IB'NN NN    HNN     ???"",.BB =? ? ? ? ? ? ??sAB3!B%B3: BB3B00B33 C=CCCs(\d+\.\d+(\.\d+)*)c |d}t|dSt|dtj} |}|n#|wxYwt|}|dSt| d S)NrT)shellstdout) splitr rrrrr RE_VERSIONsearchr groupdecode)cmd executableout out_stringresults r"_find_exe_versionrss QJz""*t 4 - - - 4CXXZZ     z * *F ~t  Q..00 1 11s A33B c> gd}td|DS)N)zgcc -dumpversionzld -vzdllwrap --versionc,g|]}t|Sr)r).0rs r" z get_versions..s!===S#C((===r$)tuple)commandss r"r>r>s2BAAH ==H=== > >>r$ct tddg}|dS)Nr,z -dumpmachinescygwin)rstripendswith)rs r"rrs7Hun566J      & &y 1 11r$)!r`rr] subprocessrrrredistutils.unixccompilerrdistutils.file_utilrdistutils.errorsrr r r distutils.versionr distutils.spawnr r#r&rr<rrr:compilerrr>rrr$r"rs^ 0000000000 111111******((((((((((((******++++++JJJ4wwwwwmwwwt+)+)+)+)+)+)+)+)b  )?)?)?VRZ. / / 222*???22222r$PK! 7 7.__pycache__/fancy_getopt.cpython-311.opt-2.pycnu[ 0ixE  ddlZddlZddlZddlZddlTdZejdezZejdededZe dd Z Gd d Z d Z d ejDZdZdZGddZedkrGdZdD]DZedezedeeeeCdSdS)N)*z[a-zA-Z](?:[a-zA-Z0-9-]*)z^%s$z^(z)=!(z)$-_cneZdZ ddZdZdZddZdZdZdZ d Z d Z d Z dd Z d ZddZddZdS) FancyGetoptNc||_i|_|jr|i|_i|_g|_g|_i|_i|_i|_ g|_ dSN) option_table option_index _build_indexaliasnegative_alias short_opts long_opts short2long attr_name takes_arg option_orderselfr s =/opt/alt/python311/lib64/python3.11/distutils/fancy_getopt.py__init__zFancyGetopt.__init__)s{)         !  cl|j|jD]}||j|d<dS)Nr)r clearr )roptions rr zFancyGetopt._build_indexQsG !!!' 2 2F+1D fQi ( ( 2 2rc<||_|dSr )r r rs rset_option_tablezFancyGetopt.set_option_tableVs"( rc||jvrtd|z|||f}|j|||j|<dS)Nz'option conflict: already an option '%s')r DistutilsGetoptErrorr append)r long_option short_option help_stringrs r add_optionzFancyGetopt.add_optionZse $+ + +&;kIKK K"<=F   $ $V , , ,-3D k * * *rc ||jvSr )r rr"s r has_optionzFancyGetopt.has_optioncs 0d///rc8 |tSr  translate longopt_xlater's r get_attr_namezFancyGetopt.get_attr_namehs $$]333rc |D]I\}}||jvrtd|d|d|d||jvrtd|d|d|dJdS)Nzinvalid z 'z ': option 'z ' not defined': aliased option ')itemsr r )raliaseswhatr opts r_check_alias_dictzFancyGetopt._check_alias_dictns#MMOO P PLUCD---**59TT555%%%,IJJJ$+++**=ATT555###,OPPP,  P PrcB ||d||_dS)Nr )r4r )rr s r set_aliaseszFancyGetopt.set_aliasesxs&5 ug... rcB ||d||_dS)Nznegative alias)r4r)rrs rset_negative_aliasesz FancyGetopt.set_negative_aliases}s.  ~/?@@@,rc g|_g|_|ji|_|jD]$}t |dkr |\}}}d}n-t |dkr|\}}}}ntd|t|trt |dkrtd|z|:t|trt |dkstd|z||j|<|j ||d d kr|r|d z}|dd }d|j |<nS|j |}|-|j |rtd |d |d||jd <d|j |<|j|}|2|j ||j |krtd|d|dt |std|z|||j|<|r*|j |||j|d<&dS)Nrzinvalid option tuple: z9invalid long option '%s': must be a string of length >= 2z:invalid short option '%s': must a single character or None=:zinvalid negative alias 'r/z' takes a valuezinvalid alias 'z%': inconsistent with aliased option 'z/' (one of them takes a value, the other doesn'tzEinvalid long option name '%s' (must be letters, numbers, hyphens only)rrrrrepeatr len ValueError isinstancestrr r!rrgetr longopt_rematchr-r)rrlongshorthelprAalias_tos r_grok_option_tablezFancyGetopt._grok_option_tables   'A 1A 1F6{{a$*!eTV!!,2)eT66!jvv!GHHHdC(( BCIIMM*-9<@,ABBBm ,,$14Uq*,9;@,ABBB!'DK  N ! !$ ' ' 'Bx3-%#+%AbDz'(t$$ .22488'~h/222"&xxx1222 *.DN2&'(t$z~~d++H#>$'4>(+CCC.."TT888-...##D)) I*ACGHIII$(#5#5d#;#;DN4  1&&u---,0a)CA 1A 1rcL |tjdd}|t}d}nd}|d|j} t j|||j\}}n&#t j$r}t|d}~wwxYw|D]\}}t|dkr |ddkr|j |d}n |dd}|j |} | r| }|j|s#|j |} | r| }d}nd}|j|} |r.|j | t%|| ddz}t'|| ||j||f|r||fS|S)Nr=TF r<rr)sysargv OptionDummyrMjoinrgetoptrerrorDistutilsArgErrorrBrr rFrrrrAgetattrsetattrrr!) rargsobjectcreated_objectroptsmsgr3valr attrs rrTzFancyGetopt.getopts  <8ABB ]]F!NN"N !!!XXdo..  )tZHHJD$$| ) ) )#C(( ( ) 1 1HC3xx1}}Q3oc!f-!""gJNN3''E >#& +//44CCCC>#&D 3t{t,,8fdA..2 FD# & & &   $ $c3Z 0 0 0 0  < KsA;;B BBc> |jtd|jS)Nz!'getopt()' hasn't been called yet)r RuntimeError)rs rget_option_orderzFancyGetopt.get_option_orders*    $BCC C$ $rc d}|jD]A}|d}|d}t|}|ddkr|dz }||dz}||kr|}B|dzdzdz}d}||z } d|z} |r|g} nd g} |jD]}|dd \}}} t| | } |ddkr |dd}|?| r"| d ||| dfzn_| d ||fznD|d |d}| r"| d ||| dfzn| d|z| ddD]}| | |z| S)Nrr=r>r?r<NrOzOption summary:r:z --%-*s %sz --%-*s z (-)z --%-*s)r rB wrap_textr!)rheadermax_optrrIrJl opt_width line_width text_width big_indentlinesrKtext opt_namess r generate_helpzFancyGetopt.generate_helps '  F!9D1IED ABx3E E7{{aK!Oa' 0 )+ 9_  (HEE&'E' - -F &rr D%T:..DBx3AbDz}ALL7D$q'2J!JKKKKLL$!?@@@@ +/$$6 9LL")9d1g!>"?@@@@LLi!7888!""X - - Z!^,,,, - rc| tj}||D]}||dzdS)N )rPstdoutrrwrite)rrhfilelines r print_helpzFancyGetopt.print_helphsN <:D&&v.. $ $D JJtd{ # # # # $ $rr )NN)__name__ __module__ __qualname__rr rr%r(r-r4r6r8rMrTrbrrryrrrrs &&&&P222 4444000 444 PPP ---K1K1K1Z;;;;z%%%MMMM^$$$$$$rrcvt|}|||||Sr )rr8rT)options negative_optrZrYparsers r fancy_getoptros7  ! !F  --- ==v & &&rc.i|]}t|dS)rO)ord).0_wschars r rus @ @ @7CLL3 @ @ @rc |gSt||kr|gS|}|t}t jd|}d|D}g}|rg}d}|r\t|d}||z|kr$||d|d=||z}n|r|dddkr|d=n|\|rQ|dkr6||dd||d|d|d<|dddkr|d=|d|||S)Nz( +|-+)cg|]}||Sr}r})rchs r zwrap_text..s ( ( (RR (b ( ( (rrr>rO)rB expandtabsr+WS_TRANSresplitr!rS)rpwidthchunksrocur_linecur_lenrjs rrgrgws  |  4yyEv ??  D >>( # #D Xj$ ' 'F ( (6 ( ( (F E  ( F1IA{e##q ***1I!A+% Q3 6 6     !||q !E' 2333"1Ieff-q ay|s""1I  RWWX&&'''A  (D Lrc8 |tSr r*)r3s rtranslate_longoptrs == ' ''rceZdZ gfdZdS)rRc4 |D]}t||ddSr )rX)rrr3s rrzOptionDummy.__init__s5 2 % %C D#t $ $ $ $ % %rN)rzr{r|rr}rrrRrRs2& "%%%%%%rrR__main__zTra-la-la, supercalifragilisticexpialidocious. How *do* you spell that odd word, anyways? (Someone ask Mary -- she'll know [or she'll say, "How should I know?"].)) (z width: %drt)rPstringrrTdistutils.errors longopt_patcompilerG neg_alias_rerE maketransr,rr whitespacerrgrrRrzrpwprintrSr}rrrs  + RZ+- . . rzzKKKEFF  c3'' O$O$O$O$O$O$O$O$d ''' A @f.? @ @ @333l(((%%%%%%%% z D  kAo dii $**++,,, rPK!.$*__pycache__/dep_util.cpython-311.opt-1.pycnu[ 0i 2dZddlZddlmZdZdZddZdS) zdistutils.dep_util Utility functions for simple, timestamp-based dependency of files and groups of files; also, function based entirely on such timestamp dependency analysis.N)DistutilsFileErrorc`tj|s/tdtj|ztj|sdSddlm}tj||}tj||}||kS)aReturn true if 'source' exists and is more recently modified than 'target', or if 'source' exists and 'target' doesn't. Return false if both exist and 'target' is the same age or younger than 'source'. Raise DistutilsFileError if 'source' does not exist. zfile '%s' does not existrST_MTIME)ospathexistsrabspathstatr)sourcetargetrmtime1mtime2s 9/opt/alt/python311/lib64/python3.11/distutils/dep_util.pynewerr s 7>>& ! !: !;!#!8!8"9:: : 7>>& ! !q WV__X &F WV__X &F F?cRt|t|krtdg}g}tt|D]T}t||||r6||||||U||fS)zWalk two filename lists in parallel, testing if each source is newer than its corresponding target. Return a pair of lists (sources, targets) where source is newer than target, according to the semantics of 'newer()'. z+'sources' and 'targets' must be same length)len ValueErrorrangerappend)sourcestargets n_sources n_targetsis rnewer_pairwiser s  7||s7||##FGGGII 3w<< )) WQZ ( ( )   WQZ ( ( (   WQZ ( ( ( y !!rerrorcDtj|sdSddlm}tj||}|D][}tj|s|dkrn|dkr/|dkrdStj||}||krdS\dS)aReturn true if 'target' is out-of-date with respect to any file listed in 'sources'. In other words, if 'target' exists and is newer than every file in 'sources', return false; otherwise return true. 'missing' controls what we do when a source file is missing; the default ("error") is to blow up with an OSError from inside 'stat()'; if it is "ignore", we silently drop any missing source files; if it is "newer", any missing source files make us assume that 'target' is out-of-date (this is handy in "dry-run" mode: it'll make you pretend to carry out commands that wouldn't work because inputs are missing, but that doesn't matter because you're not actually going to run the commands). rrrrignorer)rr r r r)rrmissingr target_mtimer source_mtimes r newer_groupr%6s 7>>& ! !q 76??8,L  w~~f%% '!!H$$G##qqwvx0 , & &11 'qr)r)__doc__rdistutils.errorsrrrr%rrr)sh""  //////*""",$$$$$$rPK!T?<<%__pycache__/log.cpython-311.opt-1.pycnu[ 0idZdZdZdZdZdZddlZGdd ZeZej Z ej Z ej Z ej Z ej Z ejZd Zd ZdS) z,A simple log mechanism styled after PEP 282.NcBeZdZefdZdZdZdZdZdZ dZ dZ d S) Logc||_dSN) threshold)selfr s 4/opt/alt/python311/lib64/python3.11/distutils/log.py__init__z Log.__init__s "c|tttttfvrt dt |z||jkr|r||z}|tttfvr tj }n tj } | d|znX#t$rK|j }||d|}| d|zYnwxYw|dSdS)Nz%s wrong log levelz%s backslashreplace)DEBUGINFOWARNERRORFATAL ValueErrorstrr sysstderrstdoutwriteUnicodeEncodeErrorencodingencodedecodeflush)r levelmsgargsstreamrs r_logzLog._logs  dE59 9 91CJJ>?? ? DN " " !Djue,,, + Vc\****% + + +!?jj+=>>EEhOO Vc\*****  + LLNNNNN # "sBAC21C2c4||||dSr )r')r r#r$r%s rlogzLog.log's %d#####rc>|t||dSr )r'rr r$r%s rdebugz Log.debug* %d#####rc>|t||dSr )r'rr+s rinfozLog.info- $T"""""rc>|t||dSr )r'rr+s rwarnzLog.warn0r0rc>|t||dSr )r'rr+s rerrorz Log.error3r-rc>|t||dSr )r'rr+s rfatalz Log.fatal6r-rN) __name__ __module__ __qualname__rrr'r)r,r/r2r4r6rrr r s!%####($$$$$$######$$$$$$$$rr c6tj}|t_|Sr ) _global_logr )r#olds r set_thresholdr>As  C!K Jrc|dkrttdS|dkrttdS|dkrttdSdS)Nrrr)r>rrr)vs r set_verbosityrAGs`Avvd ad ae r)__doc__rrrrrrr r<r)r,r/r2r4r6r>rAr:rrrCs22    )$)$)$)$)$)$)$)$Vcee o rPK!cb7M33.__pycache__/bcppcompiler.cpython-311.opt-1.pycnu[ 0i.:~dZddlZddlmZmZmZmZmZddlm Z m Z ddl m Z ddl mZddlmZGdd e ZdS) zdistutils.bcppcompiler Contains BorlandCCompiler, an implementation of the abstract CCompiler class for the Borland C++ compiler. N)DistutilsExecError CompileErrorLibError LinkErrorUnknownFileError) CCompilergen_preprocess_options) write_file)newer)logceZdZdZdZiZdgZgdZeezZdZ dZ dZ dxZ Z d Z dd Z dd Z ddZ ddZddZ ddZ ddZd S) BCPPCompilerzConcrete class that implements an interface to the Borland C/C++ compiler, as defined by the CCompiler abstract class. bcppz.c)z.ccz.cppz.cxxz.objz.libz.dllz%s%sz.exerctj||||d|_d|_d|_d|_gd|_gd|_gd|_gd|_ g|_ gd|_ gd|_ dS) Nz bcc32.exez ilink32.exeztlib.exe)/tWMz/O2/q/g0)rz/Odrr)z/Tpd/Gnr/x)rrr)rrrz/r) r__init__cclinkerlibpreprocess_optionscompile_optionscompile_options_debugldflags_sharedldflags_shared_debugldflags_static ldflags_exeldflags_exe_debug)selfverbosedry_runforces =/opt/alt/python311/lib64/python3.11/distutils/bcppcompiler.pyrzBCPPCompiler.__init__5s D'7E::: # "&;;;%A%A%A"999$?$?$?! ...!9!9!9Nc ~|||||||\}} }} } |pg} | d|r| |jn| |j| D]H} | | \}}n#t $rYwxYwt j|}t j| } | t j | |dkr|dkr= | dd| |gn!#t$r}t|d}~wwxYw||jvrd}n||jvrd}nd}d| z} | |jg| z| z||gz|z|gz)#t$r}t|d}~wwxYw| S) Nz-c.res.rcbrcc32z-foz-P-o)_setup_compileappendextendrrKeyErrorospathnormpathmkpathdirnamespawnrr _c_extensions_cpp_extensionsr)r"sources output_dirmacros include_dirsdebug extra_preargsextra_postargsdependsobjectspp_optsbuild compile_optsobjsrcextmsg input_opt output_opts r&compilezBCPPCompiler.compileQsF ##J g$+^== 8%%* T"""  7   !; < < < <   !5 6 6 6, (, (C  :SS    '""3''C'""3''C KK,, - - -f}}e||,JJ5#s ;<<<<),,,&s+++,d((( ,,,  J  ( TWI 4w>& 34*+.1U34444& ( ( ("3''' (sB7 B BBD++ E 5EE --F F:&F55F:cT|||\}}|||}|||rL|dg|z}|r ||jg|zdS#t $r}t |d}~wwxYwtjd|dS)N)r;z/uskipping %s (up-to-date)) _fix_object_argslibrary_filename _need_linkr7rrrr r>) r"rBoutput_libnamer;r> target_langoutput_filenamelib_argsrIs r&create_static_libzBCPPCompiler.create_static_libs!% 5 5w K K*  ! !>j ! I I  ??G_ 5 5 C'.8H  $ TXJ122222% $ $ $smm# $ I0/ B B B B BsA22 B<B  Bc|||\}}||||\}}}|r"tjdt || t j||}|||r|tj kr$d}| r|j dd}n3|j dd}n#d}| r|j dd}n|jdd}|d}nt j|\}}t j|\}}t j|d}t j|d|z}dg}|pgD]}|d|d ||t(||fd |zt+t jj|}|g}g}|D]r}t jt j|\}}|d kr||]||s|D]7}|d t j|z8|d |||d|g|d|D]F}|||| }|||1||G|d|d|d|g|d||| r| |dd<| r|| |t j| ||jg|zdS#t:$r}t=|d}~wwxYwtjd|dS)Nz7I don't know what to do with 'runtime_library_dirs': %sc0w32c0d32r,rz%s.defEXPORTSz z=_z writing %sr)z/L%sz/L.,z,,import32cw32mtrN) rO _fix_lib_argsr warnstrr2r3joinrQr EXECUTABLEr!r rrsplitsplitextr6r/executer mapr4normcaser0find_library_filer5r7rrrr>) r" target_descrBrTr; libraries library_dirsruntime_library_dirsexport_symbolsr>r?r@ build_temprS startup_objld_argsdef_fileheadtailmodnamerHtemp_dircontentssymobjects2 resourcesfilebaselrlibfilerIs r&linkzBCPPCompiler.links$!% 5 5w K K*    <9M N N 8L"6  0 HN-.. 0 0 0  ! gllJHHO ??G_ 5 5e Ci222% 2"4QQQ7GG".qqq1GG% 5"7:GG"1!!!4G%W]]O<< d!w//66 7??71:667<<8g3EFF%;*0b==COOO###ss$;<<<< Z(H)=)H466627+W55H#mGI  ) ) g..rw/?/?/E/EFF s&==$$T****NN4((((" = =v(8(8(;(;;<<<< NN5 ! ! ! NN7 # # # NNC0 1 1 1 NN4  , ,00sEJJ?NN3''''NN7++++ NNJ ' ' ' NNH % % % NNC> * * * NN3    NN9 % % % ,+  /~... KK/:: ; ; ; % T[MG344444% % % %nn$ % I0/ B B B B Bs0P P.P))P.c|r|dz}|dz|dz||f}n|dz|f}|D]_}|D]Z}tj|||}tj|r|ccS[`dS)N_d_bcpp)r2r3rarPexists) r"dirsrr>dlib try_namesdirnamer}s r&rhzBCPPCompiler.find_library_file4s  -$JDwcBIIw,I  C! # #',,sD,A,A$,G,GHH7>>'**#"NNNNN# # 4r'r,c|d}g}|D]=}tjtj|\}}||jddgzvrt d|d|d|rtj|}|dkr7|tj|||z|dkr8|tj||dz|tj|||j z?|S)Nr,r*r)zunknown file type 'z ' (from 'z')) r2r3rdrgsrc_extensionsrbasenamer/ra obj_extension)r"source_filenames strip_dirr; obj_namessrc_namer{rHs r&object_filenameszBCPPCompiler.object_filenamesNsX  Bz ( H HH'**BG,<, > "FL(>>-')  " NN4+- . . .  ('GBQBK  + NN> * * *v : (,fk0J0J, : BGOOK88999 ( 7#####% ( ( (c "3''' ( -,sC&& D0DD)rrr)NNNrNNN)NrN) NNNNNrNNNN)r)rr,)NNNNN)__name__ __module__ __qualname____doc__ compiler_type executablesr8r9rrstatic_lib_extensionshared_lib_extensionstatic_lib_formatshared_lib_format exe_extensionrrLrVr~rhrrr'r&rrsaMKFM---O#_4NM!!,22)M:::::HIAE<<<<H'+!"'+ CCCC:#'! !BCBCBCBCR8%&%':!%!%"&#' ((((((r'r)rr2distutils.errorsrrrrrdistutils.ccompilerrr distutils.file_utilr distutils.dep_utilr distutilsr rrr'r&rs 99999999999999''''''''******$$$$$$n(n(n(n(n(9n(n(n(n(n(r'PK! 99/__pycache__/msvc9compiler.cpython-311.opt-1.pycnu[ 0ivdZddlZddlZddlZddlZddlmZmZmZm Z m Z ddl m Z m Z ddlmZddlmZddlZejZejZejZejZejejejejfZej dko ej!dkZ"e"rd Z#d Z$d Z%nd Z#d Z$dZ%dddZ&GddZ'GddZ(dZ)dZ*dZ+dZ,ddZ-e)Z.e.dkrede.zGdde Z/dS) a distutils.msvc9compiler Contains MSVCCompiler, an implementation of the abstract CCompiler class for the Microsoft Visual Studio 2008. The module is compatible with VS 2005 and VS 2008. You can find legacy support for older versions of VS in distutils.msvccompiler. N)DistutilsExecErrorDistutilsPlatformError CompileErrorLibError LinkError) CCompilergen_lib_options)log) get_platformwin32lz1Software\Wow6432Node\Microsoft\VisualStudio\%0.1fz5Software\Wow6432Node\Microsoft\Microsoft SDKs\Windowsz,Software\Wow6432Node\Microsoft\.NETFrameworkz%Software\Microsoft\VisualStudio\%0.1fz)Software\Microsoft\Microsoft SDKs\Windowsz Software\Microsoft\.NETFrameworkx86amd64r z win-amd64ceZdZdZdZeeZdZeeZdZeeZdZe eZdS)Regz2Helper class to read values from the registry ctD](}|||}|r||vr ||cS)t|N)HKEYS read_valuesKeyError)clspathkeybaseds >/opt/alt/python311/lib64/python3.11/distutils/msvc9compiler.py get_valuez Reg.get_value?sN  Dd++A SAXXv smmc t||}n#t$rYdSwxYwg}d} t||}n#t$rYnwxYw|||dz }=|S)zReturn list of registry keys.NrT) RegOpenKeyExRegError RegEnumKeyappend)rrrhandleLiks r read_keysz Reg.read_keysGs !$,,FF   44     vq))     HHQKKK FA  s !!; AAc, t||}n#t$rYdSwxYwi}d} t||\}}}n#t$rYnIwxYw|}|||||<|dz }k|S)z`Return dict of registry keys and values. All names are converted to lowercase. NrTr )r!r" RegEnumValuelower convert_mbcs) rrrr%rr'namevaluetypes rrzReg.read_valuesYs  !$,,FF   44     $0$;$;!eTT    ::<> NN-t{M J J J NN?K9O P P P P PAA B B$T1--AAH A&&MM$AAAss(;<<56y\ 122 B Bs2BB)8D  DDcp|jD]\}}|||}|Sr)rBitemsreplace)rFr6r(vs rsubzMacroExpander.subs;K%%''  DAq !QAArN)r8r9r:rHrKrEr`r>rrr@r@ysV""" @@@BBB>rr@cvd}tj|}|dkrdS|t|z}tj|ddd\}}t |dddz }|dkr|dz }t |d d d z }|dkrd }|dkr||zSdS) zReturn the version of MSVC that was used to build Python. For Python 2.3 and up, the version number is included in sys.version. For earlier versions, assume the compiler is MSVC 6. zMSC v.N r g$@r)sysrGfindlensplitint)prefixr'r6rest majorVersion minorVersions rget_build_versionrrs F   ABwwq CKKAk!""o##C++GAtq"v;;?Lr q1v;;%Lq ql** 4rcg}|D]:}tj|}||vr||;|S)znReturn a list of normalized paths with duplicates removed. The current order of paths is maintained. )osrnormpathr$)paths reduced_pathsrZnps rnormalize_and_reduce_pathsrysS M %% W  a  ] " "   $ $ $ rc|tj}g}|D]}||vr||tj|}|S)z8Remove duplicate values of an environment variable. )rlrtpathsepr$join)variableoldListnewListr' newVariables rremoveDuplicatesrsbnnRZ((GG  G   NN1   *//'**K rct|z} td|zd}n&#t$rt jdd}YnwxYw|rt j|sd|z}t j |d}|rt j|rt j |t j t j d}t j |}t j|st jd|zdSnt jd|z|st jd dSt j |d }t j|r|St jd dS) zFind the vcvarsall.bat file At first it tries to find the productdir of VS 2008 in the registry. If that fails it falls back to the VS90COMNTOOLS env var. z %s\Setup\VCrNz%Unable to find productdir in registryNzVS%0.f0COMNTOOLSVCz%s is not a valid directoryz Env var %s is not set or invalidzNo productdir foundz vcvarsall.batUnable to find vcvarsall.bat)rCrrrr debugrtrisdirenvirongetr|pardirabspathisfile)rGrDrNtoolskeytoolsdir vcvarsalls rfind_vcvarsallrs w F]]>F#:#/11  9:::   ERW]]:66 E%/:>>(D11  E h// Eh 29dKKJ44J7==,,  7*DEEEt  I88C D D D  '(((t Z99I w~~i  I,--- 4s+ A Act|}hd}i}|tdtjd||t jd|d|dtjtj} |\}}|d kr"t| d | d }| d D]}t |}d |vr!| }| d d \} } | } | |vr;| t jr | dd} t%| || < |j|jn7#|j|jwxYwt-|t-|kr;t/t1t3||S)zDLaunch vcvarsall.bat and read the settings from its environment >librincludelibpathNrz'Calling 'vcvarsall.bat %s' (version=%s)"z" z & set)stdoutstderrrr3 =r rb)rrr r subprocessPopenPIPE communicatewaitr2rlrr-stripr,endswithrtr{rrcloserrk ValueErrorstrlistkeys) rGarchr interestingresultpopenrrlinerr/s rquery_vcvarsallrs(w''I777K F$%CDDDI7wGGG    444@$.O$.O 5 5 5E**,, ::<<1  (v)>)>?? ?v&&LL&& 6 6D##D))D$::<>"*--'!#2#JE.u55s  6       6{{c+&&&&T&++--0011222 Ms 0DG4G5rRz(VC %0.1f is not supported by this moduleceZdZdZdZiZdgZgdZdgZdgZ eezeze zZ dZ dZ d Z d Zd xZZd ZddZddZ d dZ d!dZ d"dZ d#dZdZdZdZdZdZdZd$dZdZdS)% MSVCCompilerzwConcrete class that implements an interface to Microsoft Visual C++, as defined by the CCompiler abstract class.msvcz.c)z.ccz.cppz.cxx.rcz.mcz.resz.objz.libz.dllz%s%sz.exerctj||||t|_d|_g|_d|_d|_d|_dS)NzSoftware\Microsoft\VisualStudioF) rrHVERSION_MSVCCompiler__version_MSVCCompiler__root_MSVCCompiler__paths plat_name_MSVCCompiler__arch initialized)rFverbosedry_runforces rrHzMSVCCompiler.__init__HsJD'7E::: 8    rNc|t}d}||vrtd|dtjvrHdtjvr:|dr%d|_d|_d|_d|_d |_ nj|tks|d krt|}n*ttd zt|z}tt|}|d  tj|_|d tjd <|dtjd<t!|jdkrtd|jz|d|_|d|_|d|_|d|_|d |_ tjd  dD]}|j|n#t&$rYnwxYwt)|j|_d|jtjd <d|_|jdkrgd|_gd|_ngd|_gd|_gd|_|jdkr gd|_dg|_d|_dS)Nrz--plat-name must be one of DISTUTILS_USE_SDKMSSdkzcl.exezlink.exezlib.exezrc.exezmc.exer _rrrrzxPython was built with %s, and extensions need to be built with the same version of the compiler, but it isn't installed.;r )/nologo/Ox/MD/W3/DNDEBUG)r/Od/MDdr/Z7/D_DEBUG)rrrr/GS-r)rrrrrrr)/DLLrz/INCREMENTAL:NO)rrz/INCREMENTAL:noz/DEBUGrT)r rrtrfind_execclinkerrrcmcPLAT_TO_VCVARSrrrlr{rrk_MSVCCompiler__productr$rryr|preprocess_optionsrcompile_optionscompile_options_debugldflags_sharedrldflags_shared_debugldflags_staticr)rFrok_plats plat_specvc_envrZs r initializezMSVCCompiler.initializeSs   $I' H $ $((*2(*566 6 "* , ,BJ1F1F4==YaKbKb1FDG$DK DHDGDGG LNN**i7.B.B*95 +<>>:S@*956 %Wi88F!&>// ;;DL &u BJu $*9$5BJy !4<  A%%,.J.())) mmH--DG-- 33DK}}Y//DHmmH--DGmmH--DG  Z'--c22 ' ' ##A&&&& '    D 1$,??  XXdl33 6"& ;%  $1$1$1D *=*=*=D & &$1$1$1D *=*=*=D &EDD >Q  )))D %!*ls*AH-- H:9H:c|d}g}|D]s}tj|\}}tj|d}|tj|d}||jvrt d|z|rtj|}||jvr<| tj |||j z||j vr=| tj |||j z8| tj |||j zu|S)Nrr zDon't know how to compile %s)rtrsplitext splitdriveisabssrc_extensionsrbasename_rc_extensionsr$r| res_extension_mc_extensions obj_extension)rFsource_filenames strip_dir output_dir obj_namessrc_namerexts robject_filenameszMSVCCompiler.object_filenamess  Bz ( L LH'**H55KT37%%d++A.D d++,,-D$---#$BX$MNNN /w''..d)))  "',, 04t7I0I#K#KLLLL+++  "',, 04t7I0I#K#KLLLL  "',, 04t7I0I#K#KLLLLrc |js||||||||} | \}} }} } |pg} | d|r| |jn| |j| D];} | |\}}n#t$rYwxYw|rtj |}||j vrd|z}n||j vrd|z}n||j vrQ|}d|z} ||jg| z|gz|gzn!#t $r}t#|d}~wwxYw||jvrtj |}tj |} ||jgd|d|gz|gztj tj |\}}tj ||dz}||jgd|zgz|gzn!#t $r}t#|d}~wwxYwt#d|d |d |z} ||jg| z| z||gz|z#t $r}t#|d}~wwxYw| S) Nz/cz/Tcz/Tpz/foz-hz-rrzDon't know how to compile z to z/Fo)rr_setup_compiler$extendrrrrtrr _c_extensions_cpp_extensionsrspawnrrrrdirnamerrrr|r)rFsourcesrrB include_dirsr extra_preargsextra_postargsdepends compile_infoobjectspp_optsbuild compile_optsobjsrcr input_opt output_optmsgh_dirrc_dirrrrc_files rcompilezMSVCCompiler.compiles  OO   **:v|+2G^MM :F7%$* T"""  6    : ; ; ; ;    4 5 5 5? (? (C  :SS     +gooc**d(((!CK ,,,!CK +++ "S[ ,JJy72 *| ,/8k :;;;;),,,&s+++,+++,,-- ,JJy $eT6: ;>AU CDDD g..0@0@#0F0FGGGD! gllFD5LAAGJJy % } -07y 9::::*,,,&s+++,#l&)cc33$0111J ( DG9|3g=%z23)*++++& ( ( ("3''' (s[ B  B-,B-&D)) E3EEB.I I! II!)J,, K 6KK c|js||||\}}|||}|||rN|d|zgz}|r ||jg|zdS#t$r}t|d}~wwxYwtj d|dS)N)r/OUT:skipping %s (up-to-date)) rr_fix_object_argslibrary_filename _need_linkrrrrr r) rFroutput_libnamerr target_langoutput_filenamelib_argsrs rcreate_static_libzMSVCCompiler.create_static_libs  OO    $ 5 5gz J J*//;E0GG ??7O 4 4 C'O";!<> :D7L"6  5 IIN2334 5 5 5#4#/1E#,..  ! gll:GGO ??7O 4 4= Ci2226"7;GG"1!""5GG2"7GG"1GK&," 5 5"":#34444)K7")O";!<=G44J)&(g&6&6G$$_55'7'7#7 gll))(3355  [ 8999  & & G L L L ,+  /~... KK88 9 9 9 % DK=723333% % % %nn$ %11+wGGF!#) DD5D__ddK)JJ)[ *G 566666))))#C..() "! I0/ B B B B Bs0I44 J>J  J;K K5!K00K5ctj|tj|dz}|d|zdS)Nz .manifest/MANIFESTFILE:)rtrr|rr$)rFrrr% temp_manifests rrz"MSVCCompiler.manifest_setup_ldargssV   11K?AA  '-788888rc|D]5}|dr|ddd}n6dS|tjkrd}nd}||}|dS||fS)Nr/:r rg) startswithrlrr_remove_visual_c_ref)rFrr%argr0r+s rrz$MSVCCompiler.manifest_get_embed_infos   C~~.//  # #q 1 1! 4   4 ). . .DDD 55mDDM  4d""rcz t|} |}|n#|wxYwtjdtj}tj|d|}d}tj|d|}tjdtj}tj||dSt|d} ||||S#|wxYw#t$rYdSwxYw)NzU|)rz*\s*zI|)w) openreadrrerDOTALLr`searchwriteOSError)rF manifest_file manifest_f manifest_bufpatterns rr4z!MSVCCompiler._remove_visual_c_refsR$ m,,J #)00   """"   """"jD G6'2|<D,D))D,, D:9D:c d|zS)Nz /LIBPATH:r>rFdirs rlibrary_dir_optionzMSVCCompiler.library_dir_options S  rc td)Nz>'**#"NNNNN# # 4rc|jD]b}tjtj||}tj|r|cSctjddD]b}tjtj||}tj|r|cSc|S)aReturn path to an MSVC executable program. Tries to find the program in several places: first, one of the MSVC program search paths from the registry; next, the directories in the PATH environment variable. If any of those work, return an absolute path that is known to exist. If none of them work, just return the original program name, 'exe'. Pathr)rrtrr|rrrrl)rFexerZfns rrzMSVCCompiler.find_exes  Abgooa00#66Bw~~b!!   F#))#..  Abgooa0055Bw~~b!!    r)rrrr)rr)NNNrNNN)NrN) NNNNNrNNNN)r) r8r9r:r; compiler_type executablesrrrrrrrstatic_lib_extensionshared_lib_extensionstatic_lib_formatshared_lib_format exe_extensionrHrrrrr-rrr4rFrHrJrQrr>rrrr*s66MKFM---OWNWN$o5$%'56NMM!!,22)M ! ! ! !Q Q Q Q n$%$&@HIAERRRRp&* !&* CCCC:"&  ]C]C]C]C~ 9 9 9###0%%%V!!!NNN***$rr)r )0r;rtrrir:distutils.errorsrrrrrdistutils.ccompilerrr distutilsr distutils.utilr winreg OpenKeyExr!EnumKeyr# EnumValuer+errorr" HKEY_USERSHKEY_CURRENT_USERHKEY_LOCAL_MACHINEHKEY_CLASSES_ROOTrplatformmaxsize NATIVE_WIN64rCrYrXrrr@rrryrrrrrr>rrrmsk  ??????????????::::::::''''''  ^  <    !  "  ! #  '?CK%,?  3CGJK>HH6G>K2H  <.<.<.<.<.<.<.<.|,,,,,,,,\2      !!!F&&&&R     S== !Kg!U V VVjjjjj9jjjjjrPK!0U*7*7+__pycache__/cygwinccompiler.cpython-311.pycnu[ 0i?dZddlZddlZddlZddlmZmZmZddlZddl m Z ddl m Z ddl mZmZmZmZddlmZddlmZd ZGd d e ZGd d eZdZdZdZdZejdZdZdZ dZ!dS)adistutils.cygwinccompiler Provides the CygwinCCompiler class, a subclass of UnixCCompiler that handles the Cygwin port of the GNU C compiler to Windows. It also contains the Mingw32CCompiler class which handles the mingw32 port of GCC (same as cygwin in no-cygwin mode). N)PopenPIPE check_output) UnixCCompiler) write_file)DistutilsExecErrorCCompilerError CompileErrorUnknownFileError) LooseVersion)find_executablectjd}|dkrYtj|dz|dz}|dkrdgS|dkrdgS|d krd gS|d krd gS|d krdgStd|zdS)zaInclude the appropriate MSVC runtime library if Python was built with MSVC 7.0 or later. zMSC v. 1300msvcr701310msvcr711400msvcr801500msvcr901600msvcr100zUnknown MS Compiler version %s N)sysversionfind ValueError)msc_posmsc_vers @/opt/alt/python311/lib64/python3.11/distutils/cygwinccompiler.py get_msvcrr#=skx((G"}}+gai 23 f  ;    ;    ;    ;    < >HII I%}cTeZdZdZdZdZdZdZdZdZ dZ dd Z d Z dd Z ddZd S)CygwinCCompilerz? Handles the Cygwin port of the GNU C compiler to Windows. cygwinz.o.az.dllzlib%s%sz%s%sz.exerc tj||||t\}}|d|d|d|tur|d|zt \|_|_|_ ||j d|jd|jd|j dz|jd krd |_ nd |_ |jd krd }nd}| dddd|j d||jdkrdg|_ |ddSt|_ dS)NzPython's GCC status: z (details: )zPython's pyconfig.h doesn't seem to support your compiler. Reason: %s. Compiling may fail because of undefined preprocessor macros.z: gcc z, ld z , dllwrap  z2.10.90gccdllwrap2.13-shared -mdll -staticzgcc -mcygwin -O -Wallzgcc -mcygwin -mdll -O -Wallzg++ -mcygwin -O -Wallz gcc -mcygwinz -mcygwin compiler compiler_so compiler_cxx linker_exe linker_so2.91.57msvcrtz,Consider upgrading to a newer version of gcc)r__init__check_config_h debug_print CONFIG_H_OKwarn get_versions gcc_version ld_versiondllwrap_version compiler_type linker_dllset_executables dll_librariesr#)selfverbosedry_runforcestatusdetails shared_options r"r9zCygwinCCompiler.__init__bstWgu===(**  &&'''+ , , ,  $ $ IIO    NN @$/4+? ++***///.../00 2 2 2 ?i ' '#DOO'DO ?f $ $%MM+M &=)F*A(6)---)I  K K K  y ( (!)zD  II> @ @ @ @ @ "+D   r$c*|dks|dkr> |dd|d|gdS#t$r}t|d}~wwxYw ||j|z|d|gz|zdS#t$r}t|d}~wwxYw)z:Compiles the source by spawning GCC and windres if needed..rc.reswindresz-iz-oN)spawnrr r3)rFobjsrcextcc_argsextra_postargspp_optsmsgs r"_compilezCygwinCCompiler._compiles %<<3&== ( ItS$<=====% ( ( ("3''' ( ( 4+g5dC8HH)*+++++% ( ( ("3''' (s,* AAA &A44 B>B  BNctj| pg} tj|pg}tj|pg}||j|r||jks |jdkr[t j|d}t jt j |\}}t j ||dz}t j |d|zdz}dt j |zdg}|D]}| || t||fd |z|jd kr/| d |g| d |gn| || s| d tj||||||||d| | | | | dS)zLink the objects.Nr,rz.deflibr(z LIBRARY %sEXPORTSz writing %sr-z --output-libz--defz-s)copyextendrE EXECUTABLErCospathdirnamesplitextbasenamejoinappendexecuterrlink)rF target_descobjectsoutput_filename output_dir libraries library_dirsruntime_library_dirsexport_symbolsdebug extra_preargsrV build_temp target_langtemp_dirdll_name dll_extensiondef_filelib_filecontentssyms r"rhzCygwinCCompiler.links"  -"5266 Iio2.. )GMr** +,,, ' DO + +t%/G/Gwwqz22H(*(8(8  11)3)3 %X}w||Hh.?@@Hw||Heh.>.EFFHrw//@@@H& % %$$$$ LLh%9%0 2 2 2 )++$$nh%?@@@$$gx%89999 x((( '   & & &4g%y,/ -&  ( ( ( ( (r$c$|d}g}|D]}tjtj|\}}||jddgzvrt d|d|d|rtj|}|dvr?|tj|||z|j z|tj|||j z|S) z#Adds supports for rc and res files.Nr|rNrOzunknown file type 'z ' (from 'z'))rOrN) r`rarcnormcasesrc_extensionsr rdrfre obj_extension)rFsource_filenames strip_dirrl obj_namessrc_namebaserTs r"object_filenamesz CygwinCCompiler.object_filenamessB  J ( K KH(()9)9()C)CDDID#4.%?@@&&ssHHH(&''' /w''..o%%  "',,z.2Sj4;M.M#O#OPPPP  "',,z/3d6H/H#J#JKKKKr$rrr) NNNNNrNNNN)rr|)__name__ __module__ __qualname____doc__rBrstatic_lib_extensionshared_lib_extensionstatic_lib_formatshared_lib_format exe_extensionr9rYrhrr$r"r&r&WsMM!!M9-9-9-9-v ( ( (FJEI9=?CJ(J(J(J(\r$r&ceZdZdZdZddZdS)Mingw32CCompilerz@ Handles the Mingw32 port of the GNU C compiler to Windows. mingw32rc <t|||||jdkrd}nd}|jdkrd}nd}t rt d|dd d d |jd |d | g|_t|_dS)Nr.r/r0r7z--entry _DllMain@12r|z1Cygwin gcc cannot be used with --compiler=mingw32z gcc -O -Wallzgcc -mdll -O -Wallz g++ -O -Wallr, r1) r&r9r@r? is_cygwingccr rDrCrEr#)rFrGrHrIrL entry_points r"r9zMingw32CCompiler.__init__s  $%@@@ ?f $ $%MM+M  y ( (/KKK >> E CEE E n)=*8(-+/???MMM+6;(8  9 9 9'[[r$Nr)rrrrrBr9rr$r"rrs7M&)&)&)&)&)&)r$rokznot ok uncertaincddlm}dtjvr tdfS|} t |} d|vr td|zf|Std|zf|S#|wxYw#t$r}td|d |j fcYd }~Sd }~wwxYw) awCheck if the current Python installation appears amenable to building extensions with GCC. Returns a tuple (status, details), where 'status' is one of the following constants: - CONFIG_H_OK: all is well, go ahead and compile - CONFIG_H_NOTOK: doesn't look good - CONFIG_H_UNCERTAIN: not sure -- unable to read pyconfig.h 'details' is a human-readable string explaining the situation. Note there are two ways to conclude "OK": either 'sys.version' contains the string "GCC" (implying that this Python was built with GCC), or the installed "pyconfig.h" contains the string "__GNUC__". r) sysconfigGCCzsys.version mentions 'GCC'__GNUC__z'%s' mentions '__GNUC__'z '%s' does not mention '__GNUC__'zcouldn't read 'z': N) distutilsrrrr<get_config_h_filenameopenreadcloseCONFIG_H_NOTOKOSErrorCONFIG_H_UNCERTAINstrerror)rfnconfig_hexcs r"r:r:Fs *$#####  888  ( ( * *B ?88 X]]__,,"$>$CC NN    &'IB'NN NN    HNN     ???"",.BB =? ? ? ? ? ? ??sAB2!B$B29 BB2B//B22 C<CCCs(\d+\.\d+(\.\d+)*)c|d}t|dSt|dtj} |}|n#|wxYwt|}|dSt| d S)zFind the version of an executable by running `cmd` in the shell. If the command is not found, or the output does not match `RE_VERSION`, returns None. rNT)shellstdout) splitr rrrrr RE_VERSIONsearchr groupdecode)cmd executableout out_stringresults r"_find_exe_versionrss QJz""*t 4 - - - 4CXXZZ     z * *F ~t  Q..00 1 11s A22Bc<gd}td|DS)zg Try to find out the versions of gcc, ld and dllwrap. If not possible it returns None for it. )zgcc -dumpversionzld -vzdllwrap --versionc,g|]}t|Sr)r).0rs r" z get_versions..s!===S#C((===r$)tuple)commandss r"r>r>s- BAAH ==H=== > >>r$crtddg}|dS)z>Try to determine if the gcc that would be used is from cygwin.r,z -dumpmachinescygwin)rstripendswith)rs r"rrs4un566J      & &y 1 11r$)"rr`rr] subprocessrrrredistutils.unixccompilerrdistutils.file_utilrdistutils.errorsrr r r distutils.versionr distutils.spawnr r#r&rr<rrr:compilerrr>rrr$r"rs^ 0000000000 111111******((((((((((((******++++++JJJ4wwwwwmwwwt+)+)+)+)+)+)+)+)b  )?)?)?VRZ. / / 222*???22222r$PK!R(__pycache__/config.cpython-311.opt-1.pycnu[ 0iWRdZddlZddlmZddlZddlmZdZGddeZdS)zdistutils.pypirc Provides the PyPIRCCommand class, the base class for the command classes that uses .pypirc in the distutils.command package. N)RawConfigParser)CommandzE[distutils] index-servers = pypi [pypi] username:%s password:%s c`eZdZdZdZdZdZdZdddezfdgZd gZ d Z d Z d Z d Z dZdZdS) PyPIRCCommandz;Base command that knows how to handle the .pypirc file zhttps://upload.pypi.org/legacy/pypiNz repository=rzurl of repository [default: %s]) show-responseNz&display full response text from serverr c|tjtjddS)zReturns rc file path.~z.pypirc)ospathjoin expanduserselfs 7/opt/alt/python311/lib64/python3.11/distutils/config.py _get_rc_filezPyPIRCCommand._get_rc_file's(w||BG..s33Y???c|}tjtj|tjtjzdd5}|t||fzddddS#1swxYwYdS)zCreates a default .pypirc file.iwN)rr fdopenopenO_CREATO_WRONLYwriteDEFAULT_PYPIRC)rusernamepasswordrcfs r _store_pypirczPyPIRCCommand._store_pypirc+s     Yrwr2: #;UCCS I I ;Q GGNh%99 : : : ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;s BB Bc|}tj|r|d|z|jp|j}t}||| }d|vr| dd}d| dD}|gkr d|vrdg}niS|D]}d|i}| |d|d<d |jfd |j fd fD]:\} } | || r| || || <5| || <;|dkr||jdfvr|j|d <|cS|d|ks |d |kr|cSnod |vrkd }| |d r| |d }n|j}| |d| |d |||j dSiS)zReads the .pypirc file.zUsing PyPI login from %s distutilsz index-serverscfg|].}|dk|/S))strip).0servers r z.PyPIRCCommand._read_pypirc..>s<555v%||~~33#LLNN333r rr(r repositoryrealm)rNz server-loginr)rrr+r(r,)rr r existsannouncer+DEFAULT_REPOSITORYrreadsectionsgetsplit DEFAULT_REALM has_option) rrr+configr1 index_servers_serversr(currentkeydefaults r _read_pypirczPyPIRCCommand._read_pypirc1s     7>>"  9 5 MM4r9 : : :CD,CJ$&&F KKOOO((Hh&& & ; H H 55)//55555r>>))$*8 " &''F'0G*0**VZ*H*HGJ'+7*.*A*C*143E)F);)=33 W",,VS993+1::fc+B+BGCLL+2GCLL &(("t'>&GGG040G -&)Z77 -;;& ? ? ? JJJ                )).,GG ##L11!488GLL}}%%h///s?AAc0d|_d|_d|_dS)zInitialize options.Nr)r+r, show_responsers rinitialize_optionsz PyPIRCCommand.initialize_optionszs rcV|j |j|_|j|j|_dSdS)zFinalizes options.N)r+r/r,r4rs rfinalize_optionszPyPIRCCommand.finalize_optionss2 ? ""5DO : +DJJJ  r)__name__ __module__ __qualname____doc__r/r4r+r, user_optionsboolean_optionsrr!r<rMrPrRrrrrs:MJ E  *    3 4L''O@@@;;; >>>@000 ,,,,,rr) rVr configparserrrB distutils.cmdrrrrYrrr\s  ((((((!!!!!!o,o,o,o,o,Go,o,o,o,o,rPK!!55,__pycache__/versionpredicate.cpython-311.pycnu[ 0i dZddlZddlZddlZejdejZejdZejdZ dZ ej ej ej ejejejdZGdd Zdad ZdS) zBModule for parsing and testing package version predicate strings. Nz'(?i)^\s*([a-z_]\w*(?:\.[a-z_]\w*)*)(.*)z^\s*\((.*)\)\s*$z%^\s*(<=|>=|<|>|!=|==)\s*([^\s,]+)\s*$ct|}|std|z|\}}|tj|fS)zVParse a single version comparison. Return (comparison string, StrictVersion) z"bad package restriction syntax: %r)re_splitComparisonmatch ValueErrorgroups distutilsversion StrictVersion)predrescompverStrs A/opt/alt/python311/lib64/python3.11/distutils/versionpredicate.pysplitUprsa  " "4 ( (C F=DEEE::<z>=z!=c$eZdZdZdZdZdZdS)VersionPredicateaParse and test package version predicates. >>> v = VersionPredicate('pyepat.abc (>1.0, <3333.3a1, !=1555.1b3)') The `name` attribute provides the full dotted name that is given:: >>> v.name 'pyepat.abc' The str() of a `VersionPredicate` provides a normalized human-readable version of the expression:: >>> print(v) pyepat.abc (> 1.0, < 3333.3a1, != 1555.1b3) The `satisfied_by()` method can be used to determine with a given version number is included in the set described by the version restrictions:: >>> v.satisfied_by('1.1') True >>> v.satisfied_by('1.4') True >>> v.satisfied_by('1.0') False >>> v.satisfied_by('4444.4') False >>> v.satisfied_by('1555.1b3') False `VersionPredicate` is flexible in accepting extra whitespace:: >>> v = VersionPredicate(' pat( == 0.1 ) ') >>> v.name 'pat' >>> v.satisfied_by('0.1') True >>> v.satisfied_by('0.2') False If any version numbers passed in do not conform to the restrictions of `StrictVersion`, a `ValueError` is raised:: >>> v = VersionPredicate('p1.p2.p3.p4(>=1.0, <=1.3a1, !=1.2zb3)') Traceback (most recent call last): ... ValueError: invalid version number '1.2zb3' It the module or package name given does not conform to what's allowed as a legal module or package name, `ValueError` is raised:: >>> v = VersionPredicate('foo-bar') Traceback (most recent call last): ... ValueError: expected parenthesized list: '-bar' >>> v = VersionPredicate('foo bar (12.21)') Traceback (most recent call last): ... ValueError: expected parenthesized list: 'bar (12.21)' c,|}|stdt|}|std|z|\|_}|}|rt |}|std|z|d}d|dD|_|jstd|zdSg|_dS) z*Parse a version predicate string. zempty package restrictionzbad package name in %rzexpected parenthesized list: %rrc,g|]}t|S)r).0aPreds r z-VersionPredicate.__init__..tsDDDEDDDr,zempty parenthesized list in %rN) striprre_validPackagerrnamere_parensplitr )selfversionPredicateStrrparenstrs r__init__zVersionPredicate.__init__`s%27799" :899 9%%&9:: M58KKLL L <<>> 5   NN5))E L !BU!JKKK,,..#CDDSYYs^^DDDDI9 8 !A#6"7888 8 8DIIIrc|jr4d|jD}|jdzd|zdzS|jS)Nc>g|]\}}|dzt|zS) )r%)rcondvers rrz,VersionPredicate.__str__..}s+DDDYT34#:C(DDDrz (z, ))r rjoin)r"seqs r__str__zVersionPredicate.__str__{sJ 9 DD$)DDDC9t#diinn4s: :9 rcR|jD]\}}t|||sdSdS)zTrue if version is compatible with all the predicates in self. The parameter version must be acceptable to the StrictVersion constructor. It may be either a string or StrictVersion. FT)r compmap)r"r r*r+s r satisfied_byzVersionPredicate.satisfied_bys@   ID#4=#.. uu trN)__name__ __module__ __qualname____doc__r&r/r2rrrrrsL>>@6rrcpttjdtja|}t|}|st d|z|dpd}|rtj |}|d|fS)a9Return the name and optional version number of a provision. The version number, if given, will be returned as a `StrictVersion` instance, otherwise it will be `None`. >>> split_provision('mypkg') ('mypkg', None) >>> split_provision(' mypkg( 1.2 ) ') ('mypkg', StrictVersion ('1.2')) Nz=([a-zA-Z_]\w*(?:\.[a-zA-Z_]\w*)*)(?:\s*\(\s*([^)\s]+)\s*\))?$z"illegal provides specification: %r) _provision_rxrecompileASCIIrrrgrouprr r )valuemr+s rsplit_provisionrAs L H  KKMMEE""A G=EFFF ''!** C 3--c22 771::s?r)r6r;distutils.versionroperatorr<r=rr rrltleeqgtgener1rr:rArrrrJs "*GH 2:) * *RZ HII ; ; ; 8;hk 8;hk C Ckkkkkkkk\ rPK!W%\1\1/__pycache__/unixccompiler.cpython-311.opt-2.pycnu[ Pi; ddlZddlZddlZddlmZddlmZddlmZm Z m Z ddl m Z m Z mZmZddlmZejdkrddlZGdd eZdS) N) sysconfig)newer) CCompilergen_preprocess_optionsgen_lib_options)DistutilsExecError CompileErrorLibError LinkError)logdarwinc eZdZdZddgdgdgddgdgddgddZejddd krd ged <gd Zd Zd Z dZ dZ dZ dxZ xZZeZejdkrdZfdZ ddZdZ d dZ d!dZdZdZdZdZd"dZxZS)# UnixCCompilerunixNccz-sharedarz-cr) preprocessorcompiler compiler_so compiler_cxx linker_so linker_exearchiverranlibr r)z.cz.Cz.ccz.cxxz.cppz.mz.oz.az.soz.dylibz.tbdzlib%s%scygwinz.exec t|||\}}}tjd}|r||vr|||||fS)NLIBDIR)super _fix_lib_argsrget_config_varremove)self libraries library_dirsruntime_library_dirslibdir __class__s >/opt/alt/python311/lib64/python3.11/distutils/unixccompiler.pyr zUnixCCompiler._fix_lib_argsUst58=8M8M |%99;9;5 >#g-  0 NND+. / / /  ('GBQBK  + NN> * * *v : (,fk0J0J, : BGOOK88999 ( 7#####% ( ( ("3''' ( -,sC++ D 5DD c|j}tjdkrtj|||z} |||z|d|gz|zdS#t $r}t|d}~wwxYw)Nr r,)rsysplatform _osx_supportcompiler_fixupr5rr ) r#objsrcextcc_argsr;r>rr@s r)_compilezUnixCCompiler._compilexs& <8 # #&5k4;n4LNNK $ JJ{W,T3/??%& ' ' ' ' '! $ $ $s## # $s!A A2A--A2rc|||\}}|||}|||r|tj|||j|gz|z|j z|j rB ||j |gzdS#t$r}t|d}~wwxYwdStjd|dS)N) output_dirskipping %s (up-to-date))_fix_object_argslibrary_filename _need_linkr1r2r3r4r5robjectsrrr r debug)r#rRoutput_libnamerMrS target_langoutput_filenamer@s r)create_static_libzUnixCCompiler.create_static_libs,"33GZHH  ! !.Z ! H H  ??7O 4 4 C KK88 9 9 9 JJt}'()!%. / / /{ ((JJt{o->>?????)((("3--'( ( ( I0/ B B B B Bs*C C(C##C(c|||\}}||||}|\}}}t||||}t|tt dfst d| tj ||}| ||r||j z|zd|gz}| rdg|dd<| r| |dd<| r| | | tj| |tjkr|jdd}n|jdd}| dkr|jrd}tj|ddkrd}d||vr|dz }d||vtj||d krd}nd}|j||||z<t*jd krt/j||}|||zdS#t4$r}t7|d}~wwxYwt9jd |dS) Nz%'output_dir' must be a string or Noner,z-grzc++env= ld_so_aixr rN)rOr r isinstancestrtype TypeErrorr2r3joinrQrRr.r1r4r EXECUTABLErrrbasenamerCrDrErFr5rr r rS)r# target_descrRrVrMr$r%r&export_symbolsrSr:r; build_temprUr<lib_optsld_argslinkerioffsetr@s r)linkzUnixCCompiler.links #33GZHH'' <(<>> 8B5 z(UnixCCompiler._is_gcc..s(MMT4=(MMMMMMr*)gcczg++clang)any)r#rws `r)_is_gcczUnixCCompiler._is_gccs'MMMM5LMMMMMMr*ctjtjd}t jdddkrd|zSt jdddkrd|zSt jddd kr#||rd d|zgSd d|zgS||r"tjd d krd|zSd|zSd|zS)NCCrr rnfreebsdz -Wl,-rpath=zhp-uxz-Wl,+sz+sGNULDyesz-Wl,--enable-new-dtags,-Rz-Wl,-Rz-R)r2r3rcrr!rCrDr|)r#rprs r)runtime_library_dir_optionz(UnixCCompiler.runtime_library_dir_options7##I$) cz!r*c d|zS)Nz-lro)r#libs r)library_optionzUnixCCompiler.library_optionrrr*c||d}||d}||d}||d}tjdkrgtjd}t jd|} | 'tjtjd } n| d } |D]} tj | |} tj | |} tj | |}tj | |}tjdkr| d s*| d r| d stj | | d d|} tj | | d d|} tj | | d d|}tj | | d d|}tj | r| cStj |r|cStj | r| cStj |r|cSdS)Nshared)lib_typedylib xcode_stubstaticr CFLAGSz-isysroot\s*(\S+)r~rZz/System/z/usr/z /usr/local/)rPrCrDrr!researchrE_default_sysrootgroupr2r3ra startswithexists)r#dirsrrSshared_fdylib_f xcode_stub_fstatic_fcflagsmsysrootrprrrrs r)find_library_filezUnixCCompiler.find_library_files~((x(@@''g'>>,,S<,HH ((x(@@ <8 # #&-h77F .77Ay&7 8PQU8V8VWW''!**  CW\\#x00FGLLg..EW\\#x00Fc<88J|x''z**(w''(03}0M0M(gs122wAA Wc!""gw??gs122wAAW\\'3qrr7LII w~~e$$   ++ !!!!''  ''   tr*)NNNNN)NrN) NNNNNrNNNN)r)__name__ __module__ __qualname__ compiler_type executablesrCrDsrc_extensions obj_extensionstatic_lib_extensionshared_lib_extensiondylib_lib_extensionxcode_stub_lib_extensionstatic_lib_formatshared_lib_formatdylib_lib_formatxcode_stub_lib_format exe_extensionr rArKrWrlrqr|rrr __classcell__)r(s@r)rr-sM%)%)F%)F%)F%)9$5%)F%)5M$(K |BQB8##!) H:99NM "%?HHH),<, |x =====;?IM((((4 $ $ $AECCCC6:>599=?C <C<C<C<CDNNN("("("T????????r*r)r2rCr distutilsrdistutils.dep_utilrdistutils.ccompilerrrrdistutils.errorsrr r r r rDrError*r)rs+ $$$$$$8888888888;;;;;;;;;;;;<8$eeeeeIeeeeer*PK!b!4command/__pycache__/bdist_dumb.cpython-311.opt-2.pycnu[ 0i1t ddlZddlmZddlmZddlmZmZddlTddl m Z ddl m Z Gdd eZ dS) N)Command) get_platform) remove_treeensure_relative)*)get_python_version)logc heZdZdZddddezfdddd d d d g Zgd ZdddZdZdZ dZ dS) bdist_dumbz"create a "dumb" built distribution)z bdist-dir=dz1temporary directory for creating the distributionz plat-name=pz;platform name to embed in generated filenames (default: %s))zformat=fz>archive format to create (tar, gztar, bztar, xztar, ztar, zip)) keep-tempkzPkeep the pseudo-installation tree around after creating the distribution archive)z dist-dir=r z-directory to put final built distributions in) skip-buildNz2skip rebuilding everything (for testing/debugging))relativeNz7build the archive using relative paths (default: false))zowner=uz@Owner name used when creating a tar file [default: current user])zgroup=gzAGroup name used when creating a tar file [default: current group])rrrgztarzip)posixntcd|_d|_d|_d|_d|_d|_d|_d|_d|_dS)Nr) bdist_dir plat_nameformat keep_tempdist_dir skip_buildrownergroup)selfs C/opt/alt/python311/lib64/python3.11/distutils/command/bdist_dumb.pyinitialize_optionszbdist_dumb.initialize_options2sE     c`|j?|dj}tj|d|_|jH |jtj|_n*#t$rtdtjzwxYw| dddddS)Nbdistdumbz@don't know how to create dumb built distributions on platform %s)rr)rr)rr) rget_finalized_command bdist_baseospathjoinrdefault_formatnameKeyErrorDistutilsPlatformErrorset_undefined_options)r"r*s r#finalize_optionszbdist_dumb.finalize_options=s > !33G<<GJW\\*f==DN ;  3"1"':  3 3 3,(*,'2333 3 ""7#;#=#? A A A A As A,,'Bc|js|d|dd}|j|_|j|_d|_t jd|j|d|j d|j }tj |j|}|js|j}n|jrJ|j|jkr:t'dt)|jd t)|jd tj |jt+|j}|||j||j|j }|jrt5}nd }|jjd ||f|jst=|j|jdSdS)Nbuildinstall)reinit_subcommandsrzinstalling to %s.zLcan't make a dumb built distribution where base and platbase are different (z, ))root_dirr r!anyr )dry_run) r run_commandreinitialize_commandrrootwarn_dirr info distribution get_fullnamerr+r,r-rrhas_ext_modules install_baseinstall_platbaser1reprr make_archiverr r!r dist_filesappendrrr=)r"r6archive_basenamepseudoinstall_root archive_rootfilename pyversions r#runzbdist_dumb.runOs% &   W % % %++I!+LL~ !_ #T^444 ###'+&7&D&D&F&F&F&F&*nn6 W\\$-9IJJ} J>LL!1133 J%)AAA,,w34444w78888:;;; "w||DN#273G#H#H J J $$%7%)[<+/:TZ%II   , , . . *,,III $++\9-5-7 8 8 8~ >  = = = = = = > >r%N) __name__ __module__ __qualname__ descriptionr user_optionsboolean_optionsr.r$r3rQr%r#r r s8KJ!3%'3|~~67#:FK)12+L4>==O '"%%N   AAA$,>,>,>,>,>r%r )r+distutils.corerdistutils.utilrdistutils.dir_utilrrdistutils.errorsdistutils.sysconfigr distutilsr r rXr%r#r_s  """"""'''''';;;;;;;;222222l>l>l>l>l>l>l>l>l>l>r%PK!%=((0command/__pycache__/upload.cpython-311.opt-1.pycnu[ 0idZddlZddlZddlZddlmZddlmZddlm Z m Z ddl m Z ddl mZmZddlmZdd lmZdd lmZeed deed deed ddZGddeZdS)zm distutils.command.upload Implements the Distutils 'upload' subcommand (upload package to a package index). N)standard_b64encode) HTTPError)urlopenRequest)urlparse)DistutilsErrorDistutilsOptionError) PyPIRCCommand)spawn)logmd5sha256blake2b) md5_digest sha256_digestblake2_256_digestcXeZdZdZejddgzZejdgzZdZdZdZ dZ d S) uploadzupload binary package to PyPI)signszsign files to upload using gpg)z identity=izGPG identity used to sign filesrcttj|d|_d|_d|_d|_d|_dS)NrF)r initialize_optionsusernamepassword show_responseridentity)selfs ?/opt/alt/python311/lib64/python3.11/distutils/command/upload.pyrzupload.initialize_options*s;(...    cTtj||jr|jst d|}|ikr4|d|_|d|_|d|_|d|_ |js|j jr|j j|_dSdSdS)Nz.Must use --sign for --identity to have meaningrr repositoryrealm) r finalize_optionsrrr _read_pypircrrr#r$ distribution)rconfigs r r%zupload.finalize_options2s&t,,, =  &@ ""$$ R<<":.DM":.DM$\2DODJ} 7!2!; 7 -6DMMM 7 7 7 7r!c|jjsd}t||jjD]\}}}||||dS)NzHMust create and upload files in one command (e.g. setup.py sdist upload))r' dist_filesr upload_file)rmsgcommand pyversionfilenames r runz upload.runDsf + ,2C&s++ +,0,=,H ; ; (GY   Wi : : : : ; ;r!c t|j\}}}}}} |s|s| rtd|jz|dvrtd|z|jr1ddd|g} |jrd|jg| dd<t | |j t|d } | } | n#| wxYw|j j } id d d dd| d| dtj|| fd|d|ddd| d| d| d| d| d| d| d| d| | | | | d}d |d!<t<D]9\}}| ||  ||<*#tB$rY6wxYw|jrdt|d"zd 5} tj|d"z| f|d#<dddn #1swxYwY|j"d$z|j#z$d%}d&tK|&d%z}d'}d(|$d%z}|d)z}tOj(}|D]\}}d*|z}tS|tTs|g}|D]}tW|tXur|d+|d,zz }|d-}n"t[|$d.}|.||.|$d.|.d/|.||.||/}d0|d1|j}|0|tbj2d2|zt[tg||d3}ti|j||4} tk|}|6}|j7}n`#tp$r} | j9}| j7}Yd} ~ nCd} ~ wtt$r3} |0t[| tbj;d} ~ wwxYw|d5kr~|0d6|d7|tbj2|j<rO|=|}!d8>d9|!d9f}|0|tbj2dSdSd:|d7|}|0|tbj;t|);NzIncompatible url %s)httphttpszunsupported schema gpgz --detach-signz-az --local-user)dry_runrbz:action file_uploadprotocol_version1nameversioncontentfiletyper.metadata_versionz1.0summary home_pageauthor author_emaillicense descriptionkeywordsplatform classifiers) download_urlprovidesrequires obsoletesrcommentz.asc gpg_signature:asciizBasic z3--------------GHSKFJDLGDS7543FJKLFHRE75642756743254s --s-- z+ Content-Disposition: form-data; name="%s"z; filename="%s"rzutf-8s z Submitting z to z multipart/form-data; boundary=%s)z Content-typezContent-length Authorization)dataheaderszServer response (z):  zK---------------------------------------------------------------------------zUpload failed ()@rr#AssertionErrorrrr r6openreadcloser'metadataget_name get_versionospathbasenameget_descriptionget_url get_contactget_contact_email get_licenceget_long_description get_keywords get_platformsget_classifiersget_download_url get_provides get_requires get_obsoletes_FILE_CONTENT_DIGESTSitems hexdigest ValueErrorrrencoderdecodeioBytesIO isinstancelisttypetuplestrwritegetvalueannouncer INFOlenrrgetcoder,rcodeOSErrorERRORr_read_pypi_responsejoinr)"rr-r.r/schemanetlocurlparamsquery fragmentsgpg_argsfr=metarS digest_name digest_cons user_passauthboundary sep_boundary end_boundarybodykeyvaluetitler,rTrequestresultstatusreasonetexts" r r+zupload.upload_fileLsF T_ % % 6VUI  JU Ji J !6!HII I * * * !6!?@@ @ 9 (h?H} @!/ ?1 (, ( ( ( ( $   ffhhG GGIIIIAGGIIII ) }  DMMOO  t'')) ((227;    t++--!" #$ d&&((%& D2244'( t'')))* 44466+, ))++-. **,,/0 4//1112!1133))++))++++--;@Y)>(C(C(E(E   $K" $/K$8$8$B$B$D$D[!!     9 3h'.. 3!)+)9)9()C)Cf)L)*)3_% 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 ]S(4=8@@II ,Y77>>wGGGI 8??7#;#;; #i/ z||**,, " "JCCcIEeT**  " ";;%''.q99E!!HEEJJ--g66E <((( 5<<00111 ;''' 5!!!! " <   }}'/xxA c38$$$?I!#d))nn!   $/")+++ W%%F^^%%FZFF   VFUFFFFFF    MM#a&&#) , , ,   S== MMMG( $ $ $! -//77ii4 :;; c38,,,,, - - /5ffff=C MM#sy ) ) ) %% %sTCC6 J J$#J$:LL L *T<< VU V&.VVN) __name__ __module__ __qualname__rEr user_optionsboolean_optionsrr%r0r+r!r rrs1K - +=1  L $3vh>O777$;;;K&K&K&K&K&r!r)__doc__r^rthashlibbase64r urllib.errorrurllib.requestrr urllib.parserdistutils.errorsrr distutils.corer distutils.spawnr distutilsr getattrrnrrr!r rsH %%%%%%""""""++++++++!!!!!!AAAAAAAA((((((!!!!!! ''5$//WWh55 )T::y&y&y&y&y&]y&y&y&y&y&r!PK!+ qbvbv-command/__pycache__/build_ext.cpython-311.pycnu[ 0i{dZddlZddlZddlZddlZddlmZddlTddlm Z m Z ddlm Z ddl m Z ddlmZdd lmZdd lmZdd lmZejd Zd ZGddeZdS)zdistutils.command.build_ext Implements the Distutils 'build_ext' command, for building extension modules (currently limited to C extensions, should accommodate C++ extensions ASAP).N)Command)*)customize_compilerget_python_version)get_config_h_filename) newer_group) Extension) get_platform)log) USER_BASEz3^[a-zA-Z_][a-zA-Z_0-9]*(\.[a-zA-Z_][a-zA-Z_0-9]*)*$c&ddlm}|dS)Nrshow_compilers)distutils.ccompilerrrs B/opt/alt/python311/lib64/python3.11/distutils/command/build_ext.pyrrs(222222Nc eZdZdZdejzZdddddezfdd d d ezfd d ddddezfddddddddddgZgdZ ddde fgZ d Z d!Z d"Zd#Zd$Zd%Zd&Zd'Zd(Zejd)Zd*Zd+Zd,Zd-Zd.Zd/Zd0Zd1ZdS)2 build_extz8build C/C++ extensions (compile/link to build directory)z (separated by '%s'))z build-lib=bz(directory for compiled extension modules)z build-temp=tz1directory for temporary files (build by-products)z plat-name=pz>platform name to cross-compile for, if supported (default: %s))inplaceiziignore build-lib and put compiled extensions into the source directory alongside your pure Python modulesz include-dirs=Iz.list of directories to search for header files)zdefine=DzC preprocessor macros to define)zundef=Uz!C preprocessor macros to undefine)z libraries=lz!external C libraries to link withz library-dirs=Lz.directories to search for external C libraries)zrpath=Rz7directories to search for shared C libraries at runtime)z link-objects=Oz2extra explicit link objects to include in the link)debuggz'compile/link with debugging information)forcefz2forcibly build everything (ignore file timestamps))z compiler=czspecify the compiler type)z parallel=jznumber of parallel build jobs)swig-cppNz)make SWIG create C++ files (default is C))z swig-opts=Nz!list of SWIG command line options)zswig=Nzpath to the SWIG executable)userNz#add user include, library and rpath)rr!r#r'r(z help-compilerNzlist available compilersc,d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_ d|_ d|_ d|_ d|_ d|_d|_d|_d|_d|_d|_d|_dS)Nr) extensions build_lib plat_name build_temprpackage include_dirsdefineundef libraries library_dirsrpath link_objectsr!r#compilerswigswig_cpp swig_optsr(parallelselfs rinitialize_optionszbuild_ext.initialize_optionsjs               rc ddlm}|ddddddd d |j|jj|_|jj|_|}|d }|j |jj pg|_ t|j tr)|j tj|_ tjtjkrB|j tjtjd |j | tjj||kr<|j | tjj|d|d|jg|_|jg|_nCt|jtr)|j tj|_|jg|_nCt|jtr)|j tj|_tjdkr|jtjtjdtjtjkrB|jtjtjd|jr+tj|jd|_n*tj|jd|_|j tjt?tAtdd}|r|j||j!dkrd}n|j!dd}tjtjd}|r tj||}|j|tj"dddkrtj#$tjtjdrT|jtjtjddtKzdn|jd|&drO|j's.|j|&d n|jd|j(r+|j( d!}d"|D|_(|j)r|j) d!|_)|j*g|_*n|j* d#|_*|j+rtjtXd }tjtXd} tj-|r|j |tj-| r4|j| |j| t|j.tr9 t_|j.|_.dS#t`$rtcd$wxYwdS)%Nr) sysconfigbuild)r+r+)r-r-)r6r6)r!r!)r#r#)r:r:)r,r,) plat_specificincluder2r5ntlibsDebugRelease_homewin32PCbuildcygwinbinlibpythonconfig.Py_ENABLE_SHAREDLIBDIR,cg|]}|dfS)1).0symbols r z.build_ext.finalize_options..s???VFC=???r zparallel should be an integer)2 distutilsr?set_undefined_optionsr. distribution ext_package ext_modulesr*get_python_incr/ isinstancestrsplitospathsepsys exec_prefixbase_exec_prefixappendpathjoinextendensure_string_listr2r3r4nameprefixr!r-dirnamergetattrr,platform executable startswithrget_config_var python_buildr0r1r9r(r isdirr:int ValueErrorDistutilsOptionError) r<r? py_includeplat_py_include _sys_homesuffixnew_libdefines user_includeuser_libs rfinalize_optionszbuild_ext.finalize_optionss`'''''' ""7#=#?#;#5#5#;#= % % % < ,8DL+7--// #222CC   $ $ 1 > D"D  d' - - D $ 1 7 7 C CD  ?c2 2 2   $ $RW\\#/9%M%M N N N   !1!1"'/!B!BCCC j ( (   $ $%%bgo66 8 8 8  ,,, /// > !DN   $ "D   )3 / / D $ 1 7 7 C CD  : DJJ  C ( ( 6))"*55DJ 7d??   $ $RW\\#/6%J%J K K K#sz11!((c6JF)S)STTTz K"$',,t"H"H"$',,t "J"J   $ $RW__5J5L5L%M%M N N NWd33I 4!((333~(( +gll3?I>>G 8',,w77   $ $W - - - < x ' '~((cou)M)MNN .!((cj%6>ASAUAU6U6>*@*@AAAA !((---  $ $%7 8 8 .) .!(()A)A()K)KLLLL!((--- ; @k'',,G??w???DK : /))#..DJ > !DNN!^11#66DN 9 ,7<< 9==Lw||Iu55Hw}}\** 7!((666w}}X&& ,!((222 !!(+++ dmS ) ) L L #DM 2 2  L L L*+JKKK L L Ls ;]]0cvddlm}|jsdS|jrb|d}|j|pg|j |j ||j |j |j|j|_ t!|j t"jdkr6|jt)kr|j |j|j|j |j|j(|jD] \}}|j ||!|j$|jD]}|j ||j|j |j|j |j |j |j|j |j|j |j !|j |"dS)Nr) new_compiler build_clib)r6verbosedry_runr#rD)#rrr*r_has_c_librariesget_finalized_commandr2rnget_library_namesr3rkrr6rrr#rrfrpr,r initializer/set_include_dirsr0 define_macror1undefine_macro set_librariesset_library_dirsr4set_runtime_library_dirsr5set_link_objectsbuild_extensions)r<rrrpvaluemacros rrunz build_ext.runs2444444  F   , , . . <33LAAJ N ! !*">">"@"@"FB G G G   $ $Z%: ; ; ;% dm-1\-1\+/:777  4=))) 7d??t~?? M $ $T^ 4 4 4   ( M * *4+< = = = ; "!% 8 8 u **47777 : ! 4 4 ,,U3333 > % M ' ' 7 7 7   ( M * *4+< = = = : ! M 2 24: > > >   ( M * *4+< = = = rct|tstdt|D] \}}t|trt|t rt |dkrtd|\}}tjd|t|trt |stdt|tstdt ||d}dD]*}| |}|t|||+| d |_d |vrtjd | d }|rg|_g|_|D]} t| t rt | dvstdt | dkr!|j| dkt | dkr|j| |||< d S)aEnsure that the list of extensions (presumably provided as a command option 'extensions') is valid, i.e. it is a list of Extension objects. We also support the old-style list of 2-tuples, where the tuples are (ext_name, build_info), which are converted to Extension instances here. Raise DistutilsSetupError if the structure is invalid anywhere; just returns otherwise. z:'ext_modules' option must be a list of Extension instanceszMeach element of 'ext_modules' option must be an Extension instance or 2-tuplezvold-style (ext_name, build_info) tuple found in ext_modules for extension '%s' -- please convert to Extension instancezRfirst element of each tuple in 'ext_modules' must be the extension name (a string)zOsecond element of each tuple in 'ext_modules' must be a dictionary (build info)sources)r/r3r2 extra_objectsextra_compile_argsextra_link_argsNr4def_filez9'def_file' element of build info dict no longer supportedmacros)rArz9'macros' element of build info dict must be 1- or 2-tuplerAr)rclistDistutilsSetupError enumerater tuplelenr warnrdextension_name_rematchdictgetsetattrruntime_library_dirs define_macros undef_macrosrk) r<r*rextext_name build_infokeyvalrrs rcheck_extensions_listzbuild_ext.check_extensions_listVs*d++ P%NPP P ++> > FAs#y)) c5)) 8SXX]])7888$' Hj H?@H J J Jx-- @%++H55 @)?@@@j$// <);<<< Hj&;<'>C $Z''/000  ^^H--F 8$&!#% #88E&ue447Uv9M9M167775zzQ(//a9999Uq)00777JqMM}> > rc||jg}|jD]}||j|SN)rr*rnr)r< filenamesrs rget_source_fileszbuild_ext.get_source_filessO ""4?333 ? * *C   S[ ) ) ) )rc||jg}|jD]/}|||j0|Sr)rr*rkget_ext_fullpathrp)r<outputsrs r get_outputszbuild_ext.get_outputss\ ""4?333 ? < .s:333 t';SAA333r) r:rf cpu_countconcurrent.futuresr ImportErrorrr*zip_filter_build_errorsresult)r<workersrfuturesrfutrs` @rrz$build_ext._build_extensions_parallels- =D lnnG  = = = = = = =   GGG  ?  ) ) + + + F  G 4 4 4 !33333"&/333G99 ! !S..s33!!JJLLL!!!!!!!!!!!!!!! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !sC. ==$AC#(C = C# C C#C C##C'*C'c|jD]D}||5||dddn #1swxYwYEdSr)r*rr)r<rs rrz"build_ext._build_extensions_serials? * *C**3// * *$$S))) * * * * * * * * * * * * * * * * *sAA A c#K dVdS#tttf$r3}|js|d|jd|Yd}~dSd}~wwxYw)Nzbuilding extension "z " failed: )CCompilerErrorDistutilsError CompileErroroptionalrrp)r<res rrzbuild_ext._filter_build_errorss % EEEEE = % % %<  IIIxxx$ % % % % % % % % % %s A(AAc |j}|t|ttfst d|jzt |}||j}||jz}|j s-t||dstj d|jdStj d|j|||}|jpg}|jdd}|jD]}||f|j||j||j|j ||j}|dd|_|jr||j|jpg}|jp|j|} |j|||||j|j ||!||j |j|  dS)Nzjin 'ext_modules' option (extension '%s'), 'sources' must be present and must be a list of source filenamesnewerz$skipping '%s' extension (up-to-date)zbuilding '%s' extension) output_dirrr/r!extra_postargsdepends)r2r3rrexport_symbolsr!r- target_lang)"rrcrrrrpsortedrrr#rr r!info swig_sourcesrrrrkr6compiler-r/_built_objectsrrnrlanguagedetect_languagelink_shared_object get_librariesr3rget_export_symbols) r<rrext_pathr extra_argsrr1objectsrs rrzbuild_ext.build_extensions+ ?*WtUm"D"D?%/14:;; ; //((22CK'  :k'8WEE : I>&aaaj   . NN3, - - -(.B <I4=#@#@#I#I (( X((--)!$!9%22377*  ) " " " " "rcg}g}i}|jrtjd|jsd|jvs d|jvrd}nd}|D]{}tj|\}} | dkr<||dz|z|||d||<f||||s|S|jp| } | dg} | |j|jr| d|js|jD]} | | |D];}||} tj d || | | d | |gz<|S) zWalk the list of source files in 'sources', looking for SWIG interface (.i) files. Run SWIG on all that are found, and return a modified 'sources' list with SWIG source files replaced by the generated C (or C++) files. z/--swig-cpp is deprecated - use --swig-opts=-c++z-c++z.cppz.cz.i_wrapz-pythonzswigging %s to %sz-o) r8r rr9rfrlsplitextrkr7 find_swigrnrspawn)r<r extension new_sourcesr swig_targets target_extsourcebaserr7swig_cmdotargets rrzbuild_ext.swig_sources2s     = H HF G G G = Vt~55 i) ) )JJJ + +F'**622KT3d{{""4'>J#>???##F+++'22 V$$""6****  y,DNN,,)$''' = $ OOF # # #~ #( # #""""" : :F!&)F H(&& 9 9 9 JJx4"88 9 9 9 9rctjdkrdStjdkrMdD]H}tjd|zd}tj|r|cSIdSt dtjz)zReturn the name of the SWIG executable. On Unix, this is just "swig" -- it should be in the PATH. Tries a bit harder on Windows. posixr7rD)z1.3z1.2z1.1z c:\swig%szswig.exez>I don't know how to find (much less run) SWIG on platform '%s')rfrprlrmisfileDistutilsPlatformError)r<versfns rrzbuild_ext.find_swighs 7g  6 W__. " "W\\,"5zBB7>>"%%III"z(%')w/00 0rc*||}|d}||d}|jsDt jj|dd|gz}tj|j|Sd|dd}|d}tj | |}tj||S)zReturns the path of the filename for a given extension. The file is located in `build_lib` or directly in the package (inplace option). rRrNrbuild_py) get_ext_fullnamereget_ext_filenamerrfrlrmr+rabspathget_package_dir)r<rfullnamemodpathfilenamer.r package_dirs rrzbuild_ext.get_ext_fullpaths ((22..%%((55| :w|WSbS\8*%<=H7<<99 9((71R4=))--j99gooh&>&>w&G&GHH w||K222rc.|j|S|jdz|zS)zSReturns the fullname of a given extension name. Adds the `package.` prefixNrR)r.)r<rs rrzbuild_ext.get_ext_fullnames# < O<#%0 0rczddlm}|d}|d}tjj||zS)zConvert the name of an extension (eg. "foo.bar") into the name of the file from which it will be loaded (eg. "foo/bar.so", or "foo\bar.pyd"). rrwrR EXT_SUFFIX)distutils.sysconfigrwrerfrlrm)r<rrwr ext_suffixs rrzbuild_ext.get_ext_filenamesJ 766666>>#&&#^L11 w|X&33rcrd|jddz} |dnO#t$rBd|ddddz}YnwxYwd |z}||jvr|j||jS) aReturn the list of symbols that a shared extension has to export. This either uses 'ext.export_symbols' or, if it's not provided, "PyInit_" + module_name. Only relevant on Windows, where the .pyd file (DLL) must export the module "PyInit_" function. _rRrasciirpunycode-_PyInit)rpreencodeUnicodeEncodeErrorreplacedecoderrk)r<rr initfunc_names rrzbuild_ext.get_export_symbolss sx~~c**2.. Y MM' " " " "! Y Y Y6==44<>)- >*N;77 }9(<'===}r) __name__ __module__ __qualname__ descriptionrfrgsep_byr user_optionsboolean_optionsr help_optionsr=rrrrrrrr contextlibcontextmanagerrrrrrrrrrrXrrrr!sLK($bj 0F 5 > s '<>> * + 9 # 9F B D , . . # 9F B D D ? 4 ? & * 6 . ( 0O) LVHGGO $ #^ 5 L 0RLRLRLh> > > @L L L \   ,,,!!!(*** %%%J"J"J"X444l00003336111444"""&11111rr)__doc__r8rfrerhdistutils.corerdistutils.errorsrrrrdistutils.dep_utilrdistutils.extensionr distutils.utilr r]r siter rrrrrXrrrBs@  """"""FFFFFFFF555555******))))))''''''BJ;== Q Q Q Q Q Q Q Q Q Q rPK!hs2command/__pycache__/__init__.cpython-311.opt-2.pycnu[ 0i gdZdS))buildbuild_py build_ext build_clib build_scriptscleaninstall install_libinstall_headersinstall_scripts install_datasdistregisterbdist bdist_dumb bdist_rpmcheckuploadN)__all__A/opt/alt/python311/lib64/python3.11/distutils/command/__init__.pyrs    rPK!RII4command/__pycache__/bdist_dumb.cpython-311.opt-1.pycnu[ 0i1vdZddlZddlmZddlmZddlmZmZddl Tddl m Z ddl m Z Gd d eZdS) zdistutils.command.bdist_dumb Implements the Distutils 'bdist_dumb' command (create a "dumb" built distribution -- i.e., just an archive to be unpacked under $prefix or $exec_prefix).N)Command) get_platform) remove_treeensure_relative)*)get_python_version)logc heZdZdZddddezfdddd d d d g Zgd ZdddZdZdZ dZ dS) bdist_dumbz"create a "dumb" built distribution)z bdist-dir=dz1temporary directory for creating the distributionz plat-name=pz;platform name to embed in generated filenames (default: %s))zformat=fz>archive format to create (tar, gztar, bztar, xztar, ztar, zip)) keep-tempkzPkeep the pseudo-installation tree around after creating the distribution archive)z dist-dir=r z-directory to put final built distributions in) skip-buildNz2skip rebuilding everything (for testing/debugging))relativeNz7build the archive using relative paths (default: false))zowner=uz@Owner name used when creating a tar file [default: current user])zgroup=gzAGroup name used when creating a tar file [default: current group])rrrgztarzip)posixntcd|_d|_d|_d|_d|_d|_d|_d|_d|_dS)Nr) bdist_dir plat_nameformat keep_tempdist_dir skip_buildrownergroup)selfs C/opt/alt/python311/lib64/python3.11/distutils/command/bdist_dumb.pyinitialize_optionszbdist_dumb.initialize_options2sE     c`|j?|dj}tj|d|_|jH |jtj|_n*#t$rtdtjzwxYw| dddddS)Nbdistdumbz@don't know how to create dumb built distributions on platform %s)rr)rr)rr) rget_finalized_command bdist_baseospathjoinrdefault_formatnameKeyErrorDistutilsPlatformErrorset_undefined_options)r"r*s r#finalize_optionszbdist_dumb.finalize_options=s > !33G<<GJW\\*f==DN ;  3"1"':  3 3 3,(*,'2333 3 ""7#;#=#? A A A A As A,,'Bc|js|d|dd}|j|_|j|_d|_t jd|j|d|j d|j }tj |j|}|js|j}n|jrJ|j|jkr:t'dt)|jd t)|jd tj |jt+|j}|||j||j|j }|jrt5}nd }|jjd ||f|jst=|j|jdSdS)Nbuildinstall)reinit_subcommandsrzinstalling to %s.zLcan't make a dumb built distribution where base and platbase are different (z, ))root_dirr r!anyr )dry_run) r run_commandreinitialize_commandrrootwarn_dirr info distribution get_fullnamerr+r,r-rrhas_ext_modules install_baseinstall_platbaser1reprr make_archiverr r!r dist_filesappendrrr=)r"r6archive_basenamepseudoinstall_root archive_rootfilename pyversions r#runzbdist_dumb.runOs% &   W % % %++I!+LL~ !_ #T^444 ###'+&7&D&D&F&F&F&F&*nn6 W\\$-9IJJ} J>LL!1133 J%)AAA,,w34444w78888:;;; "w||DN#273G#H#H J J $$%7%)[<+/:TZ%II   , , . . *,,III $++\9-5-7 8 8 8~ >  = = = = = = > >r%N) __name__ __module__ __qualname__ descriptionr user_optionsboolean_optionsr.r$r3rQr%r#r r s8KJ!3%'3|~~67#:FK)12+L4>==O '"%%N   AAA$,>,>,>,>,>r%r )__doc__r+distutils.corerdistutils.utilrdistutils.dir_utilrrdistutils.errorsdistutils.sysconfigr distutilsr r rXr%r#r`s  """"""'''''';;;;;;;;222222l>l>l>l>l>l>l>l>l>l>r%PK!|=ŮDPDP/command/__pycache__/sdist.cpython-311.opt-2.pycnu[ 0i=J ddlZddlZddlmZddlmZddlmZddlmZddlm Z ddlm Z ddl m Z dd l mZdd lmZdd lmZdd lmZmZd ZGddeZdS)N)glob)warn)Command)dir_util) file_util) archive_util)TextFile)FileList)log) convert_path)DistutilsTemplateErrorDistutilsOptionErrorc ddlm}ddlm}g}|D])}|d|zd||df*|||ddS)Nr) FancyGetopt)ARCHIVE_FORMATSformats=z.List of available source distribution formats:)distutils.fancy_getoptrdistutils.archive_utilrkeysappendsort print_help)rrformatsformats >/opt/alt/python311/lib64/python3.11/distutils/command/sdist.py show_formatsrs322222666666G!&&((55 V+T'/24 5 5 5 5 LLNNNK##8:::::ceZdZdZdZgdZgdZdddefgZdd d Z d efgZ d Z d Z dZ dZdZdZdZedZdZdZdZdZdZdZdZdZdZdZdZdZd Z d!Z!d"Z"dS)#sdistz6create a source distribution (tarball, zip file, etc.)c |jSN)metadata_checkselfs rchecking_metadatazsdist.checking_metadata(s 3""r))z template=tz5name of manifest template file [default: MANIFEST.in])z manifest=mz)name of manifest file [default: MANIFEST]) use-defaultsNzRinclude the default file set in the manifest [default; disable with --no-defaults]) no-defaultsNz"don't include the default file set)pruneNzspecifically exclude files/directories that should not be distributed (build tree, RCS/CVS dirs, etc.) [default; disable with --no-prune])no-pruneNz$don't automatically exclude anything) manifest-onlyozEjust regenerate the manifest and then stop (implies --force-manifest))force-manifestfzkforcibly regenerate the manifest and carry on as usual. Deprecated: now the manifest is always regenerated.)rNz6formats for source distribution (comma-separated list)) keep-tempkz@keep the distribution tree around after creating archive file(s))z dist-dir=dzFdirectory to put the source distribution archive(s) in [default: dist])metadata-checkNz[Ensure that all required elements of meta-data are supplied. Warn if any missing. [default])zowner=uz@Owner name used when creating a tar file [default: current user])zgroup=gzAGroup name used when creating a tar file [default: current group])r)r+r-r/r1r4z help-formatsNz#list available distribution formatsr)r+)r*r,check)READMEz README.txtz README.rstcd|_d|_d|_d|_d|_d|_dg|_d|_d|_d|_ d|_ d|_ d|_ dS)Nrgztar) templatemanifest use_defaultsr+ manifest_onlyforce_manifestr keep_tempdist_dir archive_filesr#ownergroupr$s rinitialize_optionszsdist.initialize_optionsesl   y  !  rc|jd|_|jd|_|dtj|j}|rt d|z|j d|_dSdS)NMANIFESTz MANIFEST.inrzunknown archive format '%s'dist)r=r<ensure_string_listrcheck_archive_formatsrrrB)r% bad_formats rfinalize_optionszsdist.finalize_options|s = &DM = )DM  ***!7 EE  >&/*<>> > = "DMMM ! rct|_|D]}||||jrdS|dSr")r filelistget_sub_commands run_command get_file_listr?make_distribution)r%cmd_names rrunz sdist.runs!  --// ' 'H   X & & & &     F      rc tdt|jd}||dS)Nzadistutils.command.sdist.check_metadata is deprecated, use the check command insteadr7)rPendingDeprecationWarning distributionget_command_objensure_finalizedrU)r%r7s rcheck_metadatazsdist.check_metadatas[ -.G I I I!11'::     rc tj|j}|s\|rH||j|jdS|s| d|jz|j |j r| |r| |jr||j|j|dS)Nz?manifest template '%s' does not exist (using default file list))ospathisfiler<_manifest_is_not_generated read_manifestrOrremove_duplicatesrfindallr> add_defaults read_templater+prune_file_listwrite_manifest)r%template_existss rrRzsdist.get_file_listsN '..77 4#B#B#D#D     M   M + + - - - F ' II4 & ' ' '           !    : #  " " "  ''))) rc  |||||||dSr")_add_defaults_standards_add_defaults_optional_add_defaults_python_add_defaults_data_files_add_defaults_ext_add_defaults_c_libs_add_defaults_scriptsr$s rrdzsdist.add_defaultss  $$&&& ##%%% !!### %%'''     !!### ""$$$$$rc tj|sdStj|}tj|\}}|tj|vS)NF)r]r^existsabspathsplitlistdir)fspathrs directoryfilenames r_cs_path_existszsdist._cs_path_existssd w~~f%% 5'//&)) gmmG44 82:i0000rc|j|jjg}|D]}t|trj|}d}|D]5}||rd}|j|n6|s+|dd |z||r|j||d|zdS)NFTz,standard file not found: should have one of z, zstandard file '%s' not found) READMESrX script_name isinstancetupleryrOrrjoin)r% standardsfnaltsgot_its rrjzsdist._add_defaults_standardss\4#4#@A  C CB"e$$ CB++B//!% ,,R000 /IIL"iioo.///''++CM((,,,,II4==99E M  ' ' ' ' ( (rcR|d}|jr,|j||jD]D\}}}}|D]:}|jtj ||;EdS)Nbuild_py) get_finalized_commandrXhas_pure_modulesrOrget_source_files data_filesrr]r^r)r%rpkgsrc_dir build_dir filenamesrxs rrlzsdist._add_defaults_pythons--j99   - - / / > M !:!:!>!,,4 M003334 4 4 4 4rc|jrC|d}|j|dSdS)N build_ext)rXhas_ext_modulesrrOrr)r%rs rrnzsdist._add_defaults_ext5s^   , , . . ?22;??I M !;!;!=!= > > > > > ? ?rc|jrC|d}|j|dSdS)N build_clib)rXhas_c_librariesrrOrr)r%rs rrozsdist._add_defaults_c_libs:sa   , , . . @33LAAJ M !!> ? ? ? ? ? @ @rc|jrC|d}|j|dSdS)N build_scripts)rX has_scriptsrrOrr)r%rs rrpzsdist._add_defaults_scripts?sa   ( ( * * C 66GGM M !?!?!A!A B B B B B C Crc  tjd|jt|jdddddd} |}|n` |j|nC#ttf$r/}| d|j |j |fzYd}~nd}~wwxYww | dS#| wxYw)Nzreading manifest template '%s'r:)strip_comments skip_blanks join_lines lstrip_ws rstrip_ws collapse_joinTz%s, line %d: %s) r infor<r readlinerOprocess_template_liner ValueErrorrrx current_lineclose)r%r<linemsgs rrezsdist.read_templateDs- 14=AAADM!'(A*+---  9((**<9M77====/ ;999II/83D3;3H36388999999999 9 NN     HNN    s5CA,+C,B,=%B'"C'B,,CCc |d}|j}|jd|j|jd|t jdkrd}nd}gd}d|dd |d|d }|j|d dS) Nbuild)prefixwin32z/|\\/)RCSCVSz\.svnz\.hgz\.gitz\.bzr_darcsz(^|z)(|z).*r:)is_regex) rrX get_fullnamerOexclude_pattern build_basesysplatformr)r%rbase_dirsepsvcs_dirsvcs_ptrns rrfzsdist.prune_file_listas **733$1133 %%d53C%DDD %%d8%<<< <7 " "DDD*.$$0B0B0B0BDDDI %%h%;;;;;rc  |rtjd|jzdS|jjdd}|dd|tj |j|fd|jzdS)Nz5not writing to manually maintained manifest file '%s'rz*# file GENERATED by distutils, do NOT editzwriting manifest file '%s') r`r rr=rOrinsertexecuter write_file)r%contents rrgzsdist.write_manifestys   * * , ,  H*,0M: ; ; ; F-%aaa(qFGGG Y)DM7+C1DMA C C C C Crctj|jsdSt |j} |}|n#|wxYw|dkS)NFz+# file GENERATED by distutils, do NOT edit )r]r^r_r=openrr)r%fp first_lines rr`z sdist._manifest_is_not_generatedsmw~~dm,, 5 $-  J HHJJJJBHHJJJJKKKs A%%A;c. tjd|jt|j5}|D]H}|}|ds|s.|j|I ddddS#1swxYwYdS)Nzreading manifest file '%s'#)r rr=rstrip startswithrOr)r%r=rs rrazsdist.read_manifests  -t}=== $-  +H  + +zz||??3''t $$T****  + + + + + + + + + + + + + + + + + + +sA B  BBc* ||tj|||jt t drd}d|z}nd}d|z}|st jdnt j||D]o}t j |st jd|7t j ||}| |||p|j j|dS) Ndry_runlinkhardzmaking hard links in %s...zcopying files to %s...z)no files to distribute -- empty manifest?z#'%s' not a regular file -- skipping)r)mkpathr create_treerhasattrr]r rrr^r_r copy_filerXmetadatawrite_pkg_info)r%rrrrfiledests rmake_release_treezsdist.make_release_trees  HXudlCCCC 2v   6D.9CCD*X5C  H@ A A A A HSMMM 6 6D7>>$'' 6>EEEEw||Hd33tT5555 "11(;;;;;rc |j}tj|j|}|||jjg}d|j vrJ|j |j |j d|j D]]}| ||||j|j}| ||jj dd|f^||_|jst'j||jdSdS)Ntar)rrDrEr r)rXrr]r^rrBrrOrrrpopindex make_archiverDrE dist_filesrCrAr remove_treer)r%r base_namerCfmtrs rrSzsdist.make_distributionsJ $1133GLL99  x)<=== DL L   0 01C1CE1J1J K K L L L< E EC$$Yh+/:TZ%IID   & & &   ( / /"d0C D D D D*~ A  4< @ @ @ @ @ @ A Arc |jSr")rCr$s rget_archive_fileszsdist.get_archive_filess !!r)#__name__ __module__ __qualname__ descriptionr& user_optionsboolean_optionsr help_options negative_opt sub_commandsr{rFrMrUr[rRrd staticmethodryrjrkrlrmrnrorprerfrgr`rarrSrrrr r $sJK### % % % LN666O  .  > L $2 '**L/01L4G.### !!!,&&&P%%%,11\1 CCC*((( FFF 444"??? @@@ CCC :<<<0 C C C L L L + + +(<(<(rs8L """"""""""""((((((''''''''''''IIIIIIII : : :J"J"J"J"J"GJ"J"J"J"J"rPK!]^^1command/__pycache__/install.cpython-311.opt-1.pycnu[ 0iRndZddlZddlZddlZddlZddlmZddlmZddl m Z ddl m Z ddl mZddlmZdd lmZmZmZdd lmZdd l mZdd lmZdd lmZeduZdZiiidZeD]6ZdD]1\ZZeZ ej!eZ"edkree"vrdZ e"e eee<27eD]Z#ee#$D]\ZZ%ej&dde%Z%e%'ddZ%e%'ddZ%edkre%dz Z%ej(dkredkre%'ddZ%e%ee#e<erdddd d!ded"<ddd#d$d!ded%<Gd&d'eZ)dS)(zFdistutils.command.install Implements the Distutils 'install' command.N)log)Command)DEBUG)get_config_vars)DistutilsPlatformError) write_file) convert_path subst_vars change_root) get_platform)DistutilsOptionError) USER_BASE) USER_SITE)purelibplatlibheadersscriptsdata) unix_prefix unix_homent))r posix_prefix)r posix_home)rrrincludez \{(.+?)\}z$\g<1>z$installed_basez$basez$py_version_nodot_platz$py_version_nodotz /$dist_name) rz/lib/z /$platlibdir/z $usersitez4$userbase/Python$py_version_nodot/Include/$dist_namez)$userbase/Python$py_version_nodot/Scriptsz $userbasent_userz=$userbase/include/python$py_version_short$abiflags/$dist_namez $userbase/bin unix_userc0eZdZdZgdZgdZer0edddezfedddiZ d Z d Z d Z d Z d ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdefdefd efd!efd"d#fgZdS)$installz'install everything from build directory))zprefix=Nzinstallation prefix)z exec-prefix=Nz.(Unix only) prefix for platform-specific files)zhome=Nz+(Unix only) home directory to install under)z install-base=Nz;base installation directory (instead of --prefix or --home))zinstall-platbase=Nz\base installation directory for platform-specific files (instead of --exec-prefix or --home))zroot=Nz-K-K-M-M*407#:J2A2:N0N069I"1"9M0M*0&,/:+6(0*-.    A+/+@D Z (+/+@D Z (  $T * * L)2)A()K)KD X &  /000$(#4 '+'<$  % % % % % % % . ! ! ! F4# $ $ $  +,,, 9 $  ! ! # # #   # , 8#'#7  #'#7 5)Y$fi 9 9 9  7   z: 6 6 6    #/7<<(8$/JJ 9   i 9' < < < ./// ""7#?#= ? ? ? ? ?s E++ E:9E:ctsdSddlm}tj|dz|jD]}|d}|ddkr |dd}||jvr4|j|}||}t|| }n%||}t||}tjd||dS)zDumps the list of user options.Nr) longopt_xlate:=z %s: %s) rdistutils.fancy_getoptrrdebug user_options negative_opt translategetattr)rCmsgroptopt_namevals rDrazinstall.dump_dirss  F888888 #)$ 1 1C1vH|s""#AbD>4,,,,X6#--m<<!$111#--m<<dH-- Ij(C 0 0 0 0 1 1rFc|j|j;|j|j|j|j|j|jtddS|j r@|j td|j x|_|_| ddS|j *|j x|_|_| ddS|js|jtdt jt&j|_t jt&j|_n|j |j|_|j|_|j|_| ddS)z&Finalizes options for posix platforms.NzPinstall-base or install-platbase supplied, but installation scheme is incomplete$User base directory is not specifiedrrz*must not supply exec-prefix without prefixr)r.r/r4r1r2r3r5r6r r(r8r select_schemer-r+r,r^rynormpathrdrBs rDrbzinstall.finalize_unixs   (D,A,M!)%-%-$,$,!)*:;;; F 9 .$,,:<<<8<8M MD  5   { + + + + + Y "8< AD  5   { + + + + +{"#/.FHHH!g..sz:: #%7#3#3CO#D#D  #+'+{D$ $ D $($4D !   } - - - - -rFc4|jrM|jtd|jx|_|_|t jdzdS|j*|jx|_|_|ddS|j .t j tj |_ |j x|_|_ |t jdS#t$rtdt jzwxYw)z)Finalizes options for non-posix platformsNr_userrz)I don't know how to install stuff on '%s')r(r8rr.r/rr^r_r-r+ryrrdKeyErrorrBs rDrczinstall.finalize_others& 9 M$,,:<<<8<8M MD  5   rw0 1 1 1 1 1 Y "8< AD  5   { + + + + +{" g..sz:: 8< CD  5 M""27+++++ M M M,ABGKMMM Ms C00'Dct|}tD].}d|z}t||t||||/dS)z=Sets the install directories by applying the install schemes.install_N)INSTALL_SCHEMES SCHEME_KEYSrsetattr)rCr_schemekeyattrnames rDrzinstall.select_schemesX!& 5 5C!C'HtX&&.hs 444 5 5rFc|D]y}t||}|etjdkstjdkrtj|}t ||j}t|||zdS)NrHr)rr^r_ry expanduserr rmr)rCattrsattrrs rD _expand_attrszinstall._expand_attrss ) )D$%%C7g%%D',,S11C d&677dC(((  ) )rFc4|gddS)zNCalls `os.path.expanduser` on install_base, install_platbase and root.)r.r/r0NrrBs rDrqzinstall.expand_basedirss% GGGHHHHHrFc4|gddS)z+Calls `os.path.expanduser` on install dirs.)r1r2r4r3r5r6NrrBs rDrszinstall.expand_dirss; @@@ A A A A ArFc r|D]3}d|z}t||tt||4dS)z!Call `convert_path` over `names`.rN)rr rrCnamesr_rs rDrvzinstall.convert_pathssP C CD$D D$ WT4-@-@ A A B B B B C CrFc|j|jj|_|jtjdt |jt r|jd|_t|jdkr|jdx}}n2t|jdkr |j\}}ntdt|}nd}d}||_ ||_ dS) z4Set `path_file` and `extra_dirs` using `extra_path`.NzIDistribution option extra_path is deprecated. See issue27919 for details.,r*rrJzY'extra_path' option must be a list, tuple, or comma-separated string with 1 or 2 elementsrI) r;rhrr` isinstancestrrflenr r path_filer{)rCrr{s rDrwzinstall.handle_extra_paths ? ""/:DO ? & H.   $/3// ="&/"7"7"<"<4?##q(()-);; JJT_%%**(,% ::*DEEE &j11JJIJ#$rFc ~|D]9}d|z}t||t|jt||:dS)z:Change the install directories pointed by name using root.rN)rr r0rrs rDr|zinstall.change_roots"sT M MD$D D$ DIwtT7J7J K K L L L L M MrFcp|jsdSttjd}|jD]f\}}||rLtj|s-| d|ztj |dgdS)zCreate directories under ~.N~zos.makedirs('%s', 0o700)i) r(r r^ryrrmitems startswithisdir debug_printmakedirs)rCr-r_rys rDrtzinstall.create_home_path(sy  FBG..s3344*0022 ) )JD$t$$ )RW]]4-@-@ )  !;d!BCCC D%((( ) )rFc|js\|d|jdj}|jr!|t krtd|D]}|||j r| |j r| }|j rFt|j }tt|D]}|||d||<|t"|j |fd|j zt%t&jjt,j}t%t&jj|}t&jt&j|j}|jr.|j r|js$||vrt5jd|jdSdSdSdS)zRuns the command.r]z"Can't install when cross-compilingNz'writing list of installed files to '%s'zmodules installed to '%s', which is not in Python's module search path (sys.path) -- you'll have to change the search path yourself)r= run_commandrhget_command_obj plat_namer>r rget_sub_commandsrcreate_path_filerA get_outputsr0rrangeexecutermapr^ryrrdnormcaser4r<rr)rC build_platcmd_nameoutputsroot_lencountersys_pathr4s rDrunz install.run4s# @   W % % %*::7CCMJ} @|~~!=!=,.?@@@--// ' 'H   X & & & & > $  ! ! # # # ; &&&((Gy Cty>>$S\\22CCG'.w'7 'BGG$$ LL+w/B% & & & rw'22rw'22g&&rw'7'78H'I'IJJ M ) )$($: ) x ' ' IH' ) ) ) ) ) ) ) ' ' ) )rFctj|j|jdz}|jr)|t||jgfd|zdS| d|zdS)zCreates the .pth file.pthz creating %szpath file '%s' not createdN) r^ryrzrxrr<rrr{r`)rCfilenames rDrzinstall.create_path_file`s7<< 4 $ 799  ! ? LL"T_$56&1 3 3 3 3 3 II2X= > > > > >rFc^g}|D]G}||}|D]}||vr||H|jrG|jr@|t j|j |jdz|S)z.Assembles the outputs of all the sub-commands.r) rget_finalized_commandrappendrr<r^ryrzrx)rCrrcmdrs rDrzinstall.get_outputsns--// - -H,,X66C OO-- - -7**NN8,,, - > Bd4 B NN27<<(<(,(?AA B B BrFcg}|D]>}||}||?|S)z*Returns the inputs of all the sub-commands)rrextend get_inputs)rCinputsrrs rDrzinstall.get_inputss[--// , ,H,,X66C MM#..** + + + + rFcf|jp|jS)zSReturns true if the current distribution has any Python modules to install.)rhhas_pure_moduleshas_ext_modulesrBs rDhas_libzinstall.has_libs2!22444!1133 5rFc4|jS)zLReturns true if the current distribution has any headers to install.)rh has_headersrBs rDrzinstall.has_headers ,,...rFc4|jS)zMReturns true if the current distribution has any scripts to. install.)rh has_scriptsrBs rDrzinstall.has_scriptsrrFc4|jS)zJReturns true if the current distribution has any data to. install.)rhhas_data_filesrBs rDhas_datazinstall.has_datas //111rFr4r3r5r6install_egg_infocdS)NTrBs rDzinstall.sTrF) __name__ __module__ __qualname__ descriptionrboolean_optionsr7rrrrEr~rarbrcrrrqrsrvrwr|rtrrrrrrrr sub_commandsrrFrDr r Zs;K9 9 9 Lv988O'VT@9LN O O Ov&&& 9-LFFF^U?U?U?t111&&.&.&.PMMM,555)))III AAA CCC % % %DMMM )))*)*)*)X ? ? ?"555 /// /// 222#0& 4& 4#1')9)9: LLLrFr )*__doc__rdrnr^re distutilsrdistutils.corerdistutils.debugrdistutils.sysconfigrdistutils.errorsrdistutils.file_utilrdistutils.utilr r r r r siterrr7rrrdistutils_scheme_namesys_scheme_namesys_key_INSTALL_SCHEMES sys_schememain_keyrvaluesubreplacerlr rrFrDrs//  """"""!!!!!!//////333333******@@@@@@@@@@''''''111111$& C #%2R@@  J JC3 J J./@ )  : 5 5  G6@6I-.s33 J / /H%h/5577 / / U|Y66 /99 68KLL )   ] "E  v % %#*:*:MM'?;;E).!#&& / I> " " OI K" $ $ OK M M M M M gM M M M M rFPK!+220command/__pycache__/config.cpython-311.opt-2.pycnu[ 0i=3v ddlZddlZddlmZddlmZddlmZddlm Z dddZ Gd d eZ d d Z dS) N)Command)DistutilsExecError)customize_compiler)logz.cz.cxx)czc++ceZdZdZgdZdZdZdZdZdZ dZ d Z d Z d Z ddZ ddZddZ ddZ ddZ ddZd d d gfdZ ddZd S)configzprepare to build) )z compiler=Nzspecify the compiler type)zcc=Nzspecify the compiler executable)z include-dirs=Iz.list of directories to search for header files)zdefine=DzC preprocessor macros to define)zundef=Uz!C preprocessor macros to undefine)z libraries=lz!external C libraries to link with)z library-dirs=Lz.directories to search for external C libraries)noisyNz1show every action (compile, link, run, ...) taken)z dump-sourceNz=dump generated source files before attempting to compile themcvd|_d|_d|_d|_d|_d|_d|_g|_dS)N)compilercc include_dirs libraries library_dirsr dump_source temp_filesselfs ?/opt/alt/python311/lib64/python3.11/distutils/command/config.pyinitialize_optionszconfig.initialize_options3sE    c|j|jjpg|_nCt|jtr)|jt j|_|jg|_n't|jtr |jg|_|j g|_dSt|jtr+|jt j|_dSdSN) r distribution isinstancestrsplitospathseprrrs rfinalize_optionszconfig.finalize_optionsBs   $ $ 1 > D"D   )3 / / D $ 1 7 7 C CD  > !DNN  , , ."n-DN   $ "D    )3 / / D $ 1 7 7 C CD    D DrcdSrrs rrunz config.runRs rc ddlm}m}t|j|s||j|jd|_t |j|jr|j|j|j r|j |j |j r#|j |j dSdSdS)Nr) CCompiler new_compilerr)rdry_runforce) distutils.ccompilerr+r,r!rr-rrset_include_dirsr set_librariesrset_library_dirs)rr+r,s r_check_compilerzconfig._check_compilerYs @???????$-33 B(L$-15QHHHDM t} - - -  B ..t/@AAA~ < ++DN;;;  B ..t/@AAAAA B B B BrcJdt|z}t|d5}|r2|D]}|d|z|d|||ddkr|ddddn #1swxYwY|S)N _configtestwz#include <%s>  )LANG_EXTopenwrite)rbodyheaderslangfilenamefileheaders r_gen_temp_sourcefilezconfig._gen_temp_sourcefileks 8D>1 (C  !D !%;;FJJ069:::: 4   JJt   Bx4 4    ! ! ! ! ! ! ! ! ! ! ! ! ! ! !sA+BBBc||||}d}|j||g|j|||||fS)Nz _configtest.ir)rBrextendr preprocess)rr<r=rr>srcouts r _preprocesszconfig._preprocessws_''gt<< Sz***   c  EEESzrc||||}|jrt|d|z|j|g\}|j||g|j|g|||fS)Nzcompiling '%s':rD)rBr dump_filerobject_filenamesrrEcompile)rr<r=rr>rGobjs r_compilezconfig._compile~s''gt<<   4 c,s2 3 3 3//66 Sz*** se,???Szrcp|||||\}}tjtj|d} |j|g| ||||jj| |jjz} |j | ||| fS)Nr)rr target_lang) rOr$pathsplitextbasenamerlink_executable exe_extensionrappend) rr<r=rrrr>rGrNprogs r_linkz config._links]]4,EE cw 0 0 5 566q9 %%seT093?26 & 8 8 8 = & 2$-55D t$$$S$rc|s|j}g|_tjdd||D]'} t j|#t $rY$wxYwdS)Nz removing: %s )rrinfojoinr$removeOSError)r filenamesr?s r_cleanz config._cleans !I DO )!4!4555!  H  (####      sA A A Nrc ddlm}|d} |||||n #|$rd}YnwxYw||S)Nr CompileErrorTF)r/rdr3rIrarr<r=rr>rdoks rtry_cppzconfig.try_cpps 544444      T7L$ ? ? ? ?   BBB   s8AAc ||||||\}}t|trt j|}t |5}d} |} | dkrn|| rd} n4dddn #1swxYwY| | S)NFT) r3rIr!r"rerMr:readlinesearchra) rpatternr<r=rr>rGrHr@matchlines r search_cppzconfig.search_cpps  ##D'<FFS gs # # *j))G #YY $E }}2::>>$'' E                   s)8B--B14B1c ddlm}| |||||d}n #|$rd}YnwxYwt j|rdpd||S)NrrcTFsuccess!failure.)r/rdr3rOrr\rares r try_compilezconfig.try_compiles  544444   MM$t < < <BB   BBB  " 0j111  s8AAc ddlm}m}| |||||||d} n#||f$rd} YnwxYwt j| rdpd|| SNr)rd LinkErrorTFrrrs)r/rdrwr3rYrr\ra) rr<r=rrrr>rdrwrfs rtry_linkzconfig.try_links  @???????   JJtWl , 6 6 6BBi(   BBB  " 0j111  s< AAc2 ddlm}m}| |||||||\} } } || gd} n#||t f$rd} YnwxYwtj| rdpd| | Srv) r/rdrwr3rYspawnrrr\ra) rr<r=rrrr>rdrwrGrNexerfs rtry_runzconfig.try_runs  @???????   JJtWl'0,FFMCc JJu   BBi);<   BBB  " 0j111  s6AA('A(rc |g}|r|d|z|d|r|d|zn|d|z|dd|dz}||||||S)Nz int %s ();z int main () {z %s();z %s;}r7)r3rWr]rx) rfuncr=rrrdeclcallr<s r check_funczconfig.check_funcs    - KK t+ , , , O$$$  ( KK D( ) ) ) ) KK$ ' ' ' Cyy%}}T7L& 66 6rcf ||d|||g|z|S)Nzint main (void) { })r3rx)rlibraryrr=rother_librariess r check_libzconfig.check_lib4sG  }}2G\%Y8,HH Hrc6 |d|g|S)Nz /* No body */)r<r=r)rg)rrArrr>s r check_headerzconfig.check_headerBs- ||6()577 7r)NNNr)NNr)NNNNr)NNNNrr)__name__ __module__ __qualname__ description user_optionsrr&r)r3rBrIrOrYrargrprtrxr|rrrr(rrr r s$K   L4   DDD    BBB$          ,$IM8 IM),&HL(+2;?CD6666</3D#R H H H HDH777777rr c& |tjd|ntj|t|} tj||dS#|wxYw)Nz%s)rr\r:readclose)r?headr@s rrKrKKs{ | x      >>D   s &A::Br) r$rjdistutils.corerdistutils.errorsrdistutils.sysconfigr distutilsrr9r rKr(rrrs  """"""//////222222f % %t7t7t7t7t7Wt7t7t7l      rPK!Ή )command/__pycache__/clean.cpython-311.pycnu[ 0i RdZddlZddlmZddlmZddlmZGddeZdS)zBdistutils.command.clean Implements the Distutils 'clean' command.N)Command) remove_tree)logc2eZdZdZgdZdgZdZdZdZdS)cleanz-clean up temporary files from 'build' command))z build-base=bz2base build directory (default: 'build.build-base'))z build-lib=Nz/opt/alt/python311/lib64/python3.11/distutils/command/clean.pyinitialize_optionszclean.initialize_options s1!cd|ddddd|dddS)Nbuild)r r )rr)rr)rrbdist)rr)set_undefined_optionsrs rfinalize_optionszclean.finalize_options(sY ""7#?#=#E#?  A A A ""7#? A A A A Arc(tj|jrt |j|jnt jd|j|jrb|j |j |j fD]M}tj|rt ||j8t j d|N|jsG tj |jt jd|jdS#t $rYdSwxYwdS)N)dry_runz%'%s' does not exist -- can't clean itz removing '%s')ospathexistsrrrrdebugr rrrwarnrmdirr infoOSError)r directorys rrunz clean.run1s7 7>>$/ * * '  > > > > > I=o ' ' ' 8 ("n"o"02 ( ( 7>>),,( 4<@@@@@HD&(((( |  )))$/:::::       s 3D DDN) __name__ __module__ __qualname__ description user_optionsboolean_optionsrrr'rrrr scAK   LgOAAArr) __doc__rdistutils.corerdistutils.dir_utilr distutilsrrr.rrr3s--  """"""******@@@@@G@@@@@rPK! 7 7 3command/__pycache__/install_scripts.cpython-311.pycnu[ 0iRdZddlZddlmZddlmZddlmZGddeZdS)zudistutils.command.install_scripts Implements the Distutils 'install_scripts' command, for installing Python scripts.N)Command)log)ST_MODEc@eZdZdZgdZddgZdZdZdZdZ d Z d S) install_scriptsz%install scripts (Python or otherwise)))z install-dir=dzdirectory to install scripts to)z build-dir=bz'build directory (where to install from))forcefz-force installation (overwrite existing files)) skip-buildNzskip the build stepsr r c>d|_d|_d|_d|_dS)Nr) install_dirr build_dir skip_buildselfs H/opt/alt/python311/lib64/python3.11/distutils/command/install_scripts.pyinitialize_optionsz"install_scripts.initialize_optionss# cb|dd|dddddS)Nbuild) build_scriptsrinstall)rr)r r )rr)set_undefined_optionsrs rfinalize_optionsz install_scripts.finalize_options!sF ""7,JKKK ""9#E#5#? $ $ $ $ $rc|js|d||j|j|_t jdkr|D]q}|j rtj d|t j |tdzdz}tj d||t j||pdSdS)Nrposixzchanging mode of %simizchanging mode of %s to %o)r run_command copy_treerroutfilesosname get_outputsdry_runrinfostatrchmod)rfilemodes rrunzinstall_scripts.run)s .   _ - - -t~t7GHH 7g  ((** ) )<)H2D9999WT]]73u<FDH8$EEEHT4((((   ) )rc|jjpgSN) distributionscriptsrs r get_inputszinstall_scripts.get_inputs8s (.B.rc|jpgSr,)r rs rr#zinstall_scripts.get_outputs;s}""rN) __name__ __module__ __qualname__ description user_optionsboolean_optionsrrr*r/r#rrrrs9KL -O $$$ ) ) )///#####rr) __doc__r!distutils.corer distutilsrr&rrr7rrr;s """""".#.#.#.#.#g.#.#.#.#.#rPK!%=((*command/__pycache__/upload.cpython-311.pycnu[ 0idZddlZddlZddlZddlmZddlmZddlm Z m Z ddl m Z ddl mZmZddlmZdd lmZdd lmZeed deed deed ddZGddeZdS)zm distutils.command.upload Implements the Distutils 'upload' subcommand (upload package to a package index). N)standard_b64encode) HTTPError)urlopenRequest)urlparse)DistutilsErrorDistutilsOptionError) PyPIRCCommand)spawn)logmd5sha256blake2b) md5_digest sha256_digestblake2_256_digestcXeZdZdZejddgzZejdgzZdZdZdZ dZ d S) uploadzupload binary package to PyPI)signszsign files to upload using gpg)z identity=izGPG identity used to sign filesrcttj|d|_d|_d|_d|_d|_dS)NrF)r initialize_optionsusernamepassword show_responseridentity)selfs ?/opt/alt/python311/lib64/python3.11/distutils/command/upload.pyrzupload.initialize_options*s;(...    cTtj||jr|jst d|}|ikr4|d|_|d|_|d|_|d|_ |js|j jr|j j|_dSdSdS)Nz.Must use --sign for --identity to have meaningrr repositoryrealm) r finalize_optionsrrr _read_pypircrrr#r$ distribution)rconfigs r r%zupload.finalize_options2s&t,,, =  &@ ""$$ R<<":.DM":.DM$\2DODJ} 7!2!; 7 -6DMMM 7 7 7 7r!c|jjsd}t||jjD]\}}}||||dS)NzHMust create and upload files in one command (e.g. setup.py sdist upload))r' dist_filesr upload_file)rmsgcommand pyversionfilenames r runz upload.runDsf + ,2C&s++ +,0,=,H ; ; (GY   Wi : : : : ; ;r!c t|j\}}}}}} |s|s| rtd|jz|dvrtd|z|jr1ddd|g} |jrd|jg| dd<t | |j t|d } | } | n#| wxYw|j j } id d d dd| d| dtj|| fd|d|ddd| d| d| d| d| d| d| d| d| | | | | d}d |d!<t<D]9\}}| ||  ||<*#tB$rY6wxYw|jrdt|d"zd 5} tj|d"z| f|d#<dddn #1swxYwY|j"d$z|j#z$d%}d&tK|&d%z}d'}d(|$d%z}|d)z}tOj(}|D]\}}d*|z}tS|tTs|g}|D]}tW|tXur|d+|d,zz }|d-}n"t[|$d.}|.||.|$d.|.d/|.||.||/}d0|d1|j}|0|tbj2d2|zt[tg||d3}ti|j||4} tk|}|6}|j7}n`#tp$r} | j9}| j7}Yd} ~ nCd} ~ wtt$r3} |0t[| tbj;d} ~ wwxYw|d5kr~|0d6|d7|tbj2|j<rO|=|}!d8>d9|!d9f}|0|tbj2dSdSd:|d7|}|0|tbj;t|);NzIncompatible url %s)httphttpszunsupported schema gpgz --detach-signz-az --local-user)dry_runrbz:action file_uploadprotocol_version1nameversioncontentfiletyper.metadata_versionz1.0summary home_pageauthor author_emaillicense descriptionkeywordsplatform classifiers) download_urlprovidesrequires obsoletesrcommentz.asc gpg_signature:asciizBasic z3--------------GHSKFJDLGDS7543FJKLFHRE75642756743254s --s-- z+ Content-Disposition: form-data; name="%s"z; filename="%s"rzutf-8s z Submitting z to z multipart/form-data; boundary=%s)z Content-typezContent-length Authorization)dataheaderszServer response (z):  zK---------------------------------------------------------------------------zUpload failed ()@rr#AssertionErrorrrr r6openreadcloser'metadataget_name get_versionospathbasenameget_descriptionget_url get_contactget_contact_email get_licenceget_long_description get_keywords get_platformsget_classifiersget_download_url get_provides get_requires get_obsoletes_FILE_CONTENT_DIGESTSitems hexdigest ValueErrorrrencoderdecodeioBytesIO isinstancelisttypetuplestrwritegetvalueannouncer INFOlenrrgetcoder,rcodeOSErrorERRORr_read_pypi_responsejoinr)"rr-r.r/schemanetlocurlparamsquery fragmentsgpg_argsfr=metarS digest_name digest_cons user_passauthboundary sep_boundary end_boundarybodykeyvaluetitler,rTrequestresultstatusreasonetexts" r r+zupload.upload_fileLsF T_ % % 6VUI  JU Ji J !6!HII I * * * !6!?@@ @ 9 (h?H} @!/ ?1 (, ( ( ( ( $   ffhhG GGIIIIAGGIIII ) }  DMMOO  t'')) ((227;    t++--!" #$ d&&((%& D2244'( t'')))* 44466+, ))++-. **,,/0 4//1112!1133))++))++++--;@Y)>(C(C(E(E   $K" $/K$8$8$B$B$D$D[!!     9 3h'.. 3!)+)9)9()C)Cf)L)*)3_% 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 ]S(4=8@@II ,Y77>>wGGGI 8??7#;#;; #i/ z||**,, " "JCCcIEeT**  " ";;%''.q99E!!HEEJJ--g66E <((( 5<<00111 ;''' 5!!!! " <   }}'/xxA c38$$$?I!#d))nn!   $/")+++ W%%F^^%%FZFF   VFUFFFFFF    MM#a&&#) , , ,   S== MMMG( $ $ $! -//77ii4 :;; c38,,,,, - - /5ffff=C MM#sy ) ) ) %% %sTCC6 J J$#J$:LL L *T<< VU V&.VVN) __name__ __module__ __qualname__rEr user_optionsboolean_optionsrr%r0r+r!r rrs1K - +=1  L $3vh>O777$;;;K&K&K&K&K&r!r)__doc__r^rthashlibbase64r urllib.errorrurllib.requestrr urllib.parserdistutils.errorsrr distutils.corer distutils.spawnr distutilsr getattrrnrrr!r rsH %%%%%%""""""++++++++!!!!!!AAAAAAAA((((((!!!!!! ''5$//WWh55 )T::y&y&y&y&y&]y&y&y&y&y&r!PK!Q͌5 5 /command/__pycache__/clean.cpython-311.opt-2.pycnu[ 0i P ddlZddlmZddlmZddlmZGddeZdS)N)Command) remove_tree)logc2eZdZdZgdZdgZdZdZdZdS)cleanz-clean up temporary files from 'build' command))z build-base=bz2base build directory (default: 'build.build-base'))z build-lib=Nz/opt/alt/python311/lib64/python3.11/distutils/command/clean.pyinitialize_optionszclean.initialize_options s1!cd|ddddd|dddS)Nbuild)r r )rr)rr)rrbdist)rr)set_undefined_optionsrs rfinalize_optionszclean.finalize_options(sY ""7#?#=#E#?  A A A ""7#? A A A A Arc(tj|jrt |j|jnt jd|j|jrb|j |j |j fD]M}tj|rt ||j8t j d|N|jsG tj |jt jd|jdS#t $rYdSwxYwdS)N)dry_runz%'%s' does not exist -- can't clean itz removing '%s')ospathexistsrrrrdebugr rrrwarnrmdirr infoOSError)r directorys rrunz clean.run1s7 7>>$/ * * '  > > > > > I=o ' ' ' 8 ("n"o"02 ( ( 7>>),,( 4<@@@@@HD&(((( |  )))$/:::::       s 3D DDN) __name__ __module__ __qualname__ description user_optionsboolean_optionsrrr'rrrr scAK   LgOAAArr)rdistutils.corerdistutils.dir_utilr distutilsrrr.rrr2s-  """"""******@@@@@G@@@@@rPK!Ή /command/__pycache__/clean.cpython-311.opt-1.pycnu[ 0i RdZddlZddlmZddlmZddlmZGddeZdS)zBdistutils.command.clean Implements the Distutils 'clean' command.N)Command) remove_tree)logc2eZdZdZgdZdgZdZdZdZdS)cleanz-clean up temporary files from 'build' command))z build-base=bz2base build directory (default: 'build.build-base'))z build-lib=Nz/opt/alt/python311/lib64/python3.11/distutils/command/clean.pyinitialize_optionszclean.initialize_options s1!cd|ddddd|dddS)Nbuild)r r )rr)rr)rrbdist)rr)set_undefined_optionsrs rfinalize_optionszclean.finalize_options(sY ""7#?#=#E#?  A A A ""7#? A A A A Arc(tj|jrt |j|jnt jd|j|jrb|j |j |j fD]M}tj|rt ||j8t j d|N|jsG tj |jt jd|jdS#t $rYdSwxYwdS)N)dry_runz%'%s' does not exist -- can't clean itz removing '%s')ospathexistsrrrrdebugr rrrwarnrmdirr infoOSError)r directorys rrunz clean.run1s7 7>>$/ * * '  > > > > > I=o ' ' ' 8 ("n"o"02 ( ( 7>>),,( 4<@@@@@HD&(((( |  )))$/:::::       s 3D DDN) __name__ __module__ __qualname__ description user_optionsboolean_optionsrrr'rrrr scAK   LgOAAArr) __doc__rdistutils.corerdistutils.dir_utilr distutilsrrr.rrr3s--  """"""******@@@@@G@@@@@rPK!]^^+command/__pycache__/install.cpython-311.pycnu[ 0iRndZddlZddlZddlZddlZddlmZddlmZddl m Z ddl m Z ddl mZddlmZdd lmZmZmZdd lmZdd l mZdd lmZdd lmZeduZdZiiidZeD]6ZdD]1\ZZeZ ej!eZ"edkree"vrdZ e"e eee<27eD]Z#ee#$D]\ZZ%ej&dde%Z%e%'ddZ%e%'ddZ%edkre%dz Z%ej(dkredkre%'ddZ%e%ee#e<erdddd d!ded"<ddd#d$d!ded%<Gd&d'eZ)dS)(zFdistutils.command.install Implements the Distutils 'install' command.N)log)Command)DEBUG)get_config_vars)DistutilsPlatformError) write_file) convert_path subst_vars change_root) get_platform)DistutilsOptionError) USER_BASE) USER_SITE)purelibplatlibheadersscriptsdata) unix_prefix unix_homent))r posix_prefix)r posix_home)rrrincludez \{(.+?)\}z$\g<1>z$installed_basez$basez$py_version_nodot_platz$py_version_nodotz /$dist_name) rz/lib/z /$platlibdir/z $usersitez4$userbase/Python$py_version_nodot/Include/$dist_namez)$userbase/Python$py_version_nodot/Scriptsz $userbasent_userz=$userbase/include/python$py_version_short$abiflags/$dist_namez $userbase/bin unix_userc0eZdZdZgdZgdZer0edddezfedddiZ d Z d Z d Z d Z d ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdefdefd efd!efd"d#fgZdS)$installz'install everything from build directory))zprefix=Nzinstallation prefix)z exec-prefix=Nz.(Unix only) prefix for platform-specific files)zhome=Nz+(Unix only) home directory to install under)z install-base=Nz;base installation directory (instead of --prefix or --home))zinstall-platbase=Nz\base installation directory for platform-specific files (instead of --exec-prefix or --home))zroot=Nz-K-K-M-M*407#:J2A2:N0N069I"1"9M0M*0&,/:+6(0*-.    A+/+@D Z (+/+@D Z (  $T * * L)2)A()K)KD X &  /000$(#4 '+'<$  % % % % % % % . ! ! ! F4# $ $ $  +,,, 9 $  ! ! # # #   # , 8#'#7  #'#7 5)Y$fi 9 9 9  7   z: 6 6 6    #/7<<(8$/JJ 9   i 9' < < < ./// ""7#?#= ? ? ? ? ?s E++ E:9E:ctsdSddlm}tj|dz|jD]}|d}|ddkr |dd}||jvr4|j|}||}t|| }n%||}t||}tjd||dS)zDumps the list of user options.Nr) longopt_xlate:=z %s: %s) rdistutils.fancy_getoptrrdebug user_options negative_opt translategetattr)rCmsgroptopt_namevals rDrazinstall.dump_dirss  F888888 #)$ 1 1C1vH|s""#AbD>4,,,,X6#--m<<!$111#--m<<dH-- Ij(C 0 0 0 0 1 1rFc|j|j;|j|j|j|j|j|jtddS|j r@|j td|j x|_|_| ddS|j *|j x|_|_| ddS|js|jtdt jt&j|_t jt&j|_n|j |j|_|j|_|j|_| ddS)z&Finalizes options for posix platforms.NzPinstall-base or install-platbase supplied, but installation scheme is incomplete$User base directory is not specifiedrrz*must not supply exec-prefix without prefixr)r.r/r4r1r2r3r5r6r r(r8r select_schemer-r+r,r^rynormpathrdrBs rDrbzinstall.finalize_unixs   (D,A,M!)%-%-$,$,!)*:;;; F 9 .$,,:<<<8<8M MD  5   { + + + + + Y "8< AD  5   { + + + + +{"#/.FHHH!g..sz:: #%7#3#3CO#D#D  #+'+{D$ $ D $($4D !   } - - - - -rFc4|jrM|jtd|jx|_|_|t jdzdS|j*|jx|_|_|ddS|j .t j tj |_ |j x|_|_ |t jdS#t$rtdt jzwxYw)z)Finalizes options for non-posix platformsNr_userrz)I don't know how to install stuff on '%s')r(r8rr.r/rr^r_r-r+ryrrdKeyErrorrBs rDrczinstall.finalize_others& 9 M$,,:<<<8<8M MD  5   rw0 1 1 1 1 1 Y "8< AD  5   { + + + + +{" g..sz:: 8< CD  5 M""27+++++ M M M,ABGKMMM Ms C00'Dct|}tD].}d|z}t||t||||/dS)z=Sets the install directories by applying the install schemes.install_N)INSTALL_SCHEMES SCHEME_KEYSrsetattr)rCr_schemekeyattrnames rDrzinstall.select_schemesX!& 5 5C!C'HtX&&.hs 444 5 5rFc|D]y}t||}|etjdkstjdkrtj|}t ||j}t|||zdS)NrHr)rr^r_ry expanduserr rmr)rCattrsattrrs rD _expand_attrszinstall._expand_attrss ) )D$%%C7g%%D',,S11C d&677dC(((  ) )rFc4|gddS)zNCalls `os.path.expanduser` on install_base, install_platbase and root.)r.r/r0NrrBs rDrqzinstall.expand_basedirss% GGGHHHHHrFc4|gddS)z+Calls `os.path.expanduser` on install dirs.)r1r2r4r3r5r6NrrBs rDrszinstall.expand_dirss; @@@ A A A A ArFc r|D]3}d|z}t||tt||4dS)z!Call `convert_path` over `names`.rN)rr rrCnamesr_rs rDrvzinstall.convert_pathssP C CD$D D$ WT4-@-@ A A B B B B C CrFc|j|jj|_|jtjdt |jt r|jd|_t|jdkr|jdx}}n2t|jdkr |j\}}ntdt|}nd}d}||_ ||_ dS) z4Set `path_file` and `extra_dirs` using `extra_path`.NzIDistribution option extra_path is deprecated. See issue27919 for details.,r*rrJzY'extra_path' option must be a list, tuple, or comma-separated string with 1 or 2 elementsrI) r;rhrr` isinstancestrrflenr r path_filer{)rCrr{s rDrwzinstall.handle_extra_paths ? ""/:DO ? & H.   $/3// ="&/"7"7"<"<4?##q(()-);; JJT_%%**(,% ::*DEEE &j11JJIJ#$rFc ~|D]9}d|z}t||t|jt||:dS)z:Change the install directories pointed by name using root.rN)rr r0rrs rDr|zinstall.change_roots"sT M MD$D D$ DIwtT7J7J K K L L L L M MrFcp|jsdSttjd}|jD]f\}}||rLtj|s-| d|ztj |dgdS)zCreate directories under ~.N~zos.makedirs('%s', 0o700)i) r(r r^ryrrmitems startswithisdir debug_printmakedirs)rCr-r_rys rDrtzinstall.create_home_path(sy  FBG..s3344*0022 ) )JD$t$$ )RW]]4-@-@ )  !;d!BCCC D%((( ) )rFc|js\|d|jdj}|jr!|t krtd|D]}|||j r| |j r| }|j rFt|j }tt|D]}|||d||<|t"|j |fd|j zt%t&jjt,j}t%t&jj|}t&jt&j|j}|jr.|j r|js$||vrt5jd|jdSdSdSdS)zRuns the command.r]z"Can't install when cross-compilingNz'writing list of installed files to '%s'zmodules installed to '%s', which is not in Python's module search path (sys.path) -- you'll have to change the search path yourself)r= run_commandrhget_command_obj plat_namer>r rget_sub_commandsrcreate_path_filerA get_outputsr0rrangeexecutermapr^ryrrdnormcaser4r<rr)rC build_platcmd_nameoutputsroot_lencountersys_pathr4s rDrunz install.run4s# @   W % % %*::7CCMJ} @|~~!=!=,.?@@@--// ' 'H   X & & & & > $  ! ! # # # ; &&&((Gy Cty>>$S\\22CCG'.w'7 'BGG$$ LL+w/B% & & & rw'22rw'22g&&rw'7'78H'I'IJJ M ) )$($: ) x ' ' IH' ) ) ) ) ) ) ) ' ' ) )rFctj|j|jdz}|jr)|t||jgfd|zdS| d|zdS)zCreates the .pth file.pthz creating %szpath file '%s' not createdN) r^ryrzrxrr<rrr{r`)rCfilenames rDrzinstall.create_path_file`s7<< 4 $ 799  ! ? LL"T_$56&1 3 3 3 3 3 II2X= > > > > >rFc^g}|D]G}||}|D]}||vr||H|jrG|jr@|t j|j |jdz|S)z.Assembles the outputs of all the sub-commands.r) rget_finalized_commandrappendrr<r^ryrzrx)rCrrcmdrs rDrzinstall.get_outputsns--// - -H,,X66C OO-- - -7**NN8,,, - > Bd4 B NN27<<(<(,(?AA B B BrFcg}|D]>}||}||?|S)z*Returns the inputs of all the sub-commands)rrextend get_inputs)rCinputsrrs rDrzinstall.get_inputss[--// , ,H,,X66C MM#..** + + + + rFcf|jp|jS)zSReturns true if the current distribution has any Python modules to install.)rhhas_pure_moduleshas_ext_modulesrBs rDhas_libzinstall.has_libs2!22444!1133 5rFc4|jS)zLReturns true if the current distribution has any headers to install.)rh has_headersrBs rDrzinstall.has_headers ,,...rFc4|jS)zMReturns true if the current distribution has any scripts to. install.)rh has_scriptsrBs rDrzinstall.has_scriptsrrFc4|jS)zJReturns true if the current distribution has any data to. install.)rhhas_data_filesrBs rDhas_datazinstall.has_datas //111rFr4r3r5r6install_egg_infocdS)NTrBs rDzinstall.sTrF) __name__ __module__ __qualname__ descriptionrboolean_optionsr7rrrrEr~rarbrcrrrqrsrvrwr|rtrrrrrrrr sub_commandsrrFrDr r Zs;K9 9 9 Lv988O'VT@9LN O O Ov&&& 9-LFFF^U?U?U?t111&&.&.&.PMMM,555)))III AAA CCC % % %DMMM )))*)*)*)X ? ? ?"555 /// /// 222#0& 4& 4#1')9)9: LLLrFr )*__doc__rdrnr^re distutilsrdistutils.corerdistutils.debugrdistutils.sysconfigrdistutils.errorsrdistutils.file_utilrdistutils.utilr r r r r siterrr7rrrdistutils_scheme_namesys_scheme_namesys_key_INSTALL_SCHEMES sys_schememain_keyrvaluesubreplacerlr rrFrDrs//  """"""!!!!!!//////333333******@@@@@@@@@@''''''111111$& C #%2R@@  J JC3 J J./@ )  : 5 5  G6@6I-.s33 J / /H%h/5577 / / U|Y66 /99 68KLL )   ] "E  v % %#*:*:MM'?;;E).!#&& / I> " " OI K" $ $ OK M M M M M gM M M M M rFPK!c,command/__pycache__/__init__.cpython-311.pycnu[ 0idZgdZdS)z\distutils.command Package containing implementation of all the standard Distutils commands.)buildbuild_py build_ext build_clib build_scriptscleaninstall install_libinstall_headersinstall_scripts install_datasdistregisterbdist bdist_dumb bdist_rpmcheckuploadN)__doc____all__A/opt/alt/python311/lib64/python3.11/distutils/command/__init__.pyrs$     rPK!hY---4command/__pycache__/install_egg_info.cpython-311.pycnu[ 0i+ ldZddlmZddlmZmZddlZddlZddlZGddeZ dZ dZ d Z dS) zdistutils.command.install_egg_info Implements the Distutils 'install_egg_info' command, for installing a package's PKG-INFO metadata.)Command)logdir_utilNc4eZdZdZdZdgZdZdZdZdZ dS) install_egg_infoz)Install an .egg-info file for the packagez8Install package's PKG-INFO metadata as an .egg-info file)z install-dir=dzdirectory to install tocd|_dSN) install_dirselfs I/opt/alt/python311/lib64/python3.11/distutils/command/install_egg_info.pyinitialize_optionsz#install_egg_info.initialize_optionssc|dddtt|jtt |jgtjddRz}tj |j ||_ |j g|_dS)N install_lib)r r z%s-%s-py%d.%d.egg-info)set_undefined_options to_filename safe_name distributionget_name safe_version get_versionsys version_infoospathjoinr targetoutputs)r basenames rfinalize_optionsz!install_egg_info.finalize_optionss ""=1NOOO+  $"3"<"<">">?? @ @  T%6%B%B%D%DEE F F/  bqb !/ /   gll4#3X>>  } rc|j}tj|r;tj|st j||jntj|r+| tj |jfd|znStj|j s/| tj |j fd|j ztjd||jsLt|dd5}|jj|ddddS#1swxYwYdSdS)N)dry_runz Removing z Creating z Writing %swzUTF-8)encoding)r rrisdirislinkr remove_treer%existsexecuteunlinkr makedirsrinfoopenrmetadatawrite_pkg_file)r r fs rrunzinstall_egg_info.run s 7==  7)?)? 7   > > > > > W^^F # # 7 LLDK>+f2D E E E Et/00 7 LLt'7&9$T%55 7 7 7 v&&&| =fcG444 =!*99!<<< = = = = = = = = = = = = = = = = = = = =s- EE!Ec|jSr )r!r s r get_outputszinstall_egg_info.get_outputs.s |rN) __name__ __module__ __qualname____doc__ description user_optionsrr#r4r6rrrr se33LK8L   %%% = = =rrc.tjdd|S)zConvert an arbitrary string to a standard distribution name Any runs of non-alphanumeric/. characters are replaced with a single '-'. [^A-Za-z0-9.]+-)resubnames rrr6s 6"C . ..rcZ|dd}tjdd|S)zConvert an arbitrary string to a standard version string Spaces become dots, and all other non-alphanumeric characters become dashes, with runs of multiple dashes condensed to a single dash.  .r?r@)replacerArB)versions rrr>s, ooc#&&G 6"C 1 11rc.|ddS)z|Convert a project or version name to its filename-escaped form Any '-' characters are currently replaced with '_'. r@_)rHrCs rrrHs <<C  r) r: distutils.cmdr distutilsrrrrrArrrrr=rrrNs"" "!!!!!########$$$$$w$$$V///222!!!!!rPK!Ns)command/__pycache__/check.cpython-311.pycnu[ 0idZddlmZddlmZ ddlmZddlmZddl m Z ddl m Z Gdd eZ d Z n #e$rd Z YnwxYwGd d eZdS)zCdistutils.command.check Implements the Distutils 'check' command. )Command)DistutilsSetupError)Reporter)Parser)frontend)nodesc eZdZ ddZdZdS)SilentReporterNrasciireplacec Jg|_tj||||||||dSN)messagesr__init__)selfsource report_level halt_levelstreamdebugencoding error_handlers >/opt/alt/python311/lib64/python3.11/distutils/command/check.pyrzSilentReporter.__init__s9DM  dFL*f#X} > > > > >c|j||||ftj|g|R||j|d|S)N)leveltype)rappendrsystem_messagelevels)rrmessagechildrenkwargss rrzSilentReporter.system_messagesc M %(F!C D D D'=)1==u-1[-?==5;== =r)Nrr r )__name__ __module__ __qualname__rrrrr r s=DH>G > > > >  = = = = =rr TFcPeZdZdZdZgdZgdZdZdZdZ dZ d Z d Z d Z d S) checkz6This command checks the meta-data of the package. z"perform some checks on the package))metadatamzVerify meta-data)restructuredtextrzEChecks if long string meta-data syntax are reStructuredText-compliant)strictsz(Will exit with an error if a check fails)r*r,r.c>d|_d|_d|_d|_dS)z Sets default values for options.rN)r,r*r. _warningsrs rinitialize_optionszcheck.initialize_options0s# !  rcdSrr'r3s rfinalize_optionszcheck.finalize_options7s rcL|xjdz c_tj||S)z*Counts the number of warnings that occurs.r1)r2rwarn)rmsgs rr8z check.warn:s$ !|D#&&&rc|jr||jr2tr|n|jrt d|jr|jdkrt ddSdS)zRuns the command.zThe docutils package is needed.rzPlease correct your package.N)r*check_metadatar, HAS_DOCUTILScheck_restructuredtextr.rr2r3s rrunz check.run?s = "    ! ! !   M M++---- M)*KLLL ; F4>A--%&DEE E F F--rc|jj}g}dD]7}t||rt||s||8|r+|dd|z|jr |js|ddSdS|j r |j s|ddSdS|ddS)a Ensures that all required elements of meta-data are supplied. Required fields: name, version, URL Recommended fields: (author and author_email) or (maintainer and maintainer_email) Warns if any are missing. )nameversionurlzmissing required meta-data: %sz, zNmissing meta-data: if 'author' supplied, 'author_email' should be supplied toozVmissing meta-data: if 'maintainer' supplied, 'maintainer_email' should be supplied toozkmissing meta-data: either (author and author_email) or (maintainer and maintainer_email) should be suppliedN) distributionr*hasattrgetattrrr8joinauthor author_email maintainermaintainer_email)rr*missingattrs rr;zcheck.check_metadataOsJ$-. % %DHd++ %$0G0G %t$$$  N II6$))G:L:LL M M M ? ,( C BCCCCC C C  ,, G FGGGGG G G II+ , , , , ,rc|j}||D]K}|dd}| |d}n|dd|d}||LdS)z4Checks if the long string fields are reST-compliant.lineNr1z (line ))rCget_long_description_check_rst_datagetr8)rdatawarningrOs rr=zcheck.check_restructuredtextps 5577++D11  G2;??6**D|!!*,3AJJJ= IIg       rc |jjpd}t} tj}|t}n=#t $r0tjtf}YnwxYwd|_d|_ d|_ t||j |j |j|j|j|j}t%j|||}||d |||n8#t $r+}|jdd|zd ifYd}~nd}~wwxYw|jS) z8Returns warnings when the provided data doesn't compile.zsetup.py) componentsN)rrrr)rrNz!Could not finish the parsing: %s.)rC script_namerrget_default_settingsAttributeError OptionParserget_default_values tab_widthpep_referencesrfc_referencesr rrwarning_streamrerror_encodingerror_encoding_error_handlerrdocument note_sourceparserr) rrT source_pathparserr[settingsreporterrees rrRzcheck._check_rst_data{s'3Az  4#+#@ ,+F33HH  X X X, BBBUUWWHHH X "&"&!+"/"-!)!8 (#+#:(0(M OOO>(H[III["--- G LLx ( ( ( ( G G G   $ $81r;r=rRr'rrr)r)#s7KBBBLA@@O   ''' FFF ,,,B   !!!!!rr)N)rmdistutils.corerdistutils.errorsrdocutils.utilsrdocutils.parsers.rstrdocutilsrrr r< Exceptionr)r'rrrws#"""""000000''''''++++++!!!!!! = = = = = = = =LLLLL w!w!w!w!w!Gw!w!w!w!w!s(9AAPK!MBbwhJhJ,command/__pycache__/build_py.cpython-311.pycnu[ 0i&CdZddlZddlZddlZddlZddlmZddlTddl m Z m Z ddl m Z GddeZGd d ee ZdS) zHdistutils.command.build_py Implements the Distutils 'build_py' command.N)Command)*) convert_path Mixin2to3)logceZdZdZgdZddgZddiZdZdZdZ d Z d Z d Z d Z d ZdZdZdZdZdZdZddZdZdZdZdZdS)build_pyz5"build" pure Python modules (copy to build directory)))z build-lib=dzdirectory to "build" (copy) to)compileczcompile .py to .pyc) no-compileNz!don't compile .py files [default])z optimize=Ozlalso compile with optimization: -O1 for "python -O", -O2 for "python -OO", and -O0 to disable [default: -O0])forcefz2forcibly build everything (ignore file timestamps)r rr cvd|_d|_d|_d|_d|_d|_d|_d|_dS)Nr) build_lib py_modulespackage package_data package_dirr optimizerselfs A/opt/alt/python311/lib64/python3.11/distutils/command/build_py.pyinitialize_optionszbuild_py.initialize_options s@     cH|ddd|jj|_|jj|_|jj|_i|_|jjr;|jjD]\}}t||j|<||_ t|j tsV t|j |_ d|j cxkrdksnJdS#ttf$rtdwxYwdS)Nbuild)rr)rrrzoptimize must be 0, 1, or 2)set_undefined_options distributionpackagesrrritemsrget_data_files data_files isinstancerint ValueErrorAssertionErrorDistutilsOptionError)rnamepaths rfinalize_optionszbuild_py.finalize_options*sL ""7#=#5 7 7 7 )2 +6 -:   ( <"/;AACC < < d)5d);); &&--//$--- J J #DM 2 2 DM....Q......../ J J J*+HIII J  J Js /C>>!Dc|jr||jr(||||ddSNr)include_bytecode)r build_modulesr"build_packagesbuild_package_data byte_compile get_outputsrs rrunz build_py.runCsy, ? !    = &    ! ! !  # # % % % $**A*>>?????rc\g}|js|S|jD]}||}tjj|jg|dz}d|rt|dzfd|||D}| ||||f|S)z?Generate list of '(package,src_dir,build_dir,filenames)' tuples.rc$g|] }|d SN).0fileplens r z+build_py.get_data_files..ss. $TUU r) r"get_package_dirosr,joinrsplitlenfind_data_filesappend)rdatarsrc_dir build_dir filenamesr?s @rr$zbuild_py.get_data_filesas} K} B BG**733G '7'--:L:L'LNID &7||A~(,(<(.s;(((2U??GNN2&&4C"???r) rgetglobrBr,rCescaperextend)rrrIglobspatternfilelistrQs @rrFzbuild_py.find_data_filesys"&&r2..$(("556 ) )Gydk'.B.BLQXDYDY!Z!Z[[H LL((((x((( ) ) ) ) rcBd}|jD]\}}}}|D]}tj||}|tj||tj|||ddS)z$Copy data files into build directoryNF preserve_mode)r%rBr,rCmkpathdirname copy_file)rlastdirrrIrJrKfilenametargets rr3zbuild_py.build_package_datas6:o 4 4 2GWi% 4 4i:: BGOOF33444rw||GX>>-24444 4 4 4rc|d}|js|rtjj|SdSg}|r{ |jd|}|d|tjj|S#t $r"|d|d|d=YnwxYw|{|jd}||d||rtjj|SdS)zReturn the directory, relative to the top of the source distribution, where package 'package' should be found (at least according to the 'package_dir' option, if any).r8rMr)rDrrBr,rCinsertKeyErrorrR)rrr,tailpdirs rrAzbuild_py.get_package_dirs"}}S!!  w|T**rD /+CHHTNN;D KK4(((7<..  !!!KK48,,,R! "'++B//#KK4(((7<..2s B)B.-B.c|dkrbtj|std|ztj|std|z|rVtj|d}tj|r|Stjd|dS)NrMz%package directory '%s' does not existz>supposed package directory '%s' exists, but is not a directoryz __init__.pyz8package init file '%s' not found (or not a regular file)) rBr,existsDistutilsFileErrorisdirrCrOrwarn)rrrinit_pys r check_packagezbuild_py.check_packages "  7>>+.. M(= KMMM7==-- ?(02=>???  ?gll; >>Gw~~g&& ?46=??? trcttj|stjd||dSdS)Nz!file %s (for module %s) not foundFT)rBr,rOrrl)rmodule module_files r check_modulezbuild_py.check_modules7w~~k**  H8+v N N N54rcJ|||tjtjtj|d}g}tj|jj}|D]}tj|}||kr[tj tj |d}| |||f| d|z|S)Nz*.pyrz excluding %s) rnrSrBr,rCrTabspathr! script_namesplitextbasenamerG debug_print) rrr module_filesmodules setup_scriptrabs_frps rfind_package_moduleszbuild_py.find_package_moduless 7K000ydk+.F.F!O!OPP wt'8'DEE  @ @AGOOA&&E $$))"'*:*:1*=*=>>qA34444  ,!>????rci}g}|jD]}|d}d|dd}|d} ||\}}n'#t$r||}d}YnwxYw|s7|||} |df||<| r||d| ftj||dz} | || s|||| f|S)aFinds individually-specified Python modules, ie. those listed by module name in 'self.py_modules'. Returns a list of tuples (package, module_base, filename): 'package' is a tuple of the path through package-space to the module; 'module_base' is the bare (no packages, no dots) module name, and 'filename' is the path to the ".py" file (relative to the distribution root) that implements the module. r8rrcr9__init__.py) rrDrCrerArnrGrBr,rr) rr"rzrpr,r module_basercheckedrmrqs r find_moduleszbuild_py.find_modulessN o @ @F<<$$DhhtAbDz**Gr(K )1'):&gg   "227;;   C,,WkBB%0!$4!CNNGZ#ABBB ',,{K%4GHHK$$V[99  NNG[+> ? ? ? ?s A!A98A9cg}|jr'|||jrJ|jD]B}||}|||}||C|S)a4Compute the list of all modules that will be built, whether they are specified one-module-at-a-time ('self.py_modules') or by whole packages ('self.packages'). Return a list of tuples (package, module, module_file), just like 'find_modules()' and 'find_package_modules()' do.)rrUrr"rAr})rrzrrms rfind_all_moduleszbuild_py.find_all_moduless  ? 0 NN4,,.. / / / = "= " ""227;; --g{CCq!!!!rc>d|DS)Ncg|] }|d S)rcr<)r=rps rr@z-build_py.get_source_files..-sAAAvr AAAr)rrs rget_source_fileszbuild_py.get_source_files,s"AA)>)>)@)@AAAArc\|gt|z|dzgz}tjj|S)Nr)listrBr,rC)rrJrrp outfile_paths rget_module_outfilezbuild_py.get_module_outfile/s/!{T']]2fun5EE w|\**rr9c|}g}|D]\}}}|d}||j||}|||r|jr4|t j|d|j dkr9|t j||j |d|j Dz }|S)Nr8rM) optimizationrcbg|],\}}}}|D]"}tj||#-Sr<)rBr,rC)r=rrIrJrKr`s rr@z(build_py.get_outputs..BsW6)Y% GLLH - -r) rrDrrrGr importlibutilcache_from_sourcerr%)rr0rzoutputsrrprqr`s rr5zbuild_py.get_outputs3s''')).5 ? ? *WfkmmC((G..t~wOOH NN8 $ $ $ ?<4NN9>#C#C r$D$3$3444=1$$NN9>#C#C t}$D$>$>??? :>/  rc~t|tr|d}n+t|ttfst d||j||}tj |}| || ||dS)Nr8z:'package' must be a string (dot-separated), list, or tuplerrZ) r&strrDrtuple TypeErrorrrrBr,r]r\r^)rrprqroutfiledirs r build_modulezbuild_py.build_moduleJs gs # # PmmC((GGGdE]33 PNPP P ))$.'6JJgoog&& C~~k7!~DDDrcn|}|D]\}}}||||dSr;)rr)rrzrrprqs rr1zbuild_py.build_modulesYsP##%%.5 < < *Wfk   fk7 ; ; ; ;  < > > F////// ":  bf_F < P L#z&$, P P P P =1   L#z&$, P P P P P P  rN)r9)__name__ __module__ __qualname__ description user_optionsboolean_options negative_optrr-r6r$rFr3rArnrrr}rrrrr5rr1r2r4r<rrr r sxKK   L!'*O 9-LJJJ2@@@<0   444%%%N6   222h BBB+++. E E E<<<@@@(PPPPPrr ceZdZdZdZdS) build_py_2to3c.g|_|jr||jr(||||j||ddSr/) updated_filesrr1r"r2r3run_2to3r4r5rs rr6zbuild_py_2to3.runs ? !    = &    ! ! !  # # % % % d())) $**A*>>?????rct||||}|dr |j|d|S)Nr9r)r rrrG)rrprqrress rrzbuild_py_2to3.build_modulesG##D&+wGG q6 .   % %c!f - - - rN)rrrr6rr<rrrrs5@@@ rr)__doc__rBimportlib.utilrrrSdistutils.corerdistutils.errorsrrr distutilsrr rr<rrrs00  """"""22222222yPyPyPyPyPyPyPyPv HirPK!y3XX3command/__pycache__/bdist_rpm.cpython-311.opt-2.pycnu[ 0i!T ddlZddlZddlZddlmZddlmZddlmZddl Tddl m Z ddl m Z Gdd eZdS) N)Command)DEBUG) write_file)*)get_python_version)logcXeZdZdZgdZgdZddddZdZd Zd Z d Z d Z d Z dZ dS) bdist_rpmzcreate an RPM distribution)))z bdist-base=Nz/base directory for creating built distributions)z rpm-base=Nzdbase directory for creating RPMs (defaults to "rpm" under --bdist-base; must be specified for RPM 2))z dist-dir=dzDdirectory to put final RPM files in (and .spec files if --spec-only))zpython=NzMpath to Python interpreter to hard-code in the .spec file (default: "python"))z fix-pythonNzLhard-code the exact path to the current Python interpreter in the .spec file)z spec-onlyNzonly regenerate spec file)z source-onlyNzonly generate source RPM)z binary-onlyNzonly generate binary RPM)z use-bzip2Nz7use bzip2 instead of gzip to create source distribution)zdistribution-name=Nzgname of the (Linux) distribution to which this RPM applies (*not* the name of the module distribution!))zgroup=Nz9package classification [default: "Development/Libraries"])zrelease=NzRPM release number)zserial=NzRPM serial number)zvendor=NzaRPM "vendor" (eg. "Joe Blow ") [default: maintainer or author from setup script])z packager=NzBRPM packager (eg. "Jane Doe ") [default: vendor])z doc-files=Nz6list of documentation files (space or comma-separated))z changelog=Nz RPM changelog)zicon=Nzname of icon file)z provides=Nz%capabilities provided by this package)z requires=Nz%capabilities required by this package)z conflicts=Nz-capabilities which conflict with this package)zbuild-requires=Nz+capabilities required to build this package)z obsoletes=Nz*capabilities made obsolete by this package) no-autoreqNz+do not automatically calculate dependencies) keep-tempkz"don't clean up RPM build directory) no-keep-tempNz&clean up RPM build directory [default])use-rpm-opt-flagsNz8compile with RPM_OPT_FLAGS when building from source RPM)no-rpm-opt-flagsNz&do not pass any RPM CFLAGS to compiler) rpm3-modeNz"RPM 3 compatibility mode (default)) rpm2-modeNzRPM 2 compatibility mode)z prep-script=Nz3Specify a script for the PREP phase of RPM building)z build-script=Nz4Specify a script for the BUILD phase of RPM building)z pre-install=Nz:Specify a script for the pre-INSTALL phase of RPM building)zinstall-script=Nz6Specify a script for the INSTALL phase of RPM building)z post-install=Nz;Specify a script for the post-INSTALL phase of RPM building)zpre-uninstall=Nzs r@finalize_optionszbdist_rpm.finalize_optionssU ""7,HIII = > C*ACCCGLL%@@DM ;  (!n ' _ N&LNN N 7g  (*246G*<== =   L 0 L&JLL L 0022 '%&D " ""7,DEEE ""$$$$$rBcd|dd|d|jd|jd|d|dt |jtrGdD]D}tj |r#||jvr|j |E|d d |d |d |d | |j |_ |d|d|d|d|d|d|d|d|d|d|d|d|d|d|d|ddS)Nr"zDevelopment/Librariesr%z <>r&r')READMEz README.txtr#1r$r!r(r)r*r+r,r-r.r/r0r1r2r4r5r6r7r8r=) ensure_stringrQ get_contactget_contact_emailensure_string_list isinstancer'listrJrKexistsappend_format_changelogr(ensure_filename)r?readmes r@rSzbdist_rpm.finalize_package_datas 7$;<<< 8(,(9(E(E(G(G(G(G(,(9(K(K(M(M(M(MO P P P :&&&  ,,, dnd + + 22 2 27>>&))2fDN.J.JN))&111 9c*** 8$$$ ./// ;'''//?? V$$$ ]+++ ^,,, -... ^,,, _--- ]+++ ^,,, _--- -...  +++  +++  ,,,  0111  ,,, <(((((rBc trctdtd|jtd|jtd|jtd|j|jr|j}||nRi}dD]E}tj |j |||<|||F|d}tj |d|j z}|t ||fd |z|jrdS|j jdd}|d }|jr d g|_nd g|_|d ||j _|d }|d}||||jrWtj |jr||j|nt7d|jzt9jddg} |jr| dn2|j r| dn| d| !dd|j"zg|j#r<| !ddtj $|j zg|j%s| d|j&r| d| |d} | dz} d| zdz} d| d| d |d!} tj'| } g}d} |(}|snL|)*}||d#||d }c|+}|rtYd$t[| z |+n#|+wxYw|.| |j/s|j 0rtc}nd%}|j stj |d&|}|2||jtj |j|}|j jd'||f|js|D]}tj |d(|}tj |r|2||jtj |jtj 3|}|j jd'||fdSdSdS))Nzbefore _get_package_data():zvendor =z packager =z doc_files =z changelog =)SOURCESSPECSBUILDRPMSSRPMSrfz%s.specz writing '%s'sdistbztargztarrrezicon file '%s' does not existz building RPMsrpmbuildz-bsz-bbz-baz--definez __python %sz _topdir %sz--cleanz--quietz%{name}-%{version}-%{release}z.src.rpmz%{arch}/z .%{arch}.rpmz rpm -q --qf ' z\n' --specfile ''TrzFailed to execute: %sanyrir rh)4rprintr%r&r'r(rrmkpathrJrKrLrrQget_nameexecuter_make_spec_file dist_filesreinitialize_commandr formats run_commandget_archive_files copy_filer)r_DistutilsFileErrorrinforr`rextendrr;abspathr9rpopenreadlinestripsplitcloseDistutilsExecErrorreprspawndry_runrRr move_filebasename)r?spec_dirrpm_dirr spec_pathsaved_dist_filesrjsource source_dirrpm_cmd nvr_stringsrc_rpm non_src_rpmq_cmdout binary_rpms source_rpmlinelstatus pyversionsrpmfilenamerEs r@runz bdist_rpm.runs  1 / 0 0 0 *dk * * * , . . . - 0 0 0 - 0 0 0 > (}H KK ! ! ! !GC ( (W\\$-;;  GAJ''''w'HGLL!*T->-G-G-I-I!IKK  Z**,,.#i/ 1 1 1 >  F ,7:))'22 > &$IEMM$IEM !!!'7$((**1-Y'  vz*** 9 Cw~~di(( Cty*5555(5 ACCC !!!,   " NN5 ! ! ! !   " NN5 ! ! ! ! NN5 ! ! ! MDK$?@AAA > M NNJ)BGOODM,J,JJL M M M~ & NN9 % % % : & NN9 % % %y!!! 5 z) :-> GG[[[)))-huoo KJ &||~~JJLL&&((""1Q4(((%!"1J &YY[[F P()@4;;)NOOO P IIKKKKCIIKKKK 7| @ 0022 ".00 ! # 8w||GG$4jAAtT]3337<< zBB!,33 )X6888# @&@@C',,wv<@@@+ @ @ @ @@@s BQQctj|jtj|S)N)rJrKrLrr)r?rKs r@ _dist_pathzbdist_rpm._dist_paths*w||DM27+;+;D+A+ABBBrBc  d|jzd|jddzd|jzd|jddzdd|jzg}t jd }d d | D}d }d }|||}||kr0| d| d|zd z| gd|j r| dn| d| d|j zd|jzddg|js/|js| dn| d|jzdD]}t#||}t'|t(r.| |dd|g|| |d||jdkr/| d|jz|jr| d|jz|jr0| dd|jz|jr:| d t2j|jz|jr| d!| dd"|jg|jdt2jt>j d#}d$|z} |j!rd%| z} d&|z} d'd(d)| fd*d+| fd,d-d.d/d0d1g } | D]\} } }t#|| }|s|r| dd2| zg|rbtE|5}| |#$d dddn #1swxYwY| || gd3|j%r0| d4d|j%z|j&r1| dd5g| |j&|S)6Nz %define name z%define version -_z%define unmangled_version z%define release z Summary: zrpm --eval %{__os_install_post} c<g|]}d|zS)z %s \)r).0rs r@ z-bdist_rpm._make_spec_file..s;!G!G!G%)"+TZZ\\!9!G!G!GrBzbrp-python-bytecompile \ z%brp-python-bytecompile %{__python} \ z2# Workaround for http://bugs.python.org/issue14443z%define __os_install_post )z Name: %{name}zVersion: %{version}zRelease: %{release}z-Source0: %{name}-%{unmangled_version}.tar.bz2z,Source0: %{name}-%{unmangled_version}.tar.gzz License: zGroup: z>BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildrootzPrefix: %{_prefix}zBuildArch: noarchz BuildArch: %s)VendorPackagerProvidesRequires Conflicts Obsoletesz: rnUNKNOWNzUrl: zDistribution: zBuildRequires: zIcon: z AutoReq: 0z %descriptionrz%s buildzenv CFLAGS="$RPM_OPT_FLAGS" z>%s install -O1 --root=$RPM_BUILD_ROOT --record=INSTALLED_FILES)r3r*z&%setup -n %{name}-%{unmangled_version}buildr+installr,)cleanr-zrm -rf $RPM_BUILD_ROOT) verifyscriptr.N)prer/N)postr0N)preunr1N)postunr2N%)rz%files -f INSTALLED_FILESz%defattr(-,root,root)z%doc z %changelog)'rQrs get_versionreplacer#get_description subprocess getoutputrL splitlinesr`r~r get_licenser"r=rRgetattrlowerr]r^get_urlr!r7r)rJrKrr<get_long_descriptionrrMargvr:openreadrr'r()r? spec_file vendor_hookproblemfixed fixed_hookfieldvaldef_setup_call def_build install_cmdscript_optionsrpm_optattrdefaultfs r@ruzbdist_rpm._make_spec_filesJ d/88:: : !2!>!>!@!@!H!HS!Q!Q Q (4+<+H+H+J+J J !5!5c#!>!> >  $+;;== =  !*+LMM ii!G!G-8-C-C-E-E!G!G!GHH /9 ((%88  $ $   Q R R R   9JFM N N N $$$ % % % > M   L M M M M   K L L L $+7799 9  " L $ % % %  B$4466 6  !4555   o? A A A : :E$ ..C#t$$ :  UUUCHHSMMM!BCCCC  UUUCC!8999   $ $ & &) 3 3   Wt'8'@'@'B'BB C C C  ! H   -0FF G G G   <   . XXd&9::; < < < 9 E   X(8(8(C(CC D D D ? +   \ * * *     2 2 4 4   $%)KKK0@0@!0M0M0MN/  ! C6BI25CD  N ni 0 (+ 6 ? 3 ( * , .  )7 . . $WdG$%%C .g .  'M"$%%%.c?a!(()=)=>>>???????????????$$W---     > A   Wsxx'?'?? @ @ @ > -         T^ , , ,s.;R55R9 <R9 cb |s|Sg}|dD]t}|}|ddkr|d|g:|ddkr||\|d|zu|ds|d=|S)Nrrrrrz )rrr~r`)r?r( new_changelogrs r@razbdist_rpm._format_changelog0s    OO%%++D11 2 2D::<+)+)+)ZB@B@B@HCCCgggRrBr )rrMrJdistutils.corerdistutils.debugrdistutils.file_utilrdistutils.errorsdistutils.sysconfigr distutilsrr rrBr@rs """"""!!!!!!******222222uuuuuuuuuurBPK!4.  9command/__pycache__/install_headers.cpython-311.opt-1.pycnu[ 0i2dZddlmZGddeZdS)zdistutils.command.install_headers Implements the Distutils 'install_headers' command, to install C/C++ header files to the Python include directory.)Commandc>eZdZdZddgZdgZdZdZdZdZ d Z d S) install_headerszinstall C/C++ header files)z install-dir=dz$directory to install header files to)forcefz-force installation (overwrite existing files)rc0d|_d|_g|_dS)Nr) install_dirroutfilesselfs H/opt/alt/python311/lib64/python3.11/distutils/command/install_headers.pyinitialize_optionsz"install_headers.initialize_optionss  c4|ddddS)Ninstall)rr )rr)set_undefined_optionsr s rfinalize_optionsz install_headers.finalize_optionss, ""9#E#5 7 7 7 7 7rc|jj}|sdS||j|D]:}|||j\}}|j|;dSN) distributionheadersmkpathr copy_filer append)r rheaderout_s rrunzinstall_headers.run!s{#+  F D$%%% & &F~~fd.>??HS! M  % % % % & &rc|jjpgSr)rrr s r get_inputszinstall_headers.get_inputs+s (.B.rc|jSr)r r s r get_outputszinstall_headers.get_outputs.s }rN) __name__ __module__ __qualname__ description user_optionsboolean_optionsrrrr!r#rrrr s.K=FL iO 777 &&&///rrN)__doc__distutils.corerrr*rrr-sW** #"""""%%%%%g%%%%%rPK!¯YY3command/__pycache__/bdist_rpm.cpython-311.opt-1.pycnu[ 0i!TdZddlZddlZddlZddlmZddlmZddlm Z ddl Tddl m Z ddl mZGd d eZdS) zwdistutils.command.bdist_rpm Implements the Distutils 'bdist_rpm' command (create RPM source and binary distributions).N)Command)DEBUG) write_file)*)get_python_version)logcXeZdZdZgdZgdZddddZdZd Zd Z d Z d Z d Z dZ dS) bdist_rpmzcreate an RPM distribution)))z bdist-base=Nz/base directory for creating built distributions)z rpm-base=Nzdbase directory for creating RPMs (defaults to "rpm" under --bdist-base; must be specified for RPM 2))z dist-dir=dzDdirectory to put final RPM files in (and .spec files if --spec-only))zpython=NzMpath to Python interpreter to hard-code in the .spec file (default: "python"))z fix-pythonNzLhard-code the exact path to the current Python interpreter in the .spec file)z spec-onlyNzonly regenerate spec file)z source-onlyNzonly generate source RPM)z binary-onlyNzonly generate binary RPM)z use-bzip2Nz7use bzip2 instead of gzip to create source distribution)zdistribution-name=Nzgname of the (Linux) distribution to which this RPM applies (*not* the name of the module distribution!))zgroup=Nz9package classification [default: "Development/Libraries"])zrelease=NzRPM release number)zserial=NzRPM serial number)zvendor=NzaRPM "vendor" (eg. "Joe Blow ") [default: maintainer or author from setup script])z packager=NzBRPM packager (eg. "Jane Doe ") [default: vendor])z doc-files=Nz6list of documentation files (space or comma-separated))z changelog=Nz RPM changelog)zicon=Nzname of icon file)z provides=Nz%capabilities provided by this package)z requires=Nz%capabilities required by this package)z conflicts=Nz-capabilities which conflict with this package)zbuild-requires=Nz+capabilities required to build this package)z obsoletes=Nz*capabilities made obsolete by this package) no-autoreqNz+do not automatically calculate dependencies) keep-tempkz"don't clean up RPM build directory) no-keep-tempNz&clean up RPM build directory [default])use-rpm-opt-flagsNz8compile with RPM_OPT_FLAGS when building from source RPM)no-rpm-opt-flagsNz&do not pass any RPM CFLAGS to compiler) rpm3-modeNz"RPM 3 compatibility mode (default)) rpm2-modeNzRPM 2 compatibility mode)z prep-script=Nz3Specify a script for the PREP phase of RPM building)z build-script=Nz4Specify a script for the BUILD phase of RPM building)z pre-install=Nz:Specify a script for the pre-INSTALL phase of RPM building)zinstall-script=Nz6Specify a script for the INSTALL phase of RPM building)z post-install=Nz;Specify a script for the post-INSTALL phase of RPM building)zpre-uninstall=Nzs r@finalize_optionszbdist_rpm.finalize_optionssU ""7,HIII = > C*ACCCGLL%@@DM ;  (!n ' _ N&LNN N 7g  (*246G*<== =   L 0 L&JLL L 0022 '%&D " ""7,DEEE ""$$$$$rBcd|dd|d|jd|jd|d|dt |jtrGdD]D}tj |r#||jvr|j |E|d d |d |d |d | |j |_ |d|d|d|d|d|d|d|d|d|d|d|d|d|d|d|ddS)Nr"zDevelopment/Librariesr%z <>r&r')READMEz README.txtr#1r$r!r(r)r*r+r,r-r.r/r0r1r2r4r5r6r7r8r=) ensure_stringrQ get_contactget_contact_emailensure_string_list isinstancer'listrJrKexistsappend_format_changelogr(ensure_filename)r?readmes r@rSzbdist_rpm.finalize_package_datas 7$;<<< 8(,(9(E(E(G(G(G(G(,(9(K(K(M(M(M(MO P P P :&&&  ,,, dnd + + 22 2 27>>&))2fDN.J.JN))&111 9c*** 8$$$ ./// ;'''//?? V$$$ ]+++ ^,,, -... ^,,, _--- ]+++ ^,,, _--- -...  +++  +++  ,,,  0111  ,,, <(((((rBc trctdtd|jtd|jtd|jtd|j|jr|j}||nRi}dD]E}tj |j |||<|||F|d}tj |d|j z}|t ||fd |z|jrdS|j jdd}|d }|jr d g|_nd g|_|d ||j _|d }|d}||||jrWtj |jr||j|nt7d|jzt9jddg} |jr| dn2|j r| dn| d| !dd|j"zg|j#r<| !ddtj $|j zg|j%s| d|j&r| d| |d} | dz} d| zdz} d| d| d |d!} tj'| } g}d} |(}|snL|)*}||d#||d }c|+}|rtYd$t[| z |+n#|+wxYw|.| |j/s|j 0rtc}nd%}|j stj |d&|}|2||jtj |j|}|j jd'||f|js|D]}tj |d(|}tj |r|2||jtj |jtj 3|}|j jd'||fdSdSdS))Nzbefore _get_package_data():zvendor =z packager =z doc_files =z changelog =)SOURCESSPECSBUILDRPMSSRPMSrfz%s.specz writing '%s'sdistbztargztarrrezicon file '%s' does not existz building RPMsrpmbuildz-bsz-bbz-baz--definez __python %sz _topdir %sz--cleanz--quietz%{name}-%{version}-%{release}z.src.rpmz%{arch}/z .%{arch}.rpmz rpm -q --qf ' z\n' --specfile ''TrzFailed to execute: %sanyrir rh)4rprintr%r&r'r(rrmkpathrJrKrLrrQget_nameexecuter_make_spec_file dist_filesreinitialize_commandr formats run_commandget_archive_files copy_filer)r_DistutilsFileErrorrinforr`rextendrr;abspathr9rpopenreadlinestripsplitcloseDistutilsExecErrorreprspawndry_runrRr move_filebasename)r?spec_dirrpm_dirr spec_pathsaved_dist_filesrjsource source_dirrpm_cmd nvr_stringsrc_rpm non_src_rpmq_cmdout binary_rpms source_rpmlinelstatus pyversionsrpmfilenamerEs r@runz bdist_rpm.runs  1 / 0 0 0 *dk * * * , . . . - 0 0 0 - 0 0 0 > (}H KK ! ! ! !GC ( (W\\$-;;  GAJ''''w'HGLL!*T->-G-G-I-I!IKK  Z**,,.#i/ 1 1 1 >  F ,7:))'22 > &$IEMM$IEM !!!'7$((**1-Y'  vz*** 9 Cw~~di(( Cty*5555(5 ACCC !!!,   " NN5 ! ! ! !   " NN5 ! ! ! ! NN5 ! ! ! MDK$?@AAA > M NNJ)BGOODM,J,JJL M M M~ & NN9 % % % : & NN9 % % %y!!! 5 z) :-> GG[[[)))-huoo KJ &||~~JJLL&&((""1Q4(((%!"1J &YY[[F P()@4;;)NOOO P IIKKKKCIIKKKK 7| @ 0022 ".00 ! # 8w||GG$4jAAtT]3337<< zBB!,33 )X6888# @&@@C',,wv<@@@+ @ @ @ @@@s BQQctj|jtj|S)N)rJrKrLrr)r?rKs r@ _dist_pathzbdist_rpm._dist_paths*w||DM27+;+;D+A+ABBBrBc  d|jzd|jddzd|jzd|jddzdd|jzg}t jd }d d | D}d }d }|||}||kr0| d| d|zd z| gd|j r| dn| d| d|j zd|jzddg|js/|js| dn| d|jzdD]}t#||}t'|t(r.| |dd|g|| |d||jdkr/| d|jz|jr| d|jz|jr0| d d|jz|jr:| d!t2j|jz|jr| d"| dd#|jg|jdt2jt>j d$}d%|z} |j!rd&| z} d'|z} d(d)d*| fd+d,| fd-d.d/d0d1d2g } | D]\} } }t#|| }|s|r| dd3| zg|rbtE|5}| |#$d dddn #1swxYwY| || gd4|j%r0| d5d|j%z|j&r1| dd6g| |j&|S)7ziGenerate the text of an RPM spec file and return it as a list of strings (one per line). z %define name z%define version -_z%define unmangled_version z%define release z Summary: zrpm --eval %{__os_install_post} c<g|]}d|zS)z %s \)r).0rs r@ z-bdist_rpm._make_spec_file..s;!G!G!G%)"+TZZ\\!9!G!G!GrBzbrp-python-bytecompile \ z%brp-python-bytecompile %{__python} \ z2# Workaround for http://bugs.python.org/issue14443z%define __os_install_post )z Name: %{name}zVersion: %{version}zRelease: %{release}z-Source0: %{name}-%{unmangled_version}.tar.bz2z,Source0: %{name}-%{unmangled_version}.tar.gzz License: zGroup: z>BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildrootzPrefix: %{_prefix}zBuildArch: noarchz BuildArch: %s)VendorPackagerProvidesRequires Conflicts Obsoletesz: rnNUNKNOWNzUrl: zDistribution: zBuildRequires: zIcon: z AutoReq: 0z %descriptionrz%s buildzenv CFLAGS="$RPM_OPT_FLAGS" z>%s install -O1 --root=$RPM_BUILD_ROOT --record=INSTALLED_FILES)r3r*z&%setup -n %{name}-%{unmangled_version}buildr+installr,)cleanr-zrm -rf $RPM_BUILD_ROOT) verifyscriptr.N)prer/N)postr0N)preunr1N)postunr2N%)rz%files -f INSTALLED_FILESz%defattr(-,root,root)z%doc z %changelog)'rQrs get_versionreplacer#get_description subprocess getoutputrL splitlinesr`r~r get_licenser"r=rRgetattrlowerr]r^get_urlr!r7r)rJrKrr<get_long_descriptionrrMargvr:openreadrr'r()r? spec_file vendor_hookproblemfixed fixed_hookfieldvaldef_setup_call def_build install_cmdscript_optionsrpm_optattrdefaultfs r@ruzbdist_rpm._make_spec_filesE d/88:: : !2!>!>!@!@!H!HS!Q!Q Q (4+<+H+H+J+J J !5!5c#!>!> >  $+;;== =  !*+LMM ii!G!G-8-C-C-E-E!G!G!GHH /9 ((%88  $ $   Q R R R   9JFM N N N $$$ % % % > M   L M M M M   K L L L $+7799 9  " L $ % % %  B$4466 6  !4555   o? A A A : :E$ ..C#t$$ :  UUUCHHSMMM!BCCCC  UUUCC!8999   $ $ & &) 3 3   Wt'8'@'@'B'BB C C C  ! H   -0FF G G G   <   . XXd&9::; < < < 9 E   X(8(8(C(CC D D D ? +   \ * * *     2 2 4 4   $%)KKK0@0@!0M0M0MN/  ! C6BI25CD  N ni 0 (+ 6 ? 3 ( * , .  )7 . . $WdG$%%C .g .  'M"$%%%.c?a!(()=)=>>>???????????????$$W---     > A   Wsxx'?'?? @ @ @ > -         T^ , , ,s-;R44R8 ;R8 c`|s|Sg}|dD]t}|}|ddkr|d|g:|ddkr||\|d|zu|ds|d=|S)zKFormat the changelog correctly and convert it to a list of strings rrrrrz )rrr~r`)r?r( new_changelogrs r@razbdist_rpm._format_changelog0s   OO%%++D11 2 2D::<+)+)+)ZB@B@B@HCCCgggRrBr )__doc__rrMrJdistutils.corerdistutils.debugrdistutils.file_utilrdistutils.errorsdistutils.sysconfigr distutilsrr rrBr@rs """"""!!!!!!******222222uuuuuuuuuurBPK!A!R((0command/__pycache__/upload.cpython-311.opt-2.pycnu[ 0i ddlZddlZddlZddlmZddlmZddlmZm Z ddl m Z ddl m Z mZddlmZddlmZdd lmZeed deed deed dd ZGddeZdS)N)standard_b64encode) HTTPError)urlopenRequest)urlparse)DistutilsErrorDistutilsOptionError) PyPIRCCommand)spawn)logmd5sha256blake2b) md5_digest sha256_digestblake2_256_digestcXeZdZdZejddgzZejdgzZdZdZdZ dZ d S) uploadzupload binary package to PyPI)signszsign files to upload using gpg)z identity=izGPG identity used to sign filesrcttj|d|_d|_d|_d|_d|_dS)NrF)r initialize_optionsusernamepassword show_responseridentity)selfs ?/opt/alt/python311/lib64/python3.11/distutils/command/upload.pyrzupload.initialize_options*s;(...    cTtj||jr|jst d|}|ikr4|d|_|d|_|d|_|d|_ |js|j jr|j j|_dSdSdS)Nz.Must use --sign for --identity to have meaningrr repositoryrealm) r finalize_optionsrrr _read_pypircrrr#r$ distribution)rconfigs r r%zupload.finalize_options2s&t,,, =  &@ ""$$ R<<":.DM":.DM$\2DODJ} 7!2!; 7 -6DMMM 7 7 7 7r!c|jjsd}t||jjD]\}}}||||dS)NzHMust create and upload files in one command (e.g. setup.py sdist upload))r' dist_filesr upload_file)rmsgcommand pyversionfilenames r runz upload.runDsf + ,2C&s++ +,0,=,H ; ; (GY   Wi : : : : ; ;r!c t|j\}}}}}} |s|s| rtd|jz|dvrtd|z|jr1ddd|g} |jrd|jg| dd<t | |j t|d } | } | n#| wxYw|j j } id d d dd| d| dtj|| fd|d|ddd| d| d| d| d| d| d| d| d| | | | | d}d |d!<t<D]9\}}| ||  ||<*#tB$rY6wxYw|jrdt|d"zd 5} tj|d"z| f|d#<dddn #1swxYwY|j"d$z|j#z$d%}d&tK|&d%z}d'}d(|$d%z}|d)z}tOj(}|D]\}}d*|z}tS|tTs|g}|D]}tW|tXur|d+|d,zz }|d-}n"t[|$d.}|.||.|$d.|.d/|.||.||/}d0|d1|j}|0|tbj2d2|zt[tg||d3}ti|j||4} tk|}|6}|j7}n`#tp$r} | j9}| j7}Yd} ~ nCd} ~ wtt$r3} |0t[| tbj;d} ~ wwxYw|d5kr~|0d6|d7|tbj2|j<rO|=|}!d8>d9|!d9f}|0|tbj2dSdSd:|d7|}|0|tbj;t|);NzIncompatible url %s)httphttpszunsupported schema gpgz --detach-signz-az --local-user)dry_runrbz:action file_uploadprotocol_version1nameversioncontentfiletyper.metadata_versionz1.0summary home_pageauthor author_emaillicense descriptionkeywordsplatform classifiers) download_urlprovidesrequires obsoletesrcommentz.asc gpg_signature:asciizBasic z3--------------GHSKFJDLGDS7543FJKLFHRE75642756743254s --s-- z+ Content-Disposition: form-data; name="%s"z; filename="%s"rzutf-8s z Submitting z to z multipart/form-data; boundary=%s)z Content-typezContent-length Authorization)dataheaderszServer response (z):  zK---------------------------------------------------------------------------zUpload failed ()@rr#AssertionErrorrrr r6openreadcloser'metadataget_name get_versionospathbasenameget_descriptionget_url get_contactget_contact_email get_licenceget_long_description get_keywords get_platformsget_classifiersget_download_url get_provides get_requires get_obsoletes_FILE_CONTENT_DIGESTSitems hexdigest ValueErrorrrencoderdecodeioBytesIO isinstancelisttypetuplestrwritegetvalueannouncer INFOlenrrgetcoder,rcodeOSErrorERRORr_read_pypi_responsejoinr)"rr-r.r/schemanetlocurlparamsquery fragmentsgpg_argsfr=metarS digest_name digest_cons user_passauthboundary sep_boundary end_boundarybodykeyvaluetitler,rTrequestresultstatusreasonetexts" r r+zupload.upload_fileLsF T_ % % 6VUI  JU Ji J !6!HII I * * * !6!?@@ @ 9 (h?H} @!/ ?1 (, ( ( ( ( $   ffhhG GGIIIIAGGIIII ) }  DMMOO  t'')) ((227;    t++--!" #$ d&&((%& D2244'( t'')))* 44466+, ))++-. **,,/0 4//1112!1133))++))++++--;@Y)>(C(C(E(E   $K" $/K$8$8$B$B$D$D[!!     9 3h'.. 3!)+)9)9()C)Cf)L)*)3_% 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 ]S(4=8@@II ,Y77>>wGGGI 8??7#;#;; #i/ z||**,, " "JCCcIEeT**  " ";;%''.q99E!!HEEJJ--g66E <((( 5<<00111 ;''' 5!!!! " <   }}'/xxA c38$$$?I!#d))nn!   $/")+++ W%%F^^%%FZFF   VFUFFFFFF    MM#a&&#) , , ,   S== MMMG( $ $ $! -//77ii4 :;; c38,,,,, - - /5ffff=C MM#sy ) ) ) %% %sTCC6 J J$#J$:LL L *T<< VU V&.VVN) __name__ __module__ __qualname__rEr user_optionsboolean_optionsrr%r0r+r!r rrs1K - +=1  L $3vh>O777$;;;K&K&K&K&K&r!r)r^rthashlibbase64r urllib.errorrurllib.requestrr urllib.parserdistutils.errorsrr distutils.corer distutils.spawnr distutilsr getattrrnrrr!r rsC %%%%%%""""""++++++++!!!!!!AAAAAAAA((((((!!!!!! ''5$//WWh55 )T::y&y&y&y&y&]y&y&y&y&y&r!PK!b&nn3command/__pycache__/build_ext.cpython-311.opt-2.pycnu[ 0i{ ddlZddlZddlZddlZddlmZddlTddlmZm Z ddlm Z ddl m Z ddl mZddlmZdd lmZdd lmZejd Zd ZGd deZdS)N)Command)*)customize_compilerget_python_version)get_config_h_filename) newer_group) Extension) get_platform)log) USER_BASEz3^[a-zA-Z_][a-zA-Z_0-9]*(\.[a-zA-Z_][a-zA-Z_0-9]*)*$c&ddlm}|dS)Nrshow_compilers)distutils.ccompilerrrs B/opt/alt/python311/lib64/python3.11/distutils/command/build_ext.pyrrs(222222Nc eZdZdZdejzZdddddezfdd d d ezfd d ddddezfddddddddddgZgdZ ddde fgZ d Z d!Z d"Zd#Zd$Zd%Zd&Zd'Zd(Zejd)Zd*Zd+Zd,Zd-Zd.Zd/Zd0Zd1ZdS)2 build_extz8build C/C++ extensions (compile/link to build directory)z (separated by '%s'))z build-lib=bz(directory for compiled extension modules)z build-temp=tz1directory for temporary files (build by-products)z plat-name=pz>platform name to cross-compile for, if supported (default: %s))inplaceiziignore build-lib and put compiled extensions into the source directory alongside your pure Python modulesz include-dirs=Iz.list of directories to search for header files)zdefine=DzC preprocessor macros to define)zundef=Uz!C preprocessor macros to undefine)z libraries=lz!external C libraries to link withz library-dirs=Lz.directories to search for external C libraries)zrpath=Rz7directories to search for shared C libraries at runtime)z link-objects=Oz2extra explicit link objects to include in the link)debuggz'compile/link with debugging information)forcefz2forcibly build everything (ignore file timestamps))z compiler=czspecify the compiler type)z parallel=jznumber of parallel build jobs)swig-cppNz)make SWIG create C++ files (default is C))z swig-opts=Nz!list of SWIG command line options)zswig=Nzpath to the SWIG executable)userNz#add user include, library and rpath)rr!r#r'r(z help-compilerNzlist available compilersc,d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_ d|_ d|_ d|_ d|_ d|_d|_d|_d|_d|_d|_d|_dS)Nr) extensions build_lib plat_name build_temprpackage include_dirsdefineundef libraries library_dirsrpath link_objectsr!r#compilerswigswig_cpp swig_optsr(parallelselfs rinitialize_optionszbuild_ext.initialize_optionsjs               rc ddlm}|ddddddd d |j|jj|_|jj|_|}|d }|j |jj pg|_ t|j tr)|j tj|_ tjtjkrB|j tjtjd |j | tjj||kr<|j | tjj|d|d|jg|_|jg|_nCt|jtr)|j tj|_|jg|_nCt|jtr)|j tj|_tjdkr|jtjtjdtjtjkrB|jtjtjd|jr+tj|jd|_n*tj|jd|_|j tjt?tAtdd}|r|j||j!dkrd}n|j!dd}tjtjd}|r tj||}|j|tj"dddkrtj#$tjtjdrT|jtjtjddtKzdn|jd|&drO|j's.|j|&d n|jd|j(r+|j( d!}d"|D|_(|j)r|j) d!|_)|j*g|_*n|j* d#|_*|j+rtjtXd }tjtXd} tj-|r|j |tj-| r4|j| |j| t|j.tr9 t_|j.|_.dS#t`$rtcd$wxYwdS)%Nr) sysconfigbuild)r+r+)r-r-)r6r6)r!r!)r#r#)r:r:)r,r,) plat_specificincluder2r5ntlibsDebugRelease_homewin32PCbuildcygwinbinlibpythonconfig.Py_ENABLE_SHAREDLIBDIR,cg|]}|dfS)1).0symbols r z.build_ext.finalize_options..s???VFC=???r zparallel should be an integer)2 distutilsr?set_undefined_optionsr. distribution ext_package ext_modulesr*get_python_incr/ isinstancestrsplitospathsepsys exec_prefixbase_exec_prefixappendpathjoinextendensure_string_listr2r3r4nameprefixr!r-dirnamergetattrr,platform executable startswithrget_config_var python_buildr0r1r9r(r isdirr:int ValueErrorDistutilsOptionError) r<r? py_includeplat_py_include _sys_homesuffixnew_libdefines user_includeuser_libs rfinalize_optionszbuild_ext.finalize_optionss`'''''' ""7#=#?#;#5#5#;#= % % % < ,8DL+7--// #222CC   $ $ 1 > D"D  d' - - D $ 1 7 7 C CD  ?c2 2 2   $ $RW\\#/9%M%M N N N   !1!1"'/!B!BCCC j ( (   $ $%%bgo66 8 8 8  ,,, /// > !DN   $ "D   )3 / / D $ 1 7 7 C CD  : DJJ  C ( ( 6))"*55DJ 7d??   $ $RW\\#/6%J%J K K K#sz11!((c6JF)S)STTTz K"$',,t"H"H"$',,t "J"J   $ $RW__5J5L5L%M%M N N NWd33I 4!((333~(( +gll3?I>>G 8',,w77   $ $W - - - < x ' '~((cou)M)MNN .!((cj%6>ASAUAU6U6>*@*@AAAA !((---  $ $%7 8 8 .) .!(()A)A()K)KLLLL!((--- ; @k'',,G??w???DK : /))#..DJ > !DNN!^11#66DN 9 ,7<< 9==Lw||Iu55Hw}}\** 7!((666w}}X&& ,!((222 !!(+++ dmS ) ) L L #DM 2 2  L L L*+JKKK L L Ls ;]]0cvddlm}|jsdS|jrb|d}|j|pg|j |j ||j |j |j|j|_ t!|j t"jdkr6|jt)kr|j |j|j|j |j|j(|jD] \}}|j ||!|j$|jD]}|j ||j|j |j|j |j |j |j|j |j|j |j !|j |"dS)Nr) new_compiler build_clib)r6verbosedry_runr#rD)#rrr*r_has_c_librariesget_finalized_commandr2rnget_library_namesr3rkrr6rrr#rrfrpr,r initializer/set_include_dirsr0 define_macror1undefine_macro set_librariesset_library_dirsr4set_runtime_library_dirsr5set_link_objectsbuild_extensions)r<rrrpvaluemacros rrunz build_ext.runs2444444  F   , , . . <33LAAJ N ! !*">">"@"@"FB G G G   $ $Z%: ; ; ;% dm-1\-1\+/:777  4=))) 7d??t~?? M $ $T^ 4 4 4   ( M * *4+< = = = ; "!% 8 8 u **47777 : ! 4 4 ,,U3333 > % M ' ' 7 7 7   ( M * *4+< = = = : ! M 2 24: > > >   ( M * *4+< = = = rc t|tstdt|D] \}}t|trt|t rt |dkrtd|\}}tjd|t|trt |stdt|tstdt ||d}dD]*}| |}|t|||+| d |_d |vrtjd | d }|rg|_g|_|D]} t| t rt | d vstdt | dkr!|j| dkt | dkr|j| |||< dS)Nz:'ext_modules' option must be a list of Extension instanceszMeach element of 'ext_modules' option must be an Extension instance or 2-tuplezvold-style (ext_name, build_info) tuple found in ext_modules for extension '%s' -- please convert to Extension instancezRfirst element of each tuple in 'ext_modules' must be the extension name (a string)zOsecond element of each tuple in 'ext_modules' must be a dictionary (build info)sources)r/r3r2 extra_objectsextra_compile_argsextra_link_argsr4def_filez9'def_file' element of build info dict no longer supportedmacros)rArz9'macros' element of build info dict must be 1- or 2-tuplerAr)rclistDistutilsSetupError enumerater tuplelenr warnrdextension_name_rematchdictgetsetattrruntime_library_dirs define_macros undef_macrosrk) r<r*rextext_name build_infokeyvalrrs rcheck_extensions_listzbuild_ext.check_extensions_listVs *d++ P%NPP P ++> > FAs#y)) c5)) 8SXX]])7888$' Hj H?@H J J Jx-- @%++H55 @)?@@@j$// <);<<< Hj&;<'>C $Z''/000  ^^H--F 8$&!#% #88E&ue447Uv9M9M167775zzQ(//a9999Uq)00777JqMM}> > rc||jg}|jD]}||j|SN)rr*rnr)r< filenamesrs rget_source_fileszbuild_ext.get_source_filessO ""4?333 ? * *C   S[ ) ) ) )rc||jg}|jD]/}|||j0|Sr)rr*rkget_ext_fullpathrp)r<outputsrs r get_outputszbuild_ext.get_outputss\ ""4?333 ? < .s:333 t';SAA333r) r:rf cpu_countconcurrent.futuresr ImportErrorrr*zip_filter_build_errorsresult)r<workersrfuturesrfutrs` @rrz$build_ext._build_extensions_parallels- =D lnnG  = = = = = = =   GGG  ?  ) ) + + + F  G 4 4 4 !33333"&/333G99 ! !S..s33!!JJLLL!!!!!!!!!!!!!!! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !sC. ==$AC#(C = C# C C#C C##C'*C'c|jD]D}||5||dddn #1swxYwYEdSr)r*rr)r<rs rrz"build_ext._build_extensions_serials? * *C**3// * *$$S))) * * * * * * * * * * * * * * * * *sAA A c#K dVdS#tttf$r3}|js|d|jd|Yd}~dSd}~wwxYw)Nzbuilding extension "z " failed: )CCompilerErrorDistutilsError CompileErroroptionalrrp)r<res rrzbuild_ext._filter_build_errorss % EEEEE = % % %<  IIIxxx$ % % % % % % % % % %s A(AAc |j}|t|ttfst d|jzt |}||j}||jz}|j s-t||dstj d|jdStj d|j|||}|jpg}|jdd}|jD]}||f|j||j||j|j ||j}|dd|_|jr||j|jpg}|jp|j|} |j|||||j|j ||!||j |j|  dS)Nzjin 'ext_modules' option (extension '%s'), 'sources' must be present and must be a list of source filenamesnewerz$skipping '%s' extension (up-to-date)zbuilding '%s' extension) output_dirrr/r!extra_postargsdepends)r2r3rrexport_symbolsr!r- target_lang)"rrcrrrrpsortedrrr#rr r!info swig_sourcesrrrrkr6compiler-r/_built_objectsrrnrlanguagedetect_languagelink_shared_object get_librariesr3rget_export_symbols) r<rrext_pathr extra_argsrr1objectsrs rrzbuild_ext.build_extensions+ ?*WtUm"D"D?%/14:;; ; //((22CK'  :k'8WEE : I>&aaaj   . NN3, - - -(.B <I4=#@#@#I#I (( X((--)!$!9%22377*  ) " " " " "rc g}g}i}|jrtjd|jsd|jvs d|jvrd}nd}|D]{}tj|\}} | dkr<||dz|z|||d||<f||||s|S|jp| } | dg} | |j|jr| d|js|jD]} | | |D];}||} tj d || | | d | |gz<|S) Nz/--swig-cpp is deprecated - use --swig-opts=-c++z-c++z.cppz.cz.i_wrapz-pythonzswigging %s to %sz-o) r8r rr9rfrlsplitextrkr7 find_swigrnrspawn)r<r extension new_sourcesr swig_targets target_extsourcebaserr7swig_cmdotargets rrzbuild_ext.swig_sources2s     = H HF G G G = Vt~55 i) ) )JJJ + +F'**622KT3d{{""4'>J#>???##F+++'22 V$$""6****  y,DNN,,)$''' = $ OOF # # #~ #( # #""""" : :F!&)F H(&& 9 9 9 JJx4"88 9 9 9 9rc tjdkrdStjdkrMdD]H}tjd|zd}tj|r|cSIdSt dtjz)Nposixr7rD)z1.3z1.2z1.1z c:\swig%szswig.exez>I don't know how to find (much less run) SWIG on platform '%s')rfrprlrmisfileDistutilsPlatformError)r<versfns rrzbuild_ext.find_swighs  7g  6 W__. " "W\\,"5zBB7>>"%%III"z(%')w/00 0rc, ||}|d}||d}|jsDt jj|dd|gz}tj|j|Sd|dd}|d}tj | |}tj||S)NrRrrbuild_py) get_ext_fullnamereget_ext_filenamerrfrlrmr+rabspathget_package_dir)r<rfullnamemodpathfilenamer.r package_dirs rrzbuild_ext.get_ext_fullpaths ((22..%%((55| :w|WSbS\8*%<=H7<<99 9((71R4=))--j99gooh&>&>w&G&GHH w||K222rc0 |j|S|jdz|zS)NrR)r.)r<rs rrzbuild_ext.get_ext_fullnames( & < O<#%0 0rc| ddlm}|d}|d}tjj||zS)NrrwrR EXT_SUFFIX)distutils.sysconfigrwrerfrlrm)r<rrwr ext_suffixs rrzbuild_ext.get_ext_filenamesO  766666>>#&&#^L11 w|X&33rct d|jddz} |dnO#t$rBd|ddddz}YnwxYwd |z}||jvr|j||jS) N_rRrasciirpunycode-_PyInit)rpreencodeUnicodeEncodeErrorreplacedecoderrk)r<rr initfunc_names rrzbuild_ext.get_export_symbolss sx~~c**2.. Y MM' " " " "! Y Y Y6==44<>)- >*N;77 }9(<'===}r) __name__ __module__ __qualname__ descriptionrfrgsep_byr user_optionsboolean_optionsr help_optionsr=rrrrrrrr contextlibcontextmanagerrrrrrrrrrrXrrrr!sLK($bj 0F 5 > s '<>> * + 9 # 9F B D , . . # 9F B D D ? 4 ? & * 6 . ( 0O) LVHGGO $ #^ 5 L 0RLRLRLh> > > @L L L \   ,,,!!!(*** %%%J"J"J"X444l00003336111444"""&11111rr)r8rfrerhdistutils.corerdistutils.errorsrrrrdistutils.dep_utilrdistutils.extensionr distutils.utilr r]r siter rrrrrXrrrAs;  """"""FFFFFFFF555555******))))))''''''BJ;== Q Q Q Q Q Q Q Q Q Q rPK!ө5command/__pycache__/install_lib.cpython-311.opt-2.pycnu[ 0i X ddlZddlZddlZddlmZddlmZdZGddeZ dS)N)Command)DistutilsOptionErrorz.pycfeZdZdZgdZgdZddiZdZdZdZ d Z d Z d Z d Z d ZdZdZdS) install_libz7install all Python modules (extensions and pure Python)))z install-dir=dzdirectory to install to)z build-dir=bz'build directory (where to install from))forcefz-force installation (overwrite existing files))compileczcompile .py to .pyc [default]) no-compileNzdon't compile .py files)z optimize=Ozlalso compile with optimization: -O1 for "python -O", -O2 for "python -OO", and -O0 to disable [default: -O0]) skip-buildNzskip the build steps)r r rr r cZd|_d|_d|_d|_d|_d|_dS)Nr) install_dir build_dirr r optimize skip_buildselfs D/opt/alt/python311/lib64/python3.11/distutils/command/install_lib.pyinitialize_optionszinstall_lib.initialize_options3s1   c H|ddddddd|jd|_|jd |_t|jtsP t |j|_|jd vrt dS#t t f$rtd wxYwdS) Ninstall) build_libr)rr)r r )r r )rr)rrTF)rzoptimize must be 0, 1, or 2)set_undefined_optionsr r isinstanceintAssertionError ValueErrorrrs rfinalize_optionszinstall_lib.finalize_options<s ""9#=#A#5#9#;#?  $ $ $ < DL = !DM$--- J J #DM 2 2 = 11((21/ J J J*+HIII J  J Js )A>>!Bc||}|0|jr||dSdSdSN)buildr distributionhas_pure_modules byte_compileroutfiless rrunzinstall_lib.runVsb <<>>  D$5$F$F$H$H    h ' ' ' ' '   rc|js^|jr|d|jr|ddSdSdSNbuild_py build_ext)rr(r) run_commandhas_ext_modulesrs rr'zinstall_lib.buildfs| . 1133 -  ,,, 0022 .  -----  . . . .rctj|jr!||j|j}n|d|jzdS|S)Nz3'%s' does not exist -- no Python modules to install)ospathisdirr copy_treerwarnr+s rrzinstall_lib.installmsa 7== ( ( ~~dnd6FGGHH IIKn% & & & Frc2tjr|ddSddlm}|dj}|jr||d|j||j |j dkr'|||j |j||j |j dSdS)Nz%byte-compiling is disabled, skipping.r)r*r)rr prefixdry_run)rr r;verboser<) sysdont_write_bytecoder9distutils.utilr*get_finalized_commandrootr r r<rr=)rfilesr* install_roots rr*zinstall_lib.byte_compilevs  "  II= > > > F////// 11)<<A < / L#z,!% / / / / =1   L#z,!%t| E E E E E E  rc V|sgS||}|}t||}t|ttjz}g}|D]=} |tj|| |d>|Sr&) rA get_outputsgetattrlenr5sepappendr6join) rhas_any build_cmd cmd_option output_dir build_filesr prefix_lenoutputsfiles r_mutate_outputszinstall_lib._mutate_outputss I..y99 ++-- Iz22 ^^c"&kk1  H HD NN27<< D4EFF G G G Grcg}|D]}tjtj|d}|tkrP|jr4|tj |d|j dkr9|tj ||j |S)Nr) optimizationr) r5r6splitextnormcasePYTHON_SOURCE_EXTENSIONr rJ importlibutilcache_from_sourcer)r py_filenamesbytecode_filespy_fileexts r_bytecode_filenameszinstall_lib._bytecode_filenamess# : :G'""27#3#3G#<#<==a@C---| /%%in&F&F"'G'.'.///}q  %%in&F&F$-'G'9'9:::rc" ||jdd|j}|jr||}ng}||jdd|j}||z|zS)Nr0rr1)rTr(r)rr rbr3)r pure_outputsbytecode_outputs ext_outputss rrFzinstall_lib.get_outputss  !2!C!C!E!E!+[!%!1 3 3  < "#77 EE  !   !2!B!B!D!D!,k!%!1 3 3  ..<distutils.corerdistutils.errorsrrZrrrrrrvs!   """"""111111 HHHHH'HHHHHrPK!?x!!5command/__pycache__/install_lib.cpython-311.opt-1.pycnu[ 0i ZdZddlZddlZddlZddlmZddlmZdZ GddeZ dS)zkdistutils.command.install_lib Implements the Distutils 'install_lib' command (install all Python modules).N)Command)DistutilsOptionErrorz.pycfeZdZdZgdZgdZddiZdZdZdZ d Z d Z d Z d Z d ZdZdZdS) install_libz7install all Python modules (extensions and pure Python)))z install-dir=dzdirectory to install to)z build-dir=bz'build directory (where to install from))forcefz-force installation (overwrite existing files))compileczcompile .py to .pyc [default]) no-compileNzdon't compile .py files)z optimize=Ozlalso compile with optimization: -O1 for "python -O", -O2 for "python -OO", and -O0 to disable [default: -O0]) skip-buildNzskip the build steps)r r rr r cZd|_d|_d|_d|_d|_d|_dS)Nr) install_dir build_dirr r optimize skip_buildselfs D/opt/alt/python311/lib64/python3.11/distutils/command/install_lib.pyinitialize_optionszinstall_lib.initialize_options3s1   c H|ddddddd|jd|_|jd |_t|jtsP t |j|_|jd vrt dS#t t f$rtd wxYwdS) Ninstall) build_libr)rr)r r )r r )rr)rrTF)rzoptimize must be 0, 1, or 2)set_undefined_optionsr r isinstanceintAssertionError ValueErrorrrs rfinalize_optionszinstall_lib.finalize_options<s ""9#=#A#5#9#;#?  $ $ $ < DL = !DM$--- J J #DM 2 2 = 11((21/ J J J*+HIII J  J Js )A>>!Bc||}|0|jr||dSdSdSN)buildr distributionhas_pure_modules byte_compileroutfiless rrunzinstall_lib.runVsb <<>>  D$5$F$F$H$H    h ' ' ' ' '   rc|js^|jr|d|jr|ddSdSdS)Nbuild_py build_ext)rr(r) run_commandhas_ext_modulesrs rr'zinstall_lib.buildfs| . 1133 -  ,,, 0022 .  -----  . . . .rctj|jr!||j|j}n|d|jzdS|S)Nz3'%s' does not exist -- no Python modules to install)ospathisdirr copy_treerwarnr+s rrzinstall_lib.installmsa 7== ( ( ~~dnd6FGGHH IIKn% & & & Frc2tjr|ddSddlm}|dj}|jr||d|j||j |j dkr'|||j |j||j |j dSdS)Nz%byte-compiling is disabled, skipping.r)r*r)rr prefixdry_run)rr r:verboser;) sysdont_write_bytecoder8distutils.utilr*get_finalized_commandrootr r r;rr<)rfilesr* install_roots rr*zinstall_lib.byte_compilevs  "  II= > > > F////// 11)<<A < / L#z,!% / / / / =1   L#z,!%t| E E E E E E  rc V|sgS||}|}t||}t|ttjz}g}|D]=} |tj|| |d>|Sr&) r@ get_outputsgetattrlenr4sepappendr5join) rhas_any build_cmd cmd_option output_dir build_filesr prefix_lenoutputsfiles r_mutate_outputszinstall_lib._mutate_outputss I..y99 ++-- Iz22 ^^c"&kk1  H HD NN27<< D4EFF G G G Grcg}|D]}tjtj|d}|tkrP|jr4|tj |d|j dkr9|tj ||j |S)Nr) optimizationr) r4r5splitextnormcasePYTHON_SOURCE_EXTENSIONr rI importlibutilcache_from_sourcer)r py_filenamesbytecode_filespy_fileexts r_bytecode_filenameszinstall_lib._bytecode_filenamess# : :G'""27#3#3G#<#<==a@C---| /%%in&F&F"'G'.'.///}q  %%in&F&F$-'G'9'9:::rc ||jdd|j}|jr||}ng}||jdd|j}||z|zS)zReturn the list of files that would be installed if this command were actually run. Not affected by the "dry-run" flag or whether modules have actually been built yet. r/rr0)rSr(r)rr rar2)r pure_outputsbytecode_outputs ext_outputss rrEzinstall_lib.get_outputss  !2!C!C!E!E!+[!%!1 3 3  < "#77 EE  !   !2!B!B!D!D!,k!%!1 3 3  ..<rvs!!   """"""111111 HHHHH'HHHHHrPK!Q7command/__pycache__/build_scripts.cpython-311.opt-1.pycnu[ 0iXdZddlZddlZddlmZddlmZddlmZddl m Z ddl m Z m Z ddlmZddlZejd ZGd d eZGd d ee ZdS)zRdistutils.command.build_scripts Implements the Distutils 'build_scripts' command.N)ST_MODE) sysconfig)Command)newer) convert_path Mixin2to3)logs^#!.*python[0-9.]*([ ].*)?$c>eZdZdZgdZdgZdZdZdZdZ dZ d S) build_scriptsz("build" scripts (copy and fixup #! line)))z build-dir=dzdirectory to "build" (copy) to)forcefz1forcibly build everything (ignore file timestamps)z executable=ez*specify final destination interpreter pathr cLd|_d|_d|_d|_d|_dSN) build_dirscriptsr executableoutfilesselfs F/opt/alt/python311/lib64/python3.11/distutils/command/build_scripts.pyinitialize_optionsz build_scripts.initialize_optionss)   cX|dddd|jj|_dS)Nbuild)r r)r r )rr)set_undefined_options distributionrrs rfinalize_optionszbuild_scripts.finalize_options%s; ""7#A#5#? A A A(0 rc|jSr)rrs rget_source_fileszbuild_scripts.get_source_files,s |rc@|jsdS|dSr)r copy_scriptsrs rrunzbuild_scripts.run/s)|  F rc R||jg}g}|jD]o}d}t|}tj|jtj|}|||j s&t||stj d| t|d}tj|j\}}|d|} | s|d|z t&| } | rd}| dpd} n#t,$r |jsd }YnwxYw|rtjd ||j|||jst2js|j} n[tjt3jd d t3jd t3jd} t j| } d| z| zdz} | dn0#t>$r#tAd!| wxYw | |n1#t>$r$tAd!| |wxYwt|d5}|"| |#|$d d d n #1swxYwY|r|%.|r|%|||&||qtj'dkr~|D]{}|jrtjd|t j(|tRdz}|dzdz}||kr,tjd|||t j*|||||fS)a"Copy each script listed in 'self.scripts'; if it's marked as a Python script in the Unix way (first line matches 'first_line_re', ie. starts with "\#!" and contains "python"), then adjust the first line to refer to the current Python interpreter as we copy. Fznot copying %s (up-to-date)rbrz%s is an empty file (skipping)TrNzcopying and adjusting %s -> %sBINDIRpythonVERSIONEXEs#! zutf-8z.The shebang ({!r}) is not decodable from utf-8zAThe shebang ({!r}) is not decodable from the script encoding ({})wbposixzchanging mode of %siimz!changing mode of %s from %o to %o)+mkpathrrrospathjoinbasenameappendr rr debugopentokenizedetect_encodingreadlineseekwarn first_line_rematchgroupOSErrordry_runinfor python_buildrget_config_varfsencodedecodeUnicodeDecodeError ValueErrorformatwrite writelines readlinesclose copy_filenamestatrchmod)rr updated_filesscriptadjustoutfilerencodinglines first_liner= post_interprshebangoutffileoldmodenewmodes rr#zbuild_scripts.copy_scripts5s DN### lL 0L 0FF!&))Fgll4>273C3CF3K3KLLG OOG $ $ $: eFG&<&<  7@@@  8&& #+":1:"F"F%q ZZ\\ !II>GHHH%++J778!F"'++a.."7CK   | ", 096)))$$W---|!7$1M%)_ %'W\\%4X>>>+4+CI+N+N+N+4+CE+J+J+JL&M&M "$Z!8!8J#j0;>FG :w////-:::())/::::8x0000-888(<#VGX668888 gt,,7 7+++ 666777777777777777GGIIIGGIII$$W---vw//// 7g   0 0<0H2D9999 gdmmG4v=G&&8G'))!D!%w999w///&&s<?E&&E=<E= I  -J J''.K(=L11L5 8L5 N) __name__ __module__ __qualname__ description user_optionsboolean_optionsrrr!r$r#rrr r s>K   L iO111 c'c'c'c'c'rr ceZdZdZdS)build_scripts_2to3c|t|\}}|js||||fSr)r r#r@run_2to3)rrrQs rr#zbuild_scripts_2to3.copy_scriptssA"/"<"rps55 """"""$$$$$$22222222 ;<< G'G'G'G'G'GG'G'G'R''''' '''''rPK! 7 7 9command/__pycache__/install_scripts.cpython-311.opt-1.pycnu[ 0iRdZddlZddlmZddlmZddlmZGddeZdS)zudistutils.command.install_scripts Implements the Distutils 'install_scripts' command, for installing Python scripts.N)Command)log)ST_MODEc@eZdZdZgdZddgZdZdZdZdZ d Z d S) install_scriptsz%install scripts (Python or otherwise)))z install-dir=dzdirectory to install scripts to)z build-dir=bz'build directory (where to install from))forcefz-force installation (overwrite existing files)) skip-buildNzskip the build stepsr r c>d|_d|_d|_d|_dS)Nr) install_dirr build_dir skip_buildselfs H/opt/alt/python311/lib64/python3.11/distutils/command/install_scripts.pyinitialize_optionsz"install_scripts.initialize_optionss# cb|dd|dddddS)Nbuild) build_scriptsrinstall)rr)r r )rr)set_undefined_optionsrs rfinalize_optionsz install_scripts.finalize_options!sF ""7,JKKK ""9#E#5#? $ $ $ $ $rc|js|d||j|j|_t jdkr|D]q}|j rtj d|t j |tdzdz}tj d||t j||pdSdS)Nrposixzchanging mode of %simizchanging mode of %s to %o)r run_command copy_treerroutfilesosname get_outputsdry_runrinfostatrchmod)rfilemodes rrunzinstall_scripts.run)s .   _ - - -t~t7GHH 7g  ((** ) )<)H2D9999WT]]73u<FDH8$EEEHT4((((   ) )rc|jjpgSN) distributionscriptsrs r get_inputszinstall_scripts.get_inputs8s (.B.rc|jpgSr,)r rs rr#zinstall_scripts.get_outputs;s}""rN) __name__ __module__ __qualname__ description user_optionsboolean_optionsrrr*r/r#rrrrs9KL -O $$$ ) ) )///#####rr) __doc__r!distutils.corer distutilsrr&rrr7rrr;s """""".#.#.#.#.#g.#.#.#.#.#rPK!+ qbvbv3command/__pycache__/build_ext.cpython-311.opt-1.pycnu[ 0i{dZddlZddlZddlZddlZddlmZddlTddlm Z m Z ddlm Z ddl m Z ddlmZdd lmZdd lmZdd lmZejd Zd ZGddeZdS)zdistutils.command.build_ext Implements the Distutils 'build_ext' command, for building extension modules (currently limited to C extensions, should accommodate C++ extensions ASAP).N)Command)*)customize_compilerget_python_version)get_config_h_filename) newer_group) Extension) get_platform)log) USER_BASEz3^[a-zA-Z_][a-zA-Z_0-9]*(\.[a-zA-Z_][a-zA-Z_0-9]*)*$c&ddlm}|dS)Nrshow_compilers)distutils.ccompilerrrs B/opt/alt/python311/lib64/python3.11/distutils/command/build_ext.pyrrs(222222Nc eZdZdZdejzZdddddezfdd d d ezfd d ddddezfddddddddddgZgdZ ddde fgZ d Z d!Z d"Zd#Zd$Zd%Zd&Zd'Zd(Zejd)Zd*Zd+Zd,Zd-Zd.Zd/Zd0Zd1ZdS)2 build_extz8build C/C++ extensions (compile/link to build directory)z (separated by '%s'))z build-lib=bz(directory for compiled extension modules)z build-temp=tz1directory for temporary files (build by-products)z plat-name=pz>platform name to cross-compile for, if supported (default: %s))inplaceiziignore build-lib and put compiled extensions into the source directory alongside your pure Python modulesz include-dirs=Iz.list of directories to search for header files)zdefine=DzC preprocessor macros to define)zundef=Uz!C preprocessor macros to undefine)z libraries=lz!external C libraries to link withz library-dirs=Lz.directories to search for external C libraries)zrpath=Rz7directories to search for shared C libraries at runtime)z link-objects=Oz2extra explicit link objects to include in the link)debuggz'compile/link with debugging information)forcefz2forcibly build everything (ignore file timestamps))z compiler=czspecify the compiler type)z parallel=jznumber of parallel build jobs)swig-cppNz)make SWIG create C++ files (default is C))z swig-opts=Nz!list of SWIG command line options)zswig=Nzpath to the SWIG executable)userNz#add user include, library and rpath)rr!r#r'r(z help-compilerNzlist available compilersc,d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_ d|_ d|_ d|_ d|_ d|_d|_d|_d|_d|_d|_d|_dS)Nr) extensions build_lib plat_name build_temprpackage include_dirsdefineundef libraries library_dirsrpath link_objectsr!r#compilerswigswig_cpp swig_optsr(parallelselfs rinitialize_optionszbuild_ext.initialize_optionsjs               rc ddlm}|ddddddd d |j|jj|_|jj|_|}|d }|j |jj pg|_ t|j tr)|j tj|_ tjtjkrB|j tjtjd |j | tjj||kr<|j | tjj|d|d|jg|_|jg|_nCt|jtr)|j tj|_|jg|_nCt|jtr)|j tj|_tjdkr|jtjtjdtjtjkrB|jtjtjd|jr+tj|jd|_n*tj|jd|_|j tjt?tAtdd}|r|j||j!dkrd}n|j!dd}tjtjd}|r tj||}|j|tj"dddkrtj#$tjtjdrT|jtjtjddtKzdn|jd|&drO|j's.|j|&d n|jd|j(r+|j( d!}d"|D|_(|j)r|j) d!|_)|j*g|_*n|j* d#|_*|j+rtjtXd }tjtXd} tj-|r|j |tj-| r4|j| |j| t|j.tr9 t_|j.|_.dS#t`$rtcd$wxYwdS)%Nr) sysconfigbuild)r+r+)r-r-)r6r6)r!r!)r#r#)r:r:)r,r,) plat_specificincluder2r5ntlibsDebugRelease_homewin32PCbuildcygwinbinlibpythonconfig.Py_ENABLE_SHAREDLIBDIR,cg|]}|dfS)1).0symbols r z.build_ext.finalize_options..s???VFC=???r zparallel should be an integer)2 distutilsr?set_undefined_optionsr. distribution ext_package ext_modulesr*get_python_incr/ isinstancestrsplitospathsepsys exec_prefixbase_exec_prefixappendpathjoinextendensure_string_listr2r3r4nameprefixr!r-dirnamergetattrr,platform executable startswithrget_config_var python_buildr0r1r9r(r isdirr:int ValueErrorDistutilsOptionError) r<r? py_includeplat_py_include _sys_homesuffixnew_libdefines user_includeuser_libs rfinalize_optionszbuild_ext.finalize_optionss`'''''' ""7#=#?#;#5#5#;#= % % % < ,8DL+7--// #222CC   $ $ 1 > D"D  d' - - D $ 1 7 7 C CD  ?c2 2 2   $ $RW\\#/9%M%M N N N   !1!1"'/!B!BCCC j ( (   $ $%%bgo66 8 8 8  ,,, /// > !DN   $ "D   )3 / / D $ 1 7 7 C CD  : DJJ  C ( ( 6))"*55DJ 7d??   $ $RW\\#/6%J%J K K K#sz11!((c6JF)S)STTTz K"$',,t"H"H"$',,t "J"J   $ $RW__5J5L5L%M%M N N NWd33I 4!((333~(( +gll3?I>>G 8',,w77   $ $W - - - < x ' '~((cou)M)MNN .!((cj%6>ASAUAU6U6>*@*@AAAA !((---  $ $%7 8 8 .) .!(()A)A()K)KLLLL!((--- ; @k'',,G??w???DK : /))#..DJ > !DNN!^11#66DN 9 ,7<< 9==Lw||Iu55Hw}}\** 7!((666w}}X&& ,!((222 !!(+++ dmS ) ) L L #DM 2 2  L L L*+JKKK L L Ls ;]]0cvddlm}|jsdS|jrb|d}|j|pg|j |j ||j |j |j|j|_ t!|j t"jdkr6|jt)kr|j |j|j|j |j|j(|jD] \}}|j ||!|j$|jD]}|j ||j|j |j|j |j |j |j|j |j|j |j !|j |"dS)Nr) new_compiler build_clib)r6verbosedry_runr#rD)#rrr*r_has_c_librariesget_finalized_commandr2rnget_library_namesr3rkrr6rrr#rrfrpr,r initializer/set_include_dirsr0 define_macror1undefine_macro set_librariesset_library_dirsr4set_runtime_library_dirsr5set_link_objectsbuild_extensions)r<rrrpvaluemacros rrunz build_ext.runs2444444  F   , , . . <33LAAJ N ! !*">">"@"@"FB G G G   $ $Z%: ; ; ;% dm-1\-1\+/:777  4=))) 7d??t~?? M $ $T^ 4 4 4   ( M * *4+< = = = ; "!% 8 8 u **47777 : ! 4 4 ,,U3333 > % M ' ' 7 7 7   ( M * *4+< = = = : ! M 2 24: > > >   ( M * *4+< = = = rct|tstdt|D] \}}t|trt|t rt |dkrtd|\}}tjd|t|trt |stdt|tstdt ||d}dD]*}| |}|t|||+| d |_d |vrtjd | d }|rg|_g|_|D]} t| t rt | dvstdt | dkr!|j| dkt | dkr|j| |||< d S)aEnsure that the list of extensions (presumably provided as a command option 'extensions') is valid, i.e. it is a list of Extension objects. We also support the old-style list of 2-tuples, where the tuples are (ext_name, build_info), which are converted to Extension instances here. Raise DistutilsSetupError if the structure is invalid anywhere; just returns otherwise. z:'ext_modules' option must be a list of Extension instanceszMeach element of 'ext_modules' option must be an Extension instance or 2-tuplezvold-style (ext_name, build_info) tuple found in ext_modules for extension '%s' -- please convert to Extension instancezRfirst element of each tuple in 'ext_modules' must be the extension name (a string)zOsecond element of each tuple in 'ext_modules' must be a dictionary (build info)sources)r/r3r2 extra_objectsextra_compile_argsextra_link_argsNr4def_filez9'def_file' element of build info dict no longer supportedmacros)rArz9'macros' element of build info dict must be 1- or 2-tuplerAr)rclistDistutilsSetupError enumerater tuplelenr warnrdextension_name_rematchdictgetsetattrruntime_library_dirs define_macros undef_macrosrk) r<r*rextext_name build_infokeyvalrrs rcheck_extensions_listzbuild_ext.check_extensions_listVs*d++ P%NPP P ++> > FAs#y)) c5)) 8SXX]])7888$' Hj H?@H J J Jx-- @%++H55 @)?@@@j$// <);<<< Hj&;<'>C $Z''/000  ^^H--F 8$&!#% #88E&ue447Uv9M9M167775zzQ(//a9999Uq)00777JqMM}> > rc||jg}|jD]}||j|SN)rr*rnr)r< filenamesrs rget_source_fileszbuild_ext.get_source_filessO ""4?333 ? * *C   S[ ) ) ) )rc||jg}|jD]/}|||j0|Sr)rr*rkget_ext_fullpathrp)r<outputsrs r get_outputszbuild_ext.get_outputss\ ""4?333 ? < .s:333 t';SAA333r) r:rf cpu_countconcurrent.futuresr ImportErrorrr*zip_filter_build_errorsresult)r<workersrfuturesrfutrs` @rrz$build_ext._build_extensions_parallels- =D lnnG  = = = = = = =   GGG  ?  ) ) + + + F  G 4 4 4 !33333"&/333G99 ! !S..s33!!JJLLL!!!!!!!!!!!!!!! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !sC. ==$AC#(C = C# C C#C C##C'*C'c|jD]D}||5||dddn #1swxYwYEdSr)r*rr)r<rs rrz"build_ext._build_extensions_serials? * *C**3// * *$$S))) * * * * * * * * * * * * * * * * *sAA A c#K dVdS#tttf$r3}|js|d|jd|Yd}~dSd}~wwxYw)Nzbuilding extension "z " failed: )CCompilerErrorDistutilsError CompileErroroptionalrrp)r<res rrzbuild_ext._filter_build_errorss % EEEEE = % % %<  IIIxxx$ % % % % % % % % % %s A(AAc |j}|t|ttfst d|jzt |}||j}||jz}|j s-t||dstj d|jdStj d|j|||}|jpg}|jdd}|jD]}||f|j||j||j|j ||j}|dd|_|jr||j|jpg}|jp|j|} |j|||||j|j ||!||j |j|  dS)Nzjin 'ext_modules' option (extension '%s'), 'sources' must be present and must be a list of source filenamesnewerz$skipping '%s' extension (up-to-date)zbuilding '%s' extension) output_dirrr/r!extra_postargsdepends)r2r3rrexport_symbolsr!r- target_lang)"rrcrrrrpsortedrrr#rr r!info swig_sourcesrrrrkr6compiler-r/_built_objectsrrnrlanguagedetect_languagelink_shared_object get_librariesr3rget_export_symbols) r<rrext_pathr extra_argsrr1objectsrs rrzbuild_ext.build_extensions+ ?*WtUm"D"D?%/14:;; ; //((22CK'  :k'8WEE : I>&aaaj   . NN3, - - -(.B <I4=#@#@#I#I (( X((--)!$!9%22377*  ) " " " " "rcg}g}i}|jrtjd|jsd|jvs d|jvrd}nd}|D]{}tj|\}} | dkr<||dz|z|||d||<f||||s|S|jp| } | dg} | |j|jr| d|js|jD]} | | |D];}||} tj d || | | d | |gz<|S) zWalk the list of source files in 'sources', looking for SWIG interface (.i) files. Run SWIG on all that are found, and return a modified 'sources' list with SWIG source files replaced by the generated C (or C++) files. z/--swig-cpp is deprecated - use --swig-opts=-c++z-c++z.cppz.cz.i_wrapz-pythonzswigging %s to %sz-o) r8r rr9rfrlsplitextrkr7 find_swigrnrspawn)r<r extension new_sourcesr swig_targets target_extsourcebaserr7swig_cmdotargets rrzbuild_ext.swig_sources2s     = H HF G G G = Vt~55 i) ) )JJJ + +F'**622KT3d{{""4'>J#>???##F+++'22 V$$""6****  y,DNN,,)$''' = $ OOF # # #~ #( # #""""" : :F!&)F H(&& 9 9 9 JJx4"88 9 9 9 9rctjdkrdStjdkrMdD]H}tjd|zd}tj|r|cSIdSt dtjz)zReturn the name of the SWIG executable. On Unix, this is just "swig" -- it should be in the PATH. Tries a bit harder on Windows. posixr7rD)z1.3z1.2z1.1z c:\swig%szswig.exez>I don't know how to find (much less run) SWIG on platform '%s')rfrprlrmisfileDistutilsPlatformError)r<versfns rrzbuild_ext.find_swighs 7g  6 W__. " "W\\,"5zBB7>>"%%III"z(%')w/00 0rc*||}|d}||d}|jsDt jj|dd|gz}tj|j|Sd|dd}|d}tj | |}tj||S)zReturns the path of the filename for a given extension. The file is located in `build_lib` or directly in the package (inplace option). rRrNrbuild_py) get_ext_fullnamereget_ext_filenamerrfrlrmr+rabspathget_package_dir)r<rfullnamemodpathfilenamer.r package_dirs rrzbuild_ext.get_ext_fullpaths ((22..%%((55| :w|WSbS\8*%<=H7<<99 9((71R4=))--j99gooh&>&>w&G&GHH w||K222rc.|j|S|jdz|zS)zSReturns the fullname of a given extension name. Adds the `package.` prefixNrR)r.)r<rs rrzbuild_ext.get_ext_fullnames# < O<#%0 0rczddlm}|d}|d}tjj||zS)zConvert the name of an extension (eg. "foo.bar") into the name of the file from which it will be loaded (eg. "foo/bar.so", or "foo\bar.pyd"). rrwrR EXT_SUFFIX)distutils.sysconfigrwrerfrlrm)r<rrwr ext_suffixs rrzbuild_ext.get_ext_filenamesJ 766666>>#&&#^L11 w|X&33rcrd|jddz} |dnO#t$rBd|ddddz}YnwxYwd |z}||jvr|j||jS) aReturn the list of symbols that a shared extension has to export. This either uses 'ext.export_symbols' or, if it's not provided, "PyInit_" + module_name. Only relevant on Windows, where the .pyd file (DLL) must export the module "PyInit_" function. _rRrasciirpunycode-_PyInit)rpreencodeUnicodeEncodeErrorreplacedecoderrk)r<rr initfunc_names rrzbuild_ext.get_export_symbolss sx~~c**2.. Y MM' " " " "! Y Y Y6==44<>)- >*N;77 }9(<'===}r) __name__ __module__ __qualname__ descriptionrfrgsep_byr user_optionsboolean_optionsr help_optionsr=rrrrrrrr contextlibcontextmanagerrrrrrrrrrrXrrrr!sLK($bj 0F 5 > s '<>> * + 9 # 9F B D , . . # 9F B D D ? 4 ? & * 6 . ( 0O) LVHGGO $ #^ 5 L 0RLRLRLh> > > @L L L \   ,,,!!!(*** %%%J"J"J"X444l00003336111444"""&11111rr)__doc__r8rfrerhdistutils.corerdistutils.errorsrrrrdistutils.dep_utilrdistutils.extensionr distutils.utilr r]r siter rrrrrXrrrBs@  """"""FFFFFFFF555555******))))))''''''BJ;== Q Q Q Q Q Q Q Q Q Q rPK!ܦ77/command/__pycache__/build.cpython-311.opt-2.pycnu[ 0i^ ddlZddlZddlmZddlmZddlmZdZGddeZ dS)N)Command)DistutilsOptionError) get_platformc&ddlm}|dS)Nrshow_compilers)distutils.ccompilerrrs >/opt/alt/python311/lib64/python3.11/distutils/command/build.pyrr s(222222Nc eZdZdZdddddddd d ezfd d d ddg ZddgZdddefgZdZ dZ dZ dZ dZ dZdZde fde fdefdefgZdS) buildz"build everything needed to install)z build-base=bz base directory for build library)zbuild-purelib=Nz2build directory for platform-neutral distributions)zbuild-platlib=Nz3build directory for platform-specific distributions)z build-lib=NzWbuild directory for all distribution (defaults to either build-purelib or build-platlib)zbuild-scripts=Nzbuild directory for scripts)z build-temp=tztemporary build directoryz plat-name=pz6platform name to build for, if supported (default: %s))z compiler=czspecify the compiler type)z parallel=jznumber of parallel build jobs)debuggz;compile extensions and libraries with debugging information)forcefz2forcibly build everything (ignore file timestamps))z executable=ez5specify final destination interpreter path (build.py)rrz help-compilerNzlist available compilerscd|_d|_d|_d|_d|_d|_d|_d|_d|_d|_ d|_ d|_ dS)Nr r) build_base build_purelib build_platlib build_lib build_temp build_scriptscompiler plat_namerr executableparallelselfs r initialize_optionszbuild.initialize_options8s_!"!!    r c,|jt|_ntjdkrt dd|jgt jddRz}tt dr|dz }|j*tj |j d|_|j -tj |j d|z|_ |j %|jjr |j |_ n |j|_ |j-tj |j d|z|_|j?tj |j d t jddz|_|j:t jr.tj t j|_t)|jt,r9 t/|j|_dS#t0$rt d wxYwdS) NntzW--plat-name only supported on Windows (try using './configure --help' on your platform)z .%s-%d.%dgettotalrefcountz-pydebuglibtempz scripts-%d.%dzparallel should be an integer)r rosnamersys version_infohasattrrpathjoinrrr distribution ext_modulesrrr!normpath isinstancer"strint ValueError)r$plat_specifiers r finalize_optionszbuild.finalize_optionsHs > !)^^DNN w$*KLLL%'N9I"1"9M'N'NN 3* + + ) j (N   %!#dou!E!ED    %!#do.3n.D"F"FD  > ! , 4!%!3!%!3 ? " gll4?+1N+BDDDO   %!#do.=@PQSRSQS@T.T"V"VD  ? "s~ " g..s~>>DO dmS ) ) L L #DM 2 2  L L L*+JKKK L L Ls G77Hc^|D]}||dSN)get_sub_commands run_command)r$cmd_names r runz build.runs@ --// ' 'H   X & & & & ' 'r c4|jSr=)r3has_pure_modulesr#s r rCzbuild.has_pure_moduless 11333r c4|jSr=)r3has_c_librariesr#s r rEzbuild.has_c_libraries 00222r c4|jSr=)r3has_ext_modulesr#s r rHzbuild.has_ext_modulesrFr c4|jSr=)r3 has_scriptsr#s r rJzbuild.has_scriptss ,,...r build_py build_clib build_extr)__name__ __module__ __qualname__ descriptionr user_optionsboolean_optionsr help_optionsr%r;rArCrErHrJ sub_commandsr r r r s,6K - ? @ + ( & s '<>> * + & * H ? B3 L:(O $ #^ 5 L  6L6L6Lp'''444333333/// &67!o6 o6$k2LLLr r ) r.r,distutils.corerdistutils.errorsrdistutils.utilrrr rVr r rZs-""""""111111'''''' MMMMMGMMMMMr PK!m[[/command/__pycache__/bdist.cpython-311.opt-2.pycnu[ 0iR ddlZddlmZddlTddlmZdZGddeZdS)N)Command)*) get_platformc ddlm}g}tjD]3}|d|zdtj|df4||}|ddS)Nr) FancyGetoptformats=z'List of available distribution formats:)distutils.fancy_getoptrbdistformat_commandsappendformat_command print_help)rformatsformatpretty_printers >/opt/alt/python311/lib64/python3.11/distutils/command/bdist.py show_formatsr s222222G':: V+T,V4Q79 : : : : [))NGHHHHHceZdZdZddddezfdddd d gZd gZd d defgZdZ dddZ gdZ ddddddddZ dZ dZdZd S)r z$create a built (binary) distribution)z bdist-base=bz4temporary directory for creating built distributionsz plat-name=pz;platform name to embed in generated filenames (default: %s))rNz/formats for distribution (comma-separated list))z dist-dir=dz=directory to put final built distributions in [default: dist]) skip-buildNz2skip rebuilding everything (for testing/debugging))zowner=uz@Owner name used when creating a tar file [default: current user])zgroup=gzAGroup name used when creating a tar file [default: current group]rz help-formatsNz$lists available distribution formats) bdist_rpmgztarzip)posixnt)rpmrbztarxztarztartarr)rzRPM distribution) bdist_dumbzgzip'ed tar file)r'zbzip2'ed tar file)r'zxz'ed tar file)r'zcompressed tar file)r'ztar file)r'zZIP filechd|_d|_d|_d|_d|_d|_d|_dS)Nr) bdist_base plat_namerdist_dir skip_buildgroupowner)selfs rinitialize_optionszbdist.initialize_optionsLs7    rc|j:|jrt|_n|dj|_|jG|dj}t j|d|jz|_| d|j I |j t j g|_ n*#t$rtdt j zwxYw|j d|_dSdS)Nbuildzbdist.rz;don't know how to create built distributions on platform %sdist)r*r,rget_finalized_commandr) build_baseospathjoinensure_string_listrdefault_formatnameKeyErrorDistutilsPlatformErrorr+)r/r5s rfinalize_optionszbdist.finalize_optionsUs > ! O!-!%!;!;G!D!D!N ? "33G<<GJ gll:+3dn+DFFDO  *** <  2 $ 3BG <=  2 2 2,')+1222 2 = "DMMM ! s -C 'C2cg}|jD]I} ||j|d*#t$rt d|zwxYwt t |jD]}||}||}||jvr|j||_ |dkr|j |_ |j |_ |||dzdvrd|_ | |dS)Nrzinvalid format '%s'r'r )rr rr<DistutilsOptionErrorrangelenreinitialize_commandno_format_optionrr.r- keep_temp run_command)r/commandsricmd_namesub_cmds rrunz bdist.runqs0l K KF K 3F ;A >???? K K K*+@6+IJJJ Ks4<(()) ' 'A{H//99Gt444!%a<'' $  $  8AaCDD>))$%!   X & & & & ' 's &4A)__name__ __module__ __qualname__ descriptionr user_optionsboolean_optionsr help_optionsrDr:r rr0r>rKrrr r s8KM!3%'3|~~67H(K12L($nO  / ? L & '!##NONNO BAB?D99 N###8'''''rr )r6distutils.corerdistutils.errorsdistutils.utilrrr rSrrrWs  """"""'''''' I I Ir'r'r'r'r'Gr'r'r'r'r'rPK!#6command/__pycache__/install_data.cpython-311.opt-1.pycnu[ 0i JdZddlZddlmZddlmZmZGddeZdS)zdistutils.command.install_data Implements the Distutils 'install_data' command, for installing platform-independent data files.N)Command) change_root convert_pathc>eZdZdZgdZdgZdZdZdZdZ dZ d S) install_datazinstall data files))z install-dir=dzIbase directory for installing data files (default: installation base dir))zroot=Nz>!T-=>>a $$S))))#1Q4((w}}S))6',,t'7==CCY6%di55C C   Q42::M((----!"!22+D11#'>>$#<#<a ,,S111125 2 2rc|jpgSN)rrs r get_inputszinstall_data.get_inputsKs$"$rc|jSr.)rrs r get_outputszinstall_data.get_outputsNs }rN) __name__ __module__ __qualname__ description user_optionsboolean_optionsrrr,r/r1rrrr s&K   LiO$$$222B%%%rr)__doc__r$distutils.corerdistutils.utilrrrr8rrr<s$$ """"""44444444CCCCC7CCCCCrPK!( @@4command/__pycache__/build_clib.cpython-311.opt-2.pycnu[ 0iV^ ddlZddlmZddlTddlmZddlmZdZGddeZ dS) N)Command)*)customize_compiler)logc&ddlm}|dS)Nrshow_compilers)distutils.ccompilerr rs C/opt/alt/python311/lib64/python3.11/distutils/command/build_clib.pyr r s(222222NcZeZdZdZgdZddgZdddefgZdZd Z d Z d Z d Z d Z dZdS) build_clibz/build C/C++ libraries used by Python extensions))z build-clib=bz%directory to build C/C++ libraries to)z build-temp=tz,directory to put temporary build by-products)debuggz"compile with debugging information)forcefz2forcibly build everything (ignore file timestamps))z compiler=czspecify the compiler typerrz help-compilerNzlist available compilerscd|_d|_d|_d|_d|_d|_d|_d|_d|_dS)Nr) r build_temp libraries include_dirsdefineundefrrcompilerselfs r initialize_optionszbuild_clib.initialize_options4sJ!     r c\|dddddd|jj|_|jr||j|j|jjpg|_t |jt r+|jtj |_dSdS)Nbuild)rr)rr)rr)rr)rr) set_undefined_options distributionrcheck_library_listr isinstancestrsplitospathseprs r finalize_optionszbuild_clib.finalize_optionsDs ""7#?#?#;#5#5  7 7 7*4 > 4  # #DN 3 3 3   $ $ 1 > D"D  d' - - D $ 1 7 7 C CD    D Dr c|jsdSddlm}||j|j|j|_t |j|j|j|j|j (|j D] \}}|j ||!|j $|j D]}|j || |jdS)Nr) new_compiler)rdry_runr)rr r,rr-rrrset_include_dirsr define_macrorundefine_macrobuild_libraries)rr,namevaluemacros r runzbuild_clib.run^s~  F 544444$ dm-1\+/:777  4=)))   ( M * *4+< = = = ; " $  8 8 e **47777 : ! 4 4 ,,U3333 T^,,,,,r c t|tstd|D]}t|ts"t |dkrtd|\}}t|t stdd|vst jdkr&t j|vrtd|dzt|tstddS) Nz+'libraries' option must be a list of tuplesz*each element of 'libraries' must a 2-tuplezNfirst element of each tuple in 'libraries' must be a string (the library name)/z;bad library name '%s': may not contain directory separatorsrzMsecond element of each tuple in 'libraries' must be a dictionary (build info)) r%listDistutilsSetupErrortuplelenr&r(sepdict)rrlibr2 build_infos r r$zbuild_clib.check_library_listvs3 )T** A%?AA A ; ;Cc5)) Dc#hh!mm)BDDD # D*dC(( =)<===d{{rv}}4)+>@CA+GHHHj$// ;):;;; ;! ; ;r c`|jsdSg}|jD]\}}|||S)N)rappend)r lib_nameslib_namer@s r get_library_nameszbuild_clib.get_library_namessK~ 4 &*n ' ' "Xz   X & & & &r c ||jg}|jD]_\}}|d}|t|tt fst d|z||`|S)Nsourcesfin 'libraries' option (library '%s'), 'sources' must be present and must be a list of source filenames)r$rgetr%r9r;r:extend)r filenamesrDr@rGs r get_source_fileszbuild_clib.get_source_filess /// &*n & & "Xz nnY//Gj4-&H&H)46>?@@@   W % % % %r c|D]\}}|d}|t|ttfst d|zt|}t jd||d}|d}|j||j |||j }|j |||j |j dS)NrGrHzbuilding '%s' librarymacrosr) output_dirrNrr)rOr) rIr%r9r;r:rinforcompilerrcreate_static_libr)rrrDr@rGrNrobjectss r r1zbuild_clib.build_librariess&/ > > "Xz nnY//Gj4-&H&H)46>?@@@7mmG H,h 7 7 7  ^^H--F%>>.99Lm++G7;399E26* ,>>G M + +GX7;26* , > > > >3 > >r )__name__ __module__ __qualname__ description user_optionsboolean_optionsr help_optionsrr*r5r$rErLr1r r rrsCK    L(O $ #^ 5 L    DDD4---0!;!;!;H      >>>>>r r) r(distutils.corerdistutils.errorsdistutils.sysconfigr distutilsrr rr[r r r`s  """"""222222 u>u>u>u>u>u>u>u>u>u>r PK!+qZqZ-command/__pycache__/bdist_rpm.cpython-311.pycnu[ 0i!TdZddlZddlZddlZddlmZddlmZddlm Z ddl Tddl m Z ddl mZGd d eZdS) zwdistutils.command.bdist_rpm Implements the Distutils 'bdist_rpm' command (create RPM source and binary distributions).N)Command)DEBUG) write_file)*)get_python_version)logcXeZdZdZgdZgdZddddZdZd Zd Z d Z d Z d Z dZ dS) bdist_rpmzcreate an RPM distribution)))z bdist-base=Nz/base directory for creating built distributions)z rpm-base=Nzdbase directory for creating RPMs (defaults to "rpm" under --bdist-base; must be specified for RPM 2))z dist-dir=dzDdirectory to put final RPM files in (and .spec files if --spec-only))zpython=NzMpath to Python interpreter to hard-code in the .spec file (default: "python"))z fix-pythonNzLhard-code the exact path to the current Python interpreter in the .spec file)z spec-onlyNzonly regenerate spec file)z source-onlyNzonly generate source RPM)z binary-onlyNzonly generate binary RPM)z use-bzip2Nz7use bzip2 instead of gzip to create source distribution)zdistribution-name=Nzgname of the (Linux) distribution to which this RPM applies (*not* the name of the module distribution!))zgroup=Nz9package classification [default: "Development/Libraries"])zrelease=NzRPM release number)zserial=NzRPM serial number)zvendor=NzaRPM "vendor" (eg. "Joe Blow ") [default: maintainer or author from setup script])z packager=NzBRPM packager (eg. "Jane Doe ") [default: vendor])z doc-files=Nz6list of documentation files (space or comma-separated))z changelog=Nz RPM changelog)zicon=Nzname of icon file)z provides=Nz%capabilities provided by this package)z requires=Nz%capabilities required by this package)z conflicts=Nz-capabilities which conflict with this package)zbuild-requires=Nz+capabilities required to build this package)z obsoletes=Nz*capabilities made obsolete by this package) no-autoreqNz+do not automatically calculate dependencies) keep-tempkz"don't clean up RPM build directory) no-keep-tempNz&clean up RPM build directory [default])use-rpm-opt-flagsNz8compile with RPM_OPT_FLAGS when building from source RPM)no-rpm-opt-flagsNz&do not pass any RPM CFLAGS to compiler) rpm3-modeNz"RPM 3 compatibility mode (default)) rpm2-modeNzRPM 2 compatibility mode)z prep-script=Nz3Specify a script for the PREP phase of RPM building)z build-script=Nz4Specify a script for the BUILD phase of RPM building)z pre-install=Nz:Specify a script for the pre-INSTALL phase of RPM building)zinstall-script=Nz6Specify a script for the INSTALL phase of RPM building)z post-install=Nz;Specify a script for the post-INSTALL phase of RPM building)zpre-uninstall=Nzs r@finalize_optionszbdist_rpm.finalize_optionssU ""7,HIII = > C*ACCCGLL%@@DM ;  (!n ' _ N&LNN N 7g  (*246G*<== =   L 0 L&JLL L 0022 '%&D " ""7,DEEE ""$$$$$rBcd|dd|d|jd|jd|d|dt |jtrGdD]D}tj |r#||jvr|j |E|d d |d |d |d | |j |_ |d|d|d|d|d|d|d|d|d|d|d|d|d|d|d|ddS)Nr"zDevelopment/Librariesr%z <>r&r')READMEz README.txtr#1r$r!r(r)r*r+r,r-r.r/r0r1r2r4r5r6r7r8r=) ensure_stringrQ get_contactget_contact_emailensure_string_list isinstancer'listrJrKexistsappend_format_changelogr(ensure_filename)r?readmes r@rSzbdist_rpm.finalize_package_datas 7$;<<< 8(,(9(E(E(G(G(G(G(,(9(K(K(M(M(M(MO P P P :&&&  ,,, dnd + + 22 2 27>>&))2fDN.J.JN))&111 9c*** 8$$$ ./// ;'''//?? V$$$ ]+++ ^,,, -... ^,,, _--- ]+++ ^,,, _--- -...  +++  +++  ,,,  0111  ,,, <(((((rBc trctdtd|jtd|jtd|jtd|j|jr|j}||nRi}dD]E}tj |j |||<|||F|d}tj |d|j z}|t ||fd |z|jrdS|j jdd}|d }|jr d g|_nd g|_|d ||j _|d }|d}||||jrWtj |jr||j|nt7d|jzt9jddg} |jr| dn2|j r| dn| d| !dd|j"zg|j#r<| !ddtj $|j zg|j%s| d|j&r| d| |d} | dz} d| zdz} d| d| d |d!} tj'| } g}d} |(}|sna|)*}tW|d#ksJ||d$||d }x|,}|rt[d%t]| z |,n#|,wxYw|/| |j0s|j 1rte}nd&}|j stj |d'|}tj |sJ|3||jtj |j|}|j jd(||f|js|D]}tj |d)|}tj |r|3||jtj |jtj 4|}|j jd(||fdSdSdS)*Nzbefore _get_package_data():zvendor =z packager =z doc_files =z changelog =)SOURCESSPECSBUILDRPMSSRPMSrfz%s.specz writing '%s'sdistbztargztarrrezicon file '%s' does not existz building RPMsrpmbuildz-bsz-bbz-baz--definez __python %sz _topdir %sz--cleanz--quietz%{name}-%{version}-%{release}z.src.rpmz%{arch}/z .%{arch}.rpmz rpm -q --qf ' z\n' --specfile ''TrzFailed to execute: %sanyrir rh)5rprintr%r&r'r(rrmkpathrJrKrLrrQget_nameexecuter_make_spec_file dist_filesreinitialize_commandr formats run_commandget_archive_files copy_filer)r_DistutilsFileErrorrinforr`rextendrr;abspathr9rpopenreadlinestripsplitlencloseDistutilsExecErrorreprspawndry_runrRr move_filebasename)r?spec_dirrpm_dirr spec_pathsaved_dist_filesrjsource source_dirrpm_cmd nvr_stringsrc_rpm non_src_rpmq_cmdout binary_rpms source_rpmlinelstatus pyversionsrpmfilenamerEs r@runz bdist_rpm.runsJ  1 / 0 0 0 *dk * * * , . . . - 0 0 0 - 0 0 0 > (}H KK ! ! ! !GC ( (W\\$-;;  GAJ''''w'HGLL!*T->-G-G-I-I!IKK  Z**,,.#i/ 1 1 1 >  F ,7:))'22 > &$IEMM$IEM !!!'7$((**1-Y'  vz*** 9 Cw~~di(( Cty*5555(5 ACCC !!!,   " NN5 ! ! ! !   " NN5 ! ! ! ! NN5 ! ! ! MDK$?@AAA > M NNJ)BGOODM,J,JJL M M M~ & NN9 % % % : & NN9 % % %y!!! 5 z) :-> GG[[[)))-huoo KJ &||~~JJLL&&((1vv{{{{""1Q4(((%!"1J &YY[[F P()@4;;)NOOO P IIKKKKCIIKKKK 7| @ 0022 ".00 ! # 8w||GG$4jAAw~~d++,,+tT]3337<< zBB!,33 )X6888# @&@@C',,wv<@@@+ @ @ @ @@@s B2QQ2ctj|jtj|S)N)rJrKrLrr)r?rKs r@ _dist_pathzbdist_rpm._dist_paths*w||DM27+;+;D+A+ABBBrBc  d|jzd|jddzd|jzd|jddzdd|jzg}t jd }d d | D}d }d }|||}||kr0| d| d|zd z| gd|j r| dn| d| d|j zd|jzddg|js/|js| dn| d|jzdD]}t#||}t'|t(r.| |dd|g|| |d||jdkr/| d|jz|jr| d|jz|jr0| d d|jz|jr:| d!t2j|jz|jr| d"| dd#|jg|jdt2jt>j d$}d%|z} |j!rd&| z} d'|z} d(d)d*| fd+d,| fd-d.d/d0d1d2g } | D]\} } }t#|| }|s|r| dd3| zg|rbtE|5}| |#$d dddn #1swxYwY| || gd4|j%r0| d5d|j%z|j&r1| dd6g| |j&|S)7ziGenerate the text of an RPM spec file and return it as a list of strings (one per line). z %define name z%define version -_z%define unmangled_version z%define release z Summary: zrpm --eval %{__os_install_post} c<g|]}d|zS)z %s \)r).0rs r@ z-bdist_rpm._make_spec_file..s;!G!G!G%)"+TZZ\\!9!G!G!GrBzbrp-python-bytecompile \ z%brp-python-bytecompile %{__python} \ z2# Workaround for http://bugs.python.org/issue14443z%define __os_install_post )z Name: %{name}zVersion: %{version}zRelease: %{release}z-Source0: %{name}-%{unmangled_version}.tar.bz2z,Source0: %{name}-%{unmangled_version}.tar.gzz License: zGroup: z>BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildrootzPrefix: %{_prefix}zBuildArch: noarchz BuildArch: %s)VendorPackagerProvidesRequires Conflicts Obsoletesz: rnNUNKNOWNzUrl: zDistribution: zBuildRequires: zIcon: z AutoReq: 0z %descriptionrz%s buildzenv CFLAGS="$RPM_OPT_FLAGS" z>%s install -O1 --root=$RPM_BUILD_ROOT --record=INSTALLED_FILES)r3r*z&%setup -n %{name}-%{unmangled_version}buildr+installr,)cleanr-zrm -rf $RPM_BUILD_ROOT) verifyscriptr.N)prer/N)postr0N)preunr1N)postunr2N%)rz%files -f INSTALLED_FILESz%defattr(-,root,root)z%doc z %changelog)'rQrt get_versionreplacer#get_description subprocess getoutputrL splitlinesr`rr get_licenser"r=rRgetattrlowerr]r^get_urlr!r7r)rJrKrr<get_long_descriptionrrMargvr:openreadrr'r()r? spec_file vendor_hookproblemfixed fixed_hookfieldvaldef_setup_call def_build install_cmdscript_optionsrpm_optattrdefaultfs r@rvzbdist_rpm._make_spec_filesE d/88:: : !2!>!>!@!@!H!HS!Q!Q Q (4+<+H+H+J+J J !5!5c#!>!> >  $+;;== =  !*+LMM ii!G!G-8-C-C-E-E!G!G!GHH /9 ((%88  $ $   Q R R R   9JFM N N N $$$ % % % > M   L M M M M   K L L L $+7799 9  " L $ % % %  B$4466 6  !4555   o? A A A : :E$ ..C#t$$ :  UUUCHHSMMM!BCCCC  UUUCC!8999   $ $ & &) 3 3   Wt'8'@'@'B'BB C C C  ! H   -0FF G G G   <   . XXd&9::; < < < 9 E   X(8(8(C(CC D D D ? +   \ * * *     2 2 4 4   $%)KKK0@0@!0M0M0MN/  ! C6BI25CD  N ni 0 (+ 6 ? 3 ( * , .  )7 . . $WdG$%%C .g .  'M"$%%%.c?a!(()=)=>>>???????????????$$W---     > A   Wsxx'?'?? @ @ @ > -         T^ , , ,s-;R44R8 ;R8 c`|s|Sg}|dD]t}|}|ddkr|d|g:|ddkr||\|d|zu|ds|d=|S)zKFormat the changelog correctly and convert it to a list of strings rrrrrz )rrrr`)r?r( new_changelogrs r@razbdist_rpm._format_changelog0s   OO%%++D11 2 2D::<+)+)+)ZB@B@B@HCCCgggRrBr )__doc__rrMrJdistutils.corerdistutils.debugrdistutils.file_utilrdistutils.errorsdistutils.sysconfigr distutilsrr rrBr@rs """"""!!!!!!******222222uuuuuuuuuurBPK!#0command/__pycache__/install_data.cpython-311.pycnu[ 0i JdZddlZddlmZddlmZmZGddeZdS)zdistutils.command.install_data Implements the Distutils 'install_data' command, for installing platform-independent data files.N)Command) change_root convert_pathc>eZdZdZgdZdgZdZdZdZdZ dZ d S) install_datazinstall data files))z install-dir=dzIbase directory for installing data files (default: installation base dir))zroot=Nz>!T-=>>a $$S))))#1Q4((w}}S))6',,t'7==CCY6%di55C C   Q42::M((----!"!22+D11#'>>$#<#<a ,,S111125 2 2rc|jpgSN)rrs r get_inputszinstall_data.get_inputsKs$"$rc|jSr.)rrs r get_outputszinstall_data.get_outputsNs }rN) __name__ __module__ __qualname__ description user_optionsboolean_optionsrrr,r/r1rrrr s&K   LiO$$$222B%%%rr)__doc__r$distutils.corerdistutils.utilrrrr8rrr<s$$ """"""44444444CCCCC7CCCCCrPK!tГ7command/__pycache__/build_scripts.cpython-311.opt-2.pycnu[ 0iX ddlZddlZddlmZddlmZddlmZddlm Z ddl m Z m Z ddlm Z ddlZejdZGd d eZGd d ee ZdS) N)ST_MODE) sysconfig)Command)newer) convert_path Mixin2to3)logs^#!.*python[0-9.]*([ ].*)?$c>eZdZdZgdZdgZdZdZdZdZ dZ d S) build_scriptsz("build" scripts (copy and fixup #! line)))z build-dir=dzdirectory to "build" (copy) to)forcefz1forcibly build everything (ignore file timestamps)z executable=ez*specify final destination interpreter pathr cLd|_d|_d|_d|_d|_dSN) build_dirscriptsr executableoutfilesselfs F/opt/alt/python311/lib64/python3.11/distutils/command/build_scripts.pyinitialize_optionsz build_scripts.initialize_optionss)   cX|dddd|jj|_dS)Nbuild)r r)r r )rr)set_undefined_options distributionrrs rfinalize_optionszbuild_scripts.finalize_options%s; ""7#A#5#? A A A(0 rc|jSr)rrs rget_source_fileszbuild_scripts.get_source_files,s |rc@|jsdS|dSr)r copy_scriptsrs rrunzbuild_scripts.run/s)|  F rc T ||jg}g}|jD]o}d}t|}tj|jtj|}|||j s&t||stj d| t|d}tj|j\}}|d|} | s|d|z t&| } | rd}| dpd} n#t,$r |jsd}YnwxYw|rtjd ||j|||jst2js|j} n[tjt3jd d t3jd t3jd } t j| } d| z| zdz} | dn0#t>$r#tAd!| wxYw | |n1#t>$r$tAd!| |wxYwt|d5}|"| |#|$dddn #1swxYwY|r|%.|r|%|||&||qtj'dkr~|D]{}|jrtjd|t j(|tRdz}|dzdz}||kr,tjd|||t j*|||||fS)NFznot copying %s (up-to-date)rbrz%s is an empty file (skipping)Trzcopying and adjusting %s -> %sBINDIRpythonVERSIONEXEs#! zutf-8z.The shebang ({!r}) is not decodable from utf-8zAThe shebang ({!r}) is not decodable from the script encoding ({})wbposixzchanging mode of %siimz!changing mode of %s from %o to %o)+mkpathrrrospathjoinbasenameappendr rr debugopentokenizedetect_encodingreadlineseekwarn first_line_rematchgroupOSErrordry_runinfor python_buildrget_config_varfsencodedecodeUnicodeDecodeError ValueErrorformatwrite writelines readlinesclose copy_filenamestatrchmod)rr updated_filesscriptadjustoutfilerencodinglines first_liner= post_interprshebangoutffileoldmodenewmodes rr#zbuild_scripts.copy_scripts5s DN### lL 0L 0FF!&))Fgll4>273C3CF3K3KLLG OOG $ $ $: eFG&<&<  7@@@  8&& #+":1:"F"F%q ZZ\\ !II>GHHH%++J778!F"'++a.."7CK   | ", 096)))$$W---|!7$1M%)_ %'W\\%4X>>>+4+CI+N+N+N+4+CE+J+J+JL&M&M "$Z!8!8J#j0;>FG :w////-:::())/::::8x0000-888(<#VGX668888 gt,,7 7+++ 666777777777777777GGIIIGGIII$$W---vw//// 7g   0 0<0H2D9999 gdmmG4v=G&&8G'))!D!%w999w///&&s<E''E>=E> I!!-JJ((.K)=L22L6 9L6 N) __name__ __module__ __qualname__ description user_optionsboolean_optionsrrr!r$r#rrr r s>K   L iO111 c'c'c'c'c'rr ceZdZdZdS)build_scripts_2to3c|t|\}}|js||||fSr)r r#r@run_2to3)rrrQs rr#zbuild_scripts_2to3.copy_scriptssA"/"<"ros5 """"""$$$$$$22222222 ;<< G'G'G'G'G'GG'G'G'R''''' '''''rPK!'m-&/command/__pycache__/bdist.cpython-311.opt-1.pycnu[ 0iTdZddlZddlmZddlTddlmZdZGddeZdS) zidistutils.command.bdist Implements the Distutils 'bdist' command (create a built [binary] distribution).N)Command)*) get_platformcddlm}g}tjD]3}|d|zdtj|df4||}|ddS)zFPrint list of available formats (arguments to "--format" option). r) FancyGetoptformats=Nz'List of available distribution formats:)distutils.fancy_getoptrbdistformat_commandsappendformat_command print_help)rformatsformatpretty_printers >/opt/alt/python311/lib64/python3.11/distutils/command/bdist.py show_formatsr s322222G':: V+T,V4Q79 : : : : [))NGHHHHHceZdZdZddddezfdddd d gZd gZd d defgZdZ dddZ gdZ ddddddddZ dZ dZdZd S)r z$create a built (binary) distribution)z bdist-base=bz4temporary directory for creating built distributionsz plat-name=pz;platform name to embed in generated filenames (default: %s))rNz/formats for distribution (comma-separated list))z dist-dir=dz=directory to put final built distributions in [default: dist]) skip-buildNz2skip rebuilding everything (for testing/debugging))zowner=uz@Owner name used when creating a tar file [default: current user])zgroup=gzAGroup name used when creating a tar file [default: current group]rz help-formatsNz$lists available distribution formats) bdist_rpmgztarzip)posixnt)rpmrbztarxztarztartarr)rzRPM distribution) bdist_dumbzgzip'ed tar file)r'zbzip2'ed tar file)r'zxz'ed tar file)r'zcompressed tar file)r'ztar file)r'zZIP filechd|_d|_d|_d|_d|_d|_d|_dS)Nr) bdist_base plat_namerdist_dir skip_buildgroupowner)selfs rinitialize_optionszbdist.initialize_optionsLs7    rc|j:|jrt|_n|dj|_|jG|dj}t j|d|jz|_| d|j I |j t j g|_ n*#t$rtdt j zwxYw|j d|_dSdS)Nbuildzbdist.rz;don't know how to create built distributions on platform %sdist)r*r,rget_finalized_commandr) build_baseospathjoinensure_string_listrdefault_formatnameKeyErrorDistutilsPlatformErrorr+)r/r5s rfinalize_optionszbdist.finalize_optionsUs > ! O!-!%!;!;G!D!D!N ? "33G<<GJ gll:+3dn+DFFDO  *** <  2 $ 3BG <=  2 2 2,')+1222 2 = "DMMM ! s -C 'C2cg}|jD]I} ||j|d*#t$rt d|zwxYwt t |jD]}||}||}||jvr|j||_ |dkr|j |_ |j |_ |||dzdvrd|_ | |dS)Nrzinvalid format '%s'r'r )rr rr<DistutilsOptionErrorrangelenreinitialize_commandno_format_optionrr.r- keep_temp run_command)r/commandsricmd_namesub_cmds rrunz bdist.runqs0l K KF K 3F ;A >???? K K K*+@6+IJJJ Ks4<(()) ' 'A{H//99Gt444!%a<'' $  $  8AaCDD>))$%!   X & & & & ' 's &4A)__name__ __module__ __qualname__ descriptionr user_optionsboolean_optionsr help_optionsrDr:r rr0r>rKrrr r s8KM!3%'3|~~67H(K12L($nO  / ? L & '!##NONNO BAB?D99 N###8'''''rr ) __doc__r6distutils.corerdistutils.errorsdistutils.utilrrr rSrrrXs  """"""'''''' I I Ir'r'r'r'r'Gr'r'r'r'r'rPK!zjৰ 9command/__pycache__/install_scripts.cpython-311.opt-2.pycnu[ 0iP ddlZddlmZddlmZddlmZGddeZdS)N)Command)log)ST_MODEc@eZdZdZgdZddgZdZdZdZdZ d Z d S) install_scriptsz%install scripts (Python or otherwise)))z install-dir=dzdirectory to install scripts to)z build-dir=bz'build directory (where to install from))forcefz-force installation (overwrite existing files)) skip-buildNzskip the build stepsr r c>d|_d|_d|_d|_dS)Nr) install_dirr build_dir skip_buildselfs H/opt/alt/python311/lib64/python3.11/distutils/command/install_scripts.pyinitialize_optionsz"install_scripts.initialize_optionss# cb|dd|dddddS)Nbuild) build_scriptsrinstall)rr)r r )rr)set_undefined_optionsrs rfinalize_optionsz install_scripts.finalize_options!sF ""7,JKKK ""9#E#5#? $ $ $ $ $rc|js|d||j|j|_t jdkr|D]q}|j rtj d|t j |tdzdz}tj d||t j||pdSdS)Nrposixzchanging mode of %simizchanging mode of %s to %o)r run_command copy_treerroutfilesosname get_outputsdry_runrinfostatrchmod)rfilemodes rrunzinstall_scripts.run)s .   _ - - -t~t7GHH 7g  ((** ) )<)H2D9999WT]]73u<FDH8$EEEHT4((((   ) )rc|jjpgSN) distributionscriptsrs r get_inputszinstall_scripts.get_inputs8s (.B.rc|jpgSr,)r rs rr#zinstall_scripts.get_outputs;s}""rN) __name__ __module__ __qualname__ description user_optionsboolean_optionsrrr*r/r#rrrrs9KL -O $$$ ) ) )///#####rr)r!distutils.corer distutilsrr&rrr7rrr:s """""".#.#.#.#.#g.#.#.#.#.#rPK!X?X?*command/__pycache__/config.cpython-311.pycnu[ 0i=3xdZddlZddlZddlmZddlmZddlmZddl m Z ddd Z Gd d eZ d d Z dS)adistutils.command.config Implements the Distutils 'config' command, a (mostly) empty command class that exists mainly to be sub-classed by specific module distributions and applications. The idea is that while every "config" command is different, at least they're all named the same, and users always see "config" in the list of standard commands. Also, this is a good place to put common configure-like tasks: "try to compile this C code", or "figure out where this header file lives". N)Command)DistutilsExecError)customize_compiler)logz.cz.cxx)czc++ceZdZdZgdZdZdZdZdZdZ dZ d Z d Z d Z ddZ ddZddZ ddZ ddZ ddZd d d gfdZ ddZd S)configzprepare to build) )z compiler=Nzspecify the compiler type)zcc=Nzspecify the compiler executable)z include-dirs=Iz.list of directories to search for header files)zdefine=DzC preprocessor macros to define)zundef=Uz!C preprocessor macros to undefine)z libraries=lz!external C libraries to link with)z library-dirs=Lz.directories to search for external C libraries)noisyNz1show every action (compile, link, run, ...) taken)z dump-sourceNz=dump generated source files before attempting to compile themcvd|_d|_d|_d|_d|_d|_d|_g|_dS)N)compilercc include_dirs libraries library_dirsr dump_source temp_filesselfs ?/opt/alt/python311/lib64/python3.11/distutils/command/config.pyinitialize_optionszconfig.initialize_options3sE    c|j|jjpg|_nCt|jtr)|jt j|_|jg|_n't|jtr |jg|_|j g|_dSt|jtr+|jt j|_dSdSN) r distribution isinstancestrsplitospathseprrrs rfinalize_optionszconfig.finalize_optionsBs   $ $ 1 > D"D   )3 / / D $ 1 7 7 C CD  > !DNN  , , ."n-DN   $ "D    )3 / / D $ 1 7 7 C CD    D DrcdSrrs rrunz config.runRs rcddlm}m}t|j|s||j|jd|_t |j|jr|j|j|j r|j |j |j r#|j |j dSdSdS)z^Check that 'self.compiler' really is a CCompiler object; if not, make it one. r) CCompiler new_compilerr)rdry_runforceN) distutils.ccompilerr+r,r!rr-rrset_include_dirsr set_librariesrset_library_dirs)rr+r,s r_check_compilerzconfig._check_compilerYs @???????$-33 B(L$-15QHHHDM t} - - -  B ..t/@AAA~ < ++DN;;;  B ..t/@AAAAA B B B BrcJdt|z}t|d5}|r2|D]}|d|z|d|||ddkr|ddddn #1swxYwY|S)N _configtestwz#include <%s>  )LANG_EXTopenwrite)rbodyheaderslangfilenamefileheaders r_gen_temp_sourcefilezconfig._gen_temp_sourcefileks 8D>1 (C  !D !%;;FJJ069:::: 4   JJt   Bx4 4    ! ! ! ! ! ! ! ! ! ! ! ! ! ! !sA+BBBc||||}d}|j||g|j|||||fS)Nz _configtest.ir)rBrextendr preprocess)rr<r=rr>srcouts r _preprocesszconfig._preprocessws_''gt<< Sz***   c  EEESzrc||||}|jrt|d|z|j|g\}|j||g|j|g|||fS)Nzcompiling '%s':rD)rBr dump_filerobject_filenamesrrEcompile)rr<r=rr>rGobjs r_compilezconfig._compile~s''gt<<   4 c,s2 3 3 3//66 Sz*** se,???Szrcp|||||\}}tjtj|d} |j|g| ||||jj| |jjz} |j | ||| fS)Nr)rr target_lang) rOr$pathsplitextbasenamerlink_executable exe_extensionrappend) rr<r=rrrr>rGrNprogs r_linkz config._links]]4,EE cw 0 0 5 566q9 %%seT093?26 & 8 8 8 = & 2$-55D t$$$S$rc|s|j}g|_tjdd||D]'} t j|#t $rY$wxYwdS)Nz removing: %s )rrinfojoinr$removeOSError)r filenamesr?s r_cleanz config._cleans !I DO )!4!4555!  H  (####      sA A A Nrcddlm}|d} |||||n #|$rd}YnwxYw||S)aQConstruct a source file from 'body' (a string containing lines of C/C++ code) and 'headers' (a list of header files to include) and run it through the preprocessor. Return true if the preprocessor succeeded, false if there were any errors. ('body' probably isn't of much use, but what the heck.) r CompileErrorTF)r/rdr3rIrarr<r=rr>rdoks rtry_cppzconfig.try_cpps 544444      T7L$ ? ? ? ?   BBB   s7AAc||||||\}}t|trt j|}t |5}d} |} | dkrn|| rd} n4dddn #1swxYwY| | S)aConstruct a source file (just like 'try_cpp()'), run it through the preprocessor, and return true if any line of the output matches 'pattern'. 'pattern' should either be a compiled regex object or a string containing a regex. If both 'body' and 'headers' are None, preprocesses an empty file -- which can be useful to determine the symbols the preprocessor and compiler set by default. FTN) r3rIr!r"rerMr:readlinesearchra) rpatternr<r=rr>rGrHr@matchlines r search_cppzconfig.search_cpps  ##D'<FFS gs # # *j))G #YY $E }}2::>>$'' E                   s(8B,,B03B0cddlm}| |||||d}n #|$rd}YnwxYwt j|rdpd||S)zwTry to compile a source file built from 'body' and 'headers'. Return true on success, false otherwise. rrcTFsuccess!failure.)r/rdr3rOrr\rares r try_compilezconfig.try_compiles 544444   MM$t < < <BB   BBB  " 0j111  s7AAcddlm}m}| |||||||d} n#||f$rd} YnwxYwt j| rdpd|| S)zTry to compile and link a source file, built from 'body' and 'headers', to executable form. Return true on success, false otherwise. rrd LinkErrorTFrrrs)r/rdrwr3rYrr\ra) rr<r=rrrr>rdrwrfs rtry_linkzconfig.try_links @???????   JJtWl , 6 6 6BBi(   BBB  " 0j111  s; AAc0ddlm}m}| |||||||\} } } || gd} n#||t f$rd} YnwxYwtj| rdpd| | S)zTry to compile, link to an executable, and run a program built from 'body' and 'headers'. Return true on success, false otherwise. rrvTFrrrs) r/rdrwr3rYspawnrrr\ra) rr<r=rrrr>rdrwrGrNexerfs rtry_runzconfig.try_runs @???????   JJtWl'0,FFMCc JJu   BBi);<   BBB  " 0j111  s6AA'&A'rc~|g}|r|d|z|d|r|d|zn|d|z|dd|dz}||||||S)aDetermine if function 'func' is available by constructing a source file that refers to 'func', and compiles and links it. If everything succeeds, returns true; otherwise returns false. The constructed source file starts out by including the header files listed in 'headers'. If 'decl' is true, it then declares 'func' (as "int func()"); you probably shouldn't supply 'headers' and set 'decl' true in the same call, or you might get errors about a conflicting declarations for 'func'. Finally, the constructed 'main()' function either references 'func' or (if 'call' is true) calls it. 'libraries' and 'library_dirs' are used when linking. z int %s ();z int main () {z %s();z %s;}r7)r3rWr]rx) rfuncr=rrrdeclcallr<s r check_funczconfig.check_funcs   - KK t+ , , , O$$$  ( KK D( ) ) ) ) KK$ ' ' ' Cyy%}}T7L& 66 6rcd||d|||g|z|S)aDetermine if 'library' is available to be linked against, without actually checking that any particular symbols are provided by it. 'headers' will be used in constructing the source file to be compiled, but the only effect of this is to check if all the header files listed are available. Any libraries listed in 'other_libraries' will be included in the link, in case 'library' has symbols that depend on other libraries. zint main (void) { })r3rx)rlibraryrr=rother_librariess r check_libzconfig.check_lib4sB }}2G\%Y8,HH Hrc4|d|g|S)zDetermine if the system header file named by 'header_file' exists and can be found by the preprocessor; return true if so, false otherwise. z /* No body */)r<r=r)rg)rrArrr>s r check_headerzconfig.check_headerBs( ||6()577 7r)NNNr)NNr)NNNNr)NNNNrr)__name__ __module__ __qualname__ description user_optionsrr&r)r3rBrIrOrYrargrprtrxr|rrrr(rrr r s$K   L4   DDD    BBB$          ,$IM8 IM),&HL(+2;?CD6666</3D#R H H H HDH777777rr c$|tjd|ntj|t|} tj||dS#|wxYw)zjDumps a file content into log.info. If head is not None, will be dumped before the file content. Nz%s)rr\r:readclose)r?headr@s rrKrKKsv  | x      >>D   s &A99Br)__doc__r$rjdistutils.corerdistutils.errorsrdistutils.sysconfigr distutilsrr9r rKr(rrrs   """"""//////222222f % %t7t7t7t7t7Wt7t7t7l      rPK!Ef(:8:82command/__pycache__/register.cpython-311.opt-2.pycnu[ 0i-p ddlZddlZddlZddlZddlmZddlmZddl Tddl m Z GddeZ dS)N)warn) PyPIRCCommand)*)logceZdZdZejddgzZejgdzZddfgZdZdZ d Z d Z d Z d Z d ZdZdZddZdS)registerz7register the distribution with the Python package index)list-classifiersNz list the valid Trove classifiers)strictNzBWill stop the registering if the meta-data are not fully compliant)verifyr r checkcdS)NTselfs A/opt/alt/python311/lib64/python3.11/distutils/command/register.pyzregister.s4cJtj|d|_d|_dS)Nr)rinitialize_optionslist_classifiersr rs rrzregister.initialize_optionss&(... ! rcdtj|d|jfdd}||jjd<dS)Nr)r)r restructuredtextr )rfinalize_optionsr distributioncommand_options)r check_optionss rrzregister.finalize_options$sB&t,,,$. #<-<>> 5B)'222rcJ|||D]}|||jr|dS|jr|dS|dSN) r _set_configget_sub_commands run_commanddry_runverify_metadatar classifiers send_metadata)rcmd_names rrunz register.run+s  --// ' 'H   X & & & & < !  " " " " "  " !            rc tdt|jd}||j|_d|_|dS)Nzddistutils.command.register.check_metadata is deprecated, use the check command insteadr r)rPendingDeprecationWarningrget_command_objensure_finalizedr rr()rr s rcheck_metadatazregister.check_metadata:sl -.G I I I!11'::    { !" rc@ |}|ikr=|d|_|d|_|d|_|d|_d|_dS|jd|jfvrtd|jz|jdkr |j|_d|_dS) Nusernamepassword repositoryrealmTpypiz%s not found in .pypircF) _read_pypircr/r0r1r2 has_configDEFAULT_REPOSITORY ValueError)rconfigs rr zregister._set_configDs ""$$ R<<":.DM":.DM$\2DODJ"DOOOvt/F&GGG !:T_!LMMM&(("&"9#DOOOrc |jdz}tj|}t j||dS)Nz?:action=list_classifiers)r1urllibrequesturlopenrinfo_read_pypi_response)rurlresponses rr%zregister.classifiersUsM o99>))#.. ))(3344444rc ||d\}}tjd||dS)Nr Server response (%s): %s)post_to_serverbuild_post_datarr=)rcoderesults rr$zregister.verify_metadata\sI ,,T-A-A(-K-KLLv +T6:::::rc& |jrd}|j}|j}nd}dx}}d}||vrJ|dt jt}|sd}n||vrtd||vJ|dkr|std}||stj d}|tj }tj |jd }||j|||||d |\}}|d |d |t j|d kr|jr||j_dS|dt j|d|zt jd}|dvr)td}|sd}|dv)|dkr|||dSdSdS|dkrYddi} dx| d<x| d<| d<d| d<| dstd| d<| d| d| dkr| dstj d| d<| d| dstj d| d<| d| d| dkrd| d<d| d<td| d| dk| dstd| d<| d|| \}}|d krt jd||dSt jd t jd!dS|d"kr[dd#i} d| d<| dstd$| d<| d|| \}}t jd||dSdS)%N1xz1 2 3 4zWe need to know who you are, so please choose either: 1. use your existing login, 2. register as a new user, 3. have the server generate a new password for you (and email it to you), or 4. quit Your selection [default 1]: z&Please choose one of the four options!z Username: z Password: rsubmitzServer response (z): zAI can store your PyPI login so future submissions will be faster.z (the login will be stored in %s)XynzSave your login (y/N)?ny2:actionusernamer0emailconfirmz Confirm: z!Password and confirm don't match!z EMail: rBz"You will receive an email shortly.z7Follow the instructions in it to complete registration.3password_resetzYour email address: )r5r/r0splitannouncerINFOinputprintgetpassr:r;HTTPPasswordMgrparseurlparser1 add_passwordr2rCrDr _get_rc_filelower _store_pypircr=) rchoicer/r0choicesauthhostrErFdatas rr&zregister.send_metadatacs : ? %F}H}HHF"$ $Hx//##G## MM "%  + + +WWF @w&&>???G## S== / .. / 9"?<88 9>1133D<((99!>>>>!{-,s]]v&D>@ @DL @4 +d7m"DO6l 3$\22V 6l 3z"d9o55z*E'.|'D'DD$z*Ey/D&-ol&C&CDOy/D #tI66')D$&*DO=>>>z"d9o557m 4 %l 3 3W 7m 4..t44LD&s{{3T6BBBBB=>>>355555 s]]/0DDM7m > %&< = =W 7m >..t44LD& H/v > > > > > ]rc|jj}id|ddd|d|d|d|d|d |d |d | d | d | d| d| d|d|d|}|ds|ds|drd|d<|S)NrRmetadata_versionz1.0rTversionsummary home_pageauthor author_emaillicense descriptionkeywordsplatformr% download_urlprovidesrequires obsoletesz1.1)rmetadataget_name get_versionget_descriptionget_url get_contactget_contact_email get_licenceget_long_description get_keywords get_platformsget_classifiersget_download_url get_provides get_requires get_obsoletes)ractionmetarjs rrDzregister.build_post_datas ) v   DMMOO  t''))  t++--     d&&((  D2244  t''))  44466  ))++  **,,  4//11  D1133 ))++! " ))++# $ ++--% (   -tJ/ -4 3D -',D# $ rNc d|vr1|d|dd|jtjd}d|z}|dz}t j}|D]\}}t|tgtdfvr|g}|D]}t|}| || d|z| d | ||r!|d d kr| d | || d | d }d|ztt|d} tj|j|| } tjtj|} d} | | } |jr|| }d} n|#tjj$r8} |jr| j}| j| jf} Yd} ~ n5d} ~ wtjj$r} dt| f} Yd} ~ nd} ~ wwxYw|jr8d d|df}||tj| S)NrTz Registering z to z3--------------GHSKFJDLGDS7543FJKLFHRE75642756743254z --z--rz* Content-Disposition: form-data; name="%s"z   zutf-8z/multipart/form-data; boundary=%s; charset=utf-8)z Content-typezContent-length) password_mgrrJ)rLOKizK---------------------------------------------------------------------------)rZr1rr[ioStringIOitemstypestrwritegetvalueencodelenr:r;Request build_openerHTTPBasicAuthHandleropen show_responser>error HTTPErrorfpreadrEmsgURLErrorjoin)rrjrhboundary sep_boundary end_boundarybodykeyvalueheadersreqopenerrFers rrCzregister.post_to_servers T>> MMMDLLL48OOE47H > > >I( #d* {}}**,, % %JCE{{488T2ZZ"888 % %E  <((( HLMMM 6""" 5!!!%U2Y$..JJt$$$ % <    4}}%%g..NhV!#d))nn  n$$T_dGDD,, N / /T / B B   [[%%F! 8//77FF|% # # #! #tyy{{VQU]FFFFFF|$ ! ! !#a&&[FFFFFF !   )))XtX677C MM#sx ( ( ( s$H;;J4.JJ4J//J4r)__name__ __module__ __qualname__rsr user_optionsboolean_options sub_commandsrrr(r-r r%r$r&rDrCrrrrrs LK - - O1  L $37070700O//01L CCC ! ! !$$$"555;;;x?x?x?t8777777rr) r^r urllib.parser:urllib.requestwarningsrdistutils.corerdistutils.errors distutilsrrrrrrs ########((((((_____}_____rPK!.$dd4command/__pycache__/build_clib.cpython-311.opt-1.pycnu[ 0iV`dZddlZddlmZddlTddlmZddlmZdZ Gdd eZ dS) zdistutils.command.build_clib Implements the Distutils 'build_clib' command, to build a C/C++ library that is included in the module distribution and needed by an extension module.N)Command)*)customize_compiler)logc&ddlm}|dS)Nrshow_compilers)distutils.ccompilerr rs C/opt/alt/python311/lib64/python3.11/distutils/command/build_clib.pyr r s(222222NcZeZdZdZgdZddgZdddefgZdZd Z d Z d Z d Z d Z dZdS) build_clibz/build C/C++ libraries used by Python extensions))z build-clib=bz%directory to build C/C++ libraries to)z build-temp=tz,directory to put temporary build by-products)debuggz"compile with debugging information)forcefz2forcibly build everything (ignore file timestamps))z compiler=czspecify the compiler typerrz help-compilerNzlist available compilerscd|_d|_d|_d|_d|_d|_d|_d|_d|_dS)Nr) r build_temp libraries include_dirsdefineundefrrcompilerselfs r initialize_optionszbuild_clib.initialize_options4sJ!     r c\|dddddd|jj|_|jr||j|j|jjpg|_t |jt r+|jtj |_dSdS)Nbuild)rr)rr)rr)rr)rr) set_undefined_options distributionrcheck_library_listr isinstancestrsplitospathseprs r finalize_optionszbuild_clib.finalize_optionsDs ""7#?#?#;#5#5  7 7 7*4 > 4  # #DN 3 3 3   $ $ 1 > D"D  d' - - D $ 1 7 7 C CD    D Dr c|jsdSddlm}||j|j|j|_t |j|j|j|j|j (|j D] \}}|j ||!|j $|j D]}|j || |jdS)Nr) new_compiler)rdry_runr)rr r,rr-rrrset_include_dirsr define_macrorundefine_macrobuild_libraries)rr,namevaluemacros r runzbuild_clib.run^s~  F 544444$ dm-1\+/:777  4=)))   ( M * *4+< = = = ; " $  8 8 e **47777 : ! 4 4 ,,U3333 T^,,,,,r ct|tstd|D]}t|ts"t |dkrtd|\}}t|t stdd|vst jdkr&t j|vrtd|dzt|tstdd S) a`Ensure that the list of libraries is valid. `library` is presumably provided as a command option 'libraries'. This method checks that it is a list of 2-tuples, where the tuples are (library_name, build_info_dict). Raise DistutilsSetupError if the structure is invalid anywhere; just returns otherwise. z+'libraries' option must be a list of tuplesz*each element of 'libraries' must a 2-tuplezNfirst element of each tuple in 'libraries' must be a string (the library name)/z;bad library name '%s': may not contain directory separatorsrzMsecond element of each tuple in 'libraries' must be a dictionary (build info)N) r%listDistutilsSetupErrortuplelenr&r(sepdict)rrlibr2 build_infos r r$zbuild_clib.check_library_listvs.)T** A%?AA A ; ;Cc5)) Dc#hh!mm)BDDD # D*dC(( =)<===d{{rv}}4)+>@CA+GHHHj$// ;):;;; ;! ; ;r c`|jsdSg}|jD]\}}|||S)N)rappend)r lib_nameslib_namer@s r get_library_nameszbuild_clib.get_library_namessK~ 4 &*n ' ' "Xz   X & & & &r c ||jg}|jD]_\}}|d}|t|tt fst d|z||`|S)Nsourcesfin 'libraries' option (library '%s'), 'sources' must be present and must be a list of source filenames)r$rgetr%r9r;r:extend)r filenamesrDr@rGs r get_source_fileszbuild_clib.get_source_filess /// &*n & & "Xz nnY//Gj4-&H&H)46>?@@@   W % % % %r c|D]\}}|d}|t|ttfst d|zt|}t jd||d}|d}|j||j |||j }|j |||j |j dS)NrGrHzbuilding '%s' librarymacrosr) output_dirrNrr)rOr) rIr%r9r;r:rinforcompilerrcreate_static_libr)rrrDr@rGrNrobjectss r r1zbuild_clib.build_librariess&/ > > "Xz nnY//Gj4-&H&H)46>?@@@7mmG H,h 7 7 7  ^^H--F%>>.99Lm++G7;399E26* ,>>G M + +GX7;26* , > > > >3 > >r )__name__ __module__ __qualname__ description user_optionsboolean_optionsr help_optionsrr*r5r$rErLr1r r rrsCK    L(O $ #^ 5 L    DDD4---0!;!;!;H      >>>>>r r) __doc__r(distutils.corerdistutils.errorsdistutils.sysconfigr distutilsrr rr[r r ras   """"""222222 u>u>u>u>u>u>u>u>u>u>r PK!ԷII2command/__pycache__/build_py.cpython-311.opt-1.pycnu[ 0i&CdZddlZddlZddlZddlZddlmZddlTddl m Z m Z ddl m Z GddeZGd d ee ZdS) zHdistutils.command.build_py Implements the Distutils 'build_py' command.N)Command)*) convert_path Mixin2to3)logceZdZdZgdZddgZddiZdZdZdZ d Z d Z d Z d Z d ZdZdZdZdZdZdZddZdZdZdZdZdS)build_pyz5"build" pure Python modules (copy to build directory)))z build-lib=dzdirectory to "build" (copy) to)compileczcompile .py to .pyc) no-compileNz!don't compile .py files [default])z optimize=Ozlalso compile with optimization: -O1 for "python -O", -O2 for "python -OO", and -O0 to disable [default: -O0])forcefz2forcibly build everything (ignore file timestamps)r rr cvd|_d|_d|_d|_d|_d|_d|_d|_dS)Nr) build_lib py_modulespackage package_data package_dirr optimizerselfs A/opt/alt/python311/lib64/python3.11/distutils/command/build_py.pyinitialize_optionszbuild_py.initialize_options s@     c|ddd|jj|_|jj|_|jj|_i|_|jjr;|jjD]\}}t||j|<||_ t|j ts@ t|j |_ dS#ttf$rtdwxYwdS)Nbuild)rr)rrzoptimize must be 0, 1, or 2)set_undefined_options distributionpackagesrrritemsrget_data_files data_files isinstancerint ValueErrorAssertionErrorDistutilsOptionError)rnamepaths rfinalize_optionszbuild_py.finalize_options*s# ""7#=#5 7 7 7 )2 +6 -:   ( <"/;AACC < < d)5d);); &&--//$--- J J #DM 2 2 / J J J*+HIII J  J Js C((!D c|jr||jr(||||ddSNr)include_bytecode)r build_modulesr!build_packagesbuild_package_data byte_compile get_outputsrs rrunz build_py.runCsy, ? !    = &    ! ! !  # # % % % $**A*>>?????rc\g}|js|S|jD]}||}tjj|jg|dz}d|rt|dzfd|||D}| ||||f|S)z?Generate list of '(package,src_dir,build_dir,filenames)' tuples.rc$g|] }|d SN).0fileplens r z+build_py.get_data_files..ss. $TUU r) r!get_package_dirosr+joinrsplitlenfind_data_filesappend)rdatarsrc_dir build_dir filenamesr>s @rr#zbuild_py.get_data_filesas} K} B BG**733G '7'--:L:L'LNID &7||A~(,(<(.s;(((2U??GNN2&&4C"???r) rgetglobrAr+rBescaperextend)rrrHglobspatternfilelistrPs @rrEzbuild_py.find_data_filesys"&&r2..$(("556 ) )Gydk'.B.BLQXDYDY!Z!Z[[H LL((((x((( ) ) ) ) rcBd}|jD]\}}}}|D]}tj||}|tj||tj|||ddS)z$Copy data files into build directoryNF preserve_mode)r$rAr+rBmkpathdirname copy_file)rlastdirrrHrIrJfilenametargets rr2zbuild_py.build_package_datas6:o 4 4 2GWi% 4 4i:: BGOOF33444rw||GX>>-24444 4 4 4rc|d}|js|rtjj|SdSg}|r{ |jd|}|d|tjj|S#t $r"|d|d|d=YnwxYw|{|jd}||d||rtjj|SdS)zReturn the directory, relative to the top of the source distribution, where package 'package' should be found (at least according to the 'package_dir' option, if any).r7rLr)rCrrAr+rBinsertKeyErrorrQ)rrr+tailpdirs rr@zbuild_py.get_package_dirs"}}S!!  w|T**rD /+CHHTNN;D KK4(((7<..  !!!KK48,,,R! "'++B//#KK4(((7<..2s B)B.-B.c|dkrbtj|std|ztj|std|z|rVtj|d}tj|r|Stjd|dS)NrLz%package directory '%s' does not existz>supposed package directory '%s' exists, but is not a directoryz __init__.pyz8package init file '%s' not found (or not a regular file)) rAr+existsDistutilsFileErrorisdirrBrNrwarn)rrrinit_pys r check_packagezbuild_py.check_packages "  7>>+.. M(= KMMM7==-- ?(02=>???  ?gll; >>Gw~~g&& ?46=??? trcttj|stjd||dSdS)Nz!file %s (for module %s) not foundFT)rAr+rNrrk)rmodule module_files r check_modulezbuild_py.check_modules7w~~k**  H8+v N N N54rcJ|||tjtjtj|d}g}tj|jj}|D]}tj|}||kr[tj tj |d}| |||f| d|z|S)Nz*.pyrz excluding %s) rmrRrAr+rBrSabspathr script_namesplitextbasenamerF debug_print) rrr module_filesmodules setup_scriptrabs_fros rfind_package_moduleszbuild_py.find_package_moduless 7K000ydk+.F.F!O!OPP wt'8'DEE  @ @AGOOA&&E $$))"'*:*:1*=*=>>qA34444  ,!>????rci}g}|jD]}|d}d|dd}|d} ||\}}n'#t$r||}d}YnwxYw|s7|||} |df||<| r||d| ftj||dz} | || s|||| f|S)aFinds individually-specified Python modules, ie. those listed by module name in 'self.py_modules'. Returns a list of tuples (package, module_base, filename): 'package' is a tuple of the path through package-space to the module; 'module_base' is the bare (no packages, no dots) module name, and 'filename' is the path to the ".py" file (relative to the distribution root) that implements the module. r7rrbr8__init__.py) rrCrBrdr@rmrFrAr+rq) rr!ryror+r module_basercheckedrlrps r find_moduleszbuild_py.find_modulessN o @ @F<<$$DhhtAbDz**Gr(K )1'):&gg   "227;;   C,,WkBB%0!$4!CNNGZ#ABBB ',,{K%4GHHK$$V[99  NNG[+> ? ? ? ?s A!A98A9cg}|jr'|||jrJ|jD]B}||}|||}||C|S)a4Compute the list of all modules that will be built, whether they are specified one-module-at-a-time ('self.py_modules') or by whole packages ('self.packages'). Return a list of tuples (package, module, module_file), just like 'find_modules()' and 'find_package_modules()' do.)rrTrr!r@r|)rryrrms rfind_all_moduleszbuild_py.find_all_moduless  ? 0 NN4,,.. / / / = "= " ""227;; --g{CCq!!!!rc>d|DS)Ncg|] }|d S)rbr;)r<ros rr?z-build_py.get_source_files..-sAAAvr AAAr)rrs rget_source_fileszbuild_py.get_source_files,s"AA)>)>)@)@AAAArc\|gt|z|dzgz}tjj|S)Nr)listrAr+rB)rrIrro outfile_paths rget_module_outfilezbuild_py.get_module_outfile/s/!{T']]2fun5EE w|\**rr8c|}g}|D]\}}}|d}||j||}|||r|jr4|t j|d|j dkr9|t j||j |d|j Dz }|S)Nr7rL) optimizationrcbg|],\}}}}|D]"}tj||#-Sr;)rAr+rB)r<rrHrIrJr_s rr?z(build_py.get_outputs..BsW6)Y% GLLH - -r) rrCrrrFr importlibutilcache_from_sourcerr$)rr/ryoutputsrrorpr_s rr4zbuild_py.get_outputs3s''')).5 ? ? *WfkmmC((G..t~wOOH NN8 $ $ $ ?<4NN9>#C#C r$D$3$3444=1$$NN9>#C#C t}$D$>$>??? :>/  rc~t|tr|d}n+t|ttfst d||j||}tj |}| || ||dS)Nr7z:'package' must be a string (dot-separated), list, or tuplerrY) r%strrCrtuple TypeErrorrrrAr+r\r[r])rrorproutfiledirs r build_modulezbuild_py.build_moduleJs gs # # PmmC((GGGdE]33 PNPP P ))$.'6JJgoog&& C~~k7!~DDDrcn|}|D]\}}}||||dSr:)rr)rryrrorps rr0zbuild_py.build_modulesYsP##%%.5 < < *Wfk   fk7 ; ; ; ;  < > > F////// ":  bf_F < P L#z&$, P P P P =1   L#z&$, P P P P P P  rN)r8)__name__ __module__ __qualname__ description user_optionsboolean_options negative_optrr,r5r#rEr2r@rmrqr|rrrrr4rr0r1r3r;rrr r sxKK   L!'*O 9-LJJJ2@@@<0   444%%%N6   222h BBB+++. E E E<<<@@@(PPPPPrr ceZdZdZdZdS) build_py_2to3c.g|_|jr||jr(||||j||ddSr.) updated_filesrr0r!r1r2run_2to3r3r4rs rr5zbuild_py_2to3.runs ? !    = &    ! ! !  # # % % % d())) $**A*>>?????rct||||}|dr |j|d|S)Nr8r)r rrrF)rrorprress rrzbuild_py_2to3.build_modulesG##D&+wGG q6 .   % %c!f - - - rN)rrrr5rr;rrrrs5@@@ rr)__doc__rAimportlib.utilrrrRdistutils.corerdistutils.errorsrrr distutilsrr rr;rrrs00  """"""22222222yPyPyPyPyPyPyPyPv HirPK!S/command/__pycache__/check.cpython-311.opt-2.pycnu[ 0i ddlmZddlmZ ddlmZddlmZddlm Z ddlm Z GddeZ d Z n #e $rd Z YnwxYwGd d eZd S))Command)DistutilsSetupError)Reporter)Parser)frontend)nodesc eZdZ ddZdZdS)SilentReporterNrasciireplacec Jg|_tj||||||||dSN)messagesr__init__)selfsource report_level halt_levelstreamdebugencoding error_handlers >/opt/alt/python311/lib64/python3.11/distutils/command/check.pyrzSilentReporter.__init__s9DM  dFL*f#X} > > > > >c|j||||ftj|g|R||j|d|S)N)leveltype)rappendrsystem_messagelevels)rrmessagechildrenkwargss rrzSilentReporter.system_messagesc M %(F!C D D D'=)1==u-1[-?==5;== =r)Nrr r )__name__ __module__ __qualname__rrrrr r s=DH>G > > > >  = = = = =rr TFcNeZdZ dZgdZgdZdZdZdZdZ dZ d Z d Z d S) checkz"perform some checks on the package))metadatamzVerify meta-data)restructuredtextrzEChecks if long string meta-data syntax are reStructuredText-compliant)strictsz(Will exit with an error if a check fails)r*r,r.c@ d|_d|_d|_d|_dS)Nr)r,r*r. _warningsrs rinitialize_optionszcheck.initialize_options0s&. !  rcdSrr'r3s rfinalize_optionszcheck.finalize_options7s rcN |xjdz c_tj||S)Nr1)r2rwarn)rmsgs rr8z check.warn:s'8 !|D#&&&rc |jr||jr2tr|n|jrt d|jr|jdkrt ddSdS)NzThe docutils package is needed.rzPlease correct your package.)r*check_metadatar, HAS_DOCUTILScheck_restructuredtextr.rr2r3s rrunz check.run?s = "    ! ! !   M M++---- M)*KLLL ; F4>A--%&DEE E F F--rc |jj}g}dD]7}t||rt||s||8|r+|dd|z|jr |js|ddSdS|j r |j s|ddSdS|ddS)N)nameversionurlzmissing required meta-data: %sz, zNmissing meta-data: if 'author' supplied, 'author_email' should be supplied toozVmissing meta-data: if 'maintainer' supplied, 'maintainer_email' should be supplied toozkmissing meta-data: either (author and author_email) or (maintainer and maintainer_email) should be supplied) distributionr*hasattrgetattrrr8joinauthor author_email maintainermaintainer_email)rr*missingattrs rr;zcheck.check_metadataOsO $-. % %DHd++ %$0G0G %t$$$  N II6$))G:L:LL M M M ? ,( C BCCCCC C C  ,, G FGGGGG G G II+ , , , , ,rc |j}||D]K}|dd}| |d}n|dd|d}||LdS)Nliner1z (line ))rCget_long_description_check_rst_datagetr8)rdatawarningrOs rr=zcheck.check_restructuredtextpsB 5577++D11  G2;??6**D|!!*,3AJJJ= IIg       rc  |jjpd}t} tj}|t}n=#t $r0tjtf}YnwxYwd|_d|_ d|_ t||j |j |j|j|j|j}t%j|||}||d |||n8#t $r+}|jdd|zdifYd}~nd}~wwxYw|jS) Nzsetup.py) components)rrrr)rrNz!Could not finish the parsing: %s.)rC script_namerrget_default_settingsAttributeError OptionParserget_default_values tab_widthpep_referencesrfc_referencesr rrwarning_streamrerror_encodingerror_encoding_error_handlerrdocument note_sourceparserr) rrT source_pathparserr[settingsreporterrees rrRzcheck._check_rst_data{sF'3Az  4#+#@ ,+F33HH  X X X, BBBUUWWHHH X "&"&!+"/"-!)!8 (#+#:(0(M OOO>(H[III["--- G LLx ( ( ( ( G G G   $ $81r;r=rRr'rrr)r)#s7KBBBLA@@O   ''' FFF ,,,B   !!!!!rr)N)distutils.corerdistutils.errorsrdocutils.utilsrdocutils.parsers.rstrdocutilsrrr r< Exceptionr)r'rrrvs#"""""000000''''''++++++!!!!!! = = = = = = = =LLLLL w!w!w!w!w!Gw!w!w!w!w!s(8AAPK!/e)command/__pycache__/build.cpython-311.pycnu[ 0i`dZddlZddlZddlmZddlmZddlmZdZ GddeZ dS) zBdistutils.command.build Implements the Distutils 'build' command.N)Command)DistutilsOptionError) get_platformc&ddlm}|dS)Nrshow_compilers)distutils.ccompilerrrs >/opt/alt/python311/lib64/python3.11/distutils/command/build.pyrr s(222222Nc eZdZdZdddddddd d ezfd d d ddg ZddgZdddefgZdZ dZ dZ dZ dZ dZdZde fde fdefdefgZdS) buildz"build everything needed to install)z build-base=bz base directory for build library)zbuild-purelib=Nz2build directory for platform-neutral distributions)zbuild-platlib=Nz3build directory for platform-specific distributions)z build-lib=NzWbuild directory for all distribution (defaults to either build-purelib or build-platlib)zbuild-scripts=Nzbuild directory for scripts)z build-temp=tztemporary build directoryz plat-name=pz6platform name to build for, if supported (default: %s))z compiler=czspecify the compiler type)z parallel=jznumber of parallel build jobs)debuggz;compile extensions and libraries with debugging information)forcefz2forcibly build everything (ignore file timestamps))z executable=ez5specify final destination interpreter path (build.py)rrz help-compilerNzlist available compilerscd|_d|_d|_d|_d|_d|_d|_d|_d|_d|_ d|_ d|_ dS)Nr r) build_base build_purelib build_platlib build_lib build_temp build_scriptscompiler plat_namerr executableparallelselfs r initialize_optionszbuild.initialize_options8s_!"!!    r c,|jt|_ntjdkrt dd|jgt jddRz}tt dr|dz }|j*tj |j d|_|j -tj |j d|z|_ |j %|jjr |j |_ n |j|_ |j-tj |j d|z|_|j?tj |j d t jddz|_|j:t jr.tj t j|_t)|jt,r9 t/|j|_dS#t0$rt d wxYwdS) NntzW--plat-name only supported on Windows (try using './configure --help' on your platform)z .%s-%d.%dgettotalrefcountz-pydebuglibtempz scripts-%d.%dzparallel should be an integer)r rosnamersys version_infohasattrrpathjoinrrr distribution ext_modulesrrr!normpath isinstancer"strint ValueError)r$plat_specifiers r finalize_optionszbuild.finalize_optionsHs > !)^^DNN w$*KLLL%'N9I"1"9M'N'NN 3* + + ) j (N   %!#dou!E!ED    %!#do.3n.D"F"FD  > ! , 4!%!3!%!3 ? " gll4?+1N+BDDDO   %!#do.=@PQSRSQS@T.T"V"VD  ? "s~ " g..s~>>DO dmS ) ) L L #DM 2 2  L L L*+JKKK L L Ls G77Hc^|D]}||dSN)get_sub_commands run_command)r$cmd_names r runz build.runs@ --// ' 'H   X & & & & ' 'r c4|jSr=)r3has_pure_modulesr#s r rCzbuild.has_pure_moduless 11333r c4|jSr=)r3has_c_librariesr#s r rEzbuild.has_c_libraries 00222r c4|jSr=)r3has_ext_modulesr#s r rHzbuild.has_ext_modulesrFr c4|jSr=)r3 has_scriptsr#s r rJzbuild.has_scriptss ,,...r build_py build_clib build_extr)__name__ __module__ __qualname__ descriptionr user_optionsboolean_optionsr help_optionsr%r;rArCrErHrJ sub_commandsr r r r s,6K - ? @ + ( & s '<>> * + & * H ? B3 L:(O $ #^ 5 L  6L6L6Lp'''444333333/// &67!o6 o6$k2LLLr r ) __doc__r.r,distutils.corerdistutils.errorsrdistutils.utilrrr rVr r r[s--""""""111111'''''' MMMMMGMMMMMr PK! = =,command/__pycache__/register.cpython-311.pycnu[ 0i-rdZddlZddlZddlZddlZddlmZddlm Z ddl Tddl m Z Gdde Z dS) zhdistutils.command.register Implements the Distutils 'register' command (register with the repository). N)warn) PyPIRCCommand)*)logceZdZdZejddgzZejgdzZddfgZdZdZ d Z d Z d Z d Z d ZdZdZddZdS)registerz7register the distribution with the Python package index)list-classifiersNz list the valid Trove classifiers)strictNzBWill stop the registering if the meta-data are not fully compliant)verifyr r checkcdS)NTselfs A/opt/alt/python311/lib64/python3.11/distutils/command/register.pyzregister.s4cJtj|d|_d|_dS)Nr)rinitialize_optionslist_classifiersr rs rrzregister.initialize_optionss&(... ! rcdtj|d|jfdd}||jjd<dS)Nr)r)r restructuredtextr )rfinalize_optionsr distributioncommand_options)r check_optionss rrzregister.finalize_options$sB&t,,,$. #<-<>> 5B)'222rcJ|||D]}|||jr|dS|jr|dS|dSN) r _set_configget_sub_commands run_commanddry_runverify_metadatar classifiers send_metadata)rcmd_names rrunz register.run+s  --// ' 'H   X & & & & < !  " " " " "  " !            rctdt|jd}||j|_d|_|dS)zDeprecated API.zddistutils.command.register.check_metadata is deprecated, use the check command insteadr rN)rPendingDeprecationWarningrget_command_objensure_finalizedr rr()rr s rcheck_metadatazregister.check_metadata:si -.G I I I!11'::    { !" rc>|}|ikr=|d|_|d|_|d|_|d|_d|_d S|jd|jfvrtd|jz|jdkr |j|_d|_d S) z: Reads the configuration file and set attributes. usernamepassword repositoryrealmTpypiz%s not found in .pypircFN) _read_pypircr/r0r1r2 has_configDEFAULT_REPOSITORY ValueError)rconfigs rr zregister._set_configDs""$$ R<<":.DM":.DM$\2DODJ"DOOOvt/F&GGG !:T_!LMMM&(("&"9#DOOOrc|jdz}tj|}t j||dS)z8 Fetch the list of classifiers from the server. z?:action=list_classifiersN)r1urllibrequesturlopenrinfo_read_pypi_response)rurlresponses rr%zregister.classifiersUsJo99>))#.. ))(3344444rc||d\}}tjd||dS)zF Send the metadata to the package index server to be checked. r Server response (%s): %sN)post_to_serverbuild_post_datarr=)rcoderesults rr$zregister.verify_metadata\sD,,T-A-A(-K-KLLv +T6:::::rc$|jrd}|j}|j}nd}dx}}d}||vrJ|dt jt}|sd}n||vrtd||vJ|dkr|std}||stj d}|tj }tj |jd }||j|||||d |\}}|d |d |t j|d kr|jr||j_dS|dt j|d|zt jd}|dvr)td}|sd}|dv)|dkr|||dSdSdS|dkrYddi} dx| d<x| d<| d<d| d<| dstd| d<| d| d| dkr| dstj d| d<| d| dstj d| d<| d| d| dkrd| d<d| d<td| d| dk| dstd| d<| d|| \}}|d krt jd ||dSt jd!t jd"dS|d#kr[dd$i} d| d<| dstd%| d<| d|| \}}t jd ||dSdS)&a_ Send the metadata to the package index server. Well, do the following: 1. figure who the user is, and then 2. send the data as a Basic auth'ed POST. First we try to read the username/password from $HOME/.pypirc, which is a ConfigParser-formatted file with a section [distutils] containing username and password entries (both in clear text). Eg: [distutils] index-servers = pypi [pypi] username: fred password: sekrit Otherwise, to figure who the user is, we offer the user three choices: 1. use existing login, 2. register as a new user, or 3. set the password to a random string and email the user. 1xz1 2 3 4zWe need to know who you are, so please choose either: 1. use your existing login, 2. register as a new user, 3. have the server generate a new password for you (and email it to you), or 4. quit Your selection [default 1]: z&Please choose one of the four options!z Username: z Password: rsubmitzServer response (z): zAI can store your PyPI login so future submissions will be faster.z (the login will be stored in %s)XynzSave your login (y/N)?ny2:actionusernamer0emailNconfirmz Confirm: z!Password and confirm don't match!z EMail: rBz"You will receive an email shortly.z7Follow the instructions in it to complete registration.3password_resetzYour email address: )r5r/r0splitannouncerINFOinputprintgetpassr:r;HTTPPasswordMgrparseurlparser1 add_passwordr2rCrDr _get_rc_filelower _store_pypircr=) rchoicer/r0choicesauthhostrErFdatas rr&zregister.send_metadatacs< ? %F}H}HHF"$ $Hx//##G## MM "%  + + +WWF @w&&>???G## S== / .. / 9"?<88 9>1133D<((99!>>>>!{-,s]]v&D>@ @DL @4 +d7m"DO6l 3$\22V 6l 3z"d9o55z*E'.|'D'DD$z*Ey/D&-ol&C&CDOy/D #tI66')D$&*DO=>>>z"d9o557m 4 %l 3 3W 7m 4..t44LD&s{{3T6BBBBB=>>>355555 s]]/0DDM7m > %&< = =W 7m >..t44LD& H/v > > > > > ]rc|jj}id|ddd|d|d|d|d|d |d |d | d | d | d| d| d|d|d|}|ds|ds|drd|d<|S)NrRmetadata_versionz1.0rTversionsummary home_pageauthor author_emaillicense descriptionkeywordsplatformr% download_urlprovidesrequires obsoletesz1.1)rmetadataget_name get_versionget_descriptionget_url get_contactget_contact_email get_licenceget_long_description get_keywords get_platformsget_classifiersget_download_url get_provides get_requires get_obsoletes)ractionmetarjs rrDzregister.build_post_datas ) v   DMMOO  t''))  t++--     d&&((  D2244  t''))  44466  ))++  **,,  4//11  D1133 ))++! " ))++# $ ++--% (   -tJ/ -4 3D -',D# $ rNcd|vr1|d|dd|jtjd}d|z}|dz}t j}|D]\}}t|tgtdfvr|g}|D]}t|}| || d|z| d | ||r!|d d kr| d | || d | d }d|ztt|d} tj|j|| } tjtj|} d} | | } |jr|| }d} n|#tjj$r8} |jr| j}| j| jf} Yd} ~ n5d} ~ wtjj$r} dt| f} Yd} ~ nd} ~ wwxYw|jr8d d|df}||tj| S)zC Post a query to the server, and return a string response. rTz Registering z to z3--------------GHSKFJDLGDS7543FJKLFHRE75642756743254z --z--rz* Content-Disposition: form-data; name="%s"z   zutf-8z/multipart/form-data; boundary=%s; charset=utf-8)z Content-typezContent-length) password_mgrrJ)rLOKNizK---------------------------------------------------------------------------)rZr1rr[ioStringIOitemstypestrwritegetvalueencodelenr:r;Request build_openerHTTPBasicAuthHandleropen show_responser>error HTTPErrorfpreadrEmsgURLErrorjoin)rrjrhboundary sep_boundary end_boundarybodykeyvalueheadersreqopenerrFers rrCzregister.post_to_servers T>> MMMDLLL48OOE47H > > >I( #d* {}}**,, % %JCE{{488T2ZZ"888 % %E  <((( HLMMM 6""" 5!!!%U2Y$..JJt$$$ % <    4}}%%g..NhV!#d))nn  n$$T_dGDD,, N / /T / B B   [[%%F! 8//77FF|% # # #! #tyy{{VQU]FFFFFF|$ ! ! !#a&&[FFFFFF !   )))XtX677C MM#sx ( ( ( s$H::J3.JJ3J..J3r)__name__ __module__ __qualname__rsr user_optionsboolean_options sub_commandsrrr(r-r r%r$r&rDrCrrrrrs LK - - O1  L $37070700O//01L CCC ! ! !$$$"555;;;x?x?x?t8777777rr)__doc__r^r urllib.parser:urllib.requestwarningsrdistutils.corerdistutils.errors distutilsrrrrrrs ########((((((_____}_____rPK!E>:command/__pycache__/install_egg_info.cpython-311.opt-2.pycnu[ 0i+ j ddlmZddlmZmZddlZddlZddlZGddeZdZ dZ dZ dS) )Command)logdir_utilNc2eZdZ dZdgZdZdZdZdZdS)install_egg_infoz8Install package's PKG-INFO metadata as an .egg-info file)z install-dir=dzdirectory to install tocd|_dSN) install_dirselfs I/opt/alt/python311/lib64/python3.11/distutils/command/install_egg_info.pyinitialize_optionsz#install_egg_info.initialize_optionssc|dddtt|jtt |jgtjddRz}tj |j ||_ |j g|_dS)N install_lib)r r z%s-%s-py%d.%d.egg-info)set_undefined_options to_filename safe_name distributionget_name safe_version get_versionsys version_infoospathjoinr targetoutputs)r basenames rfinalize_optionsz!install_egg_info.finalize_optionss ""=1NOOO+  $"3"<"<">">?? @ @  T%6%B%B%D%DEE F F/  bqb !/ /   gll4#3X>>  } rc|j}tj|r;tj|st j||jntj|r+| tj |jfd|znStj|j s/| tj |j fd|j ztjd||jsLt|dd5}|jj|ddddS#1swxYwYdSdS)N)dry_runz Removing z Creating z Writing %swzUTF-8)encoding)r rrisdirislinkr remove_treer%existsexecuteunlinkr makedirsrinfoopenrmetadatawrite_pkg_file)r r fs rrunzinstall_egg_info.run s 7==  7)?)? 7   > > > > > W^^F # # 7 LLDK>+f2D E E E Et/00 7 LLt'7&9$T%55 7 7 7 v&&&| =fcG444 =!*99!<<< = = = = = = = = = = = = = = = = = = = =s- EE!Ec|jSr )r!r s r get_outputszinstall_egg_info.get_outputs.s |rN) __name__ __module__ __qualname__ description user_optionsrr#r4r6rrrr sb3LK8L   %%% = = =rrc0 tjdd|S)N[^A-Za-z0-9.]+-)resubnames rrr6s 6"C . ..rc\ |dd}tjdd|S)N .r>r?)replacer@rA)versions rrr>s1 ooc#&&G 6"C 1 11rc0 |ddS)Nr?_)rGrBs rrrHs <<C  r) distutils.cmdr distutilsrrrrr@rrrrr<rrrMs" "!!!!!########$$$$$w$$$V///222!!!!!rPK!E ] ])command/__pycache__/sdist.cpython-311.pycnu[ 0i=JdZddlZddlZddlmZddlmZddlmZddlm Z ddlm Z ddlm Z dd l m Z dd lmZdd lmZdd lmZdd lmZmZdZGddeZdS)zadistutils.command.sdist Implements the Distutils 'sdist' command (create a source distribution).N)glob)warn)Command)dir_util) file_util) archive_util)TextFile)FileList)log) convert_path)DistutilsTemplateErrorDistutilsOptionErrorcddlm}ddlm}g}|D])}|d|zd||df*|||ddS)zoPrint all possible values for the 'formats' option (used by the "--help-formats" command-line option). r) FancyGetopt)ARCHIVE_FORMATSformats=Nz.List of available source distribution formats:)distutils.fancy_getoptrdistutils.archive_utilrkeysappendsort print_help)rrformatsformats >/opt/alt/python311/lib64/python3.11/distutils/command/sdist.py show_formatsrs322222666666G!&&((55 V+T'/24 5 5 5 5 LLNNNK##8:::::ceZdZdZdZgdZgdZdddefgZdd d Z d efgZ d Z d Z dZ dZdZdZdZedZdZdZdZdZdZdZdZdZdZdZdZdZd Z d!Z!d"Z"dS)#sdistz6create a source distribution (tarball, zip file, etc.)c|jS)zYCallable used for the check sub-command. Placed here so user_options can view it)metadata_checkselfs rchecking_metadatazsdist.checking_metadata(s ""r))z template=tz5name of manifest template file [default: MANIFEST.in])z manifest=mz)name of manifest file [default: MANIFEST]) use-defaultsNzRinclude the default file set in the manifest [default; disable with --no-defaults]) no-defaultsNz"don't include the default file set)pruneNzspecifically exclude files/directories that should not be distributed (build tree, RCS/CVS dirs, etc.) [default; disable with --no-prune])no-pruneNz$don't automatically exclude anything) manifest-onlyozEjust regenerate the manifest and then stop (implies --force-manifest))force-manifestfzkforcibly regenerate the manifest and carry on as usual. Deprecated: now the manifest is always regenerated.)rNz6formats for source distribution (comma-separated list)) keep-tempkz@keep the distribution tree around after creating archive file(s))z dist-dir=dzFdirectory to put the source distribution archive(s) in [default: dist])metadata-checkNz[Ensure that all required elements of meta-data are supplied. Warn if any missing. [default])zowner=uz@Owner name used when creating a tar file [default: current user])zgroup=gzAGroup name used when creating a tar file [default: current group])r(r*r,r.r0r3z help-formatsNz#list available distribution formatsr(r*)r)r+check)READMEz README.txtz README.rstcd|_d|_d|_d|_d|_d|_dg|_d|_d|_d|_ d|_ d|_ d|_ dS)Nrgztar) templatemanifest use_defaultsr* manifest_onlyforce_manifestr keep_tempdist_dir archive_filesr"ownergroupr#s rinitialize_optionszsdist.initialize_optionsesl   y  !  rc|jd|_|jd|_|dtj|j}|rt d|z|j d|_dSdS)NMANIFESTz MANIFEST.inrzunknown archive format '%s'dist)r<r;ensure_string_listrcheck_archive_formatsrrrA)r$ bad_formats rfinalize_optionszsdist.finalize_options|s = &DM = )DM  ***!7 EE  >&/*<>> > = "DMMM ! rct|_|D]}||||jrdS|dSN)r filelistget_sub_commands run_command get_file_listr>make_distribution)r$cmd_names rrunz sdist.runs!  --// ' 'H   X & & & &     F      rctdt|jd}||dS)zDeprecated API.zadistutils.command.sdist.check_metadata is deprecated, use the check command insteadr6N)rPendingDeprecationWarning distributionget_command_objensure_finalizedrU)r$r6s rcheck_metadatazsdist.check_metadatasX -.G I I I!11'::     rctj|j}|s\|rH||j|jdS|s| d|jz|j |j r| |r| |jr||j|j|dS)aCFigure out the list of files to include in the source distribution, and put it in 'self.filelist'. This might involve reading the manifest template (and writing the manifest), or just reading the manifest, or just using the default file set -- it all depends on the user's options. Nz?manifest template '%s' does not exist (using default file list))ospathisfiler;_manifest_is_not_generated read_manifestrOrremove_duplicatesrfindallr= add_defaults read_templater*prune_file_listwrite_manifest)r$template_existss rrRzsdist.get_file_listsI'..77 4#B#B#D#D     M   M + + - - - F ' II4 & ' ' '           !    : #  " " "  ''))) rc|||||||dS)a9Add all the default files to self.filelist: - README or README.txt - setup.py - test/test*.py - all pure Python modules mentioned in setup script - all files pointed by package_data (build_py) - all files defined in data_files. - all files defined as scripts. - all C sources listed as part of extensions or C libraries in the setup script (doesn't catch C headers!) Warns if (README or README.txt) or setup.py are missing; everything else is optional. N)_add_defaults_standards_add_defaults_optional_add_defaults_python_add_defaults_data_files_add_defaults_ext_add_defaults_c_libs_add_defaults_scriptsr#s rrdzsdist.add_defaultss $$&&& ##%%% !!### %%'''     !!### ""$$$$$rctj|sdStj|}tj|\}}|tj|vS)z Case-sensitive path existence check >>> sdist._cs_path_exists(__file__) True >>> sdist._cs_path_exists(__file__.upper()) False F)r]r^existsabspathsplitlistdir)fspathrs directoryfilenames r_cs_path_existszsdist._cs_path_existss_w~~f%% 5'//&)) gmmG44 82:i0000rc|j|jjg}|D]}t|trj|}d}|D]5}||rd}|j|n6|s+|dd |z||r|j||d|zdS)NFTz,standard file not found: should have one of z, zstandard file '%s' not found) READMESrX script_name isinstancetupleryrOrrjoin)r$ standardsfnaltsgot_its rrjzsdist._add_defaults_standardss\4#4#@A  C CB"e$$ CB++B//!% ,,R000 /IIL"iioo.///''++CM((,,,,II4==99E M  ' ' ' ' ( (rcR|d}|jr,|j||jD]D\}}}}|D]:}|jtj ||;EdS)Nbuild_py) get_finalized_commandrXhas_pure_modulesrOrget_source_files data_filesrr]r^r)r$rpkgsrc_dir build_dir filenamesrxs rrlzsdist._add_defaults_pythons--j99   - - / / > M !:!:!>!,,4 M003334 4 4 4 4rc|jrC|d}|j|dSdS)N build_ext)rXhas_ext_modulesrrOrr)r$rs rrnzsdist._add_defaults_ext5s^   , , . . ?22;??I M !;!;!=!= > > > > > ? ?rc|jrC|d}|j|dSdS)N build_clib)rXhas_c_librariesrrOrr)r$rs rrozsdist._add_defaults_c_libs:sa   , , . . @33LAAJ M !!> ? ? ? ? ? @ @rc|jrC|d}|j|dSdS)N build_scripts)rX has_scriptsrrOrr)r$rs rrpzsdist._add_defaults_scripts?sa   ( ( * * C 66GGM M !?!?!A!A B B B B B C Crc tjd|jt|jdddddd} |}|n` |j|nC#ttf$r/}| d|j |j |fzYd}~nd}~wwxYww | dS#| wxYw)zRead and parse manifest template file named by self.template. (usually "MANIFEST.in") The parsing and processing is done by 'self.filelist', which updates itself accordingly. zreading manifest template '%s'r9)strip_comments skip_blanks join_lines lstrip_ws rstrip_ws collapse_joinTNz%s, line %d: %s) r infor;r readlinerOprocess_template_liner ValueErrorrrx current_lineclose)r$r;linemsgs rrezsdist.read_templateDs( 14=AAADM!'(A*+---  9((**<9M77====/ ;999II/83D3;3H36388999999999 9 NN     HNN    s5CA+*C+B+<%B&!C&B++CCc|d}|j}|jd|j|jd|t jdkrd}nd}gd}d|d d |d |d }|j|d dS)avPrune off branches that might slip into the file list as created by 'read_template()', but really don't belong there: * the build tree (typically "build") * the release tree itself (only an issue if we ran "sdist" previously with --keep-temp, or it aborted) * any RCS, CVS, .svn, .hg, .git, .bzr, _darcs directories buildN)prefixwin32z/|\\/)RCSCVSz\.svnz\.hgz\.gitz\.bzr_darcsz(^|z)(|z).*r9)is_regex) rrX get_fullnamerOexclude_pattern build_basesysplatformr)r$rbase_dirsepsvcs_dirsvcs_ptrns rrfzsdist.prune_file_listas**733$1133 %%d53C%DDD %%d8%<<< <7 " "DDD*.$$0B0B0B0BDDDI %%h%;;;;;rc|rtjd|jzdS|jjdd}|dd|tj |j|fd|jzdS)zWrite the file list in 'self.filelist' (presumably as filled in by 'add_defaults()' and 'read_template()') to the manifest file named by 'self.manifest'. z5not writing to manually maintained manifest file '%s'Nrz*# file GENERATED by distutils, do NOT editzwriting manifest file '%s') r`r rr<rOrinsertexecuter write_file)r$contents rrgzsdist.write_manifestys  * * , ,  H*,0M: ; ; ; F-%aaa(qFGGG Y)DM7+C1DMA C C C C Crctj|jsdSt |j} |}|n#|wxYw|dkS)NFz+# file GENERATED by distutils, do NOT edit )r]r^r_r<openrr)r$fp first_lines rr`z sdist._manifest_is_not_generatedsmw~~dm,, 5 $-  J HHJJJJBHHJJJJKKKs A%%A;c,tjd|jt|j5}|D]H}|}|ds|s.|j|I ddddS#1swxYwYdS)zRead the manifest file (named by 'self.manifest') and use it to fill in 'self.filelist', the list of files to include in the source distribution. zreading manifest file '%s'#N)r rr<rstrip startswithrOr)r$r<rs rrazsdist.read_manifests -t}=== $-  +H  + +zz||??3''t $$T****  + + + + + + + + + + + + + + + + + + +sA B  B B c(||tj|||jt t drd}d|z}nd}d|z}|st jdnt j||D]o}t j |st jd|7t j ||}| ||| p|j j|dS) aCreate the directory tree that will become the source distribution archive. All directories implied by the filenames in 'files' are created under 'base_dir', and then we hard link or copy (if hard linking is unavailable) those files into place. Essentially, this duplicates the developer's source tree, but in a directory named after the distribution, containing only the files to be distributed. dry_runlinkhardzmaking hard links in %s...Nzcopying files to %s...z)no files to distribute -- empty manifest?z#'%s' not a regular file -- skipping)r)mkpathr create_treerhasattrr]r rrr^r_r copy_filerXmetadatawrite_pkg_info)r$rrrrfiledests rmake_release_treezsdist.make_release_trees HXudlCCCC 2v   6D.9CCD*X5C  H@ A A A A HSMMM 6 6D7>>$'' 6>EEEEw||Hd33tT5555 "11(;;;;;rc|j}tj|j|}|||jjg}d|j vrJ|j |j |j d|j D]]}| ||||j|j}| ||jj dd|f^||_|jst'j||jdSdS)aCreate the source distribution(s). First, we create the release tree with 'make_release_tree()'; then, we create all required archive files (according to 'self.formats') from the release tree. Finally, we clean up by blowing away the release tree (unless 'self.keep_temp' is true). The list of archive files created is stored so it can be retrieved later by 'get_archive_files()'. tar)rrCrDr rN)rXrr]r^rrArrOrrrpopindex make_archiverCrD dist_filesrBr@r remove_treer)r$r base_namerBfmtrs rrSzsdist.make_distributionsE$1133GLL99  x)<=== DL L   0 01C1CE1J1J K K L L L< E EC$$Yh+/:TZ%IID   & & &   ( / /"d0C D D D D*~ A  4< @ @ @ @ @ @ A Arc|jS)zzReturn the list of archive files created when the command was run, or None if the command hasn't run yet. )rBr#s rget_archive_fileszsdist.get_archive_filess !!r)#__name__ __module__ __qualname__ descriptionr% user_optionsboolean_optionsr help_options negative_opt sub_commandsr{rErLrUr[rRrd staticmethodryrjrkrlrmrnrorprerfrgr`rarrSrrrr r $sJK### % % % LN666O  .  > L $2 '**L/01L4G.### !!!,&&&P%%%,11\1 CCC*((( FFF 444"??? @@@ CCC :<<<0 C C C L L L + + +(<(<(rs>LL """"""""""""((((((''''''''''''IIIIIIII : : :J"J"J"J"J"GJ"J"J"J"J"rPK!/e/command/__pycache__/build.cpython-311.opt-1.pycnu[ 0i`dZddlZddlZddlmZddlmZddlmZdZ GddeZ dS) zBdistutils.command.build Implements the Distutils 'build' command.N)Command)DistutilsOptionError) get_platformc&ddlm}|dS)Nrshow_compilers)distutils.ccompilerrrs >/opt/alt/python311/lib64/python3.11/distutils/command/build.pyrr s(222222Nc eZdZdZdddddddd d ezfd d d ddg ZddgZdddefgZdZ dZ dZ dZ dZ dZdZde fde fdefdefgZdS) buildz"build everything needed to install)z build-base=bz base directory for build library)zbuild-purelib=Nz2build directory for platform-neutral distributions)zbuild-platlib=Nz3build directory for platform-specific distributions)z build-lib=NzWbuild directory for all distribution (defaults to either build-purelib or build-platlib)zbuild-scripts=Nzbuild directory for scripts)z build-temp=tztemporary build directoryz plat-name=pz6platform name to build for, if supported (default: %s))z compiler=czspecify the compiler type)z parallel=jznumber of parallel build jobs)debuggz;compile extensions and libraries with debugging information)forcefz2forcibly build everything (ignore file timestamps))z executable=ez5specify final destination interpreter path (build.py)rrz help-compilerNzlist available compilerscd|_d|_d|_d|_d|_d|_d|_d|_d|_d|_ d|_ d|_ dS)Nr r) build_base build_purelib build_platlib build_lib build_temp build_scriptscompiler plat_namerr executableparallelselfs r initialize_optionszbuild.initialize_options8s_!"!!    r c,|jt|_ntjdkrt dd|jgt jddRz}tt dr|dz }|j*tj |j d|_|j -tj |j d|z|_ |j %|jjr |j |_ n |j|_ |j-tj |j d|z|_|j?tj |j d t jddz|_|j:t jr.tj t j|_t)|jt,r9 t/|j|_dS#t0$rt d wxYwdS) NntzW--plat-name only supported on Windows (try using './configure --help' on your platform)z .%s-%d.%dgettotalrefcountz-pydebuglibtempz scripts-%d.%dzparallel should be an integer)r rosnamersys version_infohasattrrpathjoinrrr distribution ext_modulesrrr!normpath isinstancer"strint ValueError)r$plat_specifiers r finalize_optionszbuild.finalize_optionsHs > !)^^DNN w$*KLLL%'N9I"1"9M'N'NN 3* + + ) j (N   %!#dou!E!ED    %!#do.3n.D"F"FD  > ! , 4!%!3!%!3 ? " gll4?+1N+BDDDO   %!#do.=@PQSRSQS@T.T"V"VD  ? "s~ " g..s~>>DO dmS ) ) L L #DM 2 2  L L L*+JKKK L L Ls G77Hc^|D]}||dSN)get_sub_commands run_command)r$cmd_names r runz build.runs@ --// ' 'H   X & & & & ' 'r c4|jSr=)r3has_pure_modulesr#s r rCzbuild.has_pure_moduless 11333r c4|jSr=)r3has_c_librariesr#s r rEzbuild.has_c_libraries 00222r c4|jSr=)r3has_ext_modulesr#s r rHzbuild.has_ext_modulesrFr c4|jSr=)r3 has_scriptsr#s r rJzbuild.has_scriptss ,,...r build_py build_clib build_extr)__name__ __module__ __qualname__ descriptionr user_optionsboolean_optionsr help_optionsr%r;rArCrErHrJ sub_commandsr r r r s,6K - ? @ + ( & s '<>> * + & * H ? B3 L:(O $ #^ 5 L  6L6L6Lp'''444333333/// &67!o6 o6$k2LLLr r ) __doc__r.r,distutils.corerdistutils.errorsrdistutils.utilrrr rVr r r[s--""""""111111'''''' MMMMMGMMMMMr PK!c2command/__pycache__/__init__.cpython-311.opt-1.pycnu[ 0idZgdZdS)z\distutils.command Package containing implementation of all the standard Distutils commands.)buildbuild_py build_ext build_clib build_scriptscleaninstall install_libinstall_headersinstall_scripts install_datasdistregisterbdist bdist_dumb bdist_rpmcheckuploadN)__doc____all__A/opt/alt/python311/lib64/python3.11/distutils/command/__init__.pyrs$     rPK!?x!!/command/__pycache__/install_lib.cpython-311.pycnu[ 0i ZdZddlZddlZddlZddlmZddlmZdZ GddeZ dS)zkdistutils.command.install_lib Implements the Distutils 'install_lib' command (install all Python modules).N)Command)DistutilsOptionErrorz.pycfeZdZdZgdZgdZddiZdZdZdZ d Z d Z d Z d Z d ZdZdZdS) install_libz7install all Python modules (extensions and pure Python)))z install-dir=dzdirectory to install to)z build-dir=bz'build directory (where to install from))forcefz-force installation (overwrite existing files))compileczcompile .py to .pyc [default]) no-compileNzdon't compile .py files)z optimize=Ozlalso compile with optimization: -O1 for "python -O", -O2 for "python -OO", and -O0 to disable [default: -O0]) skip-buildNzskip the build steps)r r rr r cZd|_d|_d|_d|_d|_d|_dS)Nr) install_dir build_dirr r optimize skip_buildselfs D/opt/alt/python311/lib64/python3.11/distutils/command/install_lib.pyinitialize_optionszinstall_lib.initialize_options3s1   c H|ddddddd|jd|_|jd |_t|jtsP t |j|_|jd vrt dS#t t f$rtd wxYwdS) Ninstall) build_libr)rr)r r )r r )rr)rrTF)rzoptimize must be 0, 1, or 2)set_undefined_optionsr r isinstanceintAssertionError ValueErrorrrs rfinalize_optionszinstall_lib.finalize_options<s ""9#=#A#5#9#;#?  $ $ $ < DL = !DM$--- J J #DM 2 2 = 11((21/ J J J*+HIII J  J Js )A>>!Bc||}|0|jr||dSdSdSN)buildr distributionhas_pure_modules byte_compileroutfiless rrunzinstall_lib.runVsb <<>>  D$5$F$F$H$H    h ' ' ' ' '   rc|js^|jr|d|jr|ddSdSdS)Nbuild_py build_ext)rr(r) run_commandhas_ext_modulesrs rr'zinstall_lib.buildfs| . 1133 -  ,,, 0022 .  -----  . . . .rctj|jr!||j|j}n|d|jzdS|S)Nz3'%s' does not exist -- no Python modules to install)ospathisdirr copy_treerwarnr+s rrzinstall_lib.installmsa 7== ( ( ~~dnd6FGGHH IIKn% & & & Frc2tjr|ddSddlm}|dj}|jr||d|j||j |j dkr'|||j |j||j |j dSdS)Nz%byte-compiling is disabled, skipping.r)r*r)rr prefixdry_run)rr r:verboser;) sysdont_write_bytecoder8distutils.utilr*get_finalized_commandrootr r r;rr<)rfilesr* install_roots rr*zinstall_lib.byte_compilevs  "  II= > > > F////// 11)<<A < / L#z,!% / / / / =1   L#z,!%t| E E E E E E  rc V|sgS||}|}t||}t|ttjz}g}|D]=} |tj|| |d>|Sr&) r@ get_outputsgetattrlenr4sepappendr5join) rhas_any build_cmd cmd_option output_dir build_filesr prefix_lenoutputsfiles r_mutate_outputszinstall_lib._mutate_outputss I..y99 ++-- Iz22 ^^c"&kk1  H HD NN27<< D4EFF G G G Grcg}|D]}tjtj|d}|tkrP|jr4|tj |d|j dkr9|tj ||j |S)Nr) optimizationr) r4r5splitextnormcasePYTHON_SOURCE_EXTENSIONr rI importlibutilcache_from_sourcer)r py_filenamesbytecode_filespy_fileexts r_bytecode_filenameszinstall_lib._bytecode_filenamess# : :G'""27#3#3G#<#<==a@C---| /%%in&F&F"'G'.'.///}q  %%in&F&F$-'G'9'9:::rc ||jdd|j}|jr||}ng}||jdd|j}||z|zS)zReturn the list of files that would be installed if this command were actually run. Not affected by the "dry-run" flag or whether modules have actually been built yet. r/rr0)rSr(r)rr rar2)r pure_outputsbytecode_outputs ext_outputss rrEzinstall_lib.get_outputss  !2!C!C!E!E!+[!%!1 3 3  < "#77 EE  !   !2!B!B!D!D!,k!%!1 3 3  ..<rvs!!   """"""111111 HHHHH'HHHHHrPK!Ns/command/__pycache__/check.cpython-311.opt-1.pycnu[ 0idZddlmZddlmZ ddlmZddlmZddl m Z ddl m Z Gdd eZ d Z n #e$rd Z YnwxYwGd d eZdS)zCdistutils.command.check Implements the Distutils 'check' command. )Command)DistutilsSetupError)Reporter)Parser)frontend)nodesc eZdZ ddZdZdS)SilentReporterNrasciireplacec Jg|_tj||||||||dSN)messagesr__init__)selfsource report_level halt_levelstreamdebugencoding error_handlers >/opt/alt/python311/lib64/python3.11/distutils/command/check.pyrzSilentReporter.__init__s9DM  dFL*f#X} > > > > >c|j||||ftj|g|R||j|d|S)N)leveltype)rappendrsystem_messagelevels)rrmessagechildrenkwargss rrzSilentReporter.system_messagesc M %(F!C D D D'=)1==u-1[-?==5;== =r)Nrr r )__name__ __module__ __qualname__rrrrr r s=DH>G > > > >  = = = = =rr TFcPeZdZdZdZgdZgdZdZdZdZ dZ d Z d Z d Z d S) checkz6This command checks the meta-data of the package. z"perform some checks on the package))metadatamzVerify meta-data)restructuredtextrzEChecks if long string meta-data syntax are reStructuredText-compliant)strictsz(Will exit with an error if a check fails)r*r,r.c>d|_d|_d|_d|_dS)z Sets default values for options.rN)r,r*r. _warningsrs rinitialize_optionszcheck.initialize_options0s# !  rcdSrr'r3s rfinalize_optionszcheck.finalize_options7s rcL|xjdz c_tj||S)z*Counts the number of warnings that occurs.r1)r2rwarn)rmsgs rr8z check.warn:s$ !|D#&&&rc|jr||jr2tr|n|jrt d|jr|jdkrt ddSdS)zRuns the command.zThe docutils package is needed.rzPlease correct your package.N)r*check_metadatar, HAS_DOCUTILScheck_restructuredtextr.rr2r3s rrunz check.run?s = "    ! ! !   M M++---- M)*KLLL ; F4>A--%&DEE E F F--rc|jj}g}dD]7}t||rt||s||8|r+|dd|z|jr |js|ddSdS|j r |j s|ddSdS|ddS)a Ensures that all required elements of meta-data are supplied. Required fields: name, version, URL Recommended fields: (author and author_email) or (maintainer and maintainer_email) Warns if any are missing. )nameversionurlzmissing required meta-data: %sz, zNmissing meta-data: if 'author' supplied, 'author_email' should be supplied toozVmissing meta-data: if 'maintainer' supplied, 'maintainer_email' should be supplied toozkmissing meta-data: either (author and author_email) or (maintainer and maintainer_email) should be suppliedN) distributionr*hasattrgetattrrr8joinauthor author_email maintainermaintainer_email)rr*missingattrs rr;zcheck.check_metadataOsJ$-. % %DHd++ %$0G0G %t$$$  N II6$))G:L:LL M M M ? ,( C BCCCCC C C  ,, G FGGGGG G G II+ , , , , ,rc|j}||D]K}|dd}| |d}n|dd|d}||LdS)z4Checks if the long string fields are reST-compliant.lineNr1z (line ))rCget_long_description_check_rst_datagetr8)rdatawarningrOs rr=zcheck.check_restructuredtextps 5577++D11  G2;??6**D|!!*,3AJJJ= IIg       rc |jjpd}t} tj}|t}n=#t $r0tjtf}YnwxYwd|_d|_ d|_ t||j |j |j|j|j|j}t%j|||}||d |||n8#t $r+}|jdd|zd ifYd}~nd}~wwxYw|jS) z8Returns warnings when the provided data doesn't compile.zsetup.py) componentsN)rrrr)rrNz!Could not finish the parsing: %s.)rC script_namerrget_default_settingsAttributeError OptionParserget_default_values tab_widthpep_referencesrfc_referencesr rrwarning_streamrerror_encodingerror_encoding_error_handlerrdocument note_sourceparserr) rrT source_pathparserr[settingsreporterrees rrRzcheck._check_rst_data{s'3Az  4#+#@ ,+F33HH  X X X, BBBUUWWHHH X "&"&!+"/"-!)!8 (#+#:(0(M OOO>(H[III["--- G LLx ( ( ( ( G G G   $ $81r;r=rRr'rrr)r)#s7KBBBLA@@O   ''' FFF ,,,B   !!!!!rr)N)rmdistutils.corerdistutils.errorsrdocutils.utilsrdocutils.parsers.rstrdocutilsrrr r< Exceptionr)r'rrrws#"""""000000''''''++++++!!!!!! = = = = = = = =LLLLL w!w!w!w!w!Gw!w!w!w!w!s(9AAPK!w2[[1command/__pycache__/install.cpython-311.opt-2.pycnu[ 0iRn ddlZddlZddlZddlZddlmZddlmZddlm Z ddl m Z ddl m Z ddlmZddlmZmZmZdd lmZdd l mZdd lmZdd lmZeduZd ZiiidZeD]6ZdD]1\ZZeZej eZ!edkree!vrdZe!eeee<27eD]Z"ee"#D]\ZZ$ej%dde$Z$e$&ddZ$e$&ddZ$edkre$dz Z$ej'dkredkre$&ddZ$e$ee"e<erddddd d ed!<ddd"d#d d ed$<Gd%d&eZ(dS)'N)log)Command)DEBUG)get_config_vars)DistutilsPlatformError) write_file) convert_path subst_vars change_root) get_platform)DistutilsOptionError) USER_BASE) USER_SITE)purelibplatlibheadersscriptsdata) unix_prefix unix_homent))r posix_prefix)r posix_home)rrrincludez \{(.+?)\}z$\g<1>z$installed_basez$basez$py_version_nodot_platz$py_version_nodotz /$dist_name) rz/lib/z /$platlibdir/z $usersitez4$userbase/Python$py_version_nodot/Include/$dist_namez)$userbase/Python$py_version_nodot/Scriptsz $userbasent_userz=$userbase/include/python$py_version_short$abiflags/$dist_namez $userbase/bin unix_userc0eZdZdZgdZgdZer0edddezfedddiZ d Z d Z d Z d Z d ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdefdefd efd!efd"d#fgZdS)$installz'install everything from build directory))zprefix=Nzinstallation prefix)z exec-prefix=Nz.(Unix only) prefix for platform-specific files)zhome=Nz+(Unix only) home directory to install under)z install-base=Nz;base installation directory (instead of --prefix or --home))zinstall-platbase=Nz\base installation directory for platform-specific files (instead of --exec-prefix or --home))zroot=Nz-K-K-M-M*407#:J2A2:N0N069I"1"9M0M*0&,/:+6(0*-.    A+/+@D Z (+/+@D Z (  $T * * L)2)A()K)KD X &  /000$(#4 '+'<$  % % % % % % % . ! ! ! F4# $ $ $  +,,, 9 $  ! ! # # #   # , 8#'#7  #'#7 5)Y$fi 9 9 9  7   z: 6 6 6    #/7<<(8$/JJ 9   i 9' < < < ./// ""7#?#= ? ? ? ? ?s E,, E;:E;c tsdSddlm}tj|dz|jD]}|d}|ddkr |dd}||jvr4|j|}||}t|| }n%||}t||}tjd||dS)Nr) longopt_xlate:=z %s: %s) rdistutils.fancy_getoptrrdebug user_options negative_opt translategetattr)rCmsgroptopt_namevals rDrazinstall.dump_dirss-  F888888 #)$ 1 1C1vH|s""#AbD>4,,,,X6#--m<<!$111#--m<<dH-- Ij(C 0 0 0 0 1 1rFc |j|j;|j|j|j|j|j|jtddS|j r@|j td|j x|_|_| ddS|j *|j x|_|_| ddS|js|jtdt jt&j|_t jt&j|_n|j |j|_|j|_|j|_| ddS)NzPinstall-base or install-platbase supplied, but installation scheme is incomplete$User base directory is not specifiedrrz*must not supply exec-prefix without prefixr)r.r/r4r1r2r3r5r6r r(r8r select_schemer-r+r,r^rynormpathrdrBs rDrbzinstall.finalize_unixs4   (D,A,M!)%-%-$,$,!)*:;;; F 9 .$,,:<<<8<8M MD  5   { + + + + + Y "8< AD  5   { + + + + +{"#/.FHHH!g..sz:: #%7#3#3CO#D#D  #+'+{D$ $ D $($4D !   } - - - - -rFc6 |jrM|jtd|jx|_|_|t jdzdS|j*|jx|_|_|ddS|j .t j tj |_ |j x|_|_ |t jdS#t$rtdt jzwxYw)Nr_userrz)I don't know how to install stuff on '%s')r(r8rr.r/rr^r_r-r+ryrrdKeyErrorrBs rDrczinstall.finalize_others)7 9 M$,,:<<<8<8M MD  5   rw0 1 1 1 1 1 Y "8< AD  5   { + + + + +{" g..sz:: 8< CD  5 M""27+++++ M M M,ABGKMMM Ms C11'Dc t|}tD].}d|z}t||t||||/dSNinstall_)INSTALL_SCHEMES SCHEME_KEYSrsetattr)rCr_schemekeyattrnames rDrzinstall.select_schemesYK & 5 5C!C'HtX&&.hs 444 5 5rFc|D]y}t||}|etjdkstjdkrtj|}t ||j}t|||zdS)NrHr)rr^r_ry expanduserr rmr)rCattrsattrrs rD _expand_attrszinstall._expand_attrss ) )D$%%C7g%%D',,S11C d&677dC(((  ) )rFc6 |gddS)N)r.r/r0rrBs rDrqzinstall.expand_basedirss(  GGGHHHHHrFc6 |gddS)N)r1r2r4r3r5r6rrBs rDrszinstall.expand_dirss>9 @@@ A A A A ArFc t |D]3}d|z}t||tt||4dSr)rr rrCnamesr_rs rDrvzinstall.convert_pathssS/ C CD$D D$ WT4-@-@ A A B B B B C CrFc |j|jj|_|jtjdt |jt r|jd|_t|jdkr|jdx}}n2t|jdkr |j\}}ntdt|}nd}d}||_ ||_ dS)NzIDistribution option extra_path is deprecated. See issue27919 for details.,r*rrJzY'extra_path' option must be a list, tuple, or comma-separated string with 1 or 2 elementsrI) r;rhrr` isinstancestrrflenr r path_filer{)rCrr{s rDrwzinstall.handle_extra_pathsB ? ""/:DO ? & H.   $/3// ="&/"7"7"<"<4?##q(()-);; JJT_%%**(,% ::*DEEE &j11JJIJ#$rFc  |D]9}d|z}t||t|jt||:dSr)rr r0rrs rDr|zinstall.change_roots"sWH M MD$D D$ DIwtT7J7J K K L L L L M MrFcr |jsdSttjd}|jD]f\}}||rLtj|s-| d|ztj |dgdS)N~zos.makedirs('%s', 0o700)i) r(r r^ryrrmitems startswithisdir debug_printmakedirs)rCr-r_rys rDrtzinstall.create_home_path(s)y  FBG..s3344*0022 ) )JD$t$$ )RW]]4-@-@ )  !;d!BCCC D%((( ) )rFc |js\|d|jdj}|jr!|t krtd|D]}|||j r| |j r| }|j rFt|j }tt|D]}|||d||<|t"|j |fd|j zt%t&jjt,j}t%t&jj|}t&jt&j|j}|jr.|j r|js$||vrt5jd|jdSdSdSdS)Nr]z"Can't install when cross-compilingz'writing list of installed files to '%s'zmodules installed to '%s', which is not in Python's module search path (sys.path) -- you'll have to change the search path yourself)r= run_commandrhget_command_obj plat_namer>r rget_sub_commandsrcreate_path_filerA get_outputsr0rrangeexecutermapr^ryrrdnormcaser4r<rr)rC build_platcmd_nameoutputsroot_lencountersys_pathr4s rDrunz install.run4s$ @   W % % %*::7CCMJ} @|~~!=!=,.?@@@--// ' 'H   X & & & & > $  ! ! # # # ; &&&((Gy Cty>>$S\\22CCG'.w'7 'BGG$$ LL+w/B% & & & rw'22rw'22g&&rw'7'78H'I'IJJ M ) )$($: ) x ' ' IH' ) ) ) ) ) ) ) ' ' ) )rFc tj|j|jdz}|jr)|t||jgfd|zdS| d|zdS)N.pthz creating %szpath file '%s' not created) r^ryrzrxrr<rrr{r`)rCfilenames rDrzinstall.create_path_file`s#7<< 4 $ 799  ! ? LL"T_$56&1 3 3 3 3 3 II2X= > > > > >rFc` g}|D]G}||}|D]}||vr||H|jrG|jr@|t j|j |jdz|S)Nr) rget_finalized_commandrappendrr<r^ryrzrx)rCrrcmdrs rDrzinstall.get_outputsns<--// - -H,,X66C OO-- - -7**NN8,,, - > Bd4 B NN27<<(<(,(?AA B B BrFc g}|D]>}||}||?|SN)rrextend get_inputs)rCinputsrrs rDrzinstall.get_inputss\8--// , ,H,,X66C MM#..** + + + + rFch |jp|jSr)rhhas_pure_moduleshas_ext_modulesrBs rDhas_libzinstall.has_libs5 !22444!1133 5rFc6 |jSr)rh has_headersrBs rDrzinstall.has_headers  ,,...rFc6 |jSr)rh has_scriptsrBs rDrzinstall.has_scriptsrrFc6 |jSr)rhhas_data_filesrBs rDhas_datazinstall.has_datas  //111rFr4r3r5r6install_egg_infocdS)NTrBs rDzinstall.sTrF) __name__ __module__ __qualname__ descriptionrboolean_optionsr7rrrrEr~rarbrcrrrqrsrvrwr|rtrrrrrrrr sub_commandsrrFrDr r Zs;K9 9 9 Lv988O'VT@9LN O O Ov&&& 9-LFFF^U?U?U?t111&&.&.&.PMMM,555)))III AAA CCC % % %DMMM )))*)*)*)X ? ? ?"555 /// /// 222#0& 4& 4#1')9)9: LLLrFr ))rdrnr^re distutilsrdistutils.corerdistutils.debugrdistutils.sysconfigrdistutils.errorsrdistutils.file_utilrdistutils.utilr r r r r siterrr7rrrdistutils_scheme_namesys_scheme_namesys_key_INSTALL_SCHEMES sys_schememain_keyrvaluesubreplacerlr rrFrDrs/  """"""!!!!!!//////333333******@@@@@@@@@@''''''111111$& C #%2R@@  J JC3 J J./@ )  : 5 5  G6@6I-.s33 J / /H%h/5577 / / U|Y66 /99 68KLL )   ] "E  v % %#*:*:MM'?;;E).!#&& / I> " " OI K" $ $ OK M M M M M gM M M M M rFPK!&uu9command/__pycache__/install_headers.cpython-311.opt-2.pycnu[ 0i0 ddlmZGddeZdS))Commandc>eZdZdZddgZdgZdZdZdZdZ d Z d S) install_headerszinstall C/C++ header files)z install-dir=dz$directory to install header files to)forcefz-force installation (overwrite existing files)rc0d|_d|_g|_dS)Nr) install_dirroutfilesselfs H/opt/alt/python311/lib64/python3.11/distutils/command/install_headers.pyinitialize_optionsz"install_headers.initialize_optionss  c4|ddddS)Ninstall)rr )rr)set_undefined_optionsr s rfinalize_optionsz install_headers.finalize_optionss, ""9#E#5 7 7 7 7 7rc|jj}|sdS||j|D]:}|||j\}}|j|;dSN) distributionheadersmkpathr copy_filer append)r rheaderout_s rrunzinstall_headers.run!s{#+  F D$%%% & &F~~fd.>??HS! M  % % % % & &rc|jjpgSr)rrr s r get_inputszinstall_headers.get_inputs+s (.B.rc|jSr)r r s r get_outputszinstall_headers.get_outputs.s }rN) __name__ __module__ __qualname__ description user_optionsboolean_optionsrrrr!r#rrrr s.K=FL iO 777 &&&///rrN)distutils.corerrr*rrr,sR* #"""""%%%%%g%%%%%rPK!^:I6command/__pycache__/install_data.cpython-311.opt-2.pycnu[ 0i H ddlZddlmZddlmZmZGddeZdS)N)Command) change_root convert_pathc>eZdZdZgdZdgZdZdZdZdZ dZ d S) install_datazinstall data files))z install-dir=dzIbase directory for installing data files (default: installation base dir))zroot=Nz>!T-=>>a $$S))))#1Q4((w}}S))6',,t'7==CCY6%di55C C   Q42::M((----!"!22+D11#'>>$#<#<a ,,S111125 2 2rc|jpgSN)rrs r get_inputszinstall_data.get_inputsKs$"$rc|jSr.)rrs r get_outputszinstall_data.get_outputsNs }rN) __name__ __module__ __qualname__ description user_optionsboolean_optionsrrr,r/r1rrrr s&K   LiO$$$222B%%%rr)r$distutils.corerdistutils.utilrrrr8rrr;s}$ """"""44444444CCCCC7CCCCCrPK! Xq{VEVE2command/__pycache__/build_py.cpython-311.opt-2.pycnu[ 0i&C ddlZddlZddlZddlZddlmZddlTddlm Z m Z ddl m Z GddeZ Gdd e e ZdS) N)Command)*) convert_path Mixin2to3)logceZdZdZgdZddgZddiZdZdZdZ d Z d Z d Z d Z d ZdZdZdZdZdZdZddZdZdZdZdZdS)build_pyz5"build" pure Python modules (copy to build directory)))z build-lib=dzdirectory to "build" (copy) to)compileczcompile .py to .pyc) no-compileNz!don't compile .py files [default])z optimize=Ozlalso compile with optimization: -O1 for "python -O", -O2 for "python -OO", and -O0 to disable [default: -O0])forcefz2forcibly build everything (ignore file timestamps)r rr cvd|_d|_d|_d|_d|_d|_d|_d|_dS)Nr) build_lib py_modulespackage package_data package_dirr optimizerselfs A/opt/alt/python311/lib64/python3.11/distutils/command/build_py.pyinitialize_optionszbuild_py.initialize_options s@     c|ddd|jj|_|jj|_|jj|_i|_|jjr;|jjD]\}}t||j|<||_ t|j ts@ t|j |_ dS#ttf$rtdwxYwdS)Nbuild)rr)rrzoptimize must be 0, 1, or 2)set_undefined_options distributionpackagesrrritemsrget_data_files data_files isinstancerint ValueErrorAssertionErrorDistutilsOptionError)rnamepaths rfinalize_optionszbuild_py.finalize_options*s# ""7#=#5 7 7 7 )2 +6 -:   ( <"/;AACC < < d)5d);); &&--//$--- J J #DM 2 2 / J J J*+HIII J  J Js C((!D c|jr||jr(||||ddSNr)include_bytecode)r build_modulesr!build_packagesbuild_package_data byte_compile get_outputsrs rrunz build_py.runCsy, ? !    = &    ! ! !  # # % % % $**A*>>?????rc^ g}|js|S|jD]}||}tjj|jg|dz}d|rt|dzfd|||D}| ||||f|S)N.rc$g|] }|d SN).0fileplens r z+build_py.get_data_files..ss. $TUU r) r!get_package_dirosr+joinrsplitlenfind_data_filesappend)rdatarsrc_dir build_dir filenamesr>s @rr#zbuild_py.get_data_filesasM} K} B BG**733G '7'--:L:L'LNID &7||A~(,(<(.s;(((2U??GNN2&&4C"???r) rgetglobrAr+rBescaperextend)rrrHglobspatternfilelistrPs @rrEzbuild_py.find_data_filesysD"&&r2..$(("556 ) )Gydk'.B.BLQXDYDY!Z!Z[[H LL((((x((( ) ) ) ) rcD d}|jD]\}}}}|D]}tj||}|tj||tj|||ddS)NF preserve_mode)r$rAr+rBmkpathdirname copy_file)rlastdirrrHrIrJfilenametargets rr2zbuild_py.build_package_datas26:o 4 4 2GWi% 4 4i:: BGOOF33444rw||GX>>-24444 4 4 4rc |d}|js|rtjj|SdSg}|r{ |jd|}|d|tjj|S#t $r"|d|d|d=YnwxYw|{|jd}||d||rtjj|SdS)Nr7rLr)rCrrAr+rBinsertKeyErrorrQ)rrr+tailpdirs rr@zbuild_py.get_package_dirs( H}}S!!  w|T**rD /+CHHTNN;D KK4(((7<..  !!!KK48,,,R! "'++B//#KK4(((7<..2s B)B/.B/c|dkrbtj|std|ztj|std|z|rVtj|d}tj|r|Stjd|dS)NrLz%package directory '%s' does not existz>supposed package directory '%s' exists, but is not a directoryz __init__.pyz8package init file '%s' not found (or not a regular file)) rAr+existsDistutilsFileErrorisdirrBrNrwarn)rrrinit_pys r check_packagezbuild_py.check_packages "  7>>+.. M(= KMMM7==-- ?(02=>???  ?gll; >>Gw~~g&& ?46=??? trcttj|stjd||dSdS)Nz!file %s (for module %s) not foundFT)rAr+rNrrk)rmodule module_files r check_modulezbuild_py.check_modules7w~~k**  H8+v N N N54rcJ|||tjtjtj|d}g}tj|jj}|D]}tj|}||kr[tj tj |d}| |||f| d|z|S)Nz*.pyrz excluding %s) rmrRrAr+rBrSabspathr script_namesplitextbasenamerF debug_print) rrr module_filesmodules setup_scriptrabs_fros rfind_package_moduleszbuild_py.find_package_moduless 7K000ydk+.F.F!O!OPP wt'8'DEE  @ @AGOOA&&E $$))"'*:*:1*=*=>>qA34444  ,!>????rc i}g}|jD]}|d}d|dd}|d} ||\}}n'#t$r||}d}YnwxYw|s7|||} |df||<| r||d| ftj||dz} | || s|||| f|S)Nr7rrbr8__init__.py) rrCrBrdr@rmrFrAr+rq) rr!ryror+r module_basercheckedrlrps r find_moduleszbuild_py.find_modulessS  o @ @F<<$$DhhtAbDz**Gr(K )1'):&gg   "227;;   C,,WkBB%0!$4!CNNGZ#ABBB ',,{K%4GHHK$$V[99  NNG[+> ? ? ? ?s A!A:9A:c  g}|jr'|||jrJ|jD]B}||}|||}||C|Sr:)rrTrr!r@r|)rryrrms rfind_all_moduleszbuild_py.find_all_moduless (  ? 0 NN4,,.. / / / = "= " ""227;; --g{CCq!!!!rc>d|DS)Ncg|] }|d S)rbr;)r<ros rr?z-build_py.get_source_files..-sAAAvr AAAr)rrs rget_source_fileszbuild_py.get_source_files,s"AA)>)>)@)@AAAArc\|gt|z|dzgz}tjj|S)Nr)listrAr+rB)rrIrro outfile_paths rget_module_outfilezbuild_py.get_module_outfile/s/!{T']]2fun5EE w|\**rr8c|}g}|D]\}}}|d}||j||}|||r|jr4|t j|d|j dkr9|t j||j |d|j Dz }|S)Nr7rL) optimizationrcbg|],\}}}}|D]"}tj||#-Sr;)rAr+rB)r<rrHrIrJr_s rr?z(build_py.get_outputs..BsW6)Y% GLLH - -r) rrCrrrFr importlibutilcache_from_sourcerr$)rr/ryoutputsrrorpr_s rr4zbuild_py.get_outputs3s''')).5 ? ? *WfkmmC((G..t~wOOH NN8 $ $ $ ?<4NN9>#C#C r$D$3$3444=1$$NN9>#C#C t}$D$>$>??? :>/  rc~t|tr|d}n+t|ttfst d||j||}tj |}| || ||dS)Nr7z:'package' must be a string (dot-separated), list, or tuplerrY) r%strrCrtuple TypeErrorrrrAr+r\r[r])rrorproutfiledirs r build_modulezbuild_py.build_moduleJs gs # # PmmC((GGGdE]33 PNPP P ))$.'6JJgoog&& C~~k7!~DDDrcn|}|D]\}}}||||dSr:)rr)rryrrorps rr0zbuild_py.build_modulesYsP##%%.5 < < *Wfk   fk7 ; ; ; ;  < > > F////// ":  bf_F < P L#z&$, P P P P =1   L#z&$, P P P P P P  rN)r8)__name__ __module__ __qualname__ description user_optionsboolean_options negative_optrr,r5r#rEr2r@rmrqr|rrrrr4rr0r1r3r;rrr r sxKK   L!'*O 9-LJJJ2@@@<0   444%%%N6   222h BBB+++. E E E<<<@@@(PPPPPrr ceZdZdZdZdS) build_py_2to3c.g|_|jr||jr(||||j||ddSr.) updated_filesrr0r!r1r2run_2to3r3r4rs rr5zbuild_py_2to3.runs ? !    = &    ! ! !  # # % % % d())) $**A*>>?????rct||||}|dr |j|d|S)Nr8r)r rrrF)rrorprress rrzbuild_py_2to3.build_modulesG##D&+wGG q6 .   % %c!f - - - rN)rrrr5rr;rrrrs5@@@ rr)rAimportlib.utilrrrRdistutils.corerdistutils.errorsrrr distutilsrr rr;rrrs0  """"""22222222yPyPyPyPyPyPyPyPv HirPK!'m-&)command/__pycache__/bdist.cpython-311.pycnu[ 0iTdZddlZddlmZddlTddlmZdZGddeZdS) zidistutils.command.bdist Implements the Distutils 'bdist' command (create a built [binary] distribution).N)Command)*) get_platformcddlm}g}tjD]3}|d|zdtj|df4||}|ddS)zFPrint list of available formats (arguments to "--format" option). r) FancyGetoptformats=Nz'List of available distribution formats:)distutils.fancy_getoptrbdistformat_commandsappendformat_command print_help)rformatsformatpretty_printers >/opt/alt/python311/lib64/python3.11/distutils/command/bdist.py show_formatsr s322222G':: V+T,V4Q79 : : : : [))NGHHHHHceZdZdZddddezfdddd d gZd gZd d defgZdZ dddZ gdZ ddddddddZ dZ dZdZd S)r z$create a built (binary) distribution)z bdist-base=bz4temporary directory for creating built distributionsz plat-name=pz;platform name to embed in generated filenames (default: %s))rNz/formats for distribution (comma-separated list))z dist-dir=dz=directory to put final built distributions in [default: dist]) skip-buildNz2skip rebuilding everything (for testing/debugging))zowner=uz@Owner name used when creating a tar file [default: current user])zgroup=gzAGroup name used when creating a tar file [default: current group]rz help-formatsNz$lists available distribution formats) bdist_rpmgztarzip)posixnt)rpmrbztarxztarztartarr)rzRPM distribution) bdist_dumbzgzip'ed tar file)r'zbzip2'ed tar file)r'zxz'ed tar file)r'zcompressed tar file)r'ztar file)r'zZIP filechd|_d|_d|_d|_d|_d|_d|_dS)Nr) bdist_base plat_namerdist_dir skip_buildgroupowner)selfs rinitialize_optionszbdist.initialize_optionsLs7    rc|j:|jrt|_n|dj|_|jG|dj}t j|d|jz|_| d|j I |j t j g|_ n*#t$rtdt j zwxYw|j d|_dSdS)Nbuildzbdist.rz;don't know how to create built distributions on platform %sdist)r*r,rget_finalized_commandr) build_baseospathjoinensure_string_listrdefault_formatnameKeyErrorDistutilsPlatformErrorr+)r/r5s rfinalize_optionszbdist.finalize_optionsUs > ! O!-!%!;!;G!D!D!N ? "33G<<GJ gll:+3dn+DFFDO  *** <  2 $ 3BG <=  2 2 2,')+1222 2 = "DMMM ! s -C 'C2cg}|jD]I} ||j|d*#t$rt d|zwxYwt t |jD]}||}||}||jvr|j||_ |dkr|j |_ |j |_ |||dzdvrd|_ | |dS)Nrzinvalid format '%s'r'r )rr rr<DistutilsOptionErrorrangelenreinitialize_commandno_format_optionrr.r- keep_temp run_command)r/commandsricmd_namesub_cmds rrunz bdist.runqs0l K KF K 3F ;A >???? K K K*+@6+IJJJ Ks4<(()) ' 'A{H//99Gt444!%a<'' $  $  8AaCDD>))$%!   X & & & & ' 's &4A)__name__ __module__ __qualname__ descriptionr user_optionsboolean_optionsr help_optionsrDr:r rr0r>rKrrr r s8KM!3%'3|~~67H(K12L($nO  / ? L & '!##NONNO BAB?D99 N###8'''''rr ) __doc__r6distutils.corerdistutils.errorsdistutils.utilrrr rSrrrXs  """"""'''''' I I Ir'r'r'r'r'Gr'r'r'r'r'rPK!Q1command/__pycache__/build_scripts.cpython-311.pycnu[ 0iXdZddlZddlZddlmZddlmZddlmZddl m Z ddl m Z m Z ddlmZddlZejd ZGd d eZGd d ee ZdS)zRdistutils.command.build_scripts Implements the Distutils 'build_scripts' command.N)ST_MODE) sysconfig)Command)newer) convert_path Mixin2to3)logs^#!.*python[0-9.]*([ ].*)?$c>eZdZdZgdZdgZdZdZdZdZ dZ d S) build_scriptsz("build" scripts (copy and fixup #! line)))z build-dir=dzdirectory to "build" (copy) to)forcefz1forcibly build everything (ignore file timestamps)z executable=ez*specify final destination interpreter pathr cLd|_d|_d|_d|_d|_dSN) build_dirscriptsr executableoutfilesselfs F/opt/alt/python311/lib64/python3.11/distutils/command/build_scripts.pyinitialize_optionsz build_scripts.initialize_optionss)   cX|dddd|jj|_dS)Nbuild)r r)r r )rr)set_undefined_options distributionrrs rfinalize_optionszbuild_scripts.finalize_options%s; ""7#A#5#? A A A(0 rc|jSr)rrs rget_source_fileszbuild_scripts.get_source_files,s |rc@|jsdS|dSr)r copy_scriptsrs rrunzbuild_scripts.run/s)|  F rc R||jg}g}|jD]o}d}t|}tj|jtj|}|||j s&t||stj d| t|d}tj|j\}}|d|} | s|d|z t&| } | rd}| dpd} n#t,$r |jsd }YnwxYw|rtjd ||j|||jst2js|j} n[tjt3jd d t3jd t3jd} t j| } d| z| zdz} | dn0#t>$r#tAd!| wxYw | |n1#t>$r$tAd!| |wxYwt|d5}|"| |#|$d d d n #1swxYwY|r|%.|r|%|||&||qtj'dkr~|D]{}|jrtjd|t j(|tRdz}|dzdz}||kr,tjd|||t j*|||||fS)a"Copy each script listed in 'self.scripts'; if it's marked as a Python script in the Unix way (first line matches 'first_line_re', ie. starts with "\#!" and contains "python"), then adjust the first line to refer to the current Python interpreter as we copy. Fznot copying %s (up-to-date)rbrz%s is an empty file (skipping)TrNzcopying and adjusting %s -> %sBINDIRpythonVERSIONEXEs#! zutf-8z.The shebang ({!r}) is not decodable from utf-8zAThe shebang ({!r}) is not decodable from the script encoding ({})wbposixzchanging mode of %siimz!changing mode of %s from %o to %o)+mkpathrrrospathjoinbasenameappendr rr debugopentokenizedetect_encodingreadlineseekwarn first_line_rematchgroupOSErrordry_runinfor python_buildrget_config_varfsencodedecodeUnicodeDecodeError ValueErrorformatwrite writelines readlinesclose copy_filenamestatrchmod)rr updated_filesscriptadjustoutfilerencodinglines first_liner= post_interprshebangoutffileoldmodenewmodes rr#zbuild_scripts.copy_scripts5s DN### lL 0L 0FF!&))Fgll4>273C3CF3K3KLLG OOG $ $ $: eFG&<&<  7@@@  8&& #+":1:"F"F%q ZZ\\ !II>GHHH%++J778!F"'++a.."7CK   | ", 096)))$$W---|!7$1M%)_ %'W\\%4X>>>+4+CI+N+N+N+4+CE+J+J+JL&M&M "$Z!8!8J#j0;>FG :w////-:::())/::::8x0000-888(<#VGX668888 gt,,7 7+++ 666777777777777777GGIIIGGIII$$W---vw//// 7g   0 0<0H2D9999 gdmmG4v=G&&8G'))!D!%w999w///&&s<?E&&E=<E= I  -J J''.K(=L11L5 8L5 N) __name__ __module__ __qualname__ description user_optionsboolean_optionsrrr!r$r#rrr r s>K   L iO111 c'c'c'c'c'rr ceZdZdZdS)build_scripts_2to3c|t|\}}|js||||fSr)r r#r@run_2to3)rrrQs rr#zbuild_scripts_2to3.copy_scriptssA"/"<"rps55 """"""$$$$$$22222222 ;<< G'G'G'G'G'GG'G'G'R''''' '''''rPK!E ] ]/command/__pycache__/sdist.cpython-311.opt-1.pycnu[ 0i=JdZddlZddlZddlmZddlmZddlmZddlm Z ddlm Z ddlm Z dd l m Z dd lmZdd lmZdd lmZdd lmZmZdZGddeZdS)zadistutils.command.sdist Implements the Distutils 'sdist' command (create a source distribution).N)glob)warn)Command)dir_util) file_util) archive_util)TextFile)FileList)log) convert_path)DistutilsTemplateErrorDistutilsOptionErrorcddlm}ddlm}g}|D])}|d|zd||df*|||ddS)zoPrint all possible values for the 'formats' option (used by the "--help-formats" command-line option). r) FancyGetopt)ARCHIVE_FORMATSformats=Nz.List of available source distribution formats:)distutils.fancy_getoptrdistutils.archive_utilrkeysappendsort print_help)rrformatsformats >/opt/alt/python311/lib64/python3.11/distutils/command/sdist.py show_formatsrs322222666666G!&&((55 V+T'/24 5 5 5 5 LLNNNK##8:::::ceZdZdZdZgdZgdZdddefgZdd d Z d efgZ d Z d Z dZ dZdZdZdZedZdZdZdZdZdZdZdZdZdZdZdZdZd Z d!Z!d"Z"dS)#sdistz6create a source distribution (tarball, zip file, etc.)c|jS)zYCallable used for the check sub-command. Placed here so user_options can view it)metadata_checkselfs rchecking_metadatazsdist.checking_metadata(s ""r))z template=tz5name of manifest template file [default: MANIFEST.in])z manifest=mz)name of manifest file [default: MANIFEST]) use-defaultsNzRinclude the default file set in the manifest [default; disable with --no-defaults]) no-defaultsNz"don't include the default file set)pruneNzspecifically exclude files/directories that should not be distributed (build tree, RCS/CVS dirs, etc.) [default; disable with --no-prune])no-pruneNz$don't automatically exclude anything) manifest-onlyozEjust regenerate the manifest and then stop (implies --force-manifest))force-manifestfzkforcibly regenerate the manifest and carry on as usual. Deprecated: now the manifest is always regenerated.)rNz6formats for source distribution (comma-separated list)) keep-tempkz@keep the distribution tree around after creating archive file(s))z dist-dir=dzFdirectory to put the source distribution archive(s) in [default: dist])metadata-checkNz[Ensure that all required elements of meta-data are supplied. Warn if any missing. [default])zowner=uz@Owner name used when creating a tar file [default: current user])zgroup=gzAGroup name used when creating a tar file [default: current group])r(r*r,r.r0r3z help-formatsNz#list available distribution formatsr(r*)r)r+check)READMEz README.txtz README.rstcd|_d|_d|_d|_d|_d|_dg|_d|_d|_d|_ d|_ d|_ d|_ dS)Nrgztar) templatemanifest use_defaultsr* manifest_onlyforce_manifestr keep_tempdist_dir archive_filesr"ownergroupr#s rinitialize_optionszsdist.initialize_optionsesl   y  !  rc|jd|_|jd|_|dtj|j}|rt d|z|j d|_dSdS)NMANIFESTz MANIFEST.inrzunknown archive format '%s'dist)r<r;ensure_string_listrcheck_archive_formatsrrrA)r$ bad_formats rfinalize_optionszsdist.finalize_options|s = &DM = )DM  ***!7 EE  >&/*<>> > = "DMMM ! rct|_|D]}||||jrdS|dSN)r filelistget_sub_commands run_command get_file_listr>make_distribution)r$cmd_names rrunz sdist.runs!  --// ' 'H   X & & & &     F      rctdt|jd}||dS)zDeprecated API.zadistutils.command.sdist.check_metadata is deprecated, use the check command insteadr6N)rPendingDeprecationWarning distributionget_command_objensure_finalizedrU)r$r6s rcheck_metadatazsdist.check_metadatasX -.G I I I!11'::     rctj|j}|s\|rH||j|jdS|s| d|jz|j |j r| |r| |jr||j|j|dS)aCFigure out the list of files to include in the source distribution, and put it in 'self.filelist'. This might involve reading the manifest template (and writing the manifest), or just reading the manifest, or just using the default file set -- it all depends on the user's options. Nz?manifest template '%s' does not exist (using default file list))ospathisfiler;_manifest_is_not_generated read_manifestrOrremove_duplicatesrfindallr= add_defaults read_templater*prune_file_listwrite_manifest)r$template_existss rrRzsdist.get_file_listsI'..77 4#B#B#D#D     M   M + + - - - F ' II4 & ' ' '           !    : #  " " "  ''))) rc|||||||dS)a9Add all the default files to self.filelist: - README or README.txt - setup.py - test/test*.py - all pure Python modules mentioned in setup script - all files pointed by package_data (build_py) - all files defined in data_files. - all files defined as scripts. - all C sources listed as part of extensions or C libraries in the setup script (doesn't catch C headers!) Warns if (README or README.txt) or setup.py are missing; everything else is optional. N)_add_defaults_standards_add_defaults_optional_add_defaults_python_add_defaults_data_files_add_defaults_ext_add_defaults_c_libs_add_defaults_scriptsr#s rrdzsdist.add_defaultss $$&&& ##%%% !!### %%'''     !!### ""$$$$$rctj|sdStj|}tj|\}}|tj|vS)z Case-sensitive path existence check >>> sdist._cs_path_exists(__file__) True >>> sdist._cs_path_exists(__file__.upper()) False F)r]r^existsabspathsplitlistdir)fspathrs directoryfilenames r_cs_path_existszsdist._cs_path_existss_w~~f%% 5'//&)) gmmG44 82:i0000rc|j|jjg}|D]}t|trj|}d}|D]5}||rd}|j|n6|s+|dd |z||r|j||d|zdS)NFTz,standard file not found: should have one of z, zstandard file '%s' not found) READMESrX script_name isinstancetupleryrOrrjoin)r$ standardsfnaltsgot_its rrjzsdist._add_defaults_standardss\4#4#@A  C CB"e$$ CB++B//!% ,,R000 /IIL"iioo.///''++CM((,,,,II4==99E M  ' ' ' ' ( (rcR|d}|jr,|j||jD]D\}}}}|D]:}|jtj ||;EdS)Nbuild_py) get_finalized_commandrXhas_pure_modulesrOrget_source_files data_filesrr]r^r)r$rpkgsrc_dir build_dir filenamesrxs rrlzsdist._add_defaults_pythons--j99   - - / / > M !:!:!>!,,4 M003334 4 4 4 4rc|jrC|d}|j|dSdS)N build_ext)rXhas_ext_modulesrrOrr)r$rs rrnzsdist._add_defaults_ext5s^   , , . . ?22;??I M !;!;!=!= > > > > > ? ?rc|jrC|d}|j|dSdS)N build_clib)rXhas_c_librariesrrOrr)r$rs rrozsdist._add_defaults_c_libs:sa   , , . . @33LAAJ M !!> ? ? ? ? ? @ @rc|jrC|d}|j|dSdS)N build_scripts)rX has_scriptsrrOrr)r$rs rrpzsdist._add_defaults_scripts?sa   ( ( * * C 66GGM M !?!?!A!A B B B B B C Crc tjd|jt|jdddddd} |}|n` |j|nC#ttf$r/}| d|j |j |fzYd}~nd}~wwxYww | dS#| wxYw)zRead and parse manifest template file named by self.template. (usually "MANIFEST.in") The parsing and processing is done by 'self.filelist', which updates itself accordingly. zreading manifest template '%s'r9)strip_comments skip_blanks join_lines lstrip_ws rstrip_ws collapse_joinTNz%s, line %d: %s) r infor;r readlinerOprocess_template_liner ValueErrorrrx current_lineclose)r$r;linemsgs rrezsdist.read_templateDs( 14=AAADM!'(A*+---  9((**<9M77====/ ;999II/83D3;3H36388999999999 9 NN     HNN    s5CA+*C+B+<%B&!C&B++CCc|d}|j}|jd|j|jd|t jdkrd}nd}gd}d|d d |d |d }|j|d dS)avPrune off branches that might slip into the file list as created by 'read_template()', but really don't belong there: * the build tree (typically "build") * the release tree itself (only an issue if we ran "sdist" previously with --keep-temp, or it aborted) * any RCS, CVS, .svn, .hg, .git, .bzr, _darcs directories buildN)prefixwin32z/|\\/)RCSCVSz\.svnz\.hgz\.gitz\.bzr_darcsz(^|z)(|z).*r9)is_regex) rrX get_fullnamerOexclude_pattern build_basesysplatformr)r$rbase_dirsepsvcs_dirsvcs_ptrns rrfzsdist.prune_file_listas**733$1133 %%d53C%DDD %%d8%<<< <7 " "DDD*.$$0B0B0B0BDDDI %%h%;;;;;rc|rtjd|jzdS|jjdd}|dd|tj |j|fd|jzdS)zWrite the file list in 'self.filelist' (presumably as filled in by 'add_defaults()' and 'read_template()') to the manifest file named by 'self.manifest'. z5not writing to manually maintained manifest file '%s'Nrz*# file GENERATED by distutils, do NOT editzwriting manifest file '%s') r`r rr<rOrinsertexecuter write_file)r$contents rrgzsdist.write_manifestys  * * , ,  H*,0M: ; ; ; F-%aaa(qFGGG Y)DM7+C1DMA C C C C Crctj|jsdSt |j} |}|n#|wxYw|dkS)NFz+# file GENERATED by distutils, do NOT edit )r]r^r_r<openrr)r$fp first_lines rr`z sdist._manifest_is_not_generatedsmw~~dm,, 5 $-  J HHJJJJBHHJJJJKKKs A%%A;c,tjd|jt|j5}|D]H}|}|ds|s.|j|I ddddS#1swxYwYdS)zRead the manifest file (named by 'self.manifest') and use it to fill in 'self.filelist', the list of files to include in the source distribution. zreading manifest file '%s'#N)r rr<rstrip startswithrOr)r$r<rs rrazsdist.read_manifests -t}=== $-  +H  + +zz||??3''t $$T****  + + + + + + + + + + + + + + + + + + +sA B  B B c(||tj|||jt t drd}d|z}nd}d|z}|st jdnt j||D]o}t j |st jd|7t j ||}| ||| p|j j|dS) aCreate the directory tree that will become the source distribution archive. All directories implied by the filenames in 'files' are created under 'base_dir', and then we hard link or copy (if hard linking is unavailable) those files into place. Essentially, this duplicates the developer's source tree, but in a directory named after the distribution, containing only the files to be distributed. dry_runlinkhardzmaking hard links in %s...Nzcopying files to %s...z)no files to distribute -- empty manifest?z#'%s' not a regular file -- skipping)r)mkpathr create_treerhasattrr]r rrr^r_r copy_filerXmetadatawrite_pkg_info)r$rrrrfiledests rmake_release_treezsdist.make_release_trees HXudlCCCC 2v   6D.9CCD*X5C  H@ A A A A HSMMM 6 6D7>>$'' 6>EEEEw||Hd33tT5555 "11(;;;;;rc|j}tj|j|}|||jjg}d|j vrJ|j |j |j d|j D]]}| ||||j|j}| ||jj dd|f^||_|jst'j||jdSdS)aCreate the source distribution(s). First, we create the release tree with 'make_release_tree()'; then, we create all required archive files (according to 'self.formats') from the release tree. Finally, we clean up by blowing away the release tree (unless 'self.keep_temp' is true). The list of archive files created is stored so it can be retrieved later by 'get_archive_files()'. tar)rrCrDr rN)rXrr]r^rrArrOrrrpopindex make_archiverCrD dist_filesrBr@r remove_treer)r$r base_namerBfmtrs rrSzsdist.make_distributionsE$1133GLL99  x)<=== DL L   0 01C1CE1J1J K K L L L< E EC$$Yh+/:TZ%IID   & & &   ( / /"d0C D D D D*~ A  4< @ @ @ @ @ @ A Arc|jS)zzReturn the list of archive files created when the command was run, or None if the command hasn't run yet. )rBr#s rget_archive_fileszsdist.get_archive_filess !!r)#__name__ __module__ __qualname__ descriptionr% user_optionsboolean_optionsr help_options negative_opt sub_commandsr{rErLrUr[rRrd staticmethodryrjrkrlrmrnrorprerfrgr`rarrSrrrr r $sJK### % % % LN666O  .  > L $2 '**L/01L4G.### !!!,&&&P%%%,11\1 CCC*((( FFF 444"??? @@@ CCC :<<<0 C C C L L L + + +(<(<(rs>LL """"""""""""((((((''''''''''''IIIIIIII : : :J"J"J"J"J"GJ"J"J"J"J"rPK!4.  3command/__pycache__/install_headers.cpython-311.pycnu[ 0i2dZddlmZGddeZdS)zdistutils.command.install_headers Implements the Distutils 'install_headers' command, to install C/C++ header files to the Python include directory.)Commandc>eZdZdZddgZdgZdZdZdZdZ d Z d S) install_headerszinstall C/C++ header files)z install-dir=dz$directory to install header files to)forcefz-force installation (overwrite existing files)rc0d|_d|_g|_dS)Nr) install_dirroutfilesselfs H/opt/alt/python311/lib64/python3.11/distutils/command/install_headers.pyinitialize_optionsz"install_headers.initialize_optionss  c4|ddddS)Ninstall)rr )rr)set_undefined_optionsr s rfinalize_optionsz install_headers.finalize_optionss, ""9#E#5 7 7 7 7 7rc|jj}|sdS||j|D]:}|||j\}}|j|;dSN) distributionheadersmkpathr copy_filer append)r rheaderout_s rrunzinstall_headers.run!s{#+  F D$%%% & &F~~fd.>??HS! M  % % % % & &rc|jjpgSr)rrr s r get_inputszinstall_headers.get_inputs+s (.B.rc|jSr)r r s r get_outputszinstall_headers.get_outputs.s }rN) __name__ __module__ __qualname__ description user_optionsboolean_optionsrrrr!r#rrrr s.K=FL iO 777 &&&///rrN)__doc__distutils.corerrr*rrr-sW** #"""""%%%%%g%%%%%rPK!.$dd.command/__pycache__/build_clib.cpython-311.pycnu[ 0iV`dZddlZddlmZddlTddlmZddlmZdZ Gdd eZ dS) zdistutils.command.build_clib Implements the Distutils 'build_clib' command, to build a C/C++ library that is included in the module distribution and needed by an extension module.N)Command)*)customize_compiler)logc&ddlm}|dS)Nrshow_compilers)distutils.ccompilerr rs C/opt/alt/python311/lib64/python3.11/distutils/command/build_clib.pyr r s(222222NcZeZdZdZgdZddgZdddefgZdZd Z d Z d Z d Z d Z dZdS) build_clibz/build C/C++ libraries used by Python extensions))z build-clib=bz%directory to build C/C++ libraries to)z build-temp=tz,directory to put temporary build by-products)debuggz"compile with debugging information)forcefz2forcibly build everything (ignore file timestamps))z compiler=czspecify the compiler typerrz help-compilerNzlist available compilerscd|_d|_d|_d|_d|_d|_d|_d|_d|_dS)Nr) r build_temp libraries include_dirsdefineundefrrcompilerselfs r initialize_optionszbuild_clib.initialize_options4sJ!     r c\|dddddd|jj|_|jr||j|j|jjpg|_t |jt r+|jtj |_dSdS)Nbuild)rr)rr)rr)rr)rr) set_undefined_options distributionrcheck_library_listr isinstancestrsplitospathseprs r finalize_optionszbuild_clib.finalize_optionsDs ""7#?#?#;#5#5  7 7 7*4 > 4  # #DN 3 3 3   $ $ 1 > D"D  d' - - D $ 1 7 7 C CD    D Dr c|jsdSddlm}||j|j|j|_t |j|j|j|j|j (|j D] \}}|j ||!|j $|j D]}|j || |jdS)Nr) new_compiler)rdry_runr)rr r,rr-rrrset_include_dirsr define_macrorundefine_macrobuild_libraries)rr,namevaluemacros r runzbuild_clib.run^s~  F 544444$ dm-1\+/:777  4=)))   ( M * *4+< = = = ; " $  8 8 e **47777 : ! 4 4 ,,U3333 T^,,,,,r ct|tstd|D]}t|ts"t |dkrtd|\}}t|t stdd|vst jdkr&t j|vrtd|dzt|tstdd S) a`Ensure that the list of libraries is valid. `library` is presumably provided as a command option 'libraries'. This method checks that it is a list of 2-tuples, where the tuples are (library_name, build_info_dict). Raise DistutilsSetupError if the structure is invalid anywhere; just returns otherwise. z+'libraries' option must be a list of tuplesz*each element of 'libraries' must a 2-tuplezNfirst element of each tuple in 'libraries' must be a string (the library name)/z;bad library name '%s': may not contain directory separatorsrzMsecond element of each tuple in 'libraries' must be a dictionary (build info)N) r%listDistutilsSetupErrortuplelenr&r(sepdict)rrlibr2 build_infos r r$zbuild_clib.check_library_listvs.)T** A%?AA A ; ;Cc5)) Dc#hh!mm)BDDD # D*dC(( =)<===d{{rv}}4)+>@CA+GHHHj$// ;):;;; ;! ; ;r c`|jsdSg}|jD]\}}|||S)N)rappend)r lib_nameslib_namer@s r get_library_nameszbuild_clib.get_library_namessK~ 4 &*n ' ' "Xz   X & & & &r c ||jg}|jD]_\}}|d}|t|tt fst d|z||`|S)Nsourcesfin 'libraries' option (library '%s'), 'sources' must be present and must be a list of source filenames)r$rgetr%r9r;r:extend)r filenamesrDr@rGs r get_source_fileszbuild_clib.get_source_filess /// &*n & & "Xz nnY//Gj4-&H&H)46>?@@@   W % % % %r c|D]\}}|d}|t|ttfst d|zt|}t jd||d}|d}|j||j |||j }|j |||j |j dS)NrGrHzbuilding '%s' librarymacrosr) output_dirrNrr)rOr) rIr%r9r;r:rinforcompilerrcreate_static_libr)rrrDr@rGrNrobjectss r r1zbuild_clib.build_librariess&/ > > "Xz nnY//Gj4-&H&H)46>?@@@7mmG H,h 7 7 7  ^^H--F%>>.99Lm++G7;399E26* ,>>G M + +GX7;26* , > > > >3 > >r )__name__ __module__ __qualname__ description user_optionsboolean_optionsr help_optionsrr*r5r$rErLr1r r rrsCK    L(O $ #^ 5 L    DDD4---0!;!;!;H      >>>>>r r) __doc__r(distutils.corerdistutils.errorsdistutils.sysconfigr distutilsrr rr[r r ras   """"""222222 u>u>u>u>u>u>u>u>u>u>r PK!X?X?0command/__pycache__/config.cpython-311.opt-1.pycnu[ 0i=3xdZddlZddlZddlmZddlmZddlmZddl m Z ddd Z Gd d eZ d d Z dS)adistutils.command.config Implements the Distutils 'config' command, a (mostly) empty command class that exists mainly to be sub-classed by specific module distributions and applications. The idea is that while every "config" command is different, at least they're all named the same, and users always see "config" in the list of standard commands. Also, this is a good place to put common configure-like tasks: "try to compile this C code", or "figure out where this header file lives". N)Command)DistutilsExecError)customize_compiler)logz.cz.cxx)czc++ceZdZdZgdZdZdZdZdZdZ dZ d Z d Z d Z ddZ ddZddZ ddZ ddZ ddZd d d gfdZ ddZd S)configzprepare to build) )z compiler=Nzspecify the compiler type)zcc=Nzspecify the compiler executable)z include-dirs=Iz.list of directories to search for header files)zdefine=DzC preprocessor macros to define)zundef=Uz!C preprocessor macros to undefine)z libraries=lz!external C libraries to link with)z library-dirs=Lz.directories to search for external C libraries)noisyNz1show every action (compile, link, run, ...) taken)z dump-sourceNz=dump generated source files before attempting to compile themcvd|_d|_d|_d|_d|_d|_d|_g|_dS)N)compilercc include_dirs libraries library_dirsr dump_source temp_filesselfs ?/opt/alt/python311/lib64/python3.11/distutils/command/config.pyinitialize_optionszconfig.initialize_options3sE    c|j|jjpg|_nCt|jtr)|jt j|_|jg|_n't|jtr |jg|_|j g|_dSt|jtr+|jt j|_dSdSN) r distribution isinstancestrsplitospathseprrrs rfinalize_optionszconfig.finalize_optionsBs   $ $ 1 > D"D   )3 / / D $ 1 7 7 C CD  > !DNN  , , ."n-DN   $ "D    )3 / / D $ 1 7 7 C CD    D DrcdSrrs rrunz config.runRs rcddlm}m}t|j|s||j|jd|_t |j|jr|j|j|j r|j |j |j r#|j |j dSdSdS)z^Check that 'self.compiler' really is a CCompiler object; if not, make it one. r) CCompiler new_compilerr)rdry_runforceN) distutils.ccompilerr+r,r!rr-rrset_include_dirsr set_librariesrset_library_dirs)rr+r,s r_check_compilerzconfig._check_compilerYs @???????$-33 B(L$-15QHHHDM t} - - -  B ..t/@AAA~ < ++DN;;;  B ..t/@AAAAA B B B BrcJdt|z}t|d5}|r2|D]}|d|z|d|||ddkr|ddddn #1swxYwY|S)N _configtestwz#include <%s>  )LANG_EXTopenwrite)rbodyheaderslangfilenamefileheaders r_gen_temp_sourcefilezconfig._gen_temp_sourcefileks 8D>1 (C  !D !%;;FJJ069:::: 4   JJt   Bx4 4    ! ! ! ! ! ! ! ! ! ! ! ! ! ! !sA+BBBc||||}d}|j||g|j|||||fS)Nz _configtest.ir)rBrextendr preprocess)rr<r=rr>srcouts r _preprocesszconfig._preprocessws_''gt<< Sz***   c  EEESzrc||||}|jrt|d|z|j|g\}|j||g|j|g|||fS)Nzcompiling '%s':rD)rBr dump_filerobject_filenamesrrEcompile)rr<r=rr>rGobjs r_compilezconfig._compile~s''gt<<   4 c,s2 3 3 3//66 Sz*** se,???Szrcp|||||\}}tjtj|d} |j|g| ||||jj| |jjz} |j | ||| fS)Nr)rr target_lang) rOr$pathsplitextbasenamerlink_executable exe_extensionrappend) rr<r=rrrr>rGrNprogs r_linkz config._links]]4,EE cw 0 0 5 566q9 %%seT093?26 & 8 8 8 = & 2$-55D t$$$S$rc|s|j}g|_tjdd||D]'} t j|#t $rY$wxYwdS)Nz removing: %s )rrinfojoinr$removeOSError)r filenamesr?s r_cleanz config._cleans !I DO )!4!4555!  H  (####      sA A A Nrcddlm}|d} |||||n #|$rd}YnwxYw||S)aQConstruct a source file from 'body' (a string containing lines of C/C++ code) and 'headers' (a list of header files to include) and run it through the preprocessor. Return true if the preprocessor succeeded, false if there were any errors. ('body' probably isn't of much use, but what the heck.) r CompileErrorTF)r/rdr3rIrarr<r=rr>rdoks rtry_cppzconfig.try_cpps 544444      T7L$ ? ? ? ?   BBB   s7AAc||||||\}}t|trt j|}t |5}d} |} | dkrn|| rd} n4dddn #1swxYwY| | S)aConstruct a source file (just like 'try_cpp()'), run it through the preprocessor, and return true if any line of the output matches 'pattern'. 'pattern' should either be a compiled regex object or a string containing a regex. If both 'body' and 'headers' are None, preprocesses an empty file -- which can be useful to determine the symbols the preprocessor and compiler set by default. FTN) r3rIr!r"rerMr:readlinesearchra) rpatternr<r=rr>rGrHr@matchlines r search_cppzconfig.search_cpps  ##D'<FFS gs # # *j))G #YY $E }}2::>>$'' E                   s(8B,,B03B0cddlm}| |||||d}n #|$rd}YnwxYwt j|rdpd||S)zwTry to compile a source file built from 'body' and 'headers'. Return true on success, false otherwise. rrcTFsuccess!failure.)r/rdr3rOrr\rares r try_compilezconfig.try_compiles 544444   MM$t < < <BB   BBB  " 0j111  s7AAcddlm}m}| |||||||d} n#||f$rd} YnwxYwt j| rdpd|| S)zTry to compile and link a source file, built from 'body' and 'headers', to executable form. Return true on success, false otherwise. rrd LinkErrorTFrrrs)r/rdrwr3rYrr\ra) rr<r=rrrr>rdrwrfs rtry_linkzconfig.try_links @???????   JJtWl , 6 6 6BBi(   BBB  " 0j111  s; AAc0ddlm}m}| |||||||\} } } || gd} n#||t f$rd} YnwxYwtj| rdpd| | S)zTry to compile, link to an executable, and run a program built from 'body' and 'headers'. Return true on success, false otherwise. rrvTFrrrs) r/rdrwr3rYspawnrrr\ra) rr<r=rrrr>rdrwrGrNexerfs rtry_runzconfig.try_runs @???????   JJtWl'0,FFMCc JJu   BBi);<   BBB  " 0j111  s6AA'&A'rc~|g}|r|d|z|d|r|d|zn|d|z|dd|dz}||||||S)aDetermine if function 'func' is available by constructing a source file that refers to 'func', and compiles and links it. If everything succeeds, returns true; otherwise returns false. The constructed source file starts out by including the header files listed in 'headers'. If 'decl' is true, it then declares 'func' (as "int func()"); you probably shouldn't supply 'headers' and set 'decl' true in the same call, or you might get errors about a conflicting declarations for 'func'. Finally, the constructed 'main()' function either references 'func' or (if 'call' is true) calls it. 'libraries' and 'library_dirs' are used when linking. z int %s ();z int main () {z %s();z %s;}r7)r3rWr]rx) rfuncr=rrrdeclcallr<s r check_funczconfig.check_funcs   - KK t+ , , , O$$$  ( KK D( ) ) ) ) KK$ ' ' ' Cyy%}}T7L& 66 6rcd||d|||g|z|S)aDetermine if 'library' is available to be linked against, without actually checking that any particular symbols are provided by it. 'headers' will be used in constructing the source file to be compiled, but the only effect of this is to check if all the header files listed are available. Any libraries listed in 'other_libraries' will be included in the link, in case 'library' has symbols that depend on other libraries. zint main (void) { })r3rx)rlibraryrr=rother_librariess r check_libzconfig.check_lib4sB }}2G\%Y8,HH Hrc4|d|g|S)zDetermine if the system header file named by 'header_file' exists and can be found by the preprocessor; return true if so, false otherwise. z /* No body */)r<r=r)rg)rrArrr>s r check_headerzconfig.check_headerBs( ||6()577 7r)NNNr)NNr)NNNNr)NNNNrr)__name__ __module__ __qualname__ description user_optionsrr&r)r3rBrIrOrYrargrprtrxr|rrrr(rrr r s$K   L4   DDD    BBB$          ,$IM8 IM),&HL(+2;?CD6666</3D#R H H H HDH777777rr c$|tjd|ntj|t|} tj||dS#|wxYw)zjDumps a file content into log.info. If head is not None, will be dumped before the file content. Nz%s)rr\r:readclose)r?headr@s rrKrKKsv  | x      >>D   s &A99Br)__doc__r$rjdistutils.corerdistutils.errorsrdistutils.sysconfigr distutilsrr9r rKr(rrrs   """"""//////222222f % %t7t7t7t7t7Wt7t7t7l      rPK!RII.command/__pycache__/bdist_dumb.cpython-311.pycnu[ 0i1vdZddlZddlmZddlmZddlmZmZddl Tddl m Z ddl m Z Gd d eZdS) zdistutils.command.bdist_dumb Implements the Distutils 'bdist_dumb' command (create a "dumb" built distribution -- i.e., just an archive to be unpacked under $prefix or $exec_prefix).N)Command) get_platform) remove_treeensure_relative)*)get_python_version)logc heZdZdZddddezfdddd d d d g Zgd ZdddZdZdZ dZ dS) bdist_dumbz"create a "dumb" built distribution)z bdist-dir=dz1temporary directory for creating the distributionz plat-name=pz;platform name to embed in generated filenames (default: %s))zformat=fz>archive format to create (tar, gztar, bztar, xztar, ztar, zip)) keep-tempkzPkeep the pseudo-installation tree around after creating the distribution archive)z dist-dir=r z-directory to put final built distributions in) skip-buildNz2skip rebuilding everything (for testing/debugging))relativeNz7build the archive using relative paths (default: false))zowner=uz@Owner name used when creating a tar file [default: current user])zgroup=gzAGroup name used when creating a tar file [default: current group])rrrgztarzip)posixntcd|_d|_d|_d|_d|_d|_d|_d|_d|_dS)Nr) bdist_dir plat_nameformat keep_tempdist_dir skip_buildrownergroup)selfs C/opt/alt/python311/lib64/python3.11/distutils/command/bdist_dumb.pyinitialize_optionszbdist_dumb.initialize_options2sE     c`|j?|dj}tj|d|_|jH |jtj|_n*#t$rtdtjzwxYw| dddddS)Nbdistdumbz@don't know how to create dumb built distributions on platform %s)rr)rr)rr) rget_finalized_command bdist_baseospathjoinrdefault_formatnameKeyErrorDistutilsPlatformErrorset_undefined_options)r"r*s r#finalize_optionszbdist_dumb.finalize_options=s > !33G<<GJW\\*f==DN ;  3"1"':  3 3 3,(*,'2333 3 ""7#;#=#? A A A A As A,,'Bc|js|d|dd}|j|_|j|_d|_t jd|j|d|j d|j }tj |j|}|js|j}n|jrJ|j|jkr:t'dt)|jd t)|jd tj |jt+|j}|||j||j|j }|jrt5}nd }|jjd ||f|jst=|j|jdSdS)Nbuildinstall)reinit_subcommandsrzinstalling to %s.zLcan't make a dumb built distribution where base and platbase are different (z, ))root_dirr r!anyr )dry_run) r run_commandreinitialize_commandrrootwarn_dirr info distribution get_fullnamerr+r,r-rrhas_ext_modules install_baseinstall_platbaser1reprr make_archiverr r!r dist_filesappendrrr=)r"r6archive_basenamepseudoinstall_root archive_rootfilename pyversions r#runzbdist_dumb.runOs% &   W % % %++I!+LL~ !_ #T^444 ###'+&7&D&D&F&F&F&F&*nn6 W\\$-9IJJ} J>LL!1133 J%)AAA,,w34444w78888:;;; "w||DN#273G#H#H J J $$%7%)[<+/:TZ%II   , , . . *,,III $++\9-5-7 8 8 8~ >  = = = = = = > >r%N) __name__ __module__ __qualname__ descriptionr user_optionsboolean_optionsr.r$r3rQr%r#r r s8KJ!3%'3|~~67#:FK)12+L4>==O '"%%N   AAA$,>,>,>,>,>r%r )__doc__r+distutils.corerdistutils.utilrdistutils.dir_utilrrdistutils.errorsdistutils.sysconfigr distutilsr r rXr%r#r`s  """"""'''''';;;;;;;;222222l>l>l>l>l>l>l>l>l>l>r%PK! = =2command/__pycache__/register.cpython-311.opt-1.pycnu[ 0i-rdZddlZddlZddlZddlZddlmZddlm Z ddl Tddl m Z Gdde Z dS) zhdistutils.command.register Implements the Distutils 'register' command (register with the repository). N)warn) PyPIRCCommand)*)logceZdZdZejddgzZejgdzZddfgZdZdZ d Z d Z d Z d Z d ZdZdZddZdS)registerz7register the distribution with the Python package index)list-classifiersNz list the valid Trove classifiers)strictNzBWill stop the registering if the meta-data are not fully compliant)verifyr r checkcdS)NTselfs A/opt/alt/python311/lib64/python3.11/distutils/command/register.pyzregister.s4cJtj|d|_d|_dS)Nr)rinitialize_optionslist_classifiersr rs rrzregister.initialize_optionss&(... ! rcdtj|d|jfdd}||jjd<dS)Nr)r)r restructuredtextr )rfinalize_optionsr distributioncommand_options)r check_optionss rrzregister.finalize_options$sB&t,,,$. #<-<>> 5B)'222rcJ|||D]}|||jr|dS|jr|dS|dSN) r _set_configget_sub_commands run_commanddry_runverify_metadatar classifiers send_metadata)rcmd_names rrunz register.run+s  --// ' 'H   X & & & & < !  " " " " "  " !            rctdt|jd}||j|_d|_|dS)zDeprecated API.zddistutils.command.register.check_metadata is deprecated, use the check command insteadr rN)rPendingDeprecationWarningrget_command_objensure_finalizedr rr()rr s rcheck_metadatazregister.check_metadata:si -.G I I I!11'::    { !" rc>|}|ikr=|d|_|d|_|d|_|d|_d|_d S|jd|jfvrtd|jz|jdkr |j|_d|_d S) z: Reads the configuration file and set attributes. usernamepassword repositoryrealmTpypiz%s not found in .pypircFN) _read_pypircr/r0r1r2 has_configDEFAULT_REPOSITORY ValueError)rconfigs rr zregister._set_configDs""$$ R<<":.DM":.DM$\2DODJ"DOOOvt/F&GGG !:T_!LMMM&(("&"9#DOOOrc|jdz}tj|}t j||dS)z8 Fetch the list of classifiers from the server. z?:action=list_classifiersN)r1urllibrequesturlopenrinfo_read_pypi_response)rurlresponses rr%zregister.classifiersUsJo99>))#.. ))(3344444rc||d\}}tjd||dS)zF Send the metadata to the package index server to be checked. r Server response (%s): %sN)post_to_serverbuild_post_datarr=)rcoderesults rr$zregister.verify_metadata\sD,,T-A-A(-K-KLLv +T6:::::rc$|jrd}|j}|j}nd}dx}}d}||vrJ|dt jt}|sd}n||vrtd||vJ|dkr|std}||stj d}|tj }tj |jd }||j|||||d |\}}|d |d |t j|d kr|jr||j_dS|dt j|d|zt jd}|dvr)td}|sd}|dv)|dkr|||dSdSdS|dkrYddi} dx| d<x| d<| d<d| d<| dstd| d<| d| d| dkr| dstj d| d<| d| dstj d| d<| d| d| dkrd| d<d| d<td| d| dk| dstd| d<| d|| \}}|d krt jd ||dSt jd!t jd"dS|d#kr[dd$i} d| d<| dstd%| d<| d|| \}}t jd ||dSdS)&a_ Send the metadata to the package index server. Well, do the following: 1. figure who the user is, and then 2. send the data as a Basic auth'ed POST. First we try to read the username/password from $HOME/.pypirc, which is a ConfigParser-formatted file with a section [distutils] containing username and password entries (both in clear text). Eg: [distutils] index-servers = pypi [pypi] username: fred password: sekrit Otherwise, to figure who the user is, we offer the user three choices: 1. use existing login, 2. register as a new user, or 3. set the password to a random string and email the user. 1xz1 2 3 4zWe need to know who you are, so please choose either: 1. use your existing login, 2. register as a new user, 3. have the server generate a new password for you (and email it to you), or 4. quit Your selection [default 1]: z&Please choose one of the four options!z Username: z Password: rsubmitzServer response (z): zAI can store your PyPI login so future submissions will be faster.z (the login will be stored in %s)XynzSave your login (y/N)?ny2:actionusernamer0emailNconfirmz Confirm: z!Password and confirm don't match!z EMail: rBz"You will receive an email shortly.z7Follow the instructions in it to complete registration.3password_resetzYour email address: )r5r/r0splitannouncerINFOinputprintgetpassr:r;HTTPPasswordMgrparseurlparser1 add_passwordr2rCrDr _get_rc_filelower _store_pypircr=) rchoicer/r0choicesauthhostrErFdatas rr&zregister.send_metadatacs< ? %F}H}HHF"$ $Hx//##G## MM "%  + + +WWF @w&&>???G## S== / .. / 9"?<88 9>1133D<((99!>>>>!{-,s]]v&D>@ @DL @4 +d7m"DO6l 3$\22V 6l 3z"d9o55z*E'.|'D'DD$z*Ey/D&-ol&C&CDOy/D #tI66')D$&*DO=>>>z"d9o557m 4 %l 3 3W 7m 4..t44LD&s{{3T6BBBBB=>>>355555 s]]/0DDM7m > %&< = =W 7m >..t44LD& H/v > > > > > ]rc|jj}id|ddd|d|d|d|d|d |d |d | d | d | d| d| d|d|d|}|ds|ds|drd|d<|S)NrRmetadata_versionz1.0rTversionsummary home_pageauthor author_emaillicense descriptionkeywordsplatformr% download_urlprovidesrequires obsoletesz1.1)rmetadataget_name get_versionget_descriptionget_url get_contactget_contact_email get_licenceget_long_description get_keywords get_platformsget_classifiersget_download_url get_provides get_requires get_obsoletes)ractionmetarjs rrDzregister.build_post_datas ) v   DMMOO  t''))  t++--     d&&((  D2244  t''))  44466  ))++  **,,  4//11  D1133 ))++! " ))++# $ ++--% (   -tJ/ -4 3D -',D# $ rNcd|vr1|d|dd|jtjd}d|z}|dz}t j}|D]\}}t|tgtdfvr|g}|D]}t|}| || d|z| d | ||r!|d d kr| d | || d | d }d|ztt|d} tj|j|| } tjtj|} d} | | } |jr|| }d} n|#tjj$r8} |jr| j}| j| jf} Yd} ~ n5d} ~ wtjj$r} dt| f} Yd} ~ nd} ~ wwxYw|jr8d d|df}||tj| S)zC Post a query to the server, and return a string response. rTz Registering z to z3--------------GHSKFJDLGDS7543FJKLFHRE75642756743254z --z--rz* Content-Disposition: form-data; name="%s"z   zutf-8z/multipart/form-data; boundary=%s; charset=utf-8)z Content-typezContent-length) password_mgrrJ)rLOKNizK---------------------------------------------------------------------------)rZr1rr[ioStringIOitemstypestrwritegetvalueencodelenr:r;Request build_openerHTTPBasicAuthHandleropen show_responser>error HTTPErrorfpreadrEmsgURLErrorjoin)rrjrhboundary sep_boundary end_boundarybodykeyvalueheadersreqopenerrFers rrCzregister.post_to_servers T>> MMMDLLL48OOE47H > > >I( #d* {}}**,, % %JCE{{488T2ZZ"888 % %E  <((( HLMMM 6""" 5!!!%U2Y$..JJt$$$ % <    4}}%%g..NhV!#d))nn  n$$T_dGDD,, N / /T / B B   [[%%F! 8//77FF|% # # #! #tyy{{VQU]FFFFFF|$ ! ! !#a&&[FFFFFF !   )))XtX677C MM#sx ( ( ( s$H::J3.JJ3J..J3r)__name__ __module__ __qualname__rsr user_optionsboolean_options sub_commandsrrr(r-r r%r$r&rDrCrrrrrs LK - - O1  L $37070700O//01L CCC ! ! !$$$"555;;;x?x?x?t8777777rr)__doc__r^r urllib.parser:urllib.requestwarningsrdistutils.corerdistutils.errors distutilsrrrrrrs ########((((((_____}_____rPK!hY---:command/__pycache__/install_egg_info.cpython-311.opt-1.pycnu[ 0i+ ldZddlmZddlmZmZddlZddlZddlZGddeZ dZ dZ d Z dS) zdistutils.command.install_egg_info Implements the Distutils 'install_egg_info' command, for installing a package's PKG-INFO metadata.)Command)logdir_utilNc4eZdZdZdZdgZdZdZdZdZ dS) install_egg_infoz)Install an .egg-info file for the packagez8Install package's PKG-INFO metadata as an .egg-info file)z install-dir=dzdirectory to install tocd|_dSN) install_dirselfs I/opt/alt/python311/lib64/python3.11/distutils/command/install_egg_info.pyinitialize_optionsz#install_egg_info.initialize_optionssc|dddtt|jtt |jgtjddRz}tj |j ||_ |j g|_dS)N install_lib)r r z%s-%s-py%d.%d.egg-info)set_undefined_options to_filename safe_name distributionget_name safe_version get_versionsys version_infoospathjoinr targetoutputs)r basenames rfinalize_optionsz!install_egg_info.finalize_optionss ""=1NOOO+  $"3"<"<">">?? @ @  T%6%B%B%D%DEE F F/  bqb !/ /   gll4#3X>>  } rc|j}tj|r;tj|st j||jntj|r+| tj |jfd|znStj|j s/| tj |j fd|j ztjd||jsLt|dd5}|jj|ddddS#1swxYwYdSdS)N)dry_runz Removing z Creating z Writing %swzUTF-8)encoding)r rrisdirislinkr remove_treer%existsexecuteunlinkr makedirsrinfoopenrmetadatawrite_pkg_file)r r fs rrunzinstall_egg_info.run s 7==  7)?)? 7   > > > > > W^^F # # 7 LLDK>+f2D E E E Et/00 7 LLt'7&9$T%55 7 7 7 v&&&| =fcG444 =!*99!<<< = = = = = = = = = = = = = = = = = = = =s- EE!Ec|jSr )r!r s r get_outputszinstall_egg_info.get_outputs.s |rN) __name__ __module__ __qualname____doc__ description user_optionsrr#r4r6rrrr se33LK8L   %%% = = =rrc.tjdd|S)zConvert an arbitrary string to a standard distribution name Any runs of non-alphanumeric/. characters are replaced with a single '-'. [^A-Za-z0-9.]+-)resubnames rrr6s 6"C . ..rcZ|dd}tjdd|S)zConvert an arbitrary string to a standard version string Spaces become dots, and all other non-alphanumeric characters become dashes, with runs of multiple dashes condensed to a single dash.  .r?r@)replacerArB)versions rrr>s, ooc#&&G 6"C 1 11rc.|ddS)z|Convert a project or version name to its filename-escaped form Any '-' characters are currently replaced with '_'. r@_)rHrCs rrrHs <<C  r) r: distutils.cmdr distutilsrrrrrArrrrr=rrrNs"" "!!!!!########$$$$$w$$$V///222!!!!!rPK!jU(U(#__pycache__/filelist.cpython-35.pycnu[ Yf0@sdZddlZddlZddlZddlZddlmZddlmZm Z ddl m Z GdddZ dd Z ejd d Zd d ZdddddZdS)zsdistutils.filelist Provides the FileList class, used for poking about the filesystem and building lists of files. N) convert_path)DistutilsTemplateErrorDistutilsInternalError)logc@seZdZdZddddZddZejddZd d Z d d Z d dZ ddZ ddZ ddZddZdddddZdddddZdS)FileListaA list of files built by on exploring the filesystem and filtered by applying various patterns to what we find there. Instance attributes: dir directory from which files will be taken -- only used if 'allfiles' not supplied to constructor files list of filenames currently being built/filtered/manipulated allfiles complete list of files under consideration (ie. without any filtering applied) NcCsd|_g|_dS)N)allfilesfiles)selfwarn debug_printr 7/opt/alt/python35/lib64/python3.5/distutils/filelist.py__init__s zFileList.__init__cCs ||_dS)N)r)r rr r r set_allfiles#szFileList.set_allfilescCst||_dS)N)findallr)r dirr r r r&szFileList.findallcCs$ddlm}|r t|dS)z~Print 'msg' to stdout if the global DEBUG (taken from the DISTUTILS_DEBUG environment variable) flag is true. r)DEBUGN)Zdistutils.debugrprint)r msgrr r r r )szFileList.debug_printcCs|jj|dS)N)rappend)r itemr r r r3szFileList.appendcCs|jj|dS)N)rextend)r itemsr r r r6szFileList.extendcCsXtttjj|j}g|_x*|D]"}|jjtjj|q.WdS)N)sortedmapospathsplitrrjoin)r Zsortable_filesZ sort_tupler r r sort9s  z FileList.sortcCsVxOtt|jdddD].}|j||j|dkr |j|=q WdS)Nr)rangelenr)r ir r r remove_duplicatesCs&zFileList.remove_duplicatescCs1|j}|d}d}}}|dkrrt|dkrRtd|dd |d dD}n|dkrt|d krtd|t|d }dd |ddD}nQ|dkrt|dkrtd|t|d }ntd|||||fS)Nrincludeexcludeglobal-includeglobal-excludez&'%s' expects ...cSsg|]}t|qSr )r).0wr r r Ws z1FileList._parse_template_line..r recursive-includerecursive-excludez,'%s' expects ...cSsg|]}t|qSr )r)r+r,r r r r-]s graftprunez#'%s' expects a single zunknown action '%s')r&r'r(r))r.r/)r1r2)rr#rr)r lineZwordsactionpatternsr dir_patternr r r _parse_template_lineLs,          zFileList._parse_template_linecCs|j|\}}}}|dkrz|jddj|x|D]+}|j|ddsHtjd|qHWn|dkr|jddj|x^|D]+}|j|ddstjd |qWn(|d kr8|jd dj|x|D]+}|j|dd stjd |qWn|dkr|jddj|x|D]+}|j|dd setjd|qeWnj|dkr|jd|dj|fx;|D].}|j|d|stjd||qWn|dkrg|jd|dj|fx|D].}|j|d|s2tjd||q2Wn|dkr|jd||jdd|stjd|nU|dkr|jd||jdd|stjd|ntd|dS)Nr&zinclude  anchorr z%warning: no files found matching '%s'r'zexclude z9warning: no previously-included files found matching '%s'zglobal-includezglobal-include rz>warning: no files found matching '%s' anywhere in distributionzglobal-excludezglobal-exclude zRwarning: no previously-included files matching '%s' found anywhere in distributionzrecursive-includezrecursive-include %s %sprefixz:warning: no files found matching '%s' under directory '%s'zrecursive-excludezrecursive-exclude %s %szNwarning: no previously-included files matching '%s' found under directory '%s'r1zgraft z+warning: no directories found matching '%s'r2zprune z6no previously-included directories found matching '%s'z'this cannot happen: invalid action '%s')r7r rinclude_patternrr exclude_patternr)r r3r4r5rr6patternr r r process_template_linehsf                          zFileList.process_template_liner rcCsd}t||||}|jd|j|jdkrH|jxG|jD]<}|j|rR|jd||jj|d}qRW|S)aSelect strings (presumably filenames) from 'self.files' that match 'pattern', a Unix-style wildcard (glob) pattern. Patterns are not quite the same as implemented by the 'fnmatch' module: '*' and '?' match non-special characters, where "special" is platform- dependent: slash on Unix; colon, slash, and backslash on DOS/Windows; and colon on Mac OS. If 'anchor' is true (the default), then the pattern match is more stringent: "*.py" will match "foo.py" but not "foo/bar.py". If 'anchor' is false, both of these will match. If 'prefix' is supplied, then only filenames starting with 'prefix' (itself a pattern) and ending with 'pattern', with anything in between them, will match. 'anchor' is ignored in this case. If 'is_regex' is true, 'anchor' and 'prefix' are ignored, and 'pattern' is assumed to be either a string containing a regex or a regex object -- no translation is done, the regex is just compiled and used as-is. Selected strings will be added to self.files. Return True if files are found, False otherwise. Fz%include_pattern: applying regex r'%s'Nz adding T)translate_patternr r=rrsearchrr)r r=r9r:is_regex files_found pattern_renamer r r r;s    zFileList.include_patterncCsd}t||||}|jd|jxett|jdddD]D}|j|j|rO|jd|j||j|=d}qOW|S)aRemove strings (presumably filenames) from 'files' that match 'pattern'. Other parameters are the same as for 'include_pattern()', above. The list 'self.files' is modified in place. Return True if files are found, False otherwise. Fz%exclude_pattern: applying regex r'%s'r z removing Tr!r!)r?r r=r"r#rr@)r r=r9r:rArBrCr$r r r r<s  &  zFileList.exclude_pattern)__name__ __module__ __qualname____doc__rrrcurdirrr rrrr%r7r>r;r<r r r r rs      L,rcCs5ddtj|ddD}ttjj|S)z% Find all files under 'path' css:|]0\}}}|D]}tjj||VqqdS)N)rrr)r+basedirsrfiler r r s z#_find_all_simple.. followlinksT)rwalkfilterrisfile)rZresultsr r r _find_all_simples rRcCsOt|}|tjkrEtjtjjd|}t||}t|S)z Find all files under 'dir' and return the list of full filenames. Unless dir is '.', return full filenames with dir prepended. start) rRrrI functoolspartialrrelpathrlist)rrZmake_relr r r rs  rcCsPtj|}tj}tjdkr-d}d|}tjd||}|S)zTranslate a shell-like glob pattern to a regular expression; return a string containing the regex. Differs from 'fnmatch.translate()' in that '*' does not match "special characters" (which are platform-specific). \z\\\\z\1[^%s]z((?s    PK!jU(U()__pycache__/filelist.cpython-35.opt-1.pycnu[ Yf0@sdZddlZddlZddlZddlZddlmZddlmZm Z ddl m Z GdddZ dd Z ejd d Zd d ZdddddZdS)zsdistutils.filelist Provides the FileList class, used for poking about the filesystem and building lists of files. N) convert_path)DistutilsTemplateErrorDistutilsInternalError)logc@seZdZdZddddZddZejddZd d Z d d Z d dZ ddZ ddZ ddZddZdddddZdddddZdS)FileListaA list of files built by on exploring the filesystem and filtered by applying various patterns to what we find there. Instance attributes: dir directory from which files will be taken -- only used if 'allfiles' not supplied to constructor files list of filenames currently being built/filtered/manipulated allfiles complete list of files under consideration (ie. without any filtering applied) NcCsd|_g|_dS)N)allfilesfiles)selfwarn debug_printr 7/opt/alt/python35/lib64/python3.5/distutils/filelist.py__init__s zFileList.__init__cCs ||_dS)N)r)r rr r r set_allfiles#szFileList.set_allfilescCst||_dS)N)findallr)r dirr r r r&szFileList.findallcCs$ddlm}|r t|dS)z~Print 'msg' to stdout if the global DEBUG (taken from the DISTUTILS_DEBUG environment variable) flag is true. r)DEBUGN)Zdistutils.debugrprint)r msgrr r r r )szFileList.debug_printcCs|jj|dS)N)rappend)r itemr r r r3szFileList.appendcCs|jj|dS)N)rextend)r itemsr r r r6szFileList.extendcCsXtttjj|j}g|_x*|D]"}|jjtjj|q.WdS)N)sortedmapospathsplitrrjoin)r Zsortable_filesZ sort_tupler r r sort9s  z FileList.sortcCsVxOtt|jdddD].}|j||j|dkr |j|=q WdS)Nr)rangelenr)r ir r r remove_duplicatesCs&zFileList.remove_duplicatescCs1|j}|d}d}}}|dkrrt|dkrRtd|dd |d dD}n|dkrt|d krtd|t|d }dd |ddD}nQ|dkrt|dkrtd|t|d }ntd|||||fS)Nrincludeexcludeglobal-includeglobal-excludez&'%s' expects ...cSsg|]}t|qSr )r).0wr r r Ws z1FileList._parse_template_line..r recursive-includerecursive-excludez,'%s' expects ...cSsg|]}t|qSr )r)r+r,r r r r-]s graftprunez#'%s' expects a single zunknown action '%s')r&r'r(r))r.r/)r1r2)rr#rr)r lineZwordsactionpatternsr dir_patternr r r _parse_template_lineLs,          zFileList._parse_template_linecCs|j|\}}}}|dkrz|jddj|x|D]+}|j|ddsHtjd|qHWn|dkr|jddj|x^|D]+}|j|ddstjd |qWn(|d kr8|jd dj|x|D]+}|j|dd stjd |qWn|dkr|jddj|x|D]+}|j|dd setjd|qeWnj|dkr|jd|dj|fx;|D].}|j|d|stjd||qWn|dkrg|jd|dj|fx|D].}|j|d|s2tjd||q2Wn|dkr|jd||jdd|stjd|nU|dkr|jd||jdd|stjd|ntd|dS)Nr&zinclude  anchorr z%warning: no files found matching '%s'r'zexclude z9warning: no previously-included files found matching '%s'zglobal-includezglobal-include rz>warning: no files found matching '%s' anywhere in distributionzglobal-excludezglobal-exclude zRwarning: no previously-included files matching '%s' found anywhere in distributionzrecursive-includezrecursive-include %s %sprefixz:warning: no files found matching '%s' under directory '%s'zrecursive-excludezrecursive-exclude %s %szNwarning: no previously-included files matching '%s' found under directory '%s'r1zgraft z+warning: no directories found matching '%s'r2zprune z6no previously-included directories found matching '%s'z'this cannot happen: invalid action '%s')r7r rinclude_patternrr exclude_patternr)r r3r4r5rr6patternr r r process_template_linehsf                          zFileList.process_template_liner rcCsd}t||||}|jd|j|jdkrH|jxG|jD]<}|j|rR|jd||jj|d}qRW|S)aSelect strings (presumably filenames) from 'self.files' that match 'pattern', a Unix-style wildcard (glob) pattern. Patterns are not quite the same as implemented by the 'fnmatch' module: '*' and '?' match non-special characters, where "special" is platform- dependent: slash on Unix; colon, slash, and backslash on DOS/Windows; and colon on Mac OS. If 'anchor' is true (the default), then the pattern match is more stringent: "*.py" will match "foo.py" but not "foo/bar.py". If 'anchor' is false, both of these will match. If 'prefix' is supplied, then only filenames starting with 'prefix' (itself a pattern) and ending with 'pattern', with anything in between them, will match. 'anchor' is ignored in this case. If 'is_regex' is true, 'anchor' and 'prefix' are ignored, and 'pattern' is assumed to be either a string containing a regex or a regex object -- no translation is done, the regex is just compiled and used as-is. Selected strings will be added to self.files. Return True if files are found, False otherwise. Fz%include_pattern: applying regex r'%s'Nz adding T)translate_patternr r=rrsearchrr)r r=r9r:is_regex files_found pattern_renamer r r r;s    zFileList.include_patterncCsd}t||||}|jd|jxett|jdddD]D}|j|j|rO|jd|j||j|=d}qOW|S)aRemove strings (presumably filenames) from 'files' that match 'pattern'. Other parameters are the same as for 'include_pattern()', above. The list 'self.files' is modified in place. Return True if files are found, False otherwise. Fz%exclude_pattern: applying regex r'%s'r z removing Tr!r!)r?r r=r"r#rr@)r r=r9r:rArBrCr$r r r r<s  &  zFileList.exclude_pattern)__name__ __module__ __qualname____doc__rrrcurdirrr rrrr%r7r>r;r<r r r r rs      L,rcCs5ddtj|ddD}ttjj|S)z% Find all files under 'path' css:|]0\}}}|D]}tjj||VqqdS)N)rrr)r+basedirsrfiler r r s z#_find_all_simple.. followlinksT)rwalkfilterrisfile)rZresultsr r r _find_all_simples rRcCsOt|}|tjkrEtjtjjd|}t||}t|S)z Find all files under 'dir' and return the list of full filenames. Unless dir is '.', return full filenames with dir prepended. start) rRrrI functoolspartialrrelpathrlist)rrZmake_relr r r rs  rcCsPtj|}tj}tjdkr-d}d|}tjd||}|S)zTranslate a shell-like glob pattern to a regular expression; return a string containing the regex. Differs from 'fnmatch.translate()' in that '*' does not match "special characters" (which are platform-specific). \z\\\\z\1[^%s]z((?s    PK!*[)__pycache__/__init__.cpython-35.opt-1.pycnu[ Yf@s5dZddlZejdejjdZdS)zdistutils The main package for the Python Module Distribution Utilities. Normally used from a setup script as from distutils.core import setup setup (...) N )__doc__sysversionindex __version__rr7/opt/alt/python35/lib64/python3.5/distutils/__init__.py s PK!3ˣD D '__pycache__/config.cpython-35.opt-2.pycnu[ ]@sLddlZddlmZddlmZdZGdddeZdS)N)RawConfigParser)CommandzE[distutils] index-servers = pypi [pypi] username:%s password:%s c@seZdZdZdZdZdZdddefdgZdgZd d Z d d Z d dZ ddZ ddZ ddZdS) PyPIRCCommandzhttps://upload.pypi.org/legacy/pypiNz repository=rzurl of repository [default: %s] show-response&display full response text from servercCstjjtjjddS)N~z.pypirc)ospathjoin expanduser)selfr+/opt/alt/python35/lib64/python3.5/config.py _get_rc_file&szPyPIRCCommand._get_rc_filec Cs\|j}tjtj|tjtjBdd}|jt||fWdQRXdS)Niw)rr fdopenopenO_CREATO_WRONLYwriteDEFAULT_PYPIRC)rusernamepasswordrcfrrr _store_pypirc*s .zPyPIRCCommand._store_pypircc CsM|j}tjj|rI|jd||jp>|j}|jpP|j}t }|j ||j }d|kr|j dd}dd|j dD}|gkrd|krdg}niSxo|D]}d|i} |j |d | d >s z.PyPIRCCommand._read_pypirc.. rr!r repositoryrealmrz server-login)rN)rr r existsZannouncer$DEFAULT_REPOSITORYr% DEFAULT_REALMrreadsectionsgetsplitZ has_option) rrr$r%configr*Z index_serversZ_serversr!currentkeydefaultrrr _read_pypirc0sX                   zPyPIRCCommand._read_pypirccCsPddl}|jdd}|j|djdd}|jj|S)Nrz content-typez text/plaincharsetascii)cgiZ getheaderZ parse_headerr+r)decode)rresponser5Z content_typeencodingrrr_read_pypi_responseqs z!PyPIRCCommand._read_pypi_responsecCsd|_d|_d|_dS)Nr)r$r%Z show_response)rrrrinitialize_optionsxs  z PyPIRCCommand.initialize_optionscCs:|jdkr|j|_|jdkr6|j|_dS)N)r$r'r%r()rrrrfinalize_options~s zPyPIRCCommand.finalize_options)rNr)__name__ __module__ __qualname__r'r(r$r%Z user_optionsZboolean_optionsrrr1r9r:r;rrrrrs      A  r)r configparserrZ distutils.cmdrrrrrrrs  PK! .##0__pycache__/cygwinccompiler.cpython-35.opt-1.pycnu[ YfZ@@sgdZddlZddlZddlZddlmZmZmZddlZddl m Z m Z ddl m Z ddlmZddlmZmZmZmZddlmZdd lmZdd lmZd d ZGd dde ZGdddeZdZdZdZ ddZ!ej"dZ#ddZ$ddZ%ddZ&dS)adistutils.cygwinccompiler Provides the CygwinCCompiler class, a subclass of UnixCCompiler that handles the Cygwin port of the GNU C compiler to Windows. It also contains the Mingw32CCompiler class which handles the mingw32 port of GCC (same as cygwin in no-cygwin mode). N)PopenPIPE check_output)gen_preprocess_optionsgen_lib_options) UnixCCompiler) write_file)DistutilsExecErrorCCompilerError CompileErrorUnknownFileError)log) LooseVersion)find_executablecCstjjd}|dkrtj|d|d}|dkrLdgS|dkr_dgS|d krrd gS|d krd gS|d krdgStd|dS)zaInclude the appropriate MSVC runtime library if Python was built with MSVC 7.0 or later. zMSC v. Z1300Zmsvcr70Z1310Zmsvcr71Z1400Zmsvcr80Z1500Zmsvcr90Z1600Zmsvcr100zUnknown MS Compiler version %s N)sysversionfind ValueError)Zmsc_posZmsc_verr>/opt/alt/python35/lib64/python3.5/distutils/cygwinccompiler.py get_msvcr?s      rc @seZdZdZdZdZdZdZdZdZ dZ d d d d d Z d d Z dddddd dddddd Z d dddZdS)CygwinCCompilerz? Handles the Cygwin port of the GNU C compiler to Windows. cygwinz.oz.az.dllzlib%s%sz%s%sz.exerc CsPtj||||t\}}|jd||f|tk rY|jd|t\|_|_|_ |j|j d|j|j|j f|jdkrd|_ n d|_ |jdkrd}nd }|j d d d d dddddd|j |f|jdkr@dg|_ |jdn t|_ dS)Nz%Python's GCC status: %s (details: %s)zPython's pyconfig.h doesn't seem to support your compiler. Reason: %s. Compiling may fail because of undefined preprocessor macros.z: gcc %s, ld %s, dllwrap %s z2.10.90gccdllwrapz2.13z-sharedz -mdll -staticcompilerzgcc -mcygwin -O -Wall compiler_sozgcc -mcygwin -mdll -O -Wall compiler_cxxzg++ -mcygwin -O -Wall linker_exez gcc -mcygwin linker_soz%s -mcygwin %sz2.91.57Zmsvcrtz,Consider upgrading to a newer version of gcc)r__init__check_config_hZ debug_print CONFIG_H_OKwarn get_versions gcc_version ld_versionZdllwrap_version compiler_type linker_dllset_executables dll_librariesr)selfverbosedry_runforceZstatusZdetails shared_optionrrrr$ds<       zCygwinCCompiler.__init__cCs|dks|dkroy |jdd|d|gWqtk rk}zt|WYdd}~XqXn]y)|j|j||d|g|Wn1tk r}zt|WYdd}~XnXdS)z:Compiles the source by spawning GCC and windres if needed.z.rcz.resZwindresz-iz-oN)Zspawnr r r )r/objsrcextZcc_argsextra_postargsZpp_optsmsgrrr_compiles " zCygwinCCompiler._compileNcCstj| pg} tj|p$g}tj|p9g}|j|j|dk r||jksy|jdkrtjj|d}tjjtjj |\}}tjj ||d}tjj |d|d}dtjj |dg}x|D]}|j |q W|j t ||fd ||jd krx| jd |g| jd |gn |j || s| j d tj||||||||d| | | | | dS)zLink the objects.Nrrz.deflibz.az LIBRARY %sZEXPORTSz writing %srz --output-libz--defz-s)copyextendr.Z EXECUTABLEr,ospathdirnamesplitextbasenamejoinappendZexecuterrlink)r/Z target_descZobjectsZoutput_filename output_dirZ librariesZ library_dirsZruntime_library_dirsZexport_symbolsdebugZ extra_preargsr7Z build_tempZ target_langZtemp_dirZdll_nameZ dll_extensionZdef_fileZlib_filecontentsZsymrrrrDs:          zCygwinCCompiler.linkcCs|dkrd}g}x|D]}tjjtjj|\}}||jddgkrxtd||f|rtjj|}|dkr|jtjj||||j q|jtjj|||j qW|S)z#Adds supports for rc and res files.NrH.rc.resz"unknown file type '%s' (from '%s'))rJrI) r=r>r@normcaseZsrc_extensionsr rArCrB obj_extension)r/Zsource_filenamesZ strip_dirrEZ obj_namesZsrc_namebaser6rrrobject_filenamess   $ z CygwinCCompiler.object_filenames)__name__ __module__ __qualname____doc__r+rLZstatic_lib_extensionZshared_lib_extensionZstatic_lib_formatZshared_lib_formatZ exe_extensionr$r9rDrNrrrrrYs ;   Krc@s1eZdZdZdZdddddZdS)Mingw32CCompilerz@ Handles the Mingw32 port of the GNU C compiler to Windows. Zmingw32rcCstj|||||jdkr.d}nd}|jdkrLd}nd}trgtd|jdd d d d d dddd|j||fg|_t |_dS)Nz2.13z-sharedz -mdll -staticz2.91.57z--entry _DllMain@12rHz1Cygwin gcc cannot be used with --compiler=mingw32rz gcc -O -Wallr zgcc -mdll -O -Wallr!z g++ -O -Wallr"rr#z%s %s %s) rr$r*r) is_cygwingccr r-r,r.r)r/r0r1r2r3Z entry_pointrrrr$s&       zMingw32CCompiler.__init__N)rOrPrQrRr+r$rrrrrSs rSokznot okZ uncertaincCsddlm}dtjkr)tdfS|j}yPt|}z2d|jkrgtd|fStd|fSWd|j XWn<t k r}zt d ||j ffSWYdd}~XnXdS) awCheck if the current Python installation appears amenable to building extensions with GCC. Returns a tuple (status, details), where 'status' is one of the following constants: - CONFIG_H_OK: all is well, go ahead and compile - CONFIG_H_NOTOK: doesn't look good - CONFIG_H_UNCERTAIN: not sure -- unable to read pyconfig.h 'details' is a human-readable string explaining the situation. Note there are two ways to conclude "OK": either 'sys.version' contains the string "GCC" (implying that this Python was built with GCC), or the installed "pyconfig.h" contains the string "__GNUC__". r) sysconfigZGCCzsys.version mentions 'GCC'Z__GNUC__z'%s' mentions '__GNUC__'z '%s' does not mention '__GNUC__'Nzcouldn't read '%s': %s) distutilsrVrrr&get_config_h_filenameopenreadCONFIG_H_NOTOKcloseOSErrorCONFIG_H_UNCERTAINstrerror)rVfnconfig_hexcrrrr%Hs   r%s(\d+\.\d+(\.\d+)*)c Cs|jd}t|dkr&dSt|dddtj}z|j}Wd|jXtj|}|dkr~dSt |j dj S)zFind the version of an executable by running `cmd` in the shell. If the command is not found, or the output does not match `RE_VERSION`, returns None. rNshellTstdoutr) splitrrrrdrZr\ RE_VERSIONsearchrgroupdecode)cmd executableout out_stringresultrrr_find_exe_versionus  rocCs&dddg}tdd|DS)zg Try to find out the versions of gcc, ld and dllwrap. If not possible it returns None for it. zgcc -dumpversionzld -vzdllwrap --versioncSsg|]}t|qSr)ro).0rjrrr s z get_versions..)tuple)Zcommandsrrrr(sr(cCs%tddg}|jjdS)z>Try to determine if the gcc that would be used is from cygwin.rz -dumpmachinescygwin)rstripendswith)rmrrrrTsrT)'rRr=rr; subprocessrrrreZdistutils.ccompilerrrZdistutils.unixccompilerrZdistutils.file_utilrZdistutils.errorsr r r r rWr Zdistutils.versionrZdistutils.spawnrrrrSr&r[r^r%compilerfror(rTrrrrs.)    " 1 +  PK!HxY$jj%__pycache__/dist.cpython-35.opt-2.pycnu[ ]> @sddlZddlZddlZddlmZyddlZWnek r^dZYnXddlTddlm Z m Z ddl m Z m Z mZddlmZddlmZejdZGd d d ZGd d d Zd dZdS)N)message_from_file)*) FancyGetopttranslate_longopt) check_environ strtobool rfc822_escape)log)DEBUGz^[a-zA-Z]([a-zA-Z0-9_]*)$c@seZdZd}d~dddgZdZdddddddddddddddddddddgZd=d>eDZddiZdd?d@ZdAdBZ dddCdDdEZ dFdGZ ddHdIZ dJdKZ dLdMZdNdOZdPdQZddgdRdSZdTdUZdVdWZdXdYZdZd[Zd\d]Zd^d_Zdd`daZddbdcZdddedfZejdgdhZdidjZdkdlZdmdnZ dodpZ!dqdrZ"dsdtZ#dudvZ$dwdxZ%dydzZ&d{d|Z'dS) Distributionverbosevrun verbosely (default)quietq!run quietly (turns verbosity off)dry-runndon't actually do anythinghelphshow detailed help message no-user-cfgN-ignore pydistutils.cfg in your home directoryzCommon commands: (see '--help-commands' for more) setup.py build will build the package underneath 'build/' setup.py install will install the package help-commandslist all available commandsnameprint package nameversionVprint package versionfullnameprint -authorprint the author's name author-email print the author's email address maintainerprint the maintainer's namemaintainer-email$print the maintainer's email addresscontact7print the maintainer's name if known, else the author's contact-email@print the maintainer's email address if known, else the author'surlprint the URL for this packagelicense print the license of the packagelicencealias for --license descriptionprint the package descriptionlong-description"print the long package description platformsprint the list of platforms classifiersprint the list of classifierskeywordsprint the list of keywordsprovides+print the list of packages/modules providedrequires+print the list of packages/modules required obsoletes0print the list of packages/modules made obsoletecCs g|]}t|dqS)r)r).0xrH)/opt/alt/python35/lib64/python3.5/dist.py ss zDistribution.cCsWd|_d|_d|_x!|jD]}t||dq%Wt|_x:|jjD],}d|}t||t|j|qXWi|_ d|_ d|_ d|_ i|_ g|_d|_i|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_i|_i|_|r|jd}|dk r|d=xV|jD]H\}}|j |}x*|jD]\} } d| f|| r:cSsg|]}|jqSrH)strip)rFZelmrHrHrIrJ_s z1Distribution.finalize_options..,)r>r:)rVrTrstrrrR)rrrsrrHrHrIrqUs  zDistribution.finalize_optionsc Cspddlm}ddlm}|ro|r;|j}n |j}|j||j|jdt d|r|j|j |jddt dx|j D]}t |t rt||r|} n|j|} t| dr't | jtr'|j| jt| jn|j| j|jd | jt dqWt ||jdS) Nr) gen_usage)rz Global options:rLz*Information display options (just display z!information, ignore any commands)rzOptions for '%s' command:)distutils.corerrrrrr print_help common_usageprintrrrtyperrrmrrrrrrY) rrrrrrrrrMruklassrHrHrIrbs6      zDistribution._show_helpc Csddlm}|jrD|jtdt||jdSd}i}x|jD]}d||dr:rr<r@rBrDrN)r>r:)r<r@rBrD) rrZ help_commandsprint_commandsrrYrrerrVrTr) rrrrZany_display_optionsZis_display_optionoptionrwrxrrHrHrIrs,        z#Distribution.handle_display_optionscCst|dxt|D]l}|jj|}|sB|j|}y |j}Wntk rid}YnXtd|||fqWdS)N:z(no description available)z %-*s %s)rrWrerr6AttributeError)rrrr max_lengthcmdrr6rHrHrIprint_command_lists    zDistribution.print_command_listcCsddl}|jj}i}x|D]}d||.rzdistutils.commandr)rXrrrinsert)rrZpkgsrHrHrIget_command_packagess    z!Distribution.get_command_packagescCs|jj|}|r|Sx|jD]}d||f}|}yt|tj|}Wntk rww)YnXyt||}Wn+tk rt d|||fYnX||j|<|SWt d|dS)Nz%s.%sz3invalid command '%s' (no class '%s' in module '%s')zinvalid command '%s') rWrer __import__rjr ImportErrorrVrr)rrrurZpkgname module_nameZ klass_namemodulerHrHrIrs(     zDistribution.get_command_classcCs|jj|}| r|rtr6|jd||j|}||}|j||jd|xz|jD]l\}\}}tr}|jd|||fydd|jD}Wntk rg}YnXy |j}Wntk ri}YnXyt|t } ||kr| rt |||t | nf||krG| rGt ||t |n;t ||rit |||nt d|||fWqKtk r} zt | WYdd} ~ XqKXqKWdS)Nz# setting options for '%s' command:z %s = %s (from %s)cSsg|]}t|qSrH)r)rForHrHrIrJqs z5Distribution._set_command_options..z1error in %s: command '%s' has no such option '%s')get_command_namergr rrfZboolean_optionsrrrrrRrrmrr) rrrcZ option_dict command_namersourcerZ bool_optsZneg_optZ is_stringryrHrHrIr]s>         z!Distribution._set_command_optionsrcCsddlm}t||s7|}|j|}n |j}|jsP|S|jd|_d|j|<|j||rx$|j D]}|j ||qW|S)Nr)r) rrrrrZ finalizedZinitialize_optionsrdrZget_sub_commandsreinitialize_command)rrruZreinit_subcommandsrrsubrHrHrIrs      z!Distribution.reinitialize_commandcCstj||dS)N)r )rrrylevelrHrHrIrszDistribution.announcecCs%x|jD]}|j|q WdS)N)r run_command)rrrrHrHrI run_commandsszDistribution.run_commandscCsZ|jj|rdStjd||j|}|j|jd|j|Nr?)r@NrA)rBNrC)rDNrE)(r __module__ __qualname__rrrrQrr|rgrrrrrrrqrrrrrrrrrrr INFOrrrrrrrrrrrrHrHrHrIr s      0: C [ 1 (  ! " &,)        r c@soeZdZdNZdddZddZddZddZddZd d!Z d"d#Z d$d%Z d&d'Z d(d)Z d*d+Zd,d-Zd.d/Zd0d1Zd2d3Zd4d5ZeZd6d7Zd8d9Zd:d;Zd<d=Zd>d?Zd@dAZdBdCZdDdEZdFdGZdHdIZdJdKZdLdMZ dS)OrSrrr$ author_emailr(maintainer_emailr0r2r6long_descriptionr>r:r"r, contact_emailr< download_urlr@rBrDNcCs|dk r"|jt|nd|_d|_d|_d|_d|_d|_d|_d|_ d|_ d|_ d|_ d|_ d|_d|_d|_d|_d|_dS)N) read_pkg_fileopenrrr$r r(r r0r2r6r r>r:r<rr@rBrD)rrrrHrHrIr|s&                 zDistributionMetadata.__init__cst|fdd}fdd}d}|d|_|d|_|d|_|d |_d|_|d |_d|_|d |_|d |_ d kr|d |_ n d|_ |d|_ |d|_dkr|dj d|_ |d|_|d|_|dkrx|d|_|d|_|d|_nd|_d|_d|_dS)Ncs|}|dkrdS|S)NUNKNOWNrH)rr)ryrHrI _read_fields  z7DistributionMetadata.read_pkg_file.._read_fieldcs&j|d}|gkr"dS|S)N)Zget_all)rvalues)ryrHrI _read_list$s z6DistributionMetadata.read_pkg_file.._read_listzmetadata-versionrrZsummaryr$z author-emailz home-pager2z download-urlr6r>rplatformZ classifierz1.1rBr@rD)rrrr6r$r(r r r0r2rr rr>r:r<rBr@rD)rrfilerrZmetadata_versionrH)ryrIrs:          z"DistributionMetadata.read_pkg_filec Cs?ttjj|dddd}|j|WdQRXdS)NzPKG-INFOwencodingzUTF-8)rrrrwrite_pkg_file)rrbase_dirZpkg_inforHrHrIwrite_pkg_infoNs z#DistributionMetadata.write_pkg_infocCsd}|js3|js3|js3|js3|jr9d}|jd||jd|j|jd|j|jd|j|jd|j |jd|j |jd |j |jd |j |jr|jd |jt |j}|jd |d j|j}|rW|jd||j|d|j|j|d|j|j|d|j|j|d|j|j|d|jdS)Nz1.0z1.1zMetadata-Version: %s z Name: %s z Version: %s z Summary: %s zHome-page: %s z Author: %s zAuthor-email: %s z License: %s zDownload-URL: %s zDescription: %s rz Keywords: %s ZPlatformZ ClassifierZRequiresZProvidesZ Obsoletes)r@rBrDr<rrlget_name get_versionget_descriptionget_url get_contactget_contact_email get_licenserget_long_descriptionr get_keywords _write_list get_platformsget_classifiers get_requires get_provides get_obsoletes)rrrrZ long_descr>rHrHrIrUs0 z#DistributionMetadata.write_pkg_filecCs,x%|D]}|jd||fqWdS)Nz%s: %s )rl)rrrrrrrHrHrIr%ws z DistributionMetadata._write_listcCs |jp dS)Nr)r)rrrHrHrIr}szDistributionMetadata.get_namecCs |jp dS)Nz0.0.0)r)rrrHrHrIrsz DistributionMetadata.get_versioncCsd|j|jfS)Nz%s-%s)rr)rrrHrHrI get_fullnamesz!DistributionMetadata.get_fullnamecCs |jp dS)Nr)r$)rrrHrHrI get_authorszDistributionMetadata.get_authorcCs |jp dS)Nr)r )rrrHrHrIget_author_emailsz%DistributionMetadata.get_author_emailcCs |jp dS)Nr)r()rrrHrHrIget_maintainersz#DistributionMetadata.get_maintainercCs |jp dS)Nr)r )rrrHrHrIget_maintainer_emailsz)DistributionMetadata.get_maintainer_emailcCs|jp|jpdS)Nr)r(r$)rrrHrHrIr sz DistributionMetadata.get_contactcCs|jp|jpdS)Nr)r r )rrrHrHrIr!sz&DistributionMetadata.get_contact_emailcCs |jp dS)Nr)r0)rrrHrHrIrszDistributionMetadata.get_urlcCs |jp dS)Nr)r2)rrrHrHrIr"sz DistributionMetadata.get_licensecCs |jp dS)Nr)r6)rrrHrHrIrsz$DistributionMetadata.get_descriptioncCs |jp dS)Nr)r )rrrHrHrIr#sz)DistributionMetadata.get_long_descriptioncCs |jp gS)N)r>)rrrHrHrIr$sz!DistributionMetadata.get_keywordscCs|jpdgS)Nr)r:)rrrHrHrIr&sz"DistributionMetadata.get_platformscCs |jp gS)N)r<)rrrHrHrIr'sz$DistributionMetadata.get_classifierscCs |jp dS)Nr)r)rrrHrHrIget_download_urlsz%DistributionMetadata.get_download_urlcCs |jp gS)N)rB)rrrHrHrIr(sz!DistributionMetadata.get_requirescCs:ddl}x|D]}|jj|qW||_dS)Nr)distutils.versionpredicateversionpredicateVersionPredicaterB)rrrrr rHrHrI set_requiress  z!DistributionMetadata.set_requirescCs |jp gS)N)r@)rrrHrHrIr)sz!DistributionMetadata.get_providescCsMdd|D}x*|D]"}ddl}|jj|qW||_dS)NcSsg|]}|jqSrH)r)rFr rHrHrIrJs z5DistributionMetadata.set_provides..r)r1r2Zsplit_provisionr@)rrrr rrHrHrI set_providess   z!DistributionMetadata.set_providescCs |jp gS)N)rD)rrrHrHrIr*sz"DistributionMetadata.get_obsoletescCs:ddl}x|D]}|jj|qW||_dS)Nr)r1r2r3rD)rrrrr rHrHrI set_obsoletess  z"DistributionMetadata.set_obsoletes)rrr$r r(r r0r2r6r r>r:r"r,r r2r<rr@rBrD)!rrrrUr|rrrr%rrr+r,r-r.r/r r!rr"Z get_licencerr#r$r&r'r0r(r4r)r5r*r6rHrHrHrIrSsH  4  "                       rScCs2g}x%|D]}|j|ddq W|S)Nr)r)rMZ new_optionsZ help_tuplerHrHrIrs r)rjrreZemailrrhrZdistutils.errorsZdistutils.fancy_getoptrrZdistutils.utilrrrrr Zdistutils.debugr compilerr rSrrHrHrHrIs&      PK!WJJ(__pycache__/msvc9compiler.cpython-35.pycnu[ Yfw@sdZddlZddlZddlZddlZddlmZmZmZm Z m Z ddl m Z m Z mZddlmZddlmZddlZejZejZejZejZejejejejfZ ej!dkoej"d'kZ#e#r!d Z$d Z%d Z&nd Z$dZ%dZ&ddddddiZ'GdddZ(GdddZ)ddZ*ddZ+ddZ,dd Z-dd!d"Z.e*Z/e/d#kred$e/Gd%d&d&e Z0dS)(a distutils.msvc9compiler Contains MSVCCompiler, an implementation of the abstract CCompiler class for the Microsoft Visual Studio 2008. The module is compatible with VS 2005 and VS 2008. You can find legacy support for older versions of VS in distutils.msvccompiler. N)DistutilsExecErrorDistutilsPlatformError CompileErrorLibError LinkError) CCompilergen_preprocess_optionsgen_lib_options)log) get_platformwin32 z1Software\Wow6432Node\Microsoft\VisualStudio\%0.1fz5Software\Wow6432Node\Microsoft\Microsoft SDKs\Windowsz,Software\Wow6432Node\Microsoft\.NETFrameworkz%Software\Microsoft\VisualStudio\%0.1fz)Software\Microsoft\Microsoft SDKs\Windowsz Software\Microsoft\.NETFrameworkx86z win-amd64amd64zwin-ia64Zia64c@sveZdZdZddZeeZddZeeZddZeeZdd Ze eZd S) Regz2Helper class to read values from the registry cCsMx:tD]2}|j||}|r||kr||SqWt|dS)N)HKEYS read_valuesKeyError)clspathkeybasedrz$(FrameworkVersion)) r@r;NET_BASErr WINSDK_BASErrrr rrr9)r=r>prhrrrrrr<s.       zMacroExpander.load_macroscCs6x/|jjD]\}}|j||}qW|S)N)r9itemsreplace)r=r1r%vrrrsubszMacroExpander.subN)r2r3r4r?r@r<rIrrrrr8{s    r8cCsd}tjj|}|d kr(dS|t|}tj|djdd\}}t|dd d}|dkr|d7}t|ddd }|dkrd }|dkr||SdS) zReturn the version of MSVC that was used to build Python. For Python 2.3 and up, the version number is included in sys.version. For earlier versions, assume the compiler is MSVC 6. zMSC v.rN r g$@r)sysr>findlensplitint)prefixr$r1restZ majorVersionZ minorVersionrrrget_build_versions %    rWcCsFg}x9|D]1}tjj|}||kr |j|q W|S)znReturn a list of normalized paths with duplicates removed. The current order of paths is maintained. )osrnormpathr!)pathsZ reduced_pathsrDZnprrrnormalize_and_reduce_pathss   r[cCsX|jtj}g}x'|D]}||kr|j|qWtjj|}|S)z8Remove duplicate values of an environment variable. )rSrXpathsepr!join)ZvariableZoldListZnewListr$Z newVariablerrrremoveDuplicatess  r^c Cs^t|}ytjd|d}Wn%tk rKtjdd}YnX| sftjj| r d|}tj j |d}|rtjj|rtjj |tj tj d}tjj |}tjj|s tjd|dSntjd||s"tjd dStjj |d }tjj|rM|Stjd dS) zFind the vcvarsall.bat file At first it tries to find the productdir of VS 2008 in the registry. If that fails it falls back to the VS90COMNTOOLS env var. z %s\Setup\VCrAz%Unable to find productdir in registryNzVS%0.f0COMNTOOLSZVCz%s is not a valid directoryz Env var %s is not set or invalidzNo productdir foundz vcvarsall.batzUnable to find vcvarsall.bat)r:rrrr debugrXrisdirenvirongetr]pardirabspathisfile)r>r;rAZtoolskeyZtoolsdir vcvarsallrrrfind_vcvarsalls2       !  rgc Cst|}td}i}|dkr6tdtjd||tjd||fd tjd tj}z|j\}}|j d krt|j d |j d }x|j d D]}t j |}d|krq|j}|j dd\} } | j} | |kr| jtjrQ| dd} t| || ZarchrfZ interestingresultpopenrkrllinerr+rrrquery_vcvarsalls<           r~g @z(VC %0.1f is not supported by this modulec @seZdZdZdZiZdgZdddgZdgZdgZ eeee Z d Z d Z d Z d Zd ZZdZdddddZdddZddddZdddddddddZdddddZdddddddddddd ZddZd d!Zd"d#Zd$d%Zd&d'Zd(d)Zdd*d+Zd,d-ZdS). MSVCCompilerzwConcrete class that implements an interface to Microsoft Visual C++, as defined by the CCompiler abstract class.Zmsvcz.cz.ccz.cppz.cxxz.rcz.mcz.resz.objz.libz.dllz%s%sz.exercCsPtj||||t|_d|_g|_d|_d|_d|_dS)NzSoftware\Microsoft\VisualStudioF) rr?VERSION_MSVCCompiler__versionZ_MSVCCompiler__root_MSVCCompiler__paths plat_name_MSVCCompiler__arch initialized)r=verboseZdry_runZforcerrrr?Js     zMSVCCompiler.__init__NcCs|j std|dkr+t}d%}||krPtd|fdtjkrdtjkr|jdrd|_d |_d |_ d |_ d |_ n |tks|dkrt |}nt td t |}t t|}|djtj|_|dtjd<|dtjd|)rz*\s*zI|)w) openreadrvrerDOTALLrIsearchwriteOSError)r=Z manifest_fileZ manifest_fZ manifest_bufpatternrrrrs.      z!MSVCCompiler._remove_visual_c_refcCsd|S)Nz /LIBPATH:r)r=dirrrrlibrary_dir_optionszMSVCCompiler.library_dir_optioncCstddS)NzsN    (        >.   #)  PK!F11.__pycache__/_msvccompiler.cpython-35.opt-2.pycnu[ ]O@s$ddlZddlZddlZddlZddlmZmZmZmZm Z ddl m Z m Z ddl mZddlmZddlZddlmZddZd d Zdd d Zd dddiZddddddiZedgZGddde ZdS)N)DistutilsExecErrorDistutilsPlatformError CompileErrorLibError LinkError) CCompilergen_lib_options)log) get_platform)countc $Csy)tjtjddtjtjB}Wn#tk rNtjdd SYnX|d}d}xtD]}ytj ||\}}}Wntk rPYnX|rl|tj krlt j j |rlytt|}Wnttfk rwlYnX|dkrl||krl||}}qlW|sBtjdd St j j|d} t j j| s}tjd| d Sd} tj|} | rt j j|| j|} t j j| stjd| d} | | fSWdQRXdS) Nz'Software\Microsoft\VisualStudio\SxS\VC7accesszVisual C++ is not registeredrz$No suitable Visual C++ version foundz vcvarsall.batz%s cannot be found)NN)NN)NN)winregZ OpenKeyExHKEY_LOCAL_MACHINEZKEY_READZKEY_WOW64_32KEYOSErrorr debugr Z EnumValueZREG_SZospathisdirintfloat ValueError TypeErrorjoinisfile _VCVARS_PLAT_TO_VCRUNTIME_REDISTgetformat) plat_speckeyZ best_versionZbest_dirivZvc_dirZvtversion vcvarsall vcruntimeZvcruntime_specr%2/opt/alt/python35/lib64/python3.5/_msvccompiler.py_find_vcvarsallsN    '  r'cCstjdr)ddtjjDSt|\}}|sMtdy7tjdj||dtj j ddd }WnPtj k r}z-t j |jtd j|jWYdd}~XnXd dd d |jDD}|r ||d<|S)NZDISTUTILS_USE_SDKcSs%i|]\}}||jqSr%)lower).0rvaluer%r%r& Ns z_get_vc_env..zUnable to find vcvarsall.batzcmd /u /c "{}" {} && setstderrzutf-16leerrorsreplacezError executing {}cSs4i|]*\}}}|r|r||jqSr%)r()r)r_r*r%r%r&r+as  css|]}|jdVqdS)=N) partition)r)liner%r%r& dsz_get_vc_env..py_vcruntime_redist)rgetenvenvironitemsr'r subprocess check_outputrSTDOUTdecodeCalledProcessErrorr erroroutputcmd splitlines)rr#r$outexcenvr%r%r& _get_vc_envLs(    "  rDcCsm|s!tjdjtj}xE|D]=}tjjtjj||}tjj|r(|Sq(W|S)Nr)rr5splitpathseprrabspathr)Zexepathspfnr%r%r& _find_exels  !rKwin32Zx86z win-amd64Z x86_amd64z1redist\x86\Microsoft.VC{0}0.CRT\vcruntime{0}0.dllamd64z1redist\x64\Microsoft.VC{0}0.CRT\vcruntime{0}0.dllzvcruntime140.dllc sgeZdZdZiZdgZdddgZdgZdgZeeeeZ dZ d Z d Z d Z d ZZd ZdddddZdddZddddZdddddddddZdddddZdddddddddddd ZddZfdd Zd!d"Zd#d$Zd%d&Zdd'd(ZS)) MSVCCompilerZmsvcz.cz.ccz.cppz.cxxz.rcz.mcz.resz.objz.libz.dllz%s%sz.exercCs,tj||||d|_d|_dS)NF)r__init__ plat_name initialized)selfverbosedry_runforcer%r%r&rOs zMSVCCompiler.__init__NcCs%|dkrt}|tkr<tdjttt|}t|}|sdtd|jdd|_|jjt j }t d||_ t d||_ t d||_t d||_t d ||_t d ||_|jd d|_x9|jd djt j D]}|r.|j|q.Wx9|jd djt j D]}|rj|j|qjWd|_dddddg|_|jj|jrdndddddddg|_dddg}|js|jd$ddddg}|d%|_|d&|_|d'|_|d(|_||_||_t j!df|jt j!d"f|jt j!d#f|jt j"df|jt j"d"f|jt j"d#f|jt j#df|jt j#d"f|jt j#d#f|ji |_$d#|_%dS))Nz--plat-name must be one of {}z7Unable to find a compatible Visual Studio installation.rzcl.exezlink.exezlib.exezrc.exezmc.exezmt.exer4includelibz/nologoz/Oxz/W3z/GLz/DNDEBUGz/MDz/MTz/Odz/MDdz/Ziz/D_DEBUGz/INCREMENTAL:NOz/LTCG/nodefaultlib:libucrt.libucrt.libz /DEBUG:FULL/MANIFEST:EMBED,ID=1/DLL/MANIFEST:EMBED,ID=2/MANIFESTUAC:NOFT)rYrZ)r[)r[)r\r]r^)r\r]r^)&r PLAT_TO_VCVARSrrtuplerDr_pathsrErrFrKcclinkerrXrcmcmt_vcruntime_redistZadd_include_dirZadd_library_dirZpreprocess_optionscompile_optionsappendcompile_options_debugextendZ ldflags_exeZldflags_exe_debugZldflags_sharedZldflags_shared_debugZldflags_staticZldflags_static_debugrZ EXECUTABLEZ SHARED_OBJECTZSHARED_LIBRARY_ldflagsrQ)rRrPrZvc_envrHdirldflagsZ ldflags_debugr%r%r& initializes`       %%     zMSVCCompiler.initializerVcsvfddjDfddjjDpHdfdd}tt||S)Ncsi|]}j|qSr%) obj_extension)r)ext)rRr%r&r+s z1MSVCCompiler.object_filenames..csi|]}j|qSr%) res_extension)r)rq)rRr%r&r+s rVc stjj|\}}r3tjj|}nItjj|\}}|jtjjtjjfr||dd}ytjj||SWn't k rt dj |YnXdS)NzDon't know how to compile {}) rrsplitextbasename splitdrive startswithsepaltsepr LookupErrorrr)rIbaserqr/)ext_map output_dir strip_dirr%r& make_out_paths! z4MSVCCompiler.object_filenames..make_out_path)src_extensions_rc_extensions_mc_extensionslistmap)rRZsource_filenamesr~r}rr%)r|r}rRr~r&object_filenames s & zMSVCCompiler.object_filenamesc Cs?|js|j|j||||||} | \}} }} } |pOg} | jd|rx| j|jn| j|jd}x| D]}y| |\}}Wntk rwYnX|rtj j |}||j krd|}n||j krd|}d}n||j kr|}d|}y%|j|jg| ||gWqtk r}zt|WYdd}~XqXqn||jkrtj j|}tj j|}y|j|jd|d||gtj jtj j|\}}tj j||d }|j|jd||gWqtk r}zt|WYdd}~XqXqntd j|||jg| | }|r|jd |j||jd ||j|y|j|Wqtk r6}zt|WYdd}~XqXqW| S) Nz/cFz/Tcz/TpTz/foz-hz-rz.rcz"Don't know how to compile {} to {}z/EHscz/Fo)rQroZ_setup_compilerirkrjrhKeyErrorrrrG _c_extensions_cpp_extensionsrspawnrdrrrdirnamerertrurrrb)rRZsourcesr}ZmacrosZ include_dirsr extra_preargsextra_postargsZdependsZ compile_infoobjectsZpp_optsZbuildZ compile_optsZ add_cpp_optsobjsrcrqZ input_optZ output_optmsgZh_dirZrc_dirr{r/Zrc_fileargsr%r%r&compile+sn          % "$!    #zMSVCCompiler.compilec Cs|js|j|j||\}}|j|d|}|j||r|d|g}|riy:tjd|jdj||j |jg|Wqt k r}zt |WYdd}~XqXntjd|dS)Nr}z/OUT:zExecuting "%s" %s zskipping %s (up-to-date)) rQro_fix_object_argslibrary_filename _need_linkr rrXrrrr) rRrZoutput_libnamer}r target_langoutput_filenameZlib_argsrr%r%r&create_static_libs    "zMSVCCompiler.create_static_libcCsX|js|j|j||\}}|j|||}|\}}}|rl|jdt|t||||}|dk rtjj ||}|j ||rD|j || f}dd|pgD}||||d|g}tjj |d} |dk rrtjj tjj|\}}tjj | |j|}|jd|| r| |dd<| r|j| tjj tjj|}|j|yGtjd|jdj ||j|jg||j|WqTtk r@}zt|WYdd}~XqTXntjd |dS) Nz5I don't know what to do with 'runtime_library_dirs': cSsg|]}d|qS)z/EXPORT:r%)r)Zsymr%r%r& s z%MSVCCompiler.link..z/OUT:rz/IMPLIB:zExecuting "%s" %srzskipping %s (up-to-date))rQrorZ _fix_lib_argswarnstrrrrrrrlrrtrurrirkrGZmkpathr rrcr_copy_vcruntimerr)rRZ target_descrrr}Z librariesZ library_dirsZruntime_library_dirsZexport_symbolsrrrZ build_temprZ fixed_argsZlib_optsrnZ export_optsZld_argsZdll_nameZdll_extZ implib_filerr%r%r&linksN            "zMSVCCompiler.linkcCs|j}| s#tjj| r'dStjj|jtkrIdStjd|t j ||}tj |t j dS)Nz Copying "%s")rgrrrrur( _BUNDLED_DLLSr rshutilcopychmodstatS_IWRITE)rRr}r$r%r%r&rs zMSVCCompiler._copy_vcruntimec sHtjd}z$|jtjds&    (  .   PK!o哠JJ.__pycache__/msvc9compiler.cpython-35.opt-1.pycnu[ Yfw@sdZddlZddlZddlZddlZddlmZmZmZm Z m Z ddl m Z m Z mZddlmZddlmZddlZejZejZejZejZejejejejfZ ej!dkoej"d'kZ#e#r!d Z$d Z%d Z&nd Z$dZ%dZ&ddddddiZ'GdddZ(GdddZ)ddZ*ddZ+ddZ,dd Z-dd!d"Z.e*Z/e/d#kred$e/Gd%d&d&e Z0dS)(a distutils.msvc9compiler Contains MSVCCompiler, an implementation of the abstract CCompiler class for the Microsoft Visual Studio 2008. The module is compatible with VS 2005 and VS 2008. You can find legacy support for older versions of VS in distutils.msvccompiler. N)DistutilsExecErrorDistutilsPlatformError CompileErrorLibError LinkError) CCompilergen_preprocess_optionsgen_lib_options)log) get_platformwin32 z1Software\Wow6432Node\Microsoft\VisualStudio\%0.1fz5Software\Wow6432Node\Microsoft\Microsoft SDKs\Windowsz,Software\Wow6432Node\Microsoft\.NETFrameworkz%Software\Microsoft\VisualStudio\%0.1fz)Software\Microsoft\Microsoft SDKs\Windowsz Software\Microsoft\.NETFrameworkx86z win-amd64amd64zwin-ia64Zia64c@sveZdZdZddZeeZddZeeZddZeeZdd Ze eZd S) Regz2Helper class to read values from the registry cCsMx:tD]2}|j||}|r||kr||SqWt|dS)N)HKEYS read_valuesKeyError)clspathkeybasedrz$(FrameworkVersion)) r@r;NET_BASErr WINSDK_BASErrrr rrr9)r=r>prhrrrrrr<s.       zMacroExpander.load_macroscCs6x/|jjD]\}}|j||}qW|S)N)r9itemsreplace)r=r1r%vrrrsubszMacroExpander.subN)r2r3r4r?r@r<rIrrrrr8{s    r8cCsd}tjj|}|d kr(dS|t|}tj|djdd\}}t|dd d}|dkr|d7}t|ddd }|dkrd }|dkr||SdS) zReturn the version of MSVC that was used to build Python. For Python 2.3 and up, the version number is included in sys.version. For earlier versions, assume the compiler is MSVC 6. zMSC v.rN r g$@r)sysr>findlensplitint)prefixr$r1restZ majorVersionZ minorVersionrrrget_build_versions %    rWcCsFg}x9|D]1}tjj|}||kr |j|q W|S)znReturn a list of normalized paths with duplicates removed. The current order of paths is maintained. )osrnormpathr!)pathsZ reduced_pathsrDZnprrrnormalize_and_reduce_pathss   r[cCsX|jtj}g}x'|D]}||kr|j|qWtjj|}|S)z8Remove duplicate values of an environment variable. )rSrXpathsepr!join)ZvariableZoldListZnewListr$Z newVariablerrrremoveDuplicatess  r^c Cs^t|}ytjd|d}Wn%tk rKtjdd}YnX| sftjj| r d|}tj j |d}|rtjj|rtjj |tj tj d}tjj |}tjj|s tjd|dSntjd||s"tjd dStjj |d }tjj|rM|Stjd dS) zFind the vcvarsall.bat file At first it tries to find the productdir of VS 2008 in the registry. If that fails it falls back to the VS90COMNTOOLS env var. z %s\Setup\VCrAz%Unable to find productdir in registryNzVS%0.f0COMNTOOLSZVCz%s is not a valid directoryz Env var %s is not set or invalidzNo productdir foundz vcvarsall.batzUnable to find vcvarsall.bat)r:rrrr debugrXrisdirenvirongetr]pardirabspathisfile)r>r;rAZtoolskeyZtoolsdir vcvarsallrrrfind_vcvarsalls2       !  rgc Cst|}td}i}|dkr6tdtjd||tjd||fd tjd tj}z|j\}}|j d krt|j d |j d }x|j d D]}t j |}d|krq|j}|j dd\} } | j} | |kr| jtjrQ| dd} t| || ZarchrfZ interestingresultpopenrkrllinerr+rrrquery_vcvarsalls<           r~g @z(VC %0.1f is not supported by this modulec @seZdZdZdZiZdgZdddgZdgZdgZ eeee Z d Z d Z d Z d Zd ZZdZdddddZdddZddddZdddddddddZdddddZdddddddddddd ZddZd d!Zd"d#Zd$d%Zd&d'Zd(d)Zdd*d+Zd,d-ZdS). MSVCCompilerzwConcrete class that implements an interface to Microsoft Visual C++, as defined by the CCompiler abstract class.Zmsvcz.cz.ccz.cppz.cxxz.rcz.mcz.resz.objz.libz.dllz%s%sz.exercCsPtj||||t|_d|_g|_d|_d|_d|_dS)NzSoftware\Microsoft\VisualStudioF) rr?VERSION_MSVCCompiler__versionZ_MSVCCompiler__root_MSVCCompiler__paths plat_name_MSVCCompiler__arch initialized)r=verboseZdry_runZforcerrrr?Js     zMSVCCompiler.__init__NcCs|dkrt}d$}||kr:td|fdtjkrdtjkr|jdrd|_d|_d |_d |_d |_ n |tks|dkrt |}nt td t |}t t |}|d j tj|_|dtjd<|dtjd|)rz*\s*zI|)w) openreadrvrerDOTALLrIsearchwriteOSError)r=Z manifest_fileZ manifest_fZ manifest_bufpatternrrrrs.      z!MSVCCompiler._remove_visual_c_refcCsd|S)Nz /LIBPATH:r)r=dirrrrlibrary_dir_optionszMSVCCompiler.library_dir_optioncCstddS)NzsN    (        >.   #)  PK!233)__pycache__/dir_util.cpython-35.opt-1.pycnu[ Yfb@sdZddlZddlZddlmZmZddlmZiadddddZ dddd d Z ddddddd d Z d dZ ddddZ ddZdS)zWdistutils.dir_util Utility functions for manipulating directories and directory trees.N)DistutilsFileErrorDistutilsInternalError)logic Cst|ts"td|ftjj|}g}tjj|sX|dkr\|Stjtjj |r{|Stjj |\}}|g}xK|r|rtjj| rtjj |\}}|j d|qWx|D]}tjj ||}tjj |} tj| r0q|dkrLt jd||sytj||Wnftk r} zF| jtjkotjj|std|| jdfWYdd} ~ XnX|j|dt|  "  $- r$cCsvt}x6|D].}|jtjj|tjj|qWx-t|D]}t||d|d|qOWdS)aCreate all the empty directories under 'base_dir' needed to put 'files' there. 'base_dir' is just the name of a directory which doesn't necessarily exist yet; 'files' is a list of filenames to be interpreted relative to 'base_dir'. 'base_dir' + the directory portion of every file in 'files' will be created if it doesn't already exist. 'mode', 'verbose' and 'dry_run' flags are as for 'mkpath()'. rrN)setaddr r rdirnamesortedr$)Zbase_dirfilesrrrZneed_dirfiledirr"r"r# create_treePs  ,r,cCsddlm}| r:tjj| r:td|ytj|} WnMtk r} z-|rqg} ntd|| jfWYdd} ~ XnX|st |d|g} x(| D] } tjj || } tjj || }| j drq|rntjj | rntj | }|dkrHtjd |||s^tj||| j|qtjj| r| jt| |||||d|d |q|| ||||d|d || j|qW| S) aCopy an entire directory tree 'src' to a new location 'dst'. Both 'src' and 'dst' must be directory names. If 'src' is not a directory, raise DistutilsFileError. If 'dst' does not exist, it is created with 'mkpath()'. The end result of the copy is that every file in 'src' is copied to 'dst', and directories under 'src' are recursively copied to 'dst'. Return the list of files that were copied or might have been copied, using their output name. The return value is unaffected by 'update' or 'dry_run': it is simply the list of all files under 'src', with the names changed to be under 'dst'. 'preserve_mode' and 'preserve_times' are the same as for 'copy_file'; note that they only apply to regular files, not to directories. If 'preserve_symlinks' is true, symlinks will be copied as symlinks (on platforms that support them!); otherwise (the default), the destination of the symlink will be copied. 'update' and 'verbose' are the same as for 'copy_file'. r) copy_filez&cannot copy tree '%s': not a directoryzerror listing files in '%s': %sNrz.nfsrzlinking %s -> %sr)Zdistutils.file_utilr-r r r rlistdirrstrerrorr$r startswithislinkreadlinkrrsymlinkrextend copy_tree)srcZdstZ preserve_modeZpreserve_timesZpreserve_symlinksupdaterrr-nameseZoutputsnZsrc_nameZdst_nameZ link_destr"r"r#r5csH  )     r5cCsxwtj|D]f}tjj||}tjj|r`tjj| r`t||q|jtj|fqW|jtj |fdS)zHelper for remove_tree().N) r r.r rr r1_build_cmdtuplerremovermdir)r cmdtuplesfZreal_fr"r"r#r;s %r;cCs|dkrtjd||r&dSg}t||x|D]}y?|d|dtjj|d}|tkrt|=Wq@tk r}ztjd||WYdd}~Xq@Xq@WdS)zRecursively remove an entire directory tree. Any errors are ignored (apart from being reported to stdout if 'verbose' is true). rz'removing '%s' (and everything under it)Nrzerror removing %s: %s) rrr;r r rrrwarn)Z directoryrrr>cmdrr!r"r"r# remove_trees     rBcCsItjj|\}}|ddtjkrE||dd}|S)zTake the full path 'path', and make it a relative path. This is useful to make 'path' the second argument to os.path.join(). rrN)r r splitdrivesep)r Zdriver"r"r#ensure_relativesrE)__doc__r rZdistutils.errorsrrZ distutilsrrr$r,r5r;rBrEr"r"r"r#s  ?D PK!n% % )__pycache__/dep_util.cpython-35.opt-1.pycnu[ Yf @sMdZddlZddlmZddZddZdd d ZdS) zdistutils.dep_util Utility functions for simple, timestamp-based dependency of files and groups of files; also, function based entirely on such timestamp dependency analysis.N)DistutilsFileErrorcCstjj|s.tdtjj|tjj|sDdSddlm}tj||}tj||}||kS)aReturn true if 'source' exists and is more recently modified than 'target', or if 'source' exists and 'target' doesn't. Return false if both exist and 'target' is the same age or younger than 'source'. Raise DistutilsFileError if 'source' does not exist. zfile '%s' does not existr)ST_MTIME)ospathexistsrabspathstatr)sourcetargetrZmtime1Zmtime2r 7/opt/alt/python35/lib64/python3.5/distutils/dep_util.pynewer srcCst|t|kr$tdg}g}xStt|D]?}t||||rC|j|||j||qCW||fS)zWalk two filename lists in parallel, testing if each source is newer than its corresponding target. Return a pair of lists (sources, targets) where source is newer than target, according to the semantics of 'newer()'. z+'sources' and 'targets' must be same length)len ValueErrorrangerappend)sourcesZtargetsZ n_sourcesZ n_targetsir r r newer_pairwise s rerrorcCstjj|sdSddlm}tj||}xx|D]l}tjj|s|dkrgn"|dkryq@n|dkrdStj||}||kr@dSq@WdSdS)aReturn true if 'target' is out-of-date with respect to any file listed in 'sources'. In other words, if 'target' exists and is newer than every file in 'sources', return false; otherwise return true. 'missing' controls what we do when a source file is missing; the default ("error") is to blow up with an OSError from inside 'stat()'; if it is "ignore", we silently drop any missing source files; if it is "newer", any missing source files make us assume that 'target' is out-of-date (this is handy in "dry-run" mode: it'll make you pretend to carry out commands that wouldn't work because inputs are missing, but that doesn't matter because you're not actually going to run the commands). rr)rrignorerN)rrrr r)rr ZmissingrZ target_mtimer source_mtimer r r newer_group6s      r)__doc__rZdistutils.errorsrrrrr r r r s    PK!MZuu)__pycache__/dep_util.cpython-35.opt-2.pycnu[ ] @sGddlZddlmZddZddZddd ZdS) N)DistutilsFileErrorcCstjj|s.tdtjj|tjj|sDdSddlm}tj||}tj||}||kS)Nzfile '%s' does not existr)ST_MTIME)ospathexistsrabspathstatr)sourcetargetrZmtime1Zmtime2r -/opt/alt/python35/lib64/python3.5/dep_util.pynewer srcCst|t|kr$tdg}g}xStt|D]?}t||||rC|j|||j||qCW||fS)Nz+'sources' and 'targets' must be same length)len ValueErrorrangerappend)sourcesZtargetsZ n_sourcesZ n_targetsir r r newer_pairwise s rerrorcCstjj|sdSddlm}tj||}xx|D]l}tjj|s|dkrgn"|dkryq@n|dkrdStj||}||kr@dSq@WdSdS)Nrr)rrignorer)rrrr r)rr missingrZ target_mtimer source_mtimer r r newer_group6s      r)rZdistutils.errorsrrrrr r r r s   PK!SW__pycache__/core.cpython-35.pycnu[ Yf"@sdZddlZddlZddlmZddlTddlmZddlm Z ddl m Z ddl m Z d Zd d Zdadad4Zd5Zd/d0Zdd1d2d3ZdS)6a#distutils.core The only module that needs to be imported to use the Distutils; provides the 'setup' function (which is to be called from the setup script). Also indirectly provides the Distribution and Command classes, although they are really defined in distutils.dist and distutils.cmd. N)DEBUG)*) Distribution)Command) PyPIRCCommand) Extensionzusage: %(script)s [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...] or: %(script)s --help [cmd1 cmd2 ...] or: %(script)s --help-commands or: %(script)s cmd --help cCstjj|}ttS)N)ospathbasenameUSAGEvars) script_nameZscriptr3/opt/alt/python35/lib64/python3.5/distutils/core.py gen_usage sr distclassr script_argsoptionsnameversionauthor author_email maintainermaintainer_emailurllicense descriptionlong_descriptionkeywords platforms classifiers download_urlrequiresprovides obsoletessources include_dirs define_macros undef_macros library_dirs librariesruntime_library_dirs extra_objectsextra_compile_argsextra_link_args swig_optsexport_symbolsdependslanguagec,Ks|jd}|r|d=nt}d|krNtjjtjd|dd|krt d|nt d |d|fWYdd}~XnXt d kr|S|j t rt d |jt d kr*|Sy|j}WnBtk r~}z"t t|jd |WYdd}~XnXt rt d|jt dkr|S|ry|jWntk rt dYntk r7}z;t rtjjd|fnt d|fWYdd}~XnMttfk r}z't r[nt dt|WYdd}~XnX|S)aThe gateway to the Distutils: do everything your setup script needs to do, in a highly flexible and user-driven way. Briefly: create a Distribution instance; find and parse config files; parse the command line; run each Distutils command found there, customized by the options supplied to 'setup()' (as keyword arguments), in config files, and on the command line. The Distribution instance might be an instance of a class supplied via the 'distclass' keyword argument to 'setup'; if no such class is supplied, then the Distribution class (in dist.py) is instantiated. All other arguments to 'setup' (except for 'cmdclass') are used to set attributes of the Distribution instance. The 'cmdclass' argument, if supplied, is a dictionary mapping command names to command classes. Each command encountered on the command line will be turned into a command class, which is in turn instantiated; any class found in 'cmdclass' is used in place of the default, which is (for command 'foo_bar') class 'foo_bar' in module 'distutils.command.foo_bar'. The command class must provide a 'user_options' attribute which is a list of option specifiers for 'distutils.fancy_getopt'. Any command-line options between the current and the next command are used to set attributes of the current command object. When the entire command-line has been successfully parsed, calls the 'run()' method on each command object in turn. This method will be driven entirely by the Distribution object (which each command object has a reference to, thanks to its constructor), and the command-specific options that became attributes of each command object. rr rrNrzerror in setup command: %szerror in %s setup command: %sinitz%options (after parsing config files):configz error: %sz%options (after parsing command line): commandlineZ interruptedz error: %s z error: %szerror: )getrrr r sysargv_setup_distributionZDistutilsSetupError SystemExit_setup_stop_afterZparse_config_filesrprintZdump_option_dictsZparse_command_lineZDistutilsArgErrorrr Z run_commandsKeyboardInterruptOSErrorstderrwriteZDistutilsErrorZCCompilerErrorstr)ZattrsklassZdistmsgokexcrrrsetup9s`%    '     0    %)rGruncCs|d krtd|f|atj}d|i}i}yvz_|tjd<|dk rr|tjd ds2      qPK!.alP**(__pycache__/version.cpython-35.opt-1.pycnu[ Yf90@sUdZddlZGdddZGdddeZGdddeZdS) aProvides classes to represent module version numbers (one class for each style of version numbering). There are currently two such classes implemented: StrictVersion and LooseVersion. Every version number class implements the following interface: * the 'parse' method takes a string and parses it to some internal representation; if the string is an invalid version number, 'parse' raises a ValueError exception * the class constructor takes an optional string argument which, if supplied, is passed to 'parse' * __str__ reconstructs the string that was passed to 'parse' (or an equivalent string -- ie. one that will generate an equivalent version number instance) * __repr__ generates Python code to recreate the version number instance * _cmp compares the current instance with either another instance of the same class or a string (which will be parsed to an instance of the same class, thus must follow the same rules) Nc@smeZdZdZdddZddZddZd d Zd d Zd dZ ddZ dS)VersionzAbstract base class for version numbering classes. Just provides constructor (__init__) and reproducer (__repr__), because those seem to be the same for all version numbering classes; and route rich comparisons to _cmp. NcCs|r|j|dS)N)parse)selfvstringr6/opt/alt/python35/lib64/python3.5/distutils/version.py__init__&szVersion.__init__cCsd|jjt|fS)Nz %s ('%s')) __class____name__str)rrrr__repr__*szVersion.__repr__cCs)|j|}|tkr|S|dkS)Nr)_cmpNotImplemented)rothercrrr__eq__-s zVersion.__eq__cCs)|j|}|tkr|S|dkS)Nr)r r)rrrrrr__lt__3s zVersion.__lt__cCs)|j|}|tkr|S|dkS)Nr)r r)rrrrrr__le__9s zVersion.__le__cCs)|j|}|tkr|S|dkS)Nr)r r)rrrrrr__gt__?s zVersion.__gt__cCs)|j|}|tkr|S|dkS)Nr)r r)rrrrrr__ge__Es zVersion.__ge__) r __module__ __qualname____doc__rr rrrrrrrrrrs      rc@sVeZdZdZejdejejBZddZ ddZ ddZ d S) StrictVersiona?Version numbering for anal retentives and software idealists. Implements the standard interface for version number classes as described above. A version number consists of two or three dot-separated numeric components, with an optional "pre-release" tag on the end. The pre-release tag consists of the letter 'a' or 'b' followed by a number. If the numeric components of two version numbers are equal, then one with a pre-release tag will always be deemed earlier (lesser) than one without. The following are valid version numbers (shown in the order that would be obtained by sorting according to the supplied cmp function): 0.4 0.4.0 (these two are equivalent) 0.4.1 0.5a1 0.5b3 0.5 0.9.6 1.0 1.0.4a3 1.0.4b1 1.0.4 The following are examples of invalid version numbers: 1 2.7.2.2 1.3.a4 1.3pl1 1.3c4 The rationale for this version numbering system will be explained in the distutils documentation. z)^(\d+) \. (\d+) (\. (\d+))? ([ab](\d+))?$cCs|jj|}|s(td||jddddd\}}}}}|r|ttt|||g|_n"ttt||gd|_|r|dt|f|_n d|_dS) Nzinvalid version number '%s'r)r) version_rematch ValueErrorgrouptuplemapintversion prerelease)rrr majorminorZpatchr'Zprerelease_numrrrrs*$"zStrictVersion.parsecCs|jddkr;djtt|jdd}ndjtt|j}|jr||jdt|jd}|S)Nrr.r)r&joinr$r r')rrrrr__str__s ( "zStrictVersion.__str__cCst|trt|}|j|jkrG|j|jkrCdSdS|j r_|j r_dS|jrv|j rvdS|j r|jrdS|jr|jr|j|jkrdS|j|jkrdSdSndS)Nrrr-r-) isinstancer rr&r')rrrrrr s& zStrictVersion._cmpN) r rrrrecompileVERBOSEASCIIrrr,r rrrrr]s #   rc@sjeZdZdZejdejZdddZddZ dd Z d d Z d d Z dS) LooseVersionaVersion numbering for anarchists and software realists. Implements the standard interface for version number classes as described above. A version number consists of a series of numbers, separated by either periods or strings of letters. When comparing version numbers, the numeric components will be compared numerically, and the alphabetic components lexically. The following are all valid version numbers, in no particular order: 1.5.1 1.5.2b2 161 3.10a 8.02 3.4j 1996.07.12 3.2.pl0 3.1.1.6 2g6 11g 0.960923 2.2beta29 1.13++ 5.5.kw 2.0b1pl0 In fact, there is no such thing as an invalid version number under this scheme; the rules for comparison are simple and predictable, but may not always give the results you want (for some definition of "want"). z(\d+ | [a-z]+ | \.)NcCs|r|j|dS)N)r)rrrrrr.szLooseVersion.__init__c Cs{||_dd|jj|D}xCt|D]5\}}yt|||8s z&LooseVersion.parse..)r component_resplit enumerater%r!r&)rrZ componentsiobjrrrr3s   zLooseVersion.parsecCs|jS)N)r)rrrrr,CszLooseVersion.__str__cCsdt|S)NzLooseVersion ('%s'))r )rrrrr GszLooseVersion.__repr__cCsat|trt|}|j|jkr1dS|j|jkrGdS|j|jkr]dSdS)Nrrr-)r.r r3r&)rrrrrr Ks zLooseVersion._cmp) r rrrr/r0r1r7rrr,r r rrrrr3 s    r3)rr/rrr3rrrrs >PK!F ==__pycache__/cmd.cpython-35.pycnu[ YfJ@sdZddlZddlZddlZddlmZddlmZmZm Z m Z m Z ddlm Z GdddZ Gdd d e ZdS) ztdistutils.cmd Provides the Command class, the base class for the command classes in the distutils.command package. N)DistutilsOptionError)utildir_util file_util archive_utildep_util)logc@seZdZdZgZddZddZddZdd Zd d Z d d ddZ ddZ dddZ ddZ d ddZd ddZddZd ddZdd Zd!d"Zd#d$Zd%d&Zdd'd(Zd)d*d+Zd,d-Zd.d/Zd0d1Zd dd2d3Zd4d5d6Zddd dd7d8Zddd)dd9d:Zdd;d<Zddd=d>Z d d d d d?d@Z!d d ddAdBZ"d S)CCommanda}Abstract base class for defining command classes, the "worker bees" of the Distutils. A useful analogy for command classes is to think of them as subroutines with local variables called "options". The options are "declared" in 'initialize_options()' and "defined" (given their final values, aka "finalized") in 'finalize_options()', both of which must be defined by every command class. The distinction between the two is necessary because option values might come from the outside world (command line, config file, ...), and any options dependent on other options must be computed *after* these outside influences have been processed -- hence 'finalize_options()'. The "body" of the subroutine, where it does all its work based on the values of its options, is the 'run()' method, which must also be implemented by every command class. cCsddlm}t||s+td|jtkrFtd||_|jd|_ |j |_ d|_ d|_ d|_ dS)zCreate and initialize a new Command object. Most importantly, invokes the 'initialize_options()' method, which is the real initializer and depends on the actual command being instantiated. r) Distributionz$dist must be a Distribution instancezCommand is an abstract classN)Zdistutils.distr isinstance TypeError __class__r RuntimeError distributioninitialize_optionsZ_dry_runverboseforcehelp finalized)selfZdistr r2/opt/alt/python35/lib64/python3.5/distutils/cmd.py__init__/s       zCommand.__init__cCsR|dkrBt|d|}|dkr;t|j|S|Sn t|dS)Ndry_run_)getattrrAttributeError)rattrZmyvalrrr __getattr___s   zCommand.__getattr__cCs |js|jd|_dS)N)rfinalize_options)rrrrensure_finalizedis  zCommand.ensure_finalizedcCstd|jdS)aSet default values for all the options that this command supports. Note that these defaults may be overridden by other commands, by the setup script, by config files, or by the command-line. Thus, this is not the place to code dependencies between options; generally, 'initialize_options()' implementations are just a bunch of "self.foo = None" assignments. This method must be implemented by all command classes. z,abstract method -- subclass %s must overrideN)rr )rrrrr{s zCommand.initialize_optionscCstd|jdS)aSet final values for all the options that this command supports. This is always called as late as possible, ie. after any option assignments from the command-line or from other commands have been done. Thus, this is the place to code option dependencies: if 'foo' depends on 'bar', then it is safe to set 'foo' from 'bar' as long as 'foo' still has the same value it was assigned in 'initialize_options()'. This method must be implemented by all command classes. z,abstract method -- subclass %s must overrideN)rr )rrrrr s zCommand.finalize_optionsNcCsddlm}|dkr,d|j}|j||dtj|d}x||jD]q\}}}|j|}|d dkr|dd }t||}|j|d||fdtjqZWdS) Nr) longopt_xlatezcommand options for '%s':levelz r=z%s = %sr&) Zdistutils.fancy_getoptr#get_command_nameannouncerINFO user_options translater)rheaderindentr#optionrvaluerrr dump_optionss  zCommand.dump_optionscCstd|jdS)aA command's raison d'etre: carry out the action it exists to perform, controlled by the options initialized in 'initialize_options()', customized by other commands, the setup script, the command-line, and config files, and finalized in 'finalize_options()'. All terminal output and filesystem interaction should be done by 'run()'. This method must be implemented by all command classes. z,abstract method -- subclass %s must overrideN)rr )rrrrruns z Command.runrcCstj||dS)zmIf the current verbosity level is of greater than or equal to 'level' print 'msg' to stdout. N)r)rmsgr$rrrr(szCommand.announcecCs1ddlm}|r-t|tjjdS)z~Print 'msg' to stdout if the global DEBUG (taken from the DISTUTILS_DEBUG environment variable) flag is true. r)DEBUGN)Zdistutils.debugr3printsysstdoutflush)rr2r3rrr debug_prints zCommand.debug_printcCs[t||}|dkr/t||||St|tsWtd|||f|S)Nz'%s' must be a %s (got `%s`))rsetattrr strr)rr.whatdefaultvalrrr_ensure_stringlikes zCommand._ensure_stringlikecCs|j|d|dS)zWEnsure that 'option' is a string; if not defined, set it to 'default'. stringN)r>)rr.r<rrr ensure_stringszCommand.ensure_stringcCst||}|dkrdSt|trMt||tjd|nMt|trxtdd|D}nd}|std||fdS)zEnsure that 'option' is a list of strings. If 'option' is currently a string, we split it either on /,\s*/ or /\s+/, so "foo bar baz", "foo,bar,baz", and "foo, bar baz" all become ["foo", "bar", "baz"]. Nz,\s*|\s+css|]}t|tVqdS)N)r r:).0vrrr sz-Command.ensure_string_list..Fz''%s' must be a list of strings (got %r)) rr r:r9resplitlistallr)rr.r=okrrrensure_string_lists zCommand.ensure_string_listcCsL|j|||}|dk rH|| rHtd|||fdS)Nzerror in '%s' option: )r>r)rr.Ztesterr;Z error_fmtr<r=rrr_ensure_tested_strings zCommand._ensure_tested_stringcCs |j|tjjdddS)z5Ensure that 'option' is the name of an existing file.filenamez$'%s' does not exist or is not a fileN)rJospathisfile)rr.rrrensure_filenameszCommand.ensure_filenamecCs |j|tjjdddS)Nzdirectory namez)'%s' does not exist or is not a directory)rJrLrMisdir)rr.rrrensure_dirnameszCommand.ensure_dirnamecCs$t|dr|jS|jjSdS)N command_name)hasattrrRr __name__)rrrrr' szCommand.get_command_namecGse|jj|}|jxB|D]:\}}t||dkr#t||t||q#WdS)a>Set the values of any "undefined" options from corresponding option values in some other command object. "Undefined" here means "is None", which is the convention used to indicate that an option has not been changed between 'initialize_options()' and 'finalize_options()'. Usually called from 'finalize_options()' for options that depend on some other command rather than another option of the same command. 'src_cmd' is the other command from which option values will be taken (a command object will be created for it if necessary); the remaining arguments are '(src_option,dst_option)' tuples which mean "take the value of 'src_option' in the 'src_cmd' command object, and copy it to 'dst_option' in the current command object". N)rget_command_objr!rr9)rZsrc_cmdZ option_pairsZ src_cmd_objZ src_optionZ dst_optionrrrset_undefined_optionss  zCommand.set_undefined_optionscCs#|jj||}|j|S)zWrapper around Distribution's 'get_command_obj()' method: find (create if necessary and 'create' is true) the command object for 'command', call its 'ensure_finalized()' method, and return the finalized command object. )rrUr!)rcommandZcreateZcmd_objrrrget_finalized_command$s zCommand.get_finalized_commandrcCs|jj||S)N)rreinitialize_command)rrWZreinit_subcommandsrrrrY0s zCommand.reinitialize_commandcCs|jj|dS)zRun some other command: uses the 'run_command()' method of Distribution, which creates and finalizes the command object if necessary and then invokes its 'run()' method. N)r run_command)rrWrrrrZ4szCommand.run_commandcCsIg}x<|jD]1\}}|dks4||r|j|qW|S)akDetermine the sub-commands that are relevant in the current distribution (ie., that need to be run). This is based on the 'sub_commands' class attribute: each tuple in that list may include a method that we call to determine if the subcommand needs to be run for the current distribution. Return a list of command names. N) sub_commandsappend)rZcommandsZcmd_namemethodrrrget_sub_commands;s zCommand.get_sub_commandscCs!tjd|j|fdS)Nzwarning: %s: %s )rwarnr')rr2rrrr_Ks z Command.warncCs tj|||d|jdS)Nr)rexecuter)rfuncargsr2r$rrrr`OszCommand.executeicCstj||d|jdS)Nr)rmkpathr)rnamemoderrrrcRszCommand.mkpathc Cs)tj|||||j |d|jS)zCopy a file respecting verbose, dry-run and force flags. (The former two default to whatever is in the Distribution object, and the latter defaults to false for commands that don't define it.)r)r copy_filerr)rinfileoutfile preserve_modepreserve_timeslinkr$rrrrfUszCommand.copy_filec Cs)tj||||||j d|jS)z\Copy an entire directory tree respecting verbose, dry-run, and force flags. r)r copy_treerr)rrgrhrirjZpreserve_symlinksr$rrrrl^szCommand.copy_treecCstj||d|jS)z$Move a file respecting dry-run flag.r)r move_filer)rsrcZdstr$rrrrmgszCommand.move_filecCs*ddlm}|||d|jdS)z2Spawn an external command respecting dry-run flag.r)spawnrN)Zdistutils.spawnror)rcmdZ search_pathr$rorrrroksz Command.spawnc Cs+tj||||d|jd|d|S)Nrownergroup)r make_archiver)rZ base_nameformatZroot_dirZbase_dirrqrrrrrrsps zCommand.make_archivecCs|dkrd|}t|tr1|f}n!t|ttfsRtd|dkrwd|dj|f}|jstj||r|j ||||n t j |dS)aSpecial case of 'execute()' for operations that process one or more input files and generate one output file. Works just like 'execute()', except the operation is skipped and a different message printed if 'outfile' already exists and is newer than all files listed in 'infiles'. If the command defined 'self.force', and it is true, then the command is unconditionally run -- does no timestamp checks. Nzskipping %s (inputs unchanged)z9'infiles' must be a string, or a list or tuple of stringszgenerating %s from %sz, ) r r:rFtupler joinrrZ newer_groupr`rdebug)rZinfilesrhrarbZexec_msgZskip_msgr$rrr make_filevs     zCommand.make_file)#rT __module__ __qualname____doc__r[rrr!rr r0r1r(r8r>r@rIrJrOrQr'rVrXrYrZr^r_r`rcrfrlrmrorsrxrrrrr sF  0              r c@sOeZdZdZdgZddZddZd d Zd d Zd S) install_miscz{Common base class for installing some files in a subdirectory. Currently used by install_data and install_scripts. install-dir=d!directory to install the files tocCsd|_g|_dS)N) install_diroutfiles)rrrrrs zinstall_misc.initialize_optionscCs|jd|dfdS)NZinstallr)rV)rdirnamerrr_install_dir_fromszinstall_misc._install_dir_fromcCsmg|_|sdS|j|jxC|D];}|j||j|jjtjj|j|q*WdS)N)rrcrrfr\rLrMrv)rZfilelistfrrr _copy_filess  zinstall_misc._copy_filescCs|jS)N)r)rrrr get_outputsszinstall_misc.get_outputsN)r}r~r) rTryrzr{r*rrrrrrrrr|s     r|)r{r5rLrDZdistutils.errorsrZ distutilsrrrrrrr r|rrrrs$(PK!V44.__pycache__/unixccompiler.cpython-35.opt-2.pycnu[ $Yf:@sddlZddlZddlZddlmZddlmZddlmZm Z m Z ddl m Z m Z mZmZddlmZejdkrddlZGdd d eZdS) N) sysconfig)newer) CCompilergen_preprocess_optionsgen_lib_options)DistutilsExecError CompileErrorLibError LinkError)logdarwincseZdZdZddddgddgddgddd gd dgd d d gddiZejdddkrdgedrr isinstancestrtype TypeErrorr)r*joinr@rAr%r(r+rZ EXECUTABLErrrbasenamer5r6r7r8r,rr r rB)rZ target_descrArDr=r r!r"Zexport_symbolsrBr.r/Z build_temprCr0Zlib_optsZld_argsZlinkerir3r#r#r$linksH       "zUnixCCompiler.linkcCsd|S)Nz-Lr#)rdirr#r#r$library_dir_optionsz UnixCCompiler.library_dir_optioncCsd|kpd|kS)Ngcczg++r#)rZ compiler_namer#r#r$_is_gccszUnixCCompiler._is_gcccCs tjjtjd}tjdddkr<d|Stjdddkr]d|Stjddd kr|j|rd d|gSd d|gStjddd kstjddd krd|gS|j|rtjddkr d|Sd|Snd|SdS)NCCrr z-LZfreebsdz -Wl,-rpath=zhp-uxz-Wl,+sz+sZirix646Zosf1V5z-rpathGNULDyesz-Wl,--enable-new-dtags,-Rz-Wl,-Rz-R)r)r*rNrrr5r6rT)rrQrr#r#r$runtime_library_dir_options 2  z(UnixCCompiler.runtime_library_dir_optioncCsd|S)Nz-lr#)rlibr#r#r$library_option szUnixCCompiler.library_optioncCs.|j|dd}|j|dd}|j|dd}|j|dd}tjdkrtjd}tjd|} | dkrd } n| jd } x|D]w} tj j | |} tj j | |} tj j | |}tj j | |}tjdkr| j d sF| j d r| j d  rtj j | | d d|} tj j | | d d|} tj j | | d d|}tj j | | d d|}tj j | r| Stj j |r|Stj j | r| Stj j |r|SqWdS)NZlib_typeshareddylib xcode_stubstaticr CFLAGSz-isysroot\s+(\S+)/rGz/System/z/usr/z /usr/local/) r?r5r6rrresearchgroupr)r*rM startswithexists)rdirsr[rBZshared_fZdylib_fZ xcode_stub_fZstatic_fZcflagsmZsysrootrQr]r^r`r_r#r#r$find_library_file s>   """"zUnixCCompiler.find_library_file)__name__ __module__ __qualname__Z compiler_typeZ executablesr5r6Zsrc_extensionsZ obj_extensionZstatic_lib_extensionZshared_lib_extensionZdylib_lib_extensionZxcode_stub_lib_extensionZstatic_lib_formatZshared_lib_formatZdylib_lib_formatZxcode_stub_lib_formatZ exe_extensionrr4r<rErPrRrTrZr\rjr#r#)rr$r -sF            6   , r )r)r5rcZ distutilsrZdistutils.dep_utilrZdistutils.ccompilerrrrZdistutils.errorsrrr r r r6r7r r#r#r#r$s$" PK!LL*__pycache__/ccompiler.cpython-35.opt-1.pycnu[ Yf7 @szdZddlZddlZddlZddlTddlmZddlmZddl m Z ddl m Z m Z ddlmZmZdd lmZGd d d Zd d fdd fddffZddddZd dddfddddfddddfddddfd d!d"d#fiZd$d%Zdddddd&d'Zd(d)Zd*d+ZdS),zdistutils.ccompiler Contains CCompiler, an abstract base class that defines the interface for the Distutils compiler abstraction model.N)*)spawn) move_file)mkpath)newer_pairwise newer_group) split_quotedexecute)logc @seZdZdZdZdZdZdZdZdZ dZ dZ ddddddddd d iZ dd dgZ d d d d d ZddZddZddZddZdddZddZddZddZddZd d!Zd"d#Zd$d%Zd&d'Zd(d)Zd*d+Zd,d-Zd.d/Zd0d1Z d2d3Z!dd4d5Z"d6d7Z#d8d9Z$d:d;Z%d<d=Z&dddddd>d?Z'dddd dddd@dAZ(dBdCZ)dd ddDdEZ*dFZ+dGZ,dHZ-dddddd dddddIdJ Z.dddddd dddddKdL Z/dddddd dddddMdN Z0ddddd ddddOdPZ1dQdRZ2dSdTZ3dUdVZ4dddddWdXZ5d dYdZZ6d d[d\d]Z7d d[d^d_Z8d d[d`daZ9dbd d[dcddZ:dedfdgZ;dhdiZ<djdkZ=ddedldmZ>dndoZ?dpdqZ@drdsdtZAdS)u CCompileraAbstract base class to define the interface that must be implemented by real compiler classes. Also has some utility methods used by several compiler classes. The basic idea behind a compiler abstraction class is that each instance can be used for all the compile/link steps in building a single project. Thus, attributes common to all of those compile and link steps -- include directories, macros to define, libraries to link against, etc. -- are attributes of the compiler instance. To allow for variability in how individual files are treated, most of those attributes may be varied on a per-compilation or per-link basis. Nz.ccz.cczc++z.cppz.cxxz.mZobjcrcCs||_||_||_d|_g|_g|_g|_g|_g|_g|_ x.|j j D]}|j ||j |qjWdS)N) dry_runforceverbose output_dirmacros include_dirs libraries library_dirsruntime_library_dirsobjects executableskeysset_executable)selfrr rkeyr8/opt/alt/python35/lib64/python3.5/distutils/ccompiler.py__init__Us          zCCompiler.__init__cKsTxM|D]E}||jkr8td||jjf|j|||qWdS)aDefine the executables (and options for them) that will be run to perform the various stages of compilation. The exact set of executables that may be specified here depends on the compiler class (via the 'executables' class attribute), but most will have: compiler the C/C++ compiler linker_so linker used to create shared objects and libraries linker_exe linker used to create binary executables archiver static library creator On platforms with a command-line (Unix, DOS/Windows), each of these is a string that will be split into executable name and (optional) list of arguments. (Splitting the string is done similarly to how Unix shells operate: words are delimited by spaces, but quotes and backslashes can override this. See 'distutils.util.split_quoted()'.) z$unknown executable '%s' for class %sN)r ValueError __class____name__r)rkwargsrrrrset_executablesys  zCCompiler.set_executablescCs<t|tr(t||t|nt|||dS)N) isinstancestrsetattrr)rrvaluerrrrszCCompiler.set_executablecCs<d}x/|jD]$}|d|kr*|S|d7}qWdS)Nr)r)rnameidefnrrr _find_macros zCCompiler._find_macrocCsx}|D]u}t|toat|dkoat|dtsQ|ddkoat|dtstd|ddqWdS) zEnsures that every element of 'definitions' is a valid macro definition, ie. either (name,value) 2-tuple or a (name,) tuple. Do nothing if all definitions are OK, raise TypeError otherwise. r(Nrzinvalid macro definition '%s': z.must be tuple (string,), (string, string), or z(string, None))r(r-)r$tuplelenr% TypeError)rZ definitionsr+rrr_check_macro_definitionss # z"CCompiler._check_macro_definitionscCs?|j|}|dk r%|j|=|jj||fdS)a_Define a preprocessor macro for all compilations driven by this compiler object. The optional parameter 'value' should be a string; if it is not supplied, then the macro will be defined without an explicit value and the exact outcome depends on the compiler used (XXX true? does ANSI say anything about this?) N)r,rappend)rr)r'r*rrr define_macros   zCCompiler.define_macrocCsB|j|}|dk r%|j|=|f}|jj|dS)aUndefine a preprocessor macro for all compilations driven by this compiler object. If the same macro is defined by 'define_macro()' and undefined by 'undefine_macro()' the last call takes precedence (including multiple redefinitions or undefinitions). If the macro is redefined/undefined on a per-compilation basis (ie. in the call to 'compile()'), then that takes precedence. N)r,rr2)rr)r*Zundefnrrrundefine_macros    zCCompiler.undefine_macrocCs|jj|dS)zAdd 'dir' to the list of directories that will be searched for header files. The compiler is instructed to search directories in the order in which they are supplied by successive calls to 'add_include_dir()'. N)rr2)rdirrrradd_include_dirszCCompiler.add_include_dircCs|dd|_dS)aySet the list of directories that will be searched to 'dirs' (a list of strings). Overrides any preceding calls to 'add_include_dir()'; subsequence calls to 'add_include_dir()' add to the list passed to 'set_include_dirs()'. This does not affect any list of standard include directories that the compiler may search by default. N)r)rdirsrrrset_include_dirsszCCompiler.set_include_dirscCs|jj|dS)aAdd 'libname' to the list of libraries that will be included in all links driven by this compiler object. Note that 'libname' should *not* be the name of a file containing a library, but the name of the library itself: the actual filename will be inferred by the linker, the compiler, or the compiler class (depending on the platform). The linker will be instructed to link against libraries in the order they were supplied to 'add_library()' and/or 'set_libraries()'. It is perfectly valid to duplicate library names; the linker will be instructed to link against libraries as many times as they are mentioned. N)rr2)rlibnamerrr add_libraryszCCompiler.add_librarycCs|dd|_dS)zSet the list of libraries to be included in all links driven by this compiler object to 'libnames' (a list of strings). This does not affect any standard system libraries that the linker may include by default. N)r)rZlibnamesrrr set_librariesszCCompiler.set_librariescCs|jj|dS)a'Add 'dir' to the list of directories that will be searched for libraries specified to 'add_library()' and 'set_libraries()'. The linker will be instructed to search for libraries in the order they are supplied to 'add_library_dir()' and/or 'set_library_dirs()'. N)rr2)rr5rrradd_library_dirszCCompiler.add_library_dircCs|dd|_dS)zSet the list of library search directories to 'dirs' (a list of strings). This does not affect any standard library search path that the linker may search by default. N)r)rr7rrrset_library_dirs szCCompiler.set_library_dirscCs|jj|dS)zlAdd 'dir' to the list of directories that will be searched for shared libraries at runtime. N)rr2)rr5rrradd_runtime_library_dirsz!CCompiler.add_runtime_library_dircCs|dd|_dS)zSet the list of directories to search for shared libraries at runtime to 'dirs' (a list of strings). This does not affect any standard search path that the runtime linker may search by default. N)r)rr7rrrset_runtime_library_dirssz"CCompiler.set_runtime_library_dirscCs|jj|dS)zAdd 'object' to the list of object files (or analogues, such as explicitly named library files or the output of "resource compilers") to be included in every link driven by this compiler object. N)rr2)robjectrrradd_link_object szCCompiler.add_link_objectcCs|dd|_dS)zSet the list of object files (or analogues) to be included in every link to 'objects'. This does not affect any standard object files that the linker may include by default (such as system libraries). N)r)rrrrrset_link_objects(szCCompiler.set_link_objectscCs|dkr|j}nt|ts3td|dkrK|j}n1t|trp||jpig}n td|dkr|j}n=t|ttfrt||jpg}n td|dkrg}|j|ddd|}t ||}i} xmt t |D]Y} || } || } t j j| d} |jt j j| | | f| | 'runtime_library_dirs' (if supplied) must be a list of strings)rr$rDr.r0rr)rrrrrrr _fix_lib_argss&          zCCompiler._fix_lib_argscCsE|jr dS|jr.t||dd}nt||}|SdS)zjReturn true if we need to relink the files listed in 'objects' to recreate 'output_file'. TZmissingnewerN)rr r)rr output_filer[rrr _need_links   zCCompiler._need_linkc Cst|ts|g}d}t|j}x{|D]s}tjj|\}}|jj|}y.|jj |}||kr|}|}Wq4t k rYq4Xq4W|S)z|Detect the language of a given file, or list of files. Uses language_map, and language_order to do the job. N) r$rDr/language_orderrHrIrJ language_mapgetindexr) rrLZlangrasourcebaserRZextlangZextindexrrrdetect_languages      zCCompiler.detect_languagecCsdS)aPreprocess a single C/C++ source file, named in 'source'. Output will be written to file named 'output_file', or stdout if 'output_file' not supplied. 'macros' is a list of macro definitions as for 'compile()', which will augment the macros set with 'define_macro()' and 'undefine_macro()'. 'include_dirs' is a list of directory names that will be added to the default list. Raises PreprocessError on failure. Nr)rrbr\rr extra_preargsextra_postargsrrr preprocesss zCCompiler.preprocessc Cs|j||||||\}} }} } |j| ||} xV| D]N} y| | \}}Wntk rzwIYnX|j| ||| || qIW| S)aK Compile one or more source files. 'sources' must be a list of filenames, most likely C/C++ files, but in reality anything that can be handled by a particular compiler and compiler class (eg. MSVCCompiler can handle resource files in 'sources'). Return a list of object filenames, one per source filename in 'sources'. Depending on the implementation, not all source files will necessarily be compiled, but all corresponding object filenames will be returned. If 'output_dir' is given, object files will be put under it, while retaining their original path component. That is, "foo/bar.c" normally compiles to "foo/bar.o" (for a Unix implementation); if 'output_dir' is "build", then it would compile to "build/foo/bar.o". 'macros', if given, must be a list of macro definitions. A macro definition is either a (name, value) 2-tuple or a (name,) 1-tuple. The former defines a macro; if the value is None, the macro is defined without an explicit value. The 1-tuple case undefines a macro. Later definitions/redefinitions/ undefinitions take precedence. 'include_dirs', if given, must be a list of strings, the directories to add to the default include file search path for this compilation only. 'debug' is a boolean; if true, the compiler will be instructed to output debug symbols in (or alongside) the object file(s). 'extra_preargs' and 'extra_postargs' are implementation- dependent. On platforms that have the notion of a command-line (e.g. Unix, DOS/Windows), they are most likely lists of strings: extra command-line arguments to prepand/append to the compiler command line. On other platforms, consult the implementation class documentation. In any event, they are intended as an escape hatch for those occasions when the abstract compiler framework doesn't cut the mustard. 'depends', if given, is a list of filenames that all targets depend on. If a source file is older than any file in depends, then the source file will be recompiled. This supports dependency tracking, but only at a coarse granularity. Raises CompileError on failure. )rSrVKeyError_compile)rrLrrrrTrerfrMrrNrOrUrQrPrRrrrcompiles6   zCCompiler.compilecCsdS)zCompile 'src' to product 'obj'.Nr)rrQrPrRrUrfrNrrrriCszCCompiler._compilecCsdS)a&Link a bunch of stuff together to create a static library file. The "bunch of stuff" consists of the list of object files supplied as 'objects', the extra object files supplied to 'add_link_object()' and/or 'set_link_objects()', the libraries supplied to 'add_library()' and/or 'set_libraries()', and the libraries supplied as 'libraries' (if any). 'output_libname' should be a library name, not a filename; the filename will be inferred from the library name. 'output_dir' is the directory where the library file will be put. 'debug' is a boolean; if true, debugging information will be included in the library (note that on most platforms, it is the compile step where this matters: the 'debug' flag is included here just for consistency). 'target_lang' is the target language for which the given objects are being compiled. This allows specific linkage time treatment of certain languages. Raises LibError on failure. Nr)rroutput_libnamerrT target_langrrrcreate_static_libIszCCompiler.create_static_libZ shared_objectZshared_library executablecCs tdS)auLink a bunch of stuff together to create an executable or shared library file. The "bunch of stuff" consists of the list of object files supplied as 'objects'. 'output_filename' should be a filename. If 'output_dir' is supplied, 'output_filename' is relative to it (i.e. 'output_filename' can provide directory components if needed). 'libraries' is a list of libraries to link against. These are library names, not filenames, since they're translated into filenames in a platform-specific way (eg. "foo" becomes "libfoo.a" on Unix and "foo.lib" on DOS/Windows). However, they can include a directory component, which means the linker will look in that specific directory rather than searching all the normal locations. 'library_dirs', if supplied, should be a list of directories to search for libraries that were specified as bare library names (ie. no directory component). These are on top of the system default and those supplied to 'add_library_dir()' and/or 'set_library_dirs()'. 'runtime_library_dirs' is a list of directories that will be embedded into the shared library and used to search for other shared libraries that *it* depends on at run-time. (This may only be relevant on Unix.) 'export_symbols' is a list of symbols that the shared library will export. (This appears to be relevant only on Windows.) 'debug' is as for 'compile()' and 'create_static_lib()', with the slight distinction that it actually matters on most platforms (as opposed to 'create_static_lib()', which includes a 'debug' flag mostly for form's sake). 'extra_preargs' and 'extra_postargs' are as for 'compile()' (except of course that they supply command-line arguments for the particular linker being used). 'target_lang' is the target language for which the given objects are being compiled. This allows specific linkage time treatment of certain languages. Raises LinkError on failure. N)NotImplementedError)rZ target_descroutput_filenamerrrrexport_symbolsrTrerf build_temprlrrrlinkis9zCCompiler.linkc CsG|jtj||j|dd||||||| | | | dS)Nlib_typeshared)rsr SHARED_LIBRARYlibrary_filename) rrrkrrrrrqrTrerfrrrlrrrlink_shared_libs  zCCompiler.link_shared_libc Cs8|jtj||||||||| | | | dS)N)rsr SHARED_OBJECT) rrrprrrrrqrTrerfrrrlrrrlink_shared_objects  zCCompiler.link_shared_objectc CsA|jtj||j|||||d||| d| dS)N)rsr EXECUTABLEexecutable_filename) rrZoutput_prognamerrrrrTrerfrlrrrlink_executables  zCCompiler.link_executablecCs tdS)zkReturn the compiler option to add 'dir' to the list of directories searched for libraries. N)ro)rr5rrrlibrary_dir_optionszCCompiler.library_dir_optioncCs tdS)zsReturn the compiler option to add 'dir' to the list of directories searched for runtime libraries. N)ro)rr5rrrruntime_library_dir_optionsz$CCompiler.runtime_library_dir_optioncCs tdS)zReturn the compiler option to add 'lib' to the list of libraries linked into the shared library or executable. N)ro)rlibrrrlibrary_optionszCCompiler.library_optionc CsAddl}|dkrg}|dkr0g}|dkrBg}|dkrTg}|jd|dd\}}tj|d} z7x|D]} | jd| qW| jd|Wd| jXy|j|gd |} Wntk rd SYnXy |j| d d |d |Wnt t fk r<d SYnXdS)zReturn a boolean indicating whether funcname is supported on the current platform. The optional arguments can be used to augment the compilation environment. rNz.ctextTwz#include "%s" z+main (int argc, char **argv) { %s(); } rFza.outrr) tempfileZmkstemprHfdopenwritecloserjZ CompileErrorr}Z LinkErrorr0) rfuncnameZincludesrrrrfdZfnamefZinclrrrr has_functions8           zCCompiler.has_functioncCs tdS)aHSearch the specified list of directories for a static or shared library file 'lib' and return the full path to that file. If 'debug' true, look for a debugging version (if that makes sense on the current platform). Return None if 'lib' wasn't found in any of the specified directories. N)ro)rr7rrTrrrfind_library_file#szCCompiler.find_library_filecCs|dkrd}g}x|D]}tjj|\}}tjj|d}|tjj|d}||jkrtd||f|rtjj|}|jtjj |||j qW|S)Nrr(z"unknown file type '%s' (from '%s')) rHrIrJ splitdriveisabssrc_extensionsZUnknownFileErrorbasenamer2join obj_extension)rZsource_filenamesrCrZ obj_namesZsrc_namercrRrrrrENs  zCCompiler.object_filenamescCs2|rtjj|}tjj|||jS)N)rHrIrrshared_lib_extension)rrrCrrrrshared_object_filename_sz CCompiler.shared_object_filenamecCs8|rtjj|}tjj|||jp3dS)Nr)rHrIrr exe_extension)rrrCrrrrr|eszCCompiler.executable_filenamestaticc Cs|d krtdt||d}t||d}tjj|\}}|||f} |rrd}tjj||| S) Nrrudylib xcode_stubz?'lib_type' must be "static", "shared", "dylib", or "xcode_stub"Z _lib_formatZ_lib_extensionr)rrurr)rgetattrrHrIsplitr) rr9rtrCrZfmtrRr5rcfilenamerrrrwks  zCCompiler.library_filenamer(cCstj|dS)N)r rT)rmsglevelrrrannounce~szCCompiler.announcecCs$ddlm}|r t|dS)Nr)DEBUG)Zdistutils.debugrprint)rrrrrr debug_printszCCompiler.debug_printcCstjjd|dS)Nz warning: %s )sysstderrr)rrrrrwarnszCCompiler.warncCst||||jdS)N)r r )rfuncargsrrrrrr szCCompiler.executecCst|d|jdS)Nr )rr )rcmdrrrrszCCompiler.spawncCst||d|jS)Nr )rr )rrPZdstrrrrszCCompiler.move_fileicCst||d|jdS)Nr )rr )rr)moderrrrszCCompiler.mkpath)Br! __module__ __qualname____doc__Z compiler_typerrZstatic_lib_extensionrZstatic_lib_formatZshared_lib_formatrr_r^rr#rr,r1r3r4r6r8r:r;r<r=r>r?rArBrSrVrWrXrYrZr]rdrgrjrirmryrvr{rsrxrzr}r~rrrrrErr|rwrrrr rrrrrrrr s   $              +   "   B 4     *+    r zcygwin.*unixposixntZmsvccCsy|dkrtj}|dkr*tj}xHtD]@\}}tj||dk smtj||dk r1|Sq1WdS)akDetermine the default compiler to use for the given platform. osname should be one of the standard Python OS names (i.e. the ones returned by os.name) and platform the common value returned by sys.platform for the platform in question. The default values are os.name and sys.platform in case the parameters are not given. Nr)rHr)rplatform_default_compilersrematch)osnamerpatterncompilerrrrget_default_compilers    rZ unixccompilerZ UnixCCompilerzstandard UNIX-style compilerZ _msvccompilerZ MSVCCompilerzMicrosoft Visual C++cygwinZcygwinccompilerZCygwinCCompilerz'Cygwin port of GNU C Compiler for Win32Zmingw32ZMingw32CCompilerz(Mingw32 port of GNU C Compiler for Win32ZbcppZ bcppcompilerZ BCPPCompilerzBorland C++ CompilercCsvddlm}g}x6tjD](}|jd|dt|dfq#W|j||}|jddS)zyPrint list of available compilers (used by the "--help-compiler" options to "build", "build_ext", "build_clib"). r) FancyGetoptz compiler=Nr-zList of available compilers:)Zdistutils.fancy_getoptrcompiler_classrr2sortZ print_help)rZ compilersrZpretty_printerrrrshow_compilerss  rc Cs|dkrtj}y/|dkr0t|}t|\}}}WnBtk rd|}|dk rx|d|}t|YnXy5d|}t|tj|} t | |} WnIt k rt d|Yn(tk r t d||fYnX| d||S)a[Generate an instance of some CCompiler subclass for the supplied platform/compiler combination. 'plat' defaults to 'os.name' (eg. 'posix', 'nt'), and 'compiler' defaults to the default compiler for that platform. Currently only 'posix' and 'nt' are supported, and the default compilers are "traditional Unix interface" (UnixCCompiler class) and Visual C++ (MSVCCompiler class). Note that it's perfectly possible to ask for a Unix compiler object under Windows, and a Microsoft compiler object under Unix -- if you supply a value for 'compiler', 'plat' is ignored. Nz5don't know how to compile C/C++ code on platform '%s'z with '%s' compilerz distutils.z4can't compile C/C++ code: unable to load module '%s'zBcan't compile C/C++ code: unable to find class '%s' in module '%s') rHr)rrrhZDistutilsPlatformError __import__rmodulesvars ImportErrorZDistutilsModuleError) Zplatrrr rZ module_nameZ class_nameZlong_descriptionrmoduleklassrrr new_compilers2            rcCsg}x|D]}t|toAdt|ko?dknsTtd|t|dkr~|jd|dq t|dkr |ddkr|jd|dq |jd|q Wx|D]}|jd |qW|S) aGenerate C pre-processor options (-D, -U, -I) as used by at least two types of compilers: the typical Unix compiler and Visual C++. 'macros' is the usual thing, a list of 1- or 2-tuples, where (name,) means undefine (-U) macro 'name', and (name,value) means define (-D) macro 'name' to 'value'. 'include_dirs' is just a list of directory names to be added to the header file search path (-I). Returns a list of command-line options suitable for either Unix compilers or Visual C++. r(r-zPbad macro definition '%s': each element of 'macros' list must be a 1- or 2-tuplez-U%srNz-D%sz-D%s=%sz-I%s)r$r.r/r0r2)rrrNZmacror5rrrrF s 1  rFc Csg}x$|D]}|j|j|q WxF|D]>}|j|}t|tre||}q4|j|q4Wx|D]y}tjj|\}} |r|j|g| } | r|j| q|j d|q}|j|j |q}W|S)acGenerate linker options for searching library directories and linking with specific libraries. 'libraries' and 'library_dirs' are, respectively, lists of library names (not filenames!) and search directories. Returns a list of command-line options suitable for use with some compiler (depending on the two format strings passed in). z6no library file corresponding to '%s' found (skipping)) r2r~rr$rDrHrIrrrr) rrrrZlib_optsr5ZoptrZlib_dirZlib_nameZlib_filerrrgen_lib_options7s$      r)rrrHrZdistutils.errorsZdistutils.spawnrZdistutils.file_utilrZdistutils.dir_utilrZdistutils.dep_utilrrZdistutils.utilrr Z distutilsr r rrrrrrFrrrrrs<$          - -PK!] $__pycache__/extension.cpython-35.pycnu[ Yf)@sMdZddlZddlZddlZGdddZddZdS)zmdistutils.extension Provides the Extension class, used to describe C/C++ extension modules in setup scripts.Nc@sXeZdZdZddddddddddddddddZddZdS) Extensiona Just a collection of attributes that describes an extension module and everything needed to build it (hopefully in a portable way, but there are hooks that let you be as unportable as you need). Instance attributes: name : string the full name of the extension, including any packages -- ie. *not* a filename or pathname, but Python dotted name sources : [string] list of source filenames, relative to the distribution root (where the setup script lives), in Unix form (slash-separated) for portability. Source files may be C, C++, SWIG (.i), platform-specific resource files, or whatever else is recognized by the "build_ext" command as source for a Python extension. include_dirs : [string] list of directories to search for C/C++ header files (in Unix form for portability) define_macros : [(name : string, value : string|None)] list of macros to define; each macro is defined using a 2-tuple, where 'value' is either the string to define it to or None to define it without a particular value (equivalent of "#define FOO" in source or -DFOO on Unix C compiler command line) undef_macros : [string] list of macros to undefine explicitly library_dirs : [string] list of directories to search for C/C++ libraries at link time libraries : [string] list of library names (not filenames or paths) to link against runtime_library_dirs : [string] list of directories to search for C/C++ libraries at run time (for shared extensions, this is when the extension is loaded) extra_objects : [string] list of extra files to link with (eg. object files not implied by 'sources', static library that must be explicitly specified, binary resource files, etc.) extra_compile_args : [string] any extra platform- and compiler-specific information to use when compiling the source files in 'sources'. For platforms and compilers where "command line" makes sense, this is typically a list of command-line arguments, but for other platforms it could be anything. extra_link_args : [string] any extra platform- and compiler-specific information to use when linking object files together to create the extension (or to create a new static Python interpreter). Similar interpretation as for 'extra_compile_args'. export_symbols : [string] list of symbols to be exported from a shared extension. Not used on all platforms, and not generally necessary for Python extensions, which typically export exactly one symbol: "init" + extension_name. swig_opts : [string] any extra options to pass to SWIG if a source file has the .i extension. depends : [string] list of files that the extension depends on language : string extension language (i.e. "c", "c++", "objc"). Will be detected from the source extensions if not provided. optional : boolean specifies that a build failure in the extension should not abort the build process, but simply not install the failing extension. NcKs|t|tstdt|to@tdd|DsOtd||_||_|pjg|_|pyg|_|pg|_ |pg|_ |pg|_ |pg|_ | pg|_ | pg|_| pg|_| pg|_| pg|_|pg|_||_||_t|dkrxdd|D}djt|}d |}tj|dS) Nz'name' must be a stringcss|]}t|tVqdS)N) isinstancestr).0vr8/opt/alt/python35/lib64/python3.5/distutils/extension.py ksz%Extension.__init__..z#'sources' must be a list of stringsrcSsg|]}t|qSr)repr)rZoptionrrr s z&Extension.__init__..z, zUnknown Extension options: %s)rrAssertionErrorlistallnamesources include_dirs define_macros undef_macros library_dirs librariesruntime_library_dirs extra_objectsextra_compile_argsextra_link_argsexport_symbols swig_optsdependslanguageoptionallenjoinsortedwarningswarn)selfrrrrrrrrrrrrrrrrkwZoptionsmsgrrr__init__Ws4       zExtension.__init__cCs)d|jj|jj|jt|fS)Nz<%s.%s(%r) at %#x>) __class__ __module__ __qualname__rid)r$rrr__repr__s   zExtension.__repr__)__name__r)r*__doc__r'r,rrrrrs ?!rcCsddlm}m}m}ddlm}ddlm}||}||ddddddd dd d}zg}x|j} | d krP|j | rq~| d| d(kod knr|j d | q~|| |} || } | d} t | g} d } x`| dd D]N}| d k rT| j |d } q,t jj|d}|dd}|dd }|d)kr| jj |q,|dkr| jj |q,|dkr9|jd}|d*kr| jj |d fqz| jj |d|||dd fq,|dkrX| jj |q,|dkrw| jj |q,|dkr| jj |q,|dkr| jj |q,|dkr| jj |q,|dkr| j} q,|dkr| j} q,|d kr| j} q,|d!krJ| jj ||sz| j} q,|d+kri| jj |q,|j d'|q,W|j | q~WWd |jX|S),z3Reads a Setup file and returns Extension instances.r)parse_makefileexpand_makefile_vars _variable_rx)TextFile) split_quotedZstrip_commentsZ skip_blanksZ join_linesZ lstrip_wsZ rstrip_wsN*z'%s' lines not handled yet.c.cc.cpp.cxx.c++.m.mmz-Iz-D=z-Uz-Cz-lz-Lz-Rz-rpathz-Xlinkerz -Xcompilerz-u.a.so.sl.o.dylibzunrecognized argument '%s')r7r8r9r:r;r<r=rD)r?r@rArBrC)Zdistutils.sysconfigr/r0r1Zdistutils.text_filer2Zdistutils.utilr3readlinematchr#rappendospathsplitextrrfindrrrrrrrrclose)filenamer/r0r1r2r3varsfile extensionslineZwordsmoduleZextZappend_next_wordZwordsuffixZswitchvalueZequalsrrrread_setup_files    $                       rU)r.rHsysr"rrUrrrrs    zPK!k>>%__pycache__/core.cpython-35.opt-2.pycnu[ ]"@sddlZddlZddlmZddlTddlmZddlmZddl m Z ddl m Z dZ d d Zdadad3Zd4Zd.d/Zdd0d1d2ZdS)5N)DEBUG)*) Distribution)Command) PyPIRCCommand) Extensionzusage: %(script)s [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...] or: %(script)s --help [cmd1 cmd2 ...] or: %(script)s --help-commands or: %(script)s cmd --help cCstjj|}ttS)N)ospathbasenameUSAGEvars) script_nameZscriptr)/opt/alt/python35/lib64/python3.5/core.py gen_usage sr distclassr script_argsoptionsnameversionauthor author_email maintainermaintainer_emailurllicense descriptionlong_descriptionkeywords platforms classifiers download_urlrequiresprovides obsoletessources include_dirs define_macros undef_macros library_dirs librariesruntime_library_dirs extra_objectsextra_compile_argsextra_link_args swig_optsexport_symbolsdependslanguagec,Ks|jd}|r|d=nt}d|krNtjjtjd|dd|krt d|nt d|d|fWYdd}~XnXt d kr|S|j t rt d |jt d kr*|Sy|j}WnBtk r~}z"t t|jd |WYdd}~XnXt rt d |jt dkr|S|ry|jWntk rt dYntk r7}z;t rtjjd|fnt d|fWYdd}~XnMttfk r}z't r[nt dt|WYdd}~XnX|S)Nrr rrrzerror in setup command: %szerror in %s setup command: %sinitz%options (after parsing config files):configz error: %sz%options (after parsing command line): commandlineZ interruptedz error: %s z error: %szerror: )getrrr r sysargv_setup_distributionZDistutilsSetupError SystemExit_setup_stop_afterZparse_config_filesrprintZdump_option_dictsZparse_command_lineZDistutilsArgErrorrr Z run_commandsKeyboardInterruptOSErrorstderrwriteZDistutilsErrorZCCompilerErrorstr)ZattrsklassZdistmsgokexcrrrsetup9s`%    '     0    %)rGruncCs|d krtd|f|atj}d|i}i}yvz_|tjd<|dk rr|tjdd s0      qPK!S9""$__pycache__/text_file.cpython-35.pycnu[ Yf0@sAdZddlZddlZddlZGdddZdS)ztext_file provides the TextFile class, which gives an interface to text files that (optionally) takes care of stripping comments, ignoring blank lines, and joining lines with backslashes.Nc@seZdZdZddddddddddd dd d iZd d d dZddZddZd ddZd ddZ d ddZ ddZ ddZ ddZ d S)TextFilea Provides a file-like object that takes care of all the things you commonly want to do when processing a text file that has some line-by-line syntax: strip comments (as long as "#" is your comment character), skip blank lines, join adjacent lines by escaping the newline (ie. backslash at end of line), strip leading and/or trailing whitespace. All of these are optional and independently controllable. Provides a 'warn()' method so you can generate warning messages that report physical line number, even if the logical line in question spans multiple physical lines. Also provides 'unreadline()' for implementing line-at-a-time lookahead. Constructor is called as: TextFile (filename=None, file=None, **options) It bombs (RuntimeError) if both 'filename' and 'file' are None; 'filename' should be a string, and 'file' a file object (or something that provides 'readline()' and 'close()' methods). It is recommended that you supply at least 'filename', so that TextFile can include it in warning messages. If 'file' is not supplied, TextFile creates its own using 'io.open()'. The options are all boolean, and affect the value returned by 'readline()': strip_comments [default: true] strip from "#" to end-of-line, as well as any whitespace leading up to the "#" -- unless it is escaped by a backslash lstrip_ws [default: false] strip leading whitespace from each line before returning it rstrip_ws [default: true] strip trailing whitespace (including line terminator!) from each line before returning it skip_blanks [default: true} skip lines that are empty *after* stripping comments and whitespace. (If both lstrip_ws and rstrip_ws are false, then some lines may consist of solely whitespace: these will *not* be skipped, even if 'skip_blanks' is true.) join_lines [default: false] if a backslash is the last non-newline character on a line after stripping comments and whitespace, join the following line to it to form one "logical line"; if N consecutive lines end with a backslash, then N+1 physical lines will be joined to form one logical line. collapse_join [default: false] strip leading whitespace from lines that are joined to their predecessor; only matters if (join_lines and not lstrip_ws) errors [default: 'strict'] error handler used to decode the file content Note that since 'rstrip_ws' can strip the trailing newline, the semantics of 'readline()' must differ from those of the builtin file object's 'readline()' method! In particular, 'readline()' returns None for end-of-file: an empty string might just be a blank line (or an all-whitespace line), if 'rstrip_ws' is true but 'skip_blanks' is not.strip_comments skip_blanks lstrip_wsr rstrip_ws join_lines collapse_joinerrorsstrictNcKs|dkr$|dkr$tdxQ|jjD]@}||kr]t||||q4t|||j|q4Wx3|jD]%}||jkrtd|qW|dkr|j|n||_||_d|_g|_ dS)zConstruct a new TextFile object. At least one of 'filename' (a string) and 'file' (a file-like object) must be supplied. They keyword argument options are described above and affect the values returned by 'readline()'.Nz7you must supply either or both of 'filename' and 'file'zinvalid TextFile option '%s'r) RuntimeErrordefault_optionskeyssetattrKeyErroropenfilenamefile current_linelinebuf)selfrrZoptionsZoptr8/opt/alt/python35/lib64/python3.5/distutils/text_file.py__init__Ns      zTextFile.__init__cCs7||_tj|jdd|j|_d|_dS)zyOpen a new file named 'filename'. This overrides both the 'filename' and 'file' arguments to the constructor.rr rN)riorr rr)rrrrrros !z TextFile.opencCs2|j}d|_d|_d|_|jdS)ziClose the current file and forget everything we know about it (filename, current line number).N)rrrclose)rrrrrrvs     zTextFile.closecCsg}|dkr|j}|j|jdt|ttfr^|jdt|n|jd||jt|dj|S)Nz, z lines %d-%d: z line %d: )rappendr isinstancelisttuplestrjoin)rmsglineZoutmsgrrr gen_errors  zTextFile.gen_errorcCs td|j||dS)Nzerror: ) ValueErrorr&)rr$r%rrrerrorszTextFile.errorcCs(tjjd|j||ddS)aPrint (to stderr) a warning message tied to the current logical line in the current file. If the current logical line in the file spans multiple physical lines, the warning refers to the whole range, eg. "lines 3-5". If 'line' supplied, it overrides the current line number; it may be a list or tuple to indicate a range of physical lines, or an integer for a single physical line.z warning:  N)sysstderrwriter&)rr$r%rrrwarnsz TextFile.warncCs|jr$|jd }|jd =|Sd}xu|jj}|dkrNd}|jr|r|jd}|dkr{nz|dks||ddkr|ddkrdpd}|d||}|jdkrq-n|jdd}|jr|r|dkr!|jd |S|j r6|j }||}t |j t rm|j dd|j ds$PK!n% % #__pycache__/dep_util.cpython-35.pycnu[ Yf @sMdZddlZddlmZddZddZdd d ZdS) zdistutils.dep_util Utility functions for simple, timestamp-based dependency of files and groups of files; also, function based entirely on such timestamp dependency analysis.N)DistutilsFileErrorcCstjj|s.tdtjj|tjj|sDdSddlm}tj||}tj||}||kS)aReturn true if 'source' exists and is more recently modified than 'target', or if 'source' exists and 'target' doesn't. Return false if both exist and 'target' is the same age or younger than 'source'. Raise DistutilsFileError if 'source' does not exist. zfile '%s' does not existr)ST_MTIME)ospathexistsrabspathstatr)sourcetargetrZmtime1Zmtime2r 7/opt/alt/python35/lib64/python3.5/distutils/dep_util.pynewer srcCst|t|kr$tdg}g}xStt|D]?}t||||rC|j|||j||qCW||fS)zWalk two filename lists in parallel, testing if each source is newer than its corresponding target. Return a pair of lists (sources, targets) where source is newer than target, according to the semantics of 'newer()'. z+'sources' and 'targets' must be same length)len ValueErrorrangerappend)sourcesZtargetsZ n_sourcesZ n_targetsir r r newer_pairwise s rerrorcCstjj|sdSddlm}tj||}xx|D]l}tjj|s|dkrgn"|dkryq@n|dkrdStj||}||kr@dSq@WdSdS)aReturn true if 'target' is out-of-date with respect to any file listed in 'sources'. In other words, if 'target' exists and is newer than every file in 'sources', return false; otherwise return true. 'missing' controls what we do when a source file is missing; the default ("error") is to blow up with an OSError from inside 'stat()'; if it is "ignore", we silently drop any missing source files; if it is "newer", any missing source files make us assume that 'target' is out-of-date (this is handy in "dry-run" mode: it'll make you pretend to carry out commands that wouldn't work because inputs are missing, but that doesn't matter because you're not actually going to run the commands). rr)rrignorerN)rrrr r)rr ZmissingrZ target_mtimer source_mtimer r r newer_group6s      r)__doc__rZdistutils.errorsrrrrr r r r s    PK!B'__pycache__/archive_util.cpython-35.pycnu[ Yf&@sdZddlZddlmZddlZyddlZWnek rXdZYnXddlmZddl m Z ddl m Z ddl mZyddlmZWnek rdZYnXydd lmZWnek rdZYnXd d Zd d ZdddddddZddddZded&gdfded'gdfded(gdfded)gdfded*gdfd egd!fiZd"d#Zddddddd$d%ZdS)+zodistutils.archive_util Utility functions for creating archive files (tarballs, zip files, that sort of thing).N)warn)DistutilsExecError)spawn)mkpath)log)getpwnam)getgrnamc Cs_tdks|dkrdSyt|}Wntk rFd}YnX|dk r[|dSdS)z"Returns a gid, given a group name.N)rKeyError)nameresultr ;/opt/alt/python35/lib64/python3.5/distutils/archive_util.py_get_gids   rc Cs_tdks|dkrdSyt|}Wntk rFd}YnX|dk r[|dSdS)z"Returns an uid, given a user name.Nr )rr )r r r r r_get_uid+s   rgzipc sddddddddddi}dd dd dd dd i}|dk rl||jkrltd |d} |dkr| |j|d7} ttjj| d|ddl} tj dt t fdd} |sE| j | d||} z| j |d| Wd| jX|dkrtdt| ||} tjdkr|| | g}n|d| g}t|d|| S| S)a=Create a (possibly compressed) tar file from all the files under 'base_dir'. 'compress' must be "gzip" (the default), "bzip2", "xz", "compress", or None. ("compress" will be deprecated in Python 3.2) 'owner' and 'group' can be used to define an owner and a group for the archive that is being built. If not provided, the current owner and group will be used. The output tar file will be named 'base_dir' + ".tar", possibly plus the appropriate compression extension (".gz", ".bz2", ".xz" or ".Z"). Returns the output filename. rZgzbzip2bz2xzNcompressz.gzz.bz2z.xzz.ZzKbad value for 'compress': must be None, 'gzip', 'bzip2', 'xz' or 'compress'z.tardry_runrzCreating tar archivecs@dk r|_|_dk r<|_|_|S)N)gidZgnameuiduname)Ztarinfo)rgroupownerrr r _set_uid_gidas      z"make_tarball.._set_uid_gidzw|%sfilterz'compress' will be deprecated.win32z-f)keys ValueErrorgetrospathdirnametarfilerinforropenaddcloserPendingDeprecationWarningsysplatformr) base_namebase_dirrverboserrrZtar_compressionZ compress_extZ archive_namer&rtarZcompressed_namecmdr )rrrrr make_tarball7s<             r3c Cs|d}ttjj|d|tdkr|rAd}nd}y td|||gd|Wqtk rtd|YqXntjd|||sytj |d d tj }Wn-t k rtj |d d tj }YnXxtj |D]t\}}} xb| D]Z} tjjtjj|| } tjj| r|j| | tjd | qWqW|j|S) avCreate a zip file from all the files under 'base_dir'. The output zip file will be named 'base_name' + ".zip". Uses either the "zipfile" Python module (if available) or the InfoZIP "zip" utility (if installed and found on the default search path). If neither tool is available, raises DistutilsExecError. Returns the name of the output zip file. z.ziprNz-rz-rqzipzkunable to create zip file '%s': could neither import the 'zipfile' module nor find a standalone zip utilityz#creating '%s' and adding '%s' to itwZ compressionz adding '%s')rr#r$r%zipfilerrrr'ZZipFileZ ZIP_DEFLATED RuntimeErrorZ ZIP_STOREDwalknormpathjoinisfilewriter*) r.r/r0rZ zip_filenameZ zipoptionsr4dirpathZdirnames filenamesr r$r r r make_zipfiles:         ! r?Zgztarrzgzip'ed tar-fileZbztarrzbzip2'ed tar-fileZxztarrzxz'ed tar-fileZztarzcompressed tar filer1zuncompressed tar filer4zZIP filecCs%x|D]}|tkr|SqWdS)zqReturns the first format from the 'format' list that is unknown. If all formats are known, returns None N)ARCHIVE_FORMATS)Zformatsformatr r rcheck_archive_formatss  rBcCs7tj}|dk rMtjd|tjj|}|sMtj||dkrbtj}d|i} yt|} Wn"t k rt d|YnX| d} x"| dD]\} } | | | sB         G5 PK!*[#__pycache__/__init__.cpython-35.pycnu[ Yf@s5dZddlZejdejjdZdS)zdistutils The main package for the Python Module Distribution Utilities. Normally used from a setup script as from distutils.core import setup setup (...) N )__doc__sysversionindex __version__rr7/opt/alt/python35/lib64/python3.5/distutils/__init__.py s PK!% ?D?D.__pycache__/msvc9compiler.cpython-35.opt-2.pycnu[ ]w@sddlZddlZddlZddlZddlmZmZmZmZm Z ddl m Z m Z m Z ddlmZddlmZddlZejZejZejZejZejejejejfZej dkoej!d&kZ"e"rd Z#d Z$d Z%nd Z#d Z$dZ%ddddddiZ&GdddZ'GdddZ(ddZ)ddZ*ddZ+ddZ,dd d!Z-e)Z.e.d"kred#e.Gd$d%d%e Z/dS)'N)DistutilsExecErrorDistutilsPlatformError CompileErrorLibError LinkError) CCompilergen_preprocess_optionsgen_lib_options)log) get_platformwin32 z1Software\Wow6432Node\Microsoft\VisualStudio\%0.1fz5Software\Wow6432Node\Microsoft\Microsoft SDKs\Windowsz,Software\Wow6432Node\Microsoft\.NETFrameworkz%Software\Microsoft\VisualStudio\%0.1fz)Software\Microsoft\Microsoft SDKs\Windowsz Software\Microsoft\.NETFrameworkx86z win-amd64amd64zwin-ia64Zia64c@speZdZddZeeZddZeeZddZeeZddZeeZd S) RegcCsMx:tD]2}|j||}|r||kr||SqWt|dS)N)HKEYS read_valuesKeyError)clspathkeybasedr2/opt/alt/python35/lib64/python3.5/msvc9compiler.py get_valueAs   z Reg.get_valuecCsyt||}Wntk r+dSYnXg}d}xDyt||}Wntk rcPYnX|j||d7}q;W|S)Nr) RegOpenKeyExRegError RegEnumKeyappend)rrrhandleLikrrr read_keysIs    z Reg.read_keysc Csyt||}Wntk r+dSYnXi}d}xhyt||\}}}Wntk rlPYnX|j}|j|||j|<|d7}q;W|S)Nrr)rr RegEnumValuelower convert_mbcs) rrrr"rr$namevaluetyperrrr[s    zReg.read_valuesc CsGt|dd}|dk rCy|d}Wntk rBYnX|S)Ndecodembcs)getattr UnicodeError)sZdecrrrr)qs  zReg.convert_mbcsN) __name__ __module__ __qualname__r classmethodr&rr) staticmethodrrrrr=s        rc@s@eZdZddZddZddZddZd S) MacroExpandercCs'i|_t||_|j|dS)N)macrosVS_BASEvsbase load_macros)selfversionrrr__init__}s  zMacroExpander.__init__cCs!tj|||jd|r?r;rHrrrrr7{s    r7cCsd}tjj|}|d kr(dS|t|}tj|djdd\}}t|dd d}|dkr|d7}t|ddd}|dkrd }|dkr||SdS) NzMSC v.r r g$@r)sysr=findlensplitint)prefixr$r1restZ majorVersionZ minorVersionrrrget_build_versions %    rVcCsFg}x9|D]1}tjj|}||kr |j|q W|S)N)osrnormpathr!)pathsZ reduced_pathsrCZnprrrnormalize_and_reduce_pathss   rZcCsX|jtj}g}x'|D]}||kr|j|qWtjj|}|S)N)rRrWpathsepr!join)variableZoldListZnewListr$Z newVariablerrrremoveDuplicatess  r^c Cs^t|}ytjd|d}Wn%tk rKtjdd}YnX| sftjj| r d|}tj j |d}|rtjj|rtjj |tj tj d}tjj |}tjj|s tjd|dSntjd||s"tjddStjj |d }tjj|rM|Stjd dS) Nz %s\Setup\VCr@z%Unable to find productdir in registryzVS%0.f0COMNTOOLSZVCz%s is not a valid directoryz Env var %s is not set or invalidzNo productdir foundz vcvarsall.batzUnable to find vcvarsall.bat)r9rrrr debugrWrisdirenvirongetr\pardirabspathisfile)r=r:r@ZtoolskeyZtoolsdir vcvarsallrrrfind_vcvarsalls2       !  rgc Cst|}td}i}|dkr6tdtjd||tjd||fdtjd tj}z|j\}}|j d krt|j d |j d }x|j d D]}t j |}d |krq|j}|j d d\} } | j} | |kr| jtjrQ| dd} t| || VERSION_MSVCCompiler__versionZ_MSVCCompiler__root_MSVCCompiler__paths plat_name_MSVCCompiler__arch initialized)r<verbosedry_runforcerrrr>Js     zMSVCCompiler.__init__NcCs|dkrt}d$}||kr:td|fdtjkrdtjkr|jdrd|_d|_d |_d |_d |_ n |tks|dkrt |}nt td t |}t t |}|d j tj|_|dtjd<|dtjd|)rz*\s*zI|)w) openreadrwrerDOTALLrHsearchwriteOSError)r<Z manifest_fileZ manifest_fZ manifest_bufpatternrrrrs.      z!MSVCCompiler._remove_visual_c_refcCsd|S)Nz /LIBPATH:r)r<dirrrrlibrary_dir_optionszMSVCCompiler.library_dir_optioncCstddS)Nzrrrrrrrrrrrrrrrrrr,sP      X VR  +   rl)0rWrprOrZdistutils.errorsrrrrrZdistutils.ccompilerrrr Z distutilsr Zdistutils.utilr winregZ OpenKeyExrZEnumKeyr Z EnumValuer'errorrZ HKEY_USERSHKEY_CURRENT_USERHKEY_LOCAL_MACHINEZHKEY_CLASSES_ROOTrplatformmaxsizeZ NATIVE_WIN64r9rBrArrr7rVrZr^rgrrrrrrrsL    (        >.   #)  PK!E>E>-__pycache__/msvccompiler.cpython-35.opt-1.pycnu[ Yf\@sdZddlZddlZddlmZmZmZmZmZddl m Z m Z m Z ddl mZdZy@ddlZdZeZejZejZejZejZWnek r:yLddlZddlZdZeZejZejZejZejZWnek r5ejdYnXYnXer_ejejej ej!fZ"d d Z#d d Z$d dZ%GdddZ&ddZ'ddZ(ddZ)Gddde Z*e'dkrej+de*Z,ddl-m*Z*ddl-m&Z&dS)zdistutils.msvccompiler Contains MSVCCompiler, an implementation of the abstract CCompiler class for the Microsoft Visual Studio. N)DistutilsExecErrorDistutilsPlatformError CompileErrorLibError LinkError) CCompilergen_preprocess_optionsgen_lib_options)logFTzWarning: Can't read registry to find the necessary compiler setting Make sure that Python modules winreg, win32api or win32con are installed.cCsyt||}Wntk r+dSYnXg}d}xDyt||}Wntk rcPYnX|j||d7}q;W|S)zReturn list of registry keys.Nr) RegOpenKeyExRegError RegEnumKeyappend)basekeyhandleLikr;/opt/alt/python35/lib64/python3.5/distutils/msvccompiler.py read_keys7s    rcCsyt||}Wntk r+dSYnXi}d}xbyt||\}}}Wntk rlPYnX|j}t||t|<|d7}q;W|S)zXReturn dict of registry keys and values. All names are converted to lowercase. Nrr )r r RegEnumValuelower convert_mbcs)rrrdrnamevaluetyperrr read_valuesHs    r c CsGt|dd}|dk rCy|d}Wntk rBYnX|S)Ndecodembcs)getattr UnicodeError)sZdecrrrr]s  rc@s@eZdZddZddZddZddZd S) MacroExpandercCsi|_|j|dS)N)macros load_macros)selfversionrrr__init__gs zMacroExpander.__init__cCs@x9tD]1}t||}|r|||jd|sZ(                   -   PK!bz&__pycache__/spawn.cpython-35.opt-1.pycnu[ Yf@sdZddlZddlZddlmZmZddlmZddlm Z dddddZ d d Z dddd d Z ej d krddlmZdadadddddZdddZdS)zdistutils.spawn Provides the 'spawn()' function, a front-end to various platform- specific functions for launching another program in a sub-process. Also provides the 'find_executable()' to search the path for a given executable name. N)DistutilsPlatformErrorDistutilsExecError)DEBUG)logcCsmt|}tjdkr1t||d|n8tjdkrVt||d|ntdtjdS)aRun another program, specified as a command list 'cmd', in a new process. 'cmd' is just the argument list for the new process, ie. cmd[0] is the program to run and cmd[1:] are the rest of its arguments. There is no way to run a program with a name different from that of its executable. If 'search_path' is true (the default), the system's executable search path will be used to find the program; otherwise, cmd[0] must be the exact path to the executable. If 'dry_run' is true, the command will not actually be run. Raise DistutilsExecError if running the program fails in any way; just return on success. posixdry_runntz1don't know how to spawn programs on platform '%s'N)listosname _spawn_posix _spawn_ntr)cmd search_pathverboserr4/opt/alt/python35/lib64/python3.5/distutils/spawn.pyspawns rcCs;x4t|D]&\}}d|kr d|||es z _spawn_posix...cSsg|]}t|qSr)r))r*r+rrrr,ks zF$MACOSX_DEPLOYMENT_TARGET mismatch: now "%s" but "%s" during configurezunable to execute %r: %s rz(unable to execute %r for unknown reasonszcommand %r failed: %sz"command %r terminated by signal %dz%command %r failed with exit status %dz1unknown error executing %r: termination status %dr)"rrrr execvpexecvsysplatform _cfg_targetr&get_config_varsplit_cfg_target_splitenvirongetrdictexecvpeexecveforkr!rstderrwritestrerror_exitwaitpidrr WIFSIGNALEDWTERMSIG WIFEXITED WEXITSTATUS WIFSTOPPED)rrrrr"Zexec_fnenvZ cur_targetZmy_msgpideZstatusr$Z exit_statusrrrr Xs  "         - r cCs|dkrtjd}|jtj}tjj|\}}tjdkrh|dkrh|d}tjj|sx9|D]1}tjj ||}tjj|r|SqWdS|SdS)zTries to find 'executable' in the directories listed in 'path'. A string listing directories separated by 'os.pathsep'; defaults to os.environ['PATH']. Returns the complete filename or None if not found. NPATHwin32z.exe) r r6r4pathseppathsplitextr0r1isfiler)r"rLpathsbaseZextpfrrrrs    r)__doc__r0r Zdistutils.errorsrrZdistutils.debugrZ distutilsrrrrr1r&r2r5r rrrrrs   QPK!233#__pycache__/dir_util.cpython-35.pycnu[ Yfb@sdZddlZddlZddlmZmZddlmZiadddddZ dddd d Z ddddddd d Z d dZ ddddZ ddZdS)zWdistutils.dir_util Utility functions for manipulating directories and directory trees.N)DistutilsFileErrorDistutilsInternalError)logic Cst|ts"td|ftjj|}g}tjj|sX|dkr\|Stjtjj |r{|Stjj |\}}|g}xK|r|rtjj| rtjj |\}}|j d|qWx|D]}tjj ||}tjj |} tj| r0q|dkrLt jd||sytj||Wnftk r} zF| jtjkotjj|std|| jdfWYdd} ~ XnX|j|dt|  "  $- r$cCsvt}x6|D].}|jtjj|tjj|qWx-t|D]}t||d|d|qOWdS)aCreate all the empty directories under 'base_dir' needed to put 'files' there. 'base_dir' is just the name of a directory which doesn't necessarily exist yet; 'files' is a list of filenames to be interpreted relative to 'base_dir'. 'base_dir' + the directory portion of every file in 'files' will be created if it doesn't already exist. 'mode', 'verbose' and 'dry_run' flags are as for 'mkpath()'. rrN)setaddr r rdirnamesortedr$)Zbase_dirfilesrrrZneed_dirfiledirr"r"r# create_treePs  ,r,cCsddlm}| r:tjj| r:td|ytj|} WnMtk r} z-|rqg} ntd|| jfWYdd} ~ XnX|st |d|g} x(| D] } tjj || } tjj || }| j drq|rntjj | rntj | }|dkrHtjd |||s^tj||| j|qtjj| r| jt| |||||d|d |q|| ||||d|d || j|qW| S) aCopy an entire directory tree 'src' to a new location 'dst'. Both 'src' and 'dst' must be directory names. If 'src' is not a directory, raise DistutilsFileError. If 'dst' does not exist, it is created with 'mkpath()'. The end result of the copy is that every file in 'src' is copied to 'dst', and directories under 'src' are recursively copied to 'dst'. Return the list of files that were copied or might have been copied, using their output name. The return value is unaffected by 'update' or 'dry_run': it is simply the list of all files under 'src', with the names changed to be under 'dst'. 'preserve_mode' and 'preserve_times' are the same as for 'copy_file'; note that they only apply to regular files, not to directories. If 'preserve_symlinks' is true, symlinks will be copied as symlinks (on platforms that support them!); otherwise (the default), the destination of the symlink will be copied. 'update' and 'verbose' are the same as for 'copy_file'. r) copy_filez&cannot copy tree '%s': not a directoryzerror listing files in '%s': %sNrz.nfsrzlinking %s -> %sr)Zdistutils.file_utilr-r r r rlistdirrstrerrorr$r startswithislinkreadlinkrrsymlinkrextend copy_tree)srcZdstZ preserve_modeZpreserve_timesZpreserve_symlinksupdaterrr-nameseZoutputsnZsrc_nameZdst_nameZ link_destr"r"r#r5csH  )     r5cCsxwtj|D]f}tjj||}tjj|r`tjj| r`t||q|jtj|fqW|jtj |fdS)zHelper for remove_tree().N) r r.r rr r1_build_cmdtuplerremovermdir)r cmdtuplesfZreal_fr"r"r#r;s %r;cCs|dkrtjd||r&dSg}t||x|D]}y?|d|dtjj|d}|tkrt|=Wq@tk r}ztjd||WYdd}~Xq@Xq@WdS)zRecursively remove an entire directory tree. Any errors are ignored (apart from being reported to stdout if 'verbose' is true). rz'removing '%s' (and everything under it)Nrzerror removing %s: %s) rrr;r r rrrwarn)Z directoryrrr>cmdrr!r"r"r# remove_trees     rBcCsItjj|\}}|ddtjkrE||dd}|S)zTake the full path 'path', and make it a relative path. This is useful to make 'path' the second argument to os.path.join(). rrN)r r splitdrivesep)r Zdriver"r"r#ensure_relativesrE)__doc__r rZdistutils.errorsrrZ distutilsrrr$r,r5r;rBrEr"r"r"r#s  ?D PK!89+__pycache__/versionpredicate.cpython-35.pycnu[ Yf  @sdZddlZddlZddlZejdejZejdZejdZ ddZ dej d ej d ej d ejd ejd ejiZGdddZdaddZdS)zBModule for parsing and testing package version predicate strings. Nz'(?i)^\s*([a-z_]\w*(?:\.[a-z_]\w*)*)(.*)z^\s*\((.*)\)\s*$z%^\s*(<=|>=|<|>|!=|==)\s*([^\s,]+)\s*$cCsMtj|}|s%td||j\}}|tjj|fS)zVParse a single version comparison. Return (comparison string, StrictVersion) z"bad package restriction syntax: %r)re_splitComparisonmatch ValueErrorgroups distutilsversion StrictVersion)predrescompZverStrr ?/opt/alt/python35/lib64/python3.5/distutils/versionpredicate.pysplitUps rz>=z!=c@s:eZdZdZddZddZddZdS) VersionPredicateaParse and test package version predicates. >>> v = VersionPredicate('pyepat.abc (>1.0, <3333.3a1, !=1555.1b3)') The `name` attribute provides the full dotted name that is given:: >>> v.name 'pyepat.abc' The str() of a `VersionPredicate` provides a normalized human-readable version of the expression:: >>> print(v) pyepat.abc (> 1.0, < 3333.3a1, != 1555.1b3) The `satisfied_by()` method can be used to determine with a given version number is included in the set described by the version restrictions:: >>> v.satisfied_by('1.1') True >>> v.satisfied_by('1.4') True >>> v.satisfied_by('1.0') False >>> v.satisfied_by('4444.4') False >>> v.satisfied_by('1555.1b3') False `VersionPredicate` is flexible in accepting extra whitespace:: >>> v = VersionPredicate(' pat( == 0.1 ) ') >>> v.name 'pat' >>> v.satisfied_by('0.1') True >>> v.satisfied_by('0.2') False If any version numbers passed in do not conform to the restrictions of `StrictVersion`, a `ValueError` is raised:: >>> v = VersionPredicate('p1.p2.p3.p4(>=1.0, <=1.3a1, !=1.2zb3)') Traceback (most recent call last): ... ValueError: invalid version number '1.2zb3' It the module or package name given does not conform to what's allowed as a legal module or package name, `ValueError` is raised:: >>> v = VersionPredicate('foo-bar') Traceback (most recent call last): ... ValueError: expected parenthesized list: '-bar' >>> v = VersionPredicate('foo bar (12.21)') Traceback (most recent call last): ... ValueError: expected parenthesized list: 'bar (12.21)' cCs|j}|stdtj|}|sCtd||j\|_}|j}|rtj|}|std||jd}dd|jdD|_|jstd|n g|_d S) z*Parse a version predicate string. zempty package restrictionzbad package name in %rzexpected parenthesized list: %rrcSsg|]}t|qSr )r).0ZaPredr r r ts z-VersionPredicate.__init__..,zempty parenthesized list in %rN) striprre_validPackagerrnamere_parensplitr )selfZversionPredicateStrrZparenstrr r r __init__`s$     zVersionPredicate.__init__cCsF|jr;dd|jD}|jddj|dS|jSdS)NcSs*g|] \}}|dt|qS) )r)rcondverr r r r}s z,VersionPredicate.__str__..z (z, ))r rjoin)rseqr r r __str__{s zVersionPredicate.__str__cCs5x.|jD]#\}}t|||s dSq WdS)zTrue if version is compatible with all the predicates in self. The parameter version must be acceptable to the StrictVersion constructor. It may be either a string or StrictVersion. FT)r compmap)rrrrr r r satisfied_byszVersionPredicate.satisfied_byN)__name__ __module__ __qualname____doc__rr#r%r r r r rs ?  rcCstdkr!tjdtja|j}tj|}|sRtd||jdpdd}|rtj j |}|jd|fS)a9Return the name and optional version number of a provision. The version number, if given, will be returned as a `StrictVersion` instance, otherwise it will be `None`. >>> split_provision('mypkg') ('mypkg', None) >>> split_provision(' mypkg( 1.2 ) ') ('mypkg', StrictVersion ('1.2')) Nz=([a-zA-Z_]\w*(?:\.[a-zA-Z_]\w*)*)(?:\s*\(\s*([^)\s]+)\s*\))?$z"illegal provides specification: %r) _provision_rxrecompileASCIIrrrgrouprrr)valuemrr r r split_provisions   r3)r)r-Zdistutils.versionroperatorr.r/rrrrltleeqgtgener$rr,r3r r r r s      !nPK!ӧ UU'__pycache__/errors.cpython-35.opt-1.pycnu[ Yf @sdZGdddeZGdddeZGdddeZGdddeZGd d d eZGd d d eZGd ddeZGdddeZ GdddeZ GdddeZ GdddeZ GdddeZ GdddeZGdddeZGdddeZGdd d eZGd!d"d"eZGd#d$d$eZGd%d&d&eZd'S)(adistutils.errors Provides exceptions used by the Distutils modules. Note that Distutils modules may raise standard exceptions; in particular, SystemExit is usually raised for errors that are obviously the end-user's fault (eg. bad command-line arguments). This module is safe to use in "from ... import *" mode; it only exports symbols whose names start with "Distutils" and end with "Error".c@seZdZdZdS)DistutilsErrorzThe root of all Distutils evil.N)__name__ __module__ __qualname____doc__rr5/opt/alt/python35/lib64/python3.5/distutils/errors.pyr s rc@seZdZdZdS)DistutilsModuleErrorzUnable to load an expected module, or to find an expected class within some module (in particular, command modules and classes).N)rrrrrrrrrs rc@seZdZdZdS)DistutilsClassErrorzSome command class (or possibly distribution class, if anyone feels a need to subclass Distribution) is found not to be holding up its end of the bargain, ie. implementing some part of the "command "interface.N)rrrrrrrrr s r c@seZdZdZdS)DistutilsGetoptErrorz7The option table provided to 'fancy_getopt()' is bogus.N)rrrrrrrrr s r c@seZdZdZdS)DistutilsArgErrorzaRaised by fancy_getopt in response to getopt.error -- ie. an error in the command line usage.N)rrrrrrrrr s r c@seZdZdZdS)DistutilsFileErrorzAny problems in the filesystem: expected file not found, etc. Typically this is for problems that we detect before OSError could be raised.N)rrrrrrrrr $s r c@seZdZdZdS)DistutilsOptionErroraSyntactic/semantic errors in command options, such as use of mutually conflicting options, or inconsistent options, badly-spelled values, etc. No distinction is made between option values originating in the setup script, the command line, config files, or what-have-you -- but if we *know* something originated in the setup script, we'll raise DistutilsSetupError instead.N)rrrrrrrrr *s r c@seZdZdZdS)DistutilsSetupErrorzqFor errors that can be definitely blamed on the setup script, such as invalid keyword arguments to 'setup()'.N)rrrrrrrrr3s rc@seZdZdZdS)DistutilsPlatformErrorzWe don't know how to do something on the current platform (but we do know how to do it on some platform) -- eg. trying to compile C files on a platform not supported by a CCompiler subclass.N)rrrrrrrrr8s rc@seZdZdZdS)DistutilsExecErrorz`Any problems executing an external program (such as the C compiler, when compiling C files).N)rrrrrrrrr>s rc@seZdZdZdS)DistutilsInternalErrorzoInternal inconsistencies or impossibilities (obviously, this should never be seen if the code is working!).N)rrrrrrrrrCs rc@seZdZdZdS)DistutilsTemplateErrorz%Syntax error in a file list template.N)rrrrrrrrrHs rc@seZdZdZdS)DistutilsByteCompileErrorzByte compile error.N)rrrrrrrrrKs rc@seZdZdZdS)CCompilerErrorz#Some compile/link operation failed.N)rrrrrrrrrOs rc@seZdZdZdS)PreprocessErrorz.Failure to preprocess one or more C/C++ files.N)rrrrrrrrrRs rc@seZdZdZdS) CompileErrorz2Failure to compile one or more C/C++ source files.N)rrrrrrrrrUs rc@seZdZdZdS)LibErrorzKFailure to create a static library from one or more C/C++ object files.N)rrrrrrrrrXs rc@seZdZdZdS) LinkErrorz]Failure to link one or more C/C++ object files into an executable or shared library file.N)rrrrrrrrr\s rc@seZdZdZdS)UnknownFileErrorz(Attempt to process an unknown file type.N)rrrrrrrrr`s rN)r Exceptionrrr r r r r rrrrrrrrrrrrrrrr s& PK!ӧ UU!__pycache__/errors.cpython-35.pycnu[ Yf @sdZGdddeZGdddeZGdddeZGdddeZGd d d eZGd d d eZGd ddeZGdddeZ GdddeZ GdddeZ GdddeZ GdddeZ GdddeZGdddeZGdddeZGdd d eZGd!d"d"eZGd#d$d$eZGd%d&d&eZd'S)(adistutils.errors Provides exceptions used by the Distutils modules. Note that Distutils modules may raise standard exceptions; in particular, SystemExit is usually raised for errors that are obviously the end-user's fault (eg. bad command-line arguments). This module is safe to use in "from ... import *" mode; it only exports symbols whose names start with "Distutils" and end with "Error".c@seZdZdZdS)DistutilsErrorzThe root of all Distutils evil.N)__name__ __module__ __qualname____doc__rr5/opt/alt/python35/lib64/python3.5/distutils/errors.pyr s rc@seZdZdZdS)DistutilsModuleErrorzUnable to load an expected module, or to find an expected class within some module (in particular, command modules and classes).N)rrrrrrrrrs rc@seZdZdZdS)DistutilsClassErrorzSome command class (or possibly distribution class, if anyone feels a need to subclass Distribution) is found not to be holding up its end of the bargain, ie. implementing some part of the "command "interface.N)rrrrrrrrr s r c@seZdZdZdS)DistutilsGetoptErrorz7The option table provided to 'fancy_getopt()' is bogus.N)rrrrrrrrr s r c@seZdZdZdS)DistutilsArgErrorzaRaised by fancy_getopt in response to getopt.error -- ie. an error in the command line usage.N)rrrrrrrrr s r c@seZdZdZdS)DistutilsFileErrorzAny problems in the filesystem: expected file not found, etc. Typically this is for problems that we detect before OSError could be raised.N)rrrrrrrrr $s r c@seZdZdZdS)DistutilsOptionErroraSyntactic/semantic errors in command options, such as use of mutually conflicting options, or inconsistent options, badly-spelled values, etc. No distinction is made between option values originating in the setup script, the command line, config files, or what-have-you -- but if we *know* something originated in the setup script, we'll raise DistutilsSetupError instead.N)rrrrrrrrr *s r c@seZdZdZdS)DistutilsSetupErrorzqFor errors that can be definitely blamed on the setup script, such as invalid keyword arguments to 'setup()'.N)rrrrrrrrr3s rc@seZdZdZdS)DistutilsPlatformErrorzWe don't know how to do something on the current platform (but we do know how to do it on some platform) -- eg. trying to compile C files on a platform not supported by a CCompiler subclass.N)rrrrrrrrr8s rc@seZdZdZdS)DistutilsExecErrorz`Any problems executing an external program (such as the C compiler, when compiling C files).N)rrrrrrrrr>s rc@seZdZdZdS)DistutilsInternalErrorzoInternal inconsistencies or impossibilities (obviously, this should never be seen if the code is working!).N)rrrrrrrrrCs rc@seZdZdZdS)DistutilsTemplateErrorz%Syntax error in a file list template.N)rrrrrrrrrHs rc@seZdZdZdS)DistutilsByteCompileErrorzByte compile error.N)rrrrrrrrrKs rc@seZdZdZdS)CCompilerErrorz#Some compile/link operation failed.N)rrrrrrrrrOs rc@seZdZdZdS)PreprocessErrorz.Failure to preprocess one or more C/C++ files.N)rrrrrrrrrRs rc@seZdZdZdS) CompileErrorz2Failure to compile one or more C/C++ source files.N)rrrrrrrrrUs rc@seZdZdZdS)LibErrorzKFailure to create a static library from one or more C/C++ object files.N)rrrrrrrrrXs rc@seZdZdZdS) LinkErrorz]Failure to link one or more C/C++ object files into an executable or shared library file.N)rrrrrrrrr\s rc@seZdZdZdS)UnknownFileErrorz(Attempt to process an unknown file type.N)rrrrrrrrr`s rN)r Exceptionrrr r r r r rrrrrrrrrrrrrrrr s& PK!=J.3.3*__pycache__/sysconfig.cpython-35.opt-1.pycnu[ YfP @sdZddlZddlZddlZddlZddlmZejjej Z ejjej Z ejjej ZejjejZdejkrejjejdZn!ejjejjejZejdkr(ejjd,r(ejjejjeZd d Zeed dZerejdkrejjd-rejjejjeZd d ZeZdZyesejZWne k rYnXddZ!ddddZ"dddddZ#ddZ$ddZ%ddZ&dddZ'ej(dZ)ej(dZ*ej(dZ+dd d!Z,d"d#Z-da.d$d%Z/d&d'Z0d(d)Z1d*d+Z2dS).aProvide access to Python's configuration information. The specific configuration variables available depend heavily on the platform and configuration. The values may be retrieved using get_config_var(name), and the list of variables is available via get_config_vars().keys(). Additional convenience functions are also available. Written by: Fred L. Drake, Jr. Email: N)DistutilsPlatformErrorZ_PYTHON_PROJECT_BASEnt\pcbuild\win32\pcbuild\amd64cCs=x6dD].}tjjtjj|d|rdSqWdS)N Setup.dist Setup.localModulesTF)rr)ospathisfilejoin)dfnr8/opt/alt/python35/lib64/python3.5/distutils/sysconfig.py_is_python_source_dir)s $r_homecCstrttSttS)N) _sys_homer project_baserrrr _python_build2s rcCstjddS)zReturn a string containing the major and minor Python version, leaving off the patchlevel. Sample return values could be '1.5' or '2.2'. N)sysversionrrrrget_python_versionDsrcCs|dkr|rtpt}tjdkrtrn|rCtpBtStjjt dd}tjj |Sdt t }tjj|d|Stjdkrtjj|dSt dtjdS) aReturn the directory containing installed Python header files. If 'plat_specific' is false (the default), this is the path to the non-platform-specific header files, i.e. Python.h and so on; otherwise, this is the path to platform-specific header files (namely pyconfig.h). If 'prefix' is supplied, use it instead of sys.base_prefix or sys.base_exec_prefix -- i.e., ignore 'plat_specific'. NposixsrcdirZIncludepythonincluderzFI don't know where Python installs its C header files on platform '%s')BASE_EXEC_PREFIX BASE_PREFIXr name python_buildrrr r get_config_varnormpathr build_flagsr) plat_specificprefixZincdirZ python_dirrrrget_python_incLs  r)cCs|dkr9|r'|rtp!t}n|r3tp6t}tjdkr|sT|r]d}nd}tjj||dt}|r|Stjj|dSnTtjdkr|rtjj|dStjj|ddSnt d tjdS) aSReturn the directory containing the Python library (standard or site additions). If 'plat_specific' is true, return the directory containing platform-specific modules, i.e. any module from a non-pure-Python module distribution; otherwise, return the platform-shared library directory. If 'standard_lib' is true, return the directory containing standard Python library modules; otherwise, return the directory for site-specific modules. If 'prefix' is supplied, use it instead of sys.base_prefix or sys.base_exec_prefix -- i.e., ignore 'plat_specific'. Nrlib64librz site-packagesrZLibz?I don't know where Python installs its library on platform '%s') r r! EXEC_PREFIXPREFIXr r"r r rr)r' standard_libr(r+Z libpythonrrrget_python_libos(    r/cCs|jdkrtjdkrMtdsMddl}|jtdtdrAZccZcxxZoptZcflagsZccsharedZldsharedZ shlib_suffixarZar_flagsZnewccZcppr?Zcc_cmdrrrrBs\    0      rBcCsdtrBtjdkr3tjjtp'td}qQtp<t}ntdd}tjj|dS)z2Return full pathname of installed pyconfig.h file.rPCr'rz pyconfig-64.h)r#r r"r r rrr))inc_dirrrrget_config_h_filenames rKcCs_trtjjtptdStdddd}djtt }tjj||dS)zAReturn full pathname of installed Makefile from the Python build.Makefiler'rr.rz config-{}{}) r#r r r rrr/formatrr&)Zlib_dirZ config_filerrrget_makefile_filenames rNc Cs|dkri}tjd}tjd}x|j}|sFP|j|}|r|jdd\}}yt|}Wntk rYnX||| sZ    !      #+ I m  $  JPK!E )__pycache__/__init__.cpython-35.opt-2.pycnu[ ]@s/ddlZejdejjdZdS)N )sysversionindex __version__rr-/opt/alt/python35/lib64/python3.5/__init__.py s PK!:$ __pycache__/debug.cpython-35.pycnu[ Yf@s"ddlZejjdZdS)NZDISTUTILS_DEBUG)osenvirongetDEBUGrr4/opt/alt/python35/lib64/python3.5/distutils/debug.pys PK!-!-!-__pycache__/fancy_getopt.cpython-35.opt-2.pycnu[ ]xE@sBddlZddlZddlZddlZddlTdZejdeZejdeefZe j ddZ Gdd d Z d d Z d d ejDZddZddZGdddZedkr>dZxKddddfD]7ZedeedjeeeeqWdS)N)*z[a-zA-Z](?:[a-zA-Z0-9-]*)z^%s$z ^(%s)=!(%s)$-_c@seZdZdddZddZddZdddd Zd d Zd d ZddZ ddZ ddZ ddZ ddddZ ddZdddZddddZdS) FancyGetoptNcCsq||_i|_|jr%|ji|_i|_g|_g|_i|_i|_i|_ g|_ dS)N) option_table option_index _build_indexaliasnegative_alias short_opts long_opts short2long attr_name takes_arg option_order)selfrr1/opt/alt/python35/lib64/python3.5/fancy_getopt.py__init__)s           zFancyGetopt.__init__cCs6|jjx"|jD]}||j|d= 2z:invalid short option '%s': must a single character or None=:z>invalid negative alias '%s': aliased option '%s' takes a valuezginvalid alias '%s': inconsistent with aliased option '%s' (one of them takes a value, the other doesn'tzEinvalid long option name '%s' (must be letters, numbers, hyphens onlyr,r,)r r r rrepeatrlen ValueError isinstancestrrrrr getr longopt_rematchrr)rrlongshorthelpr-Zalias_torrr_grok_option_tables^     "  !         zFancyGetopt._grok_option_tablec Cs|dkrtjdd}|dkr=t}d}nd}|jdj|j}y"tj|||j\}}Wn4tjk r}zt |WYdd}~XnXx|D]\}}t |dkr|ddkr|j |d}n|dd}|j j |} | r/| }|j|si|jj |} | rc| }d}nd}|j|} |r|jj | dk rt|| dd}t|| ||jj||fqW|r||fS|SdS)Nr)TF r(rr)sysargv OptionDummyr8joinr getoptr errorZDistutilsArgErrorr.r r r2rr rr-getattrsetattrrr) rargsobjectZcreated_objectr Zoptsmsgr"valr attrrrrr>sB     ""    zFancyGetopt.getoptcCs)|jdkrtdn|jSdS)Nz!'getopt()' hasn't been called yet)r RuntimeError)rrrrget_option_orderszFancyGetopt.get_option_ordercCsd}xs|jD]h}|d}|d}t|}|ddkrP|d}|dk rf|d}||kr|}qW|ddd}d}||} d|} |r|g} n dg} x|jD]}|dd \}}} t| | } |ddkr|dd}|dkrh| rN| jd ||| dfq| jd ||fnHd ||f}| r| jd ||| dfn| jd |x)| ddD]}| j| |qWqW| S)Nrr)r*r(Nr9zOption summary:r&z --%-*s %sz --%-*s z%s (-%s)z --%-*sr,r,r,)rr. wrap_textr)rheaderZmax_optrr5r6lZ opt_widthZ line_width text_widthZ big_indentlinesr7textZ opt_namesrrr generate_helpsF             ! zFancyGetopt.generate_helpcCsD|dkrtj}x(|j|D]}|j|dq%WdS)N )r:stdoutrQwrite)rrLfilelinerrr print_helphs  zFancyGetopt.print_help)__name__ __module__ __qualname__rrrrrrr#r$r%r8r>rHrQrWrrrrrs (       M= OrcCs)t|}|j||j||S)N)rr%r>)optionsZ negative_optrCrBparserrrr fancy_getoptos  r]cCsi|]}dt|qS)r9)ord).0Z_wscharrrr us r`cCsv|dkrgSt||kr)|gS|j}|jt}tjd|}dd|D}g}x|rqg}d}xq|rt|d}|||kr|j|d|d=||}q|r|dddkr|d =PqW|rX|dkr=|j|dd||d|d|d<|dddkrX|d=|jdj|qrW|S) Nz( +|-+)cSsg|]}|r|qSrr)r_Zchrrr s zwrap_text..rr)r9r,r,)r. expandtabsrWS_TRANSresplitrr=)rPwidthchunksrOcur_linecur_lenrMrrrrKws:      rKcCs |jtS)N)rr)r"rrrtranslate_longoptsrkc@seZdZgddZdS)r<cCs%x|D]}t||dqWdS)N)rA)rr[r"rrrrs zOptionDummy.__init__N)rXrYrZrrrrrr<s r<__main__zTra-la-la, supercalifragilisticexpialidocious. How *do* you spell that odd word, anyways? (Someone ask Mary -- she'll know [or she'll say, "How should I know?"].) (z width: %drR)r:stringrer>Zdistutils.errorsZ longopt_patcompiler3Z neg_alias_rer1 maketransrrr] whitespacerdrKrkr<rXrPwprintr=rrrr s&$  S  6  PK!=T0__pycache__/cygwinccompiler.cpython-35.opt-2.pycnu[ ]Z@@saddlZddlZddlZddlmZmZmZddlZddlm Z m Z ddl m Z ddl mZddlmZmZmZmZddlmZddlmZdd lmZd d ZGd d d e ZGdddeZdZdZdZddZ ej!dZ"ddZ#ddZ$ddZ%dS)N)PopenPIPE check_output)gen_preprocess_optionsgen_lib_options) UnixCCompiler) write_file)DistutilsExecErrorCCompilerError CompileErrorUnknownFileError)log) LooseVersion)find_executablecCstjjd}|dkrtj|d|d}|dkrLdgS|dkr_dgS|d krrd gS|d krd gS|d krdgStd|dS)NzMSC v. Z1300Zmsvcr70Z1310Zmsvcr71Z1400Zmsvcr80Z1500Zmsvcr90Z1600Zmsvcr100zUnknown MS Compiler version %s )sysversionfind ValueError)Zmsc_posZmsc_verr4/opt/alt/python35/lib64/python3.5/cygwinccompiler.py get_msvcr?s      rc @seZdZdZdZdZdZdZdZdZ dddd d Z d d Z d d d d d dd d d d dd Z ddddZ d S)CygwinCCompilercygwinz.oz.az.dllzlib%s%sz%s%sz.exerc CsPtj||||t\}}|jd||f|tk rY|jd|t\|_|_|_ |j|j d|j|j|j f|jdkrd|_ n d|_ |jdkrd}nd }|j d d d d dddddd|j |f|jdkr@dg|_ |jdn t|_ dS)Nz%Python's GCC status: %s (details: %s)zPython's pyconfig.h doesn't seem to support your compiler. Reason: %s. Compiling may fail because of undefined preprocessor macros.z: gcc %s, ld %s, dllwrap %s z2.10.90gccdllwrapz2.13z-sharedz -mdll -staticcompilerzgcc -mcygwin -O -Wall compiler_sozgcc -mcygwin -mdll -O -Wall compiler_cxxzg++ -mcygwin -O -Wall linker_exez gcc -mcygwin linker_soz%s -mcygwin %sz2.91.57msvcrtz,Consider upgrading to a newer version of gcc)r__init__check_config_hZ debug_print CONFIG_H_OKwarn get_versions gcc_version ld_versionZdllwrap_version compiler_type linker_dllset_executables dll_librariesr)selfverbosedry_runforcestatusZdetails shared_optionrrrr%ds<       zCygwinCCompiler.__init__cCs|dks|dkroy |jdd|d|gWqtk rk}zt|WYdd}~XqXn]y)|j|j||d|g|Wn1tk r}zt|WYdd}~XnXdS)Nz.rcz.resZwindresz-iz-o)spawnr r r )r0objsrcextZcc_argsextra_postargsZpp_optsmsgrrr_compiles " zCygwinCCompiler._compileNcCstj| pg} tj|p$g}tj|p9g}|j|j|dk r||jksy|jdkrtjj|d}tjjtjj |\}}tjj ||d}tjj |d|d}dtjj |dg}x|D]}|j |q W|j t ||fd||jd krx| jd |g| jd |gn |j || s| j d tj||||||||d| | | | | dS) Nrrz.deflibz.az LIBRARY %sZEXPORTSz writing %srz --output-libz--defz-s)copyextendr/Z EXECUTABLEr-ospathdirnamesplitextbasenamejoinappendZexecuterrlink)r0Z target_descZobjectsZoutput_filename output_dirZ librariesZ library_dirsZruntime_library_dirsZexport_symbolsdebugZ extra_preargsr:Z build_tempZ target_langZtemp_dirZdll_nameZ dll_extensionZdef_fileZlib_filecontentsZsymrrrrGs:          zCygwinCCompiler.linkcCs|dkrd}g}x|D]}tjjtjj|\}}||jddgkrxtd||f|rtjj|}|dkr|jtjj||||j q|jtjj|||j qW|S)NrK.rc.resz"unknown file type '%s' (from '%s'))rMrL) r@rArCnormcaseZsrc_extensionsr rDrFrE obj_extension)r0Zsource_filenamesZ strip_dirrHZ obj_namesZsrc_namebaser9rrrobject_filenamess   $ z CygwinCCompiler.object_filenames)__name__ __module__ __qualname__r,rOZstatic_lib_extensionZshared_lib_extensionZstatic_lib_formatZshared_lib_formatZ exe_extensionr%r<rGrQrrrrrYs ;   Krc@s+eZdZdZdddddZdS)Mingw32CCompilerZmingw32rcCstj|||||jdkr.d}nd}|jdkrLd}nd}trgtd|jdd d d d d dddd|j||fg|_t |_dS)Nz2.13z-sharedz -mdll -staticz2.91.57z--entry _DllMain@12rKz1Cygwin gcc cannot be used with --compiler=mingw32rz gcc -O -Wallr zgcc -mdll -O -Wallr!z g++ -O -Wallr"rr#z%s %s %s) rr%r+r* is_cygwingccr r.r-r/r)r0r1r2r3r5Z entry_pointrrrr%s&       zMingw32CCompiler.__init__N)rRrSrTr,r%rrrrrUs rUokznot okZ uncertaincCsddlm}dtjkr)tdfS|j}yPt|}z2d|jkrgtd|fStd|fSWd|j XWn<t k r}zt d||j ffSWYdd}~XnXdS) Nr) sysconfigZGCCzsys.version mentions 'GCC'Z__GNUC__z'%s' mentions '__GNUC__'z '%s' does not mention '__GNUC__'zcouldn't read '%s': %s) distutilsrXrrr'get_config_h_filenameopenreadCONFIG_H_NOTOKcloseOSErrorCONFIG_H_UNCERTAINstrerror)rXfnconfig_hexcrrrr&Hs   r&s(\d+\.\d+(\.\d+)*)c Cs|jd}t|dkr&dSt|dddtj}z|j}Wd|jXtj|}|dkr~dSt |j dj S)NrshellTstdoutr) splitrrrrfr\r^ RE_VERSIONsearchrgroupdecode)cmd executableout out_stringresultrrr_find_exe_versionus  rqcCs&dddg}tdd|DS)Nzgcc -dumpversionzld -vzdllwrap --versioncSsg|]}t|qSr)rq).0rlrrr s z get_versions..)tuple)commandsrrrr)sr)cCs%tddg}|jjdS)Nrz -dumpmachinescygwin)rstripendswith)rorrrrVsrV)&r@rr> subprocessrrrreZdistutils.ccompilerrrZdistutils.unixccompilerrZdistutils.file_utilrZdistutils.errorsr r r r rYr Zdistutils.versionrZdistutils.spawnrrrrUr'r]r`r&compilerhrqr)rVrrrr0s,    " 1 +  PK!E>E>'__pycache__/msvccompiler.cpython-35.pycnu[ Yf\@sdZddlZddlZddlmZmZmZmZmZddl m Z m Z m Z ddl mZdZy@ddlZdZeZejZejZejZejZWnek r:yLddlZddlZdZeZejZejZejZejZWnek r5ejdYnXYnXer_ejejej ej!fZ"d d Z#d d Z$d dZ%GdddZ&ddZ'ddZ(ddZ)Gddde Z*e'dkrej+de*Z,ddl-m*Z*ddl-m&Z&dS)zdistutils.msvccompiler Contains MSVCCompiler, an implementation of the abstract CCompiler class for the Microsoft Visual Studio. N)DistutilsExecErrorDistutilsPlatformError CompileErrorLibError LinkError) CCompilergen_preprocess_optionsgen_lib_options)logFTzWarning: Can't read registry to find the necessary compiler setting Make sure that Python modules winreg, win32api or win32con are installed.cCsyt||}Wntk r+dSYnXg}d}xDyt||}Wntk rcPYnX|j||d7}q;W|S)zReturn list of registry keys.Nr) RegOpenKeyExRegError RegEnumKeyappend)basekeyhandleLikr;/opt/alt/python35/lib64/python3.5/distutils/msvccompiler.py read_keys7s    rcCsyt||}Wntk r+dSYnXi}d}xbyt||\}}}Wntk rlPYnX|j}t||t|<|d7}q;W|S)zXReturn dict of registry keys and values. All names are converted to lowercase. Nrr )r r RegEnumValuelower convert_mbcs)rrrdrnamevaluetyperrr read_valuesHs    r c CsGt|dd}|dk rCy|d}Wntk rBYnX|S)Ndecodembcs)getattr UnicodeError)sZdecrrrr]s  rc@s@eZdZddZddZddZddZd S) MacroExpandercCsi|_|j|dS)N)macros load_macros)selfversionrrr__init__gs zMacroExpander.__init__cCs@x9tD]1}t||}|r|||jd|sZ(                   -   PK!no)__pycache__/dir_util.cpython-35.opt-2.pycnu[ ]b@sddlZddlZddlmZmZddlmZiadddddZddddd Z ddddddd d Z d d Z ddddZ ddZ dS)N)DistutilsFileErrorDistutilsInternalError)logic Cst|ts"td|ftjj|}g}tjj|sX|dkr\|Stjtjj |r{|Stjj |\}}|g}xK|r|rtjj| rtjj |\}}|j d|qWx|D]}tjj ||}tjj |} tj| r0q|dkrLt jd||sytj||Wnftk r} zF| jtjkotjj|std|| jdfWYdd} ~ XnX|j|dt|  "  $- r%cCsvt}x6|D].}|jtjj|tjj|qWx-t|D]}t||d|d|qOWdS)Nrr)setaddr r rdirnamesortedr%)base_dirfilesrrrZneed_dirfiledirr#r#r$ create_treePs  ,r.cCsddlm}| r:tjj| r:td|ytj|} WnMtk r} z-|rqg} ntd|| jfWYdd} ~ XnX|st |d|g} x(| D] } tjj || } tjj || }| j drq|rntjj | rntj | }|dkrHtjd|||s^tj||| j|qtjj| r| jt| |||||d|d |q|| ||||d|d || j|qW| S) Nr) copy_filez&cannot copy tree '%s': not a directoryzerror listing files in '%s': %srz.nfsrzlinking %s -> %sr)Zdistutils.file_utilr/r r r rlistdirrstrerrorr%r startswithislinkreadlinkrrsymlinkrextend copy_tree)srcdstZ preserve_modeZpreserve_timesZpreserve_symlinksupdaterrr/nameseZoutputsnZsrc_nameZdst_nameZ link_destr#r#r$r7csH  )     r7cCsxwtj|D]f}tjj||}tjj|r`tjj| r`t||q|jtj|fqW|jtj |fdS)N) r r0r rr r3_build_cmdtuplerremovermdir)r cmdtuplesfZreal_fr#r#r$r>s %r>cCs|dkrtjd||r&dSg}t||x|D]}y?|d|dtjj|d}|tkrt|=Wq@tk r}ztjd||WYdd}~Xq@Xq@WdS)Nrz'removing '%s' (and everything under it)rzerror removing %s: %s) rrr>r r rrrwarn)Z directoryrrrAcmdrr"r#r#r$ remove_trees     rEcCsItjj|\}}|ddtjkrE||dd}|S)Nrr)r r splitdrivesep)r Zdriver#r#r$ensure_relativesrH)r rZdistutils.errorsrrZ distutilsrrr%r.r7r>rErHr#r#r#r$s  ?D PK!\ $__pycache__/log.cpython-35.opt-1.pycnu[ Yft@sdZdZdZdZdZdZddlZGdd d ZeZej Z ej Z ej Z ej Z ej Z ejZd d Zd d ZdS)z,A simple log mechanism styled after PEP 282.Nc@sseZdZeddZddZddZddZd d Zd d Z d dZ ddZ dS)LogcCs ||_dS)N) threshold)selfrr 2/opt/alt/python35/lib64/python3.5/distutils/log.py__init__sz Log.__init__cCs|tttttfkr1tdt|||jkr|rP||}|tttfkrqtj }n tj }|j dkr|j }|j |dj|}|jd||jdS)Nz%s wrong log levelstrictbackslashreplacez%s )DEBUGINFOWARNERRORFATAL ValueErrorstrrsysstderrstdouterrorsencodingencodedecodewriteflush)r levelmsgargsstreamrr r r _logs    zLog._logcGs|j|||dS)N)r#)r rr r!r r r log%szLog.logcGs|jt||dS)N)r#r)r r r!r r r debug(sz Log.debugcGs|jt||dS)N)r#r)r r r!r r r info+szLog.infocGs|jt||dS)N)r#r)r r r!r r r warn.szLog.warncGs|jt||dS)N)r#r)r r r!r r r error1sz Log.errorcGs|jt||dS)N)r#r)r r r!r r r fatal4sz Log.fatalN) __name__ __module__ __qualname__rr r#r$r%r&r'r(r)r r r r rs       rcCstj}|t_|S)N) _global_logr)roldr r r set_threshold?s  r/cCsL|dkrttn/|dkr2ttn|dkrHttdS)Nrrr)r/rrr)vr r r set_verbosityEs      r1)__doc__rrrrrrrr-r$r%r&r'r(r)r/r1r r r r s  )        PK!B-__pycache__/archive_util.cpython-35.opt-1.pycnu[ Yf&@sdZddlZddlmZddlZyddlZWnek rXdZYnXddlmZddl m Z ddl m Z ddl mZyddlmZWnek rdZYnXydd lmZWnek rdZYnXd d Zd d ZdddddddZddddZded&gdfded'gdfded(gdfded)gdfded*gdfd egd!fiZd"d#Zddddddd$d%ZdS)+zodistutils.archive_util Utility functions for creating archive files (tarballs, zip files, that sort of thing).N)warn)DistutilsExecError)spawn)mkpath)log)getpwnam)getgrnamc Cs_tdks|dkrdSyt|}Wntk rFd}YnX|dk r[|dSdS)z"Returns a gid, given a group name.N)rKeyError)nameresultr ;/opt/alt/python35/lib64/python3.5/distutils/archive_util.py_get_gids   rc Cs_tdks|dkrdSyt|}Wntk rFd}YnX|dk r[|dSdS)z"Returns an uid, given a user name.Nr )rr )r r r r r_get_uid+s   rgzipc sddddddddddi}dd dd dd dd i}|dk rl||jkrltd |d} |dkr| |j|d7} ttjj| d|ddl} tj dt t fdd} |sE| j | d||} z| j |d| Wd| jX|dkrtdt| ||} tjdkr|| | g}n|d| g}t|d|| S| S)a=Create a (possibly compressed) tar file from all the files under 'base_dir'. 'compress' must be "gzip" (the default), "bzip2", "xz", "compress", or None. ("compress" will be deprecated in Python 3.2) 'owner' and 'group' can be used to define an owner and a group for the archive that is being built. If not provided, the current owner and group will be used. The output tar file will be named 'base_dir' + ".tar", possibly plus the appropriate compression extension (".gz", ".bz2", ".xz" or ".Z"). Returns the output filename. rZgzbzip2bz2xzNcompressz.gzz.bz2z.xzz.ZzKbad value for 'compress': must be None, 'gzip', 'bzip2', 'xz' or 'compress'z.tardry_runrzCreating tar archivecs@dk r|_|_dk r<|_|_|S)N)gidZgnameuiduname)Ztarinfo)rgroupownerrr r _set_uid_gidas      z"make_tarball.._set_uid_gidzw|%sfilterz'compress' will be deprecated.win32z-f)keys ValueErrorgetrospathdirnametarfilerinforropenaddcloserPendingDeprecationWarningsysplatformr) base_namebase_dirrverboserrrZtar_compressionZ compress_extZ archive_namer&rtarZcompressed_namecmdr )rrrrr make_tarball7s<             r3c Cs|d}ttjj|d|tdkr|rAd}nd}y td|||gd|Wqtk rtd|YqXntjd|||sytj |d d tj }Wn-t k rtj |d d tj }YnXxtj |D]t\}}} xb| D]Z} tjjtjj|| } tjj| r|j| | tjd | qWqW|j|S) avCreate a zip file from all the files under 'base_dir'. The output zip file will be named 'base_name' + ".zip". Uses either the "zipfile" Python module (if available) or the InfoZIP "zip" utility (if installed and found on the default search path). If neither tool is available, raises DistutilsExecError. Returns the name of the output zip file. z.ziprNz-rz-rqzipzkunable to create zip file '%s': could neither import the 'zipfile' module nor find a standalone zip utilityz#creating '%s' and adding '%s' to itwZ compressionz adding '%s')rr#r$r%zipfilerrrr'ZZipFileZ ZIP_DEFLATED RuntimeErrorZ ZIP_STOREDwalknormpathjoinisfilewriter*) r.r/r0rZ zip_filenameZ zipoptionsr4dirpathZdirnames filenamesr r$r r r make_zipfiles:         ! r?Zgztarrzgzip'ed tar-fileZbztarrzbzip2'ed tar-fileZxztarrzxz'ed tar-fileZztarzcompressed tar filer1zuncompressed tar filer4zZIP filecCs%x|D]}|tkr|SqWdS)zqReturns the first format from the 'format' list that is unknown. If all formats are known, returns None N)ARCHIVE_FORMATS)Zformatsformatr r rcheck_archive_formatss  rBcCs7tj}|dk rMtjd|tjj|}|sMtj||dkrbtj}d|i} yt|} Wn"t k rt d|YnX| d} x"| dD]\} } | | | sB         G5 PK!z'__pycache__/config.cpython-35.opt-1.pycnu[ Yf@sRdZddlZddlmZddlmZdZGdddeZdS)zdistutils.pypirc Provides the PyPIRCCommand class, the base class for the command classes that uses .pypirc in the distutils.command package. N)RawConfigParser)CommandzE[distutils] index-servers = pypi [pypi] username:%s password:%s c@seZdZdZdZdZdZdZdddefdgZdgZ d d Z d d Z ddZ ddZ ddZddZdS) PyPIRCCommandz;Base command that knows how to handle the .pypirc file zhttps://upload.pypi.org/legacy/pypiNz repository=rzurl of repository [default: %s] show-response&display full response text from servercCstjjtjjddS)zReturns rc file path.~z.pypirc)ospathjoin expanduser)selfr5/opt/alt/python35/lib64/python3.5/distutils/config.py _get_rc_file&szPyPIRCCommand._get_rc_filec Cs\|j}tjtj|tjtjBdd}|jt||fWdQRXdS)zCreates a default .pypirc file.iwN)rr fdopenopenO_CREATO_WRONLYwriteDEFAULT_PYPIRC)rusernamepasswordrcfrrr _store_pypirc*s .zPyPIRCCommand._store_pypircc CsM|j}tjj|rI|jd||jp>|j}|jpP|j}t }|j ||j }d|kr|j dd}dd|j dD}|gkrd|krdg}niSxo|D]}d|i} |j |d | d >s z.PyPIRCCommand._read_pypirc.. rr!r repositoryrealmrNz server-login)rN)rr r existsZannouncer$DEFAULT_REPOSITORYr% DEFAULT_REALMrreadsectionsgetsplitZ has_option) rrr$r%configr*Z index_serversZ_serversr!Zcurrentkeydefaultrrr _read_pypirc0sX                   zPyPIRCCommand._read_pypirccCsPddl}|jdd}|j|djdd}|jj|S)z%Read and decode a PyPI HTTP response.rNz content-typez text/plaincharsetascii)cgiZ getheaderZ parse_headerr+r)decode)rZresponser4Z content_typeencodingrrr_read_pypi_responseqs z!PyPIRCCommand._read_pypi_responsecCsd|_d|_d|_dS)zInitialize options.Nr)r$r%Z show_response)rrrrinitialize_optionsxs  z PyPIRCCommand.initialize_optionscCs:|jdkr|j|_|jdkr6|j|_dS)zFinalizes options.N)r$r'r%r()rrrrfinalize_options~s zPyPIRCCommand.finalize_options)rNr)__name__ __module__ __qualname____doc__r'r(r$r%Z user_optionsZboolean_optionsrrr0r7r8r9rrrrrs"      A  r)r=r Z configparserrZ distutils.cmdrrrrrrrs   PK!B$__pycache__/file_util.cpython-35.pycnu[ Yf@sdZddlZddlmZddlmZdddddd iZdd d ZddddddddZddddZ ddZ dS)zFdistutils.file_util Utility functions for operating on single files. N)DistutilsFileError)logZcopyinghardz hard linkingsymzsymbolically linkingicNCsd}d}zyt|d}Wn>tk rb}ztd||jfWYdd}~XnXtjj|rytj|Wn>tk r}ztd||jfWYdd}~XnXyt|d}Wn>tk r}ztd||jfWYdd}~XnXxy|j|}Wn>tk rq}ztd||jfWYdd}~XnX|syPy|j |Wqtk r}ztd||jfWYdd}~XqXqWWd|r|j |r|j XdS) a5Copy the file 'src' to 'dst'; both must be filenames. Any error opening either file, reading from 'src', or writing to 'dst', raises DistutilsFileError. Data is read/written in chunks of 'buffer_size' bytes (default 16k). No attempt is made to handle anything apart from regular files. Nrbzcould not open '%s': %szcould not delete '%s': %swbzcould not create '%s': %szcould not read from '%s': %szcould not write to '%s': %s) openOSErrorrstrerrorospathexistsunlinkreadwriteclose)srcdstZ buffer_sizeZfsrcZfdsteZbufr8/opt/alt/python35/lib64/python3.5/distutils/file_util.py_copy_file_contentssF ,)))1 rcCsddlm}ddlm} m} m} m} tjj |sTt d|tjj |r|} tjj |tjj |}ntjj|} |r||| r|dkrtjd||dfSyt|}Wn"tk rtd|YnX|dkrptjj |tjj |krZtjd||| ntjd||||r|dfS|d krtjj|otjj||s6ytj|||dfSWq6tk rYq6XnM|d kr6tjj|otjj||s6tj|||dfSt|||sO|rtj|}|rtj||| || f|rtj|| || |dfS) aCopy a file 'src' to 'dst'. If 'dst' is a directory, then 'src' is copied there with the same name; otherwise, it must be a filename. (If the file exists, it will be ruthlessly clobbered.) If 'preserve_mode' is true (the default), the file's mode (type and permission bits, or whatever is analogous on the current platform) is copied. If 'preserve_times' is true (the default), the last-modified and last-access times are copied as well. If 'update' is true, 'src' will only be copied if 'dst' does not exist, or if 'dst' does exist but is older than 'src'. 'link' allows you to make hard links (os.link) or symbolic links (os.symlink) instead of copying: set it to "hard" or "sym"; if it is None (the default), files are copied. Don't set 'link' on systems that don't support it: 'copy_file()' doesn't check if hard or symbolic linking is available. If hardlink fails, falls back to _copy_file_contents(). Under Mac OS, uses the native file copy function in macostools; on other systems, uses '_copy_file_contents()' to copy file contents. Return a tuple (dest_name, copied): 'dest_name' is the actual name of the output file, and 'copied' is true if the file was copied (or would have been copied, if 'dry_run' true). r)newer)ST_ATIMEST_MTIMEST_MODES_IMODEz4can't copy '%s': doesn't exist or not a regular filerz"not copying %s (output up-to-date)z&invalid value '%s' for 'link' argumentz %s %s -> %srr)Zdistutils.dep_utilrstatrrrrr r isfilerisdirjoinbasenamedirnamerdebug _copy_actionKeyError ValueErrorinforsamefilelinkr symlinkrutimechmod)rrZ preserve_modeZpreserve_timesupdater+verbosedry_runrrrrrdiractionstrrr copy_fileCsT!" $    $  '  '   r5c(Csddlm}m}m}m}m}ddl} |dkrStjd|||r]|S||syt d|||rt j j |||}n"||rt d||f|||st d||fd } yt j ||Wnetk rn} zE| j\} } | | jkrCd } nt d ||| fWYdd} ~ XnX| rt||d |yt j|Wnvtk r} zV| j\} } yt j|Wntk rYnXt d |||| fWYdd} ~ XnX|S)a%Move a file 'src' to 'dst'. If 'dst' is a directory, the file will be moved into it with the same name; otherwise, 'src' is just renamed to 'dst'. Return the new full name of the file. Handles cross-device moves on Unix using 'copy_file()'. What about other systems??? r)rr r!r#r$Nrzmoving %s -> %sz#can't move '%s': not a regular filez0can't move '%s': destination '%s' already existsz2can't move '%s': destination '%s' not a valid pathFTzcouldn't move '%s' to '%s': %sr0zAcouldn't move '%s' to '%s' by copy/delete: delete '%s' failed: %s)Zos.pathrr r!r#r$errnorr)rr r r"renamer argsZEXDEVr5r)rrr0r1rr r!r#r$r6Zcopy_itrZnummsgrrr move_filesR (      ) )r:c CsGt|d}z&x|D]}|j|dqWWd|jXdS)z{Create a file with the specified name and write 'contents' (a sequence of strings without line terminators) to it. w N)r rr)filenamecontentsflinerrr write_files  rAi@) __doc__r Zdistutils.errorsrZ distutilsrr&rr5r:rArrrrs  3 c=PK!] *__pycache__/extension.cpython-35.opt-1.pycnu[ Yf)@sMdZddlZddlZddlZGdddZddZdS)zmdistutils.extension Provides the Extension class, used to describe C/C++ extension modules in setup scripts.Nc@sXeZdZdZddddddddddddddddZddZdS) Extensiona Just a collection of attributes that describes an extension module and everything needed to build it (hopefully in a portable way, but there are hooks that let you be as unportable as you need). Instance attributes: name : string the full name of the extension, including any packages -- ie. *not* a filename or pathname, but Python dotted name sources : [string] list of source filenames, relative to the distribution root (where the setup script lives), in Unix form (slash-separated) for portability. Source files may be C, C++, SWIG (.i), platform-specific resource files, or whatever else is recognized by the "build_ext" command as source for a Python extension. include_dirs : [string] list of directories to search for C/C++ header files (in Unix form for portability) define_macros : [(name : string, value : string|None)] list of macros to define; each macro is defined using a 2-tuple, where 'value' is either the string to define it to or None to define it without a particular value (equivalent of "#define FOO" in source or -DFOO on Unix C compiler command line) undef_macros : [string] list of macros to undefine explicitly library_dirs : [string] list of directories to search for C/C++ libraries at link time libraries : [string] list of library names (not filenames or paths) to link against runtime_library_dirs : [string] list of directories to search for C/C++ libraries at run time (for shared extensions, this is when the extension is loaded) extra_objects : [string] list of extra files to link with (eg. object files not implied by 'sources', static library that must be explicitly specified, binary resource files, etc.) extra_compile_args : [string] any extra platform- and compiler-specific information to use when compiling the source files in 'sources'. For platforms and compilers where "command line" makes sense, this is typically a list of command-line arguments, but for other platforms it could be anything. extra_link_args : [string] any extra platform- and compiler-specific information to use when linking object files together to create the extension (or to create a new static Python interpreter). Similar interpretation as for 'extra_compile_args'. export_symbols : [string] list of symbols to be exported from a shared extension. Not used on all platforms, and not generally necessary for Python extensions, which typically export exactly one symbol: "init" + extension_name. swig_opts : [string] any extra options to pass to SWIG if a source file has the .i extension. depends : [string] list of files that the extension depends on language : string extension language (i.e. "c", "c++", "objc"). Will be detected from the source extensions if not provided. optional : boolean specifies that a build failure in the extension should not abort the build process, but simply not install the failing extension. NcKs|t|tstdt|to@tdd|DsOtd||_||_|pjg|_|pyg|_|pg|_ |pg|_ |pg|_ |pg|_ | pg|_ | pg|_| pg|_| pg|_| pg|_|pg|_||_||_t|dkrxdd|D}djt|}d |}tj|dS) Nz'name' must be a stringcss|]}t|tVqdS)N) isinstancestr).0vr8/opt/alt/python35/lib64/python3.5/distutils/extension.py ksz%Extension.__init__..z#'sources' must be a list of stringsrcSsg|]}t|qSr)repr)rZoptionrrr s z&Extension.__init__..z, zUnknown Extension options: %s)rrAssertionErrorlistallnamesources include_dirs define_macros undef_macros library_dirs librariesruntime_library_dirs extra_objectsextra_compile_argsextra_link_argsexport_symbols swig_optsdependslanguageoptionallenjoinsortedwarningswarn)selfrrrrrrrrrrrrrrrrkwZoptionsmsgrrr__init__Ws4       zExtension.__init__cCs)d|jj|jj|jt|fS)Nz<%s.%s(%r) at %#x>) __class__ __module__ __qualname__rid)r$rrr__repr__s   zExtension.__repr__)__name__r)r*__doc__r'r,rrrrrs ?!rcCsddlm}m}m}ddlm}ddlm}||}||ddddddd dd d}zg}x|j} | d krP|j | rq~| d| d(kod knr|j d | q~|| |} || } | d} t | g} d } x`| dd D]N}| d k rT| j |d } q,t jj|d}|dd}|dd }|d)kr| jj |q,|dkr| jj |q,|dkr9|jd}|d*kr| jj |d fqz| jj |d|||dd fq,|dkrX| jj |q,|dkrw| jj |q,|dkr| jj |q,|dkr| jj |q,|dkr| jj |q,|dkr| j} q,|dkr| j} q,|d kr| j} q,|d!krJ| jj ||sz| j} q,|d+kri| jj |q,|j d'|q,W|j | q~WWd |jX|S),z3Reads a Setup file and returns Extension instances.r)parse_makefileexpand_makefile_vars _variable_rx)TextFile) split_quotedZstrip_commentsZ skip_blanksZ join_linesZ lstrip_wsZ rstrip_wsN*z'%s' lines not handled yet.c.cc.cpp.cxx.c++.m.mmz-Iz-D=z-Uz-Cz-lz-Lz-Rz-rpathz-Xlinkerz -Xcompilerz-u.a.so.sl.o.dylibzunrecognized argument '%s')r7r8r9r:r;r<r=rD)r?r@rArBrC)Zdistutils.sysconfigr/r0r1Zdistutils.text_filer2Zdistutils.utilr3readlinematchr#rappendospathsplitextrrfindrrrrrrrrclose)filenamer/r0r1r2r3varsfile extensionslineZwordsmoduleZextZappend_next_wordZwordsuffixZswitchvalueZequalsrrrread_setup_files    $                       rU)r.rHsysr"rrUrrrrs    zPK!*|g.__pycache__/unixccompiler.cpython-35.opt-1.pycnu[ Yf:@sdZddlZddlZddlZddlmZddlmZddlm Z m Z m Z ddl m Z mZmZmZddlmZejdkrddlZGd d d e ZdS) a9distutils.unixccompiler Contains the UnixCCompiler class, a subclass of CCompiler that handles the "typical" Unix-style command-line C compiler: * macros defined with -Dname[=value] * macros undefined with -Uname * include search directories specified with -Idir * libraries specified with -lllib * library search directories specified with -Ldir * compile handled by 'cc' (or similar) executable with -c option: compiles .c to .o * link static library handled by 'ar' command (possibly with 'ranlib') * link shared library handled by 'cc -shared' N) sysconfig)newer) CCompilergen_preprocess_optionsgen_lib_options)DistutilsExecError CompileErrorLibError LinkError)logdarwincseZdZdZddddgddgddgddd gd dgd d d gddiZejdddkrdgedr?r%r'r*rZ EXECUTABLErrrbasenamer4r5r6r7r+rr r r@)rZ target_descr?rBr;r r!r"Zexport_symbolsr@r-r.Z build_temprAr/Zlib_optsZld_argsZlinkerir2r#r#r$linksH       "zUnixCCompiler.linkcCsd|S)Nz-Lr#)rdirr#r#r$library_dir_optionsz UnixCCompiler.library_dir_optioncCsd|kpd|kS)Ngcczg++r#)rZ compiler_namer#r#r$_is_gccszUnixCCompiler._is_gcccCs tjjtjd}tjdddkr<d|Stjdddkr]d|Stjddd kr|j|rd d|gSd d|gStjddd kstjddd krd|gS|j|rtjddkr d|Sd|Snd|SdS)NCCrr z-LZfreebsdz -Wl,-rpath=zhp-uxz-Wl,+sz+sZirix646Zosf1V5z-rpathGNULDyesz-Wl,--enable-new-dtags,-Rz-Wl,-Rz-R)r(r)rLrrr4r5rR)rrOrr#r#r$runtime_library_dir_options 2  z(UnixCCompiler.runtime_library_dir_optioncCsd|S)Nz-lr#)rlibr#r#r$library_option szUnixCCompiler.library_optioncCs.|j|dd}|j|dd}|j|dd}|j|dd}tjdkrtjd}tjd|} | dkrd } n| jd } x|D]w} tj j | |} tj j | |} tj j | |}tj j | |}tjdkr| j d sF| j d r| j d  rtj j | | d d|} tj j | | d d|} tj j | | d d|}tj j | | d d|}tj j | r| Stj j |r|Stj j | r| Stj j |r|SqWdS)NZlib_typeshareddylib xcode_stubstaticr CFLAGSz-isysroot\s+(\S+)/rEz/System/z/usr/z /usr/local/) r=r4r5rrresearchgroupr(r)rK startswithexists)rdirsrYr@Zshared_fZdylib_fZ xcode_stub_fZstatic_fZcflagsmZsysrootrOr[r\r^r]r#r#r$find_library_file s>   """"zUnixCCompiler.find_library_file)__name__ __module__ __qualname__Z compiler_typeZ executablesr4r5Zsrc_extensionsZ obj_extensionZstatic_lib_extensionZshared_lib_extensionZdylib_lib_extensionZxcode_stub_lib_extensionZstatic_lib_formatZshared_lib_formatZdylib_lib_formatZxcode_stub_lib_formatZ exe_extensionrr3r:rCrNrPrRrXrZrhr#r#)rr$r -sF            6   , r )__doc__r(r4raZ distutilsrZdistutils.dep_utilrZdistutils.ccompilerrrrZdistutils.errorsrrr r r r5r6r r#r#r#r$s$" PK!BRe e $__pycache__/log.cpython-35.opt-2.pycnu[ ]t@sdZdZdZdZdZddlZGdddZeZejZej Z ej Z ej Z ej Z ej Z d d Zd d ZdS) Nc@sseZdZeddZddZddZddZd d Zd d Z d dZ ddZ dS)LogcCs ||_dS)N) threshold)selfrr (/opt/alt/python35/lib64/python3.5/log.py__init__sz Log.__init__cCs|tttttfkr1tdt|||jkr|rP||}|tttfkrqtj }n tj }|j dkr|j }|j |dj|}|jd||jdS)Nz%s wrong log levelstrictbackslashreplacez%s )DEBUGINFOWARNERRORFATAL ValueErrorstrrsysstderrstdouterrorsencodingencodedecodewriteflush)r levelmsgargsstreamrr r r _logs    zLog._logcGs|j|||dS)N)r#)r rr r!r r r log%szLog.logcGs|jt||dS)N)r#r)r r r!r r r debug(sz Log.debugcGs|jt||dS)N)r#r)r r r!r r r info+szLog.infocGs|jt||dS)N)r#r)r r r!r r r warn.szLog.warncGs|jt||dS)N)r#r)r r r!r r r error1sz Log.errorcGs|jt||dS)N)r#r)r r r!r r r fatal4sz Log.fatalN) __name__ __module__ __qualname__rr r#r$r%r&r'r(r)r r r r rs       rcCstj}|t_|S)N) _global_logr)roldr r r set_threshold?s  r/cCsL|dkrttn/|dkr2ttn|dkrHttdS)Nrrr)r/rrr)vr r r set_verbosityEs      r1)rrrrrrrr-r$r%r&r'r(r)r/r1r r r r s )        PK!,%%*__pycache__/sysconfig.cpython-35.opt-2.pycnu[ $YfP @sddlZddlZddlZddlZddlmZejjejZ ejjej Z ejjej Z ejjejZdejkrejjejdZn!ejjejjejZejdkr"ejjd+r"ejjejjeZdd Zeed dZerejdkrejjd,rejjejjeZd d ZeZd ZyesejZWnek rYnXddZ ddddZ!dddddZ"ddZ#ddZ$ddZ%dddZ&ej'dZ(ej'dZ)ej'dZ*ddd Z+d!d"Z,da-d#d$Z.d%d&Z/d'd(Z0d)d*Z1dS)-N)DistutilsPlatformErrorZ_PYTHON_PROJECT_BASEnt\pcbuild\win32\pcbuild\amd64cCs=x6dD].}tjjtjj|d|rdSqWdS)N Setup.dist Setup.localModulesTF)rr)ospathisfilejoin)dfnr./opt/alt/python35/lib64/python3.5/sysconfig.py_is_python_source_dir)s $r_homecCstrttSttS)N) _sys_homer project_baserrrr _python_build2s rcCstjddS)N)sysversionrrrrget_python_versionDsrcCs|dkr|rtpt}tjdkrtrn|rCtpBtStjjt dd}tjj |Sdt t }tjj|d|Stjdkrtjj|dSt dtjdS)NposixsrcdirZIncludepythonincluderzFI don't know where Python installs its C header files on platform '%s')BASE_EXEC_PREFIX BASE_PREFIXr name python_buildrrr r get_config_varnormpathr build_flagsr) plat_specificprefixZincdirZ python_dirrrrget_python_incLs  r)cCs|dkr9|r'|rtp!t}n|r3tp6t}tjdkr|sT|r]d}nd}tjj||dt}|r|Stjj|dSnTtjdkr|rtjj|dStjj|ddSnt dtjdS) Nrlib64librz site-packagesrZLibz?I don't know where Python installs its library on platform '%s') r r! EXEC_PREFIXPREFIXr r"r r rr)r' standard_libr(r+Z libpythonrrrget_python_libos(    r/cCs|jdkrtjdkrMtdsMddl}|jtdtdrAZccZcxxoptZcflagsZccsharedZldsharedZ shlib_suffixarZar_flagsZnewccZcppr?Zcc_cmdrrrrBs\    0      rBcCsdtrBtjdkr3tjjtp'td}qQtp<t}ntdd}tjj|dS)NrPCr'rz pyconfig.h)r#r r"r r rrr))inc_dirrrrget_config_h_filenames rLcCs_trtjjtptdStdddd}djtt }tjj||dS)NMakefiler'rr.rz config-{}{}) r#r r r rrr/formatrr&)Zlib_dirZ config_filerrrget_makefile_filenames rOc Cs|dkri}tjd}tjd}x|j}|sFP|j|}|r|jdd\}}yt|}Wntk rYnX||| sX    !      #+ I m  $  JPK!{,,'__pycache__/fancy_getopt.cpython-35.pycnu[ YfxE@sHdZddlZddlZddlZddlZddlTdZejdeZejdeefZ e j ddZ Gd d d Z d d Zd dejDZddZddZGdddZedkrDdZxKddddfD]7Zedeedjeeeeq WdS)a6distutils.fancy_getopt Wrapper around the standard getopt module that provides the following additional features: * short and long options are tied together * options have help strings, so fancy_getopt could potentially create a complete usage summary * options set attributes of a passed-in object N)*z[a-zA-Z](?:[a-zA-Z0-9-]*)z^%s$z ^(%s)=!(%s)$-_c@seZdZdZdddZddZddZddd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddddZddZdddZddddZdS) FancyGetoptaWrapper around the standard 'getopt()' module that provides some handy extra functionality: * short and long options are tied together * options have help strings, and help text can be assembled from them * options set attributes of a passed-in object * boolean options can have "negative aliases" -- eg. if --quiet is the "negative alias" of --verbose, then "--quiet" on the command line sets 'verbose' to false NcCsq||_i|_|jr%|ji|_i|_g|_g|_i|_i|_i|_ g|_ dS)N) option_table option_index _build_indexaliasnegative_alias short_opts long_opts short2long attr_name takes_arg option_order)selfrr;/opt/alt/python35/lib64/python3.5/distutils/fancy_getopt.py__init__)s           zFancyGetopt.__init__cCs6|jjx"|jD]}||j|d= 2Nz:invalid short option '%s': must a single character or None=:z>invalid negative alias '%s': aliased option '%s' takes a valuezginvalid alias '%s': inconsistent with aliased option '%s' (one of them takes a value, the other doesn'tzEinvalid long option name '%s' (must be letters, numbers, hyphens onlyr/r/)r r r rrepeatrlen ValueErrorr strrrrr getr longopt_rematchrr)rrlongshorthelpr0Zalias_torrr_grok_option_tables^     "  !         zFancyGetopt._grok_option_tablec Cs2|dkrtjdd}|dkr=t}d}nd}|jdj|j}y"tj|||j\}}Wn4tjk r}zt |WYdd}~XnXx_|D]W\}}t |dkr|ddkr|j |d}n>t |dkr)|ddd ks/t |dd}|j j|} | r]| }|j|s|d kst d |jj|} | r| }d}nd}|j|} |r|jj| dk rt|| dd}t|| ||jj||fqW|r*||fS|SdS) aParse command-line options in args. Store as attributes on object. If 'args' is None or not supplied, uses 'sys.argv[1:]'. If 'object' is None or not supplied, creates a new OptionDummy object, stores option values there, and returns a tuple (args, object). If 'object' is supplied, it is modified in place and 'getopt()' just returns 'args'; in both cases, the returned 'args' is a modified copy of the passed-in 'args' list, which is left untouched. Nr,TF r+rrz--zboolean option can't have value)sysargv OptionDummyr:joinr getoptr errorZDistutilsArgErrorr1r r"r r4rr rr0getattrsetattrrr) rargsobjectZcreated_objectr Zoptsmsgr%valr attrrrrrAsF     "".    zFancyGetopt.getoptcCs)|jdkrtdn|jSdS)zReturns the list of (option, value) tuples processed by the previous run of 'getopt()'. Raises RuntimeError if 'getopt()' hasn't been called yet. Nz!'getopt()' hasn't been called yet)r RuntimeError)rrrrget_option_orderszFancyGetopt.get_option_ordercCsd}xs|jD]h}|d}|d}t|}|ddkrP|d}|dk rf|d}||kr|}qW|ddd}d}||} d|} |r|g} n d g} x|jD]}|dd \}}} t| | } |ddkr|dd}|dkrh| rN| jd ||| dfq| jd ||fnHd ||f}| r| jd ||| dfn| jd|x)| ddD]}| j| |qWqW| S)zGenerate help text (a list of strings, one per suggested line of output) from the option table for this FancyGetopt object. rr,r-Nr+Nr;zOption summary:r)z --%-*s %sz --%-*s z%s (-%s)z --%-*sr/r/r/)rr1 wrap_textr)rheaderZmax_optrr7r8lZ opt_widthZ line_widthZ text_widthZ big_indentlinesr9textZ opt_namesrrr generate_helpsF             ! zFancyGetopt.generate_helpcCsD|dkrtj}x(|j|D]}|j|dq%WdS)N )r=stdoutrSwrite)rrOfilelinerrr print_helphs  zFancyGetopt.print_help)__name__ __module__ __qualname____doc__rrrrrrr&r'r(r:rArKrSrYrrrrrs (       M= OrcCs)t|}|j||j||S)N)rr(rA)optionsZ negative_optrFrEparserrrr fancy_getoptos  r`cCsi|]}dt|qS)r;)ord).0Z_wscharrrr us rccCsv|dkrgSt||kr)|gS|j}|jt}tjd|}dd|D}g}x|rqg}d}xq|rt|d}|||kr|j|d|d=||}q|r|d ddkr|d =PqW|rX|dkr=|j|dd||d|d|d<|dddkrX|d=|jdj|qrW|S) zwrap_text(text : string, width : int) -> [string] Split 'text' into multiple lines of no more than 'width' characters each, and return the list of strings that results. Nz( +|-+)cSsg|]}|r|qSrr)rbZchrrr s zwrap_text..rr,r;r<r/r/)r1 expandtabsrWS_TRANSresplitrr@)rRwidthZchunksrQZcur_lineZcur_lenrPrrrrNws:      rNcCs |jtS)zXConvert a long option name to a valid Python identifier by changing "-" to "_". )rr)r%rrrtranslate_longoptsrjc@s%eZdZdZgddZdS)r?z_Dummy class just used as a place to hold command-line option values as instance attributes.cCs%x|D]}t||dqWdS)zkCreate a new OptionDummy instance. The attributes listed in 'options' will be initialized to None.N)rD)rr^r%rrrrs zOptionDummy.__init__N)rZr[r\r]rrrrrr?s r?__main__zTra-la-la, supercalifragilisticexpialidocious. How *do* you spell that odd word, anyways? (Someone ask Mary -- she'll know [or she'll say, "How should I know?"].) (z width: %drT)r]r=stringrgrAZdistutils.errorsZ longopt_patcompiler5Z neg_alias_rer3 maketransrrr`Z whitespacerfrNrjr?rZrRwprintr@rrrr s($  S  6  PK!gS@@__pycache__/util.cpython-35.pycnu[ YfP @sdZddlZddlZddlZddlZddlZddlmZddl m Z ddl m Z ddl mZddlmZdd Zd d Zd d ZdaddZddZdddZdaaaddZddZdddddZddZdddddddddZd d!Zdddd"d#Z ddddd$d%Z!Gd&d'd'Z"dS)(zudistutils.util Miscellaneous utility functions -- anything that doesn't fit into one of the other *util.py modules. N)DistutilsPlatformError)newer)spawn)log)DistutilsByteCompileErrorcCstjdkrd}tjj|}|d*kr:tjStjjd|}tj|t||j}|dkrdS|dkrdStjSd tjkrtjd Stjd kst td  rtjStj \}}}}}|jj d d }|j dd}|j d d}|dddkrTd||fS|dddkr|ddkrd}dt |dd|ddf}ddddi} |d | tj 7}n|dd!d"krd||fS|ddd#krd$|||fS|dd%d&krrd&}tjd'tj} | j|} | r| j}nX|dd%d(krddl} ddl} | j| jj|||\}}}d)|||fS)+aReturn a string that identifies the current platform. This is used mainly to distinguish platform-specific build directories and platform-specific built distributions. Typically includes the OS name and version and the architecture (as supplied by 'os.uname()'), although the exact information included depends on the OS; eg. for IRIX the architecture isn't particularly important (IRIX only runs on SGI hardware), but for Linux the kernel version isn't particularly important. Examples of returned values: linux-i586 linux-alpha (?) solaris-2.6-sun4u irix-5.3 irix64-6.2 Windows will return one of: win-amd64 (64bit Windows on AMD64 (aka x86_64, Intel64, EM64T, etc) win-ia64 (64bit Windows on Itanium) win32 (all others - specifically, sys.platform is returned) For other non-POSIX platforms, currently just returns 'sys.platform'. ntz bit ()amd64z win-amd64itaniumzwin-ia64_PYTHON_HOST_PLATFORMposixuname/ _-Nlinuxz%s-%ssunosr5solarisz%d.%si32bitl64bitz.%sirixaixz%s-%s.%scygwinz[\d.]+darwinz%s-%s-%s)osnamesysversionfindplatformlenlowerenvironhasattrrreplaceintmaxsizerecompileASCIImatchgroup _osx_supportZdistutils.sysconfigget_platform_osx sysconfigget_config_vars)prefixijlookosnamehostreleaser'machinebitnessrel_remr6 distutilsrF3/opt/alt/python35/lib64/python3.5/distutils/util.py get_platformsX #   ( rHcCstjdkr|S|s|S|ddkr=td||ddkr]td||jd}xd|kr|jdqoW|stjStjj|S)aReturn 'pathname' as a name that will work on the native filesystem, i.e. split it on '/' and put it back together again using the current directory separator. Needed because filenames in the setup script are always supplied in Unix style, and have to be converted to the local convention before we can actually use them in the filesystem. Raises ValueError on non-Unix-ish systems if 'pathname' either starts or ends with a slash. rrzpath '%s' cannot be absoluterzpath '%s' cannot end with '/'.r#)r$sep ValueErrorsplitremovecurdirpathjoin)pathnamepathsrFrFrG convert_pathos rScCstjdkrTtjj|s4tjj||Stjj||ddSnmtjdkrtjj|\}}|ddkr|dd}tjj||StdtjdS)a Return 'pathname' with 'new_root' prepended. If 'pathname' is relative, this is equivalent to "os.path.join(new_root,pathname)". Otherwise, it requires making 'pathname' relative and then joining the two, which is tricky on DOS/Windows and Mac OS. r rNrr\z!nothing known about platform '%s')r$r%rOisabsrP splitdriver)Znew_rootrQZdriverOrFrFrG change_roots rWcCs}tr dStjdkrTdtjkrTddl}|jtjdtjd._substz\$([a-zA-Z_][a-zA-Z_0-9]*)zinvalid variable '$%s'N)r]r1subKeyErrorrK)sr_r`varrFrFrG subst_varss rezerror: cCs|t|S)N)r^)excr:rFrFrGgrok_environment_errorsrgcCs8tjdtjatjdatjdadS)Nz [^\\\'\"%s ]*z'(?:[^'\\]|\\.)*'z"(?:[^"\\]|\\.)*")r1r2string whitespace _wordchars_re _squote_re _dquote_rerFrFrFrG _init_regexsrmcCstdkrt|j}g}d}x|rtj||}|j}|t|kr||j|d|P||tjkr|j|d|||dj }d}n||dkr|d|||dd}|d}n||dkr)t j||}n9||dkrNt j||}nt d|||dkrt d|||j\}}|d|||d|d||d}|jd }|t|kr.|j|Pq.W|S) aSplit a string up according to Unix shell-like rules for quotes and backslashes. In short: words are delimited by spaces, as long as those spaces are not escaped by a backslash, or inside a quoted string. Single and double quotes are equivalent, and the quote characters can be backslash-escaped. The backslash is stripped from any two-character escape sequence, leaving only the escaped character. The quote characters are stripped from any quoted string. Returns a list of words. NrrTr'"z!this can't happen (bad char '%c')z"bad string (mismatched %s quotes?)r)rjrmstripr4endr*appendrhrilstriprkrl RuntimeErrorrKspan)rcZwordsposrDrqZbegrFrFrG split_quoteds@     "  4 rwcCsj|dkrId|j|f}|dddkrI|ddd}tj||sf||dS) aPerform some action that affects the outside world (eg. by writing to the filesystem). Such actions are special because they are disabled by the 'dry_run' flag. This method takes care of all that bureaucracy for you; all you have to do is supply the function to call and an argument tuple for it (to embody the "external action" being performed), and an optional message to print. Nz%s%rrz,)rr rx)__name__rinfo)funcargsmsgverbosedry_runrFrFrGexecutes  rcCsC|j}|dkrdS|dkr,dStd|fdS)zConvert a string representation of truth to true (1) or false (0). True values are 'y', 'yes', 't', 'true', 'on', and '1'; false values are 'n', 'no', 'f', 'false', 'off', and '0'. Raises ValueError if 'val' is anything else. yyesttrueon1rnnoffalseoff0rzinvalid truth value %rN)rrrrrr)rrrrrr)r+rK)valrFrFrG strtobool0s    rrcCstjrtd|dkr3to0|dk}|sy&ddlm}|d\} } Wn5tk rddlm} d| d} } YnXtj d| |s7| dk rt j | d} nt | d} | j d | j d jtt|d | j d |||||f| jtj| g} |d kre| jd dn|dkr| jd dt| d|tt j| fd| d|nfddlm}xS|D]K}|dddkrq|dkr)|dkrdn|}tjj|d|}ntjj|}|}|r|dt||krytd||f|t|d}|rt jj||}t jj|}|r|st ||rtj d|||s||||qtj!d||qWdS)a~Byte-compile a collection of Python source files to .pyc files in a __pycache__ subdirectory. 'py_files' is a list of files to compile; any files that don't end in ".py" are silently skipped. 'optimize' must be one of the following: 0 - don't optimize 1 - normal optimization (like "python -O") 2 - extra optimization (like "python -OO") If 'force' is true, all files are recompiled regardless of timestamps. The source filename encoded in each bytecode file defaults to the filenames listed in 'py_files'; you can modify these with 'prefix' and 'basedir'. 'prefix' is a string that will be stripped off of each source filename, and 'base_dir' is a directory name that will be prepended (after 'prefix' is stripped). You can supply either or both (or neither) of 'prefix' and 'base_dir', as you wish. If 'dry_run' is true, doesn't actually do anything that would affect the filesystem. Byte-compilation is either done directly in this interpreter process with the standard py_compile module, or indirectly by writing a temporary script and executing it. Normally, you should let 'byte_compile()' figure out to use direct compilation or not (see the source for details). The 'direct' flag is used by the script generated in indirect mode; unless you know what you're doing, leave it set to None. zbyte-compiling is disabled.Nr)mkstempz.py)mktempz$writing byte-compilation script '%s'wz2from distutils.util import byte_compile files = [ z, z] z byte_compile(files, optimize=%r, force=%r, prefix=%r, base_dir=%r, verbose=%r, dry_run=0, direct=1) rz-Orz-OOrz removing %s)r2rr optimizationz1invalid prefix: filename %r doesn't start with %rzbyte-compiling %s to %sz%skipping byte-compilation of %s to %s)"r&dont_write_bytecoder __debug__Ztempfiler ImportErrorrrrzr$fdopenopenwriterPmapreprclose executableinsertrrrM py_compiler2 importlibutilcache_from_sourcer*rKrObasenamerdebug)Zpy_filesoptimizeZforcer:Zbase_dirr~rZdirectrZ script_fdZ script_namerZscriptcmdr2fileZoptcfiledfileZ cfile_baserFrFrG byte_compile@sn"    #        rcCs"|jd}d}|j|S)zReturn a version of the string escaped for inclusion in an RFC-822 header, by ensuring there are 8 spaces space after each newline.  rz z )rLrP)headerlinesrJrFrFrG rfc822_escapesrcCsw|s dSddlm}m}Gddd|}|dkrN|d}||d|}|j|dd dS) a Invoke 2to3 on a list of Python files. The files should all come from the build area, as the modification is done in-place. To reduce the build time, only files modified since the last invocation of this function should be passed in the files argument.Nr)RefactoringToolget_fixers_from_packagec@s4eZdZddZddZddZdS)z*run_2to3..DistutilsRefactoringToolc_stj||dS)N)rerror)selfr}r|kwrFrFrG log_errorsz4run_2to3..DistutilsRefactoringTool.log_errorcWstj||dS)N)rrz)rr}r|rFrFrG log_messagesz6run_2to3..DistutilsRefactoringTool.log_messagecWstj||dS)N)rr)rr}r|rFrFrG log_debugsz4run_2to3..DistutilsRefactoringTool.log_debugN)ry __module__ __qualname__rrrrFrFrFrGDistutilsRefactoringTools   rz lib2to3.fixesoptionsrT)Zlib2to3.refactorrrZrefactor)files fixer_namesrexplicitrrrrrFrFrGrun_2to3s  rcCssddlm}ddlm}ddlm}|} tj} tj|z| j Wdtj| X| j | j dd<|rx6|j D](} | j } | sq| j| qWg} xw| j D]l} tjj|| }|tjj||tjj|| |dd}|dr| j|qWtdd | Dd |d |d || S) zRecursively copy a directory, only copying new and changed files, running run_2to3 over all newly copied Python modules afterward. If you give a template string, it's parsed like a MANIFEST.in. r)mkpath) copy_file)FileListNupdatercSs+g|]!}|jjdr|qS)z.py)r+endswith).0fnrFrFrG s z$copydir_run_2to3..rrr)Zdistutils.dir_utilrZdistutils.file_utilrZdistutils.filelistrr$getcwdchdirfindallZallfilesr splitlinesrpZprocess_template_linerOrPdirnamerrr)srcdesttemplaterrrrrrZfilelistrNlineZcopiedfilenameZoutnameresrFrFrGcopydir_run_2to3s4    $ rc@s4eZdZdZdZdZdZddZdS) Mixin2to3zMixin class for commands that run 2to3. To configure 2to3, setup scripts may either change the class variables, or inherit from individual commands to override how 2to3 is invoked.NcCst||j|j|jS)N)rrrr)rrrFrFrGr)szMixin2to3.run_2to3)ryrr__doc__rrrrrFrFrFrGrs r)#rr$r1importlib.utilrr&rhZdistutils.errorsrZdistutils.dep_utilrZdistutils.spawnrrErrrHrSrWrYr]rergrjrkrlrmrwrrrrrrrrFrFrFrGs>      ]      =   PK!z!__pycache__/config.cpython-35.pycnu[ Yf@sRdZddlZddlmZddlmZdZGdddeZdS)zdistutils.pypirc Provides the PyPIRCCommand class, the base class for the command classes that uses .pypirc in the distutils.command package. N)RawConfigParser)CommandzE[distutils] index-servers = pypi [pypi] username:%s password:%s c@seZdZdZdZdZdZdZdddefdgZdgZ d d Z d d Z ddZ ddZ ddZddZdS) PyPIRCCommandz;Base command that knows how to handle the .pypirc file zhttps://upload.pypi.org/legacy/pypiNz repository=rzurl of repository [default: %s] show-response&display full response text from servercCstjjtjjddS)zReturns rc file path.~z.pypirc)ospathjoin expanduser)selfr5/opt/alt/python35/lib64/python3.5/distutils/config.py _get_rc_file&szPyPIRCCommand._get_rc_filec Cs\|j}tjtj|tjtjBdd}|jt||fWdQRXdS)zCreates a default .pypirc file.iwN)rr fdopenopenO_CREATO_WRONLYwriteDEFAULT_PYPIRC)rusernamepasswordrcfrrr _store_pypirc*s .zPyPIRCCommand._store_pypircc CsM|j}tjj|rI|jd||jp>|j}|jpP|j}t }|j ||j }d|kr|j dd}dd|j dD}|gkrd|krdg}niSxo|D]}d|i} |j |d | d >s z.PyPIRCCommand._read_pypirc.. rr!r repositoryrealmrNz server-login)rN)rr r existsZannouncer$DEFAULT_REPOSITORYr% DEFAULT_REALMrreadsectionsgetsplitZ has_option) rrr$r%configr*Z index_serversZ_serversr!Zcurrentkeydefaultrrr _read_pypirc0sX                   zPyPIRCCommand._read_pypirccCsPddl}|jdd}|j|djdd}|jj|S)z%Read and decode a PyPI HTTP response.rNz content-typez text/plaincharsetascii)cgiZ getheaderZ parse_headerr+r)decode)rZresponser4Z content_typeencodingrrr_read_pypi_responseqs z!PyPIRCCommand._read_pypi_responsecCsd|_d|_d|_dS)zInitialize options.Nr)r$r%Z show_response)rrrrinitialize_optionsxs  z PyPIRCCommand.initialize_optionscCs:|jdkr|j|_|jdkr6|j|_dS)zFinalizes options.N)r$r'r%r()rrrrfinalize_options~s zPyPIRCCommand.finalize_options)rNr)__name__ __module__ __qualname____doc__r'r(r$r%Z user_optionsZboolean_optionsrrr0r7r8r9rrrrrs"      A  r)r=r Z configparserrZ distutils.cmdrrrrrrrs   PK!dd%__pycache__/dist.cpython-35.opt-1.pycnu[ Yf> @sdZddlZddlZddlZddlmZyddlZWnek rddZYnXddlTddl m Z m Z ddl m Z mZmZddlmZddlmZejd ZGd d d ZGd d d ZddZdS)z}distutils.dist Provides the Distribution class, which represents the module distribution being built/installed/distributed. N)message_from_file)*) FancyGetopttranslate_longopt) check_environ strtobool rfc822_escape)log)DEBUGz^[a-zA-Z]([a-zA-Z0-9_]*)$c@s$eZdZdZd~ddddgZdZdddddddddddddddddddddgZd>d?eDZddiZdd@dAZ dBdCZ dddDdEdFZ dGdHZ ddIdJZ dKdLZdMdNZdOdPZdQdRZddgdSdTZdUdVZdWdXZdYdZZd[d\Zd]d^Zd_d`ZddadbZddcddZdedfdgZejdhdiZdjdkZdldmZ dndoZ!dpdqZ"drdsZ#dtduZ$dvdwZ%dxdyZ&dzd{Z'd|d}Z(dS) DistributionaThe core of the Distutils. Most of the work hiding behind 'setup' is really done within a Distribution instance, which farms the work out to the Distutils commands specified on the command line. Setup scripts will almost never instantiate Distribution directly, unless the 'setup()' function is totally inadequate to their needs. However, it is conceivable that a setup script might wish to subclass Distribution for some specialized purpose, and then pass the subclass to 'setup()' as the 'distclass' keyword argument. If so, it is necessary to respect the expectations that 'setup' has of Distribution. See the code for 'setup()', in core.py, for details. verbosevrun verbosely (default)quietq!run quietly (turns verbosity off)dry-runndon't actually do anythinghelphshow detailed help message no-user-cfgN-ignore pydistutils.cfg in your home directoryzCommon commands: (see '--help-commands' for more) setup.py build will build the package underneath 'build/' setup.py install will install the package help-commandslist all available commandsnameprint package nameversionVprint package versionfullnameprint -authorprint the author's name author-email print the author's email address maintainerprint the maintainer's namemaintainer-email$print the maintainer's email addresscontact7print the maintainer's name if known, else the author's contact-email@print the maintainer's email address if known, else the author'surlprint the URL for this packagelicense print the license of the packagelicencealias for --license descriptionprint the package descriptionlong-description"print the long package description platformsprint the list of platforms classifiersprint the list of classifierskeywordsprint the list of keywordsprovides+print the list of packages/modules providedrequires+print the list of packages/modules required obsoletes0print the list of packages/modules made obsoletecCs g|]}t|dqS)r)r).0xrH3/opt/alt/python35/lib64/python3.5/distutils/dist.py ss zDistribution.cCsWd|_d|_d|_x!|jD]}t||dq%Wt|_x:|jjD],}d|}t||t|j|qXWi|_ d|_ d|_ d|_ i|_ g|_d|_i|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_i|_i|_|r|jd}|dk r|d=xV|jD]H\}}|j |}x*|jD]\} } d| f|| r:NcSsg|]}|jqSrH)strip)rFZelmrHrHrIrJ_s z1Distribution.finalize_options..,)r>r:)rVrTrstrrrR)rrrsrrHrHrIrqUs  zDistribution.finalize_optionsc Cspddlm}ddlm}|ro|r;|j}n |j}|j||j|jdt d|r|j|j |jddt dx|j D]}t |t rt||r|} n|j|} t| dr't | jtr'|j| jt| jn|j| j|jd | jt dqWt ||jd S) abShow help for the setup script command-line in the form of several lists of command-line options. 'parser' should be a FancyGetopt instance; do not expect it to be returned in the same state, as its option table will be reset to make it generate the correct help text. If 'global_options' is true, lists the global options: --verbose, --dry-run, etc. If 'display_options' is true, lists the "display-only" options: --name, --version, etc. Finally, lists per-command help for every command name or command class in 'commands'. r) gen_usage)rz Global options:rLz*Information display options (just display z!information, ignore any commands)rzOptions for '%s' command:N)distutils.corerrrrrrZ print_help common_usageprintrrrtyperrrmrrrrrrY) rrrrrrrrrMruklassrHrHrIrbs6      zDistribution._show_helpc Csddlm}|jrD|jtdt||jdSd}i}x|jD]}d||dr:rr<r@rBrDrN)r>r:)r<r@rBrD) rrZ help_commandsprint_commandsrrYrrerrVrTr) rrrrZany_display_optionsZis_display_optionoptionrwrxrrHrHrIrs,        z#Distribution.handle_display_optionscCst|dxt|D]l}|jj|}|sB|j|}y |j}Wntk rid}YnXtd|||fqWdS)zZPrint a subset of the list of all commands -- used by 'print_commands()'. :z(no description available)z %-*s %sN)rrWrerr6AttributeError)rrrr max_lengthcmdrr6rHrHrIprint_command_lists    zDistribution.print_command_listcCsddl}|jj}i}x|D]}d||Get a list of (command, description) tuples. The list is divided into "standard commands" (listed in distutils.command.__all__) and "extra commands" (mentioned in self.cmdclass, but not a standard command). The descriptions come from the command class attribute 'description'. rNrz(no description available)) rrurrWrrerrr6r) rrrrrrrrvrr6rHrHrIget_command_lists(      zDistribution.get_command_listcCso|j}t|tsk|dkr*d}dd|jdD}d|krb|jdd||_|S)z9Return a list of packages from which commands are loaded.NrLcSs(g|]}|dkr|jqS)rL)r)rFZpkgrHrHrIrJs z5Distribution.get_command_packages..rzdistutils.commandr)rXrrrinsert)rrZpkgsrHrHrIget_command_packagess    z!Distribution.get_command_packagescCs|jj|}|r|Sx|jD]}d||f}|}yt|tj|}Wntk rww)YnXyt||}Wn+tk rt d|||fYnX||j|<|SWt d|dS)aoReturn the class that implements the Distutils command named by 'command'. First we check the 'cmdclass' dictionary; if the command is mentioned there, we fetch the class object from the dictionary and return it. Otherwise we load the command module ("distutils.command." + command) and fetch the command class from the module. The loaded class is also stored in 'cmdclass' to speed future calls to 'get_command_class()'. Raises DistutilsModuleError if the expected module could not be found, or if that module does not define the expected class. z%s.%sz3invalid command '%s' (no class '%s' in module '%s')zinvalid command '%s'N) rWrer __import__rjr ImportErrorrVrr)rrrurZpkgnameZ module_nameZ klass_namemodulerHrHrIrs(     zDistribution.get_command_classcCs|jj|}| r|rtr6|jd||j|}||}|j||jd|xz|jD]l\}\}}tr}|jd|||fydd|jD}Wntk rg}YnXy |j}Wntk ri}YnXyt|t } ||kr| rt |||t | nf||krG| rGt ||t |n;t ||rit |||nt d|||fWqKtk r} zt | WYdd} ~ XqKXqKWdS)aySet the options for 'command_obj' from 'option_dict'. Basically this means copying elements of a dictionary ('option_dict') to attributes of an instance ('command'). 'command_obj' must be a Command instance. If 'option_dict' is not supplied, uses the standard option dictionary for this command (from 'self.command_options'). Nz# setting options for '%s' command:z %s = %s (from %s)cSsg|]}t|qSrH)r)rForHrHrIrJqs z5Distribution._set_command_options..z1error in %s: command '%s' has no such option '%s')get_command_namergr rrfZboolean_optionsrrrrrRrrmrr) rrrcZ option_dict command_namersourcerZ bool_optsZneg_optZ is_stringryrHrHrIr]s>         z!Distribution._set_command_optionsrcCsddlm}t||s7|}|j|}n |j}|jsP|S|jd|_d|j|<|j||rx$|j D]}|j ||qW|S)aReinitializes a command to the state it was in when first returned by 'get_command_obj()': ie., initialized but not yet finalized. This provides the opportunity to sneak option values in programmatically, overriding or supplementing user-supplied values from the config files and command line. You'll have to re-finalize the command object (by calling 'finalize_options()' or 'ensure_finalized()') before using it for real. 'command' should be a command name (string) or command object. If 'reinit_subcommands' is true, also reinitializes the command's sub-commands, as declared by the 'sub_commands' class attribute (if it has one). See the "install" command for an example. Only reinitializes the sub-commands that actually matter, ie. those whose test predicates return true. Returns the reinitialized command object. r)r) rrrrrZ finalizedZinitialize_optionsrdrZget_sub_commandsreinitialize_command)rrruZreinit_subcommandsrrsubrHrHrIrs      z!Distribution.reinitialize_commandcCstj||dS)N)r )rrrylevelrHrHrIrszDistribution.announcecCs%x|jD]}|j|q WdS)zRun each command that was seen on the setup script command line. Uses the list of commands found and cache of command objects created by 'get_command_obj()'. N)r run_command)rrrrHrHrI run_commandsszDistribution.run_commandscCsZ|jj|rdStjd||j|}|j|jd|j|Nr?)r@NrA)rBNrC)rDNrE))r __module__ __qualname____doc__rrrrQrr|rgrrrrrrrqrrrrrrrrrrr INFOrrrrrrrrrrrrHrHrHrIr s       0: C [ 1 (  ! " &,)        r c@sueZdZdZdOZdddZddZddZddZdd Z d!d"Z d#d$Z d%d&Z d'd(Z d)d*Zd+d,Zd-d.Zd/d0Zd1d2Zd3d4Zd5d6ZeZd7d8Zd9d:Zd;d<Zd=d>Zd?d@ZdAdBZdCdDZdEdFZdGdHZdIdJZdKdLZ dMdNZ!dS)PrSz]Dummy class to hold the distribution meta-data: name, version, author, and so forth. rrr$ author_emailr(maintainer_emailr0r2r6long_descriptionr>r:r"r, contact_emailr< download_urlr@rBrDNcCs|dk r"|jt|nd|_d|_d|_d|_d|_d|_d|_d|_ d|_ d|_ d|_ d|_ d|_d|_d|_d|_d|_dS)N) read_pkg_fileopenrrr$rr(rr0r2r6rr>r:r<r r@rBrD)rrrrHrHrIr|s&                 zDistributionMetadata.__init__cst|fdd}fdd}d}|d|_|d|_|d|_|d |_d |_|d |_d |_|d |_|d |_ dkr|d|_ n d |_ |d|_ |d|_dkr|dj d|_ |d|_|d|_|dkrx|d|_|d|_|d|_nd |_d |_d |_d S)z-Reads the metadata values from a file object.cs|}|dkrdS|S)NUNKNOWNrH)rr)ryrHrI _read_fields  z7DistributionMetadata.read_pkg_file.._read_fieldcs&j|d}|gkr"dS|S)N)Zget_all)rvalues)ryrHrI _read_list$s z6DistributionMetadata.read_pkg_file.._read_listzmetadata-versionrrZsummaryr$Nz author-emailz home-pager2z download-urlr6r>rplatformZ classifierz1.1rBr@rD)rrrr6r$r(rrr0r2r rrr>r:r<rBr@rD)rrfilerrZmetadata_versionrH)ryrIr s:          z"DistributionMetadata.read_pkg_filec Cs?ttjj|dddd}|j|WdQRXdS)z7Write the PKG-INFO file into the release tree. zPKG-INFOwencodingzUTF-8N)r rrrwrite_pkg_file)rrZbase_dirZpkg_inforHrHrIwrite_pkg_infoNs z#DistributionMetadata.write_pkg_infocCsd}|js3|js3|js3|js3|jr9d}|jd||jd|j|jd|j|jd|j|jd|j |jd|j |jd |j |jd |j |jr|jd |jt |j}|jd |d j|j}|rW|jd||j|d|j|j|d|j|j|d|j|j|d|j|j|d|jdS)z9Write the PKG-INFO format data to a file object. z1.0z1.1zMetadata-Version: %s z Name: %s z Version: %s z Summary: %s zHome-page: %s z Author: %s zAuthor-email: %s z License: %s zDownload-URL: %s zDescription: %s rz Keywords: %s ZPlatformZ ClassifierZRequiresZProvidesZ ObsoletesN)r@rBrDr<r rlget_name get_versionget_descriptionget_url get_contactget_contact_email get_licenserget_long_descriptionr get_keywords _write_list get_platformsget_classifiers get_requires get_provides get_obsoletes)rrrrZ long_descr>rHrHrIrUs0 z#DistributionMetadata.write_pkg_filecCs,x%|D]}|jd||fqWdS)Nz%s: %s )rl)rrrrrrrHrHrIr ws z DistributionMetadata._write_listcCs |jp dS)Nr )r)rrrHrHrIr}szDistributionMetadata.get_namecCs |jp dS)Nz0.0.0)r)rrrHrHrIrsz DistributionMetadata.get_versioncCsd|j|jfS)Nz%s-%s)rr)rrrHrHrI get_fullnamesz!DistributionMetadata.get_fullnamecCs |jp dS)Nr )r$)rrrHrHrI get_authorszDistributionMetadata.get_authorcCs |jp dS)Nr )r)rrrHrHrIget_author_emailsz%DistributionMetadata.get_author_emailcCs |jp dS)Nr )r()rrrHrHrIget_maintainersz#DistributionMetadata.get_maintainercCs |jp dS)Nr )r)rrrHrHrIget_maintainer_emailsz)DistributionMetadata.get_maintainer_emailcCs|jp|jpdS)Nr )r(r$)rrrHrHrIrsz DistributionMetadata.get_contactcCs|jp|jpdS)Nr )rr)rrrHrHrIrsz&DistributionMetadata.get_contact_emailcCs |jp dS)Nr )r0)rrrHrHrIrszDistributionMetadata.get_urlcCs |jp dS)Nr )r2)rrrHrHrIrsz DistributionMetadata.get_licensecCs |jp dS)Nr )r6)rrrHrHrIrsz$DistributionMetadata.get_descriptioncCs |jp dS)Nr )r)rrrHrHrIrsz)DistributionMetadata.get_long_descriptioncCs |jp gS)N)r>)rrrHrHrIrsz!DistributionMetadata.get_keywordscCs|jpdgS)Nr )r:)rrrHrHrIr!sz"DistributionMetadata.get_platformscCs |jp gS)N)r<)rrrHrHrIr"sz$DistributionMetadata.get_classifierscCs |jp dS)Nr )r )rrrHrHrIget_download_urlsz%DistributionMetadata.get_download_urlcCs |jp gS)N)rB)rrrHrHrIr#sz!DistributionMetadata.get_requirescCs:ddl}x|D]}|jj|qW||_dS)Nr)distutils.versionpredicateversionpredicateVersionPredicaterB)rrrrr rHrHrI set_requiress  z!DistributionMetadata.set_requirescCs |jp gS)N)r@)rrrHrHrIr$sz!DistributionMetadata.get_providescCsMdd|D}x*|D]"}ddl}|jj|qW||_dS)NcSsg|]}|jqSrH)r)rFr rHrHrIrJs z5DistributionMetadata.set_provides..r)r,r-Zsplit_provisionr@)rrrr rrHrHrI set_providess   z!DistributionMetadata.set_providescCs |jp gS)N)rD)rrrHrHrIr%sz"DistributionMetadata.get_obsoletescCs:ddl}x|D]}|jj|qW||_dS)Nr)r,r-r.rD)rrrrr rHrHrI set_obsoletess  z"DistributionMetadata.set_obsoletes)rrr$rr(rr0r2r6rr>r:r"r,r r2r<r r@rBrD)"rrrrrUr|r rrr rrr&r'r(r)r*rrrrZ get_licencerrrr!r"r+r#r/r$r0r%r1rHrHrHrIrSsJ  4  "                       rScCs2g}x%|D]}|j|ddq W|S)zConvert a 4-tuple 'help_options' list as found in various command classes to the 3-tuple form required by FancyGetopt. r)r)rMZ new_optionsZ help_tuplerHrHrIrs r)rrjrreZemailrrhrZdistutils.errorsZdistutils.fancy_getoptrrZdistutils.utilrrrrr Zdistutils.debugr compilerr rSrrHrHrHrIs(      PK!BMM'__pycache__/bcppcompiler.cpython-35.pycnu[ YfW:@sdZddlZddlmZmZmZmZmZmZddl m Z m Z m Z ddl mZddlmZddlmZGdd d e ZdS) zdistutils.bcppcompiler Contains BorlandCCompiler, an implementation of the abstract CCompiler class for the Borland C++ compiler. N)DistutilsExecErrorDistutilsPlatformError CompileErrorLibError LinkErrorUnknownFileError) CCompilergen_preprocess_optionsgen_lib_options) write_file)newer)logc @seZdZdZdZiZdgZdddgZeeZdZ dZ d Z d Z Z d Zd d d d dZdddd dddddZdd dddZdddddd dddddd Zd ddZd dddZdddddddZdS) BCPPCompilerzConcrete class that implements an interface to the Borland C/C++ compiler, as defined by the CCompiler abstract class. Zbcppz.cz.ccz.cppz.cxxz.objz.libz.dllz%s%sz.exercCstj||||d|_d|_d|_d|_ddddg|_ddddg|_d d dd g|_d d dd g|_ g|_ d dd g|_ d dd d g|_ dS) Nz bcc32.exez ilink32.exeztlib.exez/tWMz/O2z/qz/g0z/Odz/Tpdz/Gnz/xz/r) r__init__cclinkerlibZpreprocess_optionscompile_optionscompile_options_debugldflags_sharedldflags_shared_debugZldflags_static ldflags_exeldflags_exe_debug)selfverboseZdry_runforcer;/opt/alt/python35/lib64/python3.5/distutils/bcppcompiler.pyr5s     zBCPPCompiler.__init__Nc Cs|j||||||\}} }} } |p6g} | jd|r_| j|jn| j|jx| D]} y| | \}}Wntk rwvYnXtjj|}tjj| } |j tjj | |dkrqv|dkrTy|j dd| |gWqvt k rP}zt |WYdd}~XqvXqv||jkrld}n||jkrd}nd}d| }y4|j |jg| | ||g||gWqvt k r}zt |WYdd}~XqvXqvW| S) Nz-cz.resz.rcZbrcc32z-foz-Pz-o)Z_setup_compileappendextendrrKeyErrorospathnormpathmkpathdirnamespawnrr _c_extensions_cpp_extensionsr)rZsources output_dirmacros include_dirsdebug extra_preargsextra_postargsZdependsobjectspp_optsZbuildZ compile_optsobjsrcextmsgZ input_optZ output_optrrrcompileQsF         .#zBCPPCompiler.compilec Cs|j||\}}|j|d|}|j||r|dg|}|rUy|j|jg|Wqtk r}zt|WYdd}~XqXntjd|dS)Nr*z/uzskipping %s (up-to-date)) _fix_object_argslibrary_filename _need_linkr'rrrr r-) rr0Zoutput_libnamer*r- target_langoutput_filenameZlib_argsr5rrrcreate_static_libs"zBCPPCompiler.create_static_libc Cs|j||\}}|j|||\}}}|rRtjdt||dk rstjj||}|j||r|t j krd}| r|j dd}q|j dd}n5d}| r|j dd}n|jdd}|dkrd}ntjj|\}}tjj|\}}tjj|d}tjj|d|}dg}x+|pgD]}|jd||fqW|jt||fd |ttjj|}|g}g}x[|D]S}tjjtjj|\}}|d kr:|j|q|j|qWx+|D]#}|jd tjj|qRW|jd |j||jd |g|jdxL|D]D}|j||| }|dkr|j|q|j|qW|jd|jd|jd |g|jd |j|| r_| |dd<| rr|j| |jtjj|y|j|jg|Wqtk r}zt|WYdd}~XqXntjd|dS)Nz7I don't know what to do with 'runtime_library_dirs': %sZc0w32Zc0d32rrz%s.defZEXPORTSz %s=_%sz writing %sz.resz/L%sz/L.,z,,Zimport32Zcw32mtzskipping %s (up-to-date)) r7Z _fix_lib_argsr warnstrr"r#joinr9rZ EXECUTABLErrrrsplitsplitextr&rZexecuter mapr$normcaser find_library_filer%r'rrrr-) rZ target_descr0r;r*Z librariesZ library_dirsZruntime_library_dirsZexport_symbolsr-r.r/Z build_tempr:Z startup_objZld_argsZdef_fileheadtailmodnamer4Ztemp_dircontentsZsymZobjects2Z resourcesfilebaselrlibfiler5rrrlinks|         $  !          "zBCPPCompiler.linkc Cs|r-|d}|d|d||f}n|d|f}xW|D]K}xB|D]:}tjj||j|}tjj|rQ|SqQWqDWdSdS)NZ_dZ_bcpp)r"r#r@r8exists) rdirsrr-ZdlibZ try_namesdirnamerMrrrrE4s     zBCPPCompiler.find_library_filercCs|dkrd}g}x|D]}tjjtjj|\}}||jddgkrxtd||f|rtjj|}|dkr|jtjj|||q|dkr|jtjj||dq|jtjj|||j qW|S)Nrz.rcz.resz"unknown file type '%s' (from '%s')) r"r#rBrDsrc_extensionsrbasenamerr@ obj_extension)rZsource_filenamesZ strip_dirr*Z obj_namesZsrc_namerKr4rrrobject_filenamesNs"  $ # #zBCPPCompiler.object_filenamesc Cs#|jd||\}}}t||}dg|} |dk rW| jd||rm|| dd<|r| j|| j||js|dkst||r|r|jtjj |y|j | Wn;t k r} zt | t | WYdd} ~ XnXdS)Nz cpp32.exez-or)Z_fix_compile_argsr rr rr r%r"r#r&r'rprintr) rsourceZ output_filer+r,r.r/_r1Zpp_argsr5rrr preprocessis$     $ zBCPPCompiler.preprocess)__name__ __module__ __qualname____doc__Z compiler_typeZ executablesr(r)rSrUZstatic_lib_extensionZshared_lib_extensionZstatic_lib_formatZshared_lib_formatZ exe_extensionrr6r<rNrErVrZrrrrrsJ     B|r)r^r"Zdistutils.errorsrrrrrrZdistutils.ccompilerrr r Zdistutils.file_utilr Zdistutils.dep_utilr Z distutilsr rrrrrs .PK!F ==$__pycache__/cmd.cpython-35.opt-1.pycnu[ YfJ@sdZddlZddlZddlZddlmZddlmZmZm Z m Z m Z ddlm Z GdddZ Gdd d e ZdS) ztdistutils.cmd Provides the Command class, the base class for the command classes in the distutils.command package. N)DistutilsOptionError)utildir_util file_util archive_utildep_util)logc@seZdZdZgZddZddZddZdd Zd d Z d d ddZ ddZ dddZ ddZ d ddZd ddZddZd ddZdd Zd!d"Zd#d$Zd%d&Zdd'd(Zd)d*d+Zd,d-Zd.d/Zd0d1Zd dd2d3Zd4d5d6Zddd dd7d8Zddd)dd9d:Zdd;d<Zddd=d>Z d d d d d?d@Z!d d ddAdBZ"d S)CCommanda}Abstract base class for defining command classes, the "worker bees" of the Distutils. A useful analogy for command classes is to think of them as subroutines with local variables called "options". The options are "declared" in 'initialize_options()' and "defined" (given their final values, aka "finalized") in 'finalize_options()', both of which must be defined by every command class. The distinction between the two is necessary because option values might come from the outside world (command line, config file, ...), and any options dependent on other options must be computed *after* these outside influences have been processed -- hence 'finalize_options()'. The "body" of the subroutine, where it does all its work based on the values of its options, is the 'run()' method, which must also be implemented by every command class. cCsddlm}t||s+td|jtkrFtd||_|jd|_ |j |_ d|_ d|_ d|_ dS)zCreate and initialize a new Command object. Most importantly, invokes the 'initialize_options()' method, which is the real initializer and depends on the actual command being instantiated. r) Distributionz$dist must be a Distribution instancezCommand is an abstract classN)Zdistutils.distr isinstance TypeError __class__r RuntimeError distributioninitialize_optionsZ_dry_runverboseforcehelp finalized)selfZdistr r2/opt/alt/python35/lib64/python3.5/distutils/cmd.py__init__/s       zCommand.__init__cCsR|dkrBt|d|}|dkr;t|j|S|Sn t|dS)Ndry_run_)getattrrAttributeError)rattrZmyvalrrr __getattr___s   zCommand.__getattr__cCs |js|jd|_dS)N)rfinalize_options)rrrrensure_finalizedis  zCommand.ensure_finalizedcCstd|jdS)aSet default values for all the options that this command supports. Note that these defaults may be overridden by other commands, by the setup script, by config files, or by the command-line. Thus, this is not the place to code dependencies between options; generally, 'initialize_options()' implementations are just a bunch of "self.foo = None" assignments. This method must be implemented by all command classes. z,abstract method -- subclass %s must overrideN)rr )rrrrr{s zCommand.initialize_optionscCstd|jdS)aSet final values for all the options that this command supports. This is always called as late as possible, ie. after any option assignments from the command-line or from other commands have been done. Thus, this is the place to code option dependencies: if 'foo' depends on 'bar', then it is safe to set 'foo' from 'bar' as long as 'foo' still has the same value it was assigned in 'initialize_options()'. This method must be implemented by all command classes. z,abstract method -- subclass %s must overrideN)rr )rrrrr s zCommand.finalize_optionsNcCsddlm}|dkr,d|j}|j||dtj|d}x||jD]q\}}}|j|}|d dkr|dd }t||}|j|d||fdtjqZWdS) Nr) longopt_xlatezcommand options for '%s':levelz r=z%s = %sr&) Zdistutils.fancy_getoptr#get_command_nameannouncerINFO user_options translater)rheaderindentr#optionrvaluerrr dump_optionss  zCommand.dump_optionscCstd|jdS)aA command's raison d'etre: carry out the action it exists to perform, controlled by the options initialized in 'initialize_options()', customized by other commands, the setup script, the command-line, and config files, and finalized in 'finalize_options()'. All terminal output and filesystem interaction should be done by 'run()'. This method must be implemented by all command classes. z,abstract method -- subclass %s must overrideN)rr )rrrrruns z Command.runrcCstj||dS)zmIf the current verbosity level is of greater than or equal to 'level' print 'msg' to stdout. N)r)rmsgr$rrrr(szCommand.announcecCs1ddlm}|r-t|tjjdS)z~Print 'msg' to stdout if the global DEBUG (taken from the DISTUTILS_DEBUG environment variable) flag is true. r)DEBUGN)Zdistutils.debugr3printsysstdoutflush)rr2r3rrr debug_prints zCommand.debug_printcCs[t||}|dkr/t||||St|tsWtd|||f|S)Nz'%s' must be a %s (got `%s`))rsetattrr strr)rr.whatdefaultvalrrr_ensure_stringlikes zCommand._ensure_stringlikecCs|j|d|dS)zWEnsure that 'option' is a string; if not defined, set it to 'default'. stringN)r>)rr.r<rrr ensure_stringszCommand.ensure_stringcCst||}|dkrdSt|trMt||tjd|nMt|trxtdd|D}nd}|std||fdS)zEnsure that 'option' is a list of strings. If 'option' is currently a string, we split it either on /,\s*/ or /\s+/, so "foo bar baz", "foo,bar,baz", and "foo, bar baz" all become ["foo", "bar", "baz"]. Nz,\s*|\s+css|]}t|tVqdS)N)r r:).0vrrr sz-Command.ensure_string_list..Fz''%s' must be a list of strings (got %r)) rr r:r9resplitlistallr)rr.r=okrrrensure_string_lists zCommand.ensure_string_listcCsL|j|||}|dk rH|| rHtd|||fdS)Nzerror in '%s' option: )r>r)rr.Ztesterr;Z error_fmtr<r=rrr_ensure_tested_strings zCommand._ensure_tested_stringcCs |j|tjjdddS)z5Ensure that 'option' is the name of an existing file.filenamez$'%s' does not exist or is not a fileN)rJospathisfile)rr.rrrensure_filenameszCommand.ensure_filenamecCs |j|tjjdddS)Nzdirectory namez)'%s' does not exist or is not a directory)rJrLrMisdir)rr.rrrensure_dirnameszCommand.ensure_dirnamecCs$t|dr|jS|jjSdS)N command_name)hasattrrRr __name__)rrrrr' szCommand.get_command_namecGse|jj|}|jxB|D]:\}}t||dkr#t||t||q#WdS)a>Set the values of any "undefined" options from corresponding option values in some other command object. "Undefined" here means "is None", which is the convention used to indicate that an option has not been changed between 'initialize_options()' and 'finalize_options()'. Usually called from 'finalize_options()' for options that depend on some other command rather than another option of the same command. 'src_cmd' is the other command from which option values will be taken (a command object will be created for it if necessary); the remaining arguments are '(src_option,dst_option)' tuples which mean "take the value of 'src_option' in the 'src_cmd' command object, and copy it to 'dst_option' in the current command object". N)rget_command_objr!rr9)rZsrc_cmdZ option_pairsZ src_cmd_objZ src_optionZ dst_optionrrrset_undefined_optionss  zCommand.set_undefined_optionscCs#|jj||}|j|S)zWrapper around Distribution's 'get_command_obj()' method: find (create if necessary and 'create' is true) the command object for 'command', call its 'ensure_finalized()' method, and return the finalized command object. )rrUr!)rcommandZcreateZcmd_objrrrget_finalized_command$s zCommand.get_finalized_commandrcCs|jj||S)N)rreinitialize_command)rrWZreinit_subcommandsrrrrY0s zCommand.reinitialize_commandcCs|jj|dS)zRun some other command: uses the 'run_command()' method of Distribution, which creates and finalizes the command object if necessary and then invokes its 'run()' method. N)r run_command)rrWrrrrZ4szCommand.run_commandcCsIg}x<|jD]1\}}|dks4||r|j|qW|S)akDetermine the sub-commands that are relevant in the current distribution (ie., that need to be run). This is based on the 'sub_commands' class attribute: each tuple in that list may include a method that we call to determine if the subcommand needs to be run for the current distribution. Return a list of command names. N) sub_commandsappend)rZcommandsZcmd_namemethodrrrget_sub_commands;s zCommand.get_sub_commandscCs!tjd|j|fdS)Nzwarning: %s: %s )rwarnr')rr2rrrr_Ks z Command.warncCs tj|||d|jdS)Nr)rexecuter)rfuncargsr2r$rrrr`OszCommand.executeicCstj||d|jdS)Nr)rmkpathr)rnamemoderrrrcRszCommand.mkpathc Cs)tj|||||j |d|jS)zCopy a file respecting verbose, dry-run and force flags. (The former two default to whatever is in the Distribution object, and the latter defaults to false for commands that don't define it.)r)r copy_filerr)rinfileoutfile preserve_modepreserve_timeslinkr$rrrrfUszCommand.copy_filec Cs)tj||||||j d|jS)z\Copy an entire directory tree respecting verbose, dry-run, and force flags. r)r copy_treerr)rrgrhrirjZpreserve_symlinksr$rrrrl^szCommand.copy_treecCstj||d|jS)z$Move a file respecting dry-run flag.r)r move_filer)rsrcZdstr$rrrrmgszCommand.move_filecCs*ddlm}|||d|jdS)z2Spawn an external command respecting dry-run flag.r)spawnrN)Zdistutils.spawnror)rcmdZ search_pathr$rorrrroksz Command.spawnc Cs+tj||||d|jd|d|S)Nrownergroup)r make_archiver)rZ base_nameformatZroot_dirZbase_dirrqrrrrrrsps zCommand.make_archivecCs|dkrd|}t|tr1|f}n!t|ttfsRtd|dkrwd|dj|f}|jstj||r|j ||||n t j |dS)aSpecial case of 'execute()' for operations that process one or more input files and generate one output file. Works just like 'execute()', except the operation is skipped and a different message printed if 'outfile' already exists and is newer than all files listed in 'infiles'. If the command defined 'self.force', and it is true, then the command is unconditionally run -- does no timestamp checks. Nzskipping %s (inputs unchanged)z9'infiles' must be a string, or a list or tuple of stringszgenerating %s from %sz, ) r r:rFtupler joinrrZ newer_groupr`rdebug)rZinfilesrhrarbZexec_msgZskip_msgr$rrr make_filevs     zCommand.make_file)#rT __module__ __qualname____doc__r[rrr!rr r0r1r(r8r>r@rIrJrOrQr'rVrXrYrZr^r_r`rcrfrlrmrorsrxrrrrr sF  0              r c@sOeZdZdZdgZddZddZd d Zd d Zd S) install_miscz{Common base class for installing some files in a subdirectory. Currently used by install_data and install_scripts. install-dir=d!directory to install the files tocCsd|_g|_dS)N) install_diroutfiles)rrrrrs zinstall_misc.initialize_optionscCs|jd|dfdS)NZinstallr)rV)rdirnamerrr_install_dir_fromszinstall_misc._install_dir_fromcCsmg|_|sdS|j|jxC|D];}|j||j|jjtjj|j|q*WdS)N)rrcrrfr\rLrMrv)rZfilelistfrrr _copy_filess  zinstall_misc._copy_filescCs|jS)N)r)rrrr get_outputsszinstall_misc.get_outputsN)r}r~r) rTryrzr{r*rrrrrrrrr|s     r|)r{r5rLrDZdistutils.errorsrZ distutilsrrrrrrr r|rrrrs$(PK!-__pycache__/bcppcompiler.cpython-35.opt-2.pycnu[ ]W:@sddlZddlmZmZmZmZmZmZddlm Z m Z m Z ddl m Z ddlmZddlmZGddde ZdS) N)DistutilsExecErrorDistutilsPlatformError CompileErrorLibError LinkErrorUnknownFileError) CCompilergen_preprocess_optionsgen_lib_options) write_file)newer)logc @seZdZdZiZdgZdddgZeeZdZdZ dZ d Z Z d Z d d d d d Zdddd dddddZdd dddZdddddd dddddd Zd ddZd dddZdddddddZdS) BCPPCompilerZbcppz.cz.ccz.cppz.cxxz.objz.libz.dllz%s%sz.exercCstj||||d|_d|_d|_d|_ddddg|_ddddg|_d d dd g|_d d dd g|_ g|_ d dd g|_ d dd d g|_ dS) Nz bcc32.exez ilink32.exeztlib.exez/tWMz/O2z/qz/g0z/Odz/Tpdz/Gnz/xz/r) r__init__cclinkerlibZpreprocess_optionscompile_optionscompile_options_debugldflags_sharedldflags_shared_debugZldflags_static ldflags_exeldflags_exe_debug)selfverbosedry_runforcer1/opt/alt/python35/lib64/python3.5/bcppcompiler.pyr5s     zBCPPCompiler.__init__Nc Cs|j||||||\}} }} } |p6g} | jd|r_| j|jn| j|jx| D]} y| | \}}Wntk rwvYnXtjj|}tjj| } |j tjj | |dkrqv|dkrTy|j dd| |gWqvt k rP}zt |WYdd}~XqvXqv||jkrld}n||jkrd}nd}d| }y4|j |jg| | ||g||gWqvt k r}zt |WYdd}~XqvXqvW| S) Nz-cz.resz.rcZbrcc32z-foz-Pz-o)Z_setup_compileappendextendrrKeyErrorospathnormpathmkpathdirnamespawnrr _c_extensions_cpp_extensionsr)rZsources output_dirmacros include_dirsdebug extra_preargsextra_postargsZdependsobjectspp_optsZbuildZ compile_optsobjsrcextmsgZ input_optZ output_optrrrcompileQsF         .#zBCPPCompiler.compilec Cs|j||\}}|j|d|}|j||r|dg|}|rUy|j|jg|Wqtk r}zt|WYdd}~XqXntjd|dS)Nr+z/uzskipping %s (up-to-date)) _fix_object_argslibrary_filename _need_linkr(rrrr r.) rr1Zoutput_libnamer+r. target_langoutput_filenameZlib_argsr6rrrcreate_static_libs"zBCPPCompiler.create_static_libc Cs|j||\}}|j|||\}}}|rRtjdt||dk rstjj||}|j||r|t j krd}| r|j dd}q|j dd}n5d}| r|j dd}n|jdd}|dkrd}ntjj|\}}tjj|\}}tjj|d}tjj|d|}dg}x+|pgD]}|jd||fqW|jt||fd |ttjj|}|g}g}x[|D]S}tjjtjj|\}}|d kr:|j|q|j|qWx+|D]#}|jd tjj|qRW|jd |j||jd |g|jdxL|D]D}|j||| }|dkr|j|q|j|qW|jd|jd|jd |g|jd |j|| r_| |dd<| rr|j| |jtjj|y|j|jg|Wqtk r}zt|WYdd}~XqXntjd|dS)Nz7I don't know what to do with 'runtime_library_dirs': %sZc0w32Zc0d32rrz%s.defZEXPORTSz %s=_%sz writing %sz.resz/L%sz/L.,z,,Zimport32Zcw32mtzskipping %s (up-to-date)) r8Z _fix_lib_argsr warnstrr#r$joinr:rZ EXECUTABLErrrrsplitsplitextr'r Zexecuter mapr%normcaser!find_library_filer&r(rrrr.) rZ target_descr1r<r+Z librariesZ library_dirsZruntime_library_dirsZexport_symbolsr.r/r0Z build_tempr;Z startup_objZld_argsZdef_fileheadtailmodnamer5Ztemp_dircontentsZsymZobjects2Z resourcesfilebaselrlibfiler6rrrlinks|         $  !          "zBCPPCompiler.linkc Cs|r-|d}|d|d||f}n|d|f}xW|D]K}xB|D]:}tjj||j|}tjj|rQ|SqQWqDWdSdS)NZ_dZ_bcpp)r#r$rAr9exists) rdirsrr.ZdlibZ try_namesdirnamerNrrrrF4s     zBCPPCompiler.find_library_filercCs|dkrd}g}x|D]}tjjtjj|\}}||jddgkrxtd||f|rtjj|}|dkr|jtjj|||q|dkr|jtjj||dq|jtjj|||j qW|S)Nrz.rcz.resz"unknown file type '%s' (from '%s')) r#r$rCrEsrc_extensionsrbasenamer rA obj_extension)rZsource_filenamesZ strip_dirr+Z obj_namesZsrc_namerLr5rrrobject_filenamesNs"  $ # #zBCPPCompiler.object_filenamesc Cs#|jd||\}}}t||}dg|} |dk rW| jd||rm|| dd<|r| j|| j||js|dkst||r|r|jtjj |y|j | Wn;t k r} zt | t | WYdd} ~ XnXdS)Nz cpp32.exez-or)Z_fix_compile_argsr r r!rr r&r#r$r'r(rprintr) rsourceZ output_filer,r-r/r0_r2Zpp_argsr6rrr preprocessis$     $ zBCPPCompiler.preprocess)__name__ __module__ __qualname__Z compiler_typeZ executablesr)r*rTrVZstatic_lib_extensionZshared_lib_extensionZstatic_lib_formatZshared_lib_formatZ exe_extensionrr7r=rOrFrWr[rrrrrsH     B|r)r#Zdistutils.errorsrrrrrrZdistutils.ccompilerrr r Zdistutils.file_utilr Zdistutils.dep_utilr Z distutilsr rrrrrs .PK!eaJ33*__pycache__/file_util.cpython-35.opt-2.pycnu[ ]@sddlZddlmZddlmZddddddiZdd d Zd d ddd dddZd dddZddZ dS)N)DistutilsFileError)logZcopyinghardz hard linkingsymzsymbolically linkingicNCsd}d}zyt|d}Wn>tk rb}ztd||jfWYdd}~XnXtjj|rytj|Wn>tk r}ztd||jfWYdd}~XnXyt|d}Wn>tk r}ztd||jfWYdd}~XnXxy|j|}Wn>tk rq}ztd||jfWYdd}~XnX|syPy|j |Wqtk r}ztd||jfWYdd}~XqXqWWd|r|j |r|j XdS)Nrbzcould not open '%s': %szcould not delete '%s': %swbzcould not create '%s': %szcould not read from '%s': %szcould not write to '%s': %s) openOSErrorrstrerrorospathexistsunlinkreadwriteclose)srcdstZ buffer_sizefsrcfdstebufr./opt/alt/python35/lib64/python3.5/file_util.py_copy_file_contentssF ,)))1 rcCsddlm}ddlm} m} m} m} tjj |sTt d|tjj |r|} tjj |tjj |}ntjj|} |r||| r|dkrtjd||dfSyt|}Wn"tk rtd|YnX|dkrptjj |tjj |krZtjd||| ntjd||||r|dfS|d krtjj|otjj||s6ytj|||dfSWq6tk rYq6XnM|d kr6tjj|otjj||s6tj|||dfSt|||sO|rtj|}|rtj||| || f|rtj|| || |dfS) Nr)newer)ST_ATIMEST_MTIMEST_MODES_IMODEz4can't copy '%s': doesn't exist or not a regular filerz"not copying %s (output up-to-date)z&invalid value '%s' for 'link' argumentz %s %s -> %srr)Zdistutils.dep_utilrstatrrr r!r r isfilerisdirjoinbasenamedirnamerdebug _copy_actionKeyError ValueErrorinforsamefilelinkr symlinkrutimechmod)rrZ preserve_modeZpreserve_timesupdater.verbosedry_runrrrr r!diractionstrrr copy_fileCsT!" $    $  '  '   r8c(Csddlm}m}m}m}m}ddl} |dkrStjd|||r]|S||syt d|||rt j j |||}n"||rt d||f|||st d||fd} yt j ||Wnetk rn} zE| j\} } | | jkrCd } nt d ||| fWYdd} ~ XnX| rt||d |yt j|Wnvtk r} zV| j\} } yt j|Wntk rYnXt d |||| fWYdd} ~ XnX|S) Nr)rr#r$r&r'rzmoving %s -> %sz#can't move '%s': not a regular filez0can't move '%s': destination '%s' already existsz2can't move '%s': destination '%s' not a valid pathFTzcouldn't move '%s' to '%s': %sr3zAcouldn't move '%s' to '%s' by copy/delete: delete '%s' failed: %s)Zos.pathrr#r$r&r'errnorr,rr r r%renamer argsZEXDEVr8r)rrr3r4rr#r$r&r'r9Zcopy_itrnummsgrrr move_filesR (      ) )r>c CsGt|d}z&x|D]}|j|dqWWd|jXdS)Nw )r rr)filenamecontentsflinerrr write_files  rEi@) r Zdistutils.errorsrZ distutilsrr)rr8r>rErrrrs  3 c=PK! .##*__pycache__/cygwinccompiler.cpython-35.pycnu[ YfZ@@sgdZddlZddlZddlZddlmZmZmZddlZddl m Z m Z ddl m Z ddlmZddlmZmZmZmZddlmZdd lmZdd lmZd d ZGd dde ZGdddeZdZdZdZ ddZ!ej"dZ#ddZ$ddZ%ddZ&dS)adistutils.cygwinccompiler Provides the CygwinCCompiler class, a subclass of UnixCCompiler that handles the Cygwin port of the GNU C compiler to Windows. It also contains the Mingw32CCompiler class which handles the mingw32 port of GCC (same as cygwin in no-cygwin mode). N)PopenPIPE check_output)gen_preprocess_optionsgen_lib_options) UnixCCompiler) write_file)DistutilsExecErrorCCompilerError CompileErrorUnknownFileError)log) LooseVersion)find_executablecCstjjd}|dkrtj|d|d}|dkrLdgS|dkr_dgS|d krrd gS|d krd gS|d krdgStd|dS)zaInclude the appropriate MSVC runtime library if Python was built with MSVC 7.0 or later. zMSC v. Z1300Zmsvcr70Z1310Zmsvcr71Z1400Zmsvcr80Z1500Zmsvcr90Z1600Zmsvcr100zUnknown MS Compiler version %s N)sysversionfind ValueError)Zmsc_posZmsc_verr>/opt/alt/python35/lib64/python3.5/distutils/cygwinccompiler.py get_msvcr?s      rc @seZdZdZdZdZdZdZdZdZ dZ d d d d d Z d d Z dddddd dddddd Z d dddZdS)CygwinCCompilerz? Handles the Cygwin port of the GNU C compiler to Windows. cygwinz.oz.az.dllzlib%s%sz%s%sz.exerc CsPtj||||t\}}|jd||f|tk rY|jd|t\|_|_|_ |j|j d|j|j|j f|jdkrd|_ n d|_ |jdkrd}nd }|j d d d d dddddd|j |f|jdkr@dg|_ |jdn t|_ dS)Nz%Python's GCC status: %s (details: %s)zPython's pyconfig.h doesn't seem to support your compiler. Reason: %s. Compiling may fail because of undefined preprocessor macros.z: gcc %s, ld %s, dllwrap %s z2.10.90gccdllwrapz2.13z-sharedz -mdll -staticcompilerzgcc -mcygwin -O -Wall compiler_sozgcc -mcygwin -mdll -O -Wall compiler_cxxzg++ -mcygwin -O -Wall linker_exez gcc -mcygwin linker_soz%s -mcygwin %sz2.91.57Zmsvcrtz,Consider upgrading to a newer version of gcc)r__init__check_config_hZ debug_print CONFIG_H_OKwarn get_versions gcc_version ld_versionZdllwrap_version compiler_type linker_dllset_executables dll_librariesr)selfverbosedry_runforceZstatusZdetails shared_optionrrrr$ds<       zCygwinCCompiler.__init__cCs|dks|dkroy |jdd|d|gWqtk rk}zt|WYdd}~XqXn]y)|j|j||d|g|Wn1tk r}zt|WYdd}~XnXdS)z:Compiles the source by spawning GCC and windres if needed.z.rcz.resZwindresz-iz-oN)Zspawnr r r )r/objsrcextZcc_argsextra_postargsZpp_optsmsgrrr_compiles " zCygwinCCompiler._compileNcCstj| pg} tj|p$g}tj|p9g}|j|j|dk r||jksy|jdkrtjj|d}tjjtjj |\}}tjj ||d}tjj |d|d}dtjj |dg}x|D]}|j |q W|j t ||fd ||jd krx| jd |g| jd |gn |j || s| j d tj||||||||d| | | | | dS)zLink the objects.Nrrz.deflibz.az LIBRARY %sZEXPORTSz writing %srz --output-libz--defz-s)copyextendr.Z EXECUTABLEr,ospathdirnamesplitextbasenamejoinappendZexecuterrlink)r/Z target_descZobjectsZoutput_filename output_dirZ librariesZ library_dirsZruntime_library_dirsZexport_symbolsdebugZ extra_preargsr7Z build_tempZ target_langZtemp_dirZdll_nameZ dll_extensionZdef_fileZlib_filecontentsZsymrrrrDs:          zCygwinCCompiler.linkcCs|dkrd}g}x|D]}tjjtjj|\}}||jddgkrxtd||f|rtjj|}|dkr|jtjj||||j q|jtjj|||j qW|S)z#Adds supports for rc and res files.NrH.rc.resz"unknown file type '%s' (from '%s'))rJrI) r=r>r@normcaseZsrc_extensionsr rArCrB obj_extension)r/Zsource_filenamesZ strip_dirrEZ obj_namesZsrc_namebaser6rrrobject_filenamess   $ z CygwinCCompiler.object_filenames)__name__ __module__ __qualname____doc__r+rLZstatic_lib_extensionZshared_lib_extensionZstatic_lib_formatZshared_lib_formatZ exe_extensionr$r9rDrNrrrrrYs ;   Krc@s1eZdZdZdZdddddZdS)Mingw32CCompilerz@ Handles the Mingw32 port of the GNU C compiler to Windows. Zmingw32rcCstj|||||jdkr.d}nd}|jdkrLd}nd}trgtd|jdd d d d d dddd|j||fg|_t |_dS)Nz2.13z-sharedz -mdll -staticz2.91.57z--entry _DllMain@12rHz1Cygwin gcc cannot be used with --compiler=mingw32rz gcc -O -Wallr zgcc -mdll -O -Wallr!z g++ -O -Wallr"rr#z%s %s %s) rr$r*r) is_cygwingccr r-r,r.r)r/r0r1r2r3Z entry_pointrrrr$s&       zMingw32CCompiler.__init__N)rOrPrQrRr+r$rrrrrSs rSokznot okZ uncertaincCsddlm}dtjkr)tdfS|j}yPt|}z2d|jkrgtd|fStd|fSWd|j XWn<t k r}zt d ||j ffSWYdd}~XnXdS) awCheck if the current Python installation appears amenable to building extensions with GCC. Returns a tuple (status, details), where 'status' is one of the following constants: - CONFIG_H_OK: all is well, go ahead and compile - CONFIG_H_NOTOK: doesn't look good - CONFIG_H_UNCERTAIN: not sure -- unable to read pyconfig.h 'details' is a human-readable string explaining the situation. Note there are two ways to conclude "OK": either 'sys.version' contains the string "GCC" (implying that this Python was built with GCC), or the installed "pyconfig.h" contains the string "__GNUC__". r) sysconfigZGCCzsys.version mentions 'GCC'Z__GNUC__z'%s' mentions '__GNUC__'z '%s' does not mention '__GNUC__'Nzcouldn't read '%s': %s) distutilsrVrrr&get_config_h_filenameopenreadCONFIG_H_NOTOKcloseOSErrorCONFIG_H_UNCERTAINstrerror)rVfnconfig_hexcrrrr%Hs   r%s(\d+\.\d+(\.\d+)*)c Cs|jd}t|dkr&dSt|dddtj}z|j}Wd|jXtj|}|dkr~dSt |j dj S)zFind the version of an executable by running `cmd` in the shell. If the command is not found, or the output does not match `RE_VERSION`, returns None. rNshellTstdoutr) splitrrrrdrZr\ RE_VERSIONsearchrgroupdecode)cmd executableout out_stringresultrrr_find_exe_versionus  rocCs&dddg}tdd|DS)zg Try to find out the versions of gcc, ld and dllwrap. If not possible it returns None for it. zgcc -dumpversionzld -vzdllwrap --versioncSsg|]}t|qSr)ro).0rjrrr s z get_versions..)tuple)Zcommandsrrrr(sr(cCs%tddg}|jjdS)z>Try to determine if the gcc that would be used is from cygwin.rz -dumpmachinescygwin)rstripendswith)rmrrrrTsrT)'rRr=rr; subprocessrrrreZdistutils.ccompilerrrZdistutils.unixccompilerrZdistutils.file_utilrZdistutils.errorsr r r r rWr Zdistutils.versionrZdistutils.spawnrrrrSr&r[r^r%compilerfror(rTrrrrs.)    " 1 +  PK!iaM44(__pycache__/_msvccompiler.cpython-35.pycnu[ YfO@s*dZddlZddlZddlZddlZddlmZmZmZm Z m Z ddl m Z m Z ddlmZddlmZddlZddlmZdd Zd d Zdd d ZddddiZddddddiZedgZGddde ZdS)adistutils._msvccompiler Contains MSVCCompiler, an implementation of the abstract CCompiler class for Microsoft Visual Studio 2015. The module is compatible with VS 2015 and later. You can find legacy support for older versions in distutils.msvc9compiler and distutils.msvccompiler. N)DistutilsExecErrorDistutilsPlatformError CompileErrorLibError LinkError) CCompilergen_lib_options)log) get_platform)countc $Csy)tjtjddtjtjB}Wn#tk rNtjdd SYnX|d}d}xtD]}ytj ||\}}}Wntk rPYnX|rl|tj krlt j j |rlytt|}Wnttfk rwlYnX|dkrl||krl||}}qlW|sBtjdd St j j|d} t j j| s}tjd| d Sd} tj|} | rt j j|| j|} t j j| stjd| d} | | fSWdQRXdS) Nz'Software\Microsoft\VisualStudio\SxS\VC7accesszVisual C++ is not registeredrz$No suitable Visual C++ version foundz vcvarsall.batz%s cannot be found)NN)NN)NN)winregZ OpenKeyExHKEY_LOCAL_MACHINEZKEY_READZKEY_WOW64_32KEYOSErrorr debugr Z EnumValueZREG_SZospathisdirintfloat ValueError TypeErrorjoinisfile _VCVARS_PLAT_TO_VCRUNTIME_REDISTgetformat) plat_speckeyZ best_versionZbest_dirivZvc_dirZvtversion vcvarsall vcruntimeZvcruntime_specr%Ns z_get_vc_env..zUnable to find vcvarsall.batzcmd /u /c "{}" {} && setstderrzutf-16leerrorsreplacezError executing {}cSs4i|]*\}}}|r|r||jqSr%)r()r)r_r*r%r%r&r+as  css|]}|jdVqdS)=N) partition)r)liner%r%r& dsz_get_vc_env..py_vcruntime_redist)rgetenvenvironitemsr'r subprocessZ check_outputrZSTDOUTdecodeZCalledProcessErrorr erroroutputcmd splitlines)rr#r$outexcenvr%r%r& _get_vc_envLs(    "  rAcCsm|s!tjdjtj}xE|D]=}tjjtjj||}tjj|r(|Sq(W|S)atReturn path to an MSVC executable program. Tries to find the program in several places: first, one of the MSVC program search paths from the registry; next, the directories in the PATH environment variable. If any of those work, return an absolute path that is known to exist. If none of them work, just return the original program name, 'exe'. r)rr5splitpathseprrabspathr)Zexepathspfnr%r%r& _find_exels  !rHwin32Zx86z win-amd64Z x86_amd64z1redist\x86\Microsoft.VC{0}0.CRT\vcruntime{0}0.dllamd64z1redist\x64\Microsoft.VC{0}0.CRT\vcruntime{0}0.dllzvcruntime140.dllc smeZdZdZdZiZdgZdddgZdgZdgZ eeee Z d Z d Z d Z d Zd ZZdZdddddZdddZddddZdddddddddZdddddZdddddddddddd ZddZfd d!Zd"d#Zd$d%Zd&d'Zdd(d)ZS)* MSVCCompilerzwConcrete class that implements an interface to Microsoft Visual C++, as defined by the CCompiler abstract class.Zmsvcz.cz.ccz.cppz.cxxz.rcz.mcz.resz.objz.libz.dllz%s%sz.exercCs,tj||||d|_d|_dS)NF)r__init__ plat_name initialized)selfverboseZdry_runZforcer%r%r&rLs zMSVCCompiler.__init__NcCs;|j std|dkr+t}|tkrRtdjttt|}t|}|sztd|jdd|_ |j j t j }t d||_t d||_t d||_t d ||_t d ||_t d ||_|jd d|_x9|jd dj t j D]}|rD|j|qDWx9|jddj t j D]}|r|j|qWd|_dddddg|_|jj|jrdndddddddg|_dddg}|js|jd%ddddg}|d&|_|d'|_|d(|_|d)|_||_ ||_!t"j#df|jt"j#d#f|jt"j#d$f|jt"j$df|jt"j$d#f|jt"j$d$f|jt"j%df|j t"j%d#f|j t"j%d$f|j!i |_&d$|_dS)*Nzdon't init multiple timesz--plat-name must be one of {}z7Unable to find a compatible Visual Studio installation.rzcl.exezlink.exezlib.exezrc.exezmc.exezmt.exer4includelibz/nologoz/Oxz/W3z/GLz/DNDEBUGz/MDz/MTz/Odz/MDdz/Ziz/D_DEBUGz/INCREMENTAL:NOz/LTCG/nodefaultlib:libucrt.libucrt.libz /DEBUG:FULL/MANIFEST:EMBED,ID=1/DLL/MANIFEST:EMBED,ID=2/MANIFESTUAC:NOFT)rTrU)rV)rV)rWrXrY)rWrXrY)'rNAssertionErrorr PLAT_TO_VCVARSrrtuplerAr_pathsrBrrCrHcclinkerrSrcmcZmt_vcruntime_redistZadd_include_dirZadd_library_dirZpreprocess_optionscompile_optionsappendcompile_options_debugextendZ ldflags_exeZldflags_exe_debugZldflags_sharedZldflags_shared_debugZldflags_staticZldflags_static_debugrZ EXECUTABLEZ SHARED_OBJECTZSHARED_LIBRARY_ldflags)rOrMrZvc_envrEdirldflagsZ ldflags_debugr%r%r& initializesb       %%     zMSVCCompiler.initializerQcsvfddjDfddjjDpHdfdd}tt||S)Ncsi|]}j|qSr%) obj_extension)r)ext)rOr%r&r+s z1MSVCCompiler.object_filenames..csi|]}j|qSr%) res_extension)r)rl)rOr%r&r+s rQc stjj|\}}r3tjj|}nItjj|\}}|jtjjtjjfr||dd}ytjj||SWn't k rt dj |YnXdS)NzDon't know how to compile {}) rrsplitextbasename splitdrive startswithsepaltsepr LookupErrorrr)rFbaserlr/)ext_map output_dir strip_dirr%r& make_out_paths! z4MSVCCompiler.object_filenames..make_out_path)src_extensions_rc_extensions_mc_extensionslistmap)rOZsource_filenamesryrxrzr%)rwrxrOryr&object_filenames s & zMSVCCompiler.object_filenamesc Cs?|js|j|j||||||} | \}} }} } |pOg} | jd|rx| j|jn| j|jd}x| D]}y| |\}}Wntk rwYnX|rtj j |}||j krd|}n||j krd|}d}n||j kr|}d|}y%|j|jg| ||gWqtk r}zt|WYdd}~XqXqn||jkrtj j|}tj j|}y|j|jd|d||gtj jtj j|\}}tj j||d }|j|jd||gWqtk r}zt|WYdd}~XqXqntd j|||jg| | }|r|jd |j||jd ||j|y|j|Wqtk r6}zt|WYdd}~XqXqW| S) Nz/cFz/Tcz/TpTz/foz-hz-rz.rcz"Don't know how to compile {} to {}z/EHscz/Fo)rNrjZ_setup_compilerdrfrercKeyErrorrrrD _c_extensions_cpp_extensionsr|spawnr`rrr}dirnamerarorprrr^)rOZsourcesrxZmacrosZ include_dirsr extra_preargsextra_postargsZdependsZ compile_infoobjectsZpp_optsZbuildZ compile_optsZ add_cpp_optsobjsrcrlZ input_optZ output_optmsgZh_dirZrc_dirrvr/Zrc_fileargsr%r%r&compile+sn          % "$!    #zMSVCCompiler.compilec Cs|js|j|j||\}}|j|d|}|j||r|d|g}|riy:tjd|jdj||j |jg|Wqt k r}zt |WYdd}~XqXntjd|dS)Nrxz/OUT:zExecuting "%s" %s zskipping %s (up-to-date)) rNrj_fix_object_argslibrary_filename _need_linkr rrSrrrr) rOrZoutput_libnamerxr target_langoutput_filenameZlib_argsrr%r%r&create_static_libs    "zMSVCCompiler.create_static_libcCsX|js|j|j||\}}|j|||}|\}}}|rl|jdt|t||||}|dk rtjj ||}|j ||rD|j || f}dd|pgD}||||d|g}tjj |d} |dk rrtjj tjj|\}}tjj | |j|}|jd|| r| |dd<| r|j| tjj tjj|}|j|yGtjd|jdj ||j|jg||j|WqTtk r@}zt|WYdd}~XqTXntjd |dS) Nz5I don't know what to do with 'runtime_library_dirs': cSsg|]}d|qS)z/EXPORT:r%)r)Zsymr%r%r& s z%MSVCCompiler.link..z/OUT:rz/IMPLIB:zExecuting "%s" %srzskipping %s (up-to-date))rNrjrZ _fix_lib_argswarnstrrrrrrrgrrorprrdrfrDZmkpathr rr_r_copy_vcruntimerr)rOZ target_descrrrxZ librariesZ library_dirsZruntime_library_dirsZexport_symbolsrrrZ build_temprZ fixed_argsZlib_optsriZ export_optsZld_argsZdll_nameZdll_extZ implib_filerr%r%r&linksN            "zMSVCCompiler.linkcCs|j}| s#tjj| r'dStjj|jtkrIdStjd|t j ||}tj |t j dS)Nz Copying "%s")rbrrrrpr( _BUNDLED_DLLSr rshutilcopychmodstatS_IWRITE)rOrxr$r%r%r&rs zMSVCCompiler._copy_vcruntimec sHtjd}z$|jtjds(    (  .   PK!B*__pycache__/file_util.cpython-35.opt-1.pycnu[ Yf@sdZddlZddlmZddlmZdddddd iZdd d ZddddddddZddddZ ddZ dS)zFdistutils.file_util Utility functions for operating on single files. N)DistutilsFileError)logZcopyinghardz hard linkingsymzsymbolically linkingicNCsd}d}zyt|d}Wn>tk rb}ztd||jfWYdd}~XnXtjj|rytj|Wn>tk r}ztd||jfWYdd}~XnXyt|d}Wn>tk r}ztd||jfWYdd}~XnXxy|j|}Wn>tk rq}ztd||jfWYdd}~XnX|syPy|j |Wqtk r}ztd||jfWYdd}~XqXqWWd|r|j |r|j XdS) a5Copy the file 'src' to 'dst'; both must be filenames. Any error opening either file, reading from 'src', or writing to 'dst', raises DistutilsFileError. Data is read/written in chunks of 'buffer_size' bytes (default 16k). No attempt is made to handle anything apart from regular files. Nrbzcould not open '%s': %szcould not delete '%s': %swbzcould not create '%s': %szcould not read from '%s': %szcould not write to '%s': %s) openOSErrorrstrerrorospathexistsunlinkreadwriteclose)srcdstZ buffer_sizeZfsrcZfdsteZbufr8/opt/alt/python35/lib64/python3.5/distutils/file_util.py_copy_file_contentssF ,)))1 rcCsddlm}ddlm} m} m} m} tjj |sTt d|tjj |r|} tjj |tjj |}ntjj|} |r||| r|dkrtjd||dfSyt|}Wn"tk rtd|YnX|dkrptjj |tjj |krZtjd||| ntjd||||r|dfS|d krtjj|otjj||s6ytj|||dfSWq6tk rYq6XnM|d kr6tjj|otjj||s6tj|||dfSt|||sO|rtj|}|rtj||| || f|rtj|| || |dfS) aCopy a file 'src' to 'dst'. If 'dst' is a directory, then 'src' is copied there with the same name; otherwise, it must be a filename. (If the file exists, it will be ruthlessly clobbered.) If 'preserve_mode' is true (the default), the file's mode (type and permission bits, or whatever is analogous on the current platform) is copied. If 'preserve_times' is true (the default), the last-modified and last-access times are copied as well. If 'update' is true, 'src' will only be copied if 'dst' does not exist, or if 'dst' does exist but is older than 'src'. 'link' allows you to make hard links (os.link) or symbolic links (os.symlink) instead of copying: set it to "hard" or "sym"; if it is None (the default), files are copied. Don't set 'link' on systems that don't support it: 'copy_file()' doesn't check if hard or symbolic linking is available. If hardlink fails, falls back to _copy_file_contents(). Under Mac OS, uses the native file copy function in macostools; on other systems, uses '_copy_file_contents()' to copy file contents. Return a tuple (dest_name, copied): 'dest_name' is the actual name of the output file, and 'copied' is true if the file was copied (or would have been copied, if 'dry_run' true). r)newer)ST_ATIMEST_MTIMEST_MODES_IMODEz4can't copy '%s': doesn't exist or not a regular filerz"not copying %s (output up-to-date)z&invalid value '%s' for 'link' argumentz %s %s -> %srr)Zdistutils.dep_utilrstatrrrrr r isfilerisdirjoinbasenamedirnamerdebug _copy_actionKeyError ValueErrorinforsamefilelinkr symlinkrutimechmod)rrZ preserve_modeZpreserve_timesupdater+verbosedry_runrrrrrdiractionstrrr copy_fileCsT!" $    $  '  '   r5c(Csddlm}m}m}m}m}ddl} |dkrStjd|||r]|S||syt d|||rt j j |||}n"||rt d||f|||st d||fd } yt j ||Wnetk rn} zE| j\} } | | jkrCd } nt d ||| fWYdd} ~ XnX| rt||d |yt j|Wnvtk r} zV| j\} } yt j|Wntk rYnXt d |||| fWYdd} ~ XnX|S)a%Move a file 'src' to 'dst'. If 'dst' is a directory, the file will be moved into it with the same name; otherwise, 'src' is just renamed to 'dst'. Return the new full name of the file. Handles cross-device moves on Unix using 'copy_file()'. What about other systems??? r)rr r!r#r$Nrzmoving %s -> %sz#can't move '%s': not a regular filez0can't move '%s': destination '%s' already existsz2can't move '%s': destination '%s' not a valid pathFTzcouldn't move '%s' to '%s': %sr0zAcouldn't move '%s' to '%s' by copy/delete: delete '%s' failed: %s)Zos.pathrr r!r#r$errnorr)rr r r"renamer argsZEXDEVr5r)rrr0r1rr r!r#r$r6Zcopy_itrZnummsgrrr move_filesR (      ) )r:c CsGt|d}z&x|D]}|j|dqWWd|jXdS)z{Create a file with the specified name and write 'contents' (a sequence of strings without line terminators) to it. w N)r rr)filenamecontentsflinerrr write_files  rAi@) __doc__r Zdistutils.errorsrZ distutilsrr&rr5r:rArrrrs  3 c=PK!O8,8,-__pycache__/fancy_getopt.cpython-35.opt-1.pycnu[ YfxE@sHdZddlZddlZddlZddlZddlTdZejdeZejdeefZ e j ddZ Gd d d Z d d Zd dejDZddZddZGdddZedkrDdZxKddddfD]7Zedeedjeeeeq WdS)a6distutils.fancy_getopt Wrapper around the standard getopt module that provides the following additional features: * short and long options are tied together * options have help strings, so fancy_getopt could potentially create a complete usage summary * options set attributes of a passed-in object N)*z[a-zA-Z](?:[a-zA-Z0-9-]*)z^%s$z ^(%s)=!(%s)$-_c@seZdZdZdddZddZddZddd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddddZddZdddZddddZdS) FancyGetoptaWrapper around the standard 'getopt()' module that provides some handy extra functionality: * short and long options are tied together * options have help strings, and help text can be assembled from them * options set attributes of a passed-in object * boolean options can have "negative aliases" -- eg. if --quiet is the "negative alias" of --verbose, then "--quiet" on the command line sets 'verbose' to false NcCsq||_i|_|jr%|ji|_i|_g|_g|_i|_i|_i|_ g|_ dS)N) option_table option_index _build_indexaliasnegative_alias short_opts long_opts short2long attr_name takes_arg option_order)selfrr;/opt/alt/python35/lib64/python3.5/distutils/fancy_getopt.py__init__)s           zFancyGetopt.__init__cCs6|jjx"|jD]}||j|d= 2Nz:invalid short option '%s': must a single character or None=:z>invalid negative alias '%s': aliased option '%s' takes a valuezginvalid alias '%s': inconsistent with aliased option '%s' (one of them takes a value, the other doesn'tzEinvalid long option name '%s' (must be letters, numbers, hyphens onlyr,r,)r r r rrepeatrlen ValueError isinstancestrrrrr getr longopt_rematchrr)rrlongshorthelpr-Zalias_torrr_grok_option_tables^     "  !         zFancyGetopt._grok_option_tablec Cs|dkrtjdd}|dkr=t}d}nd}|jdj|j}y"tj|||j\}}Wn4tjk r}zt |WYdd}~XnXx|D]\}}t |dkr|ddkr|j |d}n|dd}|j j |} | r/| }|j|si|jj |} | rc| }d}nd}|j|} |r|jj | dk rt|| dd}t|| ||jj||fqW|r||fS|SdS) aParse command-line options in args. Store as attributes on object. If 'args' is None or not supplied, uses 'sys.argv[1:]'. If 'object' is None or not supplied, creates a new OptionDummy object, stores option values there, and returns a tuple (args, object). If 'object' is supplied, it is modified in place and 'getopt()' just returns 'args'; in both cases, the returned 'args' is a modified copy of the passed-in 'args' list, which is left untouched. Nr)TF r(rr)sysargv OptionDummyr8joinr getoptr errorZDistutilsArgErrorr.r r r2rr rr-getattrsetattrrr) rargsobjectZcreated_objectr Zoptsmsgr"valr attrrrrr>sB     ""    zFancyGetopt.getoptcCs)|jdkrtdn|jSdS)zReturns the list of (option, value) tuples processed by the previous run of 'getopt()'. Raises RuntimeError if 'getopt()' hasn't been called yet. Nz!'getopt()' hasn't been called yet)r RuntimeError)rrrrget_option_orderszFancyGetopt.get_option_ordercCsd}xs|jD]h}|d}|d}t|}|ddkrP|d}|dk rf|d}||kr|}qW|ddd}d}||} d|} |r|g} n d g} x|jD]}|dd \}}} t| | } |ddkr|dd}|dkrh| rN| jd ||| dfq| jd ||fnHd ||f}| r| jd ||| dfn| jd|x)| ddD]}| j| |qWqW| S)zGenerate help text (a list of strings, one per suggested line of output) from the option table for this FancyGetopt object. rr)r*Nr(Nr9zOption summary:r&z --%-*s %sz --%-*s z%s (-%s)z --%-*sr,r,r,)rr. wrap_textr)rheaderZmax_optrr5r6lZ opt_widthZ line_widthZ text_widthZ big_indentlinesr7textZ opt_namesrrr generate_helpsF             ! zFancyGetopt.generate_helpcCsD|dkrtj}x(|j|D]}|j|dq%WdS)N )r:stdoutrPwrite)rrLfilelinerrr print_helphs  zFancyGetopt.print_help)__name__ __module__ __qualname____doc__rrrrrrr#r$r%r8r>rHrPrVrrrrrs (       M= OrcCs)t|}|j||j||S)N)rr%r>)optionsZ negative_optrCrBparserrrr fancy_getoptos  r]cCsi|]}dt|qS)r9)ord).0Z_wscharrrr us r`cCsv|dkrgSt||kr)|gS|j}|jt}tjd|}dd|D}g}x|rqg}d}xq|rt|d}|||kr|j|d|d=||}q|r|d ddkr|d =PqW|rX|dkr=|j|dd||d|d|d<|dddkrX|d=|jdj|qrW|S) zwrap_text(text : string, width : int) -> [string] Split 'text' into multiple lines of no more than 'width' characters each, and return the list of strings that results. Nz( +|-+)cSsg|]}|r|qSrr)r_Zchrrr s zwrap_text..rr)r9r,r,)r. expandtabsrWS_TRANSresplitrr=)rOwidthZchunksrNZcur_lineZcur_lenrMrrrrKws:      rKcCs |jtS)zXConvert a long option name to a valid Python identifier by changing "-" to "_". )rr)r"rrrtranslate_longoptsrhc@s%eZdZdZgddZdS)r<z_Dummy class just used as a place to hold command-line option values as instance attributes.cCs%x|D]}t||dqWdS)zkCreate a new OptionDummy instance. The attributes listed in 'options' will be initialized to None.N)rA)rr[r"rrrrs zOptionDummy.__init__N)rWrXrYrZrrrrrr<s r<__main__zTra-la-la, supercalifragilisticexpialidocious. How *do* you spell that odd word, anyways? (Someone ask Mary -- she'll know [or she'll say, "How should I know?"].) (z width: %drQ)rZr:stringrer>Zdistutils.errorsZ longopt_patcompiler3Z neg_alias_rer1 maketransrrr]Z whitespacerdrKrhr<rWrOwprintr=rrrr s($  S  6  PK!K()__pycache__/filelist.cpython-35.opt-2.pycnu[ ]0@sddlZddlZddlZddlZddlmZddlmZmZddl m Z GdddZ ddZ ej d d Zd d Zd ddddZdS)N) convert_path)DistutilsTemplateErrorDistutilsInternalError)logc@seZdZddddZddZejddZdd Zd d Z d d Z ddZ ddZ ddZ ddZdddddZdddddZdS)FileListNcCsd|_g|_dS)N)allfilesfiles)selfwarn debug_printr -/opt/alt/python35/lib64/python3.5/filelist.py__init__s zFileList.__init__cCs ||_dS)N)r)r rr r r set_allfiles#szFileList.set_allfilescCst||_dS)N)findallr)r dirr r r r&szFileList.findallcCs$ddlm}|r t|dS)Nr)DEBUG)Zdistutils.debugrprint)r msgrr r r r )szFileList.debug_printcCs|jj|dS)N)rappend)r itemr r r r3szFileList.appendcCs|jj|dS)N)rextend)r itemsr r r r6szFileList.extendcCsXtttjj|j}g|_x*|D]"}|jjtjj|q.WdS)N)sortedmapospathsplitrrjoin)r Zsortable_filesZ sort_tupler r r sort9s  z FileList.sortcCsVxOtt|jdddD].}|j||j|dkr |j|=q WdS)Nr)rangelenr)r ir r r remove_duplicatesCs&zFileList.remove_duplicatescCs1|j}|d}d}}}|dkrrt|dkrRtd|dd |d dD}n|dkrt|d krtd|t|d }dd |ddD}nQ|dkrt|dkrtd|t|d }ntd|||||fS)Nrincludeexcludeglobal-includeglobal-excludez&'%s' expects ...cSsg|]}t|qSr )r).0wr r r Ws z1FileList._parse_template_line..r recursive-includerecursive-excludez,'%s' expects ...cSsg|]}t|qSr )r)r+r,r r r r-]s graftprunez#'%s' expects a single zunknown action '%s')r&r'r(r))r.r/)r1r2)rr#rr)r lineZwordsactionpatternsr dir_patternr r r _parse_template_lineLs,          zFileList._parse_template_linecCs|j|\}}}}|dkrz|jddj|x|D]+}|j|ddsHtjd|qHWn|dkr|jddj|x^|D]+}|j|ddstjd |qWn(|d kr8|jd dj|x|D]+}|j|dd stjd |qWn|dkr|jddj|x|D]+}|j|dd setjd|qeWnj|dkr|jd|dj|fx;|D].}|j|d|stjd||qWn|dkrg|jd|dj|fx|D].}|j|d|s2tjd||q2Wn|dkr|jd||jdd|stjd|nU|dkr|jd||jdd|stjd|ntd|dS)Nr&zinclude  anchorr z%warning: no files found matching '%s'r'zexclude z9warning: no previously-included files found matching '%s'zglobal-includezglobal-include rz>warning: no files found matching '%s' anywhere in distributionzglobal-excludezglobal-exclude zRwarning: no previously-included files matching '%s' found anywhere in distributionzrecursive-includezrecursive-include %s %sprefixz:warning: no files found matching '%s' under directory '%s'zrecursive-excludezrecursive-exclude %s %szNwarning: no previously-included files matching '%s' found under directory '%s'r1zgraft z+warning: no directories found matching '%s'r2zprune z6no previously-included directories found matching '%s'z'this cannot happen: invalid action '%s')r7r rinclude_patternrr exclude_patternr)r r3r4r5rr6patternr r r process_template_linehsf                          zFileList.process_template_liner rcCsd}t||||}|jd|j|jdkrH|jxG|jD]<}|j|rR|jd||jj|d}qRW|S)NFz%include_pattern: applying regex r'%s'z adding T)translate_patternr r=rrsearchrr)r r=r9r:is_regex files_found pattern_renamer r r r;s    zFileList.include_patterncCsd}t||||}|jd|jxett|jdddD]D}|j|j|rO|jd|j||j|=d}qOW|S)NFz%exclude_pattern: applying regex r'%s'r z removing Tr!r!)r?r r=r"r#rr@)r r=r9r:rArBrCr$r r r r<s  &  zFileList.exclude_pattern)__name__ __module__ __qualname__rrrcurdirrr rrrr%r7r>r;r<r r r r rs      L,rcCs5ddtj|ddD}ttjj|S)Ncss:|]0\}}}|D]}tjj||VqqdS)N)rrr)r+basedirsrfiler r r s z#_find_all_simple.. followlinksT)rwalkfilterrisfile)rresultsr r r _find_all_simples rRcCsOt|}|tjkrEtjtjjd|}t||}t|S)Nstart) rRrrH functoolspartialrrelpathrlist)rrZmake_relr r r rs  rcCsPtj|}tj}tjdkr-d}d|}tjd||}|S)N\z\\\\z\1[^%s]z((?s    PK!:$ &__pycache__/debug.cpython-35.opt-1.pycnu[ Yf@s"ddlZejjdZdS)NZDISTUTILS_DEBUG)osenvirongetDEBUGrr4/opt/alt/python35/lib64/python3.5/distutils/debug.pys PK!o; ; 1__pycache__/versionpredicate.cpython-35.opt-2.pycnu[ ]  @sddlZddlZddlZejdejZejdZejdZddZ dej dej d ej d ej d ejd ejiZGd ddZdaddZdS)Nz'(?i)^\s*([a-z_]\w*(?:\.[a-z_]\w*)*)(.*)z^\s*\((.*)\)\s*$z%^\s*(<=|>=|<|>|!=|==)\s*([^\s,]+)\s*$cCsMtj|}|s%td||j\}}|tjj|fS)Nz"bad package restriction syntax: %r)re_splitComparisonmatch ValueErrorgroups distutilsversion StrictVersion)predrescompZverStrr 5/opt/alt/python35/lib64/python3.5/versionpredicate.pysplitUps rz>=z!=c@s4eZdZddZddZddZdS)VersionPredicatecCs|j}|stdtj|}|sCtd||j\|_}|j}|rtj|}|std||jd}dd|jdD|_|jstd|n g|_dS) Nzempty package restrictionzbad package name in %rzexpected parenthesized list: %rrcSsg|]}t|qSr )r).0ZaPredr r r ts z-VersionPredicate.__init__..,zempty parenthesized list in %r) striprre_validPackagerrnamere_parensplitr )selfZversionPredicateStrrZparenstrr r r __init__`s$     zVersionPredicate.__init__cCsF|jr;dd|jD}|jddj|dS|jSdS)NcSs*g|] \}}|dt|qS) )r)rcondverr r r r}s z,VersionPredicate.__str__..z (z, ))r rjoin)rseqr r r __str__{s zVersionPredicate.__str__cCs5x.|jD]#\}}t|||s dSq WdS)NFT)r compmap)rrrrr r r satisfied_byszVersionPredicate.satisfied_byN)__name__ __module__ __qualname__rr#r%r r r r rs A  rcCstdkr!tjdtja|j}tj|}|sRtd||jdpdd}|rtj j |}|jd|fS)Nz=([a-zA-Z_]\w*(?:\.[a-zA-Z_]\w*)*)(?:\s*\(\s*([^)\s]+)\s*\))?$z"illegal provides specification: %r) _provision_rxrecompileASCIIrrrgrouprrr)valuemrr r r split_provisions   r2)r,Zdistutils.versionroperatorr-r.rrrrltleeqgtgener$rr+r2r r r r s      !nPK!'d&__pycache__/spawn.cpython-35.opt-2.pycnu[ ]@sddlZddlZddlmZmZddlmZddlmZdddddZ dd Z dddd d Z ej d krdd lm Z dadadddddZdddZdS)N)DistutilsPlatformErrorDistutilsExecError)DEBUG)logcCsmt|}tjdkr1t||d|n8tjdkrVt||d|ntdtjdS)Nposixdry_runntz1don't know how to spawn programs on platform '%s')listosname _spawn_posix _spawn_ntr)cmd search_pathverboserr*/opt/alt/python35/lib64/python3.5/spawn.pyspawns rcCs;x4t|D]&\}}d|kr d|||es z _spawn_posix...cSsg|]}t|qSr)r))r*r+rrrr,ks zF$MACOSX_DEPLOYMENT_TARGET mismatch: now "%s" but "%s" during configurezunable to execute %r: %s rz(unable to execute %r for unknown reasonszcommand %r failed: %sz"command %r terminated by signal %dz%command %r failed with exit status %dz1unknown error executing %r: termination status %dr)"rrrr execvpexecvsysplatform _cfg_targetr&get_config_varsplit_cfg_target_splitenvirongetrdictexecvpeexecveforkr!rstderrwritestrerror_exitwaitpidrr WIFSIGNALEDWTERMSIG WIFEXITED WEXITSTATUS WIFSTOPPED)rrrrr"Zexec_fnenvZ cur_targetZmy_msgpidestatusr$ exit_statusrrrr Xs  "         - r cCs|dkrtjd}|jtj}tjj|\}}tjdkrh|dkrh|d}tjj|sx9|D]1}tjj ||}tjj|r|SqWdS|SdS)NPATHwin32z.exe) r r6r4pathseppathsplitextr0r1isfiler)r"rNpathsbaseextpfrrrrs    r)r0r Zdistutils.errorsrrZdistutils.debugrZ distutilsrrrrr1r&r2r5r rrrrr s   QPK!5ڳ '__pycache__/errors.cpython-35.opt-2.pycnu[ ] @sGdddeZGdddeZGdddeZGdddeZGdd d eZGd d d eZGd d d eZGdddeZGdddeZ GdddeZ GdddeZ GdddeZ GdddeZ GdddeZGdddeZGdddeZGd d!d!eZGd"d#d#eZGd$d%d%eZd&S)'c@seZdZdS)DistutilsErrorN)__name__ __module__ __qualname__rr+/opt/alt/python35/lib64/python3.5/errors.pyr s rc@seZdZdS)DistutilsModuleErrorN)rrrrrrrrs rc@seZdZdS)DistutilsClassErrorN)rrrrrrrrs rc@seZdZdS)DistutilsGetoptErrorN)rrrrrrrr s r c@seZdZdS)DistutilsArgErrorN)rrrrrrrr s r c@seZdZdS)DistutilsFileErrorN)rrrrrrrr $s r c@seZdZdS)DistutilsOptionErrorN)rrrrrrrr *s r c@seZdZdS)DistutilsSetupErrorN)rrrrrrrr 3s r c@seZdZdS)DistutilsPlatformErrorN)rrrrrrrr8s rc@seZdZdS)DistutilsExecErrorN)rrrrrrrr>s rc@seZdZdS)DistutilsInternalErrorN)rrrrrrrrCs rc@seZdZdS)DistutilsTemplateErrorN)rrrrrrrrHs rc@seZdZdS)DistutilsByteCompileErrorN)rrrrrrrrKs rc@seZdZdS)CCompilerErrorN)rrrrrrrrOs rc@seZdZdS)PreprocessErrorN)rrrrrrrrRs rc@seZdZdS) CompileErrorN)rrrrrrrrUs rc@seZdZdS)LibErrorN)rrrrrrrrXs rc@seZdZdS) LinkErrorN)rrrrrrrr\s rc@seZdZdS)UnknownFileErrorN)rrrrrrrr`s rN) Exceptionrrrr r r r r rrrrrrrrrrrrrrr s$ PK!=J.3.3$__pycache__/sysconfig.cpython-35.pycnu[ YfP @sdZddlZddlZddlZddlZddlmZejjej Z ejjej Z ejjej ZejjejZdejkrejjejdZn!ejjejjejZejdkr(ejjd,r(ejjejjeZd d Zeed dZerejdkrejjd-rejjejjeZd d ZeZdZyesejZWne k rYnXddZ!ddddZ"dddddZ#ddZ$ddZ%ddZ&dddZ'ej(dZ)ej(dZ*ej(dZ+dd d!Z,d"d#Z-da.d$d%Z/d&d'Z0d(d)Z1d*d+Z2dS).aProvide access to Python's configuration information. The specific configuration variables available depend heavily on the platform and configuration. The values may be retrieved using get_config_var(name), and the list of variables is available via get_config_vars().keys(). Additional convenience functions are also available. Written by: Fred L. Drake, Jr. Email: N)DistutilsPlatformErrorZ_PYTHON_PROJECT_BASEnt\pcbuild\win32\pcbuild\amd64cCs=x6dD].}tjjtjj|d|rdSqWdS)N Setup.dist Setup.localModulesTF)rr)ospathisfilejoin)dfnr8/opt/alt/python35/lib64/python3.5/distutils/sysconfig.py_is_python_source_dir)s $r_homecCstrttSttS)N) _sys_homer project_baserrrr _python_build2s rcCstjddS)zReturn a string containing the major and minor Python version, leaving off the patchlevel. Sample return values could be '1.5' or '2.2'. N)sysversionrrrrget_python_versionDsrcCs|dkr|rtpt}tjdkrtrn|rCtpBtStjjt dd}tjj |Sdt t }tjj|d|Stjdkrtjj|dSt dtjdS) aReturn the directory containing installed Python header files. If 'plat_specific' is false (the default), this is the path to the non-platform-specific header files, i.e. Python.h and so on; otherwise, this is the path to platform-specific header files (namely pyconfig.h). If 'prefix' is supplied, use it instead of sys.base_prefix or sys.base_exec_prefix -- i.e., ignore 'plat_specific'. NposixsrcdirZIncludepythonincluderzFI don't know where Python installs its C header files on platform '%s')BASE_EXEC_PREFIX BASE_PREFIXr name python_buildrrr r get_config_varnormpathr build_flagsr) plat_specificprefixZincdirZ python_dirrrrget_python_incLs  r)cCs|dkr9|r'|rtp!t}n|r3tp6t}tjdkr|sT|r]d}nd}tjj||dt}|r|Stjj|dSnTtjdkr|rtjj|dStjj|ddSnt d tjdS) aSReturn the directory containing the Python library (standard or site additions). If 'plat_specific' is true, return the directory containing platform-specific modules, i.e. any module from a non-pure-Python module distribution; otherwise, return the platform-shared library directory. If 'standard_lib' is true, return the directory containing standard Python library modules; otherwise, return the directory for site-specific modules. If 'prefix' is supplied, use it instead of sys.base_prefix or sys.base_exec_prefix -- i.e., ignore 'plat_specific'. Nrlib64librz site-packagesrZLibz?I don't know where Python installs its library on platform '%s') r r! EXEC_PREFIXPREFIXr r"r r rr)r' standard_libr(r+Z libpythonrrrget_python_libos(    r/cCs|jdkrtjdkrMtdsMddl}|jtdtdrAZccZcxxZoptZcflagsZccsharedZldsharedZ shlib_suffixarZar_flagsZnewccZcppr?Zcc_cmdrrrrBs\    0      rBcCsdtrBtjdkr3tjjtp'td}qQtp<t}ntdd}tjj|dS)z2Return full pathname of installed pyconfig.h file.rPCr'rz pyconfig-64.h)r#r r"r r rrr))inc_dirrrrget_config_h_filenames rKcCs_trtjjtptdStdddd}djtt }tjj||dS)zAReturn full pathname of installed Makefile from the Python build.Makefiler'rr.rz config-{}{}) r#r r r rrr/formatrr&)Zlib_dirZ config_filerrrget_makefile_filenames rNc Cs|dkri}tjd}tjd}x|j}|sFP|j|}|r|jdd\}}yt|}Wntk rYnX||| sZ    !      #+ I m  $  JPK!S9""*__pycache__/text_file.cpython-35.opt-1.pycnu[ Yf0@sAdZddlZddlZddlZGdddZdS)ztext_file provides the TextFile class, which gives an interface to text files that (optionally) takes care of stripping comments, ignoring blank lines, and joining lines with backslashes.Nc@seZdZdZddddddddddd dd d iZd d d dZddZddZd ddZd ddZ d ddZ ddZ ddZ ddZ d S)TextFilea Provides a file-like object that takes care of all the things you commonly want to do when processing a text file that has some line-by-line syntax: strip comments (as long as "#" is your comment character), skip blank lines, join adjacent lines by escaping the newline (ie. backslash at end of line), strip leading and/or trailing whitespace. All of these are optional and independently controllable. Provides a 'warn()' method so you can generate warning messages that report physical line number, even if the logical line in question spans multiple physical lines. Also provides 'unreadline()' for implementing line-at-a-time lookahead. Constructor is called as: TextFile (filename=None, file=None, **options) It bombs (RuntimeError) if both 'filename' and 'file' are None; 'filename' should be a string, and 'file' a file object (or something that provides 'readline()' and 'close()' methods). It is recommended that you supply at least 'filename', so that TextFile can include it in warning messages. If 'file' is not supplied, TextFile creates its own using 'io.open()'. The options are all boolean, and affect the value returned by 'readline()': strip_comments [default: true] strip from "#" to end-of-line, as well as any whitespace leading up to the "#" -- unless it is escaped by a backslash lstrip_ws [default: false] strip leading whitespace from each line before returning it rstrip_ws [default: true] strip trailing whitespace (including line terminator!) from each line before returning it skip_blanks [default: true} skip lines that are empty *after* stripping comments and whitespace. (If both lstrip_ws and rstrip_ws are false, then some lines may consist of solely whitespace: these will *not* be skipped, even if 'skip_blanks' is true.) join_lines [default: false] if a backslash is the last non-newline character on a line after stripping comments and whitespace, join the following line to it to form one "logical line"; if N consecutive lines end with a backslash, then N+1 physical lines will be joined to form one logical line. collapse_join [default: false] strip leading whitespace from lines that are joined to their predecessor; only matters if (join_lines and not lstrip_ws) errors [default: 'strict'] error handler used to decode the file content Note that since 'rstrip_ws' can strip the trailing newline, the semantics of 'readline()' must differ from those of the builtin file object's 'readline()' method! In particular, 'readline()' returns None for end-of-file: an empty string might just be a blank line (or an all-whitespace line), if 'rstrip_ws' is true but 'skip_blanks' is not.strip_comments skip_blanks lstrip_wsr rstrip_ws join_lines collapse_joinerrorsstrictNcKs|dkr$|dkr$tdxQ|jjD]@}||kr]t||||q4t|||j|q4Wx3|jD]%}||jkrtd|qW|dkr|j|n||_||_d|_g|_ dS)zConstruct a new TextFile object. At least one of 'filename' (a string) and 'file' (a file-like object) must be supplied. They keyword argument options are described above and affect the values returned by 'readline()'.Nz7you must supply either or both of 'filename' and 'file'zinvalid TextFile option '%s'r) RuntimeErrordefault_optionskeyssetattrKeyErroropenfilenamefile current_linelinebuf)selfrrZoptionsZoptr8/opt/alt/python35/lib64/python3.5/distutils/text_file.py__init__Ns      zTextFile.__init__cCs7||_tj|jdd|j|_d|_dS)zyOpen a new file named 'filename'. This overrides both the 'filename' and 'file' arguments to the constructor.rr rN)riorr rr)rrrrrros !z TextFile.opencCs2|j}d|_d|_d|_|jdS)ziClose the current file and forget everything we know about it (filename, current line number).N)rrrclose)rrrrrrvs     zTextFile.closecCsg}|dkr|j}|j|jdt|ttfr^|jdt|n|jd||jt|dj|S)Nz, z lines %d-%d: z line %d: )rappendr isinstancelisttuplestrjoin)rmsglineZoutmsgrrr gen_errors  zTextFile.gen_errorcCs td|j||dS)Nzerror: ) ValueErrorr&)rr$r%rrrerrorszTextFile.errorcCs(tjjd|j||ddS)aPrint (to stderr) a warning message tied to the current logical line in the current file. If the current logical line in the file spans multiple physical lines, the warning refers to the whole range, eg. "lines 3-5". If 'line' supplied, it overrides the current line number; it may be a list or tuple to indicate a range of physical lines, or an integer for a single physical line.z warning:  N)sysstderrwriter&)rr$r%rrrwarnsz TextFile.warncCs|jr$|jd }|jd =|Sd}xu|jj}|dkrNd}|jr|r|jd}|dkr{nz|dks||ddkr|ddkrdpd}|d||}|jdkrq-n|jdd}|jr|r|dkr!|jd |S|j r6|j }||}t |j t rm|j dd|j ds$PK!`0-__pycache__/archive_util.cpython-35.opt-2.pycnu[ ]&@sddlZddlmZddlZyddlZWnek rRdZYnXddlmZddlm Z ddl m Z ddl m Z yddlmZWnek rdZYnXyddlmZWnek rdZYnXd d Zd d Zd ddddddZddddZded%gdfded&gdfded'gdfded(gdfded)gdfdegd fiZd!d"Zddddddd#d$ZdS)*N)warn)DistutilsExecError)spawn)mkpath)log)getpwnam)getgrnamc Cs_tdks|dkrdSyt|}Wntk rFd}YnX|dk r[|dSdS)N)rKeyError)nameresultr 1/opt/alt/python35/lib64/python3.5/archive_util.py_get_gids   rc Cs_tdks|dkrdSyt|}Wntk rFd}YnX|dk r[|dSdS)Nr )rr )r r r r r_get_uid+s   rgzipc sddddddddddi}dddd dd dd i}|dk rl||jkrltd |d } |dkr| |j|d7} ttjj| d|ddl} tj dt t fdd} |sE| j | d||} z| j |d| Wd| jX|dkrtdt| ||} tjdkr|| | g}n|d| g}t|d|| S| S)Nrgzbzip2bz2xzcompressz.gzz.bz2z.xzz.ZzKbad value for 'compress': must be None, 'gzip', 'bzip2', 'xz' or 'compress'z.tardry_runrzCreating tar archivecs@dk r|_|_dk r<|_|_|S)N)gidgnameuiduname)tarinfo)rgroupownerrr r _set_uid_gidas      z"make_tarball.._set_uid_gidzw|%sfilterz'compress' will be deprecated.win32z-f)keys ValueErrorgetrospathdirnametarfilerinforropenaddcloserPendingDeprecationWarningsysplatformr) base_namebase_dirrverboserrrtar_compression compress_ext archive_namer)r tarZcompressed_namecmdr )rrrrr make_tarball7s<             r9c Cs|d}ttjj|d|tdkr|rAd}nd}y td|||gd|Wqtk rtd|YqXntjd|||sytj |dd tj }Wn-t k rtj |dd tj }YnXxtj |D]t\}}} xb| D]Z} tjjtjj|| } tjj| r|j| | tjd | qWqW|j|S) Nz.ziprz-rz-rqzipzkunable to create zip file '%s': could neither import the 'zipfile' module nor find a standalone zip utilityz#creating '%s' and adding '%s' to itw compressionz adding '%s')rr&r'r(zipfilerrrr*ZipFile ZIP_DEFLATED RuntimeErrorZ ZIP_STOREDwalknormpathjoinisfilewriter-) r1r2r3r zip_filenameZ zipoptionsr:dirpathdirnames filenamesr r'r r r make_zipfiles:         ! rJgztarrzgzip'ed tar-filebztarrzbzip2'ed tar-filexztarrzxz'ed tar-fileZztarzcompressed tar filer7zuncompressed tar filer:zZIP filecCs%x|D]}|tkr|SqWdS)N)ARCHIVE_FORMATS)formatsformatr r rcheck_archive_formatss  rQcCs7tj}|dk rMtjd|tjj|}|sMtj||dkrbtj}d|i} yt|} Wn"t k rt d|YnX| d} x"| dD]\} } | | | s@         G5 PK!$__pycache__/ccompiler.cpython-35.pycnu[ Yf7 @szdZddlZddlZddlZddlTddlmZddlmZddl m Z ddl m Z m Z ddlmZmZdd lmZGd d d Zd d fdd fddffZddddZd dddfddddfddddfddddfd d!d"d#fiZd$d%Zdddddd&d'Zd(d)Zd*d+ZdS),zdistutils.ccompiler Contains CCompiler, an abstract base class that defines the interface for the Distutils compiler abstraction model.N)*)spawn) move_file)mkpath)newer_pairwise newer_group) split_quotedexecute)logc @seZdZdZdZdZdZdZdZdZ dZ dZ ddddddddd d iZ dd dgZ d d d d d ZddZddZddZddZdddZddZddZddZddZd d!Zd"d#Zd$d%Zd&d'Zd(d)Zd*d+Zd,d-Zd.d/Zd0d1Z d2d3Z!dd4d5Z"d6d7Z#d8d9Z$d:d;Z%d<d=Z&dddddd>d?Z'dddd dddd@dAZ(dBdCZ)dd ddDdEZ*dFZ+dGZ,dHZ-dddddd dddddIdJ Z.dddddd dddddKdL Z/dddddd dddddMdN Z0ddddd ddddOdPZ1dQdRZ2dSdTZ3dUdVZ4dddddWdXZ5d dYdZZ6d d[d\d]Z7d d[d^d_Z8d d[d`daZ9dbd d[dcddZ:dedfdgZ;dhdiZ<djdkZ=ddedldmZ>dndoZ?dpdqZ@drdsdtZAdS)u CCompileraAbstract base class to define the interface that must be implemented by real compiler classes. Also has some utility methods used by several compiler classes. The basic idea behind a compiler abstraction class is that each instance can be used for all the compile/link steps in building a single project. Thus, attributes common to all of those compile and link steps -- include directories, macros to define, libraries to link against, etc. -- are attributes of the compiler instance. To allow for variability in how individual files are treated, most of those attributes may be varied on a per-compilation or per-link basis. Nz.ccz.cczc++z.cppz.cxxz.mZobjcrcCs||_||_||_d|_g|_g|_g|_g|_g|_g|_ x.|j j D]}|j ||j |qjWdS)N) dry_runforceverbose output_dirmacros include_dirs libraries library_dirsruntime_library_dirsobjects executableskeysset_executable)selfrr rkeyr8/opt/alt/python35/lib64/python3.5/distutils/ccompiler.py__init__Us          zCCompiler.__init__cKsTxM|D]E}||jkr8td||jjf|j|||qWdS)aDefine the executables (and options for them) that will be run to perform the various stages of compilation. The exact set of executables that may be specified here depends on the compiler class (via the 'executables' class attribute), but most will have: compiler the C/C++ compiler linker_so linker used to create shared objects and libraries linker_exe linker used to create binary executables archiver static library creator On platforms with a command-line (Unix, DOS/Windows), each of these is a string that will be split into executable name and (optional) list of arguments. (Splitting the string is done similarly to how Unix shells operate: words are delimited by spaces, but quotes and backslashes can override this. See 'distutils.util.split_quoted()'.) z$unknown executable '%s' for class %sN)r ValueError __class____name__r)rkwargsrrrrset_executablesys  zCCompiler.set_executablescCs<t|tr(t||t|nt|||dS)N) isinstancestrsetattrr)rrvaluerrrrszCCompiler.set_executablecCs<d}x/|jD]$}|d|kr*|S|d7}qWdS)Nr)r)rnameidefnrrr _find_macros zCCompiler._find_macrocCsx}|D]u}t|toat|dkoat|dtsQ|ddkoat|dtstd|ddqWdS) zEnsures that every element of 'definitions' is a valid macro definition, ie. either (name,value) 2-tuple or a (name,) tuple. Do nothing if all definitions are OK, raise TypeError otherwise. r(Nrzinvalid macro definition '%s': z.must be tuple (string,), (string, string), or z(string, None))r(r-)r$tuplelenr% TypeError)rZ definitionsr+rrr_check_macro_definitionss # z"CCompiler._check_macro_definitionscCs?|j|}|dk r%|j|=|jj||fdS)a_Define a preprocessor macro for all compilations driven by this compiler object. The optional parameter 'value' should be a string; if it is not supplied, then the macro will be defined without an explicit value and the exact outcome depends on the compiler used (XXX true? does ANSI say anything about this?) N)r,rappend)rr)r'r*rrr define_macros   zCCompiler.define_macrocCsB|j|}|dk r%|j|=|f}|jj|dS)aUndefine a preprocessor macro for all compilations driven by this compiler object. If the same macro is defined by 'define_macro()' and undefined by 'undefine_macro()' the last call takes precedence (including multiple redefinitions or undefinitions). If the macro is redefined/undefined on a per-compilation basis (ie. in the call to 'compile()'), then that takes precedence. N)r,rr2)rr)r*Zundefnrrrundefine_macros    zCCompiler.undefine_macrocCs|jj|dS)zAdd 'dir' to the list of directories that will be searched for header files. The compiler is instructed to search directories in the order in which they are supplied by successive calls to 'add_include_dir()'. N)rr2)rdirrrradd_include_dirszCCompiler.add_include_dircCs|dd|_dS)aySet the list of directories that will be searched to 'dirs' (a list of strings). Overrides any preceding calls to 'add_include_dir()'; subsequence calls to 'add_include_dir()' add to the list passed to 'set_include_dirs()'. This does not affect any list of standard include directories that the compiler may search by default. N)r)rdirsrrrset_include_dirsszCCompiler.set_include_dirscCs|jj|dS)aAdd 'libname' to the list of libraries that will be included in all links driven by this compiler object. Note that 'libname' should *not* be the name of a file containing a library, but the name of the library itself: the actual filename will be inferred by the linker, the compiler, or the compiler class (depending on the platform). The linker will be instructed to link against libraries in the order they were supplied to 'add_library()' and/or 'set_libraries()'. It is perfectly valid to duplicate library names; the linker will be instructed to link against libraries as many times as they are mentioned. N)rr2)rlibnamerrr add_libraryszCCompiler.add_librarycCs|dd|_dS)zSet the list of libraries to be included in all links driven by this compiler object to 'libnames' (a list of strings). This does not affect any standard system libraries that the linker may include by default. N)r)rZlibnamesrrr set_librariesszCCompiler.set_librariescCs|jj|dS)a'Add 'dir' to the list of directories that will be searched for libraries specified to 'add_library()' and 'set_libraries()'. The linker will be instructed to search for libraries in the order they are supplied to 'add_library_dir()' and/or 'set_library_dirs()'. N)rr2)rr5rrradd_library_dirszCCompiler.add_library_dircCs|dd|_dS)zSet the list of library search directories to 'dirs' (a list of strings). This does not affect any standard library search path that the linker may search by default. N)r)rr7rrrset_library_dirs szCCompiler.set_library_dirscCs|jj|dS)zlAdd 'dir' to the list of directories that will be searched for shared libraries at runtime. N)rr2)rr5rrradd_runtime_library_dirsz!CCompiler.add_runtime_library_dircCs|dd|_dS)zSet the list of directories to search for shared libraries at runtime to 'dirs' (a list of strings). This does not affect any standard search path that the runtime linker may search by default. N)r)rr7rrrset_runtime_library_dirssz"CCompiler.set_runtime_library_dirscCs|jj|dS)zAdd 'object' to the list of object files (or analogues, such as explicitly named library files or the output of "resource compilers") to be included in every link driven by this compiler object. N)rr2)robjectrrradd_link_object szCCompiler.add_link_objectcCs|dd|_dS)zSet the list of object files (or analogues) to be included in every link to 'objects'. This does not affect any standard object files that the linker may include by default (such as system libraries). N)r)rrrrrset_link_objects(szCCompiler.set_link_objectscCs|dkr|j}nt|ts3td|dkrK|j}n1t|trp||jpig}n td|dkr|j}n=t|ttfrt||jpg}n td|dkrg}|j|ddd|}t |t |kst t ||}i} xmt t |D]Y} || } || } t jj| d} |jt jj| | | f| | 'runtime_library_dirs' (if supplied) must be a list of strings)rr$rDr.r0rr)rrrrrrr _fix_lib_argss&          zCCompiler._fix_lib_argscCsE|jr dS|jr.t||dd}nt||}|SdS)zjReturn true if we need to relink the files listed in 'objects' to recreate 'output_file'. TZmissingnewerN)rr r)rr output_filer\rrr _need_links   zCCompiler._need_linkc Cst|ts|g}d}t|j}x{|D]s}tjj|\}}|jj|}y.|jj |}||kr|}|}Wq4t k rYq4Xq4W|S)z|Detect the language of a given file, or list of files. Uses language_map, and language_order to do the job. N) r$rDr/language_orderrIrJrK language_mapgetindexr) rrMZlangrbsourcebaserSZextlangZextindexrrrdetect_languages      zCCompiler.detect_languagecCsdS)aPreprocess a single C/C++ source file, named in 'source'. Output will be written to file named 'output_file', or stdout if 'output_file' not supplied. 'macros' is a list of macro definitions as for 'compile()', which will augment the macros set with 'define_macro()' and 'undefine_macro()'. 'include_dirs' is a list of directory names that will be added to the default list. Raises PreprocessError on failure. Nr)rrcr]rr extra_preargsextra_postargsrrr preprocesss zCCompiler.preprocessc Cs|j||||||\}} }} } |j| ||} xV| D]N} y| | \}}Wntk rzwIYnX|j| ||| || qIW| S)aK Compile one or more source files. 'sources' must be a list of filenames, most likely C/C++ files, but in reality anything that can be handled by a particular compiler and compiler class (eg. MSVCCompiler can handle resource files in 'sources'). Return a list of object filenames, one per source filename in 'sources'. Depending on the implementation, not all source files will necessarily be compiled, but all corresponding object filenames will be returned. If 'output_dir' is given, object files will be put under it, while retaining their original path component. That is, "foo/bar.c" normally compiles to "foo/bar.o" (for a Unix implementation); if 'output_dir' is "build", then it would compile to "build/foo/bar.o". 'macros', if given, must be a list of macro definitions. A macro definition is either a (name, value) 2-tuple or a (name,) 1-tuple. The former defines a macro; if the value is None, the macro is defined without an explicit value. The 1-tuple case undefines a macro. Later definitions/redefinitions/ undefinitions take precedence. 'include_dirs', if given, must be a list of strings, the directories to add to the default include file search path for this compilation only. 'debug' is a boolean; if true, the compiler will be instructed to output debug symbols in (or alongside) the object file(s). 'extra_preargs' and 'extra_postargs' are implementation- dependent. On platforms that have the notion of a command-line (e.g. Unix, DOS/Windows), they are most likely lists of strings: extra command-line arguments to prepand/append to the compiler command line. On other platforms, consult the implementation class documentation. In any event, they are intended as an escape hatch for those occasions when the abstract compiler framework doesn't cut the mustard. 'depends', if given, is a list of filenames that all targets depend on. If a source file is older than any file in depends, then the source file will be recompiled. This supports dependency tracking, but only at a coarse granularity. Raises CompileError on failure. )rTrWKeyError_compile)rrMrrrrUrfrgrNrrOrPrVrRrQrSrrrcompiles6   zCCompiler.compilecCsdS)zCompile 'src' to product 'obj'.Nr)rrRrQrSrVrgrOrrrrjCszCCompiler._compilecCsdS)a&Link a bunch of stuff together to create a static library file. The "bunch of stuff" consists of the list of object files supplied as 'objects', the extra object files supplied to 'add_link_object()' and/or 'set_link_objects()', the libraries supplied to 'add_library()' and/or 'set_libraries()', and the libraries supplied as 'libraries' (if any). 'output_libname' should be a library name, not a filename; the filename will be inferred from the library name. 'output_dir' is the directory where the library file will be put. 'debug' is a boolean; if true, debugging information will be included in the library (note that on most platforms, it is the compile step where this matters: the 'debug' flag is included here just for consistency). 'target_lang' is the target language for which the given objects are being compiled. This allows specific linkage time treatment of certain languages. Raises LibError on failure. Nr)rroutput_libnamerrU target_langrrrcreate_static_libIszCCompiler.create_static_libZ shared_objectZshared_library executablecCs tdS)auLink a bunch of stuff together to create an executable or shared library file. The "bunch of stuff" consists of the list of object files supplied as 'objects'. 'output_filename' should be a filename. If 'output_dir' is supplied, 'output_filename' is relative to it (i.e. 'output_filename' can provide directory components if needed). 'libraries' is a list of libraries to link against. These are library names, not filenames, since they're translated into filenames in a platform-specific way (eg. "foo" becomes "libfoo.a" on Unix and "foo.lib" on DOS/Windows). However, they can include a directory component, which means the linker will look in that specific directory rather than searching all the normal locations. 'library_dirs', if supplied, should be a list of directories to search for libraries that were specified as bare library names (ie. no directory component). These are on top of the system default and those supplied to 'add_library_dir()' and/or 'set_library_dirs()'. 'runtime_library_dirs' is a list of directories that will be embedded into the shared library and used to search for other shared libraries that *it* depends on at run-time. (This may only be relevant on Unix.) 'export_symbols' is a list of symbols that the shared library will export. (This appears to be relevant only on Windows.) 'debug' is as for 'compile()' and 'create_static_lib()', with the slight distinction that it actually matters on most platforms (as opposed to 'create_static_lib()', which includes a 'debug' flag mostly for form's sake). 'extra_preargs' and 'extra_postargs' are as for 'compile()' (except of course that they supply command-line arguments for the particular linker being used). 'target_lang' is the target language for which the given objects are being compiled. This allows specific linkage time treatment of certain languages. Raises LinkError on failure. N)NotImplementedError)rZ target_descroutput_filenamerrrrexport_symbolsrUrfrg build_temprmrrrlinkis9zCCompiler.linkc CsG|jtj||j|dd||||||| | | | dS)Nlib_typeshared)rtr SHARED_LIBRARYlibrary_filename) rrrlrrrrrrrUrfrgrsrmrrrlink_shared_libs  zCCompiler.link_shared_libc Cs8|jtj||||||||| | | | dS)N)rtr SHARED_OBJECT) rrrqrrrrrrrUrfrgrsrmrrrlink_shared_objects  zCCompiler.link_shared_objectc CsA|jtj||j|||||d||| d| dS)N)rtr EXECUTABLEexecutable_filename) rrZoutput_prognamerrrrrUrfrgrmrrrlink_executables  zCCompiler.link_executablecCs tdS)zkReturn the compiler option to add 'dir' to the list of directories searched for libraries. N)rp)rr5rrrlibrary_dir_optionszCCompiler.library_dir_optioncCs tdS)zsReturn the compiler option to add 'dir' to the list of directories searched for runtime libraries. N)rp)rr5rrrruntime_library_dir_optionsz$CCompiler.runtime_library_dir_optioncCs tdS)zReturn the compiler option to add 'lib' to the list of libraries linked into the shared library or executable. N)rp)rlibrrrlibrary_optionszCCompiler.library_optionc CsAddl}|dkrg}|dkr0g}|dkrBg}|dkrTg}|jd|dd\}}tj|d} z7x|D]} | jd| qW| jd|Wd| jXy|j|gd |} Wntk rd SYnXy |j| d d |d |Wnt t fk r<d SYnXdS)zReturn a boolean indicating whether funcname is supported on the current platform. The optional arguments can be used to augment the compilation environment. rNz.ctextTwz#include "%s" z+main (int argc, char **argv) { %s(); } rFza.outrr) tempfileZmkstemprIfdopenwritecloserkZ CompileErrorr~Z LinkErrorr0) rfuncnameZincludesrrrrfdZfnamefZinclrrrr has_functions8           zCCompiler.has_functioncCs tdS)aHSearch the specified list of directories for a static or shared library file 'lib' and return the full path to that file. If 'debug' true, look for a debugging version (if that makes sense on the current platform). Return None if 'lib' wasn't found in any of the specified directories. N)rp)rr7rrUrrrfind_library_file#szCCompiler.find_library_filecCs|dkrd}g}x|D]}tjj|\}}tjj|d}|tjj|d}||jkrtd||f|rtjj|}|jtjj |||j qW|S)Nrr(z"unknown file type '%s' (from '%s')) rIrJrK splitdriveisabssrc_extensionsZUnknownFileErrorbasenamer2join obj_extension)rZsource_filenamesrCrZ obj_namesZsrc_namerdrSrrrrENs  zCCompiler.object_filenamescCsD|dk st|r*tjj|}tjj|||jS)N)rFrIrJrrshared_lib_extension)rrrCrrrrshared_object_filename_sz CCompiler.shared_object_filenamecCsJ|dk st|r*tjj|}tjj|||jpEdS)Nr)rFrIrJrr exe_extension)rrrCrrrrr}eszCCompiler.executable_filenamestaticc Cs|dk st|d kr*tdt||d}t||d}tjj|\}}|||f} |rd}tjj||| S) Nrrvdylib xcode_stubz?'lib_type' must be "static", "shared", "dylib", or "xcode_stub"Z _lib_formatZ_lib_extensionr)rrvrr)rFrgetattrrIrJsplitr) rr9rurCrZfmtrSr5rdfilenamerrrrxks  zCCompiler.library_filenamer(cCstj|dS)N)r rU)rmsglevelrrrannounce~szCCompiler.announcecCs$ddlm}|r t|dS)Nr)DEBUG)Zdistutils.debugrprint)rrrrrr debug_printszCCompiler.debug_printcCstjjd|dS)Nz warning: %s )sysstderrr)rrrrrwarnszCCompiler.warncCst||||jdS)N)r r )rfuncargsrrrrrr szCCompiler.executecCst|d|jdS)Nr )rr )rcmdrrrrszCCompiler.spawncCst||d|jS)Nr )rr )rrQZdstrrrrszCCompiler.move_fileicCst||d|jdS)Nr )rr )rr)moderrrrszCCompiler.mkpath)Br! __module__ __qualname____doc__Z compiler_typerrZstatic_lib_extensionrZstatic_lib_formatZshared_lib_formatrr`r_rr#rr,r1r3r4r6r8r:r;r<r=r>r?rArBrTrWrXrYrZr[r^rerhrkrjrnrzrwr|rtryr{r~rrrrrrErr}rxrrrr rrrrrrrr s   $              +   "   B 4     *+    r zcygwin.*unixposixntZmsvccCsy|dkrtj}|dkr*tj}xHtD]@\}}tj||dk smtj||dk r1|Sq1WdS)akDetermine the default compiler to use for the given platform. osname should be one of the standard Python OS names (i.e. the ones returned by os.name) and platform the common value returned by sys.platform for the platform in question. The default values are os.name and sys.platform in case the parameters are not given. Nr)rIr)rplatform_default_compilersrematch)osnamerpatterncompilerrrrget_default_compilers    rZ unixccompilerZ UnixCCompilerzstandard UNIX-style compilerZ _msvccompilerZ MSVCCompilerzMicrosoft Visual C++cygwinZcygwinccompilerZCygwinCCompilerz'Cygwin port of GNU C Compiler for Win32Zmingw32ZMingw32CCompilerz(Mingw32 port of GNU C Compiler for Win32ZbcppZ bcppcompilerZ BCPPCompilerzBorland C++ CompilercCsvddlm}g}x6tjD](}|jd|dt|dfq#W|j||}|jddS)zyPrint list of available compilers (used by the "--help-compiler" options to "build", "build_ext", "build_clib"). r) FancyGetoptz compiler=Nr-zList of available compilers:)Zdistutils.fancy_getoptrcompiler_classrr2sortZ print_help)rZ compilersrZpretty_printerrrrshow_compilerss  rc Cs|dkrtj}y/|dkr0t|}t|\}}}WnBtk rd|}|dk rx|d|}t|YnXy5d|}t|tj|} t | |} WnIt k rt d|Yn(tk r t d||fYnX| d||S)a[Generate an instance of some CCompiler subclass for the supplied platform/compiler combination. 'plat' defaults to 'os.name' (eg. 'posix', 'nt'), and 'compiler' defaults to the default compiler for that platform. Currently only 'posix' and 'nt' are supported, and the default compilers are "traditional Unix interface" (UnixCCompiler class) and Visual C++ (MSVCCompiler class). Note that it's perfectly possible to ask for a Unix compiler object under Windows, and a Microsoft compiler object under Unix -- if you supply a value for 'compiler', 'plat' is ignored. Nz5don't know how to compile C/C++ code on platform '%s'z with '%s' compilerz distutils.z4can't compile C/C++ code: unable to load module '%s'zBcan't compile C/C++ code: unable to find class '%s' in module '%s') rIr)rrriZDistutilsPlatformError __import__rmodulesvars ImportErrorZDistutilsModuleError) Zplatrrr rZ module_nameZ class_nameZlong_descriptionrmoduleklassrrr new_compilers2            rcCsg}x|D]}t|toAdt|ko?dknsTtd|t|dkr~|jd|dq t|dkr |ddkr|jd|dq |jd|q Wx|D]}|jd |qW|S) aGenerate C pre-processor options (-D, -U, -I) as used by at least two types of compilers: the typical Unix compiler and Visual C++. 'macros' is the usual thing, a list of 1- or 2-tuples, where (name,) means undefine (-U) macro 'name', and (name,value) means define (-D) macro 'name' to 'value'. 'include_dirs' is just a list of directory names to be added to the header file search path (-I). Returns a list of command-line options suitable for either Unix compilers or Visual C++. r(r-zPbad macro definition '%s': each element of 'macros' list must be a 1- or 2-tuplez-U%srNz-D%sz-D%s=%sz-I%s)r$r.r/r0r2)rrrOZmacror5rrrrG s 1  rGc Csg}x$|D]}|j|j|q WxF|D]>}|j|}t|tre||}q4|j|q4Wx|D]y}tjj|\}} |r|j|g| } | r|j| q|j d|q}|j|j |q}W|S)acGenerate linker options for searching library directories and linking with specific libraries. 'libraries' and 'library_dirs' are, respectively, lists of library names (not filenames!) and search directories. Returns a list of command-line options suitable for use with some compiler (depending on the two format strings passed in). z6no library file corresponding to '%s' found (skipping)) r2rrr$rDrIrJrrrr) rrrrZlib_optsr5ZoptrZlib_dirZlib_nameZlib_filerrrgen_lib_options7s$      r)rrrIrZdistutils.errorsZdistutils.spawnrZdistutils.file_utilrZdistutils.dir_utilrZdistutils.dep_utilrrZdistutils.utilrr Z distutilsr r rrrrrrGrrrrrs<$          - -PK!BMM-__pycache__/bcppcompiler.cpython-35.opt-1.pycnu[ YfW:@sdZddlZddlmZmZmZmZmZmZddl m Z m Z m Z ddl mZddlmZddlmZGdd d e ZdS) zdistutils.bcppcompiler Contains BorlandCCompiler, an implementation of the abstract CCompiler class for the Borland C++ compiler. N)DistutilsExecErrorDistutilsPlatformError CompileErrorLibError LinkErrorUnknownFileError) CCompilergen_preprocess_optionsgen_lib_options) write_file)newer)logc @seZdZdZdZiZdgZdddgZeeZdZ dZ d Z d Z Z d Zd d d d dZdddd dddddZdd dddZdddddd dddddd Zd ddZd dddZdddddddZdS) BCPPCompilerzConcrete class that implements an interface to the Borland C/C++ compiler, as defined by the CCompiler abstract class. Zbcppz.cz.ccz.cppz.cxxz.objz.libz.dllz%s%sz.exercCstj||||d|_d|_d|_d|_ddddg|_ddddg|_d d dd g|_d d dd g|_ g|_ d dd g|_ d dd d g|_ dS) Nz bcc32.exez ilink32.exeztlib.exez/tWMz/O2z/qz/g0z/Odz/Tpdz/Gnz/xz/r) r__init__cclinkerlibZpreprocess_optionscompile_optionscompile_options_debugldflags_sharedldflags_shared_debugZldflags_static ldflags_exeldflags_exe_debug)selfverboseZdry_runforcer;/opt/alt/python35/lib64/python3.5/distutils/bcppcompiler.pyr5s     zBCPPCompiler.__init__Nc Cs|j||||||\}} }} } |p6g} | jd|r_| j|jn| j|jx| D]} y| | \}}Wntk rwvYnXtjj|}tjj| } |j tjj | |dkrqv|dkrTy|j dd| |gWqvt k rP}zt |WYdd}~XqvXqv||jkrld}n||jkrd}nd}d| }y4|j |jg| | ||g||gWqvt k r}zt |WYdd}~XqvXqvW| S) Nz-cz.resz.rcZbrcc32z-foz-Pz-o)Z_setup_compileappendextendrrKeyErrorospathnormpathmkpathdirnamespawnrr _c_extensions_cpp_extensionsr)rZsources output_dirmacros include_dirsdebug extra_preargsextra_postargsZdependsobjectspp_optsZbuildZ compile_optsobjsrcextmsgZ input_optZ output_optrrrcompileQsF         .#zBCPPCompiler.compilec Cs|j||\}}|j|d|}|j||r|dg|}|rUy|j|jg|Wqtk r}zt|WYdd}~XqXntjd|dS)Nr*z/uzskipping %s (up-to-date)) _fix_object_argslibrary_filename _need_linkr'rrrr r-) rr0Zoutput_libnamer*r- target_langoutput_filenameZlib_argsr5rrrcreate_static_libs"zBCPPCompiler.create_static_libc Cs|j||\}}|j|||\}}}|rRtjdt||dk rstjj||}|j||r|t j krd}| r|j dd}q|j dd}n5d}| r|j dd}n|jdd}|dkrd}ntjj|\}}tjj|\}}tjj|d}tjj|d|}dg}x+|pgD]}|jd||fqW|jt||fd |ttjj|}|g}g}x[|D]S}tjjtjj|\}}|d kr:|j|q|j|qWx+|D]#}|jd tjj|qRW|jd |j||jd |g|jdxL|D]D}|j||| }|dkr|j|q|j|qW|jd|jd|jd |g|jd |j|| r_| |dd<| rr|j| |jtjj|y|j|jg|Wqtk r}zt|WYdd}~XqXntjd|dS)Nz7I don't know what to do with 'runtime_library_dirs': %sZc0w32Zc0d32rrz%s.defZEXPORTSz %s=_%sz writing %sz.resz/L%sz/L.,z,,Zimport32Zcw32mtzskipping %s (up-to-date)) r7Z _fix_lib_argsr warnstrr"r#joinr9rZ EXECUTABLErrrrsplitsplitextr&rZexecuter mapr$normcaser find_library_filer%r'rrrr-) rZ target_descr0r;r*Z librariesZ library_dirsZruntime_library_dirsZexport_symbolsr-r.r/Z build_tempr:Z startup_objZld_argsZdef_fileheadtailmodnamer4Ztemp_dircontentsZsymZobjects2Z resourcesfilebaselrlibfiler5rrrlinks|         $  !          "zBCPPCompiler.linkc Cs|r-|d}|d|d||f}n|d|f}xW|D]K}xB|D]:}tjj||j|}tjj|rQ|SqQWqDWdSdS)NZ_dZ_bcpp)r"r#r@r8exists) rdirsrr-ZdlibZ try_namesdirnamerMrrrrE4s     zBCPPCompiler.find_library_filercCs|dkrd}g}x|D]}tjjtjj|\}}||jddgkrxtd||f|rtjj|}|dkr|jtjj|||q|dkr|jtjj||dq|jtjj|||j qW|S)Nrz.rcz.resz"unknown file type '%s' (from '%s')) r"r#rBrDsrc_extensionsrbasenamerr@ obj_extension)rZsource_filenamesZ strip_dirr*Z obj_namesZsrc_namerKr4rrrobject_filenamesNs"  $ # #zBCPPCompiler.object_filenamesc Cs#|jd||\}}}t||}dg|} |dk rW| jd||rm|| dd<|r| j|| j||js|dkst||r|r|jtjj |y|j | Wn;t k r} zt | t | WYdd} ~ XnXdS)Nz cpp32.exez-or)Z_fix_compile_argsr rr rr r%r"r#r&r'rprintr) rsourceZ output_filer+r,r.r/_r1Zpp_argsr5rrr preprocessis$     $ zBCPPCompiler.preprocess)__name__ __module__ __qualname____doc__Z compiler_typeZ executablesr(r)rSrUZstatic_lib_extensionZshared_lib_extensionZstatic_lib_formatZshared_lib_formatZ exe_extensionrr6r<rNrErVrZrrrrrsJ     B|r)r^r"Zdistutils.errorsrrrrrrZdistutils.ccompilerrr r Zdistutils.file_utilr Zdistutils.dep_utilr Z distutilsr rrrrrs .PK!t$A<<*__pycache__/extension.cpython-35.opt-2.pycnu[ ])@sGddlZddlZddlZGdddZddZdS)Nc@sReZdZddddddddddddddddZddZdS) ExtensionNcKs|t|tstdt|to@tdd|DsOtd||_||_|pjg|_|pyg|_|pg|_ |pg|_ |pg|_ |pg|_ | pg|_ | pg|_| pg|_| pg|_| pg|_|pg|_||_||_t|dkrxdd|D}djt|}d |}tj|dS) Nz'name' must be a stringcss|]}t|tVqdS)N) isinstancestr).0vr./opt/alt/python35/lib64/python3.5/extension.py ksz%Extension.__init__..z#'sources' must be a list of stringsrcSsg|]}t|qSr)repr)roptionrrr s z&Extension.__init__..z, zUnknown Extension options: %s)rrAssertionErrorlistallnamesources include_dirs define_macros undef_macros library_dirs librariesruntime_library_dirs extra_objectsextra_compile_argsextra_link_argsexport_symbols swig_optsdependslanguageoptionallenjoinsortedwarningswarn)selfrrrrrrrrrrrrrrrrkwoptionsmsgrrr__init__Ws4       zExtension.__init__cCs)d|jj|jj|jt|fS)Nz<%s.%s(%r) at %#x>) __class__ __module__ __qualname__rid)r%rrr__repr__s   zExtension.__repr__)__name__r+r,r)r.rrrrrs D!rcCsddlm}m}m}ddlm}ddlm}||}||ddddddd dd d}zg}x|j} | dkrP|j | rq~| d| d'kod knr|j d | q~|| |} || } | d} t | g} d} x`| ddD]N}| dk rT| j |d} q,t jj|d}|dd }|d d}|d(kr| jj |q,|dkr| jj |q,|dkr9|jd}|d)kr| jj |dfqz| jj |d|||d dfq,|dkrX| jj |q,|dkrw| jj |q,|dkr| jj |q,|dkr| jj |q,|dkr| jj |q,|dkr| j} q,|dkr| j} q,|dkr| j} q,|d krJ| jj ||sz| j} q,|d*kri| jj |q,|j d&|q,W|j | q~WWd|jX|S)+Nr)parse_makefileexpand_makefile_vars _variable_rx)TextFile) split_quotedZstrip_commentsZ skip_blanksZ join_linesZ lstrip_wsZ rstrip_ws*z'%s' lines not handled yet.c.cc.cpp.cxx.c++.m.mmz-Iz-D=z-Uz-Cz-lz-Lz-Rz-rpathz-Xlinkerz -Xcompilerz-u.a.so.sl.o.dylibzunrecognized argument '%s')r8r9r:r;r<r=r>rE)r@rArBrCrD)Zdistutils.sysconfigr0r1r2Zdistutils.text_filer3Zdistutils.utilr4readlinematchr$rappendospathsplitextrrfindrrrrrrrrclose)filenamer0r1r2r3r4varsfile extensionslineZwordsmoduleextZappend_next_wordZwordsuffixZswitchvalueZequalsrrrread_setup_files    $                       rW)rIsysr#rrWrrrrs   zPK!*|g(__pycache__/unixccompiler.cpython-35.pycnu[ Yf:@sdZddlZddlZddlZddlmZddlmZddlm Z m Z m Z ddl m Z mZmZmZddlmZejdkrddlZGd d d e ZdS) a9distutils.unixccompiler Contains the UnixCCompiler class, a subclass of CCompiler that handles the "typical" Unix-style command-line C compiler: * macros defined with -Dname[=value] * macros undefined with -Uname * include search directories specified with -Idir * libraries specified with -lllib * library search directories specified with -Ldir * compile handled by 'cc' (or similar) executable with -c option: compiles .c to .o * link static library handled by 'ar' command (possibly with 'ranlib') * link shared library handled by 'cc -shared' N) sysconfig)newer) CCompilergen_preprocess_optionsgen_lib_options)DistutilsExecError CompileErrorLibError LinkError)logdarwincseZdZdZddddgddgddgddd gd dgd d d gddiZejdddkrdgedr?r%r'r*rZ EXECUTABLErrrbasenamer4r5r6r7r+rr r r@)rZ target_descr?rBr;r r!r"Zexport_symbolsr@r-r.Z build_temprAr/Zlib_optsZld_argsZlinkerir2r#r#r$linksH       "zUnixCCompiler.linkcCsd|S)Nz-Lr#)rdirr#r#r$library_dir_optionsz UnixCCompiler.library_dir_optioncCsd|kpd|kS)Ngcczg++r#)rZ compiler_namer#r#r$_is_gccszUnixCCompiler._is_gcccCs tjjtjd}tjdddkr<d|Stjdddkr]d|Stjddd kr|j|rd d|gSd d|gStjddd kstjddd krd|gS|j|rtjddkr d|Sd|Snd|SdS)NCCrr z-LZfreebsdz -Wl,-rpath=zhp-uxz-Wl,+sz+sZirix646Zosf1V5z-rpathGNULDyesz-Wl,--enable-new-dtags,-Rz-Wl,-Rz-R)r(r)rLrrr4r5rR)rrOrr#r#r$runtime_library_dir_options 2  z(UnixCCompiler.runtime_library_dir_optioncCsd|S)Nz-lr#)rlibr#r#r$library_option szUnixCCompiler.library_optioncCs.|j|dd}|j|dd}|j|dd}|j|dd}tjdkrtjd}tjd|} | dkrd } n| jd } x|D]w} tj j | |} tj j | |} tj j | |}tj j | |}tjdkr| j d sF| j d r| j d  rtj j | | d d|} tj j | | d d|} tj j | | d d|}tj j | | d d|}tj j | r| Stj j |r|Stj j | r| Stj j |r|SqWdS)NZlib_typeshareddylib xcode_stubstaticr CFLAGSz-isysroot\s+(\S+)/rEz/System/z/usr/z /usr/local/) r=r4r5rrresearchgroupr(r)rK startswithexists)rdirsrYr@Zshared_fZdylib_fZ xcode_stub_fZstatic_fZcflagsmZsysrootrOr[r\r^r]r#r#r$find_library_file s>   """"zUnixCCompiler.find_library_file)__name__ __module__ __qualname__Z compiler_typeZ executablesr4r5Zsrc_extensionsZ obj_extensionZstatic_lib_extensionZshared_lib_extensionZdylib_lib_extensionZxcode_stub_lib_extensionZstatic_lib_formatZshared_lib_formatZdylib_lib_formatZxcode_stub_lib_formatZ exe_extensionrr3r:rCrNrPrRrXrZrhr#r#)rr$r -sF            6   , r )__doc__r(r4raZ distutilsrZdistutils.dep_utilrZdistutils.ccompilerrrrZdistutils.errorsrrr r r r5r6r r#r#r#r$s$" PK!\ __pycache__/log.cpython-35.pycnu[ Yft@sdZdZdZdZdZdZddlZGdd d ZeZej Z ej Z ej Z ej Z ej Z ejZd d Zd d ZdS)z,A simple log mechanism styled after PEP 282.Nc@sseZdZeddZddZddZddZd d Zd d Z d dZ ddZ dS)LogcCs ||_dS)N) threshold)selfrr 2/opt/alt/python35/lib64/python3.5/distutils/log.py__init__sz Log.__init__cCs|tttttfkr1tdt|||jkr|rP||}|tttfkrqtj }n tj }|j dkr|j }|j |dj|}|jd||jdS)Nz%s wrong log levelstrictbackslashreplacez%s )DEBUGINFOWARNERRORFATAL ValueErrorstrrsysstderrstdouterrorsencodingencodedecodewriteflush)r levelmsgargsstreamrr r r _logs    zLog._logcGs|j|||dS)N)r#)r rr r!r r r log%szLog.logcGs|jt||dS)N)r#r)r r r!r r r debug(sz Log.debugcGs|jt||dS)N)r#r)r r r!r r r info+szLog.infocGs|jt||dS)N)r#r)r r r!r r r warn.szLog.warncGs|jt||dS)N)r#r)r r r!r r r error1sz Log.errorcGs|jt||dS)N)r#r)r r r!r r r fatal4sz Log.fatalN) __name__ __module__ __qualname__rr r#r$r%r&r'r(r)r r r r rs       rcCstj}|t_|S)N) _global_logr)roldr r r set_threshold?s  r/cCsL|dkrttn/|dkr2ttn|dkrHttdS)Nrrr)r/rrr)vr r r set_verbosityEs      r1)__doc__rrrrrrrr-r$r%r&r'r(r)r/r1r r r r s  )        PK!gS@@%__pycache__/util.cpython-35.opt-1.pycnu[ YfP @sdZddlZddlZddlZddlZddlZddlmZddl m Z ddl m Z ddl mZddlmZdd Zd d Zd d ZdaddZddZdddZdaaaddZddZdddddZddZdddddddddZd d!Zdddd"d#Z ddddd$d%Z!Gd&d'd'Z"dS)(zudistutils.util Miscellaneous utility functions -- anything that doesn't fit into one of the other *util.py modules. N)DistutilsPlatformError)newer)spawn)log)DistutilsByteCompileErrorcCstjdkrd}tjj|}|d*kr:tjStjjd|}tj|t||j}|dkrdS|dkrdStjSd tjkrtjd Stjd kst td  rtjStj \}}}}}|jj d d }|j dd}|j d d}|dddkrTd||fS|dddkr|ddkrd}dt |dd|ddf}ddddi} |d | tj 7}n|dd!d"krd||fS|ddd#krd$|||fS|dd%d&krrd&}tjd'tj} | j|} | r| j}nX|dd%d(krddl} ddl} | j| jj|||\}}}d)|||fS)+aReturn a string that identifies the current platform. This is used mainly to distinguish platform-specific build directories and platform-specific built distributions. Typically includes the OS name and version and the architecture (as supplied by 'os.uname()'), although the exact information included depends on the OS; eg. for IRIX the architecture isn't particularly important (IRIX only runs on SGI hardware), but for Linux the kernel version isn't particularly important. Examples of returned values: linux-i586 linux-alpha (?) solaris-2.6-sun4u irix-5.3 irix64-6.2 Windows will return one of: win-amd64 (64bit Windows on AMD64 (aka x86_64, Intel64, EM64T, etc) win-ia64 (64bit Windows on Itanium) win32 (all others - specifically, sys.platform is returned) For other non-POSIX platforms, currently just returns 'sys.platform'. ntz bit ()amd64z win-amd64itaniumzwin-ia64_PYTHON_HOST_PLATFORMposixuname/ _-Nlinuxz%s-%ssunosr5solarisz%d.%si32bitl64bitz.%sirixaixz%s-%s.%scygwinz[\d.]+darwinz%s-%s-%s)osnamesysversionfindplatformlenlowerenvironhasattrrreplaceintmaxsizerecompileASCIImatchgroup _osx_supportZdistutils.sysconfigget_platform_osx sysconfigget_config_vars)prefixijlookosnamehostreleaser'machinebitnessrel_remr6 distutilsrF3/opt/alt/python35/lib64/python3.5/distutils/util.py get_platformsX #   ( rHcCstjdkr|S|s|S|ddkr=td||ddkr]td||jd}xd|kr|jdqoW|stjStjj|S)aReturn 'pathname' as a name that will work on the native filesystem, i.e. split it on '/' and put it back together again using the current directory separator. Needed because filenames in the setup script are always supplied in Unix style, and have to be converted to the local convention before we can actually use them in the filesystem. Raises ValueError on non-Unix-ish systems if 'pathname' either starts or ends with a slash. rrzpath '%s' cannot be absoluterzpath '%s' cannot end with '/'.r#)r$sep ValueErrorsplitremovecurdirpathjoin)pathnamepathsrFrFrG convert_pathos rScCstjdkrTtjj|s4tjj||Stjj||ddSnmtjdkrtjj|\}}|ddkr|dd}tjj||StdtjdS)a Return 'pathname' with 'new_root' prepended. If 'pathname' is relative, this is equivalent to "os.path.join(new_root,pathname)". Otherwise, it requires making 'pathname' relative and then joining the two, which is tricky on DOS/Windows and Mac OS. r rNrr\z!nothing known about platform '%s')r$r%rOisabsrP splitdriver)Znew_rootrQZdriverOrFrFrG change_roots rWcCs}tr dStjdkrTdtjkrTddl}|jtjdtjd._substz\$([a-zA-Z_][a-zA-Z_0-9]*)zinvalid variable '$%s'N)r]r1subKeyErrorrK)sr_r`varrFrFrG subst_varss rezerror: cCs|t|S)N)r^)excr:rFrFrGgrok_environment_errorsrgcCs8tjdtjatjdatjdadS)Nz [^\\\'\"%s ]*z'(?:[^'\\]|\\.)*'z"(?:[^"\\]|\\.)*")r1r2string whitespace _wordchars_re _squote_re _dquote_rerFrFrFrG _init_regexsrmcCstdkrt|j}g}d}x|rtj||}|j}|t|kr||j|d|P||tjkr|j|d|||dj }d}n||dkr|d|||dd}|d}n||dkr)t j||}n9||dkrNt j||}nt d|||dkrt d|||j\}}|d|||d|d||d}|jd }|t|kr.|j|Pq.W|S) aSplit a string up according to Unix shell-like rules for quotes and backslashes. In short: words are delimited by spaces, as long as those spaces are not escaped by a backslash, or inside a quoted string. Single and double quotes are equivalent, and the quote characters can be backslash-escaped. The backslash is stripped from any two-character escape sequence, leaving only the escaped character. The quote characters are stripped from any quoted string. Returns a list of words. NrrTr'"z!this can't happen (bad char '%c')z"bad string (mismatched %s quotes?)r)rjrmstripr4endr*appendrhrilstriprkrl RuntimeErrorrKspan)rcZwordsposrDrqZbegrFrFrG split_quoteds@     "  4 rwcCsj|dkrId|j|f}|dddkrI|ddd}tj||sf||dS) aPerform some action that affects the outside world (eg. by writing to the filesystem). Such actions are special because they are disabled by the 'dry_run' flag. This method takes care of all that bureaucracy for you; all you have to do is supply the function to call and an argument tuple for it (to embody the "external action" being performed), and an optional message to print. Nz%s%rrz,)rr rx)__name__rinfo)funcargsmsgverbosedry_runrFrFrGexecutes  rcCsC|j}|dkrdS|dkr,dStd|fdS)zConvert a string representation of truth to true (1) or false (0). True values are 'y', 'yes', 't', 'true', 'on', and '1'; false values are 'n', 'no', 'f', 'false', 'off', and '0'. Raises ValueError if 'val' is anything else. yyesttrueon1rnnoffalseoff0rzinvalid truth value %rN)rrrrrr)rrrrrr)r+rK)valrFrFrG strtobool0s    rrcCstjrtd|dkr3to0|dk}|sy&ddlm}|d\} } Wn5tk rddlm} d| d} } YnXtj d| |s7| dk rt j | d} nt | d} | j d | j d jtt|d | j d |||||f| jtj| g} |d kre| jd dn|dkr| jd dt| d|tt j| fd| d|nfddlm}xS|D]K}|dddkrq|dkr)|dkrdn|}tjj|d|}ntjj|}|}|r|dt||krytd||f|t|d}|rt jj||}t jj|}|r|st ||rtj d|||s||||qtj!d||qWdS)a~Byte-compile a collection of Python source files to .pyc files in a __pycache__ subdirectory. 'py_files' is a list of files to compile; any files that don't end in ".py" are silently skipped. 'optimize' must be one of the following: 0 - don't optimize 1 - normal optimization (like "python -O") 2 - extra optimization (like "python -OO") If 'force' is true, all files are recompiled regardless of timestamps. The source filename encoded in each bytecode file defaults to the filenames listed in 'py_files'; you can modify these with 'prefix' and 'basedir'. 'prefix' is a string that will be stripped off of each source filename, and 'base_dir' is a directory name that will be prepended (after 'prefix' is stripped). You can supply either or both (or neither) of 'prefix' and 'base_dir', as you wish. If 'dry_run' is true, doesn't actually do anything that would affect the filesystem. Byte-compilation is either done directly in this interpreter process with the standard py_compile module, or indirectly by writing a temporary script and executing it. Normally, you should let 'byte_compile()' figure out to use direct compilation or not (see the source for details). The 'direct' flag is used by the script generated in indirect mode; unless you know what you're doing, leave it set to None. zbyte-compiling is disabled.Nr)mkstempz.py)mktempz$writing byte-compilation script '%s'wz2from distutils.util import byte_compile files = [ z, z] z byte_compile(files, optimize=%r, force=%r, prefix=%r, base_dir=%r, verbose=%r, dry_run=0, direct=1) rz-Orz-OOrz removing %s)r2rr optimizationz1invalid prefix: filename %r doesn't start with %rzbyte-compiling %s to %sz%skipping byte-compilation of %s to %s)"r&dont_write_bytecoder __debug__Ztempfiler ImportErrorrrrzr$fdopenopenwriterPmapreprclose executableinsertrrrM py_compiler2 importlibutilcache_from_sourcer*rKrObasenamerdebug)Zpy_filesoptimizeZforcer:Zbase_dirr~rZdirectrZ script_fdZ script_namerZscriptcmdr2fileZoptcfiledfileZ cfile_baserFrFrG byte_compile@sn"    #        rcCs"|jd}d}|j|S)zReturn a version of the string escaped for inclusion in an RFC-822 header, by ensuring there are 8 spaces space after each newline.  rz z )rLrP)headerlinesrJrFrFrG rfc822_escapesrcCsw|s dSddlm}m}Gddd|}|dkrN|d}||d|}|j|dd dS) a Invoke 2to3 on a list of Python files. The files should all come from the build area, as the modification is done in-place. To reduce the build time, only files modified since the last invocation of this function should be passed in the files argument.Nr)RefactoringToolget_fixers_from_packagec@s4eZdZddZddZddZdS)z*run_2to3..DistutilsRefactoringToolc_stj||dS)N)rerror)selfr}r|kwrFrFrG log_errorsz4run_2to3..DistutilsRefactoringTool.log_errorcWstj||dS)N)rrz)rr}r|rFrFrG log_messagesz6run_2to3..DistutilsRefactoringTool.log_messagecWstj||dS)N)rr)rr}r|rFrFrG log_debugsz4run_2to3..DistutilsRefactoringTool.log_debugN)ry __module__ __qualname__rrrrFrFrFrGDistutilsRefactoringTools   rz lib2to3.fixesoptionsrT)Zlib2to3.refactorrrZrefactor)files fixer_namesrexplicitrrrrrFrFrGrun_2to3s  rcCssddlm}ddlm}ddlm}|} tj} tj|z| j Wdtj| X| j | j dd<|rx6|j D](} | j } | sq| j| qWg} xw| j D]l} tjj|| }|tjj||tjj|| |dd}|dr| j|qWtdd | Dd |d |d || S) zRecursively copy a directory, only copying new and changed files, running run_2to3 over all newly copied Python modules afterward. If you give a template string, it's parsed like a MANIFEST.in. r)mkpath) copy_file)FileListNupdatercSs+g|]!}|jjdr|qS)z.py)r+endswith).0fnrFrFrG s z$copydir_run_2to3..rrr)Zdistutils.dir_utilrZdistutils.file_utilrZdistutils.filelistrr$getcwdchdirfindallZallfilesr splitlinesrpZprocess_template_linerOrPdirnamerrr)srcdesttemplaterrrrrrZfilelistrNlineZcopiedfilenameZoutnameresrFrFrGcopydir_run_2to3s4    $ rc@s4eZdZdZdZdZdZddZdS) Mixin2to3zMixin class for commands that run 2to3. To configure 2to3, setup scripts may either change the class variables, or inherit from individual commands to override how 2to3 is invoked.NcCst||j|j|jS)N)rrrr)rrrFrFrGr)szMixin2to3.run_2to3)ryrr__doc__rrrrrFrFrFrGrs r)#rr$r1importlib.utilrr&rhZdistutils.errorsrZdistutils.dep_utilrZdistutils.spawnrrErrrHrSrWrYr]rergrjrkrlrmrwrrrrrrrrFrFrFrGs>      ]      =   PK!teCC(__pycache__/version.cpython-35.opt-2.pycnu[ ]90@sOddlZGdddZGdddeZGdddeZdS)Nc@sgeZdZdddZddZddZdd Zd d Zd d ZddZ dS)VersionNcCs|r|j|dS)N)parse)selfvstringr,/opt/alt/python35/lib64/python3.5/version.py__init__&szVersion.__init__cCsd|jjt|fS)Nz %s ('%s')) __class____name__str)rrrr__repr__*szVersion.__repr__cCs)|j|}|tkr|S|dkS)Nr)_cmpNotImplemented)rothercrrr__eq__-s zVersion.__eq__cCs)|j|}|tkr|S|dkS)Nr)r r)rrrrrr__lt__3s zVersion.__lt__cCs)|j|}|tkr|S|dkS)Nr)r r)rrrrrr__le__9s zVersion.__le__cCs)|j|}|tkr|S|dkS)Nr)r r)rrrrrr__gt__?s zVersion.__gt__cCs)|j|}|tkr|S|dkS)Nr)r r)rrrrrr__ge__Es zVersion.__ge__) r __module__ __qualname__rr rrrrrrrrrrs      rc@sPeZdZejdejejBZddZddZ ddZ dS) StrictVersionz)^(\d+) \. (\d+) (\. (\d+))? ([ab](\d+))?$cCs|jj|}|s(td||jddddd\}}}}}|r|ttt|||g|_n"ttt||gd|_|r|dt|f|_n d|_dS) Nzinvalid version number '%s'r)r) version_rematch ValueErrorgrouptuplemapintversion prerelease)rrrmajorminorZpatchr&Zprerelease_numrrrrs*$"zStrictVersion.parsecCs|jddkr;djtt|jdd}ndjtt|j}|jr||jdt|jd}|S)Nrr.r)r%joinr#r r&)rrrrr__str__s ( "zStrictVersion.__str__cCst|trt|}|j|jkrG|j|jkrCdSdS|j r_|j r_dS|jrv|j rvdS|j r|jrdS|jr|jr|j|jkrdS|j|jkrdSdSndS)Nrrr,r,) isinstancer rr%r&)rrrrrr s& zStrictVersion._cmpN) r rrrecompileVERBOSEASCIIrrr+r rrrrr]s %   rc@sdeZdZejdejZdddZddZddZ d d Z d d Z dS) LooseVersionz(\d+ | [a-z]+ | \.)NcCs|r|j|dS)N)r)rrrrrr.szLooseVersion.__init__c Cs{||_dd|jj|D}xCt|D]5\}}yt|||8s z&LooseVersion.parse..)r component_resplit enumerater$r r%)rrZ componentsiobjrrrr3s   zLooseVersion.parsecCs|jS)N)r)rrrrr+CszLooseVersion.__str__cCsdt|S)NzLooseVersion ('%s'))r )rrrrr GszLooseVersion.__repr__cCsat|trt|}|j|jkr1dS|j|jkrGdS|j|jkr]dSdS)Nrrr,)r-r r2r%)rrrrrr Ks zLooseVersion._cmp) r rrr.r/r0r6rrr+r r rrrrr2 s !   r2)r.rrr2rrrrs >PK!SW%__pycache__/core.cpython-35.opt-1.pycnu[ Yf"@sdZddlZddlZddlmZddlTddlmZddlm Z ddl m Z ddl m Z d Zd d Zdadad4Zd5Zd/d0Zdd1d2d3ZdS)6a#distutils.core The only module that needs to be imported to use the Distutils; provides the 'setup' function (which is to be called from the setup script). Also indirectly provides the Distribution and Command classes, although they are really defined in distutils.dist and distutils.cmd. N)DEBUG)*) Distribution)Command) PyPIRCCommand) Extensionzusage: %(script)s [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...] or: %(script)s --help [cmd1 cmd2 ...] or: %(script)s --help-commands or: %(script)s cmd --help cCstjj|}ttS)N)ospathbasenameUSAGEvars) script_nameZscriptr3/opt/alt/python35/lib64/python3.5/distutils/core.py gen_usage sr distclassr script_argsoptionsnameversionauthor author_email maintainermaintainer_emailurllicense descriptionlong_descriptionkeywords platforms classifiers download_urlrequiresprovides obsoletessources include_dirs define_macros undef_macros library_dirs librariesruntime_library_dirs extra_objectsextra_compile_argsextra_link_args swig_optsexport_symbolsdependslanguagec,Ks|jd}|r|d=nt}d|krNtjjtjd|dd|krt d|nt d |d|fWYdd}~XnXt d kr|S|j t rt d |jt d kr*|Sy|j}WnBtk r~}z"t t|jd |WYdd}~XnXt rt d|jt dkr|S|ry|jWntk rt dYntk r7}z;t rtjjd|fnt d|fWYdd}~XnMttfk r}z't r[nt dt|WYdd}~XnX|S)aThe gateway to the Distutils: do everything your setup script needs to do, in a highly flexible and user-driven way. Briefly: create a Distribution instance; find and parse config files; parse the command line; run each Distutils command found there, customized by the options supplied to 'setup()' (as keyword arguments), in config files, and on the command line. The Distribution instance might be an instance of a class supplied via the 'distclass' keyword argument to 'setup'; if no such class is supplied, then the Distribution class (in dist.py) is instantiated. All other arguments to 'setup' (except for 'cmdclass') are used to set attributes of the Distribution instance. The 'cmdclass' argument, if supplied, is a dictionary mapping command names to command classes. Each command encountered on the command line will be turned into a command class, which is in turn instantiated; any class found in 'cmdclass' is used in place of the default, which is (for command 'foo_bar') class 'foo_bar' in module 'distutils.command.foo_bar'. The command class must provide a 'user_options' attribute which is a list of option specifiers for 'distutils.fancy_getopt'. Any command-line options between the current and the next command are used to set attributes of the current command object. When the entire command-line has been successfully parsed, calls the 'run()' method on each command object in turn. This method will be driven entirely by the Distribution object (which each command object has a reference to, thanks to its constructor), and the command-specific options that became attributes of each command object. rr rrNrzerror in setup command: %szerror in %s setup command: %sinitz%options (after parsing config files):configz error: %sz%options (after parsing command line): commandlineZ interruptedz error: %s z error: %szerror: )getrrr r sysargv_setup_distributionZDistutilsSetupError SystemExit_setup_stop_afterZparse_config_filesrprintZdump_option_dictsZparse_command_lineZDistutilsArgErrorrr Z run_commandsKeyboardInterruptOSErrorstderrwriteZDistutilsErrorZCCompilerErrorstr)ZattrsklassZdistmsgokexcrrrsetup9s`%    '     0    %)rGruncCs|d krtd|f|atj}d|i}i}yvz_|tjd<|dk rr|tjd ds2      qPK!e:`G`G*__pycache__/ccompiler.cpython-35.opt-2.pycnu[ ]7 @stddlZddlZddlZddlTddlmZddlmZddlm Z ddl m Z m Z ddl mZmZddlmZGd d d Zd d fd d fddffZddddZd dddfddddfddddfddddfdd d!d"fiZd#d$Zdddddd%d&Zd'd(Zd)d*ZdS)+N)*)spawn) move_file)mkpath)newer_pairwise newer_group) split_quotedexecute)logc @seZdZdZdZdZdZdZdZdZ dZ dddddddddd iZ dd dgZ d d d d d Z d dZddZddZddZdddZddZddZddZddZdd Zd!d"Zd#d$Zd%d&Zd'd(Zd)d*Zd+d,Zd-d.Zd/d0Zd1d2Z dd3d4Z!d5d6Z"d7d8Z#d9d:Z$d;d<Z%dddddd=d>Z&dddd dddd?d@Z'dAdBZ(dd ddCdDZ)dEZ*dFZ+dGZ,dddddd dddddHdI Z-dddddd dddddJdK Z.dddddd dddddLdM Z/ddddd ddddNdOZ0dPdQZ1dRdSZ2dTdUZ3dddddVdWZ4d dXdYZ5d dZd[d\Z6d dZd]d^Z7d dZd_d`Z8dad dZdbdcZ9dddedfZ:dgdhZ;didjZ<ddddkdlZ=dmdnZ>dodpZ?dqdrdsZ@dS)t CCompilerNz.ccz.cczc++z.cppz.cxxz.mZobjcrcCs||_||_||_d|_g|_g|_g|_g|_g|_g|_ x.|j j D]}|j ||j |qjWdS)N) dry_runforceverbose output_dirmacros include_dirs libraries library_dirsruntime_library_dirsobjects executableskeysset_executable)selfrr rkeyr./opt/alt/python35/lib64/python3.5/ccompiler.py__init__Us          zCCompiler.__init__cKsTxM|D]E}||jkr8td||jjf|j|||qWdS)Nz$unknown executable '%s' for class %s)r ValueError __class____name__r)rkwargsrrrrset_executablesys  zCCompiler.set_executablescCs<t|tr(t||t|nt|||dS)N) isinstancestrsetattrr)rrvaluerrrrszCCompiler.set_executablecCs<d}x/|jD]$}|d|kr*|S|d7}qWdS)Nr)r)rnameidefnrrr _find_macros zCCompiler._find_macrocCsx}|D]u}t|toat|dkoat|dtsQ|ddkoat|dtstd|ddqWdS)Nr(rzinvalid macro definition '%s': z.must be tuple (string,), (string, string), or z(string, None))r(r-)r$tuplelenr% TypeError)rZ definitionsr+rrr_check_macro_definitionss # z"CCompiler._check_macro_definitionscCs?|j|}|dk r%|j|=|jj||fdS)N)r,rappend)rr)r'r*rrr define_macros   zCCompiler.define_macrocCsB|j|}|dk r%|j|=|f}|jj|dS)N)r,rr2)rr)r*Zundefnrrrundefine_macros    zCCompiler.undefine_macrocCs|jj|dS)N)rr2)rdirrrradd_include_dirszCCompiler.add_include_dircCs|dd|_dS)N)r)rdirsrrrset_include_dirsszCCompiler.set_include_dirscCs|jj|dS)N)rr2)rlibnamerrr add_libraryszCCompiler.add_librarycCs|dd|_dS)N)r)rZlibnamesrrr set_librariesszCCompiler.set_librariescCs|jj|dS)N)rr2)rr5rrradd_library_dirszCCompiler.add_library_dircCs|dd|_dS)N)r)rr7rrrset_library_dirs szCCompiler.set_library_dirscCs|jj|dS)N)rr2)rr5rrradd_runtime_library_dirsz!CCompiler.add_runtime_library_dircCs|dd|_dS)N)r)rr7rrrset_runtime_library_dirssz"CCompiler.set_runtime_library_dirscCs|jj|dS)N)rr2)robjectrrradd_link_object szCCompiler.add_link_objectcCs|dd|_dS)N)r)rrrrrset_link_objects(szCCompiler.set_link_objectscCs|dkr|j}nt|ts3td|dkrK|j}n1t|trp||jpig}n td|dkr|j}n=t|ttfrt||jpg}n td|dkrg}|j|ddd|}t ||}i} xmt t |D]Y} || } || } t j j| d} |jt j j| | | f| | 'runtime_library_dirs' (if supplied) must be a list of strings)rr$rDr.r0rr)rrrrrrr _fix_lib_argss&          zCCompiler._fix_lib_argscCsE|jr dS|jr.t||dd}nt||}|SdS)NTmissingnewer)rr r)rr output_filer]rrr _need_links   zCCompiler._need_linkc Cst|ts|g}d}t|j}x{|D]s}tjj|\}}|jj|}y.|jj |}||kr|}|}Wq4t k rYq4Xq4W|S)N) r$rDr/language_orderrHrIrJ language_mapgetindexr) rrLlangrcsourcebaserSZextlangZextindexrrrdetect_languages      zCCompiler.detect_languagecCsdS)Nr)rrer^rr extra_preargsextra_postargsrrr preprocesss zCCompiler.preprocessc Cs|j||||||\}} }} } |j| ||} xV| D]N} y| | \}}Wntk rzwIYnX|j| ||| || qIW| S)N)rTrWKeyError_compile)rrLrrrrUrhrirMrrOrPrVrRrQrSrrrcompiles6   zCCompiler.compilecCsdS)Nr)rrRrQrSrVrirOrrrrlCszCCompiler._compilecCsdS)Nr)rroutput_libnamerrU target_langrrrcreate_static_libIszCCompiler.create_static_libZ shared_objectZshared_library executablecCs tdS)N)NotImplementedError)rZ target_descroutput_filenamerrrrexport_symbolsrUrhri build_temprorrrlinkis9zCCompiler.linkc CsG|jtj||j|dd||||||| | | | dS)Nlib_typeshared)rvr SHARED_LIBRARYlibrary_filename) rrrnrrrrrtrUrhrirurorrrlink_shared_libs  zCCompiler.link_shared_libc Cs8|jtj||||||||| | | | dS)N)rvr SHARED_OBJECT) rrrsrrrrrtrUrhrirurorrrlink_shared_objects  zCCompiler.link_shared_objectc CsA|jtj||j|||||d||| d| dS)N)rvr EXECUTABLEexecutable_filename) rrZoutput_prognamerrrrrUrhrirorrrlink_executables  zCCompiler.link_executablecCs tdS)N)rr)rr5rrrlibrary_dir_optionszCCompiler.library_dir_optioncCs tdS)N)rr)rr5rrrruntime_library_dir_optionsz$CCompiler.runtime_library_dir_optioncCs tdS)N)rr)rlibrrrlibrary_optionszCCompiler.library_optionc CsAddl}|dkrg}|dkr0g}|dkrBg}|dkrTg}|jd|dd\}}tj|d} z7x|D]} | jd| qW| jd|Wd| jXy|j|gd|} Wntk rd SYnXy |j| d d |d |Wnt t fk r<d SYnXdS) Nrz.ctextTwz#include "%s" z+main (int argc, char **argv) { %s(); } rFza.outrr) tempfilemkstemprHfdopenwriteclosermZ CompileErrorrZ LinkErrorr0) rfuncnameZincludesrrrrfdZfnamefZinclrrrr has_functions8           zCCompiler.has_functioncCs tdS)N)rr)rr7rrUrrrfind_library_file#szCCompiler.find_library_filecCs|dkrd}g}x|D]}tjj|\}}tjj|d}|tjj|d}||jkrtd||f|rtjj|}|jtjj |||j qW|S)Nrr(z"unknown file type '%s' (from '%s')) rHrIrJ splitdriveisabssrc_extensionsZUnknownFileErrorbasenamer2join obj_extension)rZsource_filenamesrCrZ obj_namesZsrc_namerfrSrrrrENs  zCCompiler.object_filenamescCs2|rtjj|}tjj|||jS)N)rHrIrrshared_lib_extension)rrrCrrrrshared_object_filename_sz CCompiler.shared_object_filenamecCs8|rtjj|}tjj|||jp3dS)Nr)rHrIrr exe_extension)rrrCrrrrreszCCompiler.executable_filenamestaticc Cs|d krtdt||d}t||d}tjj|\}}|||f} |rrd}tjj||| S) Nrrxdylib xcode_stubz?'lib_type' must be "static", "shared", "dylib", or "xcode_stub"Z _lib_formatZ_lib_extensionr)rrxrr)rgetattrrHrIsplitr) rr9rwrCrfmtrSr5rffilenamerrrrzks  zCCompiler.library_filenamer(cCstj|dS)N)r rU)rmsglevelrrrannounce~szCCompiler.announcecCs$ddlm}|r t|dS)Nr)DEBUG)Zdistutils.debugrprint)rrrrrr debug_printszCCompiler.debug_printcCstjjd|dS)Nz warning: %s )sysstderrr)rrrrrwarnszCCompiler.warncCst||||jdS)N)r r )rfuncargsrrrrrr szCCompiler.executecCst|d|jdS)Nr )rr )rcmdrrrrszCCompiler.spawncCst||d|jS)Nr )rr )rrQdstrrrrszCCompiler.move_fileicCst||d|jdS)Nr )rr )rr)moderrrrszCCompiler.mkpath)Ar! __module__ __qualname__Z compiler_typerrZstatic_lib_extensionrZstatic_lib_formatZshared_lib_formatrrar`rr#rr,r1r3r4r6r8r:r;r<r=r>r?rArBrTrWrXrYrZr[r_rgrjrmrlrpr|ryr~rvr{r}rrrrrrrErrrzrrrr rrrrrrrr s  $              +   "   B 4     *+    r zcygwin.*unixposixntZmsvccCsy|dkrtj}|dkr*tj}xHtD]@\}}tj||dk smtj||dk r1|Sq1WdS)Nr)rHr)rplatform_default_compilersrematch)osnamerpatterncompilerrrrget_default_compilers    rZ unixccompilerZ UnixCCompilerzstandard UNIX-style compilerZ _msvccompilerZ MSVCCompilerzMicrosoft Visual C++cygwinZcygwinccompilerZCygwinCCompilerz'Cygwin port of GNU C Compiler for Win32Zmingw32ZMingw32CCompilerz(Mingw32 port of GNU C Compiler for Win32ZbcppZ bcppcompilerZ BCPPCompilerzBorland C++ CompilercCsvddlm}g}x6tjD](}|jd|dt|dfq#W|j||}|jddS)Nr) FancyGetoptz compiler=r-zList of available compilers:)Zdistutils.fancy_getoptrcompiler_classrr2sort print_help)rZ compilersrZpretty_printerrrrshow_compilerss  rc Cs|dkrtj}y/|dkr0t|}t|\}}}WnBtk rd|}|dk rx|d|}t|YnXy5d|}t|tj|} t | |} WnIt k rt d|Yn(tk r t d||fYnX| d||S)Nz5don't know how to compile C/C++ code on platform '%s'z with '%s' compilerz distutils.z4can't compile C/C++ code: unable to load module '%s'zBcan't compile C/C++ code: unable to find class '%s' in module '%s') rHr)rrrkZDistutilsPlatformError __import__rmodulesvars ImportErrorZDistutilsModuleError) Zplatrrr r module_name class_nameZlong_descriptionrmoduleklassrrr new_compilers2            rcCsg}x|D]}t|toAdt|ko?dknsTtd|t|dkr~|jd|dq t|dkr |ddkr|jd|dq |jd|q Wx|D]}|jd|qW|S) Nr(r-zPbad macro definition '%s': each element of 'macros' list must be a 1- or 2-tuplez-U%srz-D%sz-D%s=%sz-I%s)r$r.r/r0r2)rrrOZmacror5rrrrF s 1  rFc Csg}x$|D]}|j|j|q WxF|D]>}|j|}t|tre||}q4|j|q4Wx|D]y}tjj|\}} |r|j|g| } | r|j| q|j d|q}|j|j |q}W|S)Nz6no library file corresponding to '%s' found (skipping)) r2rrr$rDrHrIrrrr) rrrrZlib_optsr5optrZlib_dirZlib_nameZlib_filerrrgen_lib_options7s$      r)rrHrZdistutils.errorsZdistutils.spawnrZdistutils.file_utilrZdistutils.dir_utilrZdistutils.dep_utilrrZdistutils.utilrr Z distutilsr r rrrrrrFrrrrrs:$          - -PK!U]]"__pycache__/version.cpython-35.pycnu[ Yf90@sUdZddlZGdddZGdddeZGdddeZdS) aProvides classes to represent module version numbers (one class for each style of version numbering). There are currently two such classes implemented: StrictVersion and LooseVersion. Every version number class implements the following interface: * the 'parse' method takes a string and parses it to some internal representation; if the string is an invalid version number, 'parse' raises a ValueError exception * the class constructor takes an optional string argument which, if supplied, is passed to 'parse' * __str__ reconstructs the string that was passed to 'parse' (or an equivalent string -- ie. one that will generate an equivalent version number instance) * __repr__ generates Python code to recreate the version number instance * _cmp compares the current instance with either another instance of the same class or a string (which will be parsed to an instance of the same class, thus must follow the same rules) Nc@smeZdZdZdddZddZddZd d Zd d Zd dZ ddZ dS)VersionzAbstract base class for version numbering classes. Just provides constructor (__init__) and reproducer (__repr__), because those seem to be the same for all version numbering classes; and route rich comparisons to _cmp. NcCs|r|j|dS)N)parse)selfvstringr6/opt/alt/python35/lib64/python3.5/distutils/version.py__init__&szVersion.__init__cCsd|jjt|fS)Nz %s ('%s')) __class____name__str)rrrr__repr__*szVersion.__repr__cCs)|j|}|tkr|S|dkS)Nr)_cmpNotImplemented)rothercrrr__eq__-s zVersion.__eq__cCs)|j|}|tkr|S|dkS)Nr)r r)rrrrrr__lt__3s zVersion.__lt__cCs)|j|}|tkr|S|dkS)Nr)r r)rrrrrr__le__9s zVersion.__le__cCs)|j|}|tkr|S|dkS)Nr)r r)rrrrrr__gt__?s zVersion.__gt__cCs)|j|}|tkr|S|dkS)Nr)r r)rrrrrr__ge__Es zVersion.__ge__) r __module__ __qualname____doc__rr rrrrrrrrrrs      rc@sVeZdZdZejdejejBZddZ ddZ ddZ d S) StrictVersiona?Version numbering for anal retentives and software idealists. Implements the standard interface for version number classes as described above. A version number consists of two or three dot-separated numeric components, with an optional "pre-release" tag on the end. The pre-release tag consists of the letter 'a' or 'b' followed by a number. If the numeric components of two version numbers are equal, then one with a pre-release tag will always be deemed earlier (lesser) than one without. The following are valid version numbers (shown in the order that would be obtained by sorting according to the supplied cmp function): 0.4 0.4.0 (these two are equivalent) 0.4.1 0.5a1 0.5b3 0.5 0.9.6 1.0 1.0.4a3 1.0.4b1 1.0.4 The following are examples of invalid version numbers: 1 2.7.2.2 1.3.a4 1.3pl1 1.3c4 The rationale for this version numbering system will be explained in the distutils documentation. z)^(\d+) \. (\d+) (\. (\d+))? ([ab](\d+))?$cCs|jj|}|s(td||jddddd\}}}}}|r|ttt|||g|_n"ttt||gd|_|r|dt|f|_n d|_dS) Nzinvalid version number '%s'r)r) version_rematch ValueErrorgrouptuplemapintversion prerelease)rrr majorminorZpatchr'Zprerelease_numrrrrs*$"zStrictVersion.parsecCs|jddkr;djtt|jdd}ndjtt|j}|jr||jdt|jd}|S)Nrr.r)r&joinr$r r')rrrrr__str__s ( "zStrictVersion.__str__cCst|trt|}|j|jkrG|j|jkrCdSdS|j r_|j r_dS|jrv|j rvdS|j r|jrdS|jr|jr|j|jkrdS|j|jkrdSdSndstddS)NrrFznever get herer-r-) isinstancer rr&r'AssertionError)rrrrrr s& zStrictVersion._cmpN) r rrrrecompileVERBOSEASCIIrrr,r rrrrr]s #   rc@sjeZdZdZejdejZdddZddZ dd Z d d Z d d Z dS) LooseVersionaVersion numbering for anarchists and software realists. Implements the standard interface for version number classes as described above. A version number consists of a series of numbers, separated by either periods or strings of letters. When comparing version numbers, the numeric components will be compared numerically, and the alphabetic components lexically. The following are all valid version numbers, in no particular order: 1.5.1 1.5.2b2 161 3.10a 8.02 3.4j 1996.07.12 3.2.pl0 3.1.1.6 2g6 11g 0.960923 2.2beta29 1.13++ 5.5.kw 2.0b1pl0 In fact, there is no such thing as an invalid version number under this scheme; the rules for comparison are simple and predictable, but may not always give the results you want (for some definition of "want"). z(\d+ | [a-z]+ | \.)NcCs|r|j|dS)N)r)rrrrrr.szLooseVersion.__init__c Cs{||_dd|jj|D}xCt|D]5\}}yt|||8s z&LooseVersion.parse..)r component_resplit enumerater%r!r&)rrZ componentsiobjrrrr3s   zLooseVersion.parsecCs|jS)N)r)rrrrr,CszLooseVersion.__str__cCsdt|S)NzLooseVersion ('%s'))r )rrrrr GszLooseVersion.__repr__cCsat|trt|}|j|jkr1dS|j|jkrGdS|j|jkr]dSdS)Nrrr-)r.r r4r&)rrrrrr Ks zLooseVersion._cmp) r rrrr0r1r2r8rrr,r r rrrrr4 s    r4)rr0rrr4rrrrs >PK!T&__pycache__/debug.cpython-35.opt-2.pycnu[ ]@s"ddlZejjdZdS)NZDISTUTILS_DEBUG)osenvirongetDEBUGrr*/opt/alt/python35/lib64/python3.5/debug.pys PK!bz __pycache__/spawn.cpython-35.pycnu[ Yf@sdZddlZddlZddlmZmZddlmZddlm Z dddddZ d d Z dddd d Z ej d krddlmZdadadddddZdddZdS)zdistutils.spawn Provides the 'spawn()' function, a front-end to various platform- specific functions for launching another program in a sub-process. Also provides the 'find_executable()' to search the path for a given executable name. N)DistutilsPlatformErrorDistutilsExecError)DEBUG)logcCsmt|}tjdkr1t||d|n8tjdkrVt||d|ntdtjdS)aRun another program, specified as a command list 'cmd', in a new process. 'cmd' is just the argument list for the new process, ie. cmd[0] is the program to run and cmd[1:] are the rest of its arguments. There is no way to run a program with a name different from that of its executable. If 'search_path' is true (the default), the system's executable search path will be used to find the program; otherwise, cmd[0] must be the exact path to the executable. If 'dry_run' is true, the command will not actually be run. Raise DistutilsExecError if running the program fails in any way; just return on success. posixdry_runntz1don't know how to spawn programs on platform '%s'N)listosname _spawn_posix _spawn_ntr)cmd search_pathverboserr4/opt/alt/python35/lib64/python3.5/distutils/spawn.pyspawns rcCs;x4t|D]&\}}d|kr d|||es z _spawn_posix...cSsg|]}t|qSr)r))r*r+rrrr,ks zF$MACOSX_DEPLOYMENT_TARGET mismatch: now "%s" but "%s" during configurezunable to execute %r: %s rz(unable to execute %r for unknown reasonszcommand %r failed: %sz"command %r terminated by signal %dz%command %r failed with exit status %dz1unknown error executing %r: termination status %dr)"rrrr execvpexecvsysplatform _cfg_targetr&get_config_varsplit_cfg_target_splitenvirongetrdictexecvpeexecveforkr!rstderrwritestrerror_exitwaitpidrr WIFSIGNALEDWTERMSIG WIFEXITED WEXITSTATUS WIFSTOPPED)rrrrr"Zexec_fnenvZ cur_targetZmy_msgpideZstatusr$Z exit_statusrrrr Xs  "         - r cCs|dkrtjd}|jtj}tjj|\}}tjdkrh|dkrh|d}tjj|sx9|D]1}tjj ||}tjj|r|SqWdS|SdS)zTries to find 'executable' in the directories listed in 'path'. A string listing directories separated by 'os.pathsep'; defaults to os.environ['PATH']. Returns the complete filename or None if not found. NPATHwin32z.exe) r r6r4pathseppathsplitextr0r1isfiler)r"rLpathsbaseZextpfrrrrs    r)__doc__r0r Zdistutils.errorsrrZdistutils.debugrZ distutilsrrrrr1r&r2r5r rrrrrs   QPK!N%%$__pycache__/cmd.cpython-35.opt-2.pycnu[ ]J@sddlZddlZddlZddlmZddlmZmZmZm Z m Z ddlm Z GdddZ Gddde Z dS) N)DistutilsOptionError)utildir_util file_util archive_utildep_util)logc@seZdZgZddZddZddZddZd d Zd d d dZ ddZ dddZ ddZ d ddZ d ddZddZd ddZddZd d!Zd"d#Zd$d%Zdd&d'Zd(d)d*Zd+d,Zd-d.Zd/d0Zd dd1d2Zd3d4d5Zddd dd6d7Zddd(dd8d9Zdd:d;Zddd<d=Zd d d d d>d?Z d d dd@dAZ!d S)BCommandcCsddlm}t||s+td|jtkrFtd||_|jd|_ |j |_ d|_ d|_ d|_ dS)Nr) Distributionz$dist must be a Distribution instancezCommand is an abstract class)Zdistutils.distr isinstance TypeError __class__r RuntimeError distributioninitialize_optionsZ_dry_runverboseforcehelp finalized)selfZdistr r(/opt/alt/python35/lib64/python3.5/cmd.py__init__/s       zCommand.__init__cCsR|dkrBt|d|}|dkr;t|j|S|Sn t|dS)Ndry_run_)getattrrAttributeError)rattrZmyvalrrr __getattr___s   zCommand.__getattr__cCs |js|jd|_dS)N)rfinalize_options)rrrrensure_finalizedis  zCommand.ensure_finalizedcCstd|jdS)Nz,abstract method -- subclass %s must override)rr )rrrrr{s zCommand.initialize_optionscCstd|jdS)Nz,abstract method -- subclass %s must override)rr )rrrrr s zCommand.finalize_optionsNcCsddlm}|dkr,d|j}|j||dtj|d}x||jD]q\}}}|j|}|d dkr|dd }t||}|j|d||fdtjqZWdS) Nr) longopt_xlatezcommand options for '%s':levelz r=z%s = %sr&) Zdistutils.fancy_getoptr#get_command_nameannouncerINFO user_options translater)rheaderindentr#optionrvaluerrr dump_optionss  zCommand.dump_optionscCstd|jdS)Nz,abstract method -- subclass %s must override)rr )rrrrruns z Command.runrcCstj||dS)N)r)rmsgr$rrrr(szCommand.announcecCs1ddlm}|r-t|tjjdS)Nr)DEBUG)Zdistutils.debugr3printsysstdoutflush)rr2r3rrr debug_prints zCommand.debug_printcCs[t||}|dkr/t||||St|tsWtd|||f|S)Nz'%s' must be a %s (got `%s`))rsetattrr strr)rr.whatdefaultvalrrr_ensure_stringlikes zCommand._ensure_stringlikecCs|j|d|dS)Nstring)r>)rr.r<rrr ensure_stringszCommand.ensure_stringcCst||}|dkrdSt|trMt||tjd|nMt|trxtdd|D}nd}|std||fdS)Nz,\s*|\s+css|]}t|tVqdS)N)r r:).0vrrr sz-Command.ensure_string_list..Fz''%s' must be a list of strings (got %r)) rr r:r9resplitlistallr)rr.r=okrrrensure_string_lists zCommand.ensure_string_listcCsL|j|||}|dk rH|| rHtd|||fdS)Nzerror in '%s' option: )r>r)rr.Ztesterr;Z error_fmtr<r=rrr_ensure_tested_strings zCommand._ensure_tested_stringcCs |j|tjjdddS)Nfilenamez$'%s' does not exist or is not a file)rJospathisfile)rr.rrrensure_filenameszCommand.ensure_filenamecCs |j|tjjdddS)Nzdirectory namez)'%s' does not exist or is not a directory)rJrLrMisdir)rr.rrrensure_dirnameszCommand.ensure_dirnamecCs$t|dr|jS|jjSdS)N command_name)hasattrrRr __name__)rrrrr' szCommand.get_command_namecGse|jj|}|jxB|D]:\}}t||dkr#t||t||q#WdS)N)rget_command_objr!rr9)rZsrc_cmdZ option_pairsZ src_cmd_objZ src_optionZ dst_optionrrrset_undefined_optionss  zCommand.set_undefined_optionscCs#|jj||}|j|S)N)rrUr!)rcommandZcreateZcmd_objrrrget_finalized_command$s zCommand.get_finalized_commandrcCs|jj||S)N)rreinitialize_command)rrWZreinit_subcommandsrrrrY0s zCommand.reinitialize_commandcCs|jj|dS)N)r run_command)rrWrrrrZ4szCommand.run_commandcCsIg}x<|jD]1\}}|dks4||r|j|qW|S)N) sub_commandsappend)rcommandsZcmd_namemethodrrrget_sub_commands;s zCommand.get_sub_commandscCs!tjd|j|fdS)Nzwarning: %s: %s )rwarnr')rr2rrrr`Ks z Command.warncCs tj|||d|jdS)Nr)rexecuter)rfuncargsr2r$rrrraOszCommand.executeicCstj||d|jdS)Nr)rmkpathr)rnamemoderrrrdRszCommand.mkpathc Cs)tj|||||j |d|jS)Nr)r copy_filerr)rinfileoutfile preserve_modepreserve_timeslinkr$rrrrgUszCommand.copy_filec Cs)tj||||||j d|jS)Nr)r copy_treerr)rrhrirjrkZpreserve_symlinksr$rrrrm^szCommand.copy_treecCstj||d|jS)Nr)r move_filer)rsrcdstr$rrrrngszCommand.move_filecCs*ddlm}|||d|jdS)Nr)spawnr)Zdistutils.spawnrqr)rcmdZ search_pathr$rqrrrrqksz Command.spawnc Cs+tj||||d|jd|d|S)Nrownergroup)r make_archiver)r base_nameformatroot_dirbase_dirrsrtrrrrups zCommand.make_archivecCs|dkrd|}t|tr1|f}n!t|ttfsRtd|dkrwd|dj|f}|jstj||r|j ||||n t j |dS)Nzskipping %s (inputs unchanged)z9'infiles' must be a string, or a list or tuple of stringszgenerating %s from %sz, ) r r:rFtupler joinrrZ newer_grouprardebug)rZinfilesrirbrcZexec_msgZskip_msgr$rrr make_filevs     zCommand.make_file)"rT __module__ __qualname__r[rrr!rr r0r1r(r8r>r@rIrJrOrQr'rVrXrYrZr_r`rardrgrmrnrqrur}rrrrr sD  0              r c@sIeZdZd gZddZddZdd Zd d Zd S) install_misc install-dir=d!directory to install the files tocCsd|_g|_dS)N) install_diroutfiles)rrrrrs zinstall_misc.initialize_optionscCs|jd|dfdS)Ninstallr)rV)rdirnamerrr_install_dir_fromszinstall_misc._install_dir_fromcCsmg|_|sdS|j|jxC|D];}|j||j|jjtjj|j|q*WdS)N)rrdrrgr\rLrMr{)rZfilelistfrrr _copy_filess  zinstall_misc._copy_filescCs|jS)N)r)rrrr get_outputsszinstall_misc.get_outputsN)rrr)rTr~rr*rrrrrrrrrs     r)r5rLrDZdistutils.errorsrZ distutilsrrrrrrr rrrrrs $(PK!+7*__pycache__/text_file.cpython-35.opt-2.pycnu[ ]0@s;ddlZddlZddlZGdddZdS)Nc@seZdZddddddddddddd d iZd d d d ZddZddZd ddZd ddZd ddZ ddZ ddZ ddZ d S)TextFilestrip_comments skip_blanks lstrip_wsr rstrip_ws join_lines collapse_joinerrorsstrictNcKs|dkr$|dkr$tdxQ|jjD]@}||kr]t||||q4t|||j|q4Wx3|jD]%}||jkrtd|qW|dkr|j|n||_||_d|_g|_ dS)Nz7you must supply either or both of 'filename' and 'file'zinvalid TextFile option '%s'r) RuntimeErrordefault_optionskeyssetattrKeyErroropenfilenamefile current_linelinebuf)selfrroptionsoptr./opt/alt/python35/lib64/python3.5/text_file.py__init__Ns      zTextFile.__init__cCs7||_tj|jdd|j|_d|_dS)Nrr r)riorr rr)rrrrrros !z TextFile.opencCs2|j}d|_d|_d|_|jdS)N)rrrclose)rrrrrrvs     zTextFile.closecCsg}|dkr|j}|j|jdt|ttfr^|jdt|n|jd||jt|dj|S)Nz, z lines %d-%d: z line %d: )rappendr isinstancelisttuplestrjoin)rmsglineZoutmsgrrr gen_errors  zTextFile.gen_errorcCs td|j||dS)Nzerror: ) ValueErrorr()rr&r'rrrerrorszTextFile.errorcCs(tjjd|j||ddS)Nz warning:  )sysstderrwriter()rr&r'rrrwarnsz TextFile.warncCs|jr$|jd }|jd =|Sd}xu|jj}|dkrNd}|jr|r|jd}|d kr{nz|dks||ddkr|ddkrdpd}|d||}|jdkrq-n|jdd}|jr|r|dkr!|jd|S|j r6|j }||}t |j t rm|j dd|j drrrrr s ; !    x r)r,osrrrrrrs$PK!u44.__pycache__/_msvccompiler.cpython-35.opt-1.pycnu[ YfO@s*dZddlZddlZddlZddlZddlmZmZmZm Z m Z ddl m Z m Z ddlmZddlmZddlZddlmZdd Zd d Zdd d ZddddiZddddddiZedgZGddde ZdS)adistutils._msvccompiler Contains MSVCCompiler, an implementation of the abstract CCompiler class for Microsoft Visual Studio 2015. The module is compatible with VS 2015 and later. You can find legacy support for older versions in distutils.msvc9compiler and distutils.msvccompiler. N)DistutilsExecErrorDistutilsPlatformError CompileErrorLibError LinkError) CCompilergen_lib_options)log) get_platform)countc $Csy)tjtjddtjtjB}Wn#tk rNtjdd SYnX|d}d}xtD]}ytj ||\}}}Wntk rPYnX|rl|tj krlt j j |rlytt|}Wnttfk rwlYnX|dkrl||krl||}}qlW|sBtjdd St j j|d} t j j| s}tjd| d Sd} tj|} | rt j j|| j|} t j j| stjd| d} | | fSWdQRXdS) Nz'Software\Microsoft\VisualStudio\SxS\VC7accesszVisual C++ is not registeredrz$No suitable Visual C++ version foundz vcvarsall.batz%s cannot be found)NN)NN)NN)winregZ OpenKeyExHKEY_LOCAL_MACHINEZKEY_READZKEY_WOW64_32KEYOSErrorr debugr Z EnumValueZREG_SZospathisdirintfloat ValueError TypeErrorjoinisfile _VCVARS_PLAT_TO_VCRUNTIME_REDISTgetformat) plat_speckeyZ best_versionZbest_dirivZvc_dirZvtversion vcvarsall vcruntimeZvcruntime_specr%Ns z_get_vc_env..zUnable to find vcvarsall.batzcmd /u /c "{}" {} && setstderrzutf-16leerrorsreplacezError executing {}cSs4i|]*\}}}|r|r||jqSr%)r()r)r_r*r%r%r&r+as  css|]}|jdVqdS)=N) partition)r)liner%r%r& dsz_get_vc_env..py_vcruntime_redist)rgetenvenvironitemsr'r subprocessZ check_outputrZSTDOUTdecodeZCalledProcessErrorr erroroutputcmd splitlines)rr#r$outexcenvr%r%r& _get_vc_envLs(    "  rAcCsm|s!tjdjtj}xE|D]=}tjjtjj||}tjj|r(|Sq(W|S)atReturn path to an MSVC executable program. Tries to find the program in several places: first, one of the MSVC program search paths from the registry; next, the directories in the PATH environment variable. If any of those work, return an absolute path that is known to exist. If none of them work, just return the original program name, 'exe'. r)rr5splitpathseprrabspathr)Zexepathspfnr%r%r& _find_exels  !rHwin32Zx86z win-amd64Z x86_amd64z1redist\x86\Microsoft.VC{0}0.CRT\vcruntime{0}0.dllamd64z1redist\x64\Microsoft.VC{0}0.CRT\vcruntime{0}0.dllzvcruntime140.dllc smeZdZdZdZiZdgZdddgZdgZdgZ eeee Z d Z d Z d Z d Zd ZZdZdddddZdddZddddZdddddddddZdddddZdddddddddddd ZddZfd d!Zd"d#Zd$d%Zd&d'Zdd(d)ZS)* MSVCCompilerzwConcrete class that implements an interface to Microsoft Visual C++, as defined by the CCompiler abstract class.Zmsvcz.cz.ccz.cppz.cxxz.rcz.mcz.resz.objz.libz.dllz%s%sz.exercCs,tj||||d|_d|_dS)NF)r__init__ plat_name initialized)selfverboseZdry_runZforcer%r%r&rLs zMSVCCompiler.__init__NcCs%|dkrt}|tkr<tdjttt|}t|}|sdtd|jdd|_|jjt j }t d||_ t d||_ t d||_t d||_t d ||_t d ||_|jd d|_x9|jd djt j D]}|r.|j|q.Wx9|jd djt j D]}|rj|j|qjWd|_dddddg|_|jj|jrdndddddddg|_dddg}|js|jd$ddddg}|d%|_|d&|_|d'|_|d(|_||_||_t j!df|jt j!d"f|jt j!d#f|jt j"df|jt j"d"f|jt j"d#f|jt j#df|jt j#d"f|jt j#d#f|ji |_$d#|_%dS))Nz--plat-name must be one of {}z7Unable to find a compatible Visual Studio installation.rzcl.exezlink.exezlib.exezrc.exezmc.exezmt.exer4includelibz/nologoz/Oxz/W3z/GLz/DNDEBUGz/MDz/MTz/Odz/MDdz/Ziz/D_DEBUGz/INCREMENTAL:NOz/LTCG/nodefaultlib:libucrt.libucrt.libz /DEBUG:FULL/MANIFEST:EMBED,ID=1/DLL/MANIFEST:EMBED,ID=2/MANIFESTUAC:NOFT)rTrU)rV)rV)rWrXrY)rWrXrY)&r PLAT_TO_VCVARSrrtuplerAr_pathsrBrrCrHcclinkerrSrcmcZmt_vcruntime_redistZadd_include_dirZadd_library_dirZpreprocess_optionscompile_optionsappendcompile_options_debugextendZ ldflags_exeZldflags_exe_debugZldflags_sharedZldflags_shared_debugZldflags_staticZldflags_static_debugrZ EXECUTABLEZ SHARED_OBJECTZSHARED_LIBRARY_ldflagsrN)rOrMrZvc_envrEdirldflagsZ ldflags_debugr%r%r& initializes`       %%     zMSVCCompiler.initializerQcsvfddjDfddjjDpHdfdd}tt||S)Ncsi|]}j|qSr%) obj_extension)r)ext)rOr%r&r+s z1MSVCCompiler.object_filenames..csi|]}j|qSr%) res_extension)r)rk)rOr%r&r+s rQc stjj|\}}r3tjj|}nItjj|\}}|jtjjtjjfr||dd}ytjj||SWn't k rt dj |YnXdS)NzDon't know how to compile {}) rrsplitextbasename splitdrive startswithsepaltsepr LookupErrorrr)rFbaserkr/)ext_map output_dir strip_dirr%r& make_out_paths! z4MSVCCompiler.object_filenames..make_out_path)src_extensions_rc_extensions_mc_extensionslistmap)rOZsource_filenamesrxrwryr%)rvrwrOrxr&object_filenames s & zMSVCCompiler.object_filenamesc Cs?|js|j|j||||||} | \}} }} } |pOg} | jd|rx| j|jn| j|jd}x| D]}y| |\}}Wntk rwYnX|rtj j |}||j krd|}n||j krd|}d}n||j kr|}d|}y%|j|jg| ||gWqtk r}zt|WYdd}~XqXqn||jkrtj j|}tj j|}y|j|jd|d||gtj jtj j|\}}tj j||d }|j|jd||gWqtk r}zt|WYdd}~XqXqntd j|||jg| | }|r|jd |j||jd ||j|y|j|Wqtk r6}zt|WYdd}~XqXqW| S) Nz/cFz/Tcz/TpTz/foz-hz-rz.rcz"Don't know how to compile {} to {}z/EHscz/Fo)rNriZ_setup_compilercrerdrbKeyErrorrrrD _c_extensions_cpp_extensionsr{spawnr_rrr|dirnamer`rnrorrr])rOZsourcesrwZmacrosZ include_dirsr extra_preargsextra_postargsZdependsZ compile_infoobjectsZpp_optsZbuildZ compile_optsZ add_cpp_optsobjsrcrkZ input_optZ output_optmsgZh_dirZrc_dirrur/Zrc_fileargsr%r%r&compile+sn          % "$!    #zMSVCCompiler.compilec Cs|js|j|j||\}}|j|d|}|j||r|d|g}|riy:tjd|jdj||j |jg|Wqt k r}zt |WYdd}~XqXntjd|dS)Nrwz/OUT:zExecuting "%s" %s zskipping %s (up-to-date)) rNri_fix_object_argslibrary_filename _need_linkr rrSrrrr) rOrZoutput_libnamerwr target_langoutput_filenameZlib_argsrr%r%r&create_static_libs    "zMSVCCompiler.create_static_libcCsX|js|j|j||\}}|j|||}|\}}}|rl|jdt|t||||}|dk rtjj ||}|j ||rD|j || f}dd|pgD}||||d|g}tjj |d} |dk rrtjj tjj|\}}tjj | |j|}|jd|| r| |dd<| r|j| tjj tjj|}|j|yGtjd|jdj ||j|jg||j|WqTtk r@}zt|WYdd}~XqTXntjd |dS) Nz5I don't know what to do with 'runtime_library_dirs': cSsg|]}d|qS)z/EXPORT:r%)r)Zsymr%r%r& s z%MSVCCompiler.link..z/OUT:rz/IMPLIB:zExecuting "%s" %srzskipping %s (up-to-date))rNrirZ _fix_lib_argswarnstrrrrrrrfrrnrorrcrerDZmkpathr rr^r_copy_vcruntimerr)rOZ target_descrrrwZ librariesZ library_dirsZruntime_library_dirsZexport_symbolsrrrZ build_temprZ fixed_argsZlib_optsrhZ export_optsZld_argsZdll_nameZdll_extZ implib_filerr%r%r&linksN            "zMSVCCompiler.linkcCs|j}| s#tjj| r'dStjj|jtkrIdStjd|t j ||}tj |t j dS)Nz Copying "%s")rarrrror( _BUNDLED_DLLSr rshutilcopychmodstatS_IWRITE)rOrwr$r%r%r&rs zMSVCCompiler._copy_vcruntimec sHtjd}z$|jtjds(    (  .   PK!"Z 8 8-__pycache__/msvccompiler.cpython-35.opt-2.pycnu[ ]\@sddlZddlZddlmZmZmZmZmZddlm Z m Z m Z ddl m Z dZy@ddlZdZeZejZejZejZejZWnek r4yLddlZddlZdZeZejZejZejZejZWnek r/e jdYnXYnXerYejejejej fZ!dd Z"d d Z#d d Z$GdddZ%ddZ&ddZ'ddZ(Gddde Z)e&dkr e j*de)Z+ddl,m)Z)ddl,m%Z%dS)N)DistutilsExecErrorDistutilsPlatformError CompileErrorLibError LinkError) CCompilergen_preprocess_optionsgen_lib_options)logFTzWarning: Can't read registry to find the necessary compiler setting Make sure that Python modules winreg, win32api or win32con are installed.cCsyt||}Wntk r+dSYnXg}d}xDyt||}Wntk rcPYnX|j||d7}q;W|S)Nr) RegOpenKeyExRegError RegEnumKeyappend)basekeyhandleLikr1/opt/alt/python35/lib64/python3.5/msvccompiler.py read_keys7s    rcCsyt||}Wntk r+dSYnXi}d}xbyt||\}}}Wntk rlPYnX|j}t||t|<|d7}q;W|S)Nrr )r r RegEnumValuelower convert_mbcs)rrrdrnamevaluetyperrr read_valuesHs    r c CsGt|dd}|dk rCy|d}Wntk rBYnX|S)Ndecodembcs)getattr UnicodeError)sZdecrrrr]s  rc@s@eZdZddZddZddZddZd S) MacroExpandercCsi|_|j|dS)N)macros load_macros)selfversionrrr__init__gs zMacroExpander.__init__cCs@x9tD]1}t||}|r|||jd| sX(                   -   PK!891__pycache__/versionpredicate.cpython-35.opt-1.pycnu[ Yf  @sdZddlZddlZddlZejdejZejdZejdZ ddZ dej d ej d ej d ejd ejd ejiZGdddZdaddZdS)zBModule for parsing and testing package version predicate strings. Nz'(?i)^\s*([a-z_]\w*(?:\.[a-z_]\w*)*)(.*)z^\s*\((.*)\)\s*$z%^\s*(<=|>=|<|>|!=|==)\s*([^\s,]+)\s*$cCsMtj|}|s%td||j\}}|tjj|fS)zVParse a single version comparison. Return (comparison string, StrictVersion) z"bad package restriction syntax: %r)re_splitComparisonmatch ValueErrorgroups distutilsversion StrictVersion)predrescompZverStrr ?/opt/alt/python35/lib64/python3.5/distutils/versionpredicate.pysplitUps rz>=z!=c@s:eZdZdZddZddZddZdS) VersionPredicateaParse and test package version predicates. >>> v = VersionPredicate('pyepat.abc (>1.0, <3333.3a1, !=1555.1b3)') The `name` attribute provides the full dotted name that is given:: >>> v.name 'pyepat.abc' The str() of a `VersionPredicate` provides a normalized human-readable version of the expression:: >>> print(v) pyepat.abc (> 1.0, < 3333.3a1, != 1555.1b3) The `satisfied_by()` method can be used to determine with a given version number is included in the set described by the version restrictions:: >>> v.satisfied_by('1.1') True >>> v.satisfied_by('1.4') True >>> v.satisfied_by('1.0') False >>> v.satisfied_by('4444.4') False >>> v.satisfied_by('1555.1b3') False `VersionPredicate` is flexible in accepting extra whitespace:: >>> v = VersionPredicate(' pat( == 0.1 ) ') >>> v.name 'pat' >>> v.satisfied_by('0.1') True >>> v.satisfied_by('0.2') False If any version numbers passed in do not conform to the restrictions of `StrictVersion`, a `ValueError` is raised:: >>> v = VersionPredicate('p1.p2.p3.p4(>=1.0, <=1.3a1, !=1.2zb3)') Traceback (most recent call last): ... ValueError: invalid version number '1.2zb3' It the module or package name given does not conform to what's allowed as a legal module or package name, `ValueError` is raised:: >>> v = VersionPredicate('foo-bar') Traceback (most recent call last): ... ValueError: expected parenthesized list: '-bar' >>> v = VersionPredicate('foo bar (12.21)') Traceback (most recent call last): ... ValueError: expected parenthesized list: 'bar (12.21)' cCs|j}|stdtj|}|sCtd||j\|_}|j}|rtj|}|std||jd}dd|jdD|_|jstd|n g|_d S) z*Parse a version predicate string. zempty package restrictionzbad package name in %rzexpected parenthesized list: %rrcSsg|]}t|qSr )r).0ZaPredr r r ts z-VersionPredicate.__init__..,zempty parenthesized list in %rN) striprre_validPackagerrnamere_parensplitr )selfZversionPredicateStrrZparenstrr r r __init__`s$     zVersionPredicate.__init__cCsF|jr;dd|jD}|jddj|dS|jSdS)NcSs*g|] \}}|dt|qS) )r)rcondverr r r r}s z,VersionPredicate.__str__..z (z, ))r rjoin)rseqr r r __str__{s zVersionPredicate.__str__cCs5x.|jD]#\}}t|||s dSq WdS)zTrue if version is compatible with all the predicates in self. The parameter version must be acceptable to the StrictVersion constructor. It may be either a string or StrictVersion. FT)r compmap)rrrrr r r satisfied_byszVersionPredicate.satisfied_byN)__name__ __module__ __qualname____doc__rr#r%r r r r rs ?  rcCstdkr!tjdtja|j}tj|}|sRtd||jdpdd}|rtj j |}|jd|fS)a9Return the name and optional version number of a provision. The version number, if given, will be returned as a `StrictVersion` instance, otherwise it will be `None`. >>> split_provision('mypkg') ('mypkg', None) >>> split_provision(' mypkg( 1.2 ) ') ('mypkg', StrictVersion ('1.2')) Nz=([a-zA-Z_]\w*(?:\.[a-zA-Z_]\w*)*)(?:\s*\(\s*([^)\s]+)\s*\))?$z"illegal provides specification: %r) _provision_rxrecompileASCIIrrrgrouprrr)valuemrr r r split_provisions   r3)r)r-Zdistutils.versionroperatorr.r/rrrrltleeqgtgener$rr,r3r r r r s      !nPK!dd__pycache__/dist.cpython-35.pycnu[ Yf> @sdZddlZddlZddlZddlmZyddlZWnek rddZYnXddlTddl m Z m Z ddl m Z mZmZddlmZddlmZejd ZGd d d ZGd d d ZddZdS)z}distutils.dist Provides the Distribution class, which represents the module distribution being built/installed/distributed. N)message_from_file)*) FancyGetopttranslate_longopt) check_environ strtobool rfc822_escape)log)DEBUGz^[a-zA-Z]([a-zA-Z0-9_]*)$c@s$eZdZdZd~ddddgZdZdddddddddddddddddddddgZd>d?eDZddiZdd@dAZ dBdCZ dddDdEdFZ dGdHZ ddIdJZ dKdLZdMdNZdOdPZdQdRZddgdSdTZdUdVZdWdXZdYdZZd[d\Zd]d^Zd_d`ZddadbZddcddZdedfdgZejdhdiZdjdkZdldmZ dndoZ!dpdqZ"drdsZ#dtduZ$dvdwZ%dxdyZ&dzd{Z'd|d}Z(dS) DistributionaThe core of the Distutils. Most of the work hiding behind 'setup' is really done within a Distribution instance, which farms the work out to the Distutils commands specified on the command line. Setup scripts will almost never instantiate Distribution directly, unless the 'setup()' function is totally inadequate to their needs. However, it is conceivable that a setup script might wish to subclass Distribution for some specialized purpose, and then pass the subclass to 'setup()' as the 'distclass' keyword argument. If so, it is necessary to respect the expectations that 'setup' has of Distribution. See the code for 'setup()', in core.py, for details. verbosevrun verbosely (default)quietq!run quietly (turns verbosity off)dry-runndon't actually do anythinghelphshow detailed help message no-user-cfgN-ignore pydistutils.cfg in your home directoryzCommon commands: (see '--help-commands' for more) setup.py build will build the package underneath 'build/' setup.py install will install the package help-commandslist all available commandsnameprint package nameversionVprint package versionfullnameprint -authorprint the author's name author-email print the author's email address maintainerprint the maintainer's namemaintainer-email$print the maintainer's email addresscontact7print the maintainer's name if known, else the author's contact-email@print the maintainer's email address if known, else the author'surlprint the URL for this packagelicense print the license of the packagelicencealias for --license descriptionprint the package descriptionlong-description"print the long package description platformsprint the list of platforms classifiersprint the list of classifierskeywordsprint the list of keywordsprovides+print the list of packages/modules providedrequires+print the list of packages/modules required obsoletes0print the list of packages/modules made obsoletecCs g|]}t|dqS)r)r).0xrH3/opt/alt/python35/lib64/python3.5/distutils/dist.py ss zDistribution.cCsWd|_d|_d|_x!|jD]}t||dq%Wt|_x:|jjD],}d|}t||t|j|qXWi|_ d|_ d|_ d|_ i|_ g|_d|_i|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_i|_i|_|r|jd}|dk r|d=xV|jD]H\}}|j |}x*|jD]\} } d| f|| r:NcSsg|]}|jqSrH)strip)rFZelmrHrHrIrJ_s z1Distribution.finalize_options..,)r>r:)rVrTrstrrrR)rrrsrrHrHrIrqUs  zDistribution.finalize_optionsc Cspddlm}ddlm}|ro|r;|j}n |j}|j||j|jdt d|r|j|j |jddt dx|j D]}t |t rt||r|} n|j|} t| dr't | jtr'|j| jt| jn|j| j|jd | jt dqWt ||jd S) abShow help for the setup script command-line in the form of several lists of command-line options. 'parser' should be a FancyGetopt instance; do not expect it to be returned in the same state, as its option table will be reset to make it generate the correct help text. If 'global_options' is true, lists the global options: --verbose, --dry-run, etc. If 'display_options' is true, lists the "display-only" options: --name, --version, etc. Finally, lists per-command help for every command name or command class in 'commands'. r) gen_usage)rz Global options:rLz*Information display options (just display z!information, ignore any commands)rzOptions for '%s' command:N)distutils.corerrrrrrZ print_help common_usageprintrrrtyperrrmrrrrrrY) rrrrrrrrrMruklassrHrHrIrbs6      zDistribution._show_helpc Csddlm}|jrD|jtdt||jdSd}i}x|jD]}d||dr:rr<r@rBrDrN)r>r:)r<r@rBrD) rrZ help_commandsprint_commandsrrYrrerrVrTr) rrrrZany_display_optionsZis_display_optionoptionrwrxrrHrHrIrs,        z#Distribution.handle_display_optionscCst|dxt|D]l}|jj|}|sB|j|}y |j}Wntk rid}YnXtd|||fqWdS)zZPrint a subset of the list of all commands -- used by 'print_commands()'. :z(no description available)z %-*s %sN)rrWrerr6AttributeError)rrrr max_lengthcmdrr6rHrHrIprint_command_lists    zDistribution.print_command_listcCsddl}|jj}i}x|D]}d||Get a list of (command, description) tuples. The list is divided into "standard commands" (listed in distutils.command.__all__) and "extra commands" (mentioned in self.cmdclass, but not a standard command). The descriptions come from the command class attribute 'description'. rNrz(no description available)) rrurrWrrerrr6r) rrrrrrrrvrr6rHrHrIget_command_lists(      zDistribution.get_command_listcCso|j}t|tsk|dkr*d}dd|jdD}d|krb|jdd||_|S)z9Return a list of packages from which commands are loaded.NrLcSs(g|]}|dkr|jqS)rL)r)rFZpkgrHrHrIrJs z5Distribution.get_command_packages..rzdistutils.commandr)rXrrrinsert)rrZpkgsrHrHrIget_command_packagess    z!Distribution.get_command_packagescCs|jj|}|r|Sx|jD]}d||f}|}yt|tj|}Wntk rww)YnXyt||}Wn+tk rt d|||fYnX||j|<|SWt d|dS)aoReturn the class that implements the Distutils command named by 'command'. First we check the 'cmdclass' dictionary; if the command is mentioned there, we fetch the class object from the dictionary and return it. Otherwise we load the command module ("distutils.command." + command) and fetch the command class from the module. The loaded class is also stored in 'cmdclass' to speed future calls to 'get_command_class()'. Raises DistutilsModuleError if the expected module could not be found, or if that module does not define the expected class. z%s.%sz3invalid command '%s' (no class '%s' in module '%s')zinvalid command '%s'N) rWrer __import__rjr ImportErrorrVrr)rrrurZpkgnameZ module_nameZ klass_namemodulerHrHrIrs(     zDistribution.get_command_classcCs|jj|}| r|rtr6|jd||j|}||}|j||jd|xz|jD]l\}\}}tr}|jd|||fydd|jD}Wntk rg}YnXy |j}Wntk ri}YnXyt|t } ||kr| rt |||t | nf||krG| rGt ||t |n;t ||rit |||nt d|||fWqKtk r} zt | WYdd} ~ XqKXqKWdS)aySet the options for 'command_obj' from 'option_dict'. Basically this means copying elements of a dictionary ('option_dict') to attributes of an instance ('command'). 'command_obj' must be a Command instance. If 'option_dict' is not supplied, uses the standard option dictionary for this command (from 'self.command_options'). Nz# setting options for '%s' command:z %s = %s (from %s)cSsg|]}t|qSrH)r)rForHrHrIrJqs z5Distribution._set_command_options..z1error in %s: command '%s' has no such option '%s')get_command_namergr rrfZboolean_optionsrrrrrRrrmrr) rrrcZ option_dict command_namersourcerZ bool_optsZneg_optZ is_stringryrHrHrIr]s>         z!Distribution._set_command_optionsrcCsddlm}t||s7|}|j|}n |j}|jsP|S|jd|_d|j|<|j||rx$|j D]}|j ||qW|S)aReinitializes a command to the state it was in when first returned by 'get_command_obj()': ie., initialized but not yet finalized. This provides the opportunity to sneak option values in programmatically, overriding or supplementing user-supplied values from the config files and command line. You'll have to re-finalize the command object (by calling 'finalize_options()' or 'ensure_finalized()') before using it for real. 'command' should be a command name (string) or command object. If 'reinit_subcommands' is true, also reinitializes the command's sub-commands, as declared by the 'sub_commands' class attribute (if it has one). See the "install" command for an example. Only reinitializes the sub-commands that actually matter, ie. those whose test predicates return true. Returns the reinitialized command object. r)r) rrrrrZ finalizedZinitialize_optionsrdrZget_sub_commandsreinitialize_command)rrruZreinit_subcommandsrrsubrHrHrIrs      z!Distribution.reinitialize_commandcCstj||dS)N)r )rrrylevelrHrHrIrszDistribution.announcecCs%x|jD]}|j|q WdS)zRun each command that was seen on the setup script command line. Uses the list of commands found and cache of command objects created by 'get_command_obj()'. N)r run_command)rrrrHrHrI run_commandsszDistribution.run_commandscCsZ|jj|rdStjd||j|}|j|jd|j|Nr?)r@NrA)rBNrC)rDNrE))r __module__ __qualname____doc__rrrrQrr|rgrrrrrrrqrrrrrrrrrrr INFOrrrrrrrrrrrrHrHrHrIr s       0: C [ 1 (  ! " &,)        r c@sueZdZdZdOZdddZddZddZddZdd Z d!d"Z d#d$Z d%d&Z d'd(Z d)d*Zd+d,Zd-d.Zd/d0Zd1d2Zd3d4Zd5d6ZeZd7d8Zd9d:Zd;d<Zd=d>Zd?d@ZdAdBZdCdDZdEdFZdGdHZdIdJZdKdLZ dMdNZ!dS)PrSz]Dummy class to hold the distribution meta-data: name, version, author, and so forth. rrr$ author_emailr(maintainer_emailr0r2r6long_descriptionr>r:r"r, contact_emailr< download_urlr@rBrDNcCs|dk r"|jt|nd|_d|_d|_d|_d|_d|_d|_d|_ d|_ d|_ d|_ d|_ d|_d|_d|_d|_d|_dS)N) read_pkg_fileopenrrr$rr(rr0r2r6rr>r:r<r r@rBrD)rrrrHrHrIr|s&                 zDistributionMetadata.__init__cst|fdd}fdd}d}|d|_|d|_|d|_|d |_d |_|d |_d |_|d |_|d |_ dkr|d|_ n d |_ |d|_ |d|_dkr|dj d|_ |d|_|d|_|dkrx|d|_|d|_|d|_nd |_d |_d |_d S)z-Reads the metadata values from a file object.cs|}|dkrdS|S)NUNKNOWNrH)rr)ryrHrI _read_fields  z7DistributionMetadata.read_pkg_file.._read_fieldcs&j|d}|gkr"dS|S)N)Zget_all)rvalues)ryrHrI _read_list$s z6DistributionMetadata.read_pkg_file.._read_listzmetadata-versionrrZsummaryr$Nz author-emailz home-pager2z download-urlr6r>rplatformZ classifierz1.1rBr@rD)rrrr6r$r(rrr0r2r rrr>r:r<rBr@rD)rrfilerrZmetadata_versionrH)ryrIr s:          z"DistributionMetadata.read_pkg_filec Cs?ttjj|dddd}|j|WdQRXdS)z7Write the PKG-INFO file into the release tree. zPKG-INFOwencodingzUTF-8N)r rrrwrite_pkg_file)rrZbase_dirZpkg_inforHrHrIwrite_pkg_infoNs z#DistributionMetadata.write_pkg_infocCsd}|js3|js3|js3|js3|jr9d}|jd||jd|j|jd|j|jd|j|jd|j |jd|j |jd |j |jd |j |jr|jd |jt |j}|jd |d j|j}|rW|jd||j|d|j|j|d|j|j|d|j|j|d|j|j|d|jdS)z9Write the PKG-INFO format data to a file object. z1.0z1.1zMetadata-Version: %s z Name: %s z Version: %s z Summary: %s zHome-page: %s z Author: %s zAuthor-email: %s z License: %s zDownload-URL: %s zDescription: %s rz Keywords: %s ZPlatformZ ClassifierZRequiresZProvidesZ ObsoletesN)r@rBrDr<r rlget_name get_versionget_descriptionget_url get_contactget_contact_email get_licenserget_long_descriptionr get_keywords _write_list get_platformsget_classifiers get_requires get_provides get_obsoletes)rrrrZ long_descr>rHrHrIrUs0 z#DistributionMetadata.write_pkg_filecCs,x%|D]}|jd||fqWdS)Nz%s: %s )rl)rrrrrrrHrHrIr ws z DistributionMetadata._write_listcCs |jp dS)Nr )r)rrrHrHrIr}szDistributionMetadata.get_namecCs |jp dS)Nz0.0.0)r)rrrHrHrIrsz DistributionMetadata.get_versioncCsd|j|jfS)Nz%s-%s)rr)rrrHrHrI get_fullnamesz!DistributionMetadata.get_fullnamecCs |jp dS)Nr )r$)rrrHrHrI get_authorszDistributionMetadata.get_authorcCs |jp dS)Nr )r)rrrHrHrIget_author_emailsz%DistributionMetadata.get_author_emailcCs |jp dS)Nr )r()rrrHrHrIget_maintainersz#DistributionMetadata.get_maintainercCs |jp dS)Nr )r)rrrHrHrIget_maintainer_emailsz)DistributionMetadata.get_maintainer_emailcCs|jp|jpdS)Nr )r(r$)rrrHrHrIrsz DistributionMetadata.get_contactcCs|jp|jpdS)Nr )rr)rrrHrHrIrsz&DistributionMetadata.get_contact_emailcCs |jp dS)Nr )r0)rrrHrHrIrszDistributionMetadata.get_urlcCs |jp dS)Nr )r2)rrrHrHrIrsz DistributionMetadata.get_licensecCs |jp dS)Nr )r6)rrrHrHrIrsz$DistributionMetadata.get_descriptioncCs |jp dS)Nr )r)rrrHrHrIrsz)DistributionMetadata.get_long_descriptioncCs |jp gS)N)r>)rrrHrHrIrsz!DistributionMetadata.get_keywordscCs|jpdgS)Nr )r:)rrrHrHrIr!sz"DistributionMetadata.get_platformscCs |jp gS)N)r<)rrrHrHrIr"sz$DistributionMetadata.get_classifierscCs |jp dS)Nr )r )rrrHrHrIget_download_urlsz%DistributionMetadata.get_download_urlcCs |jp gS)N)rB)rrrHrHrIr#sz!DistributionMetadata.get_requirescCs:ddl}x|D]}|jj|qW||_dS)Nr)distutils.versionpredicateversionpredicateVersionPredicaterB)rrrrr rHrHrI set_requiress  z!DistributionMetadata.set_requirescCs |jp gS)N)r@)rrrHrHrIr$sz!DistributionMetadata.get_providescCsMdd|D}x*|D]"}ddl}|jj|qW||_dS)NcSsg|]}|jqSrH)r)rFr rHrHrIrJs z5DistributionMetadata.set_provides..r)r,r-Zsplit_provisionr@)rrrr rrHrHrI set_providess   z!DistributionMetadata.set_providescCs |jp gS)N)rD)rrrHrHrIr%sz"DistributionMetadata.get_obsoletescCs:ddl}x|D]}|jj|qW||_dS)Nr)r,r-r.rD)rrrrr rHrHrI set_obsoletess  z"DistributionMetadata.set_obsoletes)rrr$rr(rr0r2r6rr>r:r"r,r r2r<r r@rBrD)"rrrrrUr|r rrr rrr&r'r(r)r*rrrrZ get_licencerrrr!r"r+r#r/r$r0r%r1rHrHrHrIrSsJ  4  "                       rScCs2g}x%|D]}|j|ddq W|S)zConvert a 4-tuple 'help_options' list as found in various command classes to the 3-tuple form required by FancyGetopt. r)r)rMZ new_optionsZ help_tuplerHrHrIrs r)rrjrreZemailrrhrZdistutils.errorsZdistutils.fancy_getoptrrZdistutils.utilrrrrr Zdistutils.debugr compilerr rSrrHrHrHrIs(      PK!'((%__pycache__/util.cpython-35.opt-2.pycnu[ ]P @sddlZddlZddlZddlZddlZddlmZddlm Z ddl m Z ddl m Z ddlmZddZd d Zd d Zdad dZddZdddZdaaaddZddZdddddZddZdddddddddZdd Zdddd!d"Zddddd#d$Z Gd%d&d&Z!dS)'N)DistutilsPlatformError)newer)spawn)log)DistutilsByteCompileErrorcCstjdkrd}tjj|}|d)kr:tjStjjd|}tj|t||j}|dkrdS|dkrdStjSd tjkrtjd Stjd kst td  rtjStj \}}}}}|jj d d }|j dd}|j d d}|dddkrTd||fS|dddkr|ddkrd}dt |dd|ddf}ddddi} |d| tj 7}n|dd d!krd||fS|ddd"krd#|||fS|dd$d%krrd%}tjd&tj} | j|} | r| j}nX|dd$d'krddl} ddl} | j| jj|||\}}}d(|||fS)*Nntz bit ()amd64z win-amd64itaniumzwin-ia64_PYTHON_HOST_PLATFORMposixuname/ _-linuxz%s-%ssunosr5solarisz%d.%si32bitl64bitz.%sirixaixz%s-%s.%scygwinz[\d.]+darwinz%s-%s-%s)osnamesysversionfindplatformlenlowerenvironhasattrrreplaceintmaxsizerecompileASCIImatchgroup _osx_supportZdistutils.sysconfigget_platform_osx sysconfigget_config_vars)prefixijlookosnamehostreleaser'machinebitnessrel_remr6 distutilsrF)/opt/alt/python35/lib64/python3.5/util.py get_platformsX #   ( rHcCstjdkr|S|s|S|ddkr=td||ddkr]td||jd}xd|kr|jdqoW|stjStjj|S)Nrrzpath '%s' cannot be absoluterzpath '%s' cannot end with '/'.r#)r$sep ValueErrorsplitremovecurdirpathjoin)pathnamepathsrFrFrG convert_pathos rScCstjdkrTtjj|s4tjj||Stjj||ddSnmtjdkrtjj|\}}|ddkr|dd}tjj||StdtjdS)Nr rrr\z!nothing known about platform '%s')r$r%rOisabsrP splitdriver)Znew_rootrQZdriverOrFrFrG change_roots rWcCs}tr dStjdkrTdtjkrTddl}|jtjdtjd._substz\$([a-zA-Z_][a-zA-Z_0-9]*)zinvalid variable '$%s')r]r1subKeyErrorrK)sr_r`varrFrFrG subst_varss rezerror: cCs|t|S)N)r^)excr:rFrFrGgrok_environment_errorsrgcCs8tjdtjatjdatjdadS)Nz [^\\\'\"%s ]*z'(?:[^'\\]|\\.)*'z"(?:[^"\\]|\\.)*")r1r2string whitespace _wordchars_re _squote_re _dquote_rerFrFrFrG _init_regexsrmcCstdkrt|j}g}d}x|rtj||}|j}|t|kr||j|d|P||tjkr|j|d|||dj }d}n||dkr|d|||dd}|d}n||dkr)t j||}n9||dkrNt j||}nt d|||dkrt d|||j\}}|d|||d|d||d}|jd}|t|kr.|j|Pq.W|S) NrrTr'"z!this can't happen (bad char '%c')z"bad string (mismatched %s quotes?)r)rjrmstripr4endr*appendrhrilstriprkrl RuntimeErrorrKspan)rcZwordsposrDrqZbegrFrFrG split_quoteds@     "  4 rwcCsj|dkrId|j|f}|dddkrI|ddd}tj||sf||dS)Nz%s%rrz,)rr rx)__name__rinfo)funcargsmsgverbosedry_runrFrFrGexecutes  rcCsC|j}|dkrdS|dkr,dStd|fdS)Nyyesttrueon1rnnoffalseoff0rzinvalid truth value %r)rrrrrr)rrrrrr)r+rK)valrFrFrG strtobool0s    rrcCstjrtd|dkr3to0|dk}|sy&ddlm}|d\} } Wn5tk rddlm} d| d} } YnXtj d| |s7| dk rt j | d} nt | d} | j d| j d jtt|d | j d |||||f| jtj| g} |d kre| jd d n|dkr| jd dt| d|tt j| fd| d|nfddlm}xS|D]K}|dddkrq|dkr)|dkrdn|}tjj|d|}ntjj|}|}|r|dt||krytd||f|t|d}|rt jj||}t jj|}|r|st ||rtj d|||s||||qtj!d||qWdS)Nzbyte-compiling is disabled.r)mkstempz.py)mktempz$writing byte-compilation script '%s'wz2from distutils.util import byte_compile files = [ z, z] z byte_compile(files, optimize=%r, force=%r, prefix=%r, base_dir=%r, verbose=%r, dry_run=0, direct=1) rz-Orz-OOrz removing %s)r2rr optimizationz1invalid prefix: filename %r doesn't start with %rzbyte-compiling %s to %sz%skipping byte-compilation of %s to %s)"r&dont_write_bytecoder __debug__tempfiler ImportErrorrrrzr$fdopenopenwriterPmapreprclose executableinsertrrrM py_compiler2 importlibutilcache_from_sourcer*rKrObasenamerdebug)Zpy_filesoptimizeforcer:base_dirr~rZdirectrZ script_fdZ script_namerZscriptcmdr2fileoptcfiledfileZ cfile_baserFrFrG byte_compile@sn"    #        rcCs"|jd}d}|j|S)N rz z )rLrP)headerlinesrJrFrFrG rfc822_escapesrcCsw|s dSddlm}m}Gddd|}|dkrN|d}||d|}|j|dddS) Nr)RefactoringToolget_fixers_from_packagec@s4eZdZddZddZddZdS)z*run_2to3..DistutilsRefactoringToolc_stj||dS)N)rerror)selfr}r|kwrFrFrG log_errorsz4run_2to3..DistutilsRefactoringTool.log_errorcWstj||dS)N)rrz)rr}r|rFrFrG log_messagesz6run_2to3..DistutilsRefactoringTool.log_messagecWstj||dS)N)rr)rr}r|rFrFrG log_debugsz4run_2to3..DistutilsRefactoringTool.log_debugN)ry __module__ __qualname__rrrrFrFrFrGDistutilsRefactoringTools   rz lib2to3.fixesoptionsrT)Zlib2to3.refactorrrZrefactor)files fixer_namesrexplicitrrrrrFrFrGrun_2to3s  rcCssddlm}ddlm}ddlm}|} tj} tj|z| j Wdtj| X| j | j dd<|rx6|j D](} | j } | sq| j| qWg} xw| j D]l} tjj|| }|tjj||tjj|| |dd}|dr| j|qWtdd| Dd |d |d || S) Nr)mkpath) copy_file)FileListupdatercSs+g|]!}|jjdr|qS)z.py)r+endswith).0fnrFrFrG s z$copydir_run_2to3..rrr)Zdistutils.dir_utilrZdistutils.file_utilrZdistutils.filelistrr$getcwdchdirfindallZallfilesr splitlinesrpZprocess_template_linerOrPdirnamerrr)srcdesttemplaterrrrrrZfilelistrNlineZcopiedfilenameZoutnameresrFrFrGcopydir_run_2to3s4    $ rc@s.eZdZdZdZdZddZdS) Mixin2to3NcCst||j|j|jS)N)rrrr)rrrFrFrGr)szMixin2to3.run_2to3)ryrrrrrrrFrFrFrGrs r)"r$r1importlib.utilrr&rhZdistutils.errorsrZdistutils.dep_utilrZdistutils.spawnrrErrrHrSrWrYr]rergrjrkrlrmrwrrrrrrrrFrFrFrGs<      ]      =   PK! command/wininst-9.0.exenu[MZ@ !L!This program cannot be run in DOS mode. $6Bry,ry,ry,6uy,l+Ty,l+dy,UAqy,UW}y,ry-y,l+y,l+sy,l+sy,Richry,PELI  6P@`@R@P.text56 `.rdata*P:@@.dataJ@.rsrc@@@tt /u\@uVt$ Ul$W|$S>toj\VUbYYt_WTQB؃u'jWXQButWh SBjՃ WjYYuh\QBt Wh SBjՃ \Fu[_]3@^U SVW=8QB39uuEVhuVVSu ׉EPK:S. MK SFC*NȋEύDEEU+AuEP@u+MI<\Mt}OGGuSBfu}EP,QBeDEE5PU@u+EPuQ EEMȃ8uFPuEPb E}EP@uM+€<\tGuC PCPsEuPjt"uNssQuP9}tE@PE@ PujUE@ E9EV6M4ȋx@uN+NjAu+΍}OOGuʃMȉMMI+ȍEp@u}+ƀ<\t(uVFu+<7/t}OGGuSBfu<\tPuQBEV8V\]Y hXBsYuHQBuQBEMp_^3[qVtUB3ʼnE3V9Et=PPQVuPhhPBVPi dPBP,QB+WVPh jh,YBP5%CdRBM33^UUB3ʼnEVWEPu hP kEHHHHtnHtWHtH()Cu hpYBxE5RB}Pjh5(Cu Wh5(CjPYBY3tu%u Y()Ctu h{V4tRYBY;N;t +V+щ`C+FM+F+~h[YEEPhpPBttuEjhYBPlPBt\3PPPvPujEtQvWPfE p@u+ƍD8PRYMuE4QB3@9ut99ut49ut/;t+39uh%CUuuJ U^[UQEPhpUBu DC uujh$UB(C UQEPhpUBu DC uujh$UB(C øMB3ĉ$$ NU$ V$-tW-t/HP$hhUDRBVhURBVjhhUDRB3@I0)CtPjhrhUDRBhCD$ hcBP0RB5RB D$PhUhlcBhUv1t(8jjhpUHRBPLRB5HRBSW3WWhpU-(C%CPLRBWWhkUPRB (CÍp@u+ƀ(C\tOGGuSBfÍp@u+U(CSYY$5'C5%C/5RB\Ct8thLcBSU5\CY=%Ch8cBSUh"@5$C5(Ch (CWu hcB/Y=%C=Ct:hbBSUhbBh5(Cֹ@C33XuBFMuҋ#Ƌ#_^[3 t3uSVW|$j +[ 7T$Ku_^[U}uE33AE @L@ |EVPPEuYYEPzEYt΍Q}t'PEPEYt ΍U*}u3E ^ËT$u3t$ D$YU@EHPSKLMԋ+M VpWx OωMč:MЋN(M܋N,MN0MN4M؋N8MN)MMMAGMu+MM#+MM;Ms)MMAGMu֋MUvLBj3YM@mAGAGAGHuE +ʃmAGAGAG}w}tAG}vIG;]s7;}#,@B@tB t @XBM +)M 3AыM JʋU#эKOH M+˃HM+ρHE _V8F<^[ËL$3;tMA;tFPQQQA00PP @P P(P,P0P8P u B Je^8~u63WWWFjEPEEvF3F ftH0Fj3Yuk$<tE@BS˃;N$vE@B133@WWWFMӃ FA0 3E@|Bs'}5EMEr܋U^t BBt B`BF t Ft ]jEP]vU F33 s'}EME r܋UF tXFt0EE]jEP]vU F33s'}$EMEr܋UF tˁHN A Ft ]jEP]vU F33Fths'} EMEr܋UF ^@tXFt ]jEP]v"U F33 F t`FV@EU;vE}tdN t4AE؅t*AI+‹U;v+MQMuQ Ftuuv FE)EE)F@~@ Uf@Ft~} 3ɋEAMN EtQU؅tV@;Q s M؈F@tM;MrFtuuvFE M)MM U F t`f@Ft~} 3ɋEAMN EtQ$U؅tV@;Q(s M؈F@tM;MrFtuuv`FE M)MMy U F t`$FtDs'}K EMEr܋UF;t BLB 33F tV3A #щP,F H03PPPMF A0 s'} EME r܋U˸#ȋϋ#ύFB033 ~ : 3PPPMFA0  } R U~tσ+ s'}& EMEr܋UÃFÃOt/HtHtHu,B8B OOg σ+ s'} EME r܋Uˋ%;t BB 3ۉF@3F@EYE9EvEE9EvE}' uuuE)EE)EE )F@s'}EMEr܋UÃF`Ã@FdÃ~`F\w~dw fhNBB+}uEMEr܋Nh M0BÃfDNpFhFh;F\rFhE0B3fLFpFh~hr卆0NlFLRFTPQjFpPj E܅tE@؎B~fh}EMENT3@NLH#ËɉE;wfsK"}eMME;r̋Fh+fMfLFpFhef}uV}MMEH;rڋ+Fh3DFnEÃOOf}uZ}EMEB;rڋjÃ7}EMEB;rڋjà eY+NdVhN`;vpE@B>0NlFLRFTPQv` FpPj E܅tCE@BNhfUHfTNpFhuFdF`9Fh닋E@BUNlFPRFXPQvdF`DFpPj< E܅tE@B}rY}rPEMuH MHMMHP^8~< E^8~}'EM;AtE}t j7}E+G]+_G_^~Et,t(G S+Ã~PvtAFG0Eԃ > u3ɋV҃@V t jX_^[Ã> uPPPZt$$SPO;Ftj׋Get jF(|$;v+PSv4 F(F,N4W+SQ ~, F 3끋D$t@t@tL$H a03jXË39D$vASWs8T$ ځ;uAt3jZ+ы@;D$r_[US]VW{{u <sjjX9tAG<ȃg8+3ɉG<rG8o8GCYYEtjsSoECsY 3jX_^[]ËD$t@t8 u x<u3@3jXUQQSVW39}u ;^;F ;9~$h0%jv(Ѓ E;uj}9{4t(K$3@jPv(V E;u uv(V$YYɋ}jYh0%uSVCL0 0;r/,%;w%++0FLCP++0FPCl}++0FltK$3@Ps4W E~4p3jX_^[Ul$B3ʼnE\ElUxEE|SE3VutWj Y}<33ɉU9}pvEHDE3B}h]E܍J]UUMur3@MM*MMM;M} EfU&~M UɊUUf E`3fM3ҋ+MBMMMM] )U+˃}]u3ҍHBMut Z#3ۃELE<f ]fu;EEMAE܋U ;&M#ˉM;M}uUM<ȋE3+B;Es(EDE<E+Ӆ~AE@@EE;Er3@UU9Ehu }Eԋ]ЉE M L+fLEz*ME@M3fMJ}tM#;Mt E e>EMM 3ҍHBut J#ʋ3ۅuEM EЉ3M\_^3[C`øSBjUXËD$B+ȋËD$D$ P&Yt$Y%,PB%(PB%\QB%XQB%TQB%PQB%LQB%HQB%DQB%@QB%~u蓌Yj hB<{3u3];;u CVVVVV639u ;tԉ]S)YuC @uwSYYttȃ @)CBA$u)tt@)CB@$tBVVVVV 6M9uu#S蕓EPVu S5ESWE E|zuYËUEPuu uס]ËUEPuu uۡ]ËUEPju u]ËUEPuu uġ]ËUEPju u詡]øBá:CVj^u;}ƣ:CjP*YY*CujV5:CYY*CujX^3ҹB*C  B|j^3ҹBW@)Ct;tu1 BB|_3^=CtW5*C=YËUVuB;r"Bw+QMhN Y VQB^]ËUE}P hE H Y]ËE PQB]ËUEB;r=Bw` +PfY]à PQB]ËUME }` QfY]à PQB]QL$+ȃ YQL$+ȃ YU S39]u?SSSSS"3M Vu;t!;uj?SSSSS2RE;wMWEPSuEPEBuu ;tMxE EPSYY_^[ËUEPuuu uh]̋L$ WVSًt$|$u 't+t/uuatt7uD$[^_tuutu[^D$_Ét~Ѓ3‹t܄t,tt uĉ3҉3t 3uwD$[^_UW}3كE 8t3_ËU S39]u e=SSSSS0M Vu;t!;u6=SSSSS0SE;wMWuEuEBuuPuՏ;tMxE EPSݟYY_^[ËUujuu u5]QL$+#ȋ%;r Y$-U WV&3Y;ua<WWWWW/49} t޹EIuuM;wEuEuu PU_ËUVuEPju h0Az^]ËUVuEPuu h0AW^]ËUVuEPju h@A5^]ËUVuEPuu h@A^]ËUSVuW3;uo;WWWWW. BF t7VsVV輙P}F;t PY~~ _^[]j h0BsM3u3;;u:WWWWWx. F @t ~ EsVY}V*YEEՋuVHYËU SVW39} t$9}tu;ur:WWWWW-3_^[ËM;tڃ3u 9Ew͋} }F M}tFEEN t/Ft(;rWu6)~> +}O;]rOt VYu}}t 3ҋu+WuV*YPj ta;wM+;rP})EVP臜YYt)EFKEEAEN +3u N Ej hPB0q39u t)9ut$39u;u 9VVVVV,3>qu%Yuuuu u=EEEudYËUEtM ]ËUEt8uPY]ËUSVWuM3E苸]ut>~4>E}E}YYM\rҍCP|YueE:4EF+ƍDPV{ t3PPPPP*V}E:tEF+ƍDPV{t3PPPPP)VX}E}Yr}_^[tE`pEjYËUSVWuM3{E䋸w8uE v0|6E|uYYMÃM\uuՍCP{YuthE E:wF+ƍDPVz t3PPPPP)V|E:7F+ƍDPVzt3PPPPP(VN|MYu}_^[tE`pEjYËU$SVWuM3rE܋}]t3{43E{E}YYM|rҍF8EE ]s0{3E{EYYMM|u{{Ǎ|q{|b{|S{PEz؃WhVSeF] )uEESvj [0A~wII@;r[ËUQSV3҉U9Ut597vj [0F ~w7NN@;r.;1s(NVtj [0ENuE)^[ËUQSYVWًI tptIHt$F3;ulv3;Z QUThEv3;8/UT#%E F3;j Y;[QXTMjY+HHt4HHtHuu sF3;;;tHF3;;ȋF;w=ml;}3j^;@3;A;FF=|=~ ~03jdYujkdvm9ZAHHt\Ht,v3;muFjv ypujZM .Yu3u SV9}tAjurtsE 98tlu E PSVjuH5CW뾋v3;| UT8v3;|~[/WWWWW"3Uv3;|̓ ȍF/pteHtFHt&Hu)*.39F ؋EF3;yujdYu3u SV9}tjW F3;@7u3Bv3; UE O3@_^[ËU B3ʼnEE SVu3+WtHtE}  QBu QBlfPSfUfPfBfUfP fUfPfUfPffES3WfEEPSMfUщE;=;tPGY;t E;tZuSWEPjUH~!uM>vEECHuY3@e_^[M3Êt]u;t3҉UAB8tMȃdN'AHt~MtOauQ訾YYt;vG8 G sMHtHtHt HuB<b5Em'HtHt EHhĹBW込YYuhBW証YYu}pp;]<'tEuPǽYYt;vG8 G uGHtHtHtHAUaNEd@hHt%HHtHHrYyEx E;uPݼYYt;vG8  ;uP薼YYt;vG8 G uaHtHt ES.HtHt EMHtHt rEIuUuSut}}3U ESu3ۍM]EE;u+)SSSSSP8]tE`p3PW} ;u+)SSSSS8]tE`p3Vu;E;u EE};:ty<%tAMQP)YYt3A9MvF8tpU EMMEFM/U;twF3>#u@FPuEPEPMtBF9]w9]vE+}8]t\MapSME9]u 9]w("&9]vEq(SSSSS8]tE`p3^_[ËUujuuu uA]ËUjjuuu u"]ËUjuuuu u]j hpB_3ۉ]3};;u'SSSSST3y3u ;;t38;tHE;u 'ʉ]8u s'jEPhBJ PuVW9EE E_uYËUj@u u* ]ËUVW}3;u&j_VVVVV8$huu ;t3&_^]ËU S39] u&SSSSS5ME;tVEEEPSu EPEEBJyMxE EPSVYY^[ËUEPuu uj]ËUEPjuu u]ËUEPuuu u]ËUEPjuuu u1]ËUEPuuuu u]ËUEPjuu uA]ËUEPuuu u"]ËUE PuYY]ËUE PuYY]ËUEPu uu ]ËUEPu u ]ËUu ME~EPhueI MH%}tMapËU= CuE BA%]ju~YY]ËUu ME~EPjuH MH}tMapËU= CuE BA]juYY]ËUu ME~EPjucH MH}tMapËU= CuE BA]juYY]ËUu ME~EPjuG MH}tMapËU= CuE BA]juYY]ËUu ME~EPhubG MH%}tMapËU= CuE BA%]ju~YY]ËUu ME~EPjuF MH}tMapËU= CuE BA]juYY]ËUu ME~EPju`F MH}tMapËU= CuE BA]juYY]ËUu ME~EPhuE MH%}tMapËU= CuE BA%]ju~YY]ËUu M E~EPhWuXE MH%W}tMapËU= CuE BA%W]ju~YY]ËUu ME~EPhuD MH%}tMapËU= CuE BA%]ju~YY]ËUu ME~EPj uOD MH }tMapËU= CuE BA ]juYY]ËU}]ËUE]ËUu u9YYu}_t]3@]ËUuoYu}_t]3@]ËUu u~YYu}_t]3@]ËUEPYu}_t]3@]̋V;ttSN@Au[^̋UQUW;vnM  SEVIu;w"$SVU~u ;vM U;t#t+IN@uM U+;w^[_]̋US]Vu u't#jjjjjn^[]W}v}u$jjjjj=_^[]ÃrNE]u+3@wEPWS vËWSU~ UϋtVSU~ U΋\VWU~U΋Dd$;v];sWSU~;wI];]w WSU~+u;v WVU;w2Ut#+JUU U U@u;uu;s+u;vWVUt;rI+uE;vWVUtEUʋ++;|+;sM􉄍xAM;s9u}];sM􉜍xAM;s]}uj}EE9xUEڋ;jhBS]uu oYu u SY=`*C3}jCY}S=DYE;;5P*CwIVSPI t]5VNPYE;t'CH;rPSuSCESPD9}uH;u3Fu u VW5( CQBE;t CH;rPSuUSuCE.}u1uFu VSj5( CQBu ]j2AYË}9=Ct,VVYF9}ulYj=YËUV tЃ;ur^]ËUVu3utу;u r^]ËUMV3;uVVVVV jX C;tډ3^]ËUMV3;uXVVVVV jX C;tډ3^]ËU=*Cth*CaYt u*CY蘷hRBhRB)YYuBh%lARB$RB=*CYth*C Yt jjj*C3]jhBMjM=Ye3C9CCEC} 5|*C4Y}؅tx5x*C3Yu܉}uu;rW39t;rJ6335|*C35x*C3 9}u9Et}}؉Eu܋}hRBRBYhRBRBYE}u(Cjc;Yu3C}tjJ;YLËUjju ]ËUjju ]jjj jjj ËV2VTPVV?VVZVXV蜷V腷hN@&2$B^ËU=CuOuMhYY]øMZf9@u6<@@PEu% f9@ut@v39@3jXhBtK3uEPQBj_}MZf9@u8<@@PEu' f9@ut@v39@Mu3CS{8YujY5ujY)]ma}jgYQBp*CCJ}jAY}j 0YS`Y;tPY0]tMj YQPVh@蓎E9uuP}5E MPQ YYËeE܉E}uPEE3@ËeEHJ}xU}uu }MfofoNfoV fo^0ffOfW f_0fof@fonPfov`fo~pfg@foPfw`fpIuu}]U}u]] ÙȋE3+ʃ3+ʙ3+3+ uJu΃M;t+VSP' EMtw]U +щU+ى]u}MES;u5كMu }MMMU UE+EPRQL Eu }MʃE]u}]j hBHef(E#E=t =t33@ËeeEEHËU3SEEESX5 PZ+tQ3E]UMUE[Et\t3@3[l*C3U}}M f$ffGfG fG0fG@fGPfG`fGpIuЋ}]U}E3+3+u-uEFV苼YiE<+t<0|<9F3ۋuj0YÀ>:u8FVVYk<E<9F<0}>:uFV6YE<9F<0}9]t]E;t#jVj@wztSSSSSGun0uX0@ËU e} SVW}%yH@Eu jd[ult B BE +_jd_FjEÙU}+ЋڍGimÍ%[Ek+E;Ut}}u jd[ult E B E B;~D?%yH@u jd[ult 4B4Buk<M k<M$iM(}u5B B=BkEP5B BYt3PPPPP2EiByB\& B\&9B| )BB=B_^[ËU VE3PuYt VVVVV9uu3XWS3C;Bu ;B95 C C CP CP CPf95 Cu CVP CPRS  CPVVRV CSWr C l C$Pp CPn CPf95d Cuh CVPj CPwSj CPVVwVf CV$TkjXjYE ]}jXE EVVVVVQRSSjYEVVVVVuwSVjYH BB;ȋW};|";;~;}[^;|;;~;}3Gk<Gk<i;u 3;B 3;BjhXB<395 Cu*js,Yu95 Cu  CE<jQ+YjhxB<j.,YeE<j+Yj hBQ<j+Ye}EE Ek<j*YËUVuW3};uj^WWWWW0 j$hVۯE ;tˋ@ME|@Ws j^0뼃| &AwSWh3PQnȃF+yjd}M؋Ǚ_jh+؋EDAڙRP+jQSRPl}U}M|sGEǀ3UȁEyIAu jdYuEluAU2EȁyIAu jdYuEluEEjSuFWfjFhRP贿U}BuBF3A9B} A9|QIN+jF E Sp0 jY3ShuWVjFhRP>SUj3[_^ËUVCtuVYY#^]ËUEV3;uVVVVV!jX B3^]ËUEV3;u\VVVVVjX B3^]ËUEV3;u#VVVVVjX B3^]ËUE S3V;t:9]v:;tW};t E;t@t;j^SSSSS0WU9]tj^SSSSS0764B6?F@Y9] u3;Evj"X6uu 8D _^[]øBøBøBøBËUE3;͈BtA-rHwj X]Ë͌B]DjY;#] uBà uBà ËUVMQY0^]ËUm uj X]M3]ËUVu3;uPPPPPjX p3^]ËU uj X]bM3]ËUVu3;uPPPPPjX 33^]WVS3D$ }GT$ڃD$T$D$ }GT$ڃD$T$ uL$D$3؋D$A؋L$T$D$ ud$ȋD$r;T$wr;D$vN3ҋOu؃[^_SW3D$ }GT$ ڃD$T$ D$ }T$ڃD$T$ uL$D$3D$ 3OyNS؋L$T$D$ ud$d$r;T$wr;D$ v+D$T$+D$ T$Oy؃_[UQSVu3ۉ];uj^SSSSS0)j$hVE ;tˋ@W} ]j^0̋WiҀyʍF3;|+B;|+ȸB;|B+EVQBFi9]uBF3B9G} B9|3JV+QF E j_j<^ V_Fiȋ_Fk<+ȉ3^[ËV:uo 3^Ã~Duj$@YFDt܋FD^ËUVtuV|YY#^]SVD$ uL$D$3؋D$ Aȋ\$T$D$ ud$ȋD$r;T$wr;D$ vN3ҋ^[-t"t t Ht3øøøøËVWh3FWPr3ȋ~~~  ~B F+ο@Ou@Nu_^ËUB3ʼnESWPvQB3@;rƅ t.;w+@P j R详 CCujv vPWPjj躽3SvWPWPWv S蛻DSvWPWPhv Sv$3EtLtL Ƅ@;rVDž3)ЍZ w Lр wL р A;r‹M_3[Ij hB1$BGptltwhuj Y1j Yewhu;5(Bt6tVQBuBtV葭Y(BGh5(BuVQBE뎋uj YËUS3SM Cu CQB8]tEMapE,BD;FG;v}FF>uыuE}urlj{CgjC C4BZf1Af0A@@JuL@;vFF~4C@IuCC Ss3ȋ {95 CXM_^3[DËUjM蓧Ext}@tMapÀ}tE`p3jhBC.Mj}_hu7E;CWh :Y؅Fwh#SuzYYEuvhQBuFh=BtP/Y^hS=QBFp$Bj @YeC CC CC C3E}fLCf E C@3E=} L B@3E=}(B@5(BQBu(B=BtPvY(BSE0j Y%u BtS@YeE,Ã=*CujVY*C3ád*Cøh*CËUSVu3W;to= Cth;t^9uZ;t9uP軨YY;t9uP蚨"YY肨wYY;tD9u@-PV+PC+P5*=Bt9uP\7YY~PE(Bt;t 9uPާY9_tG;t 9uPǧYMuV踧Y_^[]ËUSV5QBW}W֋tP֋tP֋tP֋tP֍_PE{(Bt tPփ{t CtPփMu֋P_^[]ËUW}SV5QBW֋tP֋tP֋tP֋tP֍_PE{(Bt tPփ{t CtPփMu֋P^[_]ËVtt;tWj6Y PY_^Åt7t3V0;t(W8YtV>Yu0BtV3Y^3j hB)$BFpt"~ltpluj Y)j YeFl=BiEEj YuËUVWdHpjZBUt:3;t;t'tVVVVVHp $B_^]áBH  CH  C B B <C C@CjhBw(uj YeFtPQBuF=BtP认YE[>tCuW~uQh\Bud. 3t VVVVV(;t 3ffGfG`;t0dGV{0YP;s,VhYYVXYYLlVPYYlPSP CTlPWh >t P;r L$UB@PVWX蟝t3VVVVV&39\tjS\m 9`tjT`O hudu- t VVVVVh3M_^3[2ËUB3ʼnESW uhPPPhxPSu3E0sHxP\YYxxP.PtW-YYptCHM\D klX1jPd

U]jhhBR3ۉ]}v9SSSSS3,SucNp]jh'YY};j YENl]uM PYE;9] th(Bu YYt  Cj @ YE^lWYFpu2$Bu);BljB Ph Cۊ me-}܋u3j YËuj YW`WYYE E<ËufpËUuQBu]6]ËUV5B5QBօt!BtP5BЅt'tBVQBu VYthdBP$QBtuЉEE^]jYËUV5B5QBօt!BtP5BЅt'tBVQBu VjYthBP$QBtuЉEE^]QBUu5BQB]BËV5BQBu5 CEYV5BQB^ËUu u5 CY]BtP5$ CYЃ BBtPQB Bj hB$tBVQBuVnYEuF\(B3G~t$hdBP$QBӉhBuӉ~pƆCƆKCFhBj _YevhQBE>j >Y}E FluBFlvl2YE3Guj Yj YËVWt~t WW&YHB|ܾ(B_t ~uPӃHB|^[ËUE4(BQB]t$jRBhYj hB 3G}39( Cuj hYYu4(B9tnj:Y;u 3Qj YY]9u,hW蒅YYuWY ] >WYE Ej YËUEV4(B>uP"YujY6QB^]Ã=( Cu3á`*C#P*CËUEHVv3VVVVVkjX395( Cuף B3^]ËUEV3;uVVVVV$jX95( Ctۋ B3^]ËUh@j5( CQBL*Cu]ËM% C%H*CT*C3 P*CX*C@]ËU H*CL*CkU+P r ;r3]ËUMAVu W+y iDMIMS1UVUU] utJ?vj?ZK;KuB sL!\D u#M!JL! uM!Y] S[MMZU ZRSMJ?vj?Z]]+u]j?u K^;vMJM;v;t^M q;qu; s!tDLu!M!1K!LuM!qM qINM qINu ]}u;M ыYN^qNqN;Nu`LML s%}uʻM DD )}uJM YJꍄ ED0E C \*C5 RBh@H SQ֋ \*C C P C@ \*C C@HC CHyCu ` CxueSjp ֡ Cpj5( C|QB H*C CkL*C+ȍLQHQPE H*C; CvmL*CT*CE C=\*C[_^áX*CV5H*CW3;u4kP5L*CW5( CQB;u3xX*C5H*CL*Ck5L*ChAj5( CQBF;tjh hWRBF ;uvW5( C|QB뛃N>~H*CF_^ËUQQMASVqW3C}i0Dj?EZ@@Jujhy hWRBupU;wC+ GAH@PǀIuˋUEO HAJ HAdD3GFCENCu x!P_^[ËU MASVuW} +Q iDMOI;|9M]UE;;MIM?vj?YM_;_uC sML!\D u&M!ML! uM!YO_YOyM+M}}M OL1?vj?_]][Y]YKYKY;YuWLML s}uϻM DD }uOM YO U MD2LU FBD2<38/] )uNK\3uN] K?vj?^EuN?vj?^O;OuB st!\Du#M!NL! uM!Y] OwqwOquuuN?vj?^M yK{YKYK;KuWLML s}uοM 9DD }uNM yN ED3@_^[á C \*Ch@H hQ RB \*C C P C@ \*C C@HC CHyCu ` CxuH=H*C~?pj5( C|QB H*C CkL*C+ȍLQHQP; H*C% CËUL*C8S3;u9H*CVWỦ]kB;gJ MDM܋JM]]]uj@39]Y]؉]]9]U :tIEH?~j?X19x;rClE}93e_C}ԉ];M;tM;d;Vȁ ;1;tˋ];u;I?~j?Y;M9HEEԋ@;u}t! } E E N E EE9xM;9F@uȋU3ۋE;FE;EEeE} uE;u_E;BuWEE;H*CU3_^[j6j2j.j*j&j"jjjjjj jjjX뾋UV395( Cu3`*Cu.E=v]VVVVVˣP*C3@]W};tBuBw WYuVVVVV襾 =P*C`*C3@ 3_^]ËUH*CMkL*CMSI VW} M 3U T*CS;#U# u ];r;uL*CS;#U# u ];r;u[ {u ];r;u1L*C {u ];r;u@؉]u3 SYKC8tT*CCUt|D#M# u)eHD9#U# uEUiDMLD3#u#Mj _G}MT +MN?M~j?^;J;Ju\ }&M|8Ӊ]#\D\Du3M]! ,OM|8!]u ]M!K]}JzyJzyM yJzQJQJ;Ju^LM L}#} u ;οM |D)} u N {MN 7Mt LMuэN L2uy>u; CuM; \*Cu% CMB_^[hPAd5D$l$l$+SVWB1E3PeuEEEEdËMd Y__^[]Q̋t O3 0AuO G3 01űUS] Vs35BWEE{t N3 8tN F3 8tE@fMUS[ EMt_I[LDEEt`E|@GE؃u΀}t$t N3 8itN V3 :YtE_^[]EɋM9csmu)=@*Ct h@*ChtUjR@*CM [`E 9X thBWӋ^`E MH t N3 8sN V3 :sEH_9S RhBW `UQQS]VW33};HBt G}rwj,Y4jYu =BAhpBS CW6 t VVVVV脷h CVj CPBu&hXBhV t3PPPPP@V @Y 9M u H9U t @ff;u9M u8]tMap8]tE`p3^[ËUju u2 ]ËUEVW|Y;8)CsQ<@)C<u5=BS] utHtHuSjSjSj\PB3[` h _^]ËUMS3;VW|[; 8)CsS<@)C@t58t0=Bu+tItIuSjSjSj\PB 3ڷ _^[]ËUEuƷ 諷 ]V3;|";8)Csȃ @)C@u$腷0kVVVVV ^]j hBK}4@)CE39^u6j Y]9^uhF PdYYu]FE09]t@)CD8 PQBE 3ۋ}j sYËUEȃ @)CD PQB]jh0BM3}j ]Yubj Y}}؃@<4@)Cu@)C;Fu\~u9j Y3C]~uhF PbYYu]Fe(}u^ SQBFtSQB@낋}؋uj pYÃ}uF+4@)Cu}uyG+j@j 3YYEta @)C8)C ;s@@ `@E}σ@)CDWYuME EEj Yj hXB3}2E t E @tˀE tuQB;u%uN@ uNhF P_\YYt7F N@Cg58)CpQB33@ËeEgËVW@)C>t1t G PRB@;r6Uc&Y@*C|_^ËUVuV9 PYYt|m ;u3m@;u`3@CF uNSW<C?u SYuFjFXFF ?~>^^N 3_@[3^]ËU}t'Vu F tV7f f&fY^]A @tyt$Ix  QPYYu ËUVMEM >t} ^]ËUG @SVt2u,E+M}C>ul8*uϰ?d}^[]ËUE@]ËUEAQ]ËUEf@]ËUxB3ʼnES] Vu3W}u]u5説3PPPPP4t `p F @u^V YBttȃ @)CA$uttȃ@)C@$g3;] C , If90t@@;u+(;u PBI8t@;u+\@t2t ƅ-t ƅ+ tƅ Dž++ uSj 6 <YtuWSj0 tf~bPjEPFPF蹷u(9t MYuPY|tWSj H tqVYtt `pM_^3[cOÐ !A!AQAAA AL Az!AUEV3;unVVVVV@^]j hBM3u3} ;;u ,VVVVV踔39u;tԉ} W:`YuG @uwWjYttȃ @)CBA$u)tt@)CB@$t蒠VVVVVM9uu"WuuuWUEWV)E Eu _YËUuuu uhA]ËUuuu uhA]ËUuuu uhA]ËUuju uhAk]ËUuju uhAL]ËUuju uhA-]jhBu3ۉ]jY]j_};=:C}W*C9tD@ tPdYtE|(*C PRB*C4|SY*CGE E1jYËUSVuF Ȁ3ۀu@t9FW>+~,WPV#YPc. ;uF yF N _Ff^[]ËUVuu V5Y/V|YtF @tVPYY3^]jhB&3}}jY}3u;5:C*C98t^@ tVPV]]YY3BU*CH t/9UuPJYtE9}utP/Yu E܉}F3uࡌ*C4Vf]YYE}EtEjYj hBL39uu V Y'ui\YuuYEE EUu\YjYËUQVu VaE F YuӜ N /@t 踜"S3ۨt^NF F F ^] u,Z ;t Z@;u u ^YuVhYF WF>HN+I;N~WPu + EM F yM tt@)CB@ tjSSQ#ƒt%FM3GWEPu u+ E9}t N E%_[^ËU9EuFjP;M u+2YYu3]ËE6u 7C Q tՉ&3@]ËUE]ËUEPwEYu߃]Jx A R9YËU}t]A]ËUSU؃tPxYu[]ËUB3ʼnEMEV3W} |dTDž$^0x;u TVVVVV5;t@ @SuzPYBttȃ @)CA$u&ttȃ@)C@$t ϙVVVVV[uJƅct<kdPHwYt0tVVtYPkYYGPwYu <%1 8G 3@ƅ/XLlƅaƅ`ƅjƅSƅbƅsƅk(GPuYtlLk DЉlN*tpFItLutkO6uG84u(48m3u G82u\dtWitRotMxtHXuAj9ht(lt wtS"G8ltks ksSjHu032ۉD8su]u ]FE f/^F<-uBt>]t7F:sŠ:w"*ЋσdzDGJu2ȊЋD<]uHDx+u'lutdtCxj0^9xxdtxf>HcGH`<%u G8%utGxH;ulPYt!tGH;uGtxu?%uDHxnu8 *dxYYVSVPVSy0u T?Yxu* ntJct{tdtOYdtx DT@t l, quAct st{u2 @D4 ocdg~Bit!nxqt jd_x-PƅaM3ۃx-u \-C x+uldtx@ulxklltfx\X 0P|PCS\( e dtpxPaYub:xlldt\xb 0P|PCS\(h  xklltf\xX 0P|PCS\( ^ dtixP`YuX_xet xEIll5\e0P|PCS\(|  dtx-u,\-0P|PCS6  x+u/llu!ldtnxxklltf\xX 0P|PCS\( dtxP6_YudtxXYYqL\<QPDkHP5tB賠YЃulDž@r~ƅjdtVxPMYYct4@tllBtxctLsu |  u4{b3ҋȃBL 3ϋq4)j$P"YttX%PDž?$PPfffCCǃpHH}t3;xYcqX Gr~ƅjF>^uFƅbj EjP, >]u ]FE r/jF<-uHtD]t=F:sŠ:w(*ЋσdzDGJu苽2ȊЋD<]uDTx+u,lu t ƅsdtxx0tdtxxPXYoux88<8k 1xPXYtbx8x8YxX@DЉ8tlt5dtxDdtxYYa8ktfTcFTn<%u F8%udt4FxT;P Yt%tFT;txu>%TxnBdxYYr~3fz `dxYYDžAyj t P3f PWSWP t tjVhBҶ F> t>=upF> tjhBV u M AjhBV u M !jhBV uM F> t8thSSSSS3\huEu uPGt3 ECMH MXXXH_^[jh`BH33}jY]3u;5:C*C9t[@ uHuAFwFPY*C4VW'YY*C@ t PV'YYF둋}hj8$Y *C*C9tIh PYY*Cu4Y*C PQB*C<}_ ;tg ___OE nË}j؍YSVWT$D$L$URPQQh4dAd5B3ĉD$d%D$0XL$,3p t;T$4t;v.4v\ H {uhCjC|d_^[ËL$At3D$H3!Uhp pp> ]D$T$UL$)qqq( ]UVWS33333[_^]ËjǴ33333USVWjjhdAQ_^[]Ul$RQt$ ]U S39] ueSSSSS7YNE;tVuEuEu EPEEBKMxE EPSWYY^[ËUuju um]ËU V39u ueVVVVVX'uEuEu EBPuuU^ËUu juhA]ËUuu uhAu]ËUu juhAY]ËUuu uhA<]ËU S39]u JdSSSSSWVu W};t!;udSSSSSWjE;w}uEuEBuuPuUE;t4;|"MxEEPSYYtE39]\>HH_^[ËUujuu uhA}]ËUuuuu uhA}]ËUS39]u.cSSSSSV[Vu;t9] w c0uuuu VhA;}ub"SSSSS^V^[]ËUujuu u`]ËUQS39]u bSSSSSVVuW9]u;u9] u3;t} ;wCb3buuu;}v-8E@PVhAuLb8"uea8\WVhAE\>u}ua8"u/aM#;}"ua"SSSSS;U_^[ËUujuuu u]ËUujuu uhA}]ËUuuuu uhA}]ËUVuW3;u aWWWWWTF @t F F u VؚYFvvV)YPR F;F uOVYt.VYt"VV<@)C׾YYB@$=u Fd.=u Fd=u Fd=uFdvdjY~d`QӋEYF`[_^ËUcsm9Eu u PYY]3]ËUECCCC]jhB莒3W2Y}9}uC5CyEEC5CxEEY;t txE 9}u33WӀYÃ}tuUY3@GUE BV9Ptk u ;rk M^;s9Pt3]5CdxYzdz`jh B蝑eu ]j_;tt y(B9~\u'5B苝YF\g5BWP v\YDPM %H =Bk ~\; 9Xtj\Ye;tu>=Cu5jh&pAQB3A;u CX5CvYE;t,VvC5CvYE;t VuCYE}uUB]jd~YÃt.t) t$~~W3PPPPP K貏j h@B`3}}؋] LtjY+t"+t+td+uDw}؅uaCC`w\ZÃt<t+HtV3PPPPPqJ뮾CCCC CCEPQuEY3}9EujB9EtP/~Y3Et tuO`MԉG`u@OdMGdu. BM܋ BB9M}Mk W\DEtEuwdSUY]}؃}tj|YSUYt tuEԉG`uEЉGd3ËUEC]ËUQVW5CAtE3Y;uUj_VVVVV8 IS0;hB QBE;uEUj_VVVVV8HhBP$QB;u/U==Yt1jS=YYtNVSPE t3PPPPPC>u5C%C't*C3Y[_^5C%CUEC]ËUQMS3VU 9Et ]EE>"u39E"FE<tBU PF Yt} t M E FU Mt2}u t utBe>< t< uFN>}t EE3C3FA>\t>"u&u}t F8"u 339EEtIt\BuU tU}u< tK< tGt=Pt#(Yt M E FM E  YtFU FVtBU ME^[t ËU S3VW9*CuZhCVSCPBp*C5C;tE8uuUEPSS} E =?sJMsB;r6P_Y;t)UEPWV}E HC5C3_^[ËUC SV5PBW33;u.֋;t C#gE;t9] w9] u;tWu+Y;t9W@Y9] t*;E vj"X"Wu u t SSSSSB<3_^[]ËUQVW3;uIj^WWWWW0}=wE;;t89} tu YE;tUPmFjV ;uI I)uVPX t WWWWW;E;t03_^jhB\339u;u@IVVVVV<3>Wu_YY;tjpYuuYEE E4joYj hBـj~pY3ۉ]3};;uHj^0SSSSS=<uwM ;t 9]w ;u 9]u3@3;t;tuJY;t=VY@9]t.;Ev E"#Vuu  ;t SSSSS]:]E E\jnYjhBjoY3u3];;uGj_8VVVVVe;}3E ;t039u;tuYE;tXPJGjWæ ;uxG mGE*uWP2 ;t VVVVV9E ;t8uE EvjmYËULB3ʼnES3VuW]ԉ]]]؉]܉u]9^F9u PF0hPESP.j1jWEfjWE[jWEPjhEA$E9]|9]s;k9]b9]YEԉ3M܈@=|EPvQB/}%EE~-8]t(E:tx M G;~@@8XuۋESSvPhu܉EjS MESvWQW@PhvS$ESvWPEW@PhvS$`E}3҃}fU؉Mč_ZMMȈ~S8]tNMM:tBI;ʉM'HMEfAAM̋M 9M~MAAM8YuhQPSjPWDEjQP2$;tKPQBu@-P+P+PEEEĉEEȉEЉuvYmuiuauYuQ3ۃCˍ;tPQBdžBdžPBdžBdž3M_^3[Wuuuju օ5PBSSWuu u֋ȉM;E t)9];MuuWuu u;~Ej3Xr9D =w;tjPeY;t 3;tAuVWuu uPBt"SS9]uSSuuuVSu QBEVYuEYY]]9]u@E9] u@E u耟YEu3!;E SSMQuPu 螟E;tԋ5PBSSuPu u։E;u3~=w8=w;tPOY;t 3;tuSWf uWuuu u։E;u3%uEuPWu uu#uWwYuuuuu uPB9]t uaYE;t 9EtPNYƍe_^[M3ËUuMu(Mu$u uuuuu ( }tMapËUQQB3ʼnECSV3W;u:EP3FVhBVPBt5C4uESP Pj?uESP Pj@uSEP PjAuESPxP PjBuESP] PjCuESPE Pj(uESP- Pj)uESPP PjuESP Pj uESP PhuESP Ph ]SEjPP _[ËUVuvvv v}vuvm6fv ^v$Vv(Nv,Fv0>v46v.v8&v<@v@vD vHvLvPvTvXv\v`vdvhvlvpvtvxv|@wlaVK@5*,^]ËUSVW} Bt@hj<{YYu3@EtV+VYYdž;t PQB73_^[]28tSV<0|<9 ,0A8u^[<;up8uUVut5; CtPPYF;CtP>Yv;5CtV,Y^]ËUS]V3W]u9su9suuuE C:j0j2zYY};u3@wj Yjy3YE;u uYщ09sjyYE;u3FuuYY0u{>VjWEjPPEFPjWEjP; EFPjWEEjP#< Et VY뎋E0|9 0@8u7;u~>u CE CH CuHE3AEt5QBtP֋tPօuYYEEE3_^[28tSV<0|<9 ,0A8u^[<;up8uUVut~F ;CtP YF;CtPYF; CtPYF;$CtPYF;(CtPYF ;,CtPYv$;50CtVY^]ËUSVuW3}u}9~u9~u}} C6j0jwYY;u3@ujJwYE;u Suj Y CEu IK@MC3@39}tM;tPQB;t#PQBuYYEE3_^[3QHl; Bt $BHpu><CËUES3VW;t} ;w0j^0SSSSS#E Ù+‹E<7E0YYu M9 }Nu ^;] ~_^3Ʌ[]ÁNPBFFËU B3ʼnEVtS>tNhBV+YYt=hBVYYujEPj wPBt/uVYM3^OjEPhwPBu3׍EhBPYYuQB뻋U3fMf;Bt @@r3@]3]ËV3#,aB<w ,A<wtЊ u׋^3 BA|Z~aw@ËU|B3ʼnEVW}OׁƜjxEPF%PWPBu!F@2EPv1YYuWYt N~~FЃM_3^U|B3ʼnEVjxEPE%j PPBu3.U9Et} t6WVrY;_t3@M3^ËU|B3ʼnESVW}MׁƜyPBjxEPF%PWӅu f3@bEPvYYjxEPF%PWӅtEP6YYu N~RFuOF t,PEP6z u6N~qY;F u!~VuWYt V~N#;jxEPF%PWӅEP6AY3Yu/NF9^t FG9^ t;6qY;F u.j9^u49^ t/EP6YYuSWYYtN9^u~FЃM_^3[U|B3ʼnEVW}#LׁƜjxEPF%PWPBu!F@[EP6TYYu 9Fu0j~u0~ t*EP6.YYuPW$YYt N~~FЃM_3^voYj@hӜAFPBFuf6ov@Fof@~YYFtjXjhߝAF PBFt tuf6do@YFtjXjhAF PBFufËUSVWJ]Ɯu NC@~t8tWjhB ftS8tNt 8tS~Vj@hB} tb?t ?tPI?t0?t+WvnYj@hӜAFPBFufFPBFF~˃#ˋn}PQBjvPBE tfNffNfHfx]tm=PBf9u%hBj@Sk t"3PPPPPj@Shvׅt,j@C@Phvׅtj jSu;3@3_^[]Åt 3ɅL  +t 3ɅL ff;t5+t3҅T…uFI+t3ɅL 3Ë;to+t3҅T…uVFQ+t3҅T…u9FQ+t3҅T…uFI+t3ɅL 3ËVW^;tx+t3DqB+t3DqB+t3DqB+t 3D3A;BtyB+t3DqB+t3DhqB+t3DIqB+t 3D3"A;BtyB+t3Dq B +t3Dq B +t3Dq B +t 3D3A ;B tyB +t3Dqq B +t3DRqB+t3D3qB+t 3D3 A;BtyB+t3DqB+t3DqB+t3DqB+t 3D3A;BtyB+t3D[qB+t3D<qB+t3DqB+t 3D3A;BtyB+t3DqB+t3DqB+t3DqB+t 3D3kA;BtyB+t3DEqB+t3D&qB+t3DqB+t 3D3 ׃$(AA;BtzBq+t3DqB+t3DtqB+t3DUqB+t 3D3.A;BtyB+t3DqB+t3DqB+t3DqB+t 3D3A;BtyB+t3D}qB+t3D^qB+t3D?qB+t 3D3A;BtyB+t3DqB+t3DqB+t3DqB+t 3D3A;BtyB+t3DgqB+t3DHqB+t3D)qB+t 3D3A;BtyB+t3DqB+t3DqB+t3DqB+t 3D3u{A;BtkB+t3DuYqB+t3Du>qB+t3Du#AJ+t3ɅL 3u3_^ËA;BtmB+t3DuqB+t3DuqB+t3DuqB+t 3D3uA;BtzBq+t3D[qB+t3D<qB+t3DqB+t 3D3A;BtyB+t3DqB+t3DqB+t3DqB+t 3D3kA;BtyB+t3DEqB+t3D&qB+t3DqB+t 3D3A;BtyB+t3DqB+t3DqB+t3D|qB+t 3D3UA;BtyB+t3D/qB+t3DqB+t3DqB+t 3D3A;BtyB+t3DqB+t3DqB+t3DfqB+t 3D3?AJ+/3ɅL A;BtyB+t3DqB+t3DqB+t3DqB+t 3D3A;BtzBq+t3DkqB+t3DLqB+t3D-qB+t 3D3A;BtyB+t3DqB+t3DqB+t3DqB+t 3D3{A;BtyB+t3DUqB+t3D6qB+t3DqB+t 3D3A;BtyB+t3DqB+t3DqB+t3DqB+t 3D3eA;BtyB+t3D?qB+t3D qB+t3DqB+t 3D3A;BtyB+t3DqB+t3DqB+t3DvqB+t 3D3OfAf;B?A;BtzBq+t3DqB+t3DqB+t3DqB+t 3D3A;BtyB+t3DqB+t3DkqB+t3DLqB+t 3D3%A;BtyB+t3DqB+t3DqB+t3DqB+t 3D3A;BtyB+t3DtqB+t3DUqB+t3D6qB+t 3D3A;BtyB+t3DqB+t3DqB+t3DqB+t 3D3A;BtyB+t3D^qB+t3D?qB+t3D qB+t 3D3A;BtyB+t3DqB+t3DqB+t3DqB+t 3D3nqB+t3DOqB+3DIRAAAA٫AAzA[ARAAAжAǪAtAdAEA=Yt1jW37YYtPVWP t3PPPPP4~f>u5C豦%C#t*C3Y[_^5C苦%CVPB3;u3^f9t@@f9u@@f9u+@S@WSI6Yu VPB_[^SVWM UEfU f;t@@fuf9t3]ËUSuM薢M3;u8]tE`p39]u.OSSSSS8]tE`p9] tV;vSSSSS?E9XuuQu u [6pQu Quhp EPZ ;u8]tE`p8]tMap^[ËUjuu u]ËUS39]u3AVWu6FV-YY;t"uVW!4 t SSSSSo3_^[]ËUQQSV3W=Cu;teQBVVVVjPVVӉE;tTjP4YYE;tCVVuPj7VVӅt6EVPW1YY}9ut u2Yu;u3_^[ÃuYj hB'M3;v.jX3;E @ul WWWWW3M u;u3F3ۉ]wi=`*CuKu E;P*Cw7jY}u*$YEE_];tuWS ;uaVj5( CQB;uL9=Ct3VG+YrE;P E3u jUY;u E;t &ËUM S3;v(j3X;EsWSSSSS 3AMVW9]t uCYVueYYt;s+VjS _^[]ËUEu 3]V3;|;8)CrVVVVV X3ȃ @)CD@^]j hB%339u;uyVVVVV_ëj [PjάYYu謫Ps>YE PVu蔫P @E脫PW>E EK%^ Pj٬YYËUEPu uX ]ËUEPu uX ]ËUE PjuX ]ËUEPu uX ]ËUE PjuX ]ËU BU39 C#щ C]áB39 CËUSVu 3W};u;vE;t3E;tvj^SSSSS0yVuME9XfEf;v6;t;v WSV誗 *8]tMap_^[;t2;w,nj"^SSSSS08]yE`pmE;t8]%E`pM QSWVjMQS] pQB;t9] ^M;tt} ^]ËUG @SVt2u,E+M}C>u8*uϰ?d}^[]ËUxB3ʼnES] Vu3W}u薙u5l3PPPPPt `p F @u^VFYBttȃ @)CA$uttȃ@)C@$g3;]P C39 ʀ Xw  Bk @Bj^;jY; $A3t ƒ tHt4+t$HHtV K ? 3 $  *u,k ʍDЉ*u&k ʍDЉzItUhtDltwbS;luC8, <6u{4uCC<3u{2uCCYYu ËUVMEM >t} ^]ËUG @SVt2u,E+M}C>uS8*uϰ?d}^[]ËUEAQ]ËUB3ʼnEES] VuWu3;u3WWWWWAt `pF @u^V8YBttȃ @)CA$uttȃ@)C@$i;apu9E3pF39N, %uRj PV ~08$u%9uh@0WP 9u`j PV蹌 HQ9u(;9$d;~$1B 9u 99ƒ tIt5t%HHt~r gXL*9u@j PVS HQ9uL;9$dx;~099j*S14;lj  k ʍDЉi ^ *9u@:j PVh HQ94;lj Ƅ8*< k ʍDЉ ItUhtDltw  >luFn b V <6u~4uFF3 <3u~2uFF @Dž 9?Q@jQi9} Dž u$gu9u]l9~9~̋]VY;t뛃cY4Ht@xPPtP5pBiYЋt%9uP5|B5YYYgu!;uP5xB YYY8-uDžDž$sHHDž'DžQƅ0Džc9099u ;jtd9cc9u)099u jT4Qd @tO9u@c949u@sc94E@tD9u@'c|9tD4x9u@\c89u5099uSQ43@t;|;s؃ځڋu3ۃ} Dž9~ u!u t-RPSW09~N뽍E+Ft ΀900@c94tO;u TB$8+ ;tE0@@}uE#u M EE#;tD=t)=@t"=t)=@t"=t=@uEM#;u E]EE@]E#=@=tw;E;yvv0fE3H&HREEjSS6 tSSS6#ƒjEP6 utk}uYEE;bPjSS6 CSSS6#ƒE%=u6[@Y]j^0d=uSj6P) EASS65) EEE+PD=P6H 9}ۋ @)CD$2M0 @)CD$M ʈ8]u!Etȃ @)CD }#;u|EtvuHQBSuEjPuWu 8QBu4@M}ED% u$L& t9]t@MED& SMQuP4QB{M;p;MgMD};t M9 u ]EÉ]E;M<< t CAMEH;sA8 u AAM uEmEjEPjEP4QBu 9ur9w}v1轡E"t MMEt e]MuE^tMEtEM؃ىEM}tEЃ`pEU_[ËU3Puu u9 CuhBPC]ËUjuu uu&]ËU= Cjuu uuhBj]ËUjuu uu]ËUQeVEPu u u9Et薠t 荠M^ËU B3ʼnEjEPhuEPBu EPnSYM3MËU4B3ʼnEEME؋ESEЋVE܋EW3M̉}};E _5QBMQP֋(QBt^}uXEPu օtK}uEuEu ulYF;~[wSD6=w/_;t8-WWuujuӋ;u3P3UY;t E}9}t؍6PWuDK VuuujuӅt];tWWuSVuWu QBt`][QB9}uWWWWVuWu Ӌ;t=t7=t0=t)=t"'3SSSSS豀Eu 3;|;8)Cr 뻋<@)CL1tPfY]D0tu uYYE萌 ME EuYUWVSM tMu} AZ I& t' t#:r:w:r:w:u u3:t rً[^_%xQB%|QB%QB%QB%QB%QB%QB%QB%QB%QB%QB%QB%QB%QB%QB%QB%QB%QB%QB%QB%QB%QB%QB%QB%QB%QB%QB%QB%QB%QB%QB%QB%QB%QB%RB%RB%RB% RB%RB%RB%RB%RB% RB%tQB%pQB%hQB%dQB%`QB%QB% QB%QB%QB%QB%PB%PB%PB%PB%PB%PB%PB%PB%PB%PB%PB%PB%PB%PB%PB%PB%PB%PB%PB%0QB%PB%PB%lQBUVut!;u t;uuu$u uuuG|^]ËVWjV3Y@PYYt,Єt"uFG@Fut R:>Y3_^j hB3u܉uЉuj菰Y]hBVEPA ;tu VVVVV{;9uVuYY}໬SB9u t u YEWM܍D EjPR u؅WuVX 3;t QQQQQ{WYD8EԊ<\upj\WYY9ESuV|X 3;tpSSSSSza};tVWYY>VSBSYYu*LB 2&\ 2BVfv6|lVD. v^Dv`TB4$ ~6N`r0F`l (6N^nz"th>~p^LZ.d>P$@@ @{kAZxAz7BCBՉ@ITCreateDirectory (%s)MapViewOfFile (%s)CreateFileMapping (%s)CreateFile (%s)inflateEnd returns %dinflate returns %dinflateInit2 returns %d1.2.3\message_boxdirectory_createdfile_createdget_root_hkeyget_special_folder_pathcreate_shortcutCSIDL_FONTSCSIDL_PROGRAMSCSIDL_COMMON_PROGRAMSCSIDL_STARTUPCSIDL_COMMON_STARTUPCSIDL_DESKTOPDIRECTORYCSIDL_COMMON_DESKTOPDIRECTORYCSIDL_APPDATACSIDL_STARTMENUCSIDL_COMMON_STARTMENULib\site-packages\DATAScripts\SCRIPTSHEADERSPLATLIBPURELIBInstallation failed.no such folder (%s)unknown CSIDL (%s)sSHGetSpecialFolderPathAfunction not availableshell32.dllFailed to create shortcut '%s' - error 0x%xSetWorkingDirectory() error 0x%xSetIconLocation() error 0x%xSetArguments() error 0x%xSetDescription() failed, error 0x%xSetPath() failed, error 0x%xQueryInterface(IPersistFile) error 0x%xCoCreateInstance failed, error 0x%xsss|sssiCoInitialize failed, error 0x%xissiSOFTWARE\Python\PythonCore\%d.%d\InstallPathPYTHONHOME=%sOSErrorValueErrorbuiltinsPyLong_FromVoidPtrPyErr_FormatPyArg_ParseTuplePy_BuildValuePyCFunction_NewPyObject_GetAttrStringPyObject_SetAttrStringPyImport_ImportModuleRunning Script...Could not open postinstall-script %s Py_FinalizePyRun_SimpleStringPySys_SetArgvPy_Initialize*** Could not load Python ***PyErr_PrintPy_SetProgramNameOut of memory!Running the pre-installation script failed Can't load Python for pre-install script (%d)Runtime Error100 Made Dir: %s .py200 File Copy: %s Error200 File Overwrite: %s Could not create temporary file~duInvalid cfgdata magic number (see bdist_wininst.py)Times RomanSetup %sCould not register window classSetup.exeSetupWindowClassThis Wizard will install %s on your computer. Click Next to continue or Cancel to exit the Setup Wizard.Software\Python\PythonCore\%s\InstallPathPython Version %s (found in registry)Software\Python\PythonCoreDon't know Python's installation typeStrangepython%d%d.dllPython Version %d.%dCannot installNo Python installation found in the registry.Python version %s required, which was not found in the registry.Python %s is required for this package. Select installation to use:UninstallString"%s\Remove%s.exe" -u "%s\%s-wininst.log"wb%s\Remove%s.exe040 Reg DB Value: [%s\%s]%s=%s Could not set key valueDisplayNamePython %d.%d %s020 Reg DB Key: [%s]%s Could not create key%s-py%d.%d999 Root Key: %s Source: %s *** Installation started %Y/%m/%d %H:%M *** a%s\%s-wininst.logCould not open keyYou do not seem to have sufficient access rights on this machine to install this softwareHKEY_CURRENT_USERHKEY_LOCAL_MACHINE*** Installation finished %Y/%m/%d %H:%M *** Postinstall script finished. Click the Finish button to exit the Setup wizard.*** run_installscript: internal error 0x%X *** 300 Run Script: [%s]%s \Scripts\-installPlease wait while running postinstall script...IsUserAnAdminSetupFailed to start elevated process (ShellExecute returned %d)runasif exist "%s" goto Repeat del "%s" :Repeat w%s.batCould not delete keyCould not delete valueuninstall-script*** Could not run installation script ***-removeUninstall Finished!%d files and %d directories removed%d files and %d directories removed %d files or directories could not be removed%d Run Script: %s%d Reg DB Value: %s%d Reg DB Key: %s%d File Overwrite: %s%d File Copy: %s%d Made Dir: %sYou do not seem to have sufficient access rights on this machine to uninstall this software%d Root Key: %sOut of memoryAre you sure you want to remove this package from your computer?Please confirmcould not open logfiler2. arg is not -u-uWrong number of args%s%cimport py_compile; py_compile.compile (r'%s')Py_OptimizeFlagPySys_GetObjectCompiling files to .pyo...Loading python...Compiling files to .pyc...Failed to unzip installation filesInstalling files...Running pre-installation scriptReady to installClick Next to begin the installation of %s. If you want to review or change any of your installation settings, click Back. Click Cancel to exit the wizard.Bad user_access_control valueoopsnoneautoforceuser_access_controlinstall_scriptmetadatanametarget_versiontarget_optimizetarget_compilebuild_infoinfotitleSetup program invalid or damagedThis program is normally started by windowsRemoveCould not open archive0w,aQ mjp5c飕d2yҗ+L |~-d jHqA}mQDžӃVlkdzbeO\lcc=  n;^iLA`rqgjm Zjz  ' }Dңhi]Wbgeq6lknv+ӉZzJgo߹ホCՎ`~ѡ8ROggW?K6H+ L J6`zA`Ugn1yiFafo%6hRw G "/&U;( Z+j\1е,[d&c윣ju m ?6grWJz+{8 Ғ |! ӆBhn[&wowGZpj;f\ eibkaElx TN³9a&g`MGiIwn>JjѮZf @;7SŞϲG0򽽊º0S$6к)WTg#.zfJah]+o*7 Z-A1b62S-+ldEw}ZVǖAOIъ OM~-QJ#SpxAaU׮.7׵Y-6]]wll?AԞZ͢$ Faw$eڪ]]FD(koipvk19Z* ,  m86F߲]qTp0ek*1u4yީ%8S1bSWĔՖk1**ykʬHpo].*F6fcTT"eM©g0&):{ϼkZ> 8$,52F*sw1pHkQ6Fzw]cN̵J #pAF]#l8?1(BOgT~yUbL8^#ܖTZ1ObbSyOIV~P-{b-R4٠~^eGnHl/Su6: #jT$+e?yHf'*b#ٽЧ ?&~?$pi;FBzw[keZ~7 Sv8H 3?r$7jnԄYFܨ |OQ;օ U d S - =G\ p&Gw)` /a߫i5&LsZ<#0zMzFM8,9; :R:(q-v,.7/pXqYs3r%w+OQvrtEux܉~OK }!b|tyBxʠz{.lD~m8onlk[wjR1h58ib?mcf+aQ`צedd"fig HINSKyuJcO NZLݘMFGN@E$DD2AsX@*IBCPhTg3U>uW ַVS:R|P~Q9ZS [fYX4])\ZEo^m/_5qϱ٥s\ۼqދ!K7 kfֶԁ-b3Πjp]$^'~*I@VW<âM˟ŏ{ tDCm-@wm.B+(铜>Td"ŀǼϭ~8y$owJ1}05_K^ iϏ은BI#ƈdX܁T̓cQ: rՆ⩗ fn|xK)o%ƭ/3vUuA?)C:|sĵ@͂ Ͳ;bIUeh"׻_HS1޼^Z4eg Wb27_k%8ם(ŊO}do׸Jj3wVcXWP0qB{߭gCru&op-?'Bs ưGz>2[Ȏg; i8P/ _Y=чe:ZO?(3wwXR @hQ+ğH*0"ZOWoI}@mNП5+#*'G| AH=XX?#1jvʬ`p^Y<L~i/{kHwâ hs)aLoD~Pf7VM'(@ﰤ ہg9x+n&;f?/X)T`D1 ߨMߒ.FgTp'Hq/L0UEc?kǃh6ry7]P\@TN%s7@'>$!AxUʰ\3;Y^U~PGl!;b F2ȂpԞ(Q_V:1X: n3 m:@/)IJNv"2x+ٗ Kx.HҥfAj^y9*O]#kM`~b_R 7zFh!1߈Vc0a"j6nS Nr)Υ{t*F8#vufz`rs"WG9^EMvc΍&DAdQy/4Aڱ&S֚E biLQ<6'5P..T&q]w4.6IE? v\[YI>U!lDa>Ԫ΋ϩ7~8A]&nv|oY yKiw\¹9~$ 66nQfq>,o,IӔ 渱{I .H>C-Yn馑gQz tafw0a, Qmpjc5dۈ2yܸو L+~|-dj qHA}mԵQӅlVdkbze\Ocl=c ;n Li^`Agqr<KG k5Blۻ֬@2lE\u ϫ=Y&0Q:Qa!V#Ϻ(_ ٲ $/o|XhLaf-=vAq *q3xɢ4 j m=-dlc\kkQlabe0bNl{WeP|b-I|LeMaX:QΣtԻ0JߥA=ؕפmCij4ngF`D-s3 L_ |Pq<'A  Wh% of a^)ɘИ"רY=. \;l  tҚG9w&sc d; mj>zjZ '}DhibW]egl6qnkv+zZgJoC`֣ѓ~8ORѻgWg?H6K +گ L6JAz``ègU1nFiyaf%oҠRh6 w G"U&/ź; (+Z\j1,ٞ[ޮd°c&ujm 6?rgWJz{+ 8Ҏվ | !Bhݳڃn&[owGwZjpf; \ebiaklE x NT9§g&a`IiGM>nwۮjJZ@ f7;𩼮S޻G0齽ʺŠS0$6TW)#gfz.aJ]h*o+ 7 Z-1A26b+-Sdl}wEVZOAي»IˬO ~M-JQS#xpaA.U7Y-۩6˚w]]llA?Z$㧲F waރ$Ųe]]DFok(vpi91k *Z  ,8mF6]pTqke0*1¶u4%y<8syjHA}X*ݹ1SbSW§ٖծ1k**kypH]oF*.f6TTcMe"¤0g)&Ůޟ:{kZ >8,$5*F21wsHpQkzF6c]wN̵ׄJ# pȄA#]F8l1?(gOB~TUyLbˁ8#^TO1ZbbySIOP~V{-b-4R^~Ge­lHnuS/:6# $Tj?e+y䏼Hf*'˼Ѝb# &??~p$iBF;[wzek~ZS 7H8v ?3$rj7nFY |OQ; U dؓS - \G=&pGw`)/ ai5&sL <:R=Pe6^X7}o5641W0ճ2k3$k%'1&-[#bML"'{ "!$*x(+)`F(> q-q,v.Ț/7pqXsYr3w%vQO+tru՛E~xKO} |b!ytxBz{l.m~Do8nkljw[h1Ri85bcm?a+f`Qeddf"giH IKSNJuyOcN LZMݥFĚGE@ND$A2D@XsBI*CThPU3gWu>V SR:P|Q~Z9[ SYfX]4\)^oEZ_/m5qs<\kg2z &J8 좞V`a/6i\lU,zB\uHƒ=&FW A+Ox]`غ7W>9q߳!7Kk ֩fض-bѠ3pj$]^Ĝ'*~@IWVÕ<ӂMʏş{ Dt͆mC-@mw+B.(>dT"ş~Ϝ8yo$w1J}50K_ ^ϋiBۉI#dXфTQc:r Р fΫnx|)Ko%3/uUv?A)ġ:C|sд@͉ ;IbeU"hH_S1ފZ^ھ4ge ȋbW72%k_ܝ8Ŵ(}OodJֿjw3XcVPW0Bq{gǧurCo&p-?О'sB zGɠ2>[ ;g/P8i_ Y=嗇e:ϏOZw3(?RXw@ Qh+HZ"0*WOIo@}m5N#+'*GA |􏒨HX=#?X1vjʨ`^pYL'!$UxAׯ3\Y;U^GP~b;!lڇF 2p(ԐQV_:X1: 3n :m@I)/NJ2"v+x xKH.jAf^O*9y]#Mk~`bю_޶ Rz7hFм!10cV"ajحn6 SrN){t*8Fv#fu`zrϮsɛW"G9E^vMcD&dA/yQA4S&ֿ EbLil!>aDƋΪ~7A8n&]|vYoᡱ Kyi׫w¡\~9$66 Qnf>q,o,ӹI 散 I{.C>HnY-Qg̰t zfainvalid literal/length codeinvalid distance codeinvalid distance too far back`Psp0  ` @ X ;x8 h( H T+t4  d$ D \ S|< l,  L R#r2  b" B Z Cz: j*  J V@3v6 f& F  ^ c~> n. N `Qq1  a! A Y ;y9 i)  I U+u5  e% E ] S}= m-  M S#s3  c# C [ C{; k+  K W@3w7 g' G  _ c? o/ O `Psp0  ` @ X ;x8 h( H T+t4  d$ D \ S|< l,  L R#r2  b" B Z Cz: j*  J V@3v6 f& F  ^ c~> n. N `Qq1  a! A Y ;y9 i)  I U+u5  e% E ] S}= m-  M S#s3  c# C [ C{; k+  K W@3w7 g' G  _ c? o/ O A@!  @a`10  @     incorrect length checkincorrect data checkinvalid distances setinvalid literal/lengths setinvalid bit length repeatinvalid code lengths settoo many length or distance symbolsinvalid stored block lengthsinvalid block typeheader crc mismatchunknown header flags setincorrect header checkinvalid window sizeunknown compression method inflate 1.2.3 Copyright 1995-2005 Mark Adler  #+3;CScs !1Aa  0@`@@incompatible versionbuffer errorinsufficient memorydata errorstream errorfile errorstream endneed dictionaryhB\B$UBPB@B4B BBB$UBfFK I*TK ITTK IO :i+00SBi+00@_dP/N !:i+00'":i+00 E%6NKKº}`fUܭHb0RF#/xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF΋!  Hx5i+.b`ODV A H FM^2mFT d_N" (2W]/4*&{-zeG'{-ph}OUBl OU3(9O> G e+.bchOU4^ ;ݧB}/NKfNr@"=3H$Oڠ'my4[ J1B&M[Or G:ᠷqEJ ǬMWs5i+.bs5i+.bs5i+.bw~s5i+.b%e{HqC,㐲RO$[Dt.|I)sO>+dWnO@;>V;>V Wt חb@J7<}iFϦODa'wj5Ob0wDObAGQ`{FL!mv`[c'wj5Obd'wj5Ob6J[CAVgqe'wj5Ob5i!Lz)zR88`[|^1/`[@L\J7@呰 חbu`ެ@`ެ.PRO—-T'tE`ެA`tpZdl?<W4plTI?rPB,ɨ=O${aPo0p,oiyŜ?Oɝa4Oص,OꙠς`RWpO6OyѦjc(=O0%G`묡51Mlg~6JNfs3K@~Oq!2)wKL+2V4K@~OqT'B6Q:.7V`ƆEz5K@~OqiI~+.ͩ pO]_eOkm'WFAOлP0 P0 P0 M]`gI6FOEг]K $^5N$̈&HS3M17i;'$9Y:Oh7%9Y:Oh7&9Y:Oh7'9Y:Oh7ի|I˃(9Y:Oh7!FsGF{H@FS2IEt$#CȫR e.{ JOe/P($IZ^9$\E9 O奄`OO\;x8WFTpj@wiKw^ևA)!\_[C+dWnO4DLe+.bSmb`ߌ #Or'>O.jxO^QmOd4'>Or3߷;`[MO KLb`wG:J'i>VMYFDAt;&OF} Ҩ\I;%S| *E yЎf|txM NI{@ >KJ\FЗ4mc-NvEc7VfCNItwׄ8A!ӱJ'8EK}4@ VqC(DW@XzvF@S>LNdL֬+ o.Eцݷ"JL :̿,LB)隇A }jL^6CTw]+.DJQS[bHNAFPCU .4zl'K@-tК#FlHiawhM0Y3S!AbostA^?UX2NfHyu 5ꥂG)]/qNnN9jI=W.I|Kg 4cH~%]bM I]7BWGCQl2$HܨEye64ۅ>eL:er='oOU{p OsCů$53QB`ϝ]v+qAO;ل.CZ0YcwN]ND.Q1RWHΨ}'CBg (#l^"`G3qs03NvFZ9\;û@Z|KJ$M>MEQ wmjKDWw? ec E kjO}c^NIe2mG)fpNr-O&oO}N8úGˢ)qKmHB" C[E|ti!OL'`gp+J=$?xԒhKGM]k>+$%|QOz)(BqF[͟WÅm]rLwx,4Ku@ +׉#G`` WG 35A AlG ؂تI`FtQ<[MEĀd_NM&uf4L3lEZIC~"@0(9A8L"k1%B T #F@FDF[Fʙ^AiXשFh Mm8gh z0Gd<O8m xO4yO"FFFMm8gh 0F1F2F3F%F)F*F0:s*Dw=IF y.Y+F&FEFGFHF:/ۆ/O:/ۆ/O:/ۆ/O:/ۆ/O:/ۆ/O:/ۆ/Oǝv\Wސy(_FFFFFFU 8r+C+n44FâRX0eu{ڮP9Vu{0ne0E Kvne yOܦϫ|x O jIOQnO09$-1.E^*onePone |~|?ne? PE^#1$-?W2$-?W2$-pw~?neg@ne˳j@ne˳j@ne?W2$-~{S^BEy|KDphKΔӳOհrIOxhO{lhO\`OOrOh7y) Oh7BTyI6 E9A!8ҏFs%E~2]rgO!B> 9}Nr*GݓkFN]ͷghhϓgAc*^Z%Ȕ2AeqKW';?B@ J$SQ`Ɔ(œO>1s-O(hHjxOi QD(ߥl+ rˆLmCBUa{Ӱ~C.`1 y/DĊY F;3bpc(Jg Дէ{E] E)ПS-oEH?syYz(XGA'qQU AJ s Y!WOZ{*lg(M2(TfC'>|a.  O;O.K[K8H]҇26 -&{-r: %wCjW'tVamy!@iaWBVm`ɠI-`:Bn5OCښL%2J4{[kYs=BMQ!B\[/B{NsASÖ.̆I#t9JDf?kјH"tŻ-Gs?zZAe!`[ǽ6NXX$  KiiőԞ(LqmjK H(.~,-Y@o3\.Q Cpg{L\l%IT߁KI s<_z\ LKo(t;sM|@)^vJYӞ~+IzÊChsxDpWJ?,CP0DOAoZ\q"tDk׾ TLrTIkE a`NNe76_I|kHrYM>s: .jxOˡd:aDX7iii9P5}+EutX(T6QB~ۜC]_#ͼ_Ld=xr|խhG2`?uIp4Bf6חKt3 SNwL1"(iv@ YGح+ObC4`[ԄLr?RJ{,AsEOWL"O7v8yOhKKt&1Zs~:6 B}Ftr⋪GMv2̤ pDʹfD.b[GvtH; zr\GڙYkH?x9J4uY&HxHϣ'GVBeUNOyדسDg,ݠeL3"5/QqCAwSk5 X;-3B{_41lxƱLb VBPoz5zD #D@Fgm[M/BT|\?@zpDF[0 49Z I}AaB}KX䌠%D|DZ#&oI Qd5CvSdn0@DH&'E4VwҁnB*O&-bfMlV!jt€I$[a#FVODJ hFXapf_:qJ?򥸱PpZdFK6eJ7`, :i+00Fh3MnMܙS{5)xKt O3CKsw`$D&l;0MHֿRUBu(dT&arrCuƋ.|uU:WPHw[ێ Z܊M`* !sG3^F0MJSkyZ 8y M3,/KqI\M;TQI![Y ,!PCsg?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~_.,._;=C=;EncodePointerKERNEL32.DLLDecodePointerFlsFreeFlsSetValueFlsGetValueFlsAllocruntime error TLOSS error SING error DOMAIN error R6034 An application has made an attempt to load the C runtime library incorrectly. Please contact the application's support team for more information. R6033 - Attempt to use MSIL code from this assembly during native code initialization This indicates a bug in your application. It is most likely the result of calling an MSIL-compiled (/clr) function from a native constructor or from DllMain. R6032 - not enough space for locale information R6031 - Attempt to initialize the CRT more than once. This indicates a bug in your application. R6030 - CRT not initialized R6028 - unable to initialize heap R6027 - not enough space for lowio initialization R6026 - not enough space for stdio initialization R6025 - pure virtual function call R6024 - not enough space for _onexit/atexit table R6019 - unable to open console device R6018 - unexpected heap error R6017 - unexpected multithread lock error R6016 - not enough space for thread data This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information. R6009 - not enough space for environment R6008 - not enough space for arguments R6002 - floating point support not loaded Microsoft Visual C++ Runtime Library ...Runtime Error! Program: (null)(null)EEE50P( 8PX700WP `h````xpxxxxccsUTF-8UTF-16LEUNICODE SystemFunction036ADVAPI32.DLL ((((( H h(((( H H  !"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~united-statesunited-kingdomtrinidad & tobagosouth-koreasouth-africasouth koreasouth africaslovakpuerto-ricopr-chinapr chinanznew-zealandhong-konghollandgreat britainenglandczechchinabritainamericausausukswissswedish-finlandspanish-venezuelaspanish-uruguayspanish-puerto ricospanish-peruspanish-paraguayspanish-panamaspanish-nicaraguaspanish-modernspanish-mexicanspanish-hondurasspanish-guatemalaspanish-el salvadorspanish-ecuadorspanish-dominican republicspanish-costa ricaspanish-colombiaspanish-chilespanish-boliviaspanish-argentinaportuguese-braziliannorwegian-nynorsknorwegian-bokmalnorwegianitalian-swissirish-englishgerman-swissgerman-luxembourggerman-lichtensteingerman-austrianfrench-swissfrench-luxembourgfrench-canadianfrench-belgianenglish-usaenglish-usenglish-ukenglish-trinidad y tobagoenglish-south africaenglish-nzenglish-jamaicaenglish-ireenglish-caribbeanenglish-canenglish-belizeenglish-ausenglish-americandutch-belgianchinese-traditionalchinese-singaporechinese-simplifiedchinese-hongkongchinesechichhcanadianbelgianaustralianamerican-englishamerican englishamericanBENUBENUBENUBENABNLBBENCBZHH|BZHItBCHS`BZHHLBCHS8BZHI$BCHTBNLBBENUBENABENLBENCBENBBENIBENJBENZBENShBENT\BENGPBENUDBENU4BFRB$BFRCBFRLBFRSBDEABDECBDELBDESBENIBITSBNORxBNORdBNONLBPTB8BESS(BESBBESLBESOBESCBESDBESFBESEBESGBESHxBESMhBESNTBESIDBESA0BESZ BESR BESUBESYBESVBSVFBDESBENGBENUBENUBUSABGBRBCHNBCZEBGBRBGBRBNLDxBHKGlBNZLhBNZL\BCHNPBCHNDBPRIBCB2DBDB(PLXP0Rp4PP2(RDtRzfTN>2&\ 2BVfv6|lVD. v^Dv`TB4$ ~6N`r0F`l (6N^nz"th>~p^LZ.d>PPropertySheetACreatePropertySheetPageACOMCTL32.dllSetLastErrormCreateDirectoryAGetFileAttributesAMapViewOfFilezCreateFileMappingADCloseHandleSetFileTimeDosDateTimeToFileTimeGetLastErroryCreateFileAKUnmapViewOfFilelstrlenAMultiByteToWideChar"GetProcAddressLoadLibraryADeleteFileAnReadFileSetFilePointerGetFileSizeMFreeLibrarySetStdHandle>GetStdHandleLocalFreeHFormatMessageA\GetTempFileNameA^GetTempPathAGetModuleHandleAzGetVersionExAResumeThreadSetPriorityClassGetCurrentProcessGetCurrentThreadSetThreadPriorityCreateProcessAGetModuleFileNameARemoveDirectoryAGetPrivateProfileIntAGetPrivateProfileStringAGetModuleFileNameWKERNEL32.dllMessageBoxA$GetFocuswsprintfAvSetDlgItemTextA^SendMessageALReleaseDCGetDCDispatchMessageATranslateMessagePeekMessageAEndPaintoGetSystemMetricsBeginPaintDefWindowProcAUpdateWindowShowWindowgCreateWindowExA3RegisterClassALoadCursorAMoveWindowGetWindowRectPostMessageAUGetParentYSendDlgItemMessageAGetDlgItempSetCursorUSER32.dll4CreateDIBitmapDeleteObjectSetTextColorTextOutAfSetBkMode^SelectObject:CreateFontARCreateSolidBrushGDI32.dllfRegQueryValueA*RegCloseKeygRegQueryValueExAHRegEnumKeyExAZRegOpenKeyExAwRegSetValueExA2RegCreateKeyExA7RegDeleteKeyAARegDeleteValueAADVAPI32.dllShellExecuteASHELL32.dllkCoUninitializeCoCreateInstance=CoInitializeole32.dllSGetSystemTimeAsFileTimeHeapFreeHeapAllocFileTimeToSystemTimeFileTimeToLocalFileTimeGetFileInformationByHandleCPeekNamedPipeGetFileTypeEnterCriticalSectionLeaveCriticalSectionlGetTimeFormatAGetDateFormatAHeapReAllocGetModuleHandleW+SleepExitProcesspGetCommandLineA<GetStartupInfoA7TerminateProcessHUnhandledExceptionFilterSetUnhandledExceptionFilterIsDebuggerPresentWideCharToMultiByteoGetTimeZoneInformation\GetCPInfoInterlockedIncrementInterlockedDecrementSGetACPGetOEMCPIsValidCodePage>TlsGetValue<TlsAlloc?TlsSetValue=TlsFreeGetCurrentThreadIdHeapCreateHeapDestroyaVirtualFreeDeleteCriticalSection FatalAppExitA^VirtualAllocWriteFileSetEnvironmentVariableASetEnvironmentVariableWSetHandleCountGetConsoleCPGetConsoleModeRtlUnwindSetConsoleCtrlHandlerInterlockedExchangeInitializeCriticalSectionAndSpinCountKFreeEnvironmentStringsAGetEnvironmentStringsLFreeEnvironmentStringsWGetEnvironmentStringsWYQueryPerformanceCounterjGetTickCountGetCurrentProcessIdLCMapStringALCMapStringW@GetStringTypeACGetStringTypeWrGetUserDefaultLCIDGetLocaleInfoAEnumSystemLocalesAIsValidLocaleBFlushFileBuffersWriteConsoleAGetConsoleOutputCPWriteConsoleWHeapSizeGetLocaleInfoWVCompareStringWSCompareStringASetEndOfFile&GetProcessHeap(UB$UBUB$UBUB$UB UBUBTB$UB(UBTBUBTBUB$UB UBUBTB$UBSoftware\Microsoft\Windows\CurrentVersion\UninstallTB TBTBTBtTB\TBLTB4TB$TBTBTB1@SB@SB@SBu@@SB@@SB@@Software\Microsoft\Windows\CurrentVersion\UninstallN@D*C*CBBBBBBBBBBBtBlB`B\BXBTBPBLBHBDB@B PAPADDINGXXPADDINGPK!ݑ/ycommand/wininst-14.0.exenu[MZ@  !L!This program cannot be run in DOS mode. $A]A]A]9m]M]9o]饜]9n]X][]F]z\R]z\\]z\S]ZR]C]ZL]@]ZW]N]A]쥜]\I]c]@]\@]RichA]PEL*PX :@`@<X0,.`T@.text `.rdataR  @@.data< @.gfidst@@.rsrcX@@.reloc,.00@Btt ttj\VzxYYtdWDEEu*jWEutWhHZFjӃ WjYYEuhXEt WhHZFjӃ \u[3_@^]USVuWEu@EjhPjjhW@E؃HEuUVEYuPt PXE2WjYYt23PhjPPhW@E؃uWh`ZFWjYYtWjYYEPuu4EEPPPSTE} u SPK|$u΁?PKuN .D$D$$D$D$ FFD$OD$GȍCL$$3ɉD$8FD @AuL$@QAu+ʍD$@HD$(<\t|$@OGGufZFfD$@PPE|$@3D$0D$98t9ʍAD$Au+L$Qt$$ROw D$G8uNj|$GPt$$D$HPg L$@L$@QAuD$(+ʀ<\tJF T$@h&@PF3Pvt$@t"T$8QvOvQ\]|$,t$}t7ut0}t*t&39EhFYӋU׋_^[]UQEPh\Fu F tuj hZFF ]UQEPh\Fu F tujM hZFF ]U F3ʼnE=LFVu u:h\FtEuh\F5FFYY3h\FPELFW\FPWVF =LFuh\F5FFYY{34Fd|YYtF rh]F5F?j4FPjLFtPWFYYh\F5FF 3_M3^.^]U0F3ʼnEVu W3WȲEyPh$]F5FF PPPPPPPhD]FVF$u3PhEjWhEIJEy PhP]FxRhpEPy Pht]FRPQPy Ph]F1PQy Ph]F9t!PQ,y Ph]F9t'PQDy Ph]F9t!PQ$y Ph^FhPjWWhEjRPQyFPh@^F5FFtQPtQPElPQPQEhZFFYM_3^[]U EPEPEPhl^Fu Ft$uuuhEPEPhp^FFYY]54FFYUlF3ʼnESV5|EhFh^FPDž֍PFStEhZF5FE5Fh^FP֋5EPPEPhօt!PPEPhօt3SWOGGufZFfCu+OGGuˍj˃jPE_M^3[;Z]USV5EWh_FWh4_FWEhL_FWEhd_FWht_FWEh_FWEh_FWEh_FWE։EE}}}t{}tu}toh_FЋYt=h_FWh_FWFӃFpFj[jVUP6WUuEFEFEFE䣰F33@_^[]UXF3ʼnEE SV5EWh[FS]Eh_FSEh[FSEh[FSEht_FSEhd_FSEh_FSEh_FSE֋uąi}_}U}K}A}7/}%? hW詀YYuWh_FjYPR jXh`Fh5pFE֋Mhj`FVm} +ljEjZUċtUċȋE3ɉ 8UuVjUYY>t6r6YhF|EEPS-YYu*uFJVWSӉ ~Wf8 UYEUSEY j3@e_^[M3W]US] 3VW3MPFPuGtYYjhjjVhPE@E5EjjE֋5|EWjEWjWE tuUQ}YYu EEh(`FjYPYYujujjWE;s jWEFP-Yt(3PPPWE \EjE PV3W(E E W{V4t,aF3x܋Nt +F+FSW~++щF+7h'YPhlEtwSjh`aFPEt^3PPP7PjYtU0VWσ QAu+ʍFP|YWFFLE3@HEdaF3_[M3^O]UW3EPEEP`EjWWWEPEu_]ULF3ʼnE} SVuWtuuu VEEPVXEjxEj YhaF3QQQQQQQjhQQQPPEPW4EjWEDEFˍQAu+QS@EjjWhWB]UF3ʼnEPP P PhfFhPP5FF$tPYM3A]U  5F3ʼnEE S]VuWN-tc-t-PuhhSEVhSEVjhhSE3@M_^3[)A]FtPjhrhSEh`Fh@fFP|E5E PhShfFhS~1t)~8jjhpSEPtE5EjjhpSpFFPtEjjhkSPEFэrBu+րF\tyGGufZFfQAu+I!F 6\ F5Et9thfFhSg=FhgFhSփ u (gF*=F=PFt:hLgFhShhgFh5pFt3ҋWE=FtD=Ft;h|gFhShhgFh5pFt3ҋBVE3@UF3ʼnE} NS]V} c} =F=FhgFhSDžgFE3ɊF AuWOGGugFFfBu+OGGuFʃtQhFhgFP-hjlE=EP׉PPYYtPhgFj4YP t VhSEh(hFhSEVGY_FF3tPVhrhSE95FuPhSEVVhStE3@%Ex8ujjhpSEPtE3M^3[<]UF3ʼnESFEVWj43VPR3u} j4VEPmR=dE E8EV׉EEuЋ5(EPE,@Ek։EEPEElEM0@։EEPEEmE7@։EEPEEnE:@3EVE4׉EEEEP]E uuuE,EM_^3[;]h\FtEu3hxhFPE@FtUXF3ʼnE=Fu3AhFEhbFP|E EPhjEPhEuuE3@M3;]UF3ʼnEjjhZFhFhhFjLE ,P|hhFP|E |jhhFPjEM3:]U -F3ĉ$SVW5F=ED$hFVPhZFhhFSjPT$FpY5FD$VPhZFhhFSVT$FGY5FjPh FhZFhhFS5F5EjhhFS5FPFjhiFS5FFFj VhZFhiFS5FjPh`FhZFh iFh(iF5FhhFhZFh4iFS5FFj PhZFhDiFSNFFuZFXiF3ɺF :uAuun`iF3 :uAuauEt<̀=Ft1hiF3 :uAujhpiFhxiFhEPE^F5TFLEFtPxEFtPHE$3_^[3x8]UEE :utP:Quu3]]U`F3ʼnESVWh3PS$EPhiFPhiFPhiFViFPWVPhiFVPWV@V诿jD^VSPpM3DžfPPhZFSVSSSPSEtO5XEjjpEPhEP E5A@jV=Ej$hjFhjFj׃t334FZF9 Ɗ:utP:Quu34PPhkFVuT3 cF: uAu4FE8jPhkFhEPPPhtkFV\uPPhkFV!utVPPhkFVtɍPPhkFVueHEtZtUCRPPhkFVu ](PPhkFVbuOA; vxEt @CHEVMtSPhkFP|EPhDlFP|Ej@hhlFPjwQ3PPhljFPE3@M_^3[/]0SVWFVW3S$EVhFSETFuHE|lF}3@ C t~z3F9Fu5#90~, 88tSShPjFSEC8j\W ?YYttjhlFP# lFtlF3_^[UQQS]3VWU@;u!;r+;+s.t Bu;r+3ҋ ֋;3ҹEU+؉][ BJBBBBBBBB B B B B BuU3ҋ]Nj3m>UEBBBBBBBBB B B B B BBrt Bu3ҋNj3 _^[]UQS3W9E  |9EsjVPPu Euϋ3uȁ;+º;r+;r+ʾ;r+^;r+ _[]UEVRP`YY^]Uu uMYY]ø mFUu3]]UQSVuӅtt33 mFBuW E3ÉUȋ} qF3 uF3 mF3 yF3ȋ qF3 uF3 mF3 yF3_ȋ qF3 uF3 mF3 yF3Wȋ qF3 uF3 mF3 yF3_ ȋ qF3 uF3 mF3 yF3Wȋ qF3 uF 3 mF3 yF3_ȋ qF3 uF3 mF3 yF3W‰}ȋ qF3 uF3 mF‹3 yFm,rH3Ãȋ qF3 uF3 mF3 yFكu_t33 mFBu^[]USV#ދ؋#uWtt33 }FBuz E3_ȋ F3 F3 F3 }F3Wȋ F3 F3 F3 }F3_ ȋ F3 F3 F3 }F3Wȋ F3 F3 F3 }F3_ȋ F3 F3 F3 }F3Wȋ F3 F3 F 3 }F3_ ȋ F3 F3 F3 }F3ȋ F3 F3 F3 }Fm9rH3ȋ F3 F3 F3 }Fكut33 }FGuӺË##_^[]3tt3uUQSVWE +7mvu_^[]UF3ʼnES]VW} 3Dž| 3A@|@ ||h|W|FÃt֍ t6|Ãt֍| u3M_^3[%]UEVRPYY^]Uu uYY]UHSVW]K;COs lj}ENC+ڋQ8ƉEދA(EЋA,EA0EA4E̋ALE܋APE3@]Yqt7y f8f<3*"~< w3^<@H#EF8jX_^[]AL FAT AP FAXUQ‹SVWr33ۉEG9^4u#N$WPr(R F4uE9^(uN$~(^0^,~(];rW+Pv4 f0F(O+~0;v+WPF4F0Pj +tES+Pv4T ^0~0N(9N0uf0F,;sljF,3_^[]U tjX_^[]Ã> u3SAY;FtjES^Yt jF 3빅tAt@t P b03jXUQQSVW3]39}v=ڃs3Ɂ;uFt3jX+ƋG;}rȋ]lj3_^[]UQSVW_u {<sjjX9tES<3ʉc8+щS<rK8C8D5FK8sStVYtWjW6&9>tV^Yt6YPNPWh@uVuWjYYE=MEQPsYYËeuu[}u2EEPYjX:PPjh@\UF3E]UFj Y+ȋE3F]UEM ]UEVH<AQAk(;tM ;J r BB ;r (;u3^]ËUEu2]ùMZf9uH<ȁ9PEu f9A]du2dVFP;t3u2^ð^KtrPbYt2jY| u2 ur  c Uu} uuMPuUuu`YY]t hFYwJj} Y' U}uF u2] u j Y]U Vutu|7t*u&hFKYt2WhF8YDFuWFj Y+ȃ3FEEEFEEuE_^]jvjhFeMZf9@u]<@@PEuL f9@u>E@+PQgYYt'x$|!EE3Ɂ8ËeE2U&t}u 3F]U=Ft} uuuo YY]UF3Fuȃu hFYY#E]UF3Fȃu]kuhFYY]UuYH]UeeFVWN@;t t УFfEPEE3EEE1EE1EEPEME3M3M3;uO@u G ȉ Fщ F_^]33@3ø@33hFEhF Yðhhj uj8讑HH覑HH39 FøhFødFU$SVj\tM)3hVP5F |xffftfpflfhEEDž@jPEVP E E@EEEVXۍEEۉE|EEPxEu !F^[]UDjDEjP EPEEtEj X]3jEȅu2øMZf9uA<8PEu f9HuۃxtvՃh@|EUE8csmu%xu@= t=!t="t =@t3] ̃%FSVtFtF;sW>t 8׃;r_^[SV|F|F;sW>t ׃;r_^[%вEh`@d5D$l$l$+SVWF1E3PeuEEEEdËMd Y__^[]QU%F(S3C Fj me3 F3VWF}S[wOW E؋MEineIE5ntel ȋEj5Genu XjYS[wOW uCE%?=t#=`t=pt=Pt=`t=pu= F= F= F}EEEEE|2jX3S[]؉sKS EܩEEt = F_^tm FFtUtN3ЉEUEM3Ƀu3u/FFE Ft FF3[]39`FË вE3@̃=Fr_D$ fnpۋT$#+o fftftff#uf~3:E3D$ST$t :tYtQu WV ؋ ~333ƃu!%t%uu^_[3ÍB[ËB:t6t:t't:tt:tt^_B[ÍB^_[ÍB^_[ÍB^_[UW=F}wwU  fnp۹#σ+3offtftf#uf#DžEЃSf#3+#I#[DžD_U t93t;DDžt Gufnƒf:cG@LBu_ø#fft#Ϻf#ufft@ft뽋}3كE 8t3_UVuW} t N3 8sFN 3 8_^]`USVu WEE^F3FPSE]}WE @fEE}~ FGGLEteVMxf~UE8csmu7=lFt.hlFt5lFjua֋u EЋ9~ tlXMt]s]E$t,]~ t!hFFPuSE_^[]hFFP^ ^SukMӋI@j Bu2u~CjYU}uPjU Y]&U]*'Uu&Y]Uu&Y]UU ME]UU ME]UM33]UE]UE]V6v&&Y^V6f&&Y^ø-@ø2@Ã9Ã9Uu;&Y]Uue&Y]!ËËÃ9Ã9V6&&Y^V6%&Y^UEM ;u3]Ã:utP:Qu u]UuEtV0P%Yu^]UEŝH 3iГAu]U 33S] Vh(h-@h2@PKEQP]htz΍QAu+t| u DuAEWP/%Yt7'GVu}PE%M 3 uu3u EEWE$Y_V$EY^[]̋L$ D$׋|$<i % Fs D$%Ffnfp+ρ~L$$ffGfG fG0fG@fGPfG`fGpu%Fs>fnfp rG stb|9GD$tGutt $GuD$SVWT$D$L$URPQQh@d5F3ĉD$d%D$0XL$,3p t;T$4t;v.4v\ H {uhChChd_^[ËL$At3D$H3Uhp pp> ]D$T$Ut$L$)qqq( ]UVWS33333[_^]Ëjg33333USVWjRh2@Q_^[]Ul$RQt$ ]Uu!Y]UE]VHE^V6!&Y^1XEÃ9Ë!ËÃ9V6t!&Y^Uu5 FYY]UEt=$FtP=!Y]U Ft'VuuPo FYjPYYV^] R"Ã= Fu3SWHE5 F%YtuYj5 FFYYu3BVj(jF"YYtV5 FYYu3S5 F YY3Vp Y^WXE_[hג@6 FYu2h$FPYYuá FtP7 FYVWLF3jhW tdFr۰2_^UkELFPE]V5dFt kW4FWE dFu_^UkELFPE]áFj Y+33FUF3E]UFj Y+ȋE3F]UU ME]UU ME]UE M]UE M]UE M]UM33]UM33]UQE]ÃhEhEhEjhEh EhEjh(Eh$Eh(Ejht>t6E&xFu^]áFj Y+33FUFj Y+ȋE3F]áFj Y+33FFÃ!USVW}&Ff9t~3ҋ:E tK<_t<<$t8<t0<-t,E]UVuu IN^]UVuu IN^]UVuu IN^]UVuu IN!^]UVuu IN`^]UV~0M9uAP9>u AF 16^]UV~=S]t4>uS'jjF$.t EX3P[^]UV~RW}tIS39uW9Gt<t P#SjF-t WS[_^]USـ{NW}tE?t@V393uW0Vj Fi-t?tF<>uVWV"^_[]UV~->EttttPQYPPn^]UV> t8W}?t.jjF,Ѕt  OJ3҅tT_^]Uyt E@<~A]UEE A3AAA ]Wt.GG t$VG ww GB֋GG Yu^_U졼FШEEu]UVW}t.jjF,tH `EHx3uF_^]U`e3SWEEG} 33@9t GEuMuMjE uWPu uEOHr Vu3%=E‰Ut%%t%=WÅt%%t%=/=$@t^ F Ft.EPYPEPj MVEEЋEEEPYPMU3ɋþt%#ƅ} QEPYYEPEPj{EPPMEPSIY5Fu>EPEPj,M/EMEEhEE4EPM0hEMEPY F ШEPEPj M5EMEEj E EMEEEEPM}M!Eu!E#!E!EċÉuMMȉMMt%#ƅtw%=u>EjPE܉EEEEjPE܉EEEEjPt'%=uEjPYYE܉EȋEE̍EjPE܋UYEEYEt@%=t2F`<`EPtCY@MEyCYPMj FШt0t&EPEPEPY@MЉEEPYPM39t>9Mt.5Fu&WEPj MaEPM3 EЋGEԋ}M}QtNEP3YYPEPhEM EPM5FP3MÅtI%GjF'ȉMt3Aa3ΉuQEPA3YY0xu%%=uzEPEPh EMadEMEEj,E;EMEEEEPEMEEj,E EMEEEEP.tN%=u@EPEPh0EMEMEEj,EEPM` htfF>hS]t[9} tVE +tIFWtj t u SK>jt EHlju FF[_^]FЃáFЃË F3``áFЃáF% áFЃUSVu3C&Ff~FW@Zt3j,FɃ0 w @FEQ FPPb^eeEPEP.$F+YY~ F9 t EPEPF;uf&FF~4 jA_^[]U졬FXIEPUYufFt[@tPZtMj@FFШEuEPEPMU H‰JJ@FEMP7@FFШEuEP @FhEMRE]U졬F08VN y3uEj]PEMEe%W} EGth EME<\NtUF8tKEjPTYYPEPj[M>EMEEj]EEPMB}~?trGtEPEPuM@MWEPj(MUEMEEj)E,EMEEEEPEEEEEPEP!EUYYMP_E 8t`PEPj(MXEMEEhEE]EMEEjEEMEEj]E|E$Ej]PE؍MjPj[PuEYY^]UjEYPM2 FtMA F0t/Htu=MjjM:UFШt5 < uKEPEPEPYPMU < uEPYPMcUt(EPEPhEME̋UЉEUt(EPEPhEME̋UЉEUEt"EMhEEԉUEԋU؉EUEt"EMhEEԉUEԋU؉EUu 39t]~uBE9t;PEPj MsEԍM̉E̋Ej EVEPM6Ft VE/VE9t%PEPj MEPM5U ׀}t EMPEM}unu >t[FuBE8t:PEPjM_(EčM̉E̋Ej EVuM%Vju E8tPjME_^[]U3ɸ!E!EEQPhZFEMPuME]UMu 4F?tIXtEPuYY@}FuMhEEEEEhE hEhEMe!]t EEEEEPYEPMEMMHI FMhqEE^[]UuOEY]UFeeЃ$s@h$Eh,E h4EhM]uFUMU8$Mu@F!MMj^UUMFUM8t@FjMMUE@HjE @E$9]tjME\EMj>kF59]u)M 8&u @EF8*u `EFBFEX`_^[]UFVjj@t&Ff3VuCEPEM EEEj u EPMHEN^]U F8uu juY E<6|<9~<_t MjS؃6A F)u/t؃=A F| u ju x~uMj-E]eeVu WEFE9@EPEPh(EMEEEEF8tCEPLYPEPj MtEMEEEEPEEE"EPEPjMo8EEE FEA F<@FA` F<`EPtmY@MEFШEPtwqYPEPj M1EMEEEEP?EEEEDYPMjEPuMjWYPMFШt&EPEPEPnY@MEEPPYPM39t;EPEPj(MbEMEEj)EEEEESjFt^fEVP!EPQ MPEPj(mEMEEj)EDEPM F`<`ttEPM FEPt YPM YPMFШEPtYPMYPMStEEFEM؉M܉H jME_^[]UjuEYY]W9u2_ËVp蘵^_Ãy$ ÊAËI2SVW{p_քu{pH_^[ËQtAD2UEjPnYYPEPj`MXj'uME]UVu} WtV7ѴYcuj^GS;sE;w8jhFt 3tO tG+މG _ 3+ƉGGG [_^] Fu3<0|<9/A F3 tu j Mj>MEt5F8uEMMy]F5FWEWP  PMU5Ft+~1u%EPEPj~MXMUMUtEPMUMEPN5FjMHEB)Z_F5FOD9ft@t/6~8F4EMF4E FM4EoUM2?t9@,BSCjhEEPjU F5F0WhXEƃTSPFM4E?FujuM70pg4t j M Fh4EAEF  FEEPEPuaNA<$t/Mj0u  FQ}+tmAtSt7u!UEWPhZFE}AVP FmPujVuA FVuA FVRt_tNtHuA FA F98tPhdEuSMhtEGA FhXEM)9>t j M FhhEu jub E_^]U졬F}tPXu3@FE 8uMhE5PhPEu_u8HuxZuF8Yuu @uFYYvVu EVP-F@YYt$EPEPhEMMUF tEPEPhEыUME^Pu ju^ E]UQQFVW<6|<9~<_uPuMAE 3}90t97t Gu PM97t WMEPutYYEuEju VuP3>*PEPub jMuMd} 397t WMZS]93t97t j MSM;EM[MH_^]Uuuu uE]UQQFVW_@F8A@Fw|F3ҋMЉUMt}hEMj YPMtKF#ƃt u)hEhEMe#thEMRċMjԾE+j)MMUEHE @`_^]U졬Fu 8@uM@F uYYE]USVuWE&FF%FI]F7<@/=Ft =Fx>tUVEPh(E|辽}EĉEȉFt(VEPj[tEEFEF8?@F$ZYHtVlPdP-Y>3F}]jEjPM؃ uAt6EԉMMh(EEEMEEEEPq}]}ԋ 3]}uRF8@uEPEPj[\}EM܉E܋Ej]ETE܉EFF~f&FkFTVPj]LPjDjP /EFH9_uMx?uGV< FPj4jP ȋAFF8@G,PYPEPj`$}EM̉E̋Ej'ETVPMvj@hFMVEPhXE,/EEF F9 tFEPS; F VPEEVPEjjPz ȋAF~Ft<@tPf&F@>u jF0VEPh(EEPjM貺t@F_^[]USVu3WS^F#lj%FEjPȃ AFFuBt<@t>VEPh(EEPEPYTȋAFF@u@FXtF#lj%FF?9u jK0VEPh(EEPjM跹yHN_^[]UQQFu Mj|0j?u@FEPPj-u轾 uYYE]Uu3EY]UW9uEVu pu^_]USVuW;t6uVFxWt} GPVt_^[]UyujhlEu u:E]UE;E sI@]UIt]2E]USVWu {upA;E s{u Pr%_^[]Uqqu u]UMu 賷 FA F<@unA F<_uaEAjP F EjPFt,@t @Fu8tM@FEMHHFjjMbE]UE U+‹M;~ȅtSVW}+ي7Fu_^[ ]U졬F8?u'@8$ujuYY"jjuF jjuE E]U|F3ʼnESW}'Gg=FVV5F}A<@9e2e2ȃ0 w)Q FEFP5F ȋEAEu<$u"8FuF$tE1t0t6t$t,u j M賶j>M詶} tF8t@FMEFE=F5F_M^H[ Mj襯E]Ue!E!EEejPhZFEPuFE]U졬FtLZuM@FE HVEPYPEPhEMޮj)uM!j)uEjPhEM赮@ӴE]UQFSVWj3ۿ@^:_u BωF 7h/p'x<9uBF 3Ʉ_^[]ÍIK@R@Y@]@i@a@p@x@@U졬FtAMtj@hEFF MjtE]Uu u]EYY]UQQM VuhEAΉF課EPYP蠱j}ڱ F9@uA F^]UM SVu3CAȉF:8F8EPEYEMEj EnVEPMtȋAF:F8@hEF8^tj@teEPYPEPj`M葩 EMEEj'EEP薰F8@u@F8^/8@thE{8^8uS蹱j}蚰F8@u,@F$: VEPSM蹩肯MMN^[]U<F3ʼnESV5FW}Ã0 w FFPW5Fee?uLEjPNYY@M FEA F<@I3 F8M@P耬j,EjPVE u@Ej PVEz  Eԉ5FP F@Y=Ft}jEPMEPj5FYPwYMt P讫hPE蟫EPEPuM E̍M܉E܋EhTEE薯EChPEMZEPEPuMŧȭE̍MԉEԋEhTEEQEPMM:}t@uEȃe%F5Fj@hFM @ME} t F9 t EP萯EEGM_^3[蔄]áF%@ËA ËA3939 ËA ËA ËA39t At@39t At@ËA3yW9u3_ËV0Ő^_ËA3@ËI3UQEx }4SXVWx0腐֋2tEx _^[@ ]ËAU Fua3FAF F3ң FPEFFFFFFFFFEw k F]øF]ÁIÁI@ÁIÁI Ã9tIÁIÁIAUUtMVu +Au^]UM38t@A9u]UEu]ËM UStt:uBA +[]jdhF+}u3k3uV؜Yu=FEF5F5F5FEPVuu uMUM讨}FJE 3}V諜YjdhF薎}u3k3uVCYu=FEF5F5F5Fu uuu uMM}F赬E a3}VYUuuuu u&p0+y]UEPjuu u]USVWUjjh@u m]_^[]ËL$At2D$H3袀UhP(RP$R]D$T$SVWD$UPjh@d5F3PD$dD$(Xp t:|$,t;t$,v-4v L$ H |uhDID_뷋L$d _^[3d y@uQ R 9QuSQ0F SQ0FL$ KCk UQPXY]Y[UF3E]UU ME]UE M]UM33]3ɺF3 F3FVt Uu/иFYFȃ3]̋L$ W|$VStt9u~Ѓ3ƒtGt!tt uσ t$u u\"t=t)uu8˃ttu[^D$_ÈD$[^_ÉtȺ~Ѓ3‹t܄t΄t*tuĉD$[^_f3ҋD$W[^_fD$[^_ËUVuuO5j^0$huu ^ u #53^]ËUVuu5j^0ɿ$huu u 43^]jhF3uu4t3s3} t38tӀ>u 4эEP3Y}u e4봃eeuuWVuE 轉Ëuu u>YuYjh FP3uu3賾3s3} t33f9tf9u 3΍EPoY9]u 3벉]]uuWVuE Ëuu u}Yu YËUE0E0E 0E0]ËUE0E0E 0E0w]Ë1Y39ËU]Uj@u u ]ËUVuu2j^0脽$huu u 203^]ËU]qUj@u u ]ËUVuuZ2j^0$huu k u 0203^]ËUuY]UE]UE]V6̴&Y^ËË!ËV6豴&Y^áFVj^u;}ƣFjP$jFx =Fu+jV5FjFR =Fu^W3@FjhF PRF4ǃ?k0FDt tuF8GFu_3^ËUkE8@F]ËVW3F44FY PE u5F葳%FY^ËUMu0QjX]ËU tAEtUtA3]ËUE PE]ËUE PE]ËUE]ËUE]Ë@ Ë@ Ë@ ËUVuu/謺QF W t9V7V"VpPy~t vfYV谻Y_^]jh@FƄuu3uf/&;F VtgYeYeV1YuE 覄ËuuYËUuY]j h`F4ej _Yeu uuYYuE EËuj rYj hFej Yeu uYYuE Ëuj $YËU=Fu=Fu]Vuu1.Eu VZYYt)jP!YYu9Fu3u VYYujİY^]ËU=Fu=Fu]Vuu-pEu VYYt)jPYYu9Fu3u VYYujCY^]ËUVW3WWjuWWhEu5-*39} tWWju WWhEt_^]ËUVW3WWWWjuWWرEu,*39} tWWWWju WWرEt_^]ËUQQSVW} tzVuVWE;r,G3;sjPEYYtwuuVE@=WPCP`}j=W蒃YYtȾ+;}@VPnYY;wύQAu+jYSoYYu3 WSV蝯 j豮Y_^[]ËU S] VWVu&VS}E;r+C3;sjPE3YYuuVMj=XSfNE@PAFPcz]j=SgYYt,+˃vVPwYY;]3Qff;u+jAPEFYYu SuV W臭Y_^[]ËUE 0E0YY]ËUE 0E0YY]ËUSVW3PPjuPPhE] j*^u >*30t3PPjSPPhEtjW蜮YYt"WVjujjhEȅu)*2VʬY_^[]Åtj=Z+NWPjSjjfPhEt‹3VPYY븋USVW3PPPPjuPPرE] j*^u w)30t3PPPPjSPPرEtjWӭYYt$3PPWVjuPPرEȅu()*2VY_^[]Åt3ҍ1RR+@=WPjSRRرEtË3VPYY빋UE PE0-YY]ËUE fPE0geYY]ËUE0E 0E0O ]ËUE0E 0E01 ]ËUE0E 0E0 ]ËUE0E 0E0j ]ËUEP@u+]ËUEPffu+]ËUE 0E0@YY]ËUE 0E0OYY]ËUE 0E0YY]ËUE 0E0YY]ËUE]V6\&Y^39ËU3PPju PuhE]ËU3PPPPju PuرE]ËUuuju juhE]ËU3PPuuju PuرE]Ë!Ë!Ë33939F39FËV6蝩&Y^ËËËUjuYY]ËU} u&IjX]u uxYYu]a&]ËUjuYY]ËU} u:&jX]u uwYYu]&]ËU]0UWMG t GAFuFGFGDVWRwHL HHP+V7PP^u PG _]y t PÍAjYËUSVWuMJE33MzBuL+׍yAu+σMFrЍC]P Ytq3ۋEM:AF4+PV袨 ul΍QAuE+MA:Ft+PVo u9΍QAu+Crjg}Yt M胡P_^[]3PPPPPTjYËUSVWuM9E3j _hENЍQAu+ʋBEBu+U ؃uύCP Yt{eE:FpЋ+@PV莧 uw΍QAuE+:F0+@PV` uI΍QAuE+MAEM rjH}Yt M胡P_^[]3PPPPP5fUjuuuu u]ËUSVuME3ۋHEMtu t 9]t9]u"蘭SSjuSQhEEuHEPp"YWP趥YuWjuSuhEuHEP3"^6P}YtHuuuWu VEt+SSu ujVSuرEuHEP!Y]VYWY_}t M胡P^[]Ë F3ËU}u]uuuuu 豬̋Uujuuu u]ËUjjuuu ug]ËUVuuuu uO^]UVuuuu u,FX\ `^]UEV0E0E0E p0uKP^]UVuuuu uO^]UVuuuu u,FX\ `^]UEV0E0E0E p0uxKP^]UVuuuu uO^]UVuuuu u,FX\ `^]UEV0E0E0E p0uJP^]UVuuuu uO^]UVuuuu u,FX\ `^]UEV0E0E0E p0utJP^]j h F7teE0YeM OuE Jt uE0bYj h@FseE02YeM QuE s uE0Yj hFseE0YeM RuE s uE0Yj hFDseE0YeM MuE Ws uE0oYj hFreE0?YeM IOuE s uE0Yj hFreE0YeM OuE r uE0YËU EMEEEPu EP]ËU EMEEEPu EP]ËU EMEEEPu EP]ËU EMEEEPu EP]ËU EMEEEPu EP]ËU EMEEEPu EP]ËU}uЦ2}tEEEEEEEEEEEPuYY]ËU}uw2}tEEEEEEEEEEEPudYY]ËU}u^2}tEEEEEEEEEEEPu3YY]ËU}uť2}tEEEEEEEEEEEPuRYY]ËU}ul2}tEEEEEEEEEEEPuYY]ËU}uS2}tEEEEEEEEEEEPuPYY]ËUQ}u輤SVuW}uu9u3]u$u u;v-GPVu uuM8"ulzcSVu EucDuuM8"u5CM)y(u+" ޣ_^[]ËUQ}u踣SVuW}uu9u3]u$u u;v-GPVu uuO8"upvgSVu Eu3ɃfL^uuG8"u7=M+y*3fu#" ֢_^[]ËUF3ʼnE}ES]u蔢ttVWu|M33ҫ ‰u uƅu Puu QPsC`tKE3Ƀ tuuo;u*x);v%[ tMty ;tM nFt |P_^M3[_]ÅuË;uj^L밋UF3ʼnE}ES]uXttVWu|*M33ҫ ‰u uƅu Puu QP)CftQEtuuv;u.x0;v,btSty3f;tP3f GDt |P_^M3[]]ÅuË;uj^3fD_뭋U F3ʼnEES]VuHu葟OttWuM833ҫH4 ‰8<@u DuƅD8 (LE H,E $HP,0P0P P(PLX^tKE3Ƀ tuuo@;u*x);v%[4 tMty @;tM ,C_t PƋM^3[[]ÅuË@;uj^L밋U F3ʼnEES]VuHuԝUttWuM833ҫH4 ‰8<@u DuƅD8 (LE H,E $HP,0P0P P(P8LX`dtQEtuuv@;u.x0;v,b4tSty3f@;tP3f GiA_t PƋM^3[ Z]ÅuË@;uj^3fD_뭋UF3ʼnE}ES]uPttVWu|"M33ҫ ‰u uƅu Puu QPS=\tKE3Ƀ tuuo;u*x);v%[ tMty ;tM ?t |P_^M3[X]ÅuË;uj^L밋UF3ʼnE}ES]u蔚ttVWu|M33ҫ ‰u uƅu Puu QP =btQEtuuv;u.x0;v,btSty3f;tP3f Gh>t |P_^M3[ W]ÅuË;uj^3fD_뭋U}ul,]Vut:}v4u uuuVu u5yu "" ՘^]ËU}u 贘]Vut<}v6u uuuVu u9y3fu " [^]ÃuËËuËuËUQ3VuWs7  2SS39uv;w1V%EYtEP<EPÏY[_^]U샹\uAIAMQU x9d}4Xuq,A1PdjP ҋld $2]U샹\uAIAMQU x9d}4Xuq,A1PdjP ҋl 襖2]U샹\uAIAMQU x9d}4Xuq,A2PdjPZ ҋlf &2]U샹\uAIAMQU x9d}4Xuq,A2PdjP( ҋl 觕2]UAAM@Q]UAAM@Q]UAAM@Q]UAAM@Q]U샹\uAIAMQU x9d}4Xuq,A1PdjPJ ҋl 謔2]U샹\uAIAMQU x9d}4Xuq,A1PdjP ҋlm -2]U샹\uAIAMQU x9d}4Xuq,A2PdjP ҋl讓2]U샹\uAIAMQU x9d}4Xuq,A2PdjP ҋlo/2]UAAM@Q]UAAM@Q]UAAM@Q]UAAM@Q]U샹\uAIAMQU x9d}4Xuq,A1PdjP ҋlt42]U샹\uAIAMQU x9d}4Xuq,A1PdjP ҋl赑2]U샹\uAIAMQU x9d}4Xuq,A2PdjPj ҋlv62]U샹\uAIAMQU x9d}4Xuq,A2PdjP8 ҋl跐2]UAAM@Q]UAAM@Q]UAAM@Q]UAAM@Q]U샹\uAIQMY x=d}8Xuq,A1PdjP_$ҋlE轏2]U샹\uAIQMY x=d}8Xuq,A1PdjP,$ҋlE?2]UAAHE]UAAHE]U샹\uAIAMQU x9d}4Xuq,A1PdjP* ҋl茎2]U샹\uAIAMQU x9d}4Xuq,A1PdjP ҋlM 2]U샹\uAIAMQU x9d}4Xuq,A2PdjP ҋl莍2]U샹\uAIAMQU x9d}4Xuq,A2PdjP ҋlO2]UAAM@Q]UAAM@Q]UAAM@Q]UAAM@Q]U샹\uAA@MQT x8d}3Xuq,A1PdjPҋlV2]U샹\uAA@MQT x8d}3Xuq,A1PdjPҋl虋2]U샹\uAA@MQT x8d}3Xuq,A2PdjPOҋl\2]U샹\uAA@MQT x8d}3Xuq,A2PdjPҋl蟊2]UAAM@Q]UAAM@Q]UAAM@Q]UAAM@Q]U샹\uAIUIb ] xAd}YYM_3^)]1VYËU F3ʼnEVW8WI FY$0sNHFD(@F <4AL8DP@P8uu.:u*uSw7v uw7 : 23:_^[]UQQS]VuWNpMƀp„3stESuEstSuctЀCuctCu}urukQSEYYMu uu3;M t:uh3Ƀ~ 3} ;uRv SuS+YCY>8uu.:u*uSw7v uw7 : 23:_^[]UQQS]VuWjpX~f;Mf;W?SE6WESEMut8MMulWuYYu u|3;M {:uo3Ƀ~ 3} ;uYv RuR+YCYE:Mu5M:u.uESp0v ؋EWp0 : 23:_^[]UQQS]VuWjpX~f;Mf;W8SE/WESEMut8MMulW)uYYu u|3;M {:uo3Ƀ~ 3} ;uYv QuQ+YCYE:Mu5M:u.uESp0v ؋EWp0 : 23:_^[]4Eø4Eø4Eø4Eø4Eø4Eø4Eø4Eø4Eø4Eø4Eø4EËUQSVMWj Q~ 'FeHPM F 8"tE;FrF2?ut_^[]UQSVMWj Q~ 'FeHPWM F 8"tE;FrF2?ut_^[]UQSVMWj Q~ 'FeHPM F 8"tE;FrF2?ut_^[]UQSVMWj Q~ 'FeHPM F 8"tE;FrF2?ut_^[]UQSVMWj Q~ 'FeHPCM F 8"tE;FrF2?ut_^[]UQSVMWj Q~ 'FeHPM F 8"tE;FrF2?ut_^[]UQSVMWj Q~ 'FePM F 8"tE;FrF2?ut_^[]UQSVMWj Q~ 'FeP3M F 8"tE;FrF2?ut_^[]UQSVMWj Q~ 'FePM F 8"tE;FrF2?ut_^[]UQSVMWj Q~ 'FePwM F 8"tE;FrF2?ut_^[]UQSVMWj Q~ 'FePM F 8"tE;FrF2?ut_^[]UQSVMWj Q~ 'FePM F 8"tE;FrF2?ut_^[]VH讔u^S39^轹}D^8^F9^vF1PFtw$gxA~EN(^$^0^ ^,^<8'UI^(!?d-hFF1kFyFPP;F[^wAwAwAwAxA xAxAxAVH膓u^S39^u虸YCW*^8^F9^vF1PΉF輔F$yALD^$^0^ ~(^,^<4q'0H^(}.tDFF1VF赘t&U.F_[^蕷UBI'yA0yADyAMyAVyA[yAdyAmyAVH*u^S39^9A^8^F9^vF1PFtw$zAJEN(^$^0^ ^,^<8z'I|A|A|A|A|A|A}A }AVHƎu^S39^虳Y>^8^F9^vF1PFtw$~AEN(^$^0^ ^,^<8 '2D^(!M2hFF1kFPPJF[^ÍI}A~A~A!~A*~A/~A8~AA~AVH菍u^S39^}==^8^F9^vF2PFtw$A EN(^$^0^ ^,^<8 '@C^(!3gFfF2fgFxAPP6F[^ÍIA A5A>AGALAUA^AVH_u^S39^uQ<Wz^8^F9^vF2PΉFcF$A D^$^0^ ~(^,^<4 'B^(4tHFfF2fRFht&)F_[^H;pAyAAAAAAAVHu^S39^:^8^F9^vF2PFtw$/A EN(^$^0^ ^,^<8'A^(!5gFfF2fgFPPEF[^ËAAŁA΁AׁA܁AAAVHu^S39^ͮ9^8^F9^vF2PFtw$_A EN(^$^0^ ^,^<8')@^(!]7gFfF2fgFAPP6F[^ÍIǂAЂAAAAAAAVHu^S39^u衭a8W^8^F9^vF2PΉF赌F$AD^$^0^ ~(^,^<4'>^(#8tHFfF2fRF8t&<)F_[^蘬X7 A)A=AFAOATA]AfAVH腇u^S39^=6^8^F9^vF2PFtw$߅AEN(^$^0^ ^,^<8'>^(!W9gFfF2fgFPPEF[^ËWA`AuA~AAAAAUE A ]UE A ]UE A ]UE A ]UE A ]UE A ]UE A ]UE A ]UE A ]UE A ]UE A ]UE A ]3@9Xu 9\t33@9Xu 9\t33@9Xu 9\t33@9Xu 9\t3ððððËXu \uÃu \t2ËXu \uÃu \t2ËXu \uÃu \t2ËXu \uÃu \t22222Ã\u 3@9Xt3Ã\u 3@9Xt3Ã\u 3@9Xt3Ã\u 3@9Xt32222Ãa(Ãa(Ãa(Ãa(Ãa(Ãa(Ãa(Ãa(Ãa(Ãa(Ãa(Ãa(A1 t-t"tHt uI I I  I I A1 t-t"tHt uI I I  I I A1 t-t"tHt uI I I  I I A1 t-t"tHt uI I I  I I A1 t-t"tHt uI I I  I I A1 t-t"tHt uI I I  I I A2 t-t"tHt uI I I  I I A2 t-t"tHt uI I I  I I A2 t-t"tHt uI I I  I I A2 t-t"tHt uI I I  I I A2 t-t"tHt uI I I  I I A2 t-t"tHt uI I I  I I uݥ02ðËVuu讥n02^ð^u荥M02ðun.02ðËVLuu?/2^ð^u/2ðu/2ðËVuuФ/2^ð^u诤o/2ðu萤P/2ðËVuua!/2^ð^u@/2ðËVju^ÍFPF1HP;^ËVju^ÍFPF1HP^ËVju^ÍFPF1HP^ËVj7u^ÍFPF1HP:^ËVjnu^ÍFPF1HP^ËVju^ÍFPF1HP^ÍQA<RQ2HR芈ÍQA<RQ2HRoÍQA<RQ2HRTÍQA<RQ2HR軈ÍQA<RQ2HR蠈ÍQA<RQ2HR腈ËVWFN1F<ыfTt-hA8hu@A,AA,A, A,Q<3uz2uBA, A<6uz4uBA, AuTt-hA8hu@A,AA,A, A,Q<3uz2uBA, A<6uz4uBA, AuTt-hA8hu@A,AA,A, A,Q<3uz2uBA, A<6uz4uBA, AuTt-hA8hu@A,AA,A, A,Q<3uz2uBA, A<6uz4uBA, AuTt-hA8hu@A,AA,A, A,Q<3uz2uBA, A<6uz4uBA, AuTt-hA8hu@A,AA,A, A,Q<3uz2uBA, A<6uz4uBA, Aut7ACt>D~GSuoV2SjWZttVHuQ=5ҋ|ɃpMt?g~1itntouS륋uM뜃N Qj =댋J#냋TwsgHtЃgQi~0t(V 3WfEEt'tE-tE+ tE N1xtXu u2ۀat At2ut'D=0Xt At2$xD=^$+^8+ uFPSHj PVv FPWEHPvN ~tuWSHj0Pjo?|F tWSHj P_^[]ËUQSV3C3F1dlX>t7ACt>D~GSuT2SjWZttVHuQ3ҋɃpMt?g~1itntourQ륋K뜃N Qj 8<댋u"냋RwsgHtЃgQit.~0uV 3WfEEt'tE-tE+ tE N1xtXu u2ۀat At2ut'D=0Xt At2$xD=^$+^8+ uFPSHj Pv FPWEHPtN ~tuWSHj0Pۮjn?|F tWSHj P谮_^[]ËUQSV3C3F1dlX>t7ACt>D~GSuR2SjWZttVHuQ$2ҋɃpMt?g~1itntouWO륋J뜃N Qj |;댋!냋PwsgHtЃgQi~0t(V 3WfEEt'tE-tE+ tE N1xtXu u2ۀat At2ut'D=0Xt At2$xD=^$+^8+ uFPSHj Pv FPWEHPrN ~tuWSHj0P謬jl?|F tWSHj P聬_^[]ËUQSV3C3F1dlX>t7ACt>D~GSu9Q2SjWZttVHuQ0ҋ)ɃpMt?g~1itntouGM륋^H뜃N Qj :댋 냋{NwsgHtЃgQi~0t(V 3WfEEt'tE-tE+ tE N1xtXu u2ۀat At2ut'D=0Xt At2$xD=^$+^8+ uFPSHj Pv FPWEHPyqN ~tuWSHj0Pڪjj?|F tWSHj P诪_^[]ËUQSV3C3F1dlX>t7ACt>D~GSu}O2SjWZttVHuQ.ҋ]ɃpMt?g~1itntou7K륋F뜃N Qj 9댋 냋dLwsgHtЃgQi;t.~0uV 3WfEEt'tE-tE+ tE N1xtXu u2ۀat At2ut'D=0Xt At2$xD=^$+^8+ uFPSHj Pv FPWEHP?oN ~tuWSHj0P蠨jei?|F tWSHj Pu_^[]ËUQSV3C3F1dlX>t7ACt>D~GSuM2SjWZttVHuQl-ҋɃpMt?g~1itntouI륋E뜃N Qj 8댋I냋BJwsgHtЃgQi~0t(V 3WfEEt'tE-tE+ tE N1xtXu u2ۀat At2ut'D=0Xt At2$xD=^$+^8+ uFPSHj P貦v FPWEHPmN ~tuWSHj0Pqjg?|F tWSHj PF_^[]ËU F3ʼnESV3jAZjXF2Ydk;>t6;Ct?D~GSuK2jjWZttVHuS+ыȃpMt?g~1itntouF뤋9C뛃N Sj 8닋f낋HvsfHtЃfSi8^0@V 3W‰]Af]j _t(t j-XfEtj+tf}N2xtjXXf;u t2at jA_f;t2j0_ut0jXXf|]f;t jAXf;t2$xffD]~$+~8+ uFPWHj P.v FPSEHP0jN ^tuSWHj0Pj1f;|F tSWHj P£_M^3[L]ËU F3ʼnESV3jAZjXF2Ydk;>t6;Ct?D~GSu J2jjWZttVHuS)ыȃpMt?g~1itntouD뤋PA뛃N Sj 6닋{낋EvsfHtЃfSi~I8^0@V 3W‰]Af]j _t(t j-XfEtj+tf}N2xtjXXf;u t2at jA_f;t2j0_ut0jXXf|]f;t jAXf;t2$xffD]~$+~8+ uFPWHj P¡v FPSEHPgN ^tuSWHj0P聡jPd;|F tSWHj PV_M^3[]ËU F3ʼnESV3jAZjXF2Ydk;>t6;Ct?D~GSuH2jjWZttVHuS=(ыȃpMt?g~1itntousB뤋}?뛃N Sj 6닋낋CvsfHtЃfSi8^0@V 3W‰]Af]j _t(t j-XfEtj+tf}N2xtjXXf;u t2at jA_f;t2j0_ut0jXXf|]f;t jAXf;t2$xffD]~$+~8+ uFPWHj Pev FPSEHPgeN ^tuSWHj0P$j~b;|F tSWHj P_M^3[胿]ËU F3ʼnESV3jAZjXF2Ydk;>t6;Ct?D~GSu6F2jjWZttVHuSx&ы ȃpMt?g~1itntou5@뤋=뛃N Sj 4닋낋?AvsfHtЃfSi8^0@V 3W‰]Af]j _t(t j-XfEtj+tf}N2xtjXXf;u t2at jA_f;t2j0_ut0jXXf|]f;t jAXf;t2$xffD]~$+~8+ uFPWHj Pev FPSEHP*dN ^tuSWHj0P$j`;|F tSWHj P_M^3[&]ËU F3ʼnESV3jAZjXF2Ydk;>t6;Ct?D~GSuMD2jjWZttVHuS$ы ȃpMt?g~1itntou=뤋;뛃N Sj 3닋낋>vsfHtЃfSioI8^0@V 3W‰]Af]j _t(t j-XfEtj+tf}N2xtjXXf;u t2at jA_f;t2j0_ut0jXXf|]f;t jAXf;t2$xffD]~$+~8+ uFPWHj Pv FPSEHPaN ^tuSWHj0P踚j^;|F tSWHj P荚_M^3[躺]ËU F3ʼnESV3jAZjXF2Ydk;>t6;Ct?D~GSu_B2jjWZttVHuS"ы ȃpMt?g~1itntou;뤋9뛃N Sj 2닋낋<vsfHtЃfSi8^0@V 3W‰]Af]j _t(t j-XfEtj+tf}N2xtjXXf;u t2at jA_f;t2j0_ut0jXXf|]f;t jAXf;t2$xffD]~$+~8+ uFPWHj P蜘v FPSEHPa_N ^tuSWHj0P[j\;|F tSWHj P0_M^3[]]Ày1*t A$P蛱ÃAA@A$yI Y$ËV~1*t F$PDZ^JDu^ËtF$y N ؉F$^Ày1*t A$PÃAA@A$yI Y$Ày1*t A$PÃAA@A$yI Y$ËV~1*t F$PE^jDu^ËtF$y N ؉F$^Ày1*t A$PfÃAA@A$yI Y$fy2*t A$P薲ÃAA@A$yI Y$ËVf~2*t F$Pò^Du^ËtF$y N ؉F$^fy2*t A$PÃAA@A$yI Y$fy2*t A$PÃAA@A$yI Y$ËVf~2*t F$PD^Du^ËtF$y N ؉F$^fy2*t A$PfÃAA@A$yI Y$j Xj Xj Xj XjXjXjXjXøEøEøEøEøxEøxEøxEøxEËUE w$3AjX]3@]jj3]ËA A%AA)A)AAA-AAA)AjjMjj jj"jjA#jj$jj%jj5'jju(jj)jj)+jji,jj-ËSVWFFxt6_t/v,F1Pv6^4t F8F<F8F44EF8F<_^[ËUQeEVPqt`TtSSW}t6_t/v,F1Pv6裃^4t F8F<F8F44EF8F<_[^]ËSVWFFxt6_t/v,F1Pv6=^4t F8F<F8F44EF8F<_^[ËSVWFFxt6_t/v,F1Pv6ڂ^4t F8F<F8F44EF8F<_^[ËUQeEVP-qt`%tSSW}t6_t/v,F1Pv6^^4t F8F<F8F44EF8F<_[^]ËSVWFFxt6_t/v,F1Pv6^4t F8F<F8F44EF8F<_^[ËSVWFFxt6_t/v,F2Pv6Ձ^4t F8F<F8F44EF8F<_^[ËUQeEVPpt`tSSW}t6_t/v,F2Pv6Y^4t F8F<F8F44EF8F<_[^]ËSVWFFxt6_t/v,F2Pv6^4t F8F<F8F44EF8F<_^[ËSVWFFxt6_t/v,F2Pv6萀^4t F8F<F8F44EF8F<_^[ËUQeEVP;pt`ǽtSSW}t6_t/v,F2Pv6^4t F8F<F8F44EF8F<_[^]ËSVWFFxt6_t/v,F2Pv6^4t F8F<F8F44EF8F<_^[ËUQQVWN F(yF1#A{۠UMW~ t|s كڃ@~ ~(_} F(f 9F(~F( uf u uu RQlQ0gF t~8tF480t N4F40F8^[]USVv,uY؋˃txtVIt3tJU2F FFHPXF FFt@?H3;F FFt@!@F FFt@@W~ t|s كڃ@~ ~(_} F(f 9F(~F( uf u uu RQlQYfF t~8tF480t N4N40F8^[]USVv,+Y؋˃txtVIt3tKI 2F FFHPXF FFt@?H3;F FFt@!@F FFt@@W~ t|s كڃ@~ ~(_} F(f 9F(~F( uf u uu RQCkQeF t~8tF480t N4N40F8^[]UQQSVv,e؃eY˃t^It:tG2&F EPt2F FFHPXF FFt@?H3;F FFt@!@F FFt@@W~ t|s كڃ@~ ~(_} F(f 9F(~F( uf u uu RQdQ@^F t~8tF480t N4N40F8^[]VWFFx8u'=2Dv,Yt+tHtu΋FWFfFfFF0_^ËUQeEVPEu2vti8u<Zv,FYt4t#HtuЋFMQENEfNfENF0^]ËVWFFx7u<2Dv,Yt+tHtu΋FWFfFfFF0_^ËVWFFx 7u;f2Dv,PYt+tHtu΋FWFfFfFF0_^ËUQeEVPDu2v讐ti6u;v,Yt4t#HtuЋFMQENEfNfENF0^]ËVWFFx6u:Y2Dv,CYt+tHtu΋FWFfFfFF0_^ËVWFFx5u%:2Dv,Yt+tHtu΋FWFfFfFF0_^ËUQeEVPCu2vCti5u9Xv,DYt4t#HtuЋFMQENEfNfENF0^]ËVWFFx4u92Dv,Yt+tHtu΋FWFfFfFF0_^ËVWFFx4u8d2Dv,NYt+tHtu΋FWFfFfFF0_^ËUQeEVP|Bu2v؍ti3u8v,Yt4t#HtuЋFMQENEfNfENF0^]ËVWFFx3u7W2Dv,AYt+tHtu΋FWFfFfFF0_^ËQ t ʀQ jjËQ t ʀQ jjËQ t ʀQ jj ËQ t ʀQ jjKËQ t ʀQ jjvËQ t ʀQ jjËQ t ʀQ jjËQ t ʀQ jj+ËQ t ʀQ jjËQ t ʀQ jjËQ t ʀQ jjËQ t ʀQ jj?jjA(A, )jjA(A, [jjA(A, jjA(A, jjA(A, %jjA(A, jjA(A, jjA(A, jjA(A, UjjA(A, jjA(A, jjA(A, ËSVWFF~(X^4uv,F1Pv6\LtuF4 ~4Ej$Yf9u)9Xuh@dWPi~ dž\\\uQj E}Pv>U HB F9Xu#x(j$Xf9u d} ;ȉ _^[]b2ðððÃytytv62ðÃytytT2ðÃytyt22ðÃytytЩ2ðËVnu2^Ã\uOXuF td)FAtt t uFF;uӰ^L뎋Vu2^Ã\uOXuF td)FAtt t uFF;uӰ^ ̨뎋Vu2^Ã\uOXuF td)FAtt t uFF;uӰ^L뎋VTu2^Ã\uOXuF td)FAtt t uFF;uӰ^ ̧뎰ðððÃ\uGXu> x!d}q,A1PdjPq2ðÃ\uGXu> x!d}q,A1PdjP^2ðÃ\uGXu> x!d}q,A2PdjP ˦2ðÃ\uGXu> x!d}q,A2PdjPx2ðððððËUMVA ujQ8оFYtt?k0Fƀx)u"ttƒ?k04FF-t-2^]ðø*uPj?fEG;}uԋM>ut_^[]UQQSً@ txu ME ^E VuW}&GME;t4EPP/E8u>*uPj?E;}uҋM>ut_^[]UQQVW}E'Mp9pux t ME JEE+pS] ;rVu0NM 0px Et ;t0[M?ut_^]UQQS]WE #Mz9zuz t ME QEL+zE ;rV4?Vu2NM 0^xx EtM  ;} t8M;ut _[]UE MH%]ËU,EUMEEEEEE MUEu ʚ.tEEԍEE؍EE܍EEEEEPR3YY]ËU,EUMEEEEEE MUEuS.tEEԍEE؍EE܍EEEEEPRlYY]ËU,EUMEEEEEE MUEuܙ.tEEԍEE؍EE܍EEEEEPRYY]ËU,EUMEEEEEE MUEue.tEEԍEE؍EE܍EEEEEPRYY]ËU,EUMEEEEEE MUEu..tEEԍEE؍EE܍EEEEEPRYY]ËU,EUMEEEEEE MUEu w.tEEԍEE؍EE܍EEEEEPRhYY]ËUu$u uuuuu uF ]ËUu$u uuuuu u# ]ËUu uuuuu u]ËUu uuuuu u]ËUu uuuuu uD]ËUu uuuuu u]ËUu uuuuu u5]ËUu uuuuu uP]̋UQF3ʼnEMS] ;vlEVW;w(IMWVвEU~E;vM;t!t+RLDJuEM+؍;w_^M3[ T]̋UE W};t&Vut+@TLPu^_]̋UF3ʼnEMU VuW}u$t $ _^M3yS]Åt܅tDžJSщ3+XwVWQ}SQΉвEփ~WS вEփ~W SвEփ~WS ;v7;s%SVвE~;w=;wSVвE׋~ۋ+;vSWвEփዕ;r^;t3ދ׋+ߊRLDJu답;މ;s2$+;v%SWвEt;r/+;vSWвE֋t݋Nj++;|9;s |@;sL΋j;s T@;s׋+x T[M_3^ u]ËUQjuQQu uP u]ËUQjuQQu uP u]ËUQjuQQu uP uz]ËUQjuQQu uP jN]ËUQjuQQu uP^ u!]ËUQjuQQu uP1 ui]ËUQjuQQu uP u]ËUQjuQQu uP u]ËUQjuQQu uP j]ËUQjuQQu uPc j]ËUQjuQQu uP7 jp]ËUQjuQQu uP j7]ËUQjuQQu uP j]ËUQjuQQu uP j]ËUQjuQQu uP jf]ËUQjuQQu uPv j]ËUQjuQQu uPJ j]ËUQjuQQu uP jW]ËUQjuQQu uP j]ËUQjuQQu uP j]ËUQQeEjP^YYtEMt]ËU3W}jEPYY_tUEMtQ]ËUQQVuuj3S} ueEeSP`ME>jhޱPQa][| =wkd3@N^]ËUQQVuuBj3W} ueEeSPME>jhޱPQ][| =o@wkd3V@N^]ËUQQeEjPYYtEMt]ËU3W}jEP2YY_tUEMtQ]ËU]U]UV)tuV4YY#^]ËUVtuVYY#^]ËUVuu*j^0hWj Y} uj^0h?|?~j^0\S3ۍEP]]]YwEPYeEP YS=~_=}X+EEEPV}YY9]VYE)EEPVKYYF WV.YY>9]tVYtEE+F +}j<[yJ<+Ǚ~ǙVyJ<+NǙj~Ǚ[VyJ+NǙȅ~Fj_N VN3[_^]yFN j_F V׃F F mFNSSSSS,g̋UVuuj^0fSWj Y} uj^0f-S39_|9rjX9G|?o@vj^0[_^]E]P]]YEPYEPY_|vujX;n|{x|Ml}Puxu uP _Mt^t hPM3_]ËU|W}uAY}tSVu3ۃuNff;u+uMu w}EME}PuEu uP^MKuЋPY]8]t M䃡P^[_]ËUQQE EEPuEtYY]ËUQQE EEPuEsYY]ËUQQE EEPuE~YY]ËUQQE EEPuE[YY]ËUEPqY]ËUEjPYY]ËUuMuuu E\E]ËUuMuuu X\E]ËUuMuuu k\E]ËUuMuuu ~\E]ËUF3ʼnEEVu,tuGW3@"QM QPVQP.2U$^t M M u M3e]ËUF3ʼnEEVu,tuV3@"QM QPVQP2U$^t M M u M3]ËUF3ʼnEEVu,tuQV3@"QM QPVQP81U$^t M M u M3o]ËUF3ʼnEEVu,tuU3@"QM QPVQP1U$^t M M u M3]ËUF3ʼnEEVu,tu[U3@"QM QP7VQPB0U$^t M M u M3y]ËUF3ʼnEEVu,tuT3@"QM QPVQP0U$^t M M u M3]ËUF3ʼnEEVu,tue%T3@"QM QPVQPL/U$^t M M u M3]ËUF3ʼnEEVu,tuS3@"QM QP-VQP/U$^t M M u M3]ËU$Vu WоujXAFΉEFSE艒]MMMu܉MnSEjP uMU--t+u 5ȈMIiNn3ۈ]0uCF΋~EE fn4 3j0YE}f;uSw] ˋ蟍xtXtPfU3EsfЉ}܋fU}3u؋uMj0EXMf;uP^;ffUf;tuj0X3E:DžHDž``EjIEE DžLf @Ep Džx E DžXf Ep Džp E DžDf Ep Džhf Ep DžP E Ef Ep EPEZEEE E*E@EJEDž|DžtDžlDždDž\ADžTZEaEf; f;Us ƒ0f;Hf;`f;Us -`f;Uf;Us -f;Lf;Us -f f;xf;Us - kf;Xcf;Us -f Kf;pCf;Us - +f;D#f;Us -f f;hf;Us -f f;Pf;Us - f;Uf;Us -f f;Uf;Us -Pf;Uf;Us -wf;Urvf;Us - af;Ur`f;Us -@Kf;UrJf;|s -2f;tr.f;ls%-f;ds -u:f9\w f;Tv ff+Ef;Ewff+Ef;Ew ;w.M;tAMEl@fj0fUXE;5UfȋEuj0;fMXu*f;u%uN fj0XfMf;tUuu䋽@f; f;Ms 0f;Hf;`f;Ms -`f;Mf;Ms -f;Lf;Ms -f f;xf;Ms - kf;Xcf;Ms -f Kf;pCf;Ms - +f;D#f;Ms -f f;hf;Ms -f f;Pf;Ms - f;Mf;Ms -f f;Mf;Ms -Pf;Mf;Ms -wf;Mrvf;Ms - af;Mr`f;Ms -@Kf;MrJf;|s -2f;tr.f;ls%-f;ds -u:f9\w f;Tv ff+Ef;Ewff+Ef;Ew ;w&;tBUM 腆Ufj0fMXu&4P3Huu 衰FΉE؋FE)fE3˃EtPt et pu M8]Pfj-Xf;fMj+Zf;tf;uDžffMj03Xf;u諅fj0XfMf;t3f; f;Ms 0f;Hf;`f;Ms -`f;Mf;Ms -f;Lf;Ms -f f;xf;Ms - kf;Xcf;Ms -f Kf;pCf;Ms - +f;D#f;Ms -f f;hf;Ms -f f;Pf;Ms - f;Mf;Ms -f f;Mf;Ms -Pf;Mf;Ms -wf;Mrvf;Ms - af;Mr`f;Ms -@Kf;MrJf;|s -2f;tr.f;ls%-f;ds -u:f9\w f;Tv ff+Ef;Ewff+Ef;Ew  s.k ЉU;2Ufj0fMXEQj0Zf;f;Ms +yHf;Z`f;`f;MrҋUf;Nf;MrLf;9f;Mrxf;$f;MrXf;f;Mrpf;f;MhDf;f;MOhf;f;M6Pf;f;MUf;f;MUf;f;MUf;rqf;MUf;r_f;MUf;rMf;MUf;r;f;|tf;r#f;lsf;du$f9\w f;Tv*Uff+f;Ev s-OffM*Uff+f;Ew ΄t]u4IKt`fE]u\uMV;tXyuI;u;tI;$;|'38EH@E؁P~j j;}j3+8EN*jX%u܍EuWPu܍EuWP!^_[]ËU$Vu W}ujXAFΉEFSEf]MMMu܉MKSEjP] uMU--t+u ȈMIiNn3ۈ]0uCF΋~EE fn4 3j0YE}f;uSw] ˋ}{xtXtPޥfU3EQ{fЉ}܋fU}3u؋uMj0EXMf;uP^{ffUf;tuj0X3E:DžHDž``EjIEE DžLf @Ep Džx E DžXf Ep Džp E DžDf Ep Džhf Ep DžP E Ef Ep EPEZEEE E*E@EJEDž|DžtDžlDždDž\ADžTZEaEf; f;Us ƒ0f;Hf;`f;Us -`f;Uf;Us -f;Lf;Us -f f;xf;Us - kf;Xcf;Us -f Kf;pCf;Us - +f;D#f;Us -f f;hf;Us -f f;Pf;Us - f;Uf;Us -f f;Uf;Us -Pf;Uf;Us -wf;Urvf;Us - af;Ur`f;Us -@Kf;UrJf;|s -2f;tr.f;ls%-f;ds -u:f9\w f;Tv ff+Ef;Ewff+Ef;Ew ;w.M;tAMEJw@fj0fUXE;wUfȋEuj0;fMXu*f;u%uNvfj0XfMf;tUuu䋽@f; f;Ms 0f;Hf;`f;Ms -`f;Mf;Ms -f;Lf;Ms -f f;xf;Ms - kf;Xcf;Ms -f Kf;pCf;Ms - +f;D#f;Ms -f f;hf;Ms -f f;Pf;Ms - f;Mf;Ms -f f;Mf;Ms -Pf;Mf;Ms -wf;Mrvf;Ms - af;Mr`f;Ms -@Kf;MrJf;|s -2f;tr.f;ls%-f;ds -u:f9\w f;Tv ff+Ef;Ewff+Ef;Ew ;w&;tBUM ctUfj0fMXu&4$?3Huu 蒞FΉE؋FEtfE3˃EtPt et pu M8]Psfj-Xf;fMj+Zf;tf;usffMj03Xf;usfj0XfMf;t3f; f;Ms 0f;Hf;`f;Ms -`f;Mf;Ms -f;Lf;Ms -f f;xf;Ms - kf;Xcf;Ms -f Kf;pCf;Ms - +f;D#f;Ms -f f;hf;Ms -f f;Pf;Ms - f;Mf;Ms -f f;Mf;Ms -Pf;Mf;Ms -wf;Mrvf;Ms - af;Mr`f;Ms -@Kf;MrJf;|s -2f;tr.f;ls%-f;ds -u:f9\w f;Tv ff+Ef;Ewff+Ef;Ew  s.k ЉU;qUfj0fMXEQj0Zf;f;Ms +yHf;Z`f;`f;MrҋUf;Nf;MrLf;9f;Mrxf;$f;MrXf;f;Mrpf;f;MhDf;f;MOhf;f;M6Pf;f;MUf;f;MUf;f;MUf;rqf;MUf;r_f;MUf;rMf;MUf;r;f;|tf;r#f;lsf;du$f9\w f;Tv*Uff+f;Ev s--offM*Uff+f;Ew ΄t]u49t`nfE]uMuMV;tXyuI;u;tI;$;|'38EH@E؁P~j j;}j3+8EN*jX%u܍EuWPu܍EuWP[^_[]ËUS]EV3EW} Ɖ}]u :XEt:\EugVmȋE@ EuQ蛗GωEGE+m:`Et:hEu-mFuP]jX_^[]ÍM8jM83ɄՋUS]EV3EW} Ɖ}]u :Et:EugmȋE@ EuQ`GωEGEl:Et:Eu-lFuP"jX_^[]ÍM5jM53ɄՋUS]EV3EW} Ɖ}]u f;xEt f;Eur lfȋEf EuQSGωEGEkff;Et f;Eu0kf uPjX_^[]ÍMT7jMH73ɄՋUS]EV3EW} Ɖ}]u f;Et f;EurkfȋEf EuQ GωEGEkff;Et f;Eu0`kf uPŕjX_^[]ÍM~4jMr43ɄՋU SVuEW} 3ۉ}uE:pEt:tEuJ;jCuP舔GωEGEj<(t)M%4M 4jiWVYYtjWVYYtj[RH>)t@t1ȍAЃ vAvAv _ozi<)uɀ>)YjX_^[]ËU SVuEW} 3ۉ}uE:Et:EuJiCuPGωEGExi<(t)M=3M#3jBiWVYYtjWVYYtj[R腓H>)t@t1ȍAЃ vAvAv _oh<)uɀ>)YjX_^[]ËUSVuEW} 3ۉ}uEEf;Et f;EuPFhfuP蘒GωEGE hff(t)M4Mi4jgWVfYYt E WV YYtRENj)[f9tCft2ȍAЃ vAvAv _gwgff;uf9OjX_^[]ËUSVuEW} 3ۉ}uEEf;Et f;EuPgfuPGωEGEggff(t)ME1M+1j.gWVf)YYt E WVYYtRuENj)[f9tCft2ȍAЃ vAvAv _gfff;uf9OjX_^[]ËUSV3W}:Et:EuM eFu޳_^[]ËUSV3W}:XEt:\EuM fFu޳_^[]ËUSV3W}f;8Et f;@EuM efuس_^[]ËUSV3W}f;xEt f;EuM efuس_^[]ËUSV3W}:Et:EuM dFu޳_^[]ËUSV3W}:HEt:PEuM eFu޳_^[]ËUSV3W}f; Et f;,EuM df uس_^[]ËUSV3W}f;`Et f;lEuM df uس_^[]ËUE $DBuu YY]uu WE 38E3]ËE 38ދE 38ŋE 38묋E릋E 3@]ËE 3j8EX]ËE 3j8ݍItBBBB×BܗBBB B&BUE $HBuu 3YY]uu jE uPYY3]ËE uPE uPЋE uP`uRuj4YY3@]ËE uPYYjX]ËE uP^YYjBBBBΘBBBBB-BU@M VWt!},t%|$~誗j"3ЋTSuMq3M EEEЋE Ea؍EPjQM |a؍EPjP] u8E0E-uE+u M >a؈]Mtu{,0< wÃ",a<wÃ,A<wÃt uAj _Y؍EPjP]K u8E0E-uE+u M Y؈]Mtu{,0< wÃ",a<wÃ,A<wÃt uAj _P`PhVacu3P\`PhVX33ۋ$C;Xu苝Pss L73P\`PhV=;`us`0tЉX {牕Xu<33,0+@0,u;!0O,33ҋL49<st_;u0@lj,40,L04,@LF4;PYYju3 t@3su3 \t@3QЋ+;j#_3҃j Y+ȉ3@{HɉЉtA3j X+9ssut2rr jrZʉ;+;rl;s3F;sB3##苍㋍ ÉIN;t됋t3Zuډ<3PPhPb<+Љt+;v!jP+;w9r0K;t0;`uI;u;t;`wF3j Y+ʉ@3҉yHɉЉtA3j Y+ȍ9ssut2rr jrZʉ;+;rl;s3F;sB3##苍㋍ ÉIN;t됋t3t B2*3PPhP=:\PPsYYʉ‰u;wtp3tp3 ;vI+t%33@wƅ## tƅыËw3;@#0;3#4ƃHwȋtx+PWRQ-PPQ,PM_^3[6]ËUQQE 3ɋUSV3W3r8HHIJEBȉM;t5M I;w#r;wMڃmF;uMU tFt2E;uu uPuSW_^[]̋UMt +]ø ]ËËUQV>u%jh cYYE΍EPu諽Y^]Àyt ø3̋US]u3[]W} u _33[]VpAu-OM؃u/sKPPhQF73^_[]ÅuIsjP{DžhW 73ҋu؃3;ʉ^3_ []3EE}tDEF@E4d$jQ3 WPRqUv3҉]ЋMUmMMu΋]jDžPshVh6EU3;ȉ>CE^A_ [];wG֍H+ЉMȋ;|2F+4<;u I;}u +‹D;DsBu ^_33[]Ë}ȋE 4DEƉut + M+Eąt)EMMe ũvu MċD E3EU,K M:KE M;EwA3}Q EEEMvI‹M3UMsM Ƌu}EurEEMċD EujuPRo]3؉u؋‰]E]Euv*jũPS p3u؉]]EEwPrwIPS3ɋ MjuMo;r)w;Ev"E]}̉EUEu vE]uM33tUE ]EME؋Ee؋ȋEe3;s+EmEu]M3;wGr9}s@t5u U؍$ v3RNˉJ؃u]UEHEu3UËMEmJ]H}UME3UB;sH I@;rt <u u֋^_[]ËA ËA 38AH%ËÃAQƒQVq t 9qrw9Qw164YtF^2^ÃAQƒQVq t 9qrw9Qw f;u3^ÃAQƒQVq t9qr w9Qv2^Ë }ȃ^"ÃAQƒQVq t 9qrw9Qw ]f;u3^ËV63YtF^ËV62Yf;tF^ËыJ;JuAJËыJ;JuJÍQ V3+;#tAF;u^ËVr3 +;#t@F;u^ËUU u21Et'tuR<' BvՃ ]UU u21Et'tuRDv' BvՃ ]UU f;u23Et)tuRD\' Bfvf ]UU f;u23Et)tuRL' Bfvf ]UMAЃ w]ÍAvAv_]ÊAËUkU 3M 8 E]339ËAËAËA(x~+~t t t 3q &q &Y38A$@ËA0x~+~t t t 3q(Q&q(j&Y38A,@ÊAfAÊA̋UE3ҋM HMɉHB]38AH38AH%38AH%ËA(ËA0̋UF3ʼnEM S]V WyuW0,PhC;PS3$3ɋ؋$ƃ$A;u拝 sst_^[M3xy]j0Dž,PhR-2_^[M3>y]Ë3{sPA(PhV-uW0,Ph;V  $(33ɋ$ljA;$u苝 ss|_^[M3x]j0Dž,PhV,2_^[M3Ex];Ct $yA$3҉(3ۉ,0+$0u;S0,339stJ;uCDŽ0lj,$ƃ0GA,;ut9s;uADŽ0,30,AuǃstPC;( P0Phv+_^[M3v]Ë jDž@DPh1+M32_^[}v]̋UW} u+E,WQh8P(*_]ÃtMtSQ3VU3ȍ$ÃڋUF;uMt ss\^[_]j,Dž(PhR\*2^[_]̋UE eȋEe]̋UF3ʼnEe SVHDW}X'&$&GىP E4E<1W,0jPӊPEEP0Pi,0u1\`XjPhGP,)Bu X2Xu3P3ɍNj0$ƃXA;u݋Xss tj0Dž,PhR(2XwLP0PhVK(u#S0,PhV)(?6T&33ɋ$ljA;TuXss |j0Dž,PhV'2;t@00L@3҉T3ۉ\ `+8I`jj jjjjj?2C'C/C9C?CECICOC+CTCVNtt2^Ë^^8VNtt2^Ë^^pVNtt2^Ë^P^騝VNtt2^Ë^鈟^UQQVu EEu Pv,Fv(PQTv`,}u2~&t jRPr^]UQQVu EEu Pv4Fv0PQTvh9,}u2~.t jRP^]UQQVu EEu Pv4Fv0PQ:TvHԋ,}u2~(t jRP^]UQQV>u EEu PvTt,hP:huA A^A @A A^@A A^Íp3ux2uAA ^À6ux4uA A^Àdtitotut xtXu\q@A A^Ãlt$ttzu;@A A^@A A^ÍP:luA A^A Q^ËAVjItVLtBTt.jh^;Pf92uA(A^A(A( A^ÃA(A^Íp3ufx2uAA( ^Ã6ufx4uA( A^Ãdtitotut xtXudq빃A(A^jl^;t(ttzu?A(A^ÃA(A^ÍPf92uA(A^A(Q^ËVVf Pt6Fu&3F *FfFFFFF F$F(2 @NF^QPj][f;t2Hf;vˋCEf;tVFf;uuQFFUj]Yf9u]Ff8u j2tF[_^]ÍA,ÍA4Ë3A#u3ɊË3A#u3ɊË3A#u3ɊË3A#u3ɊËUVu yNF ^]UVuyNF^]A uA$t tuA$ËA(uA,t tuA,̋US] 3Vþ ΉE+ˉ] WFM+IUHEЉEE: t@3M+;Í]sǃsut2ۄr;Buރt_+z@<E;rG ;s3ҍF;sG3#EKMN#UM M ‹UMMuutz3}tF_2^[]jDžPBhP1 2_^[]ËUE F(tOjY3}jEP3@Puُt3FPEPY YYxt't"u 2[HEPY3H#fF3@fFE Ft3ۍESPSSSWEt EFV3@M_^3[7]ËUPF3ʼnEESVuW}WE}E3@;fF3ۋEt M]QP YYEHFj Y3}j(EPSu貎EPuo SSufFulF(#‰V,Rv(uuIF #‰V$tpv,v(uu(F0#‰V4tOjY3}jEP3@Put3FPEPYYxt't"u3 2[HEPY3H#fF3@fFE Ft3ۍESPSSSWEt EFV3@M_^3[-6]ËUPF3ʼnEESVuW}WE}E3@;fF3ۋEt M]QPbYYEHFj Y3}j(EPSuEPuSSufFuF #‰V$Rv uuF#‰Vtpv$v uulF(#‰V,tOjY3}jEP3@Puat3FPEPYYtt't"uw 2WHEP+Y3H#fF3@fFE Ft3ۍESPSSSWEtMN3@M_^3[u4]ËU(F3ʼnE}u } uEpEPEPEtNEPEPjEt:MEPEPEPEPEPEPEPu HEP@YM33]ËU(F3ʼnE}u} uEUvEPEPEtREPEPjEt>MEPEPEPEPEPEPEPwȃ#ʃu HEPY ЋM3*3]ËUE 0EPEPEPEPE PEP!]ËUE 0EPEPEPEPE PEP[!]ËUE 0E0E0E0E0E 0E0!]ËUE 0E0E0E0E0E 0E0 ]ËUE]UEE A]UEE A]UEE A]UE]UE]UE]UEE A]UE]UE]UE]UE]UE]UE]V>t 6t 6"u ɰ"FM5tGFEP(,Yt tGFEtMu< t< utGNE>< t< uF>M t9M E3B3F@>\t>"u1uMtN9"u M3҄E Ht\Gut;}u< t1< t-t#tGPO+Yt FtGFwtG5M _^[t!E]ËUEMUSVu 3W}tu E E j"Xf9u Ãt ffftuf;Et f;Ej"Xuąt 3fB]3Ef9f;Etf;Eu3f9tu 3j\^E@f91tj"^f91j\^u8u 8]tj"^f9qj\^u 8]]E} Htf2uft*8]u f;Etf;Et9]t tfsu ]t3f3t_^[]ËUE0F]ËUE4F]ËUE]UE]UE]UE]V6X&Y^ËV6X&Y^Ë3ҋ9t IB9uË3ҋ9t IB9uË!Ë!Ë!"ËU]U]ËËËø Fø$Fá(Fá,FËV6X&Y^ËV6W&Y^ËUEPT(Y]2ËUVu?r3=WM 3ҋu;s M+;w31jP+YjW _^]ËU]U]UE0F]ËUE4F]áFu FáFu 5FáFu%9Fu3Eu#FáFu%9Fu3ou#FÃ=Ft3VW`!(u*VYuPFFl3jsVYVlVY_^Ã=Ft3VW(u*V|YuPFFI3jVYVVY_^ËUVu3ҊtW<=tB΍yAu+Fu_^]ËUSVu3ۋft+Wf=tB΍yff;u+4Nfu_^[]ËUQQSVW}3ҋ<=tB΍YAu+FuBjPVYYtm]RύQAu+ʀ?=AEt7jPVYYt0WuVU uAEj0EUEY?uS#jTYY3jTY_^[]3PPPPP\̋UQQS]3EVWft/j=[f;tB΍yff;Eu+4Nfu׋]BjPV3YYty}]ˍQff;u+j=AYEf9 t8jPUYYt2SuVz uCE03VE TEYCf93uWX3VSYYVSY_^[]3PPPPP[̋UVutW PSYuVSY_^]ËUVutW PSYuVsSY_^]J%%W=Fu_SV3QSSSSj7SSرE؅tLjSTYYt5jjSVj73SSرEtSV9SS 9u3^[_VRYW=Fu_SV3KSSj7SShE؅tHjSQTYYt1SVj73SShEtSVˏSR 9u3^[_VrRYUE0E 0E05S ]ËUE0E 0E0} ]ËUEP@u+]ËUEPffu+]ËUQF3ʼnEVW~MVвEUY;uM_3^G]UQF3ʼnEVW~MVвEUY;uM_3^]UE;FtPY]ËUE;FtPY]3939øFøFøFøFøFøFËUA+уV3;#t UFI;u^]UA+уV3;#t UFI;u^]3939MvhbCFhbCF5F5FYYøFøFáFu FáFu ;F_SV5(FuF2ۊ< t*t <"uPY YtFF< Fu^[á,FuFVj 2^f;w ft#t"uƒf;w fu^/á(Fá,FËUEPY]2ËSV5(FuF2ۊ< t*t <"uPYtFF< Fu^[á,FuFVj 2^f;w ft#t"uƒf;w fu^ËUQQF3ʼnEE SVu+ƃW39u #tEt вEUG;uM_^3[]ËUQF3ʼnEVuW>tвEׅu ;u u3M_3^]áFj Y+33FËUF3E]ËUFj Y+ȋE3F]ËUu uE]ËUE]V>t 6E&^ËU3}csm]ËV>t 6E&^ËUuE]j hFuuKt uYjYe=F3@FE} u<FӃj Y+33Ë F;t33PPPˋвEhF u hF!YeuhEhEYYhEhEYYuFE'u,u*E0ËeM#uj$YËUqt d0@huuEPEusYuE̋Ë3jEȅu2øMZf9uA<8PEu f9HuۃxtvՃzpud0@h$ËUQQF3ʼnEeEPh$FjEt#Vh<FuEt uвE^}t uEM3]ËUjju ]ËUEF]jjj jjj ËUjju ]áFËUFj Y+33F9F!uYF]ËUjju, ]ËUjju ]ËUE]ËUMua!RjX]áF3]ËUE=@t#=t=t$QjX]ùF3]jhFG} @t0t(t ttuu ;5FMƃ?k0U܋FD(t^VY]eEFMD(u H WV>YY؉]E !u]V=Y PËUQESVW?k04FD(\)ȁMM @tPt@t$tuB D(FD). D(FD)$D( D( FD)}uu@3H%_^[]3ËUuGY]UuGY]UuGY]jhPF/eM EX EPjhFE0 |YeE 0 .YE  E06|YjhpFE0{YeM E E0{Yjh0FgE0{YeE @E E0{YËU EMEEEPu EP]ËU EMEEEPu EPl]ËU EMEEEPu EP]ËUQu EuMP`]ËUE]UE]UEE AEAEA EA]UE]UE]UE]UE]UE]UEE AEAEA EA]UE]UE]UE]UE]UE]V6 E&Y^ËV6D&Y^ËV6D&Y^3939391yYË0N+YËUVWhj9Fj0D t*EGEGEG EGEEPjYY_^]1xY1'yYË@1xY1xYËVFpL0-F0F 00 NFt?FWf83Af;:uftfxf;zufu3 _tF0FLPn-0m,F PuO4FuFpLhF>-FYY^ 0F F@Cu43f9~u,hFuVi t;b3ҍOff;u+sv,ff;uftfPf;Qufu3 ff;uftfPf;Qufu3Ma3ۄ0VPUYY0ۋ(PSPtm8/ tj0Ph,$ PQff; u+APPPuS3PPPPPV(V\jPh VGZt u E_SVh, uSVu$vSVjU\3f9t+;s"GPVQ tSSSSS 3ft (,SuVg $3ˍQff;u+APSjU&VVVVVWWWWWCjhȢF1ujUpYeNtu~Ft v;YER>t=jpYE6P$Ytx u=@FtPj"YEV?;Y ËujpYËujpYËUQQVRjj<EYYu3G[$ENLENHHEEEPj EEEPj uej:Y^]ËUQ}} SW3jCS<}YYu艷3 VhS;YYuc3 h S;YYu > Xh@FV.u uVt*WvYYuEΉ3؉3H3EV"V3 YY3W9}YV9Y^W9Y_[3]ËUS3V9]~"W}7u ug u F;u|_^[]SSSSSoA̋U(ee}v[A3Rk}E"EMPEEEE؍EE܍EEEEE EEPEPEP E]ËU SV3Fhu83YW{f3uF00EhF5\FjhQW\FEhFhQW\ EHM ff;uftfPf;Qufu3M ЉM!EEE0hF1jhQW`E=Fn}uJN(tu v(7YF$t8Ou v$7Yf$Cf^(F _^[]S7YN(tu v(z7YF$t8Ou v$c7Y3F$FF(F F@3PPPPPV?̋UF3ʼnEE SVuW}8t!tVPW v3Dž@4؉DMf>Laf~CVf~_KhFVQ؉0YY'+@j;Xf9 @\FDž<WV3 u Qff;4u+;t< F~Ë0hFS 8YYu j;Xf9<_VShPj6=W3fPDuf>u3ɋ3Ʌt,PVWnD tC3 3ɋ@C@FD^uuWYM_^3[]%3PPPPPq<̋UF3ʼnES] VuW}pxx,@PjUHPhPVu3M_^3[u]Ís8>f0Df;18u5f8t'fpf;qf>8uf>uDu끍Qff;Du+A4EP3(Y> >0$O Q4ufuDHPYD,ы@ΉG8 8=1($Q$1 YYGFtJD(u9t(0t$008 D 88(8L(DPPPPP8̡F 0F F@} t9uv蝥]0^]A=juu u^]ËU}SVWuMN}t] tM;v2/NE􃸨uQSW< 3+MQP[MQPLCmtt;t+}t MP_^[3]ËUuY]UQQeESVWPu} YYt] KCu+3ۋMQAu+jA PEm<YYuuVK uYth8FuV`K u_} tu uVGK uF΍QAu+ʋ+ESPQV_t33V W&YY_^[]3PPPPP.̋U SVWE3Puuu}YY9u t] Kff;u+ދMQff;u+jA PES;YYu3ufV u Yth<FuV uo} tu uV uV΍Qff;Eu+ʋUS N++RQVt3ދ3VWo%YY_^[]3PPPPPk-j hF3ۈ]j YY]E9Fs @FF=@F10 @FA @F+=wMj uu QoAu.SuJYYt8 tݡ0]SSSSS,š0E @Ê]j mYYj hF3ۈ]j YY]E9Fs @FF=@Fb0 @FA @F+=wMj uu Q@u..SuHYYt8 t0]SSSSS+0E qÊ]j XYËUQSVW3ۍEhPFSP]5G t NutESV;IYYu E 8gWYtSWIYYuE S8D#Y?W;#Y}tSWHYYuE 8S@FWHYE YtDFV"Y_^[]SSSSS*̋UQSVW3ۍEhTFSP]F t NutESVGYYu E 8gW[YtSWnGYYuE S8r"Y?Wi"Y}tSWEGYYuE 8SHFW,GYE YtLFV*"Y_^[]SSSSS)*̋UQV3EhPFVPuE t t 3E^]VVVVV)̋UQV3EhTFVPusE t t 3E^]VVVVV)̋UVu33WtG"uA@Gut5+@jP#YYt <"tAF>ujA!Y3_^]ËUQSVu3WˋË>fteE"f;}uA@:futG+@jP"YYu%f9tUf;tff9u3fS Y3_^[]ËUE 0u]FYY]ËUE 0uoEYY]ËUE 0E0/FYY]ËUE 0E0?EYY]ËUE 0E0EYY]ËUE 0E0EYY]ËUE0E 0E0qD ]ËUE u0E0UD ]ËUE0E 0E07D ]ËUE0E 0E0 ]ËUE u0E0 ]ËUE0E 0E0d ]ËUEP@u+]ËUEPffu+]ËUEP@u+]ËUEPffu+]ËUE u0E0B ]ËUE u0E0B ]ËUE0E0E 0E0/;]ËUE0E0E 0E0H;]ËUE]UE]UE]V6J&Y^ËV68&Y^ËV6&Y^3939ËUUVqAu+΍4;t"F<\uj\RCYYN3;+t5+t,+t$@tT39~jjX3@3fF Fyu@uEPYuz9}ttF#ExF@tNNN t N tN t N tN_^[]3PPPPPh̋UEjY+tB+t9+t0+t(@tJ ]3} ]jjX]3@]3]ËUQVut2^]E@tEPzYu9u3PPPPP̋UQVuƃ?k0FD(Ht33ySWjjjV!Aڋσ#˃un8uN3_[^]3fEEjPVW uf}uSWV: t3PPPV@#ƒu&뫋Uuu u ]ËUQVjEPuuuu uVuu^]ËU]:UQeEPuYYu,VuWu uuuVu uVi _^]ËUjuuuuu ]ËUuu u ]ËUQVjEPuuuu uYuu^]ËU]=UDSVWuEuuP}ԋjY9uu跍 E 0轍] ;u萍 3虍ϋEuԃe3AE E#jYEEPuu }ukM؋#;u5Et/EuԉMjYPu0 }u+ ?k0Fd(HEP諌YWEuGHEV茌Y ?k0WFd( FT8*.} u U ;u Fjjju:} t FU EM;0M FD9(@u D9( F+_^[]ËUEM?SVuWk0Mj F[T8UU t f9uL8(d8(rډE;WB MM"j Zf9UU tMf;Es3j Zf9U uj Yfj ZfjEEPjEPu(E}Mj FD8(HXt:fUf;ufgj XfFj T8*Ft8+FZT8,;f9EuU ;u fE)jjju*9j Xf9Et j XfEU ;] FD9(@u D9( f f+_^[]ËUEȃ?k0E FD*]ËUEfM V?k0FL*Fl+F^D, ]ËUQQSu] Surȃ 'EU?Wk0UFE|8)uVsxF3Bw;rNBFtFuV*@;uSED8(Ht5FL8*rMF FD9+uE FFD9,+ڋjRPu}7u+uVSjhhEЅuHEP萅YE;֋ F2D9-$0D9-^_[]ËUEVW} G;s^OSt7 u ;sj _f99} uj [f f;rEȃ?k0 FL([+_^]jhFXuu ;5Fƃ?k0MFD(;Eu莄 虄|VY}eFMD(uj L uu VG }E )u}VQY  ËU(S]Wu݃ b;FVE?k0}FUL(M%Mvu 考E} tVtD)Eu3tuШtE MEUЄu!0 jXE;rMP jj uû 讂vujjS44 F}D ƉT$׋M]3E܋F]D(H]]\*] ]]}@]I}EEMFD* EFD+E< totkE]j_@]IEEMFD+ E:Eu>EFD,E< t)t%E]j_@]IEEMFD, S3YtqEMFD(t]EPu EtL}uJjEPEPuuEuHEP YVY^EMGtu_u A|j"3ՋUUVtM t uu|j^0^]W+>Gtu_u {j"3ӋUU FҋM##M щF]DtjYFt!jtjY)jh@jc j~̋UVut j3X;E r4u uFt VHYtVj5FEt ){ 3^]ËUEMU Ht]ËUEMU Ht]ËUQjuQQu uP u |]ËUQjuQQu uP u~]ËUQjuQQu uPU u]ËUQjuQQu uPC u9]ËUQjj QQjuP ji]ËUQjj QQjuP u >]ËUQjj QQjuP u {]ËUQjj QQjuP} u z]ËUQjj QQjuPR u 轃]ËUQjj QQjuPB j|]ËUQjj QQjuP j]ËUQjj QQjuP u ]ËUQjj QQjuP u .|]ËUQjj QQjuP j|]ËUQjj QQjuPn u {]ËUQjj QQjuPC j:]ËUQjj QQjuP u ]ËUQjj QQjuP j2y]ËUQjj QQjuP jy]ËUQjj QQjuP j]ËUF3E]ËUFj Y+ȋE3F]ËUA+уV3;#t UFI;u^]ËU(F3ʼnE}Wt uYjPjP8h0jP%0ffffffEEDž0@E EEEj|EPxEuu}t uYM3_X]ËUuF]áF3Fd=uË\ËUQF3ʼnEVB=t5\t+uuuu uвE֋M3^ѽ]u5Fu35Fuu uu.3PPPPPyËV3VVVVVfVVVVVjktjY)VjVj VEPE^ËUV5FWu3=FBYFϋ_^]ËU;MЋ\\]ËUu`Y]UE]UE]!ËV6)&Y^j hF|3u>j+Y}EPYtxx8xHE |Ëuj+YËUE3ɉEHEHEHEHEHEHE ]Ë3҃ Ë!ËUQSFVW=F ]A7tSF u.VBYV   u] ШuVBY;uE _^[]ËE0j8jj tуHjh P7 F VxBY1nBYËV6&Y^ËV   u Ѓ^ËU3S]VW}u𫫋Fu CF> t3 tu>CjhtFVl uj XF8t>=umF8tjhxFV u  ?jhFV u   jhFV u F> t[wp7_^[]ËU3S]VW}ujYj Fu C_f9>t3҃at!rtwC  KU2UUmfSpt\+ tBt4t' tumu 4 Ssm2sEPSY]mu ;UTTt@t3t" tS}&EPS뺍EPSSSUYȊm34Fmtf9>tu3f9CjhFV f9>tf>=urf9>tjhFV  u AjhFV  u  "jhFV  u f9>tO3n_^[]ËUVWu EPt}YY}_^u3UhuEuuPcuދEF M E3ɉHEHEHEMEAE]ËUVWu EP!}YY}_^u3UhuEuuPuދEF M E3ɉHEHEHEMEAE]ËUE0Eu 0h ]ËUE0Eu 0 ]ËUE0Eu 0 ]ËUE0Eu 0 ]ËUE0Eu 0 ]ËUE0Eu 0 ]ËUE0Eu 0 ]ËUE0Eu 0 ]ËUE0E0E0E 0E0]ËUE0E0E0E 0E0]ËUM@t2]Ã@]ËUE]ËUE 8t2]ËM ]ËUE 8t2]ËM ]ËUMt2] ‰]ËUMt2] ]ËUE 8t2]ËMI]ËUE 8t2]ËMa]ËUE 8t2]ËUuJJ]ËUMt2] @]ËU]zU]UQF3ʼnEV5F35Fjju΋вE֋M3^躲]Fj Y+33Fj hFneE0!YeE 0YFjhC8EFj Y+33FFuE N uM1v!YËU EMEEEPu EPX]ËUF3E]ËUFj Y+ȋE3F]ËUE]UE]UE]C1 YË0YjhCF8EFj Y+33FF1 YËUuMYjhCF8EFj Y+33FF]Ãhl Fhh Fhl FjNh Fh| Fh Fj4h Fh Fh Fjh Fh FhXEjh Fh FhlEjh Fh Fh|Ejh Fh FhEjh Fh Fh Fjh Fh Fh Fj~h Fh Fh Fj dh$ Fh Fh$ Fj JhH Fh@ FhH Fj 0hp Fhh Fhp Fj h Fh Fh Fj h Fh Fh Fjh Fh Fh Fjh Fh Fh Fjh Fh Fh Fjh$ Fh Fh$ FjzhH Fh@ FhH Fj`hh Fh` FhEjFhp Fhh Fhp Fj,h Fh Fh Fjh Fh Fh Fjh Fh Fh Fjh Fh Fh Fjh Fh Fh Fjh Fh Fh Fjh Fh Fh Fjvh0 Fh, Fh0 Fj\hH Fh@ FhH FjBhh Fh` Fhh Fj(ËUVu6Yu ;u u3^]ËUESVW FFʋ3;titcu;ut6YYu/;uuF3t)u PEtV@Y빋FًFj Y+3;3_^[]ËUEWt>t6E& Fu^]jh0FȬejYej^u;5FtXFtI@ tF4'YtEF PEF4YF$FE E脬jYËUEHE`]ËU@ #E+E@]UVu ֋# u#E^]UMVq $<t3KtAW9+a~0WPQYPT\ ;t jX tjX!3_^]ËUVuu V=Y.V~YtF tVP YYu3^]jYjhpFeej@ Ye5FFEԋ]u;tt>}؅tVW5%YEG t2uWIYt!EuG tW+Yu E܃eEԃ땋]uu$YEEtE蠪Ë]j Yj hPFAuu VY)eV$YeVY}EIËu}Vd$YË@ ËUVuW~  t$tv\Y!3FF_^]ËUEttjjjX]ËUHEPEf}ESV0X3E ;|VЂFY;~W3tVEt@t;t4u QEt!Njσ?k0EFBB(EGCE;u_^[]ËSVW3Njσ?k04F~t ~tN({F(ttjjjXPE؃t t SE3t%^uN(@)u$N(N(@FFt @GU_^[j hFj? Y3ۈ]]S舁Yuh]E Ê]jF YËV3FtP FYrݰ^Ë@ËUEu9R]Ë@]ËUUVtM t uu3fQj^0^]W+>fftu3_ufQj"NjUUVtM t uu3fQj^0`^]W+>fftu_u3fhQj"3ˋUFVW|zuփj X+#ЋE ;sЍ<2;t 9tA;u+;u>+ǃ+Wtu ;uE 9tA;u+w|xuփjX+#ЋE ;sЍ<2;t 9tA;u+;u+fɋǃ+(ftfu;uE 9tA;u+|MU ;t 8t@;u+_^]ËUQFMVWt#E эA;t3f9:t;u+j X+#E ;sq3U;Mt f9:t;Uu+;uHQ+΋+Wɍ Juu ;uEM Hf9:t;u+wt'E эA;K3f9:@;u4jX+#E ;sq3U;Mt f9:t;Uu+;uQfɋ+΋+ȍ J(fufu;uEM Hf9:t;u+E A;t3f98t;u+_^]ËUMU ;t 8t@;u+]ËUME A;t f8t;u+]ËUVuW} j X+#;s׍ 2;t 8t@;u+;u?+ 0ǃ+Wtu ;uE 9tA;u+w_^]ËUMWt#E A;t3f98t;u+Vj X+#E ;sq3;t f98t;u+;uKAM +΋+Wɍ Juu ;uEM Hf9:t;u+w^_]ËUVuW} jX+#;s׍ 2;t 8t@;u+;u?+ 0fɃ+(ftfu;uE 9tA;u+΋_^]ËUMWt#E A;t3f98t;u+VjX+#E ;sq3;t f98t;u+;uKAfɋM +΋+ȍ J(fufu;uEM Hf9:t;u+^_]wtuftfufWfËUFVW||uփj X+#ЋE ;sЍ<2;t 9tA;u+;+ǃ+Wtu ;uE 9tA;u+w|uuփjX+#ЋE ;sЍ<2;t 9tA;u+;uZ+fɋǃ+(ftfu;uE 9tA;u+UʋE ;t 9tA;u+_^]ËUQFMVWt'E эA;}3f9:r;ufj X+#E ;sq3U;Mt f9:t;Uu+;'Q+΋+Wɍ Juu ;uEM Hf9:t;u+wt'E эA;3f9:;ujX+#E ;sq3U;Mt f9:t;Uu+;ufQfɋ+΋+ȍ J(fufu;uEM Hf9:t;u+E эA;t3f9:t;u+_^]ËVWF3jhWtF8r۰ jY2_^ËUkEFPE]ËV5Ft kWFWE Fu_^ËUkEFPE]jYjYËU S]uG|VWj=SMEYYtN;tJx5FE;5FuV!EY5F3ۅ9] t/9Ft'yunGW]Y_^[]Ät3jjSF75F t9Fu%jjSF 9Ft5FtE+PQEYYxH9tD4YM8]uEDA9ujQVSDžtXP8].؉EH;?jQVdSdME\5F9] ȍQAu+jAPEYYtGuuV u@M+EAEЈY#PVu+_^[]+USVW=F?t-] S6u uX=tft>u+_^[]+ssUE 0E0uEu2 EHxuEu`2 2EH |ރـ} $ fPuujQDuuh F|wbtpHtZHtDuEHwnu fuujY} $0fPuujuuh Fuu VF}]WSujIuWSh Fu VWSujMu(WSh Fu VWSujSu(_WSh Fu VWSujpuuujXuE@ja ELPuuPx4ME3Pu?YE9p t EuP?YMMMM3+™j<^ɹ Fx FuuQj0uujVj0uujW4QEHui} $0fPulujNu3u8E uuPubx{MDC%tQEH} $0fPulujjdYEH }uEu:EHZQuEuuuh Fu uu}VWujmuVW FSu uVWujdu(VWSu uVWujy FtvtJE@j Yuр} $0fPuujqEHTK} $0mEx+xj0uujppp lu uu}VWujYuVW FSu uVWujmu(VVWSu uVWujdEH~;%jR_;x$Du uuuujHuIuuh F6u uuuujMdE wq[fff ;r +ȉ&_^]ËUM9t"UVu W:ftf8)u_^]ËU0F3ʼnEEUEЋES]E܋E Uԉ]VuuWtt\XT} lfBfEfBf@MfEfB fEfBfEfBfEffE3fEEt3QQWPQ`I3QQQWPQ`@؅kJ;tXJ;#J=w#;#cu$;#PuY3ut~}EtSVWPEj`jSVWPEj`ЋJ~#]u܃;vff JuVBYe_^[M3o]j$uYn>tE3ɉ}ƒAf9t‰]]؃d/'AtHtXMt"ah| FWQYYuSO Mbt!t tjBjbEjmt t EjHh FW[QYYuGEjpx%yH@hj'Xf;YffuBt!t tjAjaEjdht'ItIjYjyEԃx LPu>v}ff f]܃>v}f fuftt&EjS6ttEjM"ttM܃f%EjIXuSVuuPut}f[$2KUEH;#]ËUEtM ]ËUSVW3ۍMS]wEj_EVJff;Eu+ыAEff;Eu+M؃u]P73Yuj:EEYfp΋++@PV ΍Qff;Eu+j:X4NfE+0+@PV uY΍Qff;EuE+j:E4NMAMYg3fP>}Yt M䃡P_^[]3PPPPP+̋USVW3ۍMS]Ej _EVЍJff;Eu+ыAEff;Eu+M؃u]P֥3Yuj:EEYfpЋ΋++@PV ΍Qff;Eu+j:X4NfE+0+@PVz uY΍Qff;EuE+j:E4NMAM Yg3fPݤ}Yt M䃡P_^[]3PPPPPʬ̋U(VW3MVE܋։udUSƉMEu+W豤EYWVPE M}d։E)MىU}u% 8E 3E+PQ ZU AEAu+MGEBUr]։U}u'EMω 3E+PQ认 U AEAu+MGBUr]։U8}u'EMω 3E+PQU U AEAu+MGBU r]։Uh}u'EMω 3E+PQ LU AEAu+MGBU r]։UØ}u'EMω 3E+PQ蠣 U AEAu+MGBUr}]u)E ;E+PQJ EQAu+G}u)E ;E+PQ SEQAu+G}u)E ;E+PQ輢  EQAu+ʋUYM߃uE}uǴCuu( AE E7+PQ Qff;uE+ʋUKM@Er}uCu}u+M AE E7+PQB Qff;uE+K@Er}uCu}u+M AE E7+PQ Qff;uE+K@E r}uCu}u+M AE E7+PQf AQff;uE+K@E r}uLCu}u+M AE E7+PQ Qff;uE+K@ErCu}}u/ GETTE+PQ jETQff;u+KCu}u/ GEXXE+PQ1  EXQff;u+KCu}u/ GE\\E+PQ E\Qff;u+KCu}u+ GE``E+PQu uTE`Qff;u+ʋUBUy<{} EM]u}[t M؃P_^]VVVVV̥̋Ujuuuu u]ËU$W}u^3U} tVu3fut43*uMTUu EUE S3ۉME>}}}f%}tEfMEHMEX9]]f>#uEEtOuuERPEPuPEPGEt"MUbt] 3f+]4t3fuu c"V}t M܃P[^_]ËUEt8uPY]ËUujuuu uD]ËUjjuuu u%]ËUQHLMMQP7EYY]ËUMSu]sKEPSkYYt$}E苀 t E䃠P}t M䃡P3fEEEx~.ÍMEQPtYYtEE3j]EY3*3]AEfEUEEjpjRQMQu EP$u8EgE䃠PXu}Et+M䃡PUE Ѐ}t M䃡P[]ËUMSuK]sKEPS>YYt$}E苀 t E䃠P}t M䃡P3fEEEx~.ÍMEQP*YYtEE3j]EY3*3]AEfEUEEjpjRQMQu EP$u8EgE䃠PXu}Et+M䃡PUE Ѐ}t M䃡P[]ËUu ju/ ]ËUu ju/ ]ËUE E]ËUE E]ËUE ]ËUu hu( ]ËUE]ËUu hu ]ËU졨FtjuYYMAw ]ËU졨FtjuYYMAw]ËUSVu t]t>uEt3f3^[]WuME􃸨uMtf3GEPPYYt@}~';_|%39EPuwVj whE}u ;_r.~t(139E3PuEGWVj phEu%*}t MP_1Ujuu u]ËUuMeEPEu pEuP#tE}t M샡P]ËUS] W}utEt 3zEtVvYj^0SuM?E39u]fEf;v6tt WVSaq j*^0}t M샡P^_[]Ått_Et΍MuQVWSjMQVpرEȅt9uuEtHEzutt WVSp j"^0FlUQeju iPuEPtE]ËUjuuu u]ËUESV3ҋp#W;uC;u?Á u@0΋ t ;u ;ujX# tjj3_^[]ËUE3ҋH tB]ËU0SVW}3ۅyu Mu(rG 9Ewhj"_8)UJE%=uR;uNSu$SWuuuVR$tbjeViYYt8] ɀpX: t-FJ38] j0EK3' ]XuFB % u!M E1FFMuEԋB%Ew :ej0XEM~SR#E#ыMBKj0Yf9vËMUFEEEOMEfyfxWR#E#ыMJfv6j0F[ftFuH];Et9u: @~Wj0XPVm E8u} 4U$pRrJ3ہ+Mxr F+F-كۋj0X|?;rjPSQG0UF;u |drjjdSQG0UF;u | rjj SQpG0UFj0X3F}t MЃP_^[]ËU EVuWuu~PEWp0v9MtM3}-+3+ȍEPW} Q3Ƀ}-3Ptu(EjPu$u VuW _^]ËUVW}~3 9E w j"^0蚘_^]Su$MU ]t%M3P39-Pu SU E8-u-s~FFE􋀈39E t+E hFPV [uvN8EtEUB80t/RyF-jd_;|™Fj _;|™FV}u90ujAPQ賀 }t EP33PPPPP諗̋U 3VWu}uE}PEWp09MtM3}-+ȋu EPEP3}-QPtu EjPWuV _^]ËUMSVWu U}]JI}t;u3:-f0:-u-sBjVu S:0F~RjVu SEFEHy)}u;}WVu SWj0Vi}_^[t EP3]ËUSVWu3}uE}PEWp0&E3ɋ] }-HE49EtE+MQWPV]tUEH9E|*;}&t FuFu(EjPWuSu(EjPu$u WuS _^[]ËUHF3ʼnEUMS] Ã;sj XM3[R]Ät-AJlFE|FE38]EpFEÉEKxFEFEԃE؉EEEVtFEFWF4FEFu+uF3u3;vj"XF4QRls _[^]ËUusrY]UEVWH+jd__+^]ËUVtuV4YY#^]ËUVtuV'YY#^]ËUQQVuuj^0yS] Wj Yuj^0y'E=@W|jY;|=&Avj^0EEPEP}FYYQFi}LFuLFV3A9P}A9|INj+QV Yf ǹVj_[^]ËU Vuuj^0x"Wj Y} uj^0kx3OEM |=@WrjZ;|=&Avpj^0SEEPEP=]YYjFQPuS&FQ鹸LF+؋E€}EuLFV3@9Q}@9|HFj+QPV w7r&j}YjVPWST&Fj+j<WS;&f Fk<+3[_^]ËUE]V6co&Y^ËUVW}7ƙiȀF+3Ɖ7;|+B;|B=| B{M _^]ËUQS]3VWjs;PVW%3HFAMQ+;sMQY)SK2|s,u3‰NVKzYt";E SuV^YtM _^[]Ë!ËV6Dn&Y^ËVt!F8u'j$\njF8nF8YYu % 3^ËUVtuVYY#^]ËU]UVtuVYY#^]ËU]UQSE3P]Y9]nVuW3GN; Fu ; F'9FFPFPFPFPf9FuFSPFPFPQWFPFSSPQSShjF,PhFPfFPdFPf9\Fu`FSPbFP^FPvWbFP^FSSPvSW,OjXjZ3j C_k} jXj _3jB[jjjjjjRPQjj3PPPjPPSWvjjXF=FN;};|&;";~";}3@_^[];|;;~;}3kF<Fk<i3;u ;5F;5FSSSSSs̋UM]ËUM]ËUM]ËUQQe} VW}uySWY]EYtLFLFWFYimj6YMk+;UE}tLFLF[u*;~&!WEYt 4LF4LFu kE$<E(k<E,iE0}u5FF=F_^]ãFEP5FYuDiE Fȉ Fy\& F\&;|+F F=FjjjjjFr̋UQQWFEWhuP uE@"t37Vu/jYtWuEVP֍u33ViY^_]ËU SVe؃eEP]>YEPY Fut4ʋƊ:utX:Yuu3D]R;iY΍QAu+ʍAP]ij Fi FYYWyAu+VAPRi j_WVj@3 >tFu>-_ÄtFVmYiM<+t<0|<9F>:uBFVmk:uFVmYMȉM<9F<0}tىM38EEtjVj@p t @uI0u30^[]3PPPPPp̋USV!3ۍE]P]]iY"EPYEPY5 Fg F$FlEk F<lFW3G=FMf9^Ftk<ȉMf9FtFt +‰}kGt%u>Gt tuҋUu_[uu E jPDXJj"둋U]DUMftfy:uarzw ]3]ËU F3ʼnEE|:5@fEj:XfE3fEEPhEuHEPY3 jdM3!]ËUF3ʼnEW33hfWP7 Ph`E=wPYBSVXjS]YYt VS`Eu VYV[Y^[M3_O!]ËUE t38t.}tuPu~ ]uuuuP{]ËE;rPuYY]ËUE t4f8t.}tuPu ]uuuuP]ËE;rPuYY]ËUW3WWWu EuHEPY3JS] V;wjS pYYu SuV t΋V Y^[_]ËUW3WWWuEuHEPZY3JS] V;wjSoYYu k SuVz t΋VY^[_]ËUVuu,a3;v "juVu  E;suHEPYċE^]ËUVuua3;v "juVu E;suHEPSYċE^]ËUE 0E0YY]ËUE 0E0YY]ËUjuuu  E]ËUjuuu E]ËUE t08t+}tuPu ]jjjuP]ËE;rPuYY]ËUE t/3f9t(9MtuPu ]QQjuP]ËE;rPuYY]ËUE3SVWf9t,u >ftf;tfu3f9u3_^[]ËU졨FuuUu_]ËM tSVWjA_jZ+[ f;r f;w f;r f;w ftf;t_^+[]ju u ]ËUMSVu聮]tu uq1_EWuBjAYjZ+Z3f;r f;w f;r f;w ft:f;t3MQPM[QPvftf;t+_}^[t MP‹]ËUQ}uh^3Vu uI^3SWo3WWjuC>WShEEuHEP3GPXVYt0uVjuWShEuHEPY M Ƌ3GVUY_[^]ËUQ}u]3Vu u]3jWou&GWMEYYuHEPQ38PUYt!uVuWSuHEP Y3V2UY_^]ËM 3ƋGUuUY]UE]V6T&Y^39Ë!Ë39ËV6T&Y^ËUQQSWj0j@JV3ۉ}YYuH ;t>Vw ShFPsNv0^ԍFF F f^;ű}^SKTY_[]ËUVut%S W;tWE0;uVTY_[^]jhFf&} u j ^0[&3ujlYuF}9E|94Fu1Fuj ^uE묡F@FG뻋ujZYËUEȃ?k0FPE]ËUQSVuxi;5FsaƋރ?k0FM|uCWg} u"tt uWjWjWj|EFM|3_ ^[]ËUEȃ?k0FPE]jhF$j#Y}3ۉ]]ԁ}MFE؅uSFt/F@WYǃ?k0FD(}E$Í Mj0Xu;t`F(uVEF(tVEMj0X+u؋ƙj0Y4΃?k0FD(F|tC}jnYËUSVuWxg;5Fs_Ƌ?k0FD(tD|t=u#3+tt uPjPjPj|EFL3) _^[]ËUMu Cx'; Fs?k0FD(tD] yX]jhxF"2E t E @tˀE tuEuHEP.Yu@uuu5 EeuVYYƃ?k0F\(FD)Fd-EEW"ËuEuƃ?k0Fd(VYËU<F3ʼnES] VulWF+C uCPVE }};};fft,u%>fft tuҋUu3f_[ruE 3jPfTAX3fj"zU](USVnEuttVEtjXluE؃tQE W3EEWWEEPhlDWWu}EtWjVEu}tVuSPuMVUjBY^[_]3PPPPPJ̋UQMSW3ۍQff;u}+A+ljM;vj XWV_jSDYYtWu SVu5u+ߍ~uSPtuMVj*BY^_[]3PPPPP'J̋UPF3ʼnEM S]VuWt 6E^ËVW7 6=Y;wu7t 6E^ËUuE]ËAËAËVW~9~t3r>u+jjW=j; uj XMFF+>wSj?S6r8 uj ^ NF3jW;Y[_^ËVW~9~t3r>u+jjwSj?S67 uj ^ NF3j:Y[_^ËÃËU]霱UE ]ËA+ËA+ËU]2U]*U]U]XjhF E0nYeM E E0oYËU EMEEEPu EP]ËUE]UE]UE]1nY1XnYËVj @H@F@H@F@HF@H Pj hF*Q@HPQhFQ@HPQhFF0uF=FtP9Y@HF@H^ËUE-t(t tt3]áF]áF]áF]áF]ËUMj迏%FEuFE,uFEuEF@}t MP]ËUS]VWh3sWV{3{ { F+7Fu9Au_^[]ËU F3ʼnESVuWPvܰE3ۿÈ@;rƅ Q ;s Ƅ @;vuSvPWPjSSvWPWPWSdt@SvWPWPhS]ËU} uj@X]jj@uj]ËU} uj@X]jj@uu ]ËUjhuj]ËUjhuu ]ËUjjuj]ËUjjuu ]ËUjuYY]ËUu M>Etxujjuu E3ɀ}t EP]ËUjjuj]ËUjjuu ]ËUjjuj]ËUjjuu ]ËUjjuj]ËUjjuu ]ËUjhWuj}]ËUjhWuu a]ËUjjujI]ËUjjuu 0]ËUjjuj]ËUjjuu ]ËUE]V>t 6԰E&^39ËV>t 6԰E&^ËUu԰E]ËUUW3f9:t!Vʍqff;u+Jf9:u^B_]Ë339ËUQSVWذE3tVVYWWWW+SVWWرEEt4P.Yt3PPuWSVPPرEt33W-Y߅tV԰E_^[]ËVWذEu37SV+S-YYt SVW jZ-YV԰E[_^øFËUu9-Y]Uu'-Y]UE]UE]V6,&Y^ËV6,&Y^Ë!Ë!ËV6,&Y^ËV6,&Y^ËUQpHLMMQP-rEYY@]ËUQpHLMMQPrEYY@]ËUQpHLMMQPqEYY]ËUQkpHLMMQPqEYY@]ËUEu]@]ËUHF3ʼnESVu3Wuĉ]䋎]]܉]Љu]F]9uPhQESP2jj+-SE+jW-SEl+jW-SE[+jW,SEJ+jh,S}3+<9]N9]E=9]49]+È8@=|EPvܰE ESvOEԺERPRQhSg$EܹSvQPQGPhSg$}~+8]t&MtQ: B;~8Yu݋ESvPhWjSE5U3ɍfMEE܈Y逃}XMM̈~@8]t;Mt/q; E(PjWEjP'P E)PjWEjP E*PjTWEjP E+PjUWEjPߝ E,PjVWEjPȝP E-PjWWEjP讝 E.PjRWEjP藝 E/PjSWEjP耝 E8PjWjEPiP E$EP5$rU<0|<9 ,0B:u"<;uFv>u}FjY󥋃3ɋuA}@F@F@0F0@4F4EttK|tux#s|p#YYEC|3_^[]ËUU:tV<0|<9 ,0B:u^]<;uFv>uUVutY;FtP"YF;FtP"YF;FtP"YF0;FtP"YF4;FtP"Y^]ËUS]3VW]E9u9uEFV3FjPVu $EYYu~jYj"3Wu<"YYuu."3Y@F>9TjJ"Wu"YYu>E苻jWjPuMEQjWjP^ EPjWEEjPD E0PjWEjP-P E4PjWEjP t%uXMYud!MQ[!EYYuU<0|o<9k,0B:u}uM3@ttK|tus|! YYEC|3_^[]<;uFv>u녋uFFFFFFF0FF4aUU:tV<0|<9 ,0B:u^]<;uFv>uUuM Y]UjuYY]ËUjuYY]ËUj umYY]ËUjuZYY]ËUjuGYY]ËUj u4YY]ËUE]V6&Y^39Ë!ËUE SVuW3+΃;#t6xGvY;u_^[]ËËUW}uF5Vhdj YYtWV,YYuVY3VY^_]dž3UE eSVWVuEuftfzf;~ufuދ҃t_+Ff:f;>uftfzf;~u fuu"jEPE h PP-t+E7Q.Y.jEPE h PP,u3 EuE_^]ËUF3ʼnEVuEj PjYV,tj EVP @M3^]ËUuYu/9E t*EVVffu+QY;^u3]3@]ËUQVu 3WB3xNStH7+‹؋Ek M4E0賶YYuEMȋE ys{;~[3_^]ËUQQSVWR]3ɉMpPPNf~Ef9tWjh*FI 3ɋVf9tGf9tw3Y9Fu2Vj@h'F t3Vf9t EY39~ VP_YYPEE t0}M 3fQff;Eu+APujUSj@WhS~*thj@Sh P`*tJj_SYYuj.SYYtj@Sj P/*tj jPV'3@3_^[]3PPPPP̋UF3ʼnESVuWPPVL/YKdٍ jxɁPQV,Eu!@3 PsTuftfzf;~ufuދ҃t]+Ff:f;>uftfzf;~u fuu jEPE h p,Et)E5Q Y,jEPE h p,Eu3 EuE_^]ËUM3f;+Ft r3@]3]ËUQVW9JujEPh Q,Eu30;ut(} t"wPNffuwP+Y;t3@_^]ËUSVu 3Wx13+‹Ek 4E0VYYtyw_;~2_^[]ËMk M̋UF3ʼnEE S]VuWERIP}E3?IM3҉LE0xtf9t+FWHPh*F3E 3҉Utnf9titf9t EP EP}Y*FuHPh'F tN3tf98t EP EP:Y,tf9t EPYE4EEE3}u3M_^3[]3EP#VYYt́tŁtPEtju0EtEt0EWjUPPu#t^WjU Put#j@Shu,ETj@Phu,E5j jQV3@UQfGHLMMQPHEYY]ËU]UVu tj3X;Es 3BS]Wt S>}Y3uVS?YYt;s+;VjP _[^]áFаEFÃ%FáFËUQF3ʼnEW};} uWVStвEӄt;u u;u u,;t&~tt jвEYF;u2[^M3_q]ËUQF3ʼnEVu 9ut#W>t jвEYF;Eu_M3^$]áFj Y+33FËUF3E]ËUFj Y+ȋE3F]áFj Y+33FPYËUA+уV3;#t UFI;u^]ËUuF]ËUQF3ʼnEV.tuвEYt3@3M3^,]j h8Fej%5Ye5F΃35FΉuE Ëuj45Yj hXFej4Ye5F΃35FΉuuYFE Ëuj4YáFj Y+33Fj hبF0eE0X4Ye5F΃35 FΉuE : uM1b4YËU EMEEEPu EP]ËUF3E]ËUFj Y+ȋE3F]ËUE]UE]13YáF3 F13YjhF 3uujW3YuF‹ȃ}uF35Fj F35FjΉu_}܅tt j Y+33‰Eu3#u}j*3YÃt WвEY3@ʶUEHt-t ttt3]ø F]øF]øF]øF]ËUA+уV3;#t UFI;u^]Uk (F E ;tU9Pt ;u3]ËUEtt t~~ z]ËËUQEPjYY]ËUuFJuF=u F0uF#]BA9Aj,hF?3ۉ]!]̱Muj_;t5Ft"Ht'HuL tt ~;6VxEZA؉]ԅu3VYY3ɅuyGу2ɈME؃et j0YMeEeE؄tFʃ3ʊM‰E3҃‰UȈUutj0Yj;t tu#CEЃc;u;E;u"k0F k 4F ȉE;t%` Fj Y+33FM؉E1}uk;u6?pWMвEUY+j_u]ԊEEȀ}tj 0YVMвEUY;t tuEЉC;u ;?M̉H3荳jhxFG] }tt tW@F?t>Fu&5,FYt5,FhFP EPWYYtP M؃t"k5(F u;t9zu  J;uM؋3ۈ]u؉uj.Y]tu:=Fu1jhTD̰Et FvHE]uW|E؅t&5F΃30ΉuE t P]؃ vW0FGut;}r;}}rE^fj"^0NNG;r3_^[]ËUM3U S]VEW8Etj-Xfs3@ىEڋ}ujuRQ藝MȋE] vW0fGut;}r;}}rE3fej"^0m 3ffff;r3_^[]ËUM Vueej^0&33PPPPP̋UQVW}u^j^0]u 3Et9EtSuYtVˍQff;Eu+jAPEYYuo^j Y[_^]Ë}SWP u t>33PPPPP1jhFv3uu^3@WV_YY;tփej iYeVYuE UËuj YjhF3uu]Y3@WVYY;tփej YeVYuE ղËuj YËUQVWxtN}tHuNFu+2ʍAEAu+M;v<2=uVuR t?u3_^]Ë@UQQVW td}t^u3҉UNff;u+9t@ʍAEff;Eu+M;vfyYËU EMEEEPu EPD]ËUE]UE]UE]1"xYËV0ƃ?k0FD(t%VwzYPEt3^bHHEfH^ 1{xYËUQVuu >H Kx7;5Fs/Ƌփ?k0FD(tEEEPVYYG ^]ËUQFVWUuGM tߋ};vGUmSjA[jZ^+щujZ^ f;r f;w f;r f;Ew t ftf;t+[juu u _^]ËUS]u3}uFW} uFV;vFkuM E􋀤u\E+jAE^8jZZf;r f;w f;r f;w Ѓt ftEf;t+(SWSuhPPu Fp}t MP^_[]ËU졨Fu]juu u]ËUMSVWuEu3MtU uEFh;vfE&M}􋟤uuVPRQϟ-wPRPQhESPR u Ep}t MP_^[]ËUhuQYYu f}_t]3@]ËUhuQYYu f}_t]3@]ËUu MEMH%}t MP]ËUhuqQYY]ËUhu[QYY]ËUf} j@uX]u>QYY]ËUj u+QYY]ËUhuQYYu f}_t]3@]ËUhuPYYu f}_t]3@]ËUjuPYY]ËUhuPYY]ËUjuPYY]ËUhWuPYY]ËUjuzPYY]ËUjugPYY]ËUjuTPYY]ËUhu>PYY]ËUjuoYY]ËUhuPYY]ËUhuOYY]ËU츀f9E]ËUf} j@uX]uOYY]ËUj uOYY]ËUjuOYY]ËUhuOYY]ËUjuOYY]ËUhWuiOYY]ËUjuVOYY]ËUjuCOYY]ËUju0OYY]ËUhuOYY]39ËUQQF3ʼnESVuW~VuOY;Yp|}$u Ex}$39E(jjVuPWhEEJ;tRJ;#J=w;#|܅L;#PcY-3ۅuSVujWhE}3PPPPPWSuu 1Et8E ;3QQQPuWSuu 6J;tJJ;#J=w;#|td;#PYtI3t8jjjVWuSuu qt3PP9E u:PPVWPu$رEu.W&Y3S&Yƍe_^[M3]]u uW&YҋUuMu(Eu$u uuuuu P$}t MP]ËUUVu?j^0@} vM~3@9E w M?j"̋utSZW~0~tG0@IZx?5| 0H89t:1uFˍqAu+΍APSR蹲 _3[^]ËUP F3ʼnEMESVW} ω%u3 2Ҿ3]E3@jMQQ$pNYY9z=t=u303ۅ4C,j^Dž; 3ɋ ; 0u䋍3҃j ^Ɖ+3@xHωЉtA3+9PsŃsut2ɄjrY;rщʉ0+;rm;s83F;s @3##苍狍 lj0INt,돋t ȍ03󫀽t B,3,+3P,P0SP$3jXA\PP`SP|$c3Aj _lj+3@v,HɉЉtA3+9ōssut2jrY;rщʉ+0;rg;s3G;sB3##苍㋍ É0IOt,땋j^t ȍ03󫀽t B,3,+3P,P0SP"3@\jjYDž;3ҋ;0u䃥tP3j X+‹;8;s F;sW3ҋ3ЋNt,38+,VjPB3@5G@,tH3j X+ssut2jrY;s˃ti0<;s F;sW3ҋ3ЋNt,뮋t A,3,+,jP0hPr 3G+VjP3@5C\PP`SP 3j Yc񉅜ʉq&vj&X E4EW1jPMPEEPPStwzu3\\\3ɉ3``G;u`\Z\`P\P`SPu3\P\\3ɉ3``F;u\s=3\P;\`u\t \33+u%;!V`33Ή9stW;u@Ɖǃ@A;ut4s;uA3AȃsF;‰\PP`SPtl+<\Eu]3\P:3\PP`SP(2됃\jP`\33``F;ub\sK`\A񉅜ʉL&vj&X E4EW1jPPEEPPou3,Prz,m,3ɉ300G;u5,s0,,w|0P,P0SP<=,,3ɉ300F;uR;,0u,t ,33+u%;!V033Ή9stW;u@Ɖǃ@A;ut4s ;uA3AȃsF;‰,PP0SPZ+\E,330Ɖ0G;ut,ssN0,e3P,P0SP27,j3P,P0SPW,to330j Zlj0F;uድt@,ss0,&3P,P0SP\P,PrYYj Z;w\13ɋ3`j `GZ;uድt\\ss`\B3P\P`SP!u H0wMx wȋEH;r;,3ɋ30ʚ;0G;uߋt@,ss0,&3P,P0SPI\P,PYYj_+30;r7Ou vj Y񉵴;-M_3^[t]ËVVN:Y<uF V:YF^ÀytQ@:Y̋UM VW}7;1t_2^]3҅tA+ ;uB;u_^]̋UM VW}1;7t 23_^]3҅tA+I; uB;u3_^]̋UM39]̋UQS] VuW<EWFjPf ˺ƋMT7A_^[]ËUd F3ʼnES]lVW}u 3΁ -uΉ3_ }u"΋ǁ uh`LF`EPGYt AzE|@}u Eݕω%u3 2Ҿ33@8QQ$9YYe=t=u303ۅ4C,j^Dž;3ɋ ; 0u䋅3҃j Y+ȉ3@cHωЉtA3j X+V9ssut2jrY;rщʉ0+;rm;s83F;s @3##苍狍 lj0INt,돋t ΍03󫀽t B,3,+3P,P0SP)3jXA\PP`SP\3@j Y+ȉ3@b,HɉЉtA3j X+;9ssut2jrY;rщ‰0+ ;rg;s93F;sA3##狍苍 0HNt,땋j^t 30󫀽t B,3,+3P,P0SPE3@\jjYDž;3ҋ;0u䃥tP3j X+‹;8;s F;sW3ҋ3ЋNt,38+,VjP迂3@5G@,tH3j X+ssut2jrY;s˃ti0<;s F;sW3ҋ3ЋNt,뮋t A,3,+,jP0hP 3G+VjPv3@5C\PP`SP 3j Yc񉅐ʉq&vj&X E4EW1jPʀPEEPP_wzu3\\\3ɉ3``F;u`\Z\`P\P`SP7 u3\P\\3ɉ3``F;u\s=3\P;\`u\t \33+|u%;!V`33Ή9stW;u@Ɖǃ@A;ut4s;uA3Aȃs|F;‰\PP`SPtl+<\Eu]3\P:3\PP`SP2됃\jP`\33ɋ`Ɖ`A;ub\sK`\A񉅬ʉL&vj&X E4EW1jPe|PEEPPk[u3,Prz,m,3ɉ300F;u5,s0,,w|0P,P0SP=,,3ɉ300F;uR;,0u,t ,33+|u%;!V033Ή9stW;u@Ɖǃ@A;ut4s ;uA3Aȃs|F;‰,PP0SP+\E,330lj0F;ut,ssN0,e3P,P0SP27,j3P,P0SP,tw330j ZƉ0G;uትtB,ss‰0,&3P,P0SPG\P,PYYj Z;w\133ɋ`j lj`AZ;uድt\\ss`\B3P\P`SPu H0wAx wȋEH;r;,33ɋ0ʚ;lj0A;uߋt@,ss0,&3P,P0SP\P,P\YYj_+30;r7Ou vj Y񉵴;-*h|LFhtLF hlLFhdLFuS` u't_^[t lP%YM3_]3PPPPPW̋UVuu3mEuAj^0SW}t9u rVWPT 36u jPVu u j 9u sj"^0賡jX_^]ËUEVu苡Y@ S3 CCE@ 2E@ ËEtjY  E@ u uYEHuvvVYP$F EP@ u]uYt5uYt'uWVV?k0YYF_F@($E8ME UË]j 迷YjhF3U3uj ]YuEuu }WN ؉]tM9!uEtp,>E8ME UË]j /YËUVW}W Yuj X>u WgYS3&hVYYujhVYYt7SV谧YYtUt.} t"΍YAu+;rtj"UjQ3VWR:pt?x(t8ujh0S舁 tVhPU u j X[_^]SSSSSk̋UQVW}WSYuj XS3ۉ]f9uWYjhV#YYtSVYYtUt4} t(΍Yff;Eu+;r t3fj"Q3VWR:t?x,t8ujhAS虀 tVhP۫ u j X[_^]SSSSSz̋UVuj.V VYYȅu .2-;r+9E vSWj$3ۍySW_  u2_[^]j$+u VWRPuSSSSS̋UQj.u?YYȅu 跇2?;Mr+EW} ;w 蜇2#Sj$YjS ȉE u2[_]Ë+Ej$+WSRu趛u3PPPPPp̋UE 0E0YY]ËUE 0E00E]ËUVu<Fujh讀jF F^]ËUVu<(Fujhtj(F~ (F^]ËUSW}W|Yt{Shm YYtg=w`V4tt uutsF+ށEj$SV3SPNu&΍QAu+f.0\^2_[]SSSSS*̋USW}WYSh0E=wzV4Ctt ujxjwjvXfƿ++Ej$WV3SPޙu:΍Qff;u+j.NYfj0YfH3fH^3f2_[]SSSSSd̋UE 0E0YY]ËUE 0E0YY]ËUE0E 0E0} ]ËUE0E 0E0@ ]ËUE EQ0RYY]ËUE fȋEQ0<YY]ËUE0E 0E0 ]ËUE0E 0E0 ]ËUE0E0E 0Ep0O]ËUE0E0E 0Ep0k]ËUE0E0E 0Ej0]ËUE0E0E 0Ej0!]ËUEE AEA] UEE AEA] AQ +ËAQV0+2+^j hFM3uuzj^0;MÃ&ej گYeu V,YYut<0E뼋uj YjhF^MjYuj X?ujYujhW]YEP蔃Y}uj3u܉u0uhu hBWEPiu܃uhWYYut8uj}t[uWlYFE39PuuxYj ^3PEPE FE MEAMEuE LËu܋ExuPYuYËUEF]ËUE(F]WuÃ(IuÃ,ËU]{9DFËSVWj_F6Uy&vYu(F6=y&vYu_^[ËUQeEPjhu6E]ËUQ}uЀjXEPju u]ËUQeEj@P:EYY]ËUju"YY]ËUQeEPjhuE]ËUQ}u?jXEPju u]ËUVu~ VuɪYYE~ Pu赪YYtt3QQQPuVuu u軑+ujX3E^]ËU,F3ʼnEESVuE؋E EԋEEW}}~"VWYEY] ~SPYY}32|E$u E؋@E$t;ujX~3@~jMQPܰEt~/jX9Er}Mt؊Qtъ:r:Ȁ9u뺅~5jX9Er}Mtu܊Qt:r:~Ȁ9ut3WWVuj u$hEE؅J;tYJ;#J=w ;#/ĉE;#PvEYElj}uPVuu$jVhEWWSuj VhEEJ;tJJ;#J=w;#s.t`;#PuYtEt4uVSuju$hEt]WWWuVuSuu']V8Y]S,YǍe_^[M3:]ËUuM1u$Eu uuuuu P' }t MP]ËUM38t ;E t@<u]ËUVuIF3^]ËUQQeeVu6vGEP ;Eu F;Eu33@^]ËUQQeEePYt3@)MUEAEPUxYu誂3]̃=tF\$D$%=u<$f$ffd$uUy=tFt2\$D$%=u<$f$ffd$u% $B ÍT$ R<$tLD$ f<$t-(OFt^uA=4F MF uԩu|$u%t-NF"X uŃ|$u-NF=4F MF ZÃ=tF \$D$%=u<$f$ffd$ ~D$f(0MFf(f(fs4f~fTPMFffʩtL= |}f=2  fL$D$f.{$T$ ԃT$T$$ D$~D$ff(f=|%=2fT MFXfL$D$`MFf@MFfT MFf\$D$3PPjPjh@hhMFE`Fá`Ft tPYYtAt VdYu6XYM_3^'][ËUQQE]E]ËUE tjt3@]ètjtjX]]ËSQQUkl$F3ʼnEVs CWVPs u&ePCPCPs C sPEPs s^YWt)t%CV\$\$C$s W$WQ$VFCYYM_3^&][ËSQQUkl$F3ʼnEVs(C WVPsC u4EEC jPCPs C(s]PEPs(s}Yvt*t&C V\$C\$C$s W$Wo$VdC YYM_3^%][ËUM39 XFt @|3]ËXF]ËUS]VtEtj.Y#EtjYwEjEY #tT=t7=t;ubM YF{LHM {,YF2M zYFM zYFYFEW3tGM DEPQQ$E EU=}3GY3AuBEfEE;}++ȋEEtuGEEt EmuEtE 3G_tjYtE t j Y3^[]ËUEE]ËUjuuuuu u]ËUE3S3CHEW HEH Mt E Xt EHt EHt EHt EHMVu 3A1AM3A1AM3A1AM3A1AM3A#1AtMI tEH tEH tEH  tE X  #t5=t"=t ;u)E!MM E #t =t ;u"E M MEM31E X } t,E` EEXE X`E]``EXP:MA A EEXE X`M]A`A`EXPEPjjWdEMAt&At&At&At&At&ߋt5t"t u( % % !tt u!#  # } ^tAPAP_[]ËUjuuuuu u]ËUEtw"]!]ËUU 3ɋ9XFt@| XFMtUEEEEEEEVuEE hu(EE$uEmEPb uVUYE^hu(Cu9E ]ËUMEEPQQ$ ]ËUEWDz 3VfuƩu|M UutjٿAu3@3EuɉM yM OEtfuUf#fut f fuEjQQ$s #jQQ$` ^E8_]ËUE%-]ËUQQMEE%] fME]ËUQQMEE%] fME]ËU} Euu@]Á} u ujX]fMf#f;ujf;uE utj3]ËUQQE]EE 3Ё3ȉME]ËUQE3Ё3ȉME]ËUQQE]EE3E %3EEE]ËUQE 3E%3E EE]ËU3f#Mf;]ËUfMff#f;u3EQQ$YYttt3@]jjX]ø]ɁfuE u}tɃᐍ]EDz ɃA@]Ɂ]ËUfEf#Jf;uE u }uf;u3@]3]ËU VWWh?EYYM#f;uLQQ$YY~ ~)t-EPFV\$$j%jk\WV[YYENDzYFV\$$j%jčEPQQ$ EHEEWV] E_^]ËUE\$E$]ËUuEQQ$ ]ËU VWWh?EYYM#f;uiQQ$YY~-~au#E]E\$E$sEPFV\$E]E\$$jj?DzWVEYY)EPQQ$M Uy +;|Z+; = =~-PQQ$ V\$E]E\$=}%V\$E]E\$E$jj|=}&PQQ$g V\$E]EPQQ$FWV](E:V\$YF$\$E]E$QQE$jj$_^]ËUE\$E$]ËUSVEWPQYj_f;EPEYf;ED3Af;u$fEf#E Kf عfuz3fEfMz {zFzAfEurfE ukfE udfEf@fE%;uNjYDfEffEf;u+fE ffE f;ufE ffE f;u fM]f]_^[ujYE]ËUQVuV#ȉMf;u&u3f9Fuf9Fu f9u@jXu3f9Fuf9Fu f9u33++E fMf~Wj5_f;3FffV_fMYF ZFN#3‰UfNfʃttuf N3fFf N3fFf 3f3fH_^]ËUMVA#f;^uu3f9Auf9Auf9u@]jX]éu3f9Au f9Auf9u]3f]ËUQVuN#ЉUf;uuf>u3@jXu f>u3{++E WfEf3]jZf;3ffNAfEZFNj 8ZFN#3‰UfN3ff;}f f3fH_^]ËUMVA#f;^uu f9u3@]jX]éu f9u3]3f]ËUQEjPuu]ËU]JU]FUS]3t t3@tttVtPK E E jPY ^t d!t R"[]ËUW} uE!8V詾WYM#^3_]ËUE u3]VW}u ĺM# # W膿W 3;_^]ËUQueEPkEYY]%xE%|E%E%E%E%E%E%E%E%E%E%E%E%E%E%E%E%E%E%ıE%ȱE%̱E%бE%ԱE%رE%ܱE%E%E%E%E%E%E%E%E%E%E%E% E%E%E%E%E% E%$E%(E%,E%0E%4E%8E%~B+t3Ʌ MNB+t3 E3ɅF;BB+t3Ʌ M~B+t3Ʌ M~B+t3Ʌ MNB+t3 E3Ʌ_F;BB+t3Ʌ M2~B+t3Ʌ M~B+t3Ʌ MNB+t3 E3ɅF;BB+t3Ʌ M~B+t3Ʌ My~B+t3Ʌ MWNB+t3 E3Ʌ1F;BB~+t3Ʌ M~B+t3Ʌ M~B+t3Ʌ MNB+t3 E3ɅF;BB+t3Ʌ Ml~B+t3Ʌ MJ~B+t3Ʌ M(NB+t3 E3ɅF;BB+t3Ʌ M~B+t3Ʌ M~B+t3Ʌ MNB+t3 E3Ʌk~B+t3Ʌ MIB~+S3Ʌ M8M1+t3EqB+t3EqB+t3EIB+t3 EUu  +t3EujJF+t3EuLJF띋Uu  +t3Eu JFnEE ]3^[]Ë~EE]EEy~EEƆEE}EE.EeEJ}EREE͉E|EEE6E|E$EiEE{EE҃EEzEE;EpEUQM USVW}3ۃ ;+t3E< rA+t3E rA+t3ErA+ut3EEÅB;AA+t3ErA+t3E{rA+t3EYrA+ut3EEÅ+B;AA+t3Er A +t3Er A +t3Er A +ut3EEÅB ;A A +t3E_r A +t3E=rA+t3ErA+ut3EEÅB;AA+t3ErA+t3ErA+t3E|rA+ut3EEÅNB;AA+t3E!rA+t3ErA+t3ErA+ut3EEÅB;AA+t3ErA+t3E`rA+t3E>rA+ut3EEÅB;AA+t3ErA+t3ErA+t3ErA+ut3EEÅqj ^+;σQ$EB;AAr+t3ErA+t3ErA+t3ErA+ut3EEÅB;AA+t3ErA+t3E]rA+t3E;rA+ut3EEÅ B;AA+t3ErA+t3ErA+t3ErA+ut3EEÅnB;AA+t3EArA+t3ErA+t3ErA+ut3EEÅB;AA+t3ErA+t3ErA+t3E^rA+ut3EEÅ0B;AA+t3ErA+t3ErA+t3ErA+ut3EEÅB;AtA+t3ۅÍ]rA+t3ۅÍ]wrA+t3ۅÍ]UZA+t3E33_^[]ËB;At}A+t3EurA+t3EurA+t3EurA+ut3EEÅjB;AAr+t3E<rA+t3ErA+t3ErA+ut3EEÅB;AA+t3ErA+t3E{rA+t3EYrA+ut3EEÅ+B;AA+t3ErA+t3ErA+t3ErA+ut3EEÅB;AA+t3E_rA+t3E=rA+t3ErA+ut3EEÅB;AA+t3ErA+t3ErA+t3E|rA+ut3EEÅNB;AtsA+t3ۅÍ]uZrA+t3ۅÍ]u<rA+t3ۅÍ]uZA+t3EtRA+t3EB;AA+t3EzrA+t3EXrA+t3E6rA+ut3EEÅB;AAr+t3ErA+t3ErA+t3ErA+ut3EEÅhB;AA+t3E;rA+t3ErA+t3ErA+ut3EEÅB;AA+t3ErA+t3EzrA+t3EXrA+ut3EEÅ*B;AA+t3ErA+t3ErA+t3ErA+ut3EEÅB;AA+t3E^rA+t3E<rA+t3ErA+ut3EEÅB;AA+t3ErA+t3ErA+t3E{rA+ut3EEÅMfBf;ApA+t3ۅÍ]OZA+?3E,B;AAr+t3ErA+t3ErA+t3ErA+ut3EEÅ[B;AA+t3E.rA+t3E rA+t3ErA+ut3EEÅB;AA+t3ErA+t3EmrA+t3EKrA+ut3EEÅB;AA+t3ErA+t3ErA+t3ErA+ut3EEÅ~B;AA+t3EQrA+t3E/rA+t3E rA+ut3EEÅB;AA+t3ErA+t3ErA+t3EnrA+ut3EEÅ@B;AtA+t3ۅÍ]HrA+t3ۅÍ]&rA+t3ۅÍ]ZA+t3ErA+t3ErA+3EiIE+EEBEbEEEEÕEEhEE$EgEɝEuEEȘE*E֡EE)EE7EGEEEEEELEEWVt$L$|$ ;v; s%F% Fs D$ ^_Ë3Ʃu%F% Fs vs~vftefoNvfo^0foF fon0v00fof: ffof: fGfof: fo 0}v foNvIfo^0foF fon0v00fof:ffof:fGfof:fo 0}vVfoNvfo^0foF fon0v00fof:ffof:fGfof:fo 0}v|ovfs vs~vfEtIuу $E$EEEEED$ ^_ÐD$ ^_ÐFGD$ ^_ÍIFGFGD$ ^_Ð41<9 Q%Ft׃+ʊFGNOu $0E@EHEXElED$ ^_ÐFGD$ ^_ÍIFGFGD$ ^_ÐFGFGFGD$ ^_tINOurhooNoV o^0of@onPov`o~pOW _0g@oPw`pu r# ooNO ututuD$ ^_̋ƃуtf$fofoNfoV fo^0ffOfW f_0fof@fonPfov`fo~pfg@foPfw`fpJut_t!ooNOv  Jut0tuȃtFGIu$ID$ ^_Í$++Q‹ȃt FGIut vHuY`P<*Գ~rbN:N`pΰܰ ,:L^r0|$̺z`F:. Թȹt`LگįfXJ4$ 4@ش&B\r̵޵&2JbzʶԶ .>L\~Ʒз .@PbrҸ|α.ز̲~lXB0 ڱ@}@|@|}@@%@D+ECEqCDBEXA+dWnOA AlGRWpO6a'wj5ObFÅm]rLwx,aOMG  ķ]v+qAO pO]և+DW^ Oor;owLf[MEĀv*cMjVDEs"@0(9A8L7ʸ!A9mG-*+$%|QOz)(BF\G aUFEzfCNItwׄtxM NI{@ >K]TKFad4Cz "zOy|I)sO>BqB 7 EC)t0ō*M^2mFT }jL^6CTv]=D%OcgP0 V A H FFPB,ɨ=$HܨEye64Bl OUᏢWU]O ɊFiyŜ?Oɝa3K@~OqK M;rG¸E\\GNˇbo-XCMtY&h~vIsB U[6J[CS[bHNAF"JL G:7՝5F3+zFO${aύtA^?UX&I}!<OGFV;&OF}P($IZ^9&M[OrWG 35w~s5i+.bi;'~.gC\[bGEրEv+0PoSi)!@'QL.JifrtgHU;aއ-+ o.Eцf@"nO :i+00.PRO—-2NfHyu M7?eEd9Ē^F{w@=TR%9O'HKlqt} {ҜJ3F̉.|-!CQ7o֩Cmy4[ _eOkmM]`g.H iVFO#A,\V׉#G`` E%6QM\vWNVM.^R FHsp^QmOpNr-O&oORO%e{HqC,㟽$\E9 Ot<&KA>=a-kQG^),=Nk.4qa޼^Ol^\`U;MW.I|Kg+*U6F:(Y;J\FЗ4mc/4*&{-@`ެ)F#Ϋ>/ICVJNztI6FOEг@wiKw^ Ҩ\I;%Sjc(=O'>OСFVe\Kz~|Tn9{ŞC $&;ل.CZ0YctXT9bq^F*O !:i+00iI~+.ͩ _@^A% xSiMEQ 3߷;`[}N8úGˢ)w]+.DJQ3(9O>ܥ>G2A`tpZdfapHUeі[/tAxC(DW@Xzvi>VMYFDAtKpȞ&Aõ*.7V`Ɔ'":i+00hXt_vJ)v ؂تI'9Y:Oh7 e.{ JOe/+dWnOF]K $Lb`wG:J'Ws5i+.b!\_[CP2nD\HC*v CBg (#4DLe+.b1 ъ*Bp2r%9Y:Oh7ա΋!  Hl?<W>OrAGQ`{FL>!OL'`g$$/4EjfqJ1B*)l6ٿMp.лչL@mIh.6]PO,1Dl4L~ɋ@J7<}iFs5i+.b1IkLIC'+I~vph}OUEK}4@ VqzeG'{-F4plTI?rF֔hJuAtXJQ x;>VfNr@"=3uw-NFEH/дtF5K@~OqF9tRNNgɆ󝚫N_3haO1FIFS2IEt$c^NIe2$53QB`ϝk(ԺCy&|=HF5ꥂG)]/qNnwmjKDWw? jY>4'r`F$<;{dFP0 F:̿,LB)隇AxWObDcq# ۅ>eL:er=mG)fR IC0hxU*TK Ix5i+.b^5N$̈cpH|t$ HNOiNㄐi3O < zO1I( W0\"F-V ևA)F Wt חb@Z|KJAVgq@L\J7.jxO`OK #@;>VFhP}N<)ѪF $aOBd-@y#uLKdqkPCU .4z]bM I]Ft Ox_xrd_w~LNdL֬F4Ku@ +К#FlHi"k1%B T #8ƪd_NM&uf4Lc'wj5Obx8WFTpj7BWGCQl2FiM^eQI+Idʏ[FFFFF F F!FFF0:s *Dw= F`k;Yi+-z1OY ȿ4<OV% X$5I?#3:O4j;Yi+-zj;Yi+-zi;Yi+-zv nr=F>FDF[F"FFF0F1F2F3F%F)F*F0:s*Dw=IF y.Y+FGFHF:/ۆ/O:/ۆ/O:/ۆ/O:/ۆ/O:/ۆ/O:/ۆ/OFFFFU 8r+C+n4@FacH&8FvCj?e~ҦFFF&FF F FFk!Pi)? F F F F FFFFFPF%FQFFFF@Fʙ^AiXשFh Mm8gh z0Gd<O8m xO4yOԒMm8gh &FEFǝv\Wސy(_FF4F Z'B>âRX0eu{ڮP9Vu{0ne0E Kvne yOܦϫ|x O jIOQnO09$-1.E^*onePone |~|?ne? PE^#1$-?W2$-?W2$-pw~?neg@ne˳j@ne˳j@ne?W2$-~{S^BEy|KDphKΔӳOհrIOC'zO{TxhO{lhO6ǀ_`\`OOrOh7y) Oh7BTyI6 EZ{ْ?i]?9A!8ҏFs%E~2]r?jdN&6u^gO!B> 9}Nr*GݓkFN]ͷghhϓgAc*^Z%Ȕ2AeqKW';?B@ J$SQ`Ɔ(œO>1s-O(hHjxOi QD(ߥl+ rˆLmCBUa{Ӱ~C.`1 y/DĊY F;aAdƼ403bpc(Jg Дէ{E] E)ПS-oEH?syYz(y K@AXGA'qQU AJ s Y!WOZ{*lg(M2(TfC'>|a.  O;O.K[K8H]҇26 -&{-r: %wCjW'tVamy!@iaWBVm`ɠI-`:Bn5OC(K鞟^ﯘ=ѕK0:ښL%2J4{[kYs=BMQ!B\[/B{NsASÖ.̆I#t9JDf?kјH"tŻ-Gs?zZAe!`[ǽ6NXX$  KiiőԞ(LqmjK H(.~,-Y@o3\.Q Cpg{LKI s<_z\ LKo(t;sM|@)^vJYӞ~+IzÊChsxDpWJ?,CP0DOAoZ\q"tDk׾ TLrTIkE a`NNe76_I|kHrYM>s: .jxOˡd:aDX7iii9P5}+EutX(T6QB~ۜC]_#ͼ_Ld=xr|խhG2`?uIp4Bf6חKt3OtaG'"v0 SNwL1"(iv@ YGح+ObC4`[ԄLr?RJ{,AsEOWL"O7v8yOhKKt&1Zs~:6 B}Ftr⋪GMv2̤ pDʹfD.b[GvtH; zr\GڙYkH?FA&OA;,Ui6 IJ"x9J4ܵ;EfDװqmrE.1!YuY&HxHϣ'GVBeUNOخ|)IE@0lyדسDg,ݠeL3"5/QqCAwSk5 X;-3B{_41lxpOh6ǾƱLb VBPoz5zD #D@Fgm[M/BT|\?@zpDF[0 49Z I}AaB}KX䌠%D|DZ#`ڽWvGE>ςZ#@k{X8&oI Qd5CvSdn0@DH&'E4VwҁnB*O&-bfMlV!j hFXapf_:qJ?򥸿2cpF^W5}3ƔHjiOY<0G== 6eFpqFwHҶe_K#q}kdO-pV+UN;;z5Og5е.Í}DwMm3sG%`4n.8E40yvF'6я]A.VGމJ=PpZd1FOЊ ĽFK6eJ7`, :i+00Fh3MnMܙS{5)xKt O3CKsw`$D&l;0MHֿRUBu(dT&arrCuƋ.|uU:WPHw[ێ Z܊M`* !sG3^F0MJSkyZ 8y M3,/KqI\M;TQ'CHCh4-6C$/`zLbeLWwR"F)JȬ պFD-ʀr33yHȅF/_~_INK R(N伽I@܏Uo#RH kM?'kaIõ}EFVxCEg{Sl"vM`3)/#RW$ZI/Փg3wB$hŨ"IΕL?vk΄e}IƼ8-F"DDm'Cb**+C ,R[09|)J=AxB:RC%jAyiȳO^7q2hK_Lrz=*Fŗ5WIZgnMI/~o& IFk"t% 0H Ng4f/`CU7%(Lx#h>5qM?w;E9eZJ 57BxsCU3FFXElEEEadvapi32api-ms-win-core-fibers-l1-1-1api-ms-win-core-synch-l1-2-0kernel32EventRegisterEventSetInformationEventUnregisterEventWriteTransferFlsAllocFlsFreeFlsGetValueFlsSetValueInitializeCriticalSectionExPE\EdEpE|EEEEEEEEEZFEEEEEEEE EEE E$E(E,E0E4E8E><<!==!=[]operator->*++---+&->*/%<<=>>=,()~^|&&||*=+=-=/=%=>>=<<=&=|=^=`vftable'`vbtable'`vcall'`typeof'`local static guard'`string'`vbase destructor'`vector deleting destructor'`default constructor closure'`scalar deleting destructor'`vector constructor iterator'`vector destructor iterator'`vector vbase constructor iterator'`virtual displacement map'`eh vector constructor iterator'`eh vector destructor iterator'`eh vector vbase constructor iterator'`copy constructor closure'`udt returning'`EH`RTTI`local vftable'`local vftable constructor closure' new[] delete[]`omni callsig'`placement delete closure'`placement delete[] closure'`managed vector constructor iterator'`managed vector destructor iterator'`eh vector copy constructor iterator'`eh vector vbase copy constructor iterator'`dynamic initializer for '`dynamic atexit destructor for '`vector copy constructor iterator'`vector vbase copy constructor iterator'`managed vector copy constructor iterator'`local static thread guard'operator "" Type Descriptor' Base Class Descriptor at ( Base Class Array' Class Hierarchy Descriptor' Complete Object Locator'CV: ::template-parameter-generic-type-`'`anonymous namespace'''`non-type-template-parametervoid`template-parameter...NULL%d`template-type-parameter-`generic-class-parameter-`generic-method-parameter-}' }' `vtordispex{`vtordisp{`adjustor{`local static destructor helper'`template static data member constructor helper'`template static data member destructor helper'static virtual private: protected: public: [thunk]:extern "C" ) char short int long unsigned void volatilestd::nullptr_t std::nullptr_t,..., throw(cpuamp, charshortintlongfloatdoublebool__int8__int16__int32__int64__int128char16_tchar32_twchar_t__w64 UNKNOWNsigned const volatile`unknown ecsu'union struct class coclass cointerface enum volatile const & && cli::array<cli::pin_ptr<)[{flat}{for s Fi@i@i@\F@@@F$@B@h@F@@ @@F@@@F@@$@ ?? EEE50P( 8PX700WP `h````xpxxxxEEE00P('8PW700PP (`h`hhhxwpwpp(null)(null)        ! 5A CPR S WY l m pr   )    Tc-^k@tFМ, a\)cd4҇f;lDِe,BbE"&'O@V$gmsmrd'c%{pk>_nj f29.EZ%qVJ.C|!@Ί Ą' |Ô%I@T̿aYܫ\ DgR)`*! VG6K]_܀ @َЀk#cd8L2WBJa"=UD~ $s%rс@b;zO]3AOmm!3VV%(w;I-G 8NhU]i<$qE}A'JnWb쪉"f37>,ެdNj5jVg@;*xh2kůid&_U JW {,Ji)Ǫv6 UړǚK%v t:H孎cY˗i&>r䴆["93uzKG-wn@  _l%Bɝ s|-Ciu+-,W@zbjUUYԾX1EL9MLy;-"m^8{yrvxyN\lo};obwQ4Y+XW߯_w[R/=OB R E]B.4o?nz(wKgg;ɭVl H[=J6RMq! EJjت|Lu<@rd 6x)Q9%0+L ;<(wXC=sF|bt!ۮ.P9B4Ҁy7P,=87MsgmQĢR:#שsDp:RRN/M׫ Ob{!@fu)/wdq=v/}fL3. iLs&`@< q!-7ڊ1BALlȸ|Rabڇ3ah𔽚j-6zƞ) ?IϦw#[/r5D¨N2Lɭ3v2!L.2>p6\BF8҇i>o@@w,=q/ cQrFZ**F΍$'#+GK ŎQ1VÎX/4Bycg6fvPbag ;s?.❲ac*&pa%¹u !,`j;҉s}`+i7$fnIoۍut^6n16B(Ȏy$dAՙ,C瀢.=k=yICyJ"pפldNnEtTWtøBncW[5laQۺNPqc+/ޝ"^̯p?m- }oi^,dH94X<H'W&|.ڋu;-Hm~$P  %-5 > H R ] i u -C Y p        %  d'@Bʚ;minkernel\crts\ucrt\inc\corecrt_internal_strtox.h__crt_strtox::floating_point_value::as_double_is_double__crt_strtox::floating_point_value::as_float!_is_doubleINFinfINITYinityNANnanINFinfINITYinityNANnanINFinfINITYinityNANnanINFinfINITYinityNANnanSNAN)snan)IND)ind)SNAN)snan)IND)ind)SNAN)snan)IND)ind)SNAN)snan)IND)ind)Visual C++ CRT: Not enough memory to complete call to strerror.Visual C++ CRT: Not enough memory to complete call to strerror..exe.cmd.bat.com./\?*   Runtime Error! Program: <program name unknown>... Microsoft Visual C++ Runtime LibraryF\F\/ F/mscoree.dllCorExitProcessFlCFFlCFF4DFFDFF{DFFDLC_ALLLC_COLLATELC_CTYPELC_MONETARYLC_NUMERICLC_TIME  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~=;;=C_.,_. CLC3CCFCICCCDDCsCCtCC*B*B~D CC;C>CC8C\\\.\.TMPTMPmsvcrt.dllccsUTF-8UTF-16LEUNICODEccsUTF-8UTF-16LEUNICODEF`FlEFF FFFEFHFFFFhFF FXEEX Fapi-ms-win-appmodel-runtime-l1-1-1api-ms-win-core-datetime-l1-1-1api-ms-win-core-file-l2-1-1api-ms-win-core-localization-l1-2-1api-ms-win-core-localization-obsolete-l1-2-0api-ms-win-core-processthreads-l1-1-2api-ms-win-core-string-l1-1-0api-ms-win-core-sysinfo-l1-2-1api-ms-win-core-winrt-l1-1-0api-ms-win-core-xstate-l2-1-0api-ms-win-rtcore-ntuser-window-l1-1-0api-ms-win-security-systemfunctions-l1-1-0ext-ms-win-kernel32-package-current-l1-1-0ext-ms-win-ntuser-dialogbox-l1-1-0ext-ms-win-ntuser-windowstation-l1-1-0user32AreFileApisANSICompareStringExEnumSystemLocalesEx GetActiveWindowGetCurrentPackageIdGetDateFormatEx GetEnabledXStateFeaturesGetFileInformationByHandleExGetLastActivePopupGetLocaleInfoExGetProcessWindowStation GetSystemTimePreciseAsFileTimeGetTimeFormatExGetUserDefaultLocaleNameGetUserObjectInformationW GetXStateFeaturesMaskIsValidLocaleNameLCMapStringExLCIDToLocaleNameLocaleNameToLCID LocateXStateFeatureMessageBoxAMessageBoxW RoInitialize RoUninitializeSetThreadStackGuarantee SystemFunction036am/pma/p - : +%SunMonTueWedThuFriSatSundayMondayTuesdayWednesdayThursdayFridaySaturdayJanFebMarAprMayJunJulAugSepOctNovDecJanuaryFebruaryMarchAprilJuneJulyAugustSeptemberOctoberNovemberDecemberAMPMMM/dd/yydddd, MMMM dd, yyyyHH:mm:ssSunMonTueWedThuFriSatSundayMondayTuesdayWednesdayThursdayFridaySaturdayJanFebMarAprMayJunJulAugSepOctNovDecJanuaryFebruaryMarchAprilJuneJulyAugustSeptemberOctoberNovemberDecemberAMPMMM/dd/yydddd, MMMM dd, yyyyHH:mm:ssen-US F F F F F F F F F F F F F F F F F F F F$ F( F, F0 F4 F8 F< FD FP FX F F` Fh Fp Fx F F F F F F F F F F F F F FFFF F0F@FTFhFxFFFFFFFFFFFFFFFFFF(F4F@FPFdFtFFFFFFFFINFinfNANnanNAN(SNAN)nan(snan)NAN(IND)nan(ind)e+000 ((((( H ( 0 ((((( H   !"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~SunMonTueWedThuFriSatJanFebMarAprMayJunJulAugSepOctNovDecTZFFFFF$F8FTFhF|FFFFFFF FF(F8FHFXFhF|FFFFFFF F$F4F@FPFFdFFFFFFFFNo errorOperation not permittedNo such file or directoryNo such processInterrupted function callInput/output errorNo such device or addressArg list too longExec format errorBad file descriptorNo child processesResource temporarily unavailableNot enough spacePermission deniedBad addressUnknown errorResource deviceFile existsImproper linkNo such deviceNot a directoryIs a directoryInvalid argumentToo many open files in systemToo many open filesInappropriate I/O control operationFile too largeNo space left on deviceInvalid seekRead-only file systemToo many linksBroken pipeDomain errorResult too largeResource deadlock avoidedFilename too longNo locks availableFunction not implementedDirectory not emptyIllegal byte sequence+FFF(Fja-JPzh-CNko-KRzh-TWamericanamerican englishamerican-englishaustralianbelgiancanadianchhchichinesechinese-hongkongchinese-simplifiedchinese-singaporechinese-traditionaldutch-belgianenglish-americanenglish-ausenglish-belizeenglish-canenglish-caribbeanenglish-ireenglish-jamaicaenglish-nzenglish-south africaenglish-trinidad y tobagoenglish-ukenglish-usenglish-usafrench-belgianfrench-canadianfrench-luxembourgfrench-swissgerman-austriangerman-lichtensteingerman-luxembourggerman-swissirish-englishitalian-swissnorwegiannorwegian-bokmalnorwegian-nynorskportuguese-brazilianspanish-argentinaspanish-boliviaspanish-chilespanish-colombiaspanish-costa ricaspanish-dominican republicspanish-ecuadorspanish-el salvadorspanish-guatemalaspanish-hondurasspanish-mexicanspanish-modernspanish-nicaraguaspanish-panamaspanish-paraguayspanish-peruspanish-puerto ricospanish-uruguayspanish-venezuelaswedish-finlandswissukususaamericabritainchinaczechenglandgreat britainhollandhong-kongnew-zealandnzpr chinapr-chinapuerto-ricoslovaksouth africasouth koreasouth-africasouth-koreatrinidad & tobagounited-kingdomunited-states4FENUHFENUlFENUFENAFNLBFENCFZHHFZHIFCHSFZHHFCHS8FZHI\FCHTFNLBFENUFENAFENLFENC FENB8 FENIP FENJp FENZ FENS FENT FENG!FENU!FENU0!FFRBP!FFRCp!FFRL!FFRS!FDEA!FDEC!FDEL"FDES8"FENIT"FITSp"FNOR"FNOR"FNON"FPTB"FESS#FESB<#FESLX#FESO|#FESC#FESD#FESF#FESE$$FESGH$FESHl$FESM$FESN$FESI$FESA$FESZ%FESR0%FESUX%FESYx%FESV%FSVF%FDES%FENG%FENU%FENUA%FUSA%FGBR&FCHN &FCZE&FGBR(&FGBRD&FNLDT&FHKGh&FNZL&FNZL&FCHN&FCHN&FPRI&FSVK&FZAF&FKOR 'FZAF('FKOR@'FTTO%FGBRd'FGBR'FUSA%FUSAACPOCP  6 - 3F3F 3F(3F83F@3FH3FP3F X3F `3F h3F p3F x3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F4F 4F!4F"%F#4F$ 4F%(4F&04F'84F)@4F*H4F+P4F,X4F-`4F/h4F6p4F7x4F84F94F>4F?4F@4FA4FC4FD4FF4FG4FI4FJ4FK4FN4FO4FP4FV5FW5FZ5Fe5F 5F$5F05F<5F(FH5FT5F`5Fl5F F x5F 5F 5F5F5F5FFF5F5F5F5F5F5F6F6F 6F,6F86FD6F P6F!\6F"h6F#t6F$6F%6F&6F'6F)6F*6F+6F,6F-6F/6F27F47F57F6(7F747F8@7F9L7F:X7F;d7F>p7F?|7F@7FA7FC7FD7FE7FF7FG7FI7FJ7FK8FL 8FN8FO$8FP08FR<8FVH8FWT8FZd8Fet8Fk8Fl8F8F8FF8F 8F 8F 8F8F8F9F 9F9F09F,<9F;T9F>`9FCl9Fk9F 9F 9F 9F 9F 9F 9F 9F; 9Fk :F:F:F(:F 4:F @:F L:FX:F;d:Ft:F:F:F :F :F :F:F;:F:F :F :F ;F;F;,;F<;F H;F T;F`;F;x;F ;F ;F ;F; ;F$;F $;F $;F;$;F(;F (;F (GF4F7HFx3F HFN4F/HFt3F$HF0HFZ3F @@ IqI`B `BYnYnloglog10exppowasinacossqrt?? |?Q-8>=޶W?0 k8=ޮp? x9=>.ښ?pn5=Yح? Q*=c??b6=Y?T?=>?W!=@-32?Dz=p(?vP(=`?US?>=e?g7=`ŀ'?bͬ/=^s?}#=Jwk?zn=N ָ?LN9=@$"3?5Wg4p6=T?Nv$^)=&?.)<lB?M%=`j?w*= <śm?E2=ެ> ?E=t?? =OQ?w(@ <0?Ac 0=Pyp?dry?=St)?4K >=$?QhBC .=0 ub?-0=?a>-?=?Й,<(lX ?T@b ==P?3h,%=f??# =V ?ߠϡ6=Y?z $=G? $l35=@n?[+3=Rŷ?sdLi==p|?rx"#2=@.?|U2=lԝ?rF=a? 4=Y?sl׼#{ =`~R=?.i1=,? =vX?=p?h}s"= E[ ?%S#[k=7H?j=!V1?}a2=jq?20J5=?5=x¾/@?"B <1=iz?\-!y!=X0z?~b>==:? #.X'=HBO&?(~=xbb? .=Cq?y7i9+= v?:=0 ?2ض8=xPD?X1=??Q?Q?????????]?]?P?P? ? ?U?U?(?(?`?`?_?_?????z?z?1?1?p?p???(e?(e?@#?@#???`?`?hk?hk?,?,?x?x?????N?N?x?x?p?p???~?~?HN?HN???????p?p?Xi?Xi???????????8?8?s?s?pI?pI?&?&?????o?o? *? *???`?`?Z?Z???0?0???PY?PY???`?`???pm?pm?/?/??????tanhatanatan2sincostanceilfloorfabsmodfldexp_cabs_hypotfmodfrexp_y0_y1_yn_logb_nextafterOFOFOFOFYFYF!8XFOF OF@XFHXFOFPXFTXF XXF \XF dXFlXFtXF|XFXFXFXFXF"XF#XF$XF%XF&XFsinhcosh????؛FiECreateDirectory (%s)CreateFile (%s)CreateFileMapping (%s)MapViewOfFile (%s)1.2.8inflateInit2 returns %dinflate returns %dinflateEnd returns %d\-32PURELIBPLATLIBHEADERSSCRIPTSScripts\DATALib\site-packages\Installation failed.import py_compile; py_compile.compile (r'%s')%s%cPy_InitializePy_SetProgramNamePy_FinalizePyRun_SimpleStringPySys_GetObjectPy_OptimizeFlagCSIDL_COMMON_STARTMENUCSIDL_STARTMENUCSIDL_APPDATACSIDL_COMMON_DESKTOPDIRECTORYCSIDL_DESKTOPDIRECTORYCSIDL_COMMON_STARTUPCSIDL_STARTUPCSIDL_COMMON_PROGRAMSCSIDL_PROGRAMSCSIDL_FONTSsshell32.dllfunction not availableSHGetSpecialFolderPathAno such folder (%s)unknown CSIDL (%s)CoInitialize failed, error 0x%xsss|sssiCoCreateInstance failed, error 0x%xQueryInterface(IPersistFile) error 0x%xSetPath() failed, error 0x%xSetDescription() failed, error 0x%xSetArguments() error 0x%xSetIconLocation() error 0x%xSetWorkingDirectory() error 0x%xFailed to create shortcut '%s' - error 0x%xssiicreate_shortcutget_special_folder_pathget_root_hkeyfile_createddirectory_createdmessage_boxPYTHONHOME=%sSOFTWARE\Python\PythonCore\%d.%d%s\InstallPathPyImport_ImportModulePyObject_SetAttrStringPyObject_GetAttrStringPyCFunction_NewPy_BuildValuePyArg_ParseTuplePyErr_FormatPyLong_FromVoidPtrbuiltinsValueErrorOSErrorPySys_SetArgvCould not open postinstall-script %s Running Script...*** Could not load Python ***PyErr_PrintCan't load Python for pre-install script (%d)Running the pre-installation script failed Out of memory!Runtime Error100 Made Dir: %s 200 File Copy: %s 200 File Overwrite: %s .pyErrorInvalid cfgdata magic number (see bdist_wininst.py)~duCould not create temporary fileTimes RomanSetupWindowClassSetup.exeCould not register window classSetup %sThis Wizard will install %s on your computer. Click Next to continue or Cancel to exit the Setup Wizard.Software\Python\PythonCorePython Version %s (found in registry)Software\Python\PythonCore\%s\InstallPathStrangeDon't know Python's installation typePython %s is required for this package. Select installation to use:Python version %s required, which was not found in the registry.No Python installation found in the registry.Cannot installPython Version %d.%dpython%d%d.dllHKEY_LOCAL_MACHINEHKEY_CURRENT_USERYou do not seem to have sufficient access rights on this machine to install this softwareCould not open key%s\%s-wininst.logaCan't create "%s" (%s). Try to execute the installer as administrator.*** Installation started %Y/%m/%d %H:%M *** Source: %s 999 Root Key: %s %s-py%d.%dCould not create key020 Reg DB Key: [%s]%s Python %d.%d %sDisplayNameCould not set key value040 Reg DB Value: [%s\%s]%s=%s %s\Remove%s.exewb"%s\Remove%s.exe" -u "%s\%s-wininst.log"UninstallString*** Installation finished %Y/%m/%d %H:%M *** Click Next to begin the installation of %s. If you want to review or change any of your installation settings, click Back. Click Cancel to exit the wizard.Ready to installRunning pre-installation scriptInstalling files...Failed to unzip installation filesCompiling files to .pyc...Loading python...Compiling files to .pyo...-installPlease wait while running postinstall script...\Scripts\300 Run Script: [%s]%s *** run_installscript: internal error 0x%X *** Postinstall script finished. Click the Finish button to exit the Setup wizard.IsUserAnAdminrunasFailed to start elevated process (ShellExecute returned %d)Setuptitleinfobuild_infotarget_compiletarget_optimizetarget_versionnamemetadatainstall_scriptuser_access_controlforceautononeoopsBad user_access_control value%s.batw:Repeat del "%s" if exist "%s" goto Repeat Could not delete keyCould not delete value-remove*** Could not run installation script ***uninstall-scriptWrong number of args-u2. arg is not -urcould not open logfileOut of memoryPlease confirmAre you sure you want to remove this package from your computer?%d Root Key: %sYou do not seem to have sufficient access rights on this machine to uninstall this software%d Made Dir: %s%d File Copy: %s%d File Overwrite: %s%d Reg DB Key: %s%d Reg DB Value: %s%d Run Script: %s%d files and %d directories removed %d files or directories could not be removed%d files and %d directories removedUninstall Finished!Could not open archiveRemoveThis program is normally started by windowsSetup program invalid or damagedZFFFZFFFF$F8FHFZF0w,aQ mjp5c飕d2yҗ+L |~-d jHqA}mQDžӃVlkdzbeO\lcc=  n;^iLA`rqgjm Zjz  ' }Dңhi]Wbgeq6lknv+ӉZzJgo߹ホCՎ`~ѡ8ROggW?K6H+ L J6`zA`Ugn1yiFafo%6hRw G "/&U;( Z+j\1е,[d&c윣ju m ?6grWJz+{8 Ғ |! ӆBhn[&wowGZpj;f\ eibkaElx TN³9a&g`MGiIwn>JjѮZf @;7SŞϲG0򽽊º0S$6к)WTg#.zfJah]+o*7 Z-A1b62S-+ldEw}ZVǖAOIъ OM~-QJ#SpxAaU׮.7׵Y-6]]wll?AԞZ͢$ Faw$eڪ]]FD(koipvk19Z* ,  m86F߲]qTp0ek*1u4yީ%8S1bSWĔՖk1**ykʬHpo].*F6fcTT"eM©g0&):{ϼkZ> 8$,52F*sw1pHkQ6Fzw]cN̵J #pAF]#l8?1(BOgT~yUbL8^#ܖTZ1ObbSyOIV~P-{b-R4٠~^eGnHl/Su6: #jT$+e?yHf'*b#ٽЧ ?&~?$pi;FBzw[keZ~7 Sv8H 3?r$7jnԄYFܨ |OQ;օ U d S - =G\ p&Gw)` /a߫i5&LsZ<#0zMzFM8,9; :R:(q-v,.7/pXqYs3r%w+OQvrtEux܉~OK }!b|tyBxʠz{.lD~m8onlk[wjR1h58ib?mcf+aQ`צedd"fig HINSKyuJcO NZLݘMFGN@E$DD2AsX@*IBCPhTg3U>uW ַVS:R|P~Q9ZS [fYX4])\ZEo^m/_5qϱ٥s\ۼqދ!K7 kfֶԁ-b3Πjp]$^'~*I@VW<âM˟ŏ{ tDCm-@wm.B+(铜>Td"ŀǼϭ~8y$owJ1}05_K^ iϏ은BI#ƈdX܁T̓cQ: rՆ⩗ fn|xK)o%ƭ/3vUuA?)C:|sĵ@͂ Ͳ;bIUeh"׻_HS1޼^Z4eg Wb27_k%8ם(ŊO}do׸Jj3wVcXWP0qB{߭gCru&op-?'Bs ưGz>2[Ȏg; i8P/ _Y=чe:ZO?(3wwXR @hQ+ğH*0"ZOWoI}@mNП5+#*'G| AH=XX?#1jvʬ`p^Y<L~i/{kHwâ hs)aLoD~Pf7VM'(@ﰤ ہg9x+n&;f?/X)T`D1 ߨMߒ.FgTp'Hq/L0UEc?kǃh6ry7]P\@TN%s7@'>$!AxUʰ\3;Y^U~PGl!;b F2ȂpԞ(Q_V:1X: n3 m:@/)IJNv"2x+ٗ Kx.HҥfAj^y9*O]#kM`~b_R 7zFh!1߈Vc0a"j6nS Nr)Υ{t*F8#vufz`rs"WG9^EMvc΍&DAdQy/4Aڱ&S֚E biLQ<6'5P..T&q]w4.6IE? v\[YI>U!lDa>Ԫ΋ϩ7~8A]&nv|oY yKiw\¹9~$ 66nQfq>,o,IӔ 渱{I .H>C-Yn馑gQz tafw0a, Qmpjc5dۈ2yܸو L+~|-dj qHA}mԵQӅlVdkbze\Ocl=c ;n Li^`Agqr<KG k5Blۻ֬@2lE\u ϫ=Y&0Q:Qa!V#Ϻ(_ ٲ $/o|XhLaf-=vAq *q3xɢ4 j m=-dlc\kkQlabe0bNl{WeP|b-I|LeMaX:QΣtԻ0JߥA=ؕפmCij4ngF`D-s3 L_ |Pq<'A  Wh% of a^)ɘИ"רY=. \;l  tҚG9w&sc d; mj>zjZ '}DhibW]egl6qnkv+zZgJoC`֣ѓ~8ORѻgWg?H6K +گ L6JAz``ègU1nFiyaf%oҠRh6 w G"U&/ź; (+Z\j1,ٞ[ޮd°c&ujm 6?rgWJz{+ 8Ҏվ | !Bhݳڃn&[owGwZjpf; \ebiaklE x NT9§g&a`IiGM>nwۮjJZ@ f7;𩼮S޻G0齽ʺŠS0$6TW)#gfz.aJ]h*o+ 7 Z-1A26b+-Sdl}wEVZOAي»IˬO ~M-JQS#xpaA.U7Y-۩6˚w]]llA?Z$㧲F waރ$Ųe]]DFok(vpi91k *Z  ,8mF6]pTqke0*1¶u4%y<8syjHA}X*ݹ1SbSW§ٖծ1k**kypH]oF*.f6TTcMe"¤0g)&Ůޟ:{kZ >8,$5*F21wsHpQkzF6c]wN̵ׄJ# pȄA#]F8l1?(gOB~TUyLbˁ8#^TO1ZbbySIOP~V{-b-4R^~Ge­lHnuS/:6# $Tj?e+y䏼Hf*'˼Ѝb# &??~p$iBF;[wzek~ZS 7H8v ?3$rj7nFY |OQ; U dؓS - \G=&pGw`)/ ai5&sL <:R=Pe6^X7}o5641W0ճ2k3$k%'1&-[#bML"'{ "!$*x(+)`F(> q-q,v.Ț/7pqXsYr3w%vQO+tru՛E~xKO} |b!ytxBz{l.m~Do8nkljw[h1Ri85bcm?a+f`Qeddf"giH IKSNJuyOcN LZMݥFĚGE@ND$A2D@XsBI*CThPU3gWu>V SR:P|Q~Z9[ SYfX]4\)^oEZ_/m5qs<\kg2z &J8 좞V`a/6i\lU,zB\uHƒ=&FW A+Ox]`غ7W>9q߳!7Kk ֩fض-bѠ3pj$]^Ĝ'*~@IWVÕ<ӂMʏş{ Dt͆mC-@mw+B.(>dT"ş~Ϝ8yo$w1J}50K_ ^ϋiBۉI#dXфTQc:r Р fΫnx|)Ko%3/uUv?A)ġ:C|sд@͉ ;IbeU"hH_S1ފZ^ھ4ge ȋbW72%k_ܝ8Ŵ(}OodJֿjw3XcVPW0Bq{gǧurCo&p-?О'sB zGɠ2>[ ;g/P8i_ Y=嗇e:ϏOZw3(?RXw@ Qh+HZ"0*WOIo@}m5N#+'*GA |􏒨HX=#?X1vjʨ`^pYL'!$UxAׯ3\Y;U^GP~b;!lڇF 2p(ԐQV_:X1: 3n :m@I)/NJ2"v+x xKH.jAf^O*9y]#Mk~`bю_޶ Rz7hFм!10cV"ajحn6 SrN){t*8Fv#fu`zrϮsɛW"G9E^vMcD&dA/yQA4S&ֿ EbLil!>aDƋΪ~7A8n&]|vYoᡱ Kyi׫w¡\~9$66 Qnf>q,o,ӹI 散 I{.C>HnY-Qg̰t zfa`Psp0  ` @ X ;x8 h( H T+t4  d$ D \ S|< l,  L R#r2  b" B Z Cz: j*  J V@3v6 f& F  ^ c~> n. N `Qq1  a! A Y ;y9 i)  I U+u5  e% E ] S}= m-  M S#s3  c# C [ C{; k+  K W@3w7 g' G  _ c? o/ O `Psp0  ` @ X ;x8 h( H T+t4  d$ D \ S|< l,  L R#r2  b" B Z Cz: j*  J V@3v6 f& F  ^ c~> n. N `Qq1  a! A Y ;y9 i)  I U+u5  e% E ] S}= m-  M S#s3  c# C [ C{; k+  K W@3w7 g' G  _ c? o/ O A@!  @a`10  @     @@HN #+3;CScs !1Aa  0@` inflate 1.2.8 Copyright 1995-2013 Mark Adler invalid distance too far backinvalid distance codeinvalid literal/length codeincorrect header checkunknown compression methodinvalid window sizeunknown header flags setheader crc mismatchinvalid block typeinvalid stored block lengthstoo many length or distance symbolsinvalid code lengths setinvalid bit length repeatinvalid code -- missing end-of-blockinvalid literal/lengths setinvalid distances setincorrect data checkincorrect length checkneed dictionarystream endfile errorstream errordata errorinsufficient memorybuffer errorincompatible version*PXT,,*PX *PX \F FвEF(F8F@FF@(FFpFFF@FF@pF0FF̚FؚF@F0F@FHFFF$F@FHF@FdFTFdFpF@FdF@TFFFFF@FF@FFFFFF@F`RSDS7H~H,E:\CPython\cpython35\lib\distutils\command\wininst-14.0.pdbGCTL.text$mn.idata$5в.00cfgԲ.CRT$XCAز.CRT$XCAAܲ.CRT$XCZ.CRT$XIA.CRT$XIAA.CRT$XIAC.CRT$XIC.CRT$XIZ.CRT$XPA .CRT$XPX.CRT$XPXA.CRT$XPZ.CRT$XTA.CRT$XTZ .rdata .rdata$r  .rdata$sxdata,D.rdata$zzzdbgp.rtc$IAAt.rtc$IZZx.rtc$TAA|.rtc$TZZ .xdata$x<.idata$2ȫ.idata$3ܫ.idata$4 .idata$6 .data.data$r0.bss.gfids$x.gfids$y0.rsrc$010(.rsrc$02~@~@2@E@|@|v@@@1AAA$AA1AAAA,B,B-B^B^BB2C2C2C53CgCgCgC$kCxCxC?rClCYmClCmCfCCUCYCCfC̘C|CPCCCgC[CCSCC7C CC&C2CCC*+D,D/DM1D8DCODODNDQDESDdDbD`DDyDDгD0DκDD׵DDDDQDDTDDDfD DDD"DE/E/ES:E9EE1E1EyhEhEڮ(4X0BTʳ4ܫn(Lδ`P<*Գ~rbN:N`pΰܰ ,:L^r0|$̺z`F:. Թȹt`LگįfXJ4$ 4@ش&B\r̵޵&2JbzʶԶ .>L\~Ʒз .@PbrҸ|α.ز̲~lXB0 ڱPropertySheetACreatePropertySheetPageACOMCTL32.dll SetLastErrorSetFileTime lstrlenAUnmapViewOfFilePGetLastError0GetFileAttributesACreateFileACloseHandleCreateFileMappingACreateDirectoryADosDateTimeToFileTimeMapViewOfFilePReadFilebGetModuleFileNameASetPriorityClass GetCurrentProcessGetStdHandleLoadLibraryExAcGetModuleFileNameW5SetThreadPrioritySetFilePointerResumeThreaddGetModuleHandleAMultiByteToWideCharGetTempPathA GetCurrentThreadLoadLibraryADeleteFileA"SetStdHandleGetProcAddressLocalFree;GetFileSizeRemoveDirectoryAFreeLibraryCreateProcessAFormatMessageAGetTempFileNameAGetPrivateProfileIntAGetPrivateProfileStringAKERNEL32.dllEndPaintBeginPaintReleaseDCWUpdateWindowzGetParentkPeekMessageA<GetDlgItemSetCursorSendMessageASetDlgItemTextASendDlgItemMessageA?TranslateMessagepCreateWindowExADefWindowProcARegisterClassASMoveWindowFMessageBoxA ShowWindowzwsprintfAGetSystemMetricsoPostMessageA4GetDCLoadCursorABGetFocusGetWindowRectDispatchMessageAUSER32.dllVCreateSolidBrushDeleteObjectSetBkModeTextOutASetTextColor7CreateDIBitmapSelectObject=CreateFontAGDI32.dllrRegEnumKeyExAkRegDeleteValueARegOpenKeyExARegSetValueExARegQueryValueA\RegCreateKeyExARegQueryValueExAaRegDeleteKeyATRegCloseKeyADVAPI32.dll3ShellExecuteASHELL32.dllOCoInitializeCoUninitializeCoCreateInstanceole32.dllUnhandledExceptionFilterCSetUnhandledExceptionFilteraTerminateProcessmIsProcessorFeaturePresent-QueryPerformanceCounter GetCurrentProcessIdGetCurrentThreadIdGetSystemTimeAsFileTimeKInitializeSListHeadgIsDebuggerPresentGetStartupInfoWgGetModuleHandleWWInterlockedPushEntrySListTInterlockedFlushSListRtlUnwind%EnterCriticalSectionLeaveCriticalSectionDeleteCriticalSectionHInitializeCriticalSectionAndSpinCountsTlsAllocuTlsGetValuevTlsSetValuetTlsFreeLoadLibraryExWWideCharToMultiByteGetCommandLineAGetCommandLineWCreateFileWGetDriveTypeW>GetFileTypePeekNamedPipe^SystemTimeToTzSpecificLocalTime]FileTimeToSystemTimeWriteFileQExitProcessfGetModuleHandleExWGetACPGetConsoleModeNReadConsoleW3HeapFree/HeapAllocGetDateFormatWGetTimeFormatWCompareStringWLCMapStringWTGetLocaleInfoWtIsValidLocaleGetUserDefaultLCIDGEnumSystemLocalesWSetEnvironmentVariableASetEnvironmentVariableW6HeapReAllocGetConsoleCPGetStringTypeWGetTimeZoneInformationSetCurrentDirectoryWGetCurrentDirectoryWIGetFullPathNameWFGetFullPathNameAOutputDebugStringAOutputDebugStringWWaitForSingleObjectExCreateThreadhFindClosemFindFirstFileExAnFindFirstFileExW}FindNextFileAFindNextFileWrIsValidCodePageGetOEMCPGetCPInfo'GetEnvironmentStringsWFreeEnvironmentStringsWGetProcessHeapSetConsoleCtrlHandler2GetFileAttributesExWSetEndOfFileSetFilePointerExFlushFileBuffersWriteConsoleW8HeapSizeGetTempPathW!EncodePointerDecodePointer@RaiseExceptionDN@     F FFFFFFF@FFF@FFCFFPSTPDTFPF`y!@~ڣ @ڣ AϢ[@~QQ^ _j21~ abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZF..FFFFFFFFFFFFFFFFFFFuZF([FZF([F[FZF [F[F [FZF[F \F\F(\FH\F`\Fx\F\F\F\FSoftware\Microsoft\Windows\CurrentVersion\UninstallSoftware\Microsoft\Windows\CurrentVersion\Uninstallt^F@^Fc@^FL@^F@^F*@^F@ZFZFZFZF[FZF [F[F [FZFDZF.?AVDNameNode@@DZF.?AVcharNode@@DZF.?AVpcharNode@@DZF.?AVpDNameNode@@DZF.?AVDNameStatusNode@@DZF.?AVpairNode@@DZF.?AVtype_info@@bb{4ll8>; ~**tsIF3L XllWmomWmomq jT%@+&UBC Er4 Yhgflkjponutsyxw 8nhklmn 0 8Z@!(n, BBB999111)))cR[RABZRYRZRAB[R[RAB[RAAB[ && &&&@JQ1AA1ZQ1111ZQ1AAZ@JQ1AAZQ1AAJ eu eu @ABZ@J@G@F@F@G@AABX@J@AABX@J@J@AA1X@J@G@HRX@G@AAG@ZRX@AAG@JQJed%ed%ed@AA1ZQ1AA1X@J@HQ1AA1X@1A1ZQ1AA1ZQ1A1J  & & RAABZRABZR[R[RABZRYRBZRABZRBW@J@J &R[R[R[R[R[RABZR[R[R[ & & & & & & &@J@J@J@J@HQ1AA1X@J@J@J@J@J@J@G@J@G@JQJ@ABZQ11Z@J@AAG@J@G@GQ1J@AA1ZQ1YQ1[@J@AAG@J@G@1W@J&@I@G@J@J@J@J@G@J@G@Z@J@AA1X@J@HRABX@J@HQ1AA1X@J@J  &  %& & & &RAABZR[RZRAAABZR[R[RABZR[R[@H{SetupMS Sans SerifP} This Wizard will install %s on your computer. Click Next to continue or Cancel to exit the Setup Wizard.P}PhnP}@H{SetupMS Sans SerifP} Select python installation to use:PP}7Python Directory:P}jPhnPP}BInstallation Directory:@B2Find other ...@H{SetupMS Sans SerifP} Click Next to begin the installation. If you want to review or change any of your installation settings, click Back. Click Cancel to exit the Wizard.P}msctls_progress32Progress1P}Installation progress:Phn@H{SetupMS Sans SerifP} Click the Finish button to exit the Setup wizard.PhnP}(@D0U0c000001B1W1111111111:2^2r222222333x4|555L7f7m7t7}7777777 88=8D8g8n888888#9G9R9Z9d9o9z99999:::3:<:R:X:m:x:::::::::::::::;";(;3;B;T;c;i;o;;;;;;<$<>>/>6><>B>N>T>d>q>|>>>>>>>>>*?f?????????? 0+03090C0H0k0s0{00000000000111111'2222"3)3P3b33333333333#4]4g44444445B5j5555555!6C6Y6{66666 77-7>7L7e7r7y77777788.8>8D8[8h8w8888888888889:9O9x99999999-:7:F:Z:{::::::::::;;$;+;6;];i;;;;;;;;;;;<<<7<>6>L>W>>>>>>?%?D?p???????0000$0.080>0E0[00001(1-161A1H1^1c1u1111111111111222,232G2U2Z2k2w22222222222333P333333444)40464<4N4a4f4p4u44444 5(52575=5H5N5Y5e5j5o5555555556 686D6N6f6r6w6}66666666667"7-7M7R7X777778M8Z8p8888888899!91979D9W9\9p99999999:#:0:8:E:P:m:s:|:::::: ;;);9;?;G;h;m;;;;;; <1<6 >>>#>4>?>K>S>Z>w>>>>>>>>>>>?,?2?@?G?L?Z?f?q?v???????????????????@000 000!0&0/040<0A0R0Y0`00000000001111#1|1111111K2^2h2z22222&3,373>3E3Q3a3h3o3x33334 44'4.454>4w4444+5?5c5j5q5556676!757?7D7\7e7778%8+8F888889@9}9999999: :3:>:D:K:U:_:d:::::::>=>w>~>>>>>>>>>>??"?.?8?R?Y?e?o?????????P0000R0Y0e0o0001!1-171Q1X1d1n11111111111 22-242@2M2j2q2}222222223 3/33I8X8d899::<>>>0?H?\?o?001W1j1}1111111122l2y2222222,3G3S3b3k3x333333.474=4n4585B5S5y5555&6/646Z6_6666667$7777888P8Y8f8q8z888889;;;>>m???4P011(2s22222393G3M3h333333334464[4b4k4y4444444444p5u5z5555555555555555 666&6+606@6E6J6666667*7F7U7a7o7777778 88H8M8R8888888999?9H9M9R9v99999999999:3:;:@:P:Z:::::::::::h; <$>0>6>>>E>N>W>\>d>j>>>>>>0??t0000011+1G1N1a1n1111111d3s3344T5b555667777C9v99/:P:o::f;;;3}>???00T112D2W22222222333*3e3333333474b4}444444 5O5t5y55555555556P6k678'8`8y8888889999T99999999:.:Y:c:m:w:::::;$;1;;;; < <-u>>>1?7?a???f00001111123334404;44444445M5z55555e6y66666 7778-8:8}888889"9)909|99999999: :-:s:w:{:::::::: ;K;b;;;;;<<<<"0>G>Q>x>??0'0Z01!2?2b2q22222333+4h4444 5-5D55555556`777777788'8J8Z8j88888,9H9M9a9999::M:`:j:|::::::: ;;>;O;~;;;<==(=F={=====C>[>d>z>>>7?f???0U0p000 1/1E11132J2w22223334444444 5a5555566k6p6666667'7G7g777778!8:8S8]8t8T9Y9y99:::=;T;u;;;;;;;;;;<@<<<<<<=!=8=]=====>Y>q>>??070G0000000000000041f1r1112 2f2q222222 33K3W3h3333333!4Q4c44444#5,686C6O6V6[6a6f6l6q6v6|666666\7777777788$8*808Y88A9M9999 :M:Y:_:::v<7=????????h00=0R0h0u00000 11S2222D3t3}334+4O4z467D77778N89 :*:J:n:z:a;j;r;>>>>?'?`? P222C333Q9:R<>?  Q1`D=12 334599:$:D:V:v::::::;);K;`;;;;;;<$<6<p2222222222227g8k8o8s8w8{888#999999999V:::::::::r;< <<<<<<#<>>>>>>>?????????dl011111#1'1+11/23272;2?2C2G2K22_3c3g3k3o3s3w3{3444444444S5555555553s57<:<?L3333333443474;4?4C4G4K4O4S4W4[4_4)55 6n66P77/888t99$<V>>>+?E???080001 11112455 61676=6C6I6O6U6[6a6g6m6s67,88z9!:: @5755666J7}77`88::::::::::: ;=;O;<=00 1=1P1P@8<.>/>S>>`=24]55S66I77?8 >>F>N>>>??????lS0\0001#1-252H3Q3t4}4555556=6F6{66666617:7p7D8H8L8P8T8X8\8`8d8h88H9L9P9T9X9\9`9d9h9l97Y899::D=,01c1h1m111179:=:D:|=? ?B?I? 255559::;;> c>?l<444448<=== ===== =$=3=t=x=|===============>>> >>\>`>d>h>l>p>t>x>|>> (555555555555>?c??0D002T222\4r4!575556678R8"9[99~:: ;;>?@P 040R0c11113c33345J5n55556&6n688I99W:C;V;<<< =f>t>>PQ122222I3x3333333334 44*4Y4|44444455-595A5Y5~55555a6j6666 777777778%;6;< <<<<<<<< ===8=>=H=g=n======`001K1h1182P2x2222223 3333333333333344&4f4o44444,555y55556%606F6Y6l66666 7717G7^7e7q77777788.8@88888888$9_9j9|99993:@::::e;;;;X<<< =pXI00000000112 22)2t22!3A44445/7V888:;;;;<6<?52m222333333333 4'4x45/555H6S666 777k8888 999+9M9`999999999999:>:C:c:h::;!;0;M;o;(=D>>>>? ?? ????????001#1S111#2a2y7Y88 999p::<;7<>b01P4[4n4x44445{5555676]677778`89;9^9k9v99:9:D:O::::!;4;j;v;;>?)?X?o??????|90U000*1192x2222!3^3h3333333333 44=4C4U444p55566999/:;';4;g;s;{;;;;;d:0e0001t2222v336666677C7J7P7W7i7n7777,8G8L8R8X8j8p8888888888888889999+90959E9J9O9_9d9i9y9~999999999999999:::::/:4:9:I:N:S:c:h:m:}::::::::::::::::; ;;;#;3;8;=;M;R;W;g;l;q;;;;;;;;;;;;;;;;4<<U>r>}>>>>>>>>??4???D?I?d?n???????????D0090D0I0N0{0000000 1111C1O1m1x1}1111111122-282=2B2l22222222333373[3f3k3p333333334 4+40454Y444444455"5'5E5n55555"6F6Q6V6[6v6666666666787C7H7M7h777777778848?8L8b8m8r8w88888899&9+909R9`9o99999999: :%:3:n;;;F<=O==== >>T>w>>>?X1568888888899v999999::":*::E;;;;;'<5<=r>.????4 0501"1224|44566666666$8O::;<<=>> L36777.757M7T7r7|999-::; <<<=<^<<<<<<6=H=N=>A>>?0|[000001111111,222373B3R334454?4^4|445=5[556+6G666/7K7~777<8889999<<==B>>>>>>@+070F0Q0U0]0c0i0o0000g11224-466666667 777*727D7O7W7_7g7p7y777778W8b8889%9I9R9w9|9999999999:: ;;<<<<<<<<<<="=G=O======|>>>>>??PX 00N1U1|1202V223364D444 66A7q7{777/8,96999F:T:::; ;<==!>+>>>`0!0a0p0~0000001:1A1111111192F2u22223 3[3o3333G4R4^444)5366"8)8888z::::::;S;e;;;;;;)=;= ?p|$222[333n44 585w5555 7`7f7-8@89::::::: ;;$;W;^;e;l;;;;;;;>>>>>??G?\?j?s???T070m001F1m115556:6`66666=8=9;;;4c>J??P023 444566v77C8L8o888\9e999K: ;R>>P?X???0[0j0001111111!2L2n22222222;3M3i33333344=4O4W4u4444595A5W5u555555)60676>6|666 77877|88888 9@999999H:R:X:b:r::=247H881c133 5`59{99:;$;;;

l>>>?N?k??T090Y00Q111111$2J2z2223C3l333v55C6 7+7777778889,9j9f;U?? /0)1}2::S:Z:=y>>>>1X66>>>>0223;3B3G69999h;p;= =}>w???? L3344536'71777E8a888889^9;<>>>>>:?Y?r?}???0D0f0x000T14 5"515D5\5k5586~68)9:{:::::`<==>2>>@"0b0000$1H1S1`1r111W2l2u2~222222 3@3i333334 44474?4444444@5j5r555556617h77777y889 :&:6:J:S::;;;;;;L0>h>t>y>>>{??P070000J233344444A8g9x9==>`0r2y233555555555555555566 6666$6*60666<6B6H6N6T6Z6`6f6l6r6x6~666666666666666666666677777 7&7,72787>7D7J7P7V7\7b7h7n7t7z77777777 8+8?8E899<>?%?3?p(011$1(1,101111111<4:H<<<<== ======"=&=*=.=2=6=:=>=B=F=J=N=R=V=Z=^=b=f=j=n= 2l444444444444444444444444444455 55T5g555A7x7777777+8084888<8 2222222233 33@3D3H3L3P3T34444444444444444555 55555 5$5(5,5054585<5@5D5H5L5P5T5X5\5`5d5h5l5p5t5x5|555555555555555555555555555555555666 66666 6$6(6,6064686<6@6D6H6L68 00000 0$0(0,0004080<0@0D0H0L0P0T0X0\0`0d0h02 22P2X2\2`2d2h2l2p2t2x2|22222223333333333333444 444$4(4,4044444444444444444555 5550 00000 0$0(0,0004080<0@0D0H0L0P0T0X0\0`0d0h0l0p0t0x0|0000000000000000000000000000000111 11111 1$1(1,1014181<1@1D1H1L1P1T1X1\1`1d1h1: ::::: :$:(:,:0:4:8:<:@:D:H:L:P:T:X:\:`:d:h:l:p:t:x:|:::::::::::::::===> 777777778 88$808<8H8T8`8l8x88888888888899 9,989D9P9\9h9t999999999999:::(:4:@:L:X:d:p:|:::::::::::;;;(;4;@;L;X;d;p;|;;;;;;;;< <<<$<,<4<< >>>$>,>4><>D>L>T>\>d>l>t>|>>>>>>>>>>>>>>>>>? ???$?,?4?>>> >(>0>8>@>H>P>X>`>h>p>x>>>>>>>>>>>>>>>>>???? ?(?0?8?@?H?P?X?`?h?p?x?????????????????@0000 0(00080@0H0P0X0`0h0p0x000000000000000001111 1(10181@1H1P1X1`1h1p1x111111111111111112222 2(20282@2H2P2X2`2h2p2x222222222222222223333 3(30383@3H3P3X3`3h3p3x333333333333333334444 4(4>>>>PH88888889 999$9,949<9D9L9T9\9d9l9t9|9999999@:D:` <<<<=== ====x99: :$:4:8:@:X:h:l:|::::::::::::;;;;;$;<;L;P;`;d;h;p;;;;;;;;;;;;;<s&PK!ӌ9/command/__pycache__/config.cpython-35.opt-2.pycnu[ ]$3@sddlZddlZddlZddlmZddlmZddlmZddl m Z dddd iZ Gd d d eZ dd d Z dS)N)Command)DistutilsExecError)customize_compiler)logcz.czc++z.cxxc @sieZdZdZd>d?d@dAdBdCdDdEdFg ZddZddZddZd d!Zd"d#Z d$d%Z d&d'Z d(d)Z d*d+Z dddd,d-d.Zdddd,d/d0Zddd,d1d2Zddddd,d3d4Zddddd,d5d6Zddddd7d7d8d9Zdddgd:d;Zddd,d<d=ZdS)Gconfigzprepare to build compiler=Nspecify the compiler typecc=specify the compiler executable include-dirs=I.list of directories to search for header filesdefine=DC preprocessor macros to defineundef=U!C preprocessor macros to undefine libraries=l!external C libraries to link with library-dirs=L.directories to search for external C librariesnoisy1show every action (compile, link, run, ...) taken dump-source=dump generated source files before attempting to compile themcCsLd|_d|_d|_d|_d|_d|_d|_g|_dS)N)compilerZcc include_dirs libraries library_dirsr dump_source temp_files)selfr'+/opt/alt/python35/lib64/python3.5/config.pyinitialize_options3s       zconfig.initialize_optionscCs|jdkr'|jjpg|_n*t|jtrQ|jjtj|_|jdkrlg|_n!t|jtr|jg|_|jdkrg|_n*t|jtr|jjtj|_dS)N) r!Z distribution isinstancestrsplitospathsepr"r#)r&r'r'r(finalize_optionsBs  zconfig.finalize_optionscCsdS)Nr')r&r'r'r(runRsz config.runcCsddlm}m}t|j|s|d|jd|jdd|_t|j|jru|jj|j|j r|jj |j |j r|jj |j dS)Nr) CCompiler new_compilerr dry_runforcer) distutils.ccompilerr1r2r*r r3rr!Zset_include_dirsr"Z set_librariesr#Zset_library_dirs)r&r1r2r'r'r(_check_compilerYs    zconfig._check_compilercCsdt|}t|d}|rRx|D]}|jd|q*W|jd|j||ddkr||jd|j|S)NZ _configtestwz#include <%s>  r)LANG_EXTopenwriteclose)r&bodyheaderslangfilenamefileheaderr'r'r(_gen_temp_sourcefileks     zconfig._gen_temp_sourcefilecCsT|j|||}d}|jj||g|jj||d|||fS)Nz _configtest.ir!)rDr%extendr Z preprocess)r&r>r?r!r@srcoutr'r'r( _preprocessxs zconfig._preprocesscCs|j|||}|jr/t|d||jj|g\}|jj||g|jj|gd|||fS)Nzcompiling '%s':r!)rDr$ dump_filer Zobject_filenamesr%rEcompile)r&r>r?r!r@rFobjr'r'r(_compiles zconfig._compilec Cs|j||||\}}tjjtjj|d} |jj|g| d|d|d||jjdk r| |jj} |jj | ||| fS)Nrr"r#Z target_lang) rLr-pathsplitextbasenamer Zlink_executableZ exe_extensionr%append) r&r>r?r!r"r#r@rFrKprogr'r'r(_links"z config._linkc Gsl|s|j}g|_tjddj|x4|D],}ytj|Wq8tk rcYq8Xq8WdS)Nz removing: %s )r%rinfojoinr-removeOSError)r& filenamesrAr'r'r(_cleans    z config._cleanrc Cscddlm}|jd}y|j||||Wn|k rTd}YnX|j|S)Nr) CompileErrorTF)r5rZr6rHrY)r&r>r?r!r@rZokr'r'r(try_cpps    zconfig.try_cppc Cs|j|j||||\}}t|trFtj|}t|}d} x3|j} | dkrtP|j| r[d} Pq[W|j |j | S)NFT) r6rHr*r+rerJr;readlinesearchr=rY) r&patternr>r?r!r@rFrGrBmatchliner'r'r( search_cpps      zconfig.search_cppc Cs|ddlm}|jy |j||||d}Wn|k rTd}YnXtj|rgdpjd|j|S)Nr)rZTFzsuccess!zfailure.)r5rZr6rLrrTrY)r&r>r?r!r@rZr[r'r'r( try_compiles     zconfig.try_compilec Csddlm}m}|jy&|j||||||d} Wn||fk rfd} YnXtj| rydp|d|j| S)Nr)rZ LinkErrorTFzsuccess!zfailure.)r5rZrfr6rRrrTrY) r&r>r?r!r"r#r@rZrfr[r'r'r(try_links     zconfig.try_linkc Csddlm}m}|jyA|j||||||\} } } |j| gd} Wn!||tfk rd} YnXtj| rdpd|j | S)Nr)rZrfTFzsuccess!zfailure.) r5rZrfr6rRspawnrrrTrY) r&r>r?r!r"r#r@rZrfrFrKZexer[r'r'r(try_runs    zconfig.try_runrc Cs|jg}|r'|jd||jd|rN|jd|n|jd||jddj|d}|j|||||S)Nz int %s ();z int main () {z %s();z %s;}r8)r6rPrUrg) r&funcr?r!r"r#Zdeclcallr>r'r'r( check_funcs   zconfig.check_funccCs*|j|jd|||g||S)Nzint main (void) { })r6rg)r&Zlibraryr#r?r!Zother_librariesr'r'r( check_lib6s zconfig.check_libcCs|jddd|gd|S)Nr>z /* No body */r?r!)r\)r&rCr!r#r@r'r'r( check_headerDszconfig.check_header)rNr )r Nr )r r r)rrr)rrr)rrr)rrr)rNr)rNr)__name__ __module__ __qualname__ descriptionZ user_optionsr)r/r0r6rDrHrLrRrYr\rdrergrirmrnror'r'r'r(rsT             rc Csb|dkr tjd|n tj|t|}ztj|jWd|jXdS)Nz%s)rrTr;readr=)rAheadrBr'r'r(rINs   rI)sysr-r^Zdistutils.corerZdistutils.errorsrZdistutils.sysconfigrZ distutilsrr:rrIr'r'r'r( s$:PK!.~*7*7(command/__pycache__/sdist.cpython-35.pycnu[ Yf-G@sdZddlZddlZddlZddlTddlmZddlmZddlm Z ddl m Z m Z m Z mZddlmZddlTdd lmZdd l mZdd lmZd d ZGddde ZdS)zadistutils.command.sdist Implements the Distutils 'sdist' command (create a source distribution).N)*)glob)warn)Command)dir_utildep_util file_util archive_util)TextFile)FileList)log) convert_pathcCsddlm}ddlm}g}x6|jD](}|jd|d||dfq3W|j||jddS)zoPrint all possible values for the 'formats' option (used by the "--help-formats" command-line option). r) FancyGetopt)ARCHIVE_FORMATSzformats=Nz.List of available source distribution formats:)Zdistutils.fancy_getoptrZdistutils.archive_utilrkeysappendsortZ print_help)rrformatsformatrZd?d@ZdAdBZdCdDZdEdFZdGdHZdIdJZdKdLZd S)Zsdistz6create a source distribution (tarball, zip file, etc.)cCs|jS)zYCallable used for the check sub-command. Placed here so user_options can view it)metadata_check)selfrrrchecking_metadata&szsdist.checking_metadata template=t5name of manifest template file [default: MANIFEST.in] manifest=m)name of manifest file [default: MANIFEST] use-defaultsNRinclude the default file set in the manifest [default; disable with --no-defaults] no-defaults"don't include the default file setprunespecifically exclude files/directories that should not be distributed (build tree, RCS/CVS dirs, etc.) [default; disable with --no-prune]no-prune$don't automatically exclude anything manifest-onlyoEjust regenerate the manifest and then stop (implies --force-manifest)force-manifestfkforcibly regenerate the manifest and carry on as usual. Deprecated: now the manifest is always regenerated.formats=6formats for source distribution (comma-separated list)z keep-tempkz1keep the distribution tree around after creating zarchive file(s) dist-dir=dFdirectory to put the source distribution archive(s) in [default: dist]metadata-check[Ensure that all required elements of meta-data are supplied. Warn if any missing. [default]owner=u@Owner name used when creating a tar file [default: current user]group=gAGroup name used when creating a tar file [default: current group]z help-formatsz#list available distribution formatsposixZgztarntzipcheckcCsyd|_d|_d|_d|_d|_d|_d|_d|_d|_d|_ d|_ d|_ d|_ dS)Nr) templatemanifest use_defaultsr' manifest_onlyZforce_manifestr keep_tempdist_dir archive_filesrownergroup)rrrrinitialize_optionsds            zsdist.initialize_optionsc Cs|jdkrd|_|jdkr0d|_|jd|jdkry|jtjg|_Wn%tk rtdtjYnXt j |j}|rt d||j dkrd|_ dS)NZMANIFESTz MANIFEST.inrz)__name__ __module__ __qualname__Z descriptionrZ user_optionsZboolean_optionsrZ help_optionsZ negative_optrNZ sub_commandsrMrRrVrYrTr_r`rarbr\r]rrUrrrrrr"sn           ( P     * r)__doc__rOstringrtypesrwarningsrZdistutils.corerZ distutilsrrrr Zdistutils.text_filer Zdistutils.errorsZdistutils.filelistr r Zdistutils.utilr rrrrrrs    "  PK!z /command/__pycache__/install_data.cpython-35.pycnu[ Yf @sRdZddlZddlmZddlmZmZGdddeZdS)zdistutils.command.install_data Implements the Distutils 'install_data' command, for installing platform-independent data files.N)Command) change_root convert_pathc@sjeZdZdZdddgZdgZd d Zd dZddZddZ ddZ dS) install_datazinstall data files install-dir=dIbase directory for installing data files (default: installation base dir)root=Ns PK! __(command/__pycache__/check.cpython-35.pycnu[ Yfx @sdZddlmZddlmZypddlmZddlmZddl m Z ddl m Z ddl m Z Gd d d eZd ZWnek rd ZYnXGd ddeZdS)zCdistutils.command.check Implements the Distutils 'check' command. )Command)DistutilsSetupError)Reporter)Parser)frontend)nodes)StringIOc@s4eZdZddddddZddZdS) SilentReporterNrasciireplacec Cs/g|_tj||||||||dS)N)messagesr__init__)selfsource report_level halt_levelstreamdebugencoding error_handlerrr>)rrrZ OptionParserZget_default_valuesZ tab_widthZpep_referencesZrfc_referencesr rrZwarning_streamrZerror_encodingZerror_encoding_error_handlerrdocumentZ note_sourceparseAttributeErrorr r)rrA source_pathparserZsettingsZreporterrDerrrr?ys*           *zcheck._check_rst_dataN)r"r#r$)r%r&r')r(r)r*)rrr __doc__Z descriptionZ user_optionsZboolean_optionsr-r.r/r4r1r3r?rrrrr!$s        r!N)rJZdistutils.corerZdistutils.errorsrZdocutils.utilsrZdocutils.parsers.rstrZdocutilsrriorr r2 Exceptionr!rrrrs   PK! __.command/__pycache__/check.cpython-35.opt-1.pycnu[ Yfx @sdZddlmZddlmZypddlmZddlmZddl m Z ddl m Z ddl m Z Gd d d eZd ZWnek rd ZYnXGd ddeZdS)zCdistutils.command.check Implements the Distutils 'check' command. )Command)DistutilsSetupError)Reporter)Parser)frontend)nodes)StringIOc@s4eZdZddddddZddZdS) SilentReporterNrasciireplacec Cs/g|_tj||||||||dS)N)messagesr__init__)selfsource report_level halt_levelstreamdebugencoding error_handlerrr>)rrrZ OptionParserZget_default_valuesZ tab_widthZpep_referencesZrfc_referencesr rrZwarning_streamrZerror_encodingZerror_encoding_error_handlerrdocumentZ note_sourceparseAttributeErrorr r)rrA source_pathparserZsettingsZreporterrDerrrr?ys*           *zcheck._check_rst_dataN)r"r#r$)r%r&r')r(r)r*)rrr __doc__Z descriptionZ user_optionsZboolean_optionsr-r.r/r4r1r3r?rrrrr!$s        r!N)rJZdistutils.corerZdistutils.errorsrZdocutils.utilsrZdocutils.parsers.rstrZdocutilsrriorr r2 Exceptionr!rrrrs   PK!𶃗TT2command/__pycache__/bdist_msi.cpython-35.opt-1.pycnu[ Yf@sdZddlZddlZddlmZddlmZddlmZddl m Z ddl m Z ddl mZdd lmZddlZdd lmZmZmZdd lmZmZmZmZGd d d eZGdddeZdS)z# Implements the bdist_msi command. N)Command) remove_tree)get_python_version) StrictVersion)DistutilsOptionError) get_platform)log)schemasequencetext) DirectoryFeatureDialogadd_datac@speZdZdZddZddZdddd Zd dd d Zd dddZddZ dS)PyDialogzDialog class with a fixed layout: controls at the top, then a ruler, then a list of buttons: back, next, cancel. Optionally a bitmap at the left.cOsKtj|||jd}d|d}|jdd||jddS)zbDialog(database, name, x, y, w, h, attributes, title, first, default, cancel, bitmap=true)$iHZ BottomLinerN)r__init__hlinew)selfargskwZrulerZbmwidthr@/opt/alt/python35/lib64/python3.5/distutils/command/bdist_msi.pyrs zPyDialog.__init__c Cs'|jddddddd|dS) z,Set the title text of the dialog at the top.Title i@<iz{\VerdanaBold10}%sN)r )rtitlerrrr #szPyDialog.titleBackc Cs>|rd}nd}|j|d|jddd|||S)zAdd a back button with a given title, the tab-next button, its name in the Control table, possibly initially disabled. Return the button, so that events can be associatedr"8) pushbuttonr)rr nextnameactiveflagsrrrback*s z PyDialog.backCancelc Cs>|rd}nd}|j|d|jddd|||S)zAdd a cancel button with a given title, the tab-next button, its name in the Control table, possibly initially disabled. Return the button, so that events can be associatedr#r"i0r%r&r')r(r)rr r)r*r+r,rrrcancel5s zPyDialog.cancelNextc Cs>|rd}nd}|j|d|jddd|||S)zAdd a Next button with a given title, the tab-next button, its name in the Control table, possibly initially disabled. Return the button, so that events can be associatedr#r"r%r&r')r(r)rr r)r*r+r,rrrr)@s z PyDialog.nextc Cs:|j|t|j|d|jdddd||S)zAdd a button with a given title, the tab-next button, its name in the Control table, giving its x position; the y-position is aligned with the other buttons. Return the button, so that events can be associatedr%r&r'r#)r(intrr)rr*r r)ZxposrrrxbuttonKszPyDialog.xbuttonN) __name__ __module__ __qualname____doc__rr r-r/r)r4rrrrrs     rc@s]eZdZdZdddfdddefdd d d fd dd dfdddfdddfdddfdddfdddfdddfg ZddddgZddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1gZd2Zd3d4Z d5d6Z d7d8Z d9d:Z d;d<Z d=d>Zd?d@ZdAdBZdS)C bdist_msiz7create a Microsoft Installer (.msi) binary distributionz bdist-dir=Nz1temporary directory for creating the distributionz plat-name=pz;platform name to embed in generated filenames (default: %s)z keep-tempkz/keep the pseudo-installation tree around after z!creating the distribution archiveztarget-version=z!require a specific python versionz on the target systemzno-target-compilecz/do not compile .py to .pyc on the target systemzno-target-optimizeoz:do not compile .py to .pyo (optimized)on the target systemz dist-dir=dz-directory to put final built distributions inz skip-buildz2skip rebuilding everything (for testing/debugging)zinstall-script=zTbasename of installation script to be run afterinstallation or before deinstallationzpre-install-script=z{Fully qualified filename of a script to be run before any files are installed. This script need not be in the distributionz2.0z2.1z2.2z2.3z2.4z2.5z2.6z2.7z2.8z2.9z3.0z3.1z3.2z3.3z3.4z3.5z3.6z3.7z3.8z3.9XcCsgd|_d|_d|_d|_d|_d|_d|_d|_d|_d|_ d|_ dS)Nr) bdist_dir plat_name keep_tempZno_target_compileZno_target_optimizetarget_versiondist_dir skip_buildinstall_scriptpre_install_scriptversions)rrrrinitialize_options}s          zbdist_msi.initialize_optionscCs`|jdd |jdkrI|jdj}tjj|d|_t}|j rt|j j rt||_|jr|jg|_ |j r|j j r|j|krt d|fnt|j|_ |jdd d |jrt d|jrSxC|j jD]"}|jtjj|krPqWt d|jd|_dS) NZbdistrEZmsizMtarget version can only be %s, or the '--skip-build' option must be specifiedrDrAz5the pre-install-script feature is not yet implementedz(install_script '%s' not found in scripts)rErE)rDrD)rArA)Zset_undefined_optionsr@get_finalized_command bdist_baseospathjoinrrC distributionhas_ext_modulesrHrErlist all_versionsrGrFscriptsbasenameinstall_script_key)rrKZ short_versionZscriptrrrfinalize_optionss:        zbdist_msi.finalize_optionscCs\|js|jd|jddd}|j|_|j|_d|_|jd}d|_d|_|jj r|j }|st j dd}d|j |f}|jd}tjj|jd ||_tjd |j|jt jjdtjj|jd |jt jd=|j|j|jj}|j|}tjj|}tjj|rtj||jj }|j!} | s|j"} | sd } |j#} d t$| j } |jj}|j rd|j |f} n d|} t%j&|t'| t%j(| | |_)t%j*|j)t+d| fg} |j,ps|j-}|r| j.d|f|j/r| j.d|j/f| rt0|j)d| |j1|j2|j3|j4|j)j5t6|jdr9d|j pd|f}|jj7j.||j8sXt9|jd|j:dS)NbuildinstallZreinit_subcommandsr"r install_libr#z.%s-%slibzinstalling to %sZPURELIBZUNKNOWNz%d.%d.%dz Python %s %sz Python %sZ DistVersionZ ARPCONTACTZARPURLINFOABOUTProperty dist_filesr9anydry_run);rEZ run_commandZreinitialize_commandr@prefixZwarn_dircompileoptimizerOrPrCsysversionrArJrLrMrNZ build_baseZ build_librinfoZensure_finalizedinsertrunZmkpathrD get_fullnameget_installer_filenameabspathexistsunlinkmetadataauthorZ maintainerZ get_versionrmsilibZ init_databaser Zgen_uuiddbZ add_tablesr Z author_emailZmaintainer_emailappendZurlradd_find_python add_files add_scriptsadd_uiCommithasattrr\rBrr^)rrXrYrCZplat_specifierrWfullnameinstaller_namerlrmrcZsversionZ product_nameZpropsZemailtuprrrrfs|         %                  z bdist_msi.runc Cs|j}tjd}tjj|j}t||d|dd}t|ddddddd}||d fg}x|j |j gD]}d|}d|} } d} ||j krd } d } nd |} d} t|| | | d| d|}t|||||| }|j |||fqW|j i}x|D]\}}}|g}x^|r|j }xEtj|jD]1}tjj|j|}tjj|r d |j||f}||} t||||| |}|j |q|js+|j|j|d||kr|j|}||<||jkr|jrvtd|d||_q||}t|jd|||j|d|jfgqWqiW|j qNW|j|dS)NZ distfiles TARGETDIRZ SourceDirPythonZ Everythingrr"Z directoryzPython from another locationzPython %s from registryz%s|%szMultiple files with name %sz[#%s]Z DuplicateFile)rornZCABrLrMrir@r r rH other_versionrprupoplistdirZabsoluterNisdirZ make_shortZ componentZstart_componentZlogicalZadd_filerFrUrrZcommit)rroZcabZrootdirrootfitemsrctargetr*defaultZdescr leveldirseenZfeatureZtodofileZafileZshortZnewdirkeyrrrrr s\    !           +zbdist_msi.add_filesc Csd}x|jD]}d|}d|}d|}d|}d|}d|}d|} d |} d |} d |} tjrd} nd } t|jd|d |d| f|d|d| fgt|jd||f||fgt|jd|d | d|df| d!| d|df| d"| d| dfgt|jd|||f| ||df| d|d fgt|jd|||f| ||df| d|d fgt|jdd|dd|fg|d7}qWdS)#asAdds code to the installer to compute the location of Python. Properties PYTHON.MACHINE.X.Y and PYTHON.USER.X.Y will be set from the registry for each version of Python. Properties TARGETDIRX.Y will be set from PYTHON.USER.X.Y if defined, else from PYTHON.MACHINE.X.Y. Properties PYTHONX.Y will be set to TARGETDIRX.Y\python.exeiz)SOFTWARE\Python\PythonCore\%s\InstallPathzpython.machine.z python.user.zPYTHON.MACHINE.z PYTHON.USER.ZPythonFromMachineZPythonFromUserZ PythonExerzPYTHONr}Z RegLocatorNr"Z AppSearch CustomAction3[]z ]\python.exeInstallExecuteSequenceInstallUISequenceZ Conditionr{rz NOT TARGETDIRi3i3i3)rHrnZWin64rro)rstartverZ install_pathZ machine_regZuser_regZ machine_propZ user_propZmachine_actionZ user_actionZ exe_actionZtarget_dir_propexe_propZTyperrrrqCsJ                       zbdist_msi.add_find_pythoncCsK|jrd}x|j|jgD]l}d|}d|}t|jd|d||jfgt|jd|d||fg|d7}q#W|jrGtjj |j d }t |d }|j d |j t |jj |jt|jd d tj|fgt|jddgt|jddgdS)Nizinstall_script.rr2rz &Python%s=3r"zpreinstall.batrzrem =""" %1 %0 exit """ Binary PreInstallr} NOT Installed)rr}rN)rrr)rFrHr~rrorUrGrLrMrNr@openwritereadclosernr)rrrZinstall_actionrZscriptfnrrrrrsys,            zbdist_msi.add_scriptscCsG|j}d}}d}d}d}d}d}d} t|dddddddgt|dddddgt|d dddddgt|d/tjt|d0tjt|d1||||||d2d2d2 } | jd3| jd4d2d5d| jd6d7d5d| jd8d9d:d;d<d=d>| jd?d9d@d;dAd=dB| j d2d6dCd2} | j dDdEt|dF||||||d2d2d2 } | jdG| jd4d2d5d| jd6d7d5d| jd8d9d:d;d<d=dH| jd?d9d@d;dAd=dB| j d2d6dCd2} | j dDdEt|dI||||||d2d2d2 } | jdJ| jd4d2d5d| jd6d7d5d| jdKd9dLd;dAd=dB| j d2d6dCd2} | j dDdMt|dN||||dO|dPdPdPdQdR }|jdSd9dTdUd9d=dV|jdKdAdWdXdAd=dY|jdZdAd[d\ddd]|j d^d_dAd`d\dadbdcddd |jdEdddCdE} | j dDdE|j dddPdCdd} | j dDdd|jdPdEdCdP} | j dDdPt |d ddd\dedf|dgdd }|jdgdddXdhddi|j djdkdldmdnddodj dDdp|j dqdrdldmdnddsdj dDdt|j duddldmdnddvdj dDdw|j dxdydldmdndd6dj dDdz|j d{dmdldmdnddddj dDd||j d}d~dldmdndddj dDd|j dddldmdnddPdj dDdt |dddddd|dododo }|jdZdhd9dddd|j dsdldddddsdo} | j dDdE|j doddddddods} | j dDdMt |ddddd||dMdMdM }|jdZdhd9dddd|j dMddddddMd} | j dDdEt|d!||||||d6d6d6 }|jdKd9d:d;dd=d|jd|jd/d9dd;dAd=d} | jd/dZ|jdd9dd;dd=d} | jddZ|jd7dd5d|j ddd5d|jd6d} | j ddt|d'||||||ddd6 }|jd|jdd9dddAdd|jj|jd4dd5d|j dd6} d}| j ddd|xF|j|jgD]1}|d7}| j dd|d|d|qW| j ddd|d| j dDdMd|d|jd6d} | j dd|j ddd9dddkddddd } | j dd|j}d|}d|}|jdd9dUdd9dd} | jd|| jd|| jd|| jd||j ddd9ddddd|ddd } | jd|| jd|| jd|| jd|t|d||||||ddddQdR }|jdSd9dTdUd9d=d|jdKdAdAdXdAd=d|jdZdAdd\ddd|j dddAdd\dddddd |jddddj dDdMt|d$||||||ddd6 }|jd|jdd9ddddddid }|jdddddAd|jdddddAd|jd7dd5d|j dd6} | j dddd| j dDdMdd|jd6d} | j ddt|d-||||||d6d6d6dQdR }|jdSdAd9dUd9d=d|jdZdddddd|jdddddAdd|jd/d:d|d:dAdd} | jd/dZ|j ddddkddddddd } | jdd|jd4dd5dR|j dd6d5dR|jd6d7j ddt|d*||||||ddd6 }|jd|jdd9dd\dydd|jdd9dd\ddddid }|jddddUdd|jddddUdd|jd4dd5dR|j d2d6} | j dddd| j ddddT| j ddddb| j dddd| j dddd| j dddd| j dddd| j dddd| j dDdMddA|jd6dj dddS(Nriri,z[ProductName] Setupr#r" r[ DefaultUIFontDlgFont8 ErrorDialogErrorDlg Progress1Install Progress2installsMaintenanceForm_ActionRepair WhichUsersALLZ TextStyleTahoma r DlgFontBold8 VerdanaBold10Verdanar VerdanaRed9r PrepareDlg(Not Privileged or Windows9x or Installed WhichUsersDlg.Privileged and not Windows9x and not InstalledSelectFeaturesDlg Not InstalledMaintenanceTypeDlg,Installed AND NOT RESUME AND NOT Preselected ProgressDlg ActionTextUITextZ FatalErrorZFinishz)[ProductName] Installer ended prematurelyz< Backr+r.r!Z Description1rFi@Piz[ProductName] setup ended prematurely because of an error. Your system has not been modified. To install this program at a later time, please run the installation again.Z Description2z.Click the Finish button to exit the Installer.r*Z EndDialogZExitZUserExitz'[ProductName] Installer was interruptedz[ProductName] setup was interrupted. Your system has not been modified. To install this program at a later time, please run the installation again.Z ExitDialogz&Completing the [ProductName] InstallerZ DescriptionZReturnZ FilesInUseZRetryZbitmapFrz{\DlgFontBold8}Files in Useiz8Some files that need to be updated are currently in use.ZText7iJzThe following applications are using files that need to be updated by this setup. Close these applications and then click Retry to continue the installation or Cancel to exit it.ZListZListBoxkZFileInUseProcessIgnoreeiZ ErrorText0r|NxHQZNoZErrorNoYZYesZErrorYesAZAbortZ ErrorAbortC*Z ErrorCancelIZ ErrorIgnoreOZOkZErrorOkRZ ErrorRetryZ CancelDlgiUz;Are you sure you want to cancel [ProductName] installation?9r&r'ZWaitForCostingDlgzRPlease wait while the installer finishes determining your disk space requirements.f(zOPlease wait while the Installer prepares to guide you through the installation.z&Welcome to the [ProductName] Installernz Pondering...Z ActionDatar0Z SpawnDialogzSelect Python InstallationsZHintz9Select the Python locations where %s should be installed.zNext >z [TARGETDIR]z [SourceDir]Zorderingz [TARGETDIR%s]z FEATURE_SELECTED AND &Python%s=3ZSpawnWaitDialogr}ZFeaturesZ SelectionTreerZFEATUREZPathEditz[FEATURE_SELECTED]1z!FEATURE_SELECTED AND &Python%s<>3ZOtherz$Provide an alternate Python locationZEnableZShowZDisableZHiderrzZ DiskCostDlgZOKz&{\DlgFontBold8}Disk Space RequirementszFThe disk space required for the installation of the selected features.5aThe highlighted volumes (if any) do not have enough disk space available for the currently selected features. You can either remove some files from the highlighted volumes, or choose to install less features onto local drive(s), or select different destination drive(s).Z VolumeListZVolumeCostListdiz{120}{70}{70}{70}{70}g?Z AdminInstallzGSelect whether to install [ProductName] for all users of this computer.zInstall for all usersZJUSTMEzInstall just for mez [ALLUSERS]zWhichUsers="ALL"z({\DlgFontBold8}[Progress1] [ProductName]#AzYPlease wait while the Installer [Progress2] [ProductName]. This may take several minutes.Z StatusLabelzStatus:Z ProgressBariz Progress doneZ SetProgressZProgressz)Welcome to the [ProductName] Setup WizardZBodyText?z:Select whether you want to repair or remove [ProductName].ZRepairRadioGrouplrz&Repair [ProductName]ZRemoverzRe&move [ProductName]z [REINSTALL]zMaintenanceForm_Action="Repair"z [Progress1]Z Repairingz [Progress2]ZrepairsZ Reinstallz[REMOVE]zMaintenanceForm_Action="Remove" ZRemoving Zremoves z MaintenanceForm_Action<>"Change")rr)rr)rr)rr)rr)rr)rrrNr)rrrNr")rrrNr")rrrrr)rrr)rrr)rrr)rrr)rNr)rorr rrrr r-r/r)ZeventZcontrolrr(mappingrOrgrHr~Z conditionr4Z radiogroupadd)rroxyrrr ZmodalZmodelessZtrack_disk_spaceZfatalr<Z user_exitZ exit_dialogZinuseerrorr/ZcostingZprepZseldlgorderrcrZinstall_other_condZdont_install_other_condZcostZ whichusersgZprogressZmaintrrrrts                .......$$$ !!        "  % zbdist_msi.add_uicCsT|jr%d||j|jf}nd||jf}tjj|j|}|S)Nz%s.%s-py%s.msiz %s.%s.msi)rCrArLrMrNrD)rrwZ base_namerxrrrrhs   z bdist_msi.get_installer_filename)r5r6r7Z descriptionrZ user_optionsZboolean_optionsrRr~rIrVrfrrrqrsrtrhrrrrr9SsP      ( [ 6 6 & ?r9)r8rbrLZdistutils.corerZdistutils.dir_utilrZdistutils.sysconfigrZdistutils.versionrZdistutils.errorsrZdistutils.utilrZ distutilsrrnr r r r r rrrr9rrrrs ">PK!.command/__pycache__/bdist.cpython-35.opt-1.pycnu[ Yf@sbdZddlZddlmZddlTddlmZddZGdd d eZdS) zidistutils.command.bdist Implements the Distutils 'bdist' command (create a built [binary] distribution).N)Command)*) get_platformcCslddlm}g}x6tjD]+}|jd|dtj|dfq W||}|jddS)zFPrint list of available formats (arguments to "--format" option). r) FancyGetoptzformats=Nz'List of available distribution formats:)Zdistutils.fancy_getoptrbdistformat_commandsappendformat_commandZ print_help)rformatsformatZpretty_printerr dd?dd@d dAd!dBd"dCddDd#dEi Z d0d1Z d2d3Zd4d5Zd S)Frz$create a built (binary) distribution bdist-base=b4temporary directory for creating built distributionsz plat-name=pz;platform name to embed in generated filenames (default: %s)formats=N/formats for distribution (comma-separated list) dist-dir=d=directory to put final built distributions in [default: dist] skip-build2skip rebuilding everything (for testing/debugging)owner=u@Owner name used when creating a tar file [default: current user]group=gAGroup name used when creating a tar file [default: current group]z help-formatsz$lists available distribution formats bdist_rpmposixZgztarntzipZrpmZbztarZxztarZztarZtarZwininstZmsiRPM distribution bdist_dumbgzip'ed tar filebzip2'ed tar filexz'ed tar filecompressed tar filetar file bdist_wininstWindows executable installerZIP file bdist_msiMicrosoft InstallercCsCd|_d|_d|_d|_d|_d|_d|_dS)Nr) bdist_base plat_namer dist_dir skip_buildgroupowner)selfr r rinitialize_optionsQs      zbdist.initialize_optionsc Cs|jdkr<|jr't|_n|jdj|_|jdkr||jdj}tjj|d|j|_|j d|j dkry|j tj g|_ Wn%t k rtdtj YnX|jdkrd|_dS)NZbuildzbdist.r z;don't know how to create built distributions on platform %sZdist)r2r4rZget_finalized_commandr1 build_baseospathjoinZensure_string_listr default_formatnameKeyErrorZDistutilsPlatformErrorr3)r7r9r r rfinalize_optionsZs$    zbdist.finalize_optionsc Cs g}xR|jD]G}y|j|j|dWqtk rVtd|YqXqWxtt|jD]}||}|j|}||jkr|j||_ |dkr|j |_ |j |_ |||ddkrd|_ |j |qqWdS)Nrzinvalid format '%s'r&r)r r r r?ZDistutilsOptionErrorrangelenZreinitialize_commandno_format_optionr r6r5Z keep_tempZ run_command)r7Zcommandsr iZcmd_nameZsub_cmdr r rrunvs"      z bdist.run)rrr)rNr)rrr)rNr)rrr)rrr )r!)r!r%)r&r')r&r()r&r))r&r*)r&r+)r,r-)r&r.)r/r0)__name__ __module__ __qualname__Z descriptionrZ user_optionsZboolean_optionsrZ help_optionsrCr=rr r8r@rEr r r rrsJ       r) __doc__r:Zdistutils.corerZdistutils.errorsZdistutils.utilrrrr r r rs    PK!Qii-command/__pycache__/bdist_dumb.cpython-35.pycnu[ Yf1@sdZddlZddlmZddlmZddlmZmZddl Tddl m Z ddl m Z Gd d d eZdS) zdistutils.command.bdist_dumb Implements the Distutils 'bdist_dumb' command (create a "dumb" built distribution -- i.e., just an archive to be unpacked under $prefix or $exec_prefix).N)Command) get_platform) remove_treeensure_relative)*)get_python_version)logc @seZdZdZd&dddefd'd d d dfd(d)d*d+d,g Zd ddgZddddiZd d!Zd"d#Z d$d%Z dS)- bdist_dumbz"create a "dumb" built distribution bdist-dir=d1temporary directory for creating the distributionz plat-name=pz;platform name to embed in generated filenames (default: %s)format=f>archive format to create (tar, gztar, bztar, xztar, ztar, zip)z keep-tempkz/keep the pseudo-installation tree around after z!creating the distribution archive dist-dir=-directory to put final built distributions in skip-buildN2skip rebuilding everything (for testing/debugging)relative6build the archive using relative paths(default: false)owner=u@Owner name used when creating a tar file [default: current user]group=gAGroup name used when creating a tar file [default: current group]posixZgztarntzipcCsUd|_d|_d|_d|_d|_d|_d|_d|_d|_dS)Nr) bdist_dir plat_nameformat keep_tempdist_dir skip_buildrownergroup)selfr*A/opt/alt/python35/lib64/python3.5/distutils/command/bdist_dumb.pyinitialize_options2s        zbdist_dumb.initialize_optionscCs|jdkr9|jdj}tjj|d|_|jdkry|jtj|_Wn%t k rt dtjYnX|j dddd dS) NZbdistZdumbz@don't know how to create dumb built distributions on platform %sr%r"r&)r%r%)r"r")r&r&) r!Zget_finalized_command bdist_baseospathjoinr#default_formatnameKeyErrorDistutilsPlatformErrorZset_undefined_options)r)r-r*r*r+finalize_options=s  zbdist_dumb.finalize_optionsc Cs|js|jd|jddd}|j|_|j|_d|_tjd|j|jdd|jj |j f}t j j |j|}|js|j}nm|jjr|j|jkrtdt|jt|jfn!t j j |jt|j}|j||jd |d |jd |j}|jjrkt}nd }|jjjd ||f|jst|jd|jdS)NZbuildinstallZreinit_subcommandsrzinstalling to %sz%s.%szScan't make a dumb built distribution where base and platbase are different (%s, %s)Zroot_dirr'r(anyr dry_run) r&Z run_commandZreinitialize_commandr!rootZwarn_dirrinfoZ distributionZ get_fullnamer"r.r/r0r%rZhas_ext_modulesZ install_baseZinstall_platbaser4reprrZ make_archiver#r'r(rZ dist_filesappendr$rr9)r)r6Zarchive_basenameZpseudoinstall_rootZ archive_rootfilenameZ pyversionr*r*r+runOs>              zbdist_dumb.run)r r r )rrr)rr r)rNr)rNr)rrr)rrr) __name__ __module__ __qualname__Z descriptionrZ user_optionsZboolean_optionsr1r,r5r?r*r*r*r+r s6     r )__doc__r.Zdistutils.corerZdistutils.utilrZdistutils.dir_utilrrZdistutils.errorsZdistutils.sysconfigrZ distutilsrr r*r*r*r+s  PK!EY."."6command/__pycache__/bdist_wininst.cpython-35.opt-2.pycnu[ ];@sddlZddlZddlmZddlmZddlmZmZddl Tddl m Z ddl m Z Gdd d eZdS) N)Command) get_platform) create_tree remove_tree)*)get_python_version)logc@seZdZdZd4dddefdd d d fd dd dfd5d6d7d8d9d:d;d<d=g ZddddgZd&d'Zd(d)Zd*d+Z d,d-Z dd.d/Z d0d1Z d2d3Z dS)> bdist_wininstz-create an executable installer for MS Windows bdist-dir=N1temporary directory for creating the distributionz plat-name=pz;platform name to embed in generated filenames (default: %s)z keep-tempkz/keep the pseudo-installation tree around after z!creating the distribution archiveztarget-version=z!require a specific python versionz on the target systemno-target-compilec/do not compile .py to .pyc on the target systemno-target-optimizeo:do not compile .py to .pyo (optimized)on the target system dist-dir=d-directory to put final built distributions inbitmap=b>bitmap to use for the installer instead of python-powered logotitle=t?title to display on the installer background instead of default skip-build2skip rebuilding everything (for testing/debugging)install-script=Tbasename of installation script to be run afterinstallation or before deinstallationpre-install-script={Fully qualified filename of a script to be run before any files are installed. This script need not be in the distributionuser-access-control=specify Vista's UAC handling - 'none'/default=no handling, 'auto'=use UAC if target Python installed for all users, 'force'=always use UACcCsyd|_d|_d|_d|_d|_d|_d|_d|_d|_d|_ d|_ d|_ d|_ dS)Nr) bdist_dir plat_name keep_tempno_target_compileno_target_optimizetarget_versiondist_dirbitmaptitle skip_buildinstall_scriptpre_install_scriptuser_access_control)selfr32/opt/alt/python35/lib64/python3.5/bdist_wininst.pyinitialize_options:s            z bdist_wininst.initialize_optionscCsG|jdd |jdkry|jrO|jrO|jjd}|j|_|jdj}tj j |d|_|j sd|_ |j r|jj rt }|j r|j |krtd|f||_ |jdd d |jrCxC|jjD]"}|jtj j|kr Pq Wtd|jdS) Nbdistr.ZwininstzMtarget version can only be %s, or the '--skip-build' option must be specifiedr+r&z(install_script '%s' not found in scripts)r.r.)r+r+)r&r&)Zset_undefined_optionsr%r.r& distributionZget_command_objget_finalized_command bdist_baseospathjoinr*has_ext_modulesrZDistutilsOptionErrorr/scriptsbasename)r2r6r:Z short_versionscriptr3r3r4finalize_optionsJs4        zbdist_wininst.finalize_optionsc Cstjdkr9|jjs-|jjr9td|jsO|jd|jddd}|j |_ |j|_d|_ |j |_ |jd}d|_ d|_|jjr$|j}|stjdd }d |j |f}|jd}tjj|jd ||_xDdD]<}|j}|dkrS|d}t|d||q+Wtjd|j |jtjjdtjj|j d|jtjd=ddlm}|} |jj } |j!| dd|j } |j"| | |j#|jjr5t$} nd} |jj%j&d| |j'| ftj(d| tj)| |j*st+|j d|j,dS)Nwin32z^distribution contains extensions and/or C libraries; must be compiled on a Windows 32 platformbuildinstallZreinit_subcommandsr install_libz.%s-%slibpurelibplatlibheadersr?dataz/Include/$dist_nameZinstall_zinstalling to %sZPURELIB)mktempziproot_diranyr zremoving temporary file '%s'dry_run)rJrKrLr?rM)-sysplatformr8r>Zhas_c_librariesZDistutilsPlatformErrorr.Z run_commandZreinitialize_commandr%rootZwarn_dirr&compileoptimizer*versionr9r;r<r=Z build_baseZ build_libuppersetattrrinfoZensure_finalizedinsertruntempfilerN get_fullname make_archive create_exer,rZ dist_filesappendget_installer_filenamedebugremover'rrR) r2rErGr*Zplat_specifierrDkeyvaluerNZarchive_basenamefullnamearcnameZ pyversionr3r3r4r]psd                %       zbdist_wininst.runc Csg}|jj}|jd|jp+dd}dd}x{dddd d d d d gD][}t||d}|r]|d|j||f}|jd|||fq]W|jd|jr|jd|j|jd|||jd|j |jd|j |j rD|jd|j |j ra|jd|j |j pv|jj }|jd||ddl }ddl} d|j|j | jf} |jd| dj|S)Nz [metadata]r7 cSs|jddS)Nrjz\n)replace)sr3r3r4escapesz)bdist_wininst.get_inidata..escapeZauthorZ author_email descriptionZ maintainerZmaintainer_emailnameZurlrXz %s: %sz%s=%sz [Setup]zinstall_script=%szinfo=%sztarget_compile=%dztarget_optimize=%dztarget_version=%szuser_access_control=%sztitle=%srzBuilt %s with distutils-%sz build_info=%s)r8metadatarbZlong_descriptiongetattr capitalizer/r(r)r*r1r-r_time distutilsctime __version__r=) r2linesrpr[rmrorMr-rsrtZ build_infor3r3r4 get_inidatas<   !      zbdist_wininst.get_inidatac Csddl}|j|j|j}|j|}|jd||rrt|dj}t|}nd}t|d} | j |j |r| j |t |t r|j d}|d}|jr&t|jddd } | jj d } WdQRX|| d }n |d}| j ||jd d t||} | j | | j t|djdS) Nrz creating %srbwbmbcssrencodingzlatin-1s zs PK!.command/__pycache__/clean.cpython-35.opt-2.pycnu[ ] @sVddlZddlmZddlmZddlmZGdddeZdS)N)Command) remove_tree)logc@s[eZdZdZddddddgZdgZddZddZddZdS)cleanz-clean up temporary files from 'build' command build-base=b2base build directory (default: 'build.build-base') build-lib=N}tjj|rt|d|jqctj d|qcW|jsy'tj |jtjd|jWntk rYnXdS)Ndry_runz%'%s' does not exist -- can't clean itz removing '%s')ospathexistsrrrrdebugrrrrwarnrmdirrinfoOSError)rZ directoryrrrrun1s$        z clean.run)rrr)r Nr )r r r )rNr)rNr)rrr) __name__ __module__ __qualname__ descriptionZ user_optionsZboolean_optionsrrr(rrrrr s"     r)r Zdistutils.corerZdistutils.dir_utilrZ distutilsrrrrrrs PK!Z# # 8command/__pycache__/install_scripts.cpython-35.opt-1.pycnu[ Yf@s\dZddlZddlmZddlmZddlmZGdddeZdS)zudistutils.command.install_scripts Implements the Distutils 'install_scripts' command, for installing Python scripts.N)Command)log)ST_MODEc@speZdZdZddddgZdd gZddZddZddZddZ ddZ d S)install_scriptsz%install scripts (Python or otherwise) install-dir=ddirectory to install scripts to build-dir=b'build directory (where to install from)forcef-force installation (overwrite existing files) skip-buildNskip the build stepscCs(d|_d|_d|_d|_dS)Nr) install_dirr build_dir skip_build)selfrF/opt/alt/python35/lib64/python3.5/distutils/command/install_scripts.pyinitialize_optionss   z"install_scripts.initialize_optionscCs*|jdd |jdd d d dS) NZbuild build_scriptsrZinstallrrr r)rr)rr)r r )rr)Zset_undefined_options)rrrrfinalize_options!s  z install_scripts.finalize_optionscCs|js|jd|j|j|j|_tjdkrxn|jD]`}|j rot j d|qMtj |t dBd@}t j d||tj||qMWdS)Nrposixzchanging mode of %simizchanging mode of %s to %o)rZ run_commandZ copy_treerroutfilesosname get_outputsZdry_runrinfostatrchmod)rfilemoderrrrun)s   zinstall_scripts.runcCs|jjpgS)N)Z distributionscripts)rrrr get_inputs8szinstall_scripts.get_inputscCs |jp gS)N)r)rrrrr;szinstall_scripts.get_outputs)rrr)r r r )r r r)rNr) __name__ __module__ __qualname__Z descriptionZ user_optionsZboolean_optionsrrr$r&rrrrrrs       r) __doc__rZdistutils.corerZ distutilsrr rrrrrrs  PK!U**.command/__pycache__/sdist.cpython-35.opt-2.pycnu[ ]-G@sddlZddlZddlZddlTddlmZddlmZddlmZddl m Z m Z m Z m Z ddlmZddlTddlmZdd l mZdd lmZd d ZGd ddeZdS)N)*)glob)warn)Command)dir_utildep_util file_util archive_util)TextFile)FileList)log) convert_pathcCsddlm}ddlm}g}x6|jD](}|jd|d||dfq3W|j||jddS)Nr) FancyGetopt)ARCHIVE_FORMATSzformats=z.List of available source distribution formats:)Zdistutils.fancy_getoptrZdistutils.archive_utilrkeysappendsort print_help)rrformatsformatr*/opt/alt/python35/lib64/python3.5/sdist.py show_formatss  rc@sgeZdZdZddZdMdNdOdPdQdRdSdTdUddddfdVdWdXdYgZd ddddd"gZd*d d+efgZd d ddiZ d,d-d.d/iZ d0efgZ d1d2Z d3d4Z d5d6Zd7d8Zd9d:Zd;d<Zd=d>Zd?d@ZdAdBZdCdDZdEdFZdGdHZdIdJZdKdLZd S)Zsdistz6create a source distribution (tarball, zip file, etc.)cCs|jS)N)metadata_check)selfrrrchecking_metadata&szsdist.checking_metadata template=t5name of manifest template file [default: MANIFEST.in] manifest=m)name of manifest file [default: MANIFEST] use-defaultsNRinclude the default file set in the manifest [default; disable with --no-defaults] no-defaults"don't include the default file setprunespecifically exclude files/directories that should not be distributed (build tree, RCS/CVS dirs, etc.) [default; disable with --no-prune]no-prune$don't automatically exclude anything manifest-onlyoEjust regenerate the manifest and then stop (implies --force-manifest)force-manifestfkforcibly regenerate the manifest and carry on as usual. Deprecated: now the manifest is always regenerated.formats=6formats for source distribution (comma-separated list)z keep-tempkz1keep the distribution tree around after creating zarchive file(s) dist-dir=dFdirectory to put the source distribution archive(s) in [default: dist]metadata-check[Ensure that all required elements of meta-data are supplied. Warn if any missing. [default]owner=u@Owner name used when creating a tar file [default: current user]group=gAGroup name used when creating a tar file [default: current group]z help-formatsz#list available distribution formatsposixgztarntzipcheckcCsyd|_d|_d|_d|_d|_d|_d|_d|_d|_d|_ d|_ d|_ d|_ dS)Nr) templatemanifest use_defaultsr( manifest_onlyZforce_manifestr keep_tempdist_dir archive_filesrownergroup)rrrrinitialize_optionsds            zsdist.initialize_optionsc Cs|jdkrd|_|jdkr0d|_|jd|jdkry|jtjg|_Wn%tk rtdtjYnXt j |j}|rt d||j dkrd|_ dS)NZMANIFESTz MANIFEST.inrzr?)__name__ __module__ __qualname__ descriptionrZ user_optionsZboolean_optionsrZ help_optionsZ negative_optrPZ sub_commandsrOrTrXr[rVrarbrcrdr^r_rrWrrrrrr"sn           ( P     * r)rQstringrtypesrwarningsrZdistutils.corerZ distutilsrrrr Zdistutils.text_filer Zdistutils.errorsZdistutils.filelistr r Zdistutils.utilr rrrrrrs    "  PK!G.command/__pycache__/check.cpython-35.opt-2.pycnu[ ]x @sddlmZddlmZypddlmZddlmZddlm Z ddlm Z ddl m Z Gdd d eZ d ZWnek rd ZYnXGd d d eZdS))Command)DistutilsSetupError)Reporter)Parser)frontend)nodes)StringIOc@s4eZdZddddddZddZdS) SilentReporterNrasciireplacec Cs/g|_tj||||||||dS)N)messagesr__init__)selfsource report_level halt_levelstreamdebugencoding error_handlerr*/opt/alt/python35/lib64/python3.5/check.pyr s zSilentReporter.__init__cOsB|jj||||ftj||d|d|j||S)Nleveltype)r appendrsystem_messageZlevels)rrmessageZchildrenkwargsrrrrs zSilentReporter.system_message)__name__ __module__ __qualname__r rrrrrr s r TFc@seZdZdZdddgZdddgZd d Zd dZddZddZ ddZ ddZ ddZ dS)checkz"perform some checks on the packagemetadatamVerify meta-datarestructuredtextrEChecks if long string meta-data syntax are reStructuredText-compliantstricts(Will exit with an error if a check failscCs(d|_d|_d|_d|_dS)Nr)r%r"r( _warnings)rrrrinitialize_options1s   zcheck.initialize_optionscCsdS)Nr)rrrrfinalize_options8szcheck.finalize_optionscCs|jd7_tj||S)Nr+)r,rwarn)rmsgrrrr/;sz check.warncCsl|jr|j|jrDtr/|jn|jrDtd|jrh|jdkrhtddS)NzThe docutils package is needed.rzPlease correct your package.)r"check_metadatar% HAS_DOCUTILScheck_restructuredtextr(rr,)rrrrrun@s      z check.runcCs|jj}g}x9d D]1}t||o:t||s|j|qW|rn|jddj||jr|js|jddn;|j r|j s|jdd n|jd d d dS)Nnameversionurlzmissing required meta-data: %sz, z)missing meta-data: if 'author' supplied, z#'author_email' must be supplied tooz-missing meta-data: if 'maintainer' supplied, z''maintainer_email' must be supplied tooz4missing meta-data: either (author and author_email) z%or (maintainer and maintainer_email) zmust be supplied)r5r6r7) distributionr"hasattrgetattrrr/joinZauthorZ author_emailZ maintainerZmaintainer_email)rr"missingattrrrrr1Ps$          zcheck.check_metadatacCsz|jj}xd|j|D]S}|djd}|dkrQ|d}nd|d|f}|j|qWdS)Nr+linez %s (line %s))r8Zget_long_description_check_rst_datagetr/)rdatawarningr>rrrr3ns  zcheck.check_restructuredtextcCst}t}tjdtfj}d|_d|_d|_t||j |j d|j d|j d|j d|j}tj||d|}|j|d y|j||WnEtk r}z%|jjd d |d ifWYdd}~XnX|jS) NZ componentsrrrrrr+z!Could not finish the parsing: %s.r?r?)rrrZ OptionParserZget_default_valuesZ tab_widthZpep_referencesZrfc_referencesr rrZwarning_streamrZerror_encodingZerror_encoding_error_handlerrdocumentZ note_sourceparseAttributeErrorr r)rrB source_pathparserZsettingsZreporterrFerrrr@ys*           *zcheck._check_rst_dataN)r"r#r$)r%r&r')r(r)r*) rrr descriptionZ user_optionsZboolean_optionsr-r.r/r4r1r3r@rrrrr!$s        r!N)Zdistutils.corerZdistutils.errorsrZdocutils.utilsrZdocutils.parsers.rstrZdocutilsrriorr r2 Exceptionr!rrrrs   PK!I##2command/__pycache__/install_headers.cpython-35.pycnu[ Yf@s0dZddlmZGdddeZdS)zdistutils.command.install_headers Implements the Distutils 'install_headers' command, to install C/C++ header files to the Python include directory.)Commandc@sgeZdZdZddgZdgZdd Zd d Zd d ZddZ ddZ dS)install_headerszinstall C/C++ header files install-dir=d$directory to install header files toforcef-force installation (overwrite existing files)cCsd|_d|_g|_dS)Nr) install_dirroutfiles)selfr F/opt/alt/python35/lib64/python3.5/distutils/command/install_headers.pyinitialize_optionss  z"install_headers.initialize_optionscCs|jddddS)NZinstallrr r)rr )rr)Zset_undefined_options)r r r rfinalize_optionss z install_headers.finalize_optionscCsf|jj}|sdS|j|jx9|D]1}|j||j\}}|jj|q-WdS)N) distributionheadersZmkpathr Z copy_filer append)r rheaderout_r r rrun!s  zinstall_headers.runcCs|jjpgS)N)rr)r r r r get_inputs+szinstall_headers.get_inputscCs|jS)N)r )r r r r get_outputs.szinstall_headers.get_outputsN)rrr)rrr ) __name__ __module__ __qualname__Z descriptionZ user_optionsZboolean_optionsrrrrrr r r rr s      rN)__doc__Zdistutils.corerrr r r rsPK!aG|:|:0command/__pycache__/install.cpython-35.opt-1.pycnu[ Yfg @sdZddlZddlZddlmZddlmZddlmZddl m Z ddl m Z ddl mZdd lmZmZmZdd lmZdd l mZdd lmZdd lmZdZddddddddddiZdddddddddddiddddddd ddddid!eiZerdd"dd"dd#dd$dd%ied&d?Zd@dAZdBdCZdDdEZdFdGZdHdIZdJdKZdLdMZdNdOZdPdQZdRdSZdTdUZdVdWZdXefdYefdZefd[efd\d]d^fgZdS)oinstallz'install everything from build directoryprefix=Ninstallation prefix exec-prefix=.(Unix only) prefix for platform-specific fileshome=+(Unix only) home directory to install under install-base=;base installation directory (instead of --prefix or --home)zinstall-platbase=z8base installation directory for platform-specific files z$(instead of --exec-prefix or --home)root=/opt/alt/python35/lib64/python3.5/distutils/command/install.pyinitialize_optionss2                       zinstall.initialize_optionscCsr|js|js|jr=|js-|jr=tdd|jrd|jsX|jrdtd|jr|js|js|js|js|jrtdtjdkr|jr|j dd|_|j dtjdkr|j n |j |j d t jjd }td d \}}y t j}Wntk rcd }YnXd|jjd|jjd|jjd|d|d dd|d |dd|d |d|d |d|i |_tr|j|jd<|j|jd<|j|j d|j|jd<|j|jd=z %s: %sr) rZdistutils.fancy_getoptrrdebug user_options negative_opt translategetattr)rUmsgrZoptZopt_namevalrVrVrWrjss  zinstall.dump_dirscCs|jdk s|jdk r|jdkrK|jdkrK|jdksx|jdksx|jdksx|jdkrtddS|j r|j dkrt d|j |_|_|j dn|j dk r|j |_|_|j dn|jdkr^|jdk r+tdtjjtj|_tjjtj|_n|jdkry|j|_|j|_|j|_|j ddS)z&Finalizes options for posix platforms.NzPinstall-base or install-platbase supplied, but installation scheme is incompletez$User base directory is not specifiedrrz*must not supply exec-prefix without prefixr)rBrCrHrErFrGrIrJr r=rKr select_schemerAr?r@rgr{normpathrm)rUrVrVrWrks<       zinstall.finalize_unixc Cs|jrN|jdkr$td|j|_|_|jtjdn|jdk r|j|_|_|jdnv|j dkrtj j t j |_ |j |_|_y|jtjWn%t k rtdtjYnXdS)z)Finalizes options for non-posix platformsNz$User base directory is not specifiedZ_userrz)I don't know how to install stuff on '%s')r=rKrrBrCrrgrhrAr?r{rrmKeyError)rUrVrVrWrls"   zinstall.finalize_othercCsRt|}xAtD]9}d|}t||dkrt||||qWdS)z=Sets the install directories by applying the install schemes.install_N)INSTALL_SCHEMES SCHEME_KEYSrsetattr)rUrhschemekeyZattrnamerVrVrWrs    zinstall.select_schemecCsx{|D]s}t||}|dk rtjdksFtjdkrXtjj|}t||j}t|||qWdS)NrYr)rrgrhr{ expanduserr rrr)rUZattrsattrrrVrVrW _expand_attrss  zinstall._expand_attrscCs|jdddgdS)zNCalls `os.path.expanduser` on install_base, install_platbase and root.rBrCrDN)r)rUrVrVrWrtszinstall.expand_basedirscCs#|jddddddgdS)z+Calls `os.path.expanduser` on install dirs.rErFrHrGrIrJN)r)rUrVrVrWrvs zinstall.expand_dirscGs>x7|D]/}d|}t||tt||qWdS)z!Call `convert_path` over `names`.rN)rrr)rUnamesrhrrVrVrWrxs  zinstall.convert_pathscCs|jdkr|jj|_|jdk rt|jtrT|jjd|_t|jdkr}|jd}}n3t|jdkr|j\}}n tdt|}n d}d}||_||_ dS)z4Set `path_file` and `extra_dirs` using `extra_path`.N,r>rr_zY'extra_path' option must be a list, tuple, or comma-separated string with 1 or 2 elementsrZ) rNrq isinstancestrrolenr r path_filer})rUrr}rVrVrWrys   zinstall.handle_extra_pathc GsDx=|D]5}d|}t||t|jt||qWdS)z:Change the install directories pointed by name using root.rN)rr rDr)rUrrhrrVrVrWr~s  zinstall.change_rootscCs|js dSttjjd}x`|jjD]O\}}|j|r5tjj| r5|j d|tj |dq5WdS)zCreate directories under ~.N~zos.makedirs('%s', 0o700)i) r=rrgr{rrritems startswithisdirZ debug_printmakedirs)rUrArhr{rVrVrWrw s "zinstall.create_home_pathcCs|jsO|jd|jjdj}|jrO|tkrOtdx!|jD]}|j|q\W|j r|j |j r |j }|j rt|j }x2tt|D]}|||d||szinstall.)rNr)rNr)rNr)r Nr!)r"Nr#)r$Nr%)r&Nr')r(Nr))r*Nr+)r,Nr-)r.r/r0)r1Nr2)r3r4r5)r6r7r8)r9Nr:)r;Nr<) __name__ __module__ __qualname__Z descriptionrZboolean_optionsrsrrrrXrrjrkrlrrrtrvrxryr~rwrrrrrrrrZ sub_commandsrVrVrVrWrIs      M  (       ,          r)rrrrr)__doc__rmrgZ distutilsrZdistutils.corerZdistutils.debugrZdistutils.sysconfigrZdistutils.errorsrZdistutils.file_utilrZdistutils.utilrr r r r Zsiter rrsZWINDOWS_SCHEMErrrrVrVrVrWs\      PK!֦SS.command/__pycache__/build.cpython-35.opt-2.pycnu[ ]c@snddlZddlZddlmZddlmZddlmZddZGdddeZ dS) N)Command)DistutilsOptionError) get_platformcCsddlm}|dS)Nr)show_compilers)Zdistutils.ccompilerr)rr*/opt/alt/python35/lib64/python3.5/build.pyr src@seZdZdZd8d9d:d dd d fd;d<dddefd=d>d?d@dAg ZddgZd$dd%efgZd&d'Z d(d)Z d*d+Z d,d-Z d.d/Z d0d1Zd2d3Zd4e fd5e fd6efd7efgZdS)Bbuildz"build everything needed to install build-base=b base directory for build librarybuild-purelib=N2build directory for platform-neutral distributionsbuild-platlib=3build directory for platform-specific distributionsz build-lib=z9build directory for all distribution (defaults to either zbuild-purelib or build-platlibbuild-scripts=build directory for scripts build-temp=ttemporary build directoryz plat-name=pz6platform name to build for, if supported (default: %s) compiler=cspecify the compiler type parallel=jnumber of parallel build jobsdebugg;compile extensions and libraries with debugging informationforcef2forcibly build everything (ignore file timestamps) executable=e5specify final destination interpreter path (build.py)z help-compilerzlist available compilerscCspd|_d|_d|_d|_d|_d|_d|_d|_d|_d|_ d|_ d|_ dS)Nrr) build_base build_purelib build_platlib build_lib build_temp build_scriptsZcompiler plat_namerr executableparallel)selfrrrinitialize_options8s           zbuild.initialize_optionsc Cs|jdkrt|_ntjdkr9tdd|jtjddf}ttdrr|d7}|jdkrtj j |j d|_|j dkrtj j |j d||_ |j dkr|jjr|j |_ n |j|_ |jdkr.tj j |j d ||_|jdkritj j |j d tjdd|_|jdkrtj jtj|_t|jtryt|j|_Wntk rtd YnXdS) NntzW--plat-name only supported on Windows (try using './configure --help' on your platform)z.%s-%srgettotalrefcountz-pydebuglibZtempzscripts-zparallel should be an integer)r+rosnamersysversionhasattrr&pathjoinr%r'r( distributionZ ext_modulesr)r*r,normpath isinstancer-strint ValueError)r.Zplat_specifierrrrfinalize_optionsHs<      zbuild.finalize_optionscCs(x!|jD]}|j|q WdS)N)Zget_sub_commandsZ run_command)r.Zcmd_namerrrrunsz build.runcCs |jjS)N)r;has_pure_modules)r.rrrrCszbuild.has_pure_modulescCs |jjS)N)r;has_c_libraries)r.rrrrDszbuild.has_c_librariescCs |jjS)N)r;has_ext_modules)r.rrrrEszbuild.has_ext_modulescCs |jjS)N)r; has_scripts)r.rrrrFszbuild.has_scriptsZbuild_pyZ build_clibZ build_extr*)r r r )r Nr )rNr)rNr)rrr)rrr)rrr)rrr)rr r!)r"r#r$)__name__ __module__ __qualname__ descriptionrZ user_optionsZboolean_optionsrZ help_optionsr/rArBrCrDrErFZ sub_commandsrrrrrsR      8       r) r6r4Zdistutils.corerZdistutils.errorsrZdistutils.utilrrrrrrrs  PK!1command/__pycache__/register.cpython-35.opt-2.pycnu[ ]-@sddlZddlZddlZddlZddlZddlZddlmZddl m Z ddl Tddl m Z Gddde ZdS)N)warn) PyPIRCCommand)*)logc@seZdZdZejdd gZejdddgZdd d fgZd d Zd dZ ddZ ddZ ddZ ddZ ddZddZddZdddZdS)!registerz7register the distribution with the Python package indexlist-classifiersN list the valid Trove classifiersstrictBWill stop the registering if the meta-data are not fully compliantverifycheckcCsdS)NT)selfr r -/opt/alt/python35/lib64/python3.5/register.pyszregister.cCs#tj|d|_d|_dS)Nr)rinitialize_optionslist_classifiersr )rr r rrs  zregister.initialize_optionscCs<tj|dd|jfddi}||jjdioStringIOitemstypestrwritegetvalueencodelenr&r'ZRequestZ build_openerZHTTPBasicAuthHandleropenerror HTTPErrorZ show_responsefpreadr.msgURLErrorr*join)rrIrGboundaryZ sep_boundaryZ end_boundaryZbodykeyvalueZheadersZreqZopenerr/erfr r rr,sV      $           $%   zregister.post_to_server)rNr)r Nr )__name__ __module__ __qualname__rLrZ user_optionsZboolean_optionsZ sub_commandsrrrrrrrrr-r,r r r rrs&         z r)osstringrArXZ urllib.parser&Zurllib.requestwarningsrZdistutils.corerZdistutils.errorsZ distutilsrrr r r rs$  PK!Ԧ;;+command/__pycache__/__init__.cpython-35.pycnu[ Yf@sIdZddddddddd d d d d ddddddgZdS)z\distutils.command Package containing implementation of all the standard Distutils commands.ZbuildZbuild_pyZ build_extZ build_clibZ build_scriptsZcleanZinstallZ install_libZinstall_headersZinstall_scriptsZ install_dataZsdistregisterZbdistZ bdist_dumbZ bdist_rpmZ bdist_wininstZcheckZuploadN)__doc____all__rr?/opt/alt/python35/lib64/python3.5/distutils/command/__init__.pys&PK! 4747,command/__pycache__/bdist_rpm.cpython-35.pycnu[ YfT@sdZddlZddlZddlZddlmZddlmZddlm Z ddl m Z ddl Tddl mZdd lmZGd d d eZdS) zwdistutils.command.bdist_rpm Implements the Distutils 'bdist_rpm' command (create RPM source and binary distributions).N)Command)DEBUG) get_platform) write_file)*)get_python_version)logc+@seZdZdZdfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|d}d~ddddddddddddddddg)Zd4d9d=d2dUgZd7d4d;d9d?d=iZdXdYZdZd[Zd\d]Z d^d_Z d`daZ dbdcZ dddeZ dS) bdist_rpmzcreate an RPM distribution bdist-base=N/base directory for creating built distributions rpm-base=dbase directory for creating RPMs (defaults to "rpm" under --bdist-base; must be specified for RPM 2) dist-dir=dDdirectory to put final RPM files in (and .spec files if --spec-only)python=Mpath to Python interpreter to hard-code in the .spec file (default: "python") fix-pythonLhard-code the exact path to the current Python interpreter in the .spec file spec-onlyonly regenerate spec file source-onlyonly generate source RPM binary-onlyonly generate binary RPM use-bzip27use bzip2 instead of gzip to create source distributiondistribution-name=gname of the (Linux) distribution to which this RPM applies (*not* the name of the module distribution!)group=9package classification [default: "Development/Libraries"]release=RPM release numberserial=RPM serial numbervendor=aRPM "vendor" (eg. "Joe Blow ") [default: maintainer or author from setup script] packager=ARPM packager (eg. "Jane Doe ")[default: vendor] doc-files=6list of documentation files (space or comma-separated) changelog= RPM changelogicon=name of icon file provides=%capabilities provided by this package requires=%capabilities required by this package conflicts=-capabilities which conflict with this packagebuild-requires=+capabilities required to build this package obsoletes=*capabilities made obsolete by this package no-autoreq+do not automatically calculate dependencies keep-tempk"don't clean up RPM build directory no-keep-temp&clean up RPM build directory [default]use-rpm-opt-flags8compile with RPM_OPT_FLAGS when building from source RPMno-rpm-opt-flags&do not pass any RPM CFLAGS to compiler rpm3-mode"RPM 3 compatibility mode (default) rpm2-modeRPM 2 compatibility mode prep-script=3Specify a script for the PREP phase of RPM building build-script=4Specify a script for the BUILD phase of RPM building pre-install=:Specify a script for the pre-INSTALL phase of RPM buildinginstall-script=6Specify a script for the INSTALL phase of RPM building post-install=;Specify a script for the post-INSTALL phase of RPM buildingpre-uninstall=rnroREADME README.txtrk1rlrirprqrrrsrtrurvrwrxryrzr|r}r~rrr)rr)Z ensure_stringrZ get_contactZget_contact_emailZensure_string_list isinstancerolistrrexistsappend_format_changelogrpZensure_filename)rZreadmerrrrs>    !                  zbdist_rpm.finalize_package_datac Cs.trPtdtd|jtd|jtd|jtd|j|jrr|j}|j|nNi}x;d)D]3}t j j |j |||<|j||qW|d}t j j |d |j j}|jt||jfd ||jrdS|j jdd}|jd }|jrOdg|_n dg|_|jd ||j _|jd}|d}|j|||jrt j j|jr|j|j|ntd|jtjddg} t j jdst j jdr(dg} |jrA| jdn&|j rZ| jdn | jd| j!dd|j"g|j#r| j!ddt j j$|j g|j%s| jd|j&r| jd| j|d} | d } d!| d"} d#| | |f} t j'| }zg}d}xh|j(}|sNP|j)j*}t+|d$ksxt,|j|d%|dkr;|d}q;W|j-}|rt.d&t/| Wd|j-X|j0| |j1s*|j j2r t3}nd'}|j st j j |d |}t j j|sKt,|j4||jt j j |j|}|j jjd(||f|js*x|D]}t j j |d |}t j j|r|j4||jt j j |jt j j5|}|j jjd(||fqWdS)*Nzbefore _get_package_data():zvendor =z packager =z doc_files =z changelog =SOURCESSPECSBUILDRPMSSRPMSz%s.specz writing '%s'sdistZbztarZgztarrzicon file '%s' does not existz building RPMsrz/usr/bin/rpmbuildz /bin/rpmbuildZrpmbuildz-bsz-bbz-baz--definez __python %sz _topdir %sz--cleanz--quietz%{name}-%{version}-%{release}z.src.rpmz%{arch}/z .%{arch}.rpmz%rpm -q --qf '%s %s\n' --specfile '%s'r_zFailed to execute: %sanyr )rrrrr)6rprintrmrnrorprerbZmkpathrrrrarget_nameZexecuter_make_spec_fileZ dist_filesZreinitialize_commandrhZformatsZ run_commandZget_archive_filesZ copy_filerqrZDistutilsFileErrorrinforgrrfextendrcrabspathrr\popenreadlinestripsplitlenAssertionErrorcloseZDistutilsExecErrorreprZspawnZdry_runrrZ move_filebasename)rZspec_dirZrpm_dirrZ spec_pathZsaved_dist_filesrsourceZ source_dirZrpm_cmdZ nvr_stringZsrc_rpmZ non_src_rpmZq_cmdoutZ binary_rpmsZ source_rpmlinelZstatusZ pyversionZsrpmfilenamerrrrruns                                          z bdist_rpm.runcCs"tjj|jtjj|S)N)rrrrbr)rrrrr _dist_pathszbdist_rpm._dist_pathc CsKd|jjd|jjjddd|jjd|jjdddd|jjg}tjd }d jd d |j D}d }d}|j||}||kr|j d|j d|d |j dddg|j r|j dn |j d|j d|jj d|jddg|jsy|jjs|j dn|j d|jxxdKD]p}t||j}t|tr|j d"|d#j|fq|d$k r|j d"||fqW|jjd%kr7|j d&|jj|jrT|j d'|j|jrz|j d(d#j|j|jr|j d)tjj|j|jr|j d*|j dd+|jjgd,|jtjjtj d-f}d.|} |j!rd/| } d0|} dLd4d5| fd6d7| fdMdNdOdPdQdRg } x| D]|\} } }t|| }|s|r_|j ddE| g|r|j t"|dFj#j$d q_|j |q_W|j ddGdHg|j%r|j dId#j|j%|j&rG|j ddJg|j |j&|S)SziGenerate the text of an RPM spec file and return it as a list of strings (one per line). z %define name z%define version -_z%define unmangled_version z%define release z Summary: zrpm --eval %{__os_install_post} cSs g|]}d|jqS)z %s \)r).0rrrr s z-bdist_rpm._make_spec_file..zbrp-python-bytecompile \ z%brp-python-bytecompile %{__python} \ z2# Workaround for http://bugs.python.org/issue14443z%define __os_install_post z Name: %{name}zVersion: %{version}zRelease: %{release}z-Source0: %{name}-%{unmangled_version}.tar.bz2z,Source0: %{name}-%{unmangled_version}.tar.gzz License: zGroup: z>BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildrootzPrefix: %{_prefix}zBuildArch: noarchz BuildArch: %sVendorPackagerProvidesRequires Conflicts Obsoletesz%s: %s NZUNKNOWNzUrl: zDistribution: zBuildRequires: zIcon: z AutoReq: 0z %descriptionz%s %srz%s buildzenv CFLAGS="$RPM_OPT_FLAGS" z>%s install -O1 --root=$RPM_BUILD_ROOT --record=INSTALLED_FILESr{rr&%setup -n %{name}-%{unmangled_version}ZbuildrsZinstallrtcleanrurm -rf $RPM_BUILD_ROOT verifyscriptrvprerwpostrxpreunrypostunrz%rz%files -f INSTALLED_FILESz%defattr(-,root,root)z%doc z %changelog)rrrrrr)r{rrr)rrur)rrvN)rrwN)rrxN)rryN)rrzN)'rrZ get_versionreplacerkZget_description subprocessZ getoutputr splitlinesrrrhZ get_licenserjrrgetattrlowerrrZget_urlrirrqrrrrZget_long_descriptionrcrargvropenreadrrorp)rZ spec_fileZ vendor_hookZproblemZfixedZ fixed_hookZfieldvalZdef_setup_callZ def_buildZ install_cmdZscript_optionsZrpm_optattrdefaultrrrrs          #        &       (    zbdist_rpm._make_spec_filecCs|s |Sg}x|jjdD]i}|j}|ddkr^|jd|gq&|ddkr~|j|q&|jd|q&W|ds|d=|S)zKFormat the changelog correctly and convert it to a list of strings rrrrrz )rrrr)rrpZ new_changelogrrrrr3s  zbdist_rpm._format_changelog)r Nr )r Nr )rrr)rNr)rNr)rNr)rNr)rNr)rNr)rNr)rNr )r!Nr")r#Nr$)r%Nr&)r'Nr()r)Nr*)r+Nr,)r-Nr.)r/Nr0)r1Nr2)r3Nr4)r5Nr6)r7Nr8)r9Nr:)r;r<r=)r>Nr?)r@NrA)rBNrC)rDNrE)rFNrG)rHNrI)rJNrK)rLNrM)rNNrO)rPNrQ)rRNrS)rTNrU)rVNrW)rXNrY)rZNr[)r\r]r^)__name__ __module__ __qualname__Z descriptionZ user_optionsZboolean_optionsZ negative_optrrrrrrrrrrrr s      -  -  r )__doc__rrrZdistutils.corerZdistutils.debugrZdistutils.utilrZdistutils.file_utilrZdistutils.errorsZdistutils.sysconfigrZ distutilsrr rrrrs$ PK!"00)command/__pycache__/upload.cpython-35.pycnu[ Yf@sdZddlZddlZddlZddlZddlmZddlmZm Z m Z ddl m Z ddl mZmZddlmZddlmZdd lmZGd d d eZdS) zm distutils.command.upload Implements the Distutils 'upload' subcommand (upload package to a package index). N)standard_b64encode)urlopenRequest HTTPError)urlparse)DistutilsErrorDistutilsOptionError) PyPIRCCommand)spawn)logc@sieZdZdZejddgZejdgZdd Zd d Zd d Z ddZ dS)uploadzupload binary package to PyPIsignssign files to upload using gpg identity=iGPG identity used to sign filescCs>tj|d|_d|_d|_d|_d|_dS)NrF)r initialize_optionsusernamepassword show_responser identity)selfr=/opt/alt/python35/lib64/python3.5/distutils/command/upload.pyr s      zupload.initialize_optionscCstj||jr,|j r,td|j}|ikrx|d|_|d|_|d|_|d|_ |j r|j jr|j j|_dS)Nz.Must use --sign for --identity to have meaningrr repositoryrealm) r finalize_optionsrr rZ _read_pypircrrrr distribution)rconfigrrrr(s        zupload.finalize_optionscCsU|jjsd}t|x0|jjD]"\}}}|j|||q+WdS)Nz'No dist file created in earlier command)rZ dist_filesr upload_file)rmsgcommand pyversionfilenamerrrrun:s   z upload.runc$4Cst|j\}}}}}} |s3|s3| rFtd|j|dIkrbtd||jrddd|g} |jrd|jg| d d |d?t/t5|d@|i}t6|jdA|dB|}y%t7|}|j8} |j9}!Wnwt:k r}"z|"j;} |"j9}!WYdd}"~"XnAt<k r}"z!|j2t/|"t3j=WYdd}"~"XnX| dCkr|j2dD| |!ft3j4|j>r|j?|}#dEj@dFdG|#dFdGf}|j2|t3j4n/dH| |!f}|j2|t3j=tA|dS)KNzIncompatible url %shttphttpszunsupported schema Zgpgz --detach-signz-az --local-userdry_runrbz:actionZ file_uploadZprotocol_version1nameversioncontentZfiletyper$Z md5_digestZmetadata_versionz1.0ZsummaryZ home_pageZauthorZ author_emaillicense descriptionkeywordsplatformZ classifiersZ download_urlZprovidesZrequiresZ obsoletesrZ bdist_rpmzbuilt for %s %sZ bdist_dumbz built for %sZtersecommentz.ascZ gpg_signature:asciizBasic z3--------------GHSKFJDLGDS7543FJKLFHRE75642756743254s --s-- z+ Content-Disposition: form-data; name="%s"z; filename="%s"rzutf-8s s s zSubmitting %s to %sz Content-typez multipart/form-data; boundary=%szContent-lengthZ AuthorizationdataheaderszServer response (%s): %s -KzUpload failed (%s): %s)r'r()BrrAssertionErrorr rr r*openreadcloserZmetadataZget_nameZ get_versionospathbasenamehashlibZmd5Z hexdigestZget_descriptionZget_urlZ get_contactZget_contact_emailZ get_licenceZget_long_descriptionZ get_keywordsZ get_platformsZget_classifiersZget_download_urlZ get_providesZ get_requiresZ get_obsoletesr3distrrencoderdecodeioBytesIOitems isinstancelisttypetuplestrwritegetvalueZannouncer INFOlenrrZgetcoder"rcodeOSErrorZERRORrZ_read_pypi_responsejoinr)$rr#r$r%ZschemaZnetlocZurlZparamsZqueryZ fragmentsZgpg_argsfr/metar8r5rGr.idZ user_passZauthboundaryZ sep_boundaryZ end_boundaryZbodykeyvaluetitler"r9ZrequestresultZstatusreasonetextrrrr!As!                                                zupload.upload_fileN)r rr)rrr) __name__ __module__ __qualname__r1r Z user_optionsZboolean_optionsrrr&r!rrrrr s     r )__doc__rCrJr3rFbase64rZurllib.requestrrrZ urllib.parserZdistutils.errorsrrZdistutils.corer Zdistutils.spawnr Z distutilsr r rrrrs    PK!d?d@dAg ZddgZd$dd%efgZd&d'Z d(d)Z d*d+Z d,d-Z d.d/Z d0d1Zd2d3Zd4e fd5e fd6efd7efgZdS)Bbuildz"build everything needed to install build-base=b base directory for build librarybuild-purelib=N2build directory for platform-neutral distributionsbuild-platlib=3build directory for platform-specific distributionsz build-lib=z9build directory for all distribution (defaults to either zbuild-purelib or build-platlibbuild-scripts=build directory for scripts build-temp=ttemporary build directoryz plat-name=pz6platform name to build for, if supported (default: %s) compiler=cspecify the compiler type parallel=jnumber of parallel build jobsdebugg;compile extensions and libraries with debugging informationforcef2forcibly build everything (ignore file timestamps) executable=e5specify final destination interpreter path (build.py)z help-compilerzlist available compilerscCspd|_d|_d|_d|_d|_d|_d|_d|_d|_d|_ d|_ d|_ dS)Nrr) build_base build_purelib build_platlib build_lib build_temp build_scriptsZcompiler plat_namerr executableparallel)selfrrrinitialize_options8s           zbuild.initialize_optionsc Cs|jdkrt|_ntjdkr9tdd|jtjddf}ttdrr|d7}|jdkrtj j |j d|_|j dkrtj j |j d||_ |j dkr|jjr|j |_ n |j|_ |jdkr.tj j |j d ||_|jdkritj j |j d tjdd|_|jdkrtj jtj|_t|jtryt|j|_Wntk rtd YnXdS) NntzW--plat-name only supported on Windows (try using './configure --help' on your platform)z.%s-%srgettotalrefcountz-pydebuglibZtempzscripts-zparallel should be an integer)r+rosnamersysversionhasattrr&pathjoinr%r'r( distributionZ ext_modulesr)r*r,normpath isinstancer-strint ValueError)r.Zplat_specifierrrrfinalize_optionsHs<      zbuild.finalize_optionscCs(x!|jD]}|j|q WdS)N)Zget_sub_commandsZ run_command)r.Zcmd_namerrrrunsz build.runcCs |jjS)N)r;has_pure_modules)r.rrrrCszbuild.has_pure_modulescCs |jjS)N)r;has_c_libraries)r.rrrrDszbuild.has_c_librariescCs |jjS)N)r;has_ext_modules)r.rrrrEszbuild.has_ext_modulescCs |jjS)N)r; has_scripts)r.rrrrFszbuild.has_scriptsZbuild_pyZ build_clibZ build_extr*)r r r )r Nr )rNr)rNr)rrr)rrr)rrr)rrr)rr r!)r"r#r$)__name__ __module__ __qualname__Z descriptionrZ user_optionsZboolean_optionsrZ help_optionsr/rArBrCrDrErFZ sub_commandsrrrrrsR      8       r) __doc__r6r4Zdistutils.corerZdistutils.errorsrZdistutils.utilrrrrrrrs  PK!662command/__pycache__/bdist_rpm.cpython-35.opt-1.pycnu[ YfT@sdZddlZddlZddlZddlmZddlmZddlm Z ddl m Z ddl Tddl mZdd lmZGd d d eZdS) zwdistutils.command.bdist_rpm Implements the Distutils 'bdist_rpm' command (create RPM source and binary distributions).N)Command)DEBUG) get_platform) write_file)*)get_python_version)logc+@seZdZdZdfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|d}d~ddddddddddddddddg)Zd4d9d=d2dUgZd7d4d;d9d?d=iZdXdYZdZd[Zd\d]Z d^d_Z d`daZ dbdcZ dddeZ dS) bdist_rpmzcreate an RPM distribution bdist-base=N/base directory for creating built distributions rpm-base=dbase directory for creating RPMs (defaults to "rpm" under --bdist-base; must be specified for RPM 2) dist-dir=dDdirectory to put final RPM files in (and .spec files if --spec-only)python=Mpath to Python interpreter to hard-code in the .spec file (default: "python") fix-pythonLhard-code the exact path to the current Python interpreter in the .spec file spec-onlyonly regenerate spec file source-onlyonly generate source RPM binary-onlyonly generate binary RPM use-bzip27use bzip2 instead of gzip to create source distributiondistribution-name=gname of the (Linux) distribution to which this RPM applies (*not* the name of the module distribution!)group=9package classification [default: "Development/Libraries"]release=RPM release numberserial=RPM serial numbervendor=aRPM "vendor" (eg. "Joe Blow ") [default: maintainer or author from setup script] packager=ARPM packager (eg. "Jane Doe ")[default: vendor] doc-files=6list of documentation files (space or comma-separated) changelog= RPM changelogicon=name of icon file provides=%capabilities provided by this package requires=%capabilities required by this package conflicts=-capabilities which conflict with this packagebuild-requires=+capabilities required to build this package obsoletes=*capabilities made obsolete by this package no-autoreq+do not automatically calculate dependencies keep-tempk"don't clean up RPM build directory no-keep-temp&clean up RPM build directory [default]use-rpm-opt-flags8compile with RPM_OPT_FLAGS when building from source RPMno-rpm-opt-flags&do not pass any RPM CFLAGS to compiler rpm3-mode"RPM 3 compatibility mode (default) rpm2-modeRPM 2 compatibility mode prep-script=3Specify a script for the PREP phase of RPM building build-script=4Specify a script for the BUILD phase of RPM building pre-install=:Specify a script for the pre-INSTALL phase of RPM buildinginstall-script=6Specify a script for the INSTALL phase of RPM building post-install=;Specify a script for the post-INSTALL phase of RPM buildingpre-uninstall=rnroREADME README.txtrk1rlrirprqrrrsrtrurvrwrxryrzr|r}r~rrr)rr)Z ensure_stringrZ get_contactZget_contact_emailZensure_string_list isinstancerolistrrexistsappend_format_changelogrpZensure_filename)rZreadmerrrrs>    !                  zbdist_rpm.finalize_package_datac CstrPtdtd|jtd|jtd|jtd|j|jrr|j}|j|nNi}x;d(D]3}t j j |j |||<|j||qW|d}t j j |d |j j}|jt||jfd ||jrdS|j jdd}|jd }|jrOdg|_n dg|_|jd ||j _|jd}|d}|j|||jrt j j|jr|j|j|ntd|jtjddg} t j jdst j jdr(dg} |jrA| jdn&|j rZ| jdn | jd| j!dd|j"g|j#r| j!ddt j j$|j g|j%s| jd|j&r| jd| j|d} | d } d!| d"} d#| | |f} t j'| }zg}d}xP|j(}|sNP|j)j*}|j|d$|dkr;|d}q;W|j+}|rt,d%t-| Wd|j+X|j.| |j/s|j j0rt1}nd&}|j sbt j j |d |}|j2||jt j j |j|}|j jjd'||f|jsx|D]}t j j |d |}t j j|rr|j2||jt j j |jt j j3|}|j jjd'||fqrWdS))Nzbefore _get_package_data():zvendor =z packager =z doc_files =z changelog =SOURCESSPECSBUILDRPMSSRPMSz%s.specz writing '%s'sdistZbztarZgztarrzicon file '%s' does not existz building RPMsrz/usr/bin/rpmbuildz /bin/rpmbuildZrpmbuildz-bsz-bbz-baz--definez __python %sz _topdir %sz--cleanz--quietz%{name}-%{version}-%{release}z.src.rpmz%{arch}/z .%{arch}.rpmz%rpm -q --qf '%s %s\n' --specfile '%s'r_zFailed to execute: %sanyr )rrrrr)4rprintrmrnrorprerbZmkpathrrrrarget_nameZexecuter_make_spec_fileZ dist_filesZreinitialize_commandrhZformatsZ run_commandZget_archive_filesZ copy_filerqrZDistutilsFileErrorrinforgrrfextendrcrabspathrr\popenreadlinestripsplitcloseZDistutilsExecErrorreprZspawnZdry_runrrZ move_filebasename)rZspec_dirZrpm_dirrZ spec_pathZsaved_dist_filesrsourceZ source_dirZrpm_cmdZ nvr_stringZsrc_rpmZ non_src_rpmZq_cmdoutZ binary_rpmsZ source_rpmlinelZstatusZ pyversionZsrpmfilenamerrrrruns                                          z bdist_rpm.runcCs"tjj|jtjj|S)N)rrrrbr)rrrrr _dist_pathszbdist_rpm._dist_pathc CsKd|jjd|jjjddd|jjd|jjdddd|jjg}tjd }d jd d |j D}d }d}|j||}||kr|j d|j d|d |j dddg|j r|j dn |j d|j d|jj d|jddg|jsy|jjs|j dn|j d|jxxdKD]p}t||j}t|tr|j d"|d#j|fq|d$k r|j d"||fqW|jjd%kr7|j d&|jj|jrT|j d'|j|jrz|j d(d#j|j|jr|j d)tjj|j|jr|j d*|j dd+|jjgd,|jtjjtj d-f}d.|} |j!rd/| } d0|} dLd4d5| fd6d7| fdMdNdOdPdQdRg } x| D]|\} } }t|| }|s|r_|j ddE| g|r|j t"|dFj#j$d q_|j |q_W|j ddGdHg|j%r|j dId#j|j%|j&rG|j ddJg|j |j&|S)SziGenerate the text of an RPM spec file and return it as a list of strings (one per line). z %define name z%define version -_z%define unmangled_version z%define release z Summary: zrpm --eval %{__os_install_post} cSs g|]}d|jqS)z %s \)r).0rrrr s z-bdist_rpm._make_spec_file..zbrp-python-bytecompile \ z%brp-python-bytecompile %{__python} \ z2# Workaround for http://bugs.python.org/issue14443z%define __os_install_post z Name: %{name}zVersion: %{version}zRelease: %{release}z-Source0: %{name}-%{unmangled_version}.tar.bz2z,Source0: %{name}-%{unmangled_version}.tar.gzz License: zGroup: z>BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildrootzPrefix: %{_prefix}zBuildArch: noarchz BuildArch: %sVendorPackagerProvidesRequires Conflicts Obsoletesz%s: %s NZUNKNOWNzUrl: zDistribution: zBuildRequires: zIcon: z AutoReq: 0z %descriptionz%s %srz%s buildzenv CFLAGS="$RPM_OPT_FLAGS" z>%s install -O1 --root=$RPM_BUILD_ROOT --record=INSTALLED_FILESr{rr&%setup -n %{name}-%{unmangled_version}ZbuildrsZinstallrtcleanrurm -rf $RPM_BUILD_ROOT verifyscriptrvprerwpostrxpreunrypostunrz%rz%files -f INSTALLED_FILESz%defattr(-,root,root)z%doc z %changelog)rrrrrr)r{rrr)rrur)rrvN)rrwN)rrxN)rryN)rrzN)'rrZ get_versionreplacerkZget_description subprocessZ getoutputr splitlinesrrrhZ get_licenserjrrgetattrlowerrrZget_urlrirrqrrrrZget_long_descriptionrcrargvropenreadrrorp)rZ spec_fileZ vendor_hookZproblemZfixedZ fixed_hookZfieldvalZdef_setup_callZ def_buildZ install_cmdZscript_optionsZrpm_optattrdefaultrrrrs          #        &       (    zbdist_rpm._make_spec_filecCs|s |Sg}x|jjdD]i}|j}|ddkr^|jd|gq&|ddkr~|j|q&|jd|q&W|ds|d=|S)zKFormat the changelog correctly and convert it to a list of strings rrrrrz )rrrr)rrpZ new_changelogrrrrr3s  zbdist_rpm._format_changelog)r Nr )r Nr )rrr)rNr)rNr)rNr)rNr)rNr)rNr)rNr)rNr )r!Nr")r#Nr$)r%Nr&)r'Nr()r)Nr*)r+Nr,)r-Nr.)r/Nr0)r1Nr2)r3Nr4)r5Nr6)r7Nr8)r9Nr:)r;r<r=)r>Nr?)r@NrA)rBNrC)rDNrE)rFNrG)rHNrI)rJNrK)rLNrM)rNNrO)rPNrQ)rRNrS)rTNrU)rVNrW)rXNrY)rZNr[)r\r]r^)__name__ __module__ __qualname__Z descriptionZ user_optionsZboolean_optionsZ negative_optrrrrrrrrrrrr s      -  -  r )__doc__rrrZdistutils.corerZdistutils.debugrZdistutils.utilrZdistutils.file_utilrZdistutils.errorsZdistutils.sysconfigrZ distutilsrr rrrrs$ PK!9u9#4command/__pycache__/install_lib.cpython-35.opt-2.pycnu[ ] @sdddlZddlZddlZddlmZddlmZdZGdddeZ dS)N)Command)DistutilsOptionErrorz.pyc @seZdZdZd*d+d,d-d.d/d0gZdd dgZdd iZddZddZddZ ddZ ddZ d d!Z d"d#Z d$d%Zd&d'Zd(d)ZdS)1 install_libz7install all Python modules (extensions and pure Python) install-dir=ddirectory to install to build-dir=b'build directory (where to install from)forcef-force installation (overwrite existing files)compileccompile .py to .pyc [default] no-compileNdon't compile .py files optimize=Olalso compile with optimization: -O1 for "python -O", -O2 for "python -OO", and -O0 to disable [default: -O0] skip-buildskip the build stepscCs:d|_d|_d|_d|_d|_d|_dS)Nr) install_dir build_dirr roptimize skip_build)selfr0/opt/alt/python35/lib64/python3.5/install_lib.pyinitialize_options3s      zinstall_lib.initialize_optionsc Cs|jddddddd|jdkr7d |_|jdkrOd |_t|jtsy+t|j|_|jdkrtWn$ttfk rtdYnXdS)Ninstall build_librrrr rrrTFrzoptimize must be 0, 1, or 2)r!r)rr)r r )rr)rr)rr)rr"r#)Zset_undefined_optionsrr isinstanceintAssertionError ValueErrorr)rrrrfinalize_options<s$    zinstall_lib.finalize_optionscCsB|j|j}|dk r>|jjr>|j|dS)N)buildr distributionhas_pure_modules byte_compile)routfilesrrrrunVs  zinstall_lib.runcCsE|jsA|jjr%|jd|jjrA|jddS)Nbuild_py build_ext)rr*r+Z run_commandhas_ext_modules)rrrrr)fs   zinstall_lib.buildcCsLtjj|jr0|j|j|j}n|jd|jdS|S)Nz3'%s' does not exist -- no Python modules to install)ospathisdirrZ copy_treerwarn)rr-rrrr ms   zinstall_lib.installc Cstjr|jddSddlm}|jdj}|jrm||ddd|jd|d|j |j dkr||d|j d|jd|d |j d|j dS) Nz%byte-compiling is disabled, skipping.r)r,r rr prefixdry_runverbose) sysdont_write_bytecoder5Zdistutils.utilr,get_finalized_commandrootrr r7rr8)rfilesr,Z install_rootrrrr,vs    zinstall_lib.byte_compilec Cs|s gS|j|}|j}t||}t|ttj}g}x4|D],} |jtjj|| |dqZW|S)N) r; get_outputsgetattrlenr2sepappendr3join) rZhas_anyZ build_cmdZ cmd_optionZ output_dirZ build_filesrZ prefix_lenZoutputsfilerrr_mutate_outputss  *zinstall_lib._mutate_outputscCsg}x|D]}tjjtjj|d}|tkrDq |jrl|jtjj |dd|j dkr |jtjj |d|j q W|S)Nr" optimizationr) r2r3splitextnormcasePYTHON_SOURCE_EXTENSIONrrB importlibutilcache_from_sourcer)rZ py_filenamesZbytecode_filesZpy_fileextrrr_bytecode_filenamess "  zinstall_lib._bytecode_filenamescCsu|j|jjdd|j}|jr?|j|}ng}|j|jjdd|j}|||S)Nr/r!r0)rEr*r+rrrOr1)rZ pure_outputsZbytecode_outputsZ ext_outputsrrrr>s   zinstall_lib.get_outputscCslg}|jjr7|jd}|j|j|jjrh|jd}|j|j|S)Nr/r0)r*r+r;extendr>r1)rZinputsr/r0rrr get_inputsszinstall_lib.get_inputs)rrr)rr r )r r r )rrr)rNr)rrr)rNr)__name__ __module__ __qualname__ descriptionZ user_optionsZboolean_optionsZ negative_optrr(r.r)r r,rErOr>rQrrrrrs*          r) r2importlib.utilrKr9Zdistutils.corerZdistutils.errorsrrJrrrrrs   PK!g91command/__pycache__/__init__.cpython-35.opt-2.pycnu[ ]@sCdddddddddd d d d d dddddgZdS)ZbuildZbuild_pyZ build_extZ build_clibZ build_scriptsZcleaninstallZ install_libZinstall_headersZinstall_scriptsZ install_dataZsdistregisterZbdistZ bdist_dumbZ bdist_rpmZ bdist_wininstcheckZuploadN)__all__rr-/opt/alt/python35/lib64/python3.5/__init__.pys$PK!n,n,1command/__pycache__/build_py.cpython-35.opt-1.pycnu[ Yf C@sdZddlZddlZddlZddlmZddlmZddlTddl m Z m Z ddl m Z Gdd d eZGd d d ee ZdS) zHdistutils.command.build_py Implements the Distutils 'build_py' command.N)glob)Command)*) convert_path Mixin2to3)logc@s*eZdZdZd8d9d:d;d<gZddgZddiZddZddZddZ ddZ ddZ ddZ ddZ dd Zd!d"Zd#d$Zd%d&Zd'd(Zd)d*Zd+d,Zd-d.d/Zd0d1Zd2d3Zd4d5Zd6d7Zd S)=build_pyz5"build" pure Python modules (copy to build directory) build-lib=ddirectory to "build" (copy) tocompileccompile .py to .pyc no-compileN!don't compile .py files [default] optimize=Olalso compile with optimization: -O1 for "python -O", -O2 for "python -OO", and -O0 to disable [default: -O0]forcef2forcibly build everything (ignore file timestamps)cCsLd|_d|_d|_d|_d|_d|_d|_d|_dS)Nr) build_lib py_modulespackage package_data package_dirr optimizer)selfr?/opt/alt/python35/lib64/python3.5/distutils/command/build_py.pyinitialize_options s       zbuild_py.initialize_optionsc Cs|jddd|jj|_|jj|_|jj|_i|_|jjrx3|jjjD]\}}t||j|ts z+build_py.get_data_files..) r"get_package_dirosr+joinrsplitlenfind_data_filesappend)rdatarsrc_dir build_dir filenamesr)r8rr$as %%zbuild_py.get_data_filescs|jjdg|jj|g}gxO|D]G}ttjj|t|}jfdd|Dq5WS)z6Return filenames for package's data files in 'src_dir'cs4g|]*}|krtjj|r|qSr)r;r+isfile)r6fn)filesrrr9s z,build_py.find_data_files..)rgetrr;r+r<rextend)rrrBZglobspatternZfilelistr)rHrr?ys !$zbuild_py.find_data_filescCsd}x|jD]v\}}}}xa|D]Y}tjj||}|jtjj||jtjj|||ddq)WqWdS)z$Copy data files into build directoryN preserve_modeF)r%r;r+r<mkpathdirname copy_file)rZlastdirrrBrCrDfilenametargetrrrr0s zbuild_py.build_package_datac Cs|jd}|js5|r.tjj|SdSng}x|ry|jdj|}Wn-tk r|jd|d|d=Yq>X|jd|tjj|Sq>W|jjd}|dk r|jd||rtjj|SdSdS)zReturn the directory, relative to the top of the source distribution, where package 'package' should be found (at least according to the 'package_dir' option, if any).r4rErr5NrR)r=rr;r+r<KeyErrorinsertrI)rrr+tailZpdirrrrr:s(      zbuild_py.get_package_dircCs|dkrPtjj|s.td|tjj|sPtd||rtjj|d}tjj|r|Stjdd|dS)NrEz%package directory '%s' does not existz>supposed package directory '%s' exists, but is not a directoryz __init__.pyz!package init file '%s' not found z(or not a regular file)) r;r+existsZDistutilsFileErrorisdirr<rFrwarn)rrrinit_pyrrr check_packages     zbuild_py.check_packagecCs1tjj|s)tjd||dSdSdS)Nz!file %s (for module %s) not foundFT)r;r+rFrrX)rmodule module_filerrr check_moduleszbuild_py.check_modulec Cs|j||ttjj|d}g}tjj|jj}xx|D]p}tjj|}||krtjjtjj |d}|j |||fqP|j d|qPW|S)Nz*.pyrz excluding %s) rZrr;r+r<abspathr!Z script_namesplitextbasenamer@Z debug_print) rrrZ module_filesmodulesZ setup_scriptrZabs_fr[rrrfind_package_moduless  "zbuild_py.find_package_modulesc Csi}g}x |jD]}|jd}dj|dd}|d}y||\}}Wn'tk r|j|}d}YnX|s|j||} |df||<| r|j|d| ftjj||d} |j || sq|j||| fqW|S)aFinds individually-specified Python modules, ie. those listed by module name in 'self.py_modules'. Returns a list of tuples (package, module_base, filename): 'package' is a tuple of the path through package-space to the module; 'module_base' is the bare (no packages, no dots) module name, and 'filename' is the path to the ".py" file (relative to the distribution root) that implements the module. r4rr5__init__z.pyrRrR) rr=r<rSr:rZr@r;r+r]) rr"rar[r+rZ module_baserZcheckedrYr\rrr find_moduless*   zbuild_py.find_modulescCsqg}|jr"|j|j|jrmx?|jD]4}|j|}|j||}|j|q5W|S)a4Compute the list of all modules that will be built, whether they are specified one-module-at-a-time ('self.py_modules') or by whole packages ('self.packages'). Return a list of tuples (package, module, module_file), just like 'find_modules()' and 'find_package_modules()' do.)rrJrdr"r:rb)rrarrmrrrfind_all_moduless  zbuild_py.find_all_modulescCsdd|jDS)NcSsg|]}|dqS)r5rRr)r6r[rrrr9-s z-build_py.get_source_files..)rf)rrrrget_source_files,szbuild_py.get_source_filescCs.|gt||dg}tjj|S)Nz.py)listr;r+r<)rrCrr[Z outfile_pathrrrget_module_outfile/szbuild_py.get_module_outfiler5cCs|j}g}x|D]\}}}|jd}|j|j||}|j||r|jr|jtjj|dd|j dkr|jtjj|d|j qW|dd|j D7}|S)Nr4 optimizationrErcSs>g|]4\}}}}|D]}tjj||qqSr)r;r+r<)r6rrBrCrDrPrrrr9Cs z(build_py.get_outputs..) rfr=rirr@r importlibutilcache_from_sourcerr%)rr-raZoutputsrr[r\rPrrrr23s"    zbuild_py.get_outputscCst|tr!|jd}n!t|ttfsBtd|j|j||}tj j |}|j ||j ||ddS)Nr4z:'package' must be a string (dot-separated), list, or tuplerLr) r&strr=rhtuple TypeErrorrirr;r+rNrMrO)rr[r\rZoutfiledirrrr build_moduleJs  zbuild_py.build_modulecCs=|j}x*|D]"\}}}|j|||qWdS)N)rdrr)rrarr[r\rrrr.Ys zbuild_py.build_modulescCsfx_|jD]T}|j|}|j||}x*|D]"\}}}|j|||q8Wq WdS)N)r"r:rbrr)rrrraZpackage_r[r\rrrr/bs  zbuild_py.build_packagesc Cstjr|jddSddlm}|j}|d tjkrS|tj}|jr||ddd|j d|d|j |j dkr||d|j d|j d|d|j dS) Nz%byte-compiling is disabled, skipping.r)r1r5rrprefixdry_runrR) sysdont_write_bytecoderXdistutils.utilr1rr;sepr rrtr)rrHr1rsrrrr1vs     zbuild_py.byte_compile)r r r )r r r)rNr)rrr)rrr)__name__ __module__ __qualname__Z descriptionZ user_optionsZboolean_optionsZ negative_optr r,r3r$r?r0r:rZr]rbrdrfrgrir2rrr.r/r1rrrrrs8        '    4     rc@s(eZdZddZddZdS) build_py_2to3cCsfg|_|jr|j|jr9|j|j|j|j|j|jdddS)Nr-r) updated_filesrr.r"r/r0Zrun_2to3r1r2)rrrrr3s      zbuild_py_2to3.runcCs:tj||||}|dr6|jj|d|S)Nr5r)rrrr}r@)rr[r\rresrrrrrs zbuild_py_2to3.build_moduleN)ryrzr{r3rrrrrrr|s  r|)__doc__r;importlib.utilrkrurZdistutils.corerZdistutils.errorsrwrrZ distutilsrrr|rrrrs    |PK! .command/__pycache__/install_lib.cpython-35.pycnu[ Yf @sjdZddlZddlZddlZddlmZddlmZdZ GdddeZ dS)zkdistutils.command.install_lib Implements the Distutils 'install_lib' command (install all Python modules).N)Command)DistutilsOptionErrorz.pyc @seZdZdZd*d+d,d-d.d/d0gZdd dgZdd iZddZddZddZ ddZ ddZ d d!Z d"d#Z d$d%Zd&d'Zd(d)ZdS)1 install_libz7install all Python modules (extensions and pure Python) install-dir=ddirectory to install to build-dir=b'build directory (where to install from)forcef-force installation (overwrite existing files)compileccompile .py to .pyc [default] no-compileNdon't compile .py files optimize=Olalso compile with optimization: -O1 for "python -O", -O2 for "python -OO", and -O0 to disable [default: -O0] skip-buildskip the build stepscCs:d|_d|_d|_d|_d|_d|_dS)Nr) install_dir build_dirr roptimize skip_build)selfrB/opt/alt/python35/lib64/python3.5/distutils/command/install_lib.pyinitialize_options3s      zinstall_lib.initialize_optionsc Cs|jddddddd|jdkr7d |_|jdkrOd |_t|jtsy+t|j|_|jdkrtWn$ttfk rtdYnXdS)Ninstall build_librrrr rrrTFrzoptimize must be 0, 1, or 2)r!r)rr)r r )rr)rr)rr)rr"r#)Zset_undefined_optionsrr isinstanceintAssertionError ValueErrorr)rrrrfinalize_options<s$    zinstall_lib.finalize_optionscCsB|j|j}|dk r>|jjr>|j|dS)N)buildr distributionhas_pure_modules byte_compile)routfilesrrrrunVs  zinstall_lib.runcCsE|jsA|jjr%|jd|jjrA|jddS)Nbuild_py build_ext)rr*r+Z run_commandhas_ext_modules)rrrrr)fs   zinstall_lib.buildcCsLtjj|jr0|j|j|j}n|jd|jdS|S)Nz3'%s' does not exist -- no Python modules to install)ospathisdirrZ copy_treerwarn)rr-rrrr ms   zinstall_lib.installc Cstjr|jddSddlm}|jdj}|jrm||ddd|jd|d|j |j dkr||d|j d|jd|d |j d|j dS) Nz%byte-compiling is disabled, skipping.r)r,r rr prefixdry_runverbose) sysdont_write_bytecoder5Zdistutils.utilr,get_finalized_commandrootrr r7rr8)rfilesr,Z install_rootrrrr,vs    zinstall_lib.byte_compilec Cs|s gS|j|}|j}t||}t|ttj}g}x4|D],} |jtjj|| |dqZW|S)N) r; get_outputsgetattrlenr2sepappendr3join) rZhas_anyZ build_cmdZ cmd_optionZ output_dirZ build_filesrZ prefix_lenZoutputsfilerrr_mutate_outputss  *zinstall_lib._mutate_outputscCsg}x|D]}tjjtjj|d}|tkrDq |jrl|jtjj |dd|j dkr |jtjj |d|j q W|S)Nr" optimizationr) r2r3splitextnormcasePYTHON_SOURCE_EXTENSIONrrB importlibutilcache_from_sourcer)rZ py_filenamesZbytecode_filesZpy_fileZextrrr_bytecode_filenamess "  zinstall_lib._bytecode_filenamescCsu|j|jjdd|j}|jr?|j|}ng}|j|jjdd|j}|||S)zReturn the list of files that would be installed if this command were actually run. Not affected by the "dry-run" flag or whether modules have actually been built yet. r/r!r0)rEr*r+rrrNr1)rZ pure_outputsZbytecode_outputsZ ext_outputsrrrr>s   zinstall_lib.get_outputscCslg}|jjr7|jd}|j|j|jjrh|jd}|j|j|S)zGet the list of files that are input to this command, ie. the files that get installed as they are named in the build tree. The files in this list correspond one-to-one to the output filenames returned by 'get_outputs()'. r/r0)r*r+r;extendr>r1)rZinputsr/r0rrr get_inputsszinstall_lib.get_inputs)rrr)rr r )r r r )rrr)rNr)rrr)rNr)__name__ __module__ __qualname__Z descriptionZ user_optionsZboolean_optionsZ negative_optrr(r.r)r r,rErNr>rPrrrrrs*          r) __doc__r2importlib.utilrKr9Zdistutils.corerZdistutils.errorsrrJrrrrrs   PK!8command/__pycache__/install_scripts.cpython-35.opt-2.pycnu[ ]@sVddlZddlmZddlmZddlmZGdddeZdS)N)Command)log)ST_MODEc@speZdZdZddddgZdd gZddZddZddZddZ ddZ d S)install_scriptsz%install scripts (Python or otherwise) install-dir=ddirectory to install scripts to build-dir=b'build directory (where to install from)forcef-force installation (overwrite existing files) skip-buildNskip the build stepscCs(d|_d|_d|_d|_dS)Nr) install_dirr build_dir skip_build)selfr4/opt/alt/python35/lib64/python3.5/install_scripts.pyinitialize_optionss   z"install_scripts.initialize_optionscCs*|jdd |jdd d d dS) NZbuild build_scriptsrinstallrrr r)rr)rr)r r )rr)Zset_undefined_options)rrrrfinalize_options!s  z install_scripts.finalize_optionscCs|js|jd|j|j|j|_tjdkrxn|jD]`}|j rot j d|qMtj |t dBd@}t j d||tj||qMWdS)Nrposixzchanging mode of %simizchanging mode of %s to %o)rZ run_commandZ copy_treerroutfilesosname get_outputsdry_runrinfostatrchmod)rfilemoderrrrun)s   zinstall_scripts.runcCs|jjpgS)N)Z distributionscripts)rrrr get_inputs8szinstall_scripts.get_inputscCs |jp gS)N)r)rrrrr;szinstall_scripts.get_outputs)rrr)r r r )r r r)rNr) __name__ __module__ __qualname__ descriptionZ user_optionsZboolean_optionsrrr&r(rrrrrrs       r)rZdistutils.corerZ distutilsrr"rrrrrrs PK!(command/__pycache__/bdist.cpython-35.pycnu[ Yf@sbdZddlZddlmZddlTddlmZddZGdd d eZdS) zidistutils.command.bdist Implements the Distutils 'bdist' command (create a built [binary] distribution).N)Command)*) get_platformcCslddlm}g}x6tjD]+}|jd|dtj|dfq W||}|jddS)zFPrint list of available formats (arguments to "--format" option). r) FancyGetoptzformats=Nz'List of available distribution formats:)Zdistutils.fancy_getoptrbdistformat_commandsappendformat_commandZ print_help)rformatsformatZpretty_printerr dd?dd@d dAd!dBd"dCddDd#dEi Z d0d1Z d2d3Zd4d5Zd S)Frz$create a built (binary) distribution bdist-base=b4temporary directory for creating built distributionsz plat-name=pz;platform name to embed in generated filenames (default: %s)formats=N/formats for distribution (comma-separated list) dist-dir=d=directory to put final built distributions in [default: dist] skip-build2skip rebuilding everything (for testing/debugging)owner=u@Owner name used when creating a tar file [default: current user]group=gAGroup name used when creating a tar file [default: current group]z help-formatsz$lists available distribution formats bdist_rpmposixZgztarntzipZrpmZbztarZxztarZztarZtarZwininstZmsiRPM distribution bdist_dumbgzip'ed tar filebzip2'ed tar filexz'ed tar filecompressed tar filetar file bdist_wininstWindows executable installerZIP file bdist_msiMicrosoft InstallercCsCd|_d|_d|_d|_d|_d|_d|_dS)Nr) bdist_base plat_namer dist_dir skip_buildgroupowner)selfr r rinitialize_optionsQs      zbdist.initialize_optionsc Cs|jdkr<|jr't|_n|jdj|_|jdkr||jdj}tjj|d|j|_|j d|j dkry|j tj g|_ Wn%t k rtdtj YnX|jdkrd|_dS)NZbuildzbdist.r z;don't know how to create built distributions on platform %sZdist)r2r4rZget_finalized_commandr1 build_baseospathjoinZensure_string_listr default_formatnameKeyErrorZDistutilsPlatformErrorr3)r7r9r r rfinalize_optionsZs$    zbdist.finalize_optionsc Cs g}xR|jD]G}y|j|j|dWqtk rVtd|YqXqWxtt|jD]}||}|j|}||jkr|j||_ |dkr|j |_ |j |_ |||ddkrd|_ |j |qqWdS)Nrzinvalid format '%s'r&r)r r r r?ZDistutilsOptionErrorrangelenZreinitialize_commandno_format_optionr r6r5Z keep_tempZ run_command)r7Zcommandsr iZcmd_nameZsub_cmdr r rrunvs"      z bdist.run)rrr)rNr)rrr)rNr)rrr)rrr )r!)r!r%)r&r')r&r()r&r))r&r*)r&r+)r,r-)r&r.)r/r0)__name__ __module__ __qualname__Z descriptionrZ user_optionsZboolean_optionsrZ help_optionsrCr=rr r8r@rEr r r rrsJ       r) __doc__r:Zdistutils.corerZdistutils.errorsZdistutils.utilrrrr r r rs    PK!  .command/__pycache__/clean.cpython-35.opt-1.pycnu[ Yf @s\dZddlZddlmZddlmZddlmZGdddeZdS)zBdistutils.command.clean Implements the Distutils 'clean' command.N)Command) remove_tree)logc@s[eZdZdZddddddgZdgZddZddZddZdS)cleanz-clean up temporary files from 'build' command build-base=b2base build directory (default: 'build.build-base') build-lib=N}tjj|rt|d|jqctj d|qcW|jsy'tj |jtjd|jWntk rYnXdS)Ndry_runz%'%s' does not exist -- can't clean itz removing '%s')ospathexistsrrrrdebugrrrrwarnrmdirrinfoOSError)rZ directoryrrrrun1s$        z clean.run)rrr)r Nr )r r r )rNr)rNr)rrr) __name__ __module__ __qualname__Z descriptionZ user_optionsZboolean_optionsrrr(rrrrr s"     r) __doc__r Zdistutils.corerZdistutils.dir_utilrZ distutilsrrrrrrs  PK!_g++/command/__pycache__/config.cpython-35.opt-1.pycnu[ Yf$3@sdZddlZddlZddlZddlmZddlmZddlm Z ddl m Z ddd d iZ Gd d d eZ dd dZdS)adistutils.command.config Implements the Distutils 'config' command, a (mostly) empty command class that exists mainly to be sub-classed by specific module distributions and applications. The idea is that while every "config" command is different, at least they're all named the same, and users always see "config" in the list of standard commands. Also, this is a good place to put common configure-like tasks: "try to compile this C code", or "figure out where this header file lives". N)Command)DistutilsExecError)customize_compiler)logcz.czc++z.cxxc @sieZdZdZd>d?d@dAdBdCdDdEdFg ZddZddZddZd d!Zd"d#Z d$d%Z d&d'Z d(d)Z d*d+Z dddd,d-d.Zdddd,d/d0Zddd,d1d2Zddddd,d3d4Zddddd,d5d6Zddddd7d7d8d9Zdddgd:d;Zddd,d<d=ZdS)Gconfigzprepare to build compiler=Nspecify the compiler typecc=specify the compiler executable include-dirs=I.list of directories to search for header filesdefine=DC preprocessor macros to defineundef=U!C preprocessor macros to undefine libraries=l!external C libraries to link with library-dirs=L.directories to search for external C librariesnoisy1show every action (compile, link, run, ...) taken dump-source=dump generated source files before attempting to compile themcCsLd|_d|_d|_d|_d|_d|_d|_g|_dS)N)compilerZcc include_dirs libraries library_dirsr dump_source temp_files)selfr'=/opt/alt/python35/lib64/python3.5/distutils/command/config.pyinitialize_options3s       zconfig.initialize_optionscCs|jdkr'|jjpg|_n*t|jtrQ|jjtj|_|jdkrlg|_n!t|jtr|jg|_|jdkrg|_n*t|jtr|jjtj|_dS)N) r!Z distribution isinstancestrsplitospathsepr"r#)r&r'r'r(finalize_optionsBs  zconfig.finalize_optionscCsdS)Nr')r&r'r'r(runRsz config.runcCsddlm}m}t|j|s|d|jd|jdd|_t|j|jru|jj|j|j r|jj |j |j r|jj |j dS)z^Check that 'self.compiler' really is a CCompiler object; if not, make it one. r) CCompiler new_compilerr dry_runZforcerN) distutils.ccompilerr1r2r*r r3rr!Zset_include_dirsr"Z set_librariesr#Zset_library_dirs)r&r1r2r'r'r(_check_compilerYs    zconfig._check_compilercCsdt|}t|d}|rRx|D]}|jd|q*W|jd|j||ddkr||jd|j|S)NZ _configtestwz#include <%s>  r)LANG_EXTopenwriteclose)r&bodyheaderslangfilenamefileheaderr'r'r(_gen_temp_sourcefileks     zconfig._gen_temp_sourcefilecCsT|j|||}d}|jj||g|jj||d|||fS)Nz _configtest.ir!)rCr%extendr Z preprocess)r&r=r>r!r?srcoutr'r'r( _preprocessxs zconfig._preprocesscCs|j|||}|jr/t|d||jj|g\}|jj||g|jj|gd|||fS)Nzcompiling '%s':r!)rCr$ dump_filer Zobject_filenamesr%rDcompile)r&r=r>r!r?rEobjr'r'r(_compiles zconfig._compilec Cs|j||||\}}tjjtjj|d} |jj|g| d|d|d||jjdk r| |jj} |jj | ||| fS)Nrr"r#Z target_lang) rKr-pathsplitextbasenamer Zlink_executableZ exe_extensionr%append) r&r=r>r!r"r#r?rErJprogr'r'r(_links"z config._linkc Gsl|s|j}g|_tjddj|x4|D],}ytj|Wq8tk rcYq8Xq8WdS)Nz removing: %s )r%rinfojoinr-removeOSError)r& filenamesr@r'r'r(_cleans    z config._cleanrc Cscddlm}|jd}y|j||||Wn|k rTd}YnX|j|S)aQConstruct a source file from 'body' (a string containing lines of C/C++ code) and 'headers' (a list of header files to include) and run it through the preprocessor. Return true if the preprocessor succeeded, false if there were any errors. ('body' probably isn't of much use, but what the heck.) r) CompileErrorTF)r4rYr5rGrX)r&r=r>r!r?rYokr'r'r(try_cpps    zconfig.try_cppc Cs|j|j||||\}}t|trFtj|}t|}d} x3|j} | dkrtP|j| r[d} Pq[W|j |j | S)aConstruct a source file (just like 'try_cpp()'), run it through the preprocessor, and return true if any line of the output matches 'pattern'. 'pattern' should either be a compiled regex object or a string containing a regex. If both 'body' and 'headers' are None, preprocesses an empty file -- which can be useful to determine the symbols the preprocessor and compiler set by default. FT) r5rGr*r+rerIr:readlinesearchr<rX) r&patternr=r>r!r?rErFrAmatchliner'r'r( search_cpps      zconfig.search_cppc Cs|ddlm}|jy |j||||d}Wn|k rTd}YnXtj|rgdpjd|j|S)zwTry to compile a source file built from 'body' and 'headers'. Return true on success, false otherwise. r)rYTFzsuccess!zfailure.)r4rYr5rKrrSrX)r&r=r>r!r?rYrZr'r'r( try_compiles     zconfig.try_compilec Csddlm}m}|jy&|j||||||d} Wn||fk rfd} YnXtj| rydp|d|j| S)zTry to compile and link a source file, built from 'body' and 'headers', to executable form. Return true on success, false otherwise. r)rY LinkErrorTFzsuccess!zfailure.)r4rYrer5rQrrSrX) r&r=r>r!r"r#r?rYrerZr'r'r(try_links     zconfig.try_linkc Csddlm}m}|jyA|j||||||\} } } |j| gd} Wn!||tfk rd} YnXtj| rdpd|j | S)zTry to compile, link to an executable, and run a program built from 'body' and 'headers'. Return true on success, false otherwise. r)rYreTFzsuccess!zfailure.) r4rYrer5rQZspawnrrrSrX) r&r=r>r!r"r#r?rYrerErJZexerZr'r'r(try_runs    zconfig.try_runrc Cs|jg}|r'|jd||jd|rN|jd|n|jd||jddj|d}|j|||||S)aDetermine if function 'func' is available by constructing a source file that refers to 'func', and compiles and links it. If everything succeeds, returns true; otherwise returns false. The constructed source file starts out by including the header files listed in 'headers'. If 'decl' is true, it then declares 'func' (as "int func()"); you probably shouldn't supply 'headers' and set 'decl' true in the same call, or you might get errors about a conflicting declarations for 'func'. Finally, the constructed 'main()' function either references 'func' or (if 'call' is true) calls it. 'libraries' and 'library_dirs' are used when linking. z int %s ();z int main () {z %s();z %s;}r7)r5rOrTrf) r&funcr>r!r"r#ZdeclZcallr=r'r'r( check_funcs   zconfig.check_funccCs*|j|jd|||g||S)aDetermine if 'library' is available to be linked against, without actually checking that any particular symbols are provided by it. 'headers' will be used in constructing the source file to be compiled, but the only effect of this is to check if all the header files listed are available. Any libraries listed in 'other_libraries' will be included in the link, in case 'library' has symbols that depend on other libraries. zint main (void) { })r5rf)r&Zlibraryr#r>r!Zother_librariesr'r'r( check_lib6s zconfig.check_libcCs|jddd|gd|S)zDetermine if the system header file named by 'header_file' exists and can be found by the preprocessor; return true if so, false otherwise. r=z /* No body */r>r!)r[)r&rBr!r#r?r'r'r( check_headerDszconfig.check_header)rNr )r Nr )r r r)rrr)rrr)rrr)rrr)rNr)rNr)__name__ __module__ __qualname__Z descriptionZ user_optionsr)r/r0r5rCrGrKrQrXr[rcrdrfrgrjrkrlr'r'r'r(rsT             rc Csb|dkr tjd|n tj|t|}ztj|jWd|jXdS)zjDumps a file content into log.info. If head is not None, will be dumped before the file content. Nz%s)rrSr:readr<)r@headrAr'r'r(rHNs   rH)__doc__sysr-r]Zdistutils.corerZdistutils.errorsrZdistutils.sysconfigrZ distutilsrr9rrHr'r'r'r( s$:PK!-command/__pycache__/build_clib.cpython-35.pycnu[ YfV@srdZddlZddlmZddlTddlmZddlmZddZ Gd d d eZ dS) zdistutils.command.build_clib Implements the Distutils 'build_clib' command, to build a C/C++ library that is included in the module distribution and needed by an extension module.N)Command)*)customize_compiler)logcCsddlm}|dS)Nr)show_compilers)distutils.ccompilerr)rrA/opt/alt/python35/lib64/python3.5/distutils/command/build_clib.pyrsrc@seZdZdZd"d#d$d%d&gZdd gZdddefgZddZddZ ddZ ddZ ddZ ddZ d d!ZdS)' build_clibz/build C/C++ libraries used by Python extensions build-clib=b%directory to build C/C++ libraries to build-temp=t,directory to put temporary build by-productsdebugg"compile with debugging informationforcef2forcibly build everything (ignore file timestamps) compiler=cspecify the compiler typez help-compilerNzlist available compilerscCsUd|_d|_d|_d|_d|_d|_d|_d|_d|_dS)Nr) r build_temp libraries include_dirsdefineundefrrcompiler)selfrrr initialize_options4s        zbuild_clib.initialize_optionscCs|jdddd d d |jj|_|jrD|j|j|jdkrh|jjpbg|_t|jtr|jjtj |_dS) NZbuildrr rrr)rr )rr)rr)rr)rr) Zset_undefined_optionsZ distributionrcheck_library_listr isinstancestrsplitospathsep)r rrr finalize_optionsDs  zbuild_clib.finalize_optionscCs|js dSddlm}|d|jd|jd|j|_t|j|jdk rs|jj|j|j dk rx*|j D]\}}|jj ||qW|j dk rx!|j D]}|jj |qW|j |jdS)Nr) new_compilerrdry_runr)rrr)rr*rrrZset_include_dirsrZ define_macrorZundefine_macrobuild_libraries)r r)namevalueZmacrorrr run^s    zbuild_clib.runcCst|tstdx|D]}t|t rVt|dkrVtd|\}}t|ts}tdd|kstjdkrtj|krtd|dt|ts"tdq"Wd S) a`Ensure that the list of libraries is valid. `library` is presumably provided as a command option 'libraries'. This method checks that it is a list of 2-tuples, where the tuples are (library_name, build_info_dict). Raise DistutilsSetupError if the structure is invalid anywhere; just returns otherwise. z+'libraries' option must be a list of tuplesz*each element of 'libraries' must a 2-tuplezNfirst element of each tuple in 'libraries' must be a string (the library name)/z;bad library name '%s': may not contain directory separatorsrzMsecond element of each tuple in 'libraries' must be a dictionary (build info)N) r#listDistutilsSetupErrortuplelenr$r&sepdict)r rlibr, build_inforrr r"vs"   "   *zbuild_clib.check_library_listcCs>|js dSg}x$|jD]\}}|j|qW|S)N)rappend)r Z lib_nameslib_namer8rrr get_library_namess  zbuild_clib.get_library_namescCs|j|jg}xe|jD]Z\}}|jd}|dks]t|ttf rmtd||j|q W|S)Nsourceszfin 'libraries' option (library '%s'), 'sources' must be present and must be a list of source filenames)r"rgetr#r1r3r2extend)r filenamesr:r8r<rrr get_source_filess" zbuild_clib.get_source_filesc Csx|D]\}}|jd}|dksDt|ttf rTtd|t|}tjd||jd}|jd}|jj|d|j d|d|d|j }|jj ||d|j d|j qWdS)Nr<zfin 'libraries' option (library '%s'), 'sources' must be present and must be a list of source filenameszbuilding '%s' librarymacrosrZ output_dirr) r=r#r1r3r2rinforcompilerrZcreate_static_libr )r rr:r8r<rArZobjectsrrr r+s$"     zbuild_clib.build_libraries)r r r )rrr)rrr)rrr)rrr)__name__ __module__ __qualname__Z descriptionZ user_optionsZboolean_optionsrZ help_optionsr!r(r.r"r;r@r+rrrr r s*       $ r ) __doc__r&Zdistutils.corerZdistutils.errorsZdistutils.sysconfigrZ distutilsrrr rrrr s   PK!kjn n 9command/__pycache__/install_egg_info.cpython-35.opt-1.pycnu[ Yf" @sdZddlmZddlmZmZddlZddlZddlZGdddeZ ddZ d d Z d d Z dS) zdistutils.command.install_egg_info Implements the Distutils 'install_egg_info' command, for installing a package's PKG-INFO metadata.)Command)logdir_utilNc@sUeZdZdZdZdgZddZdd Zd d Zd d Z dS)install_egg_infoz)Install an .egg-info file for the packagez8Install package's PKG-INFO metadata as an .egg-info file install-dir=ddirectory to install tocCs d|_dS)N) install_dir)selfr G/opt/alt/python35/lib64/python3.5/distutils/command/install_egg_info.pyinitialize_optionssz#install_egg_info.initialize_optionscCs|jdddtt|jjtt|jjtjddf}t j j |j ||_ |j g|_dS)NZ install_libr z%s-%s-py%s.egg-info)r r )Zset_undefined_options to_filename safe_name distributionZget_name safe_versionZ get_versionsysversionospathjoinr targetoutputs)r basenamer r r finalize_optionssz!install_egg_info.finalize_optionsc Cs|j}tjj|rGtjj| rGtj|d|jnmtjj|r||j tj |jfd|n8tjj|j s|j tj |j fd|j t jd||jst|ddd}|jjj|WdQRXdS)Ndry_runz Removing z Creating z Writing %swencodingzUTF-8)rrrisdirislinkrZ remove_treerexistsZexecuteunlinkr makedirsrinfoopenrZmetadataZwrite_pkg_file)r rfr r r run s %# zinstall_egg_info.runcCs|jS)N)r)r r r r get_outputs.szinstall_egg_info.get_outputsN)rrr) __name__ __module__ __qualname____doc__Z descriptionZ user_optionsr rr'r(r r r r r s    rcCstjdd|S)zConvert an arbitrary string to a standard distribution name Any runs of non-alphanumeric/. characters are replaced with a single '-'. z[^A-Za-z0-9.]+-)resub)namer r r r6srcCs%|jdd}tjdd|S)zConvert an arbitrary string to a standard version string Spaces become dots, and all other non-alphanumeric characters become dashes, with runs of multiple dashes condensed to a single dash.  .z[^A-Za-z0-9.]+r-)replacer.r/)rr r r r>srcCs|jddS)z|Convert a project or version name to its filename-escaped form Any '-' characters are currently replaced with '_'. r-_)r3)r0r r r rHsr) r,Z distutils.cmdrZ distutilsrrrrr.rrrrr r r r s$+  PK!<"JG6G60command/__pycache__/install.cpython-35.opt-2.pycnu[ $Yfg @sddlZddlZddlmZddlmZddlmZddlm Z ddl m Z ddl m Z ddlmZmZmZdd lmZdd l mZdd lmZdd lmZd ZddddddddddiZdddddddddddidddddddddddid eiZerdd!dd!dd"dd#dd$ied%d?Zd@dAZdBdCZdDdEZdFdGZdHdIZdJdKZdLdMZdNdOZdPdQZdRdSZdTdUZdVdWZdXefdYefdZefd[efd\d]d^fgZdS)oinstallz'install everything from build directoryprefix=Ninstallation prefix exec-prefix=.(Unix only) prefix for platform-specific fileshome=+(Unix only) home directory to install under install-base=;base installation directory (instead of --prefix or --home)zinstall-platbase=z8base installation directory for platform-specific files z$(instead of --exec-prefix or --home)root==z %s: %sr) rZdistutils.fancy_getoptrrdebug user_options negative_opt translategetattr)rUmsgroptZopt_namevalrVrVrWrjss  zinstall.dump_dirscCs|jdk s|jdk r|jdkrK|jdkrK|jdksx|jdksx|jdksx|jdkrtddS|j r|j dkrt d|j |_|_|j dn|j dk r|j |_|_|j dn|jdkr^|jdk r+tdtjjtj|_tjjtj|_n|jdkry|j|_|j|_|j|_|j ddS)NzPinstall-base or install-platbase supplied, but installation scheme is incompletez$User base directory is not specifiedrrz*must not supply exec-prefix without prefixr)rBrCrHrErFrGrIrJr r=rKr select_schemerAr?r@rgr|normpathrm)rUrVrVrWrks<       zinstall.finalize_unixc Cs|jrN|jdkr$td|j|_|_|jtjdn|jdk r|j|_|_|jdnv|j dkrtj j t j |_ |j |_|_y|jtjWn%t k rtdtjYnXdS)Nz$User base directory is not specified_userrz)I don't know how to install stuff on '%s')r=rKrrBrCrrgrhrAr?r|rrmKeyError)rUrVrVrWrls"   zinstall.finalize_othercCsRt|}xAtD]9}d|}t||dkrt||||qWdS)Ninstall_)INSTALL_SCHEMES SCHEME_KEYSrsetattr)rUrhschemekeyZattrnamerVrVrWrs    zinstall.select_schemecCsx{|D]s}t||}|dk rtjdksFtjdkrXtjj|}t||j}t|||qWdS)NrYr)rrgrhr| expanduserr rsr)rUZattrsattrrrVrVrW _expand_attrss  zinstall._expand_attrscCs|jdddgdS)NrBrCrD)r)rUrVrVrWruszinstall.expand_basedirscCs#|jddddddgdS)NrErFrHrGrIrJ)r)rUrVrVrWrws zinstall.expand_dirscGs>x7|D]/}d|}t||tt||qWdS)Nr)rrr)rUnamesrhrrVrVrWrys  zinstall.convert_pathscCs|jdkr|jj|_|jdk rt|jtrT|jjd|_t|jdkr}|jd}}n3t|jdkr|j\}}n tdt|}n d}d}||_||_ dS)N,r>rr_zY'extra_path' option must be a list, tuple, or comma-separated string with 1 or 2 elementsrZ) rNrq isinstancestrrolenr r path_filer~)rUrr~rVrVrWrzs   zinstall.handle_extra_pathc GsDx=|D]5}d|}t||t|jt||qWdS)Nr)rr rDr)rUrrhrrVrVrWrs  zinstall.change_rootscCs|js dSttjjd}x`|jjD]O\}}|j|r5tjj| r5|j d|tj |dq5WdS)N~zos.makedirs('%s', 0o700)i) r=rrgr|rrsitems startswithisdirZ debug_printmakedirs)rUrArhr|rVrVrWrx s "zinstall.create_home_pathcCs|jsO|jd|jjdj}|jrO|tkrOtdx!|jD]}|j|q\W|j r|j |j r |j }|j rt|j }x2tt|D]}|||d||szinstall.)rNr)rNr)rNr)r Nr!)r"Nr#)r$Nr%)r&Nr')r(Nr))r*Nr+)r,Nr-)r.r/r0)r1Nr2)r3r4r5)r6r7r8)r9Nr:)r;Nr<) __name__ __module__ __qualname__ descriptionrZboolean_optionsrtrrrrXrrjrkrlrrrurwryrzrrxrrrrrrrrZ sub_commandsrVrVrVrWrIs      M  (       ,          r)rrrrr)rmrgZ distutilsrZdistutils.corerZdistutils.debugrZdistutils.sysconfigrZdistutils.errorsrZdistutils.file_utilrZdistutils.utilrr r r r Zsiter rrtZWINDOWS_SCHEMErrrrVrVrVrWsZ      PK!Qii3command/__pycache__/bdist_dumb.cpython-35.opt-1.pycnu[ Yf1@sdZddlZddlmZddlmZddlmZmZddl Tddl m Z ddl m Z Gd d d eZdS) zdistutils.command.bdist_dumb Implements the Distutils 'bdist_dumb' command (create a "dumb" built distribution -- i.e., just an archive to be unpacked under $prefix or $exec_prefix).N)Command) get_platform) remove_treeensure_relative)*)get_python_version)logc @seZdZdZd&dddefd'd d d dfd(d)d*d+d,g Zd ddgZddddiZd d!Zd"d#Z d$d%Z dS)- bdist_dumbz"create a "dumb" built distribution bdist-dir=d1temporary directory for creating the distributionz plat-name=pz;platform name to embed in generated filenames (default: %s)format=f>archive format to create (tar, gztar, bztar, xztar, ztar, zip)z keep-tempkz/keep the pseudo-installation tree around after z!creating the distribution archive dist-dir=-directory to put final built distributions in skip-buildN2skip rebuilding everything (for testing/debugging)relative6build the archive using relative paths(default: false)owner=u@Owner name used when creating a tar file [default: current user]group=gAGroup name used when creating a tar file [default: current group]posixZgztarntzipcCsUd|_d|_d|_d|_d|_d|_d|_d|_d|_dS)Nr) bdist_dir plat_nameformat keep_tempdist_dir skip_buildrownergroup)selfr*A/opt/alt/python35/lib64/python3.5/distutils/command/bdist_dumb.pyinitialize_options2s        zbdist_dumb.initialize_optionscCs|jdkr9|jdj}tjj|d|_|jdkry|jtj|_Wn%t k rt dtjYnX|j dddd dS) NZbdistZdumbz@don't know how to create dumb built distributions on platform %sr%r"r&)r%r%)r"r")r&r&) r!Zget_finalized_command bdist_baseospathjoinr#default_formatnameKeyErrorDistutilsPlatformErrorZset_undefined_options)r)r-r*r*r+finalize_options=s  zbdist_dumb.finalize_optionsc Cs|js|jd|jddd}|j|_|j|_d|_tjd|j|jdd|jj |j f}t j j |j|}|js|j}nm|jjr|j|jkrtdt|jt|jfn!t j j |jt|j}|j||jd |d |jd |j}|jjrkt}nd }|jjjd ||f|jst|jd|jdS)NZbuildinstallZreinit_subcommandsrzinstalling to %sz%s.%szScan't make a dumb built distribution where base and platbase are different (%s, %s)Zroot_dirr'r(anyr dry_run) r&Z run_commandZreinitialize_commandr!rootZwarn_dirrinfoZ distributionZ get_fullnamer"r.r/r0r%rZhas_ext_modulesZ install_baseZinstall_platbaser4reprrZ make_archiver#r'r(rZ dist_filesappendr$rr9)r)r6Zarchive_basenameZpseudoinstall_rootZ archive_rootfilenameZ pyversionr*r*r+runOs>              zbdist_dumb.run)r r r )rrr)rr r)rNr)rNr)rrr)rrr) __name__ __module__ __qualname__Z descriptionrZ user_optionsZboolean_optionsr1r,r5r?r*r*r*r+r s6     r )__doc__r.Zdistutils.corerZdistutils.utilrZdistutils.dir_utilrrZdistutils.errorsZdistutils.sysconfigrZ distutilsrr r*r*r*r+s  PK!_g++)command/__pycache__/config.cpython-35.pycnu[ Yf$3@sdZddlZddlZddlZddlmZddlmZddlm Z ddl m Z ddd d iZ Gd d d eZ dd dZdS)adistutils.command.config Implements the Distutils 'config' command, a (mostly) empty command class that exists mainly to be sub-classed by specific module distributions and applications. The idea is that while every "config" command is different, at least they're all named the same, and users always see "config" in the list of standard commands. Also, this is a good place to put common configure-like tasks: "try to compile this C code", or "figure out where this header file lives". N)Command)DistutilsExecError)customize_compiler)logcz.czc++z.cxxc @sieZdZdZd>d?d@dAdBdCdDdEdFg ZddZddZddZd d!Zd"d#Z d$d%Z d&d'Z d(d)Z d*d+Z dddd,d-d.Zdddd,d/d0Zddd,d1d2Zddddd,d3d4Zddddd,d5d6Zddddd7d7d8d9Zdddgd:d;Zddd,d<d=ZdS)Gconfigzprepare to build compiler=Nspecify the compiler typecc=specify the compiler executable include-dirs=I.list of directories to search for header filesdefine=DC preprocessor macros to defineundef=U!C preprocessor macros to undefine libraries=l!external C libraries to link with library-dirs=L.directories to search for external C librariesnoisy1show every action (compile, link, run, ...) taken dump-source=dump generated source files before attempting to compile themcCsLd|_d|_d|_d|_d|_d|_d|_g|_dS)N)compilerZcc include_dirs libraries library_dirsr dump_source temp_files)selfr'=/opt/alt/python35/lib64/python3.5/distutils/command/config.pyinitialize_options3s       zconfig.initialize_optionscCs|jdkr'|jjpg|_n*t|jtrQ|jjtj|_|jdkrlg|_n!t|jtr|jg|_|jdkrg|_n*t|jtr|jjtj|_dS)N) r!Z distribution isinstancestrsplitospathsepr"r#)r&r'r'r(finalize_optionsBs  zconfig.finalize_optionscCsdS)Nr')r&r'r'r(runRsz config.runcCsddlm}m}t|j|s|d|jd|jdd|_t|j|jru|jj|j|j r|jj |j |j r|jj |j dS)z^Check that 'self.compiler' really is a CCompiler object; if not, make it one. r) CCompiler new_compilerr dry_runZforcerN) distutils.ccompilerr1r2r*r r3rr!Zset_include_dirsr"Z set_librariesr#Zset_library_dirs)r&r1r2r'r'r(_check_compilerYs    zconfig._check_compilercCsdt|}t|d}|rRx|D]}|jd|q*W|jd|j||ddkr||jd|j|S)NZ _configtestwz#include <%s>  r)LANG_EXTopenwriteclose)r&bodyheaderslangfilenamefileheaderr'r'r(_gen_temp_sourcefileks     zconfig._gen_temp_sourcefilecCsT|j|||}d}|jj||g|jj||d|||fS)Nz _configtest.ir!)rCr%extendr Z preprocess)r&r=r>r!r?srcoutr'r'r( _preprocessxs zconfig._preprocesscCs|j|||}|jr/t|d||jj|g\}|jj||g|jj|gd|||fS)Nzcompiling '%s':r!)rCr$ dump_filer Zobject_filenamesr%rDcompile)r&r=r>r!r?rEobjr'r'r(_compiles zconfig._compilec Cs|j||||\}}tjjtjj|d} |jj|g| d|d|d||jjdk r| |jj} |jj | ||| fS)Nrr"r#Z target_lang) rKr-pathsplitextbasenamer Zlink_executableZ exe_extensionr%append) r&r=r>r!r"r#r?rErJprogr'r'r(_links"z config._linkc Gsl|s|j}g|_tjddj|x4|D],}ytj|Wq8tk rcYq8Xq8WdS)Nz removing: %s )r%rinfojoinr-removeOSError)r& filenamesr@r'r'r(_cleans    z config._cleanrc Cscddlm}|jd}y|j||||Wn|k rTd}YnX|j|S)aQConstruct a source file from 'body' (a string containing lines of C/C++ code) and 'headers' (a list of header files to include) and run it through the preprocessor. Return true if the preprocessor succeeded, false if there were any errors. ('body' probably isn't of much use, but what the heck.) r) CompileErrorTF)r4rYr5rGrX)r&r=r>r!r?rYokr'r'r(try_cpps    zconfig.try_cppc Cs|j|j||||\}}t|trFtj|}t|}d} x3|j} | dkrtP|j| r[d} Pq[W|j |j | S)aConstruct a source file (just like 'try_cpp()'), run it through the preprocessor, and return true if any line of the output matches 'pattern'. 'pattern' should either be a compiled regex object or a string containing a regex. If both 'body' and 'headers' are None, preprocesses an empty file -- which can be useful to determine the symbols the preprocessor and compiler set by default. FT) r5rGr*r+rerIr:readlinesearchr<rX) r&patternr=r>r!r?rErFrAmatchliner'r'r( search_cpps      zconfig.search_cppc Cs|ddlm}|jy |j||||d}Wn|k rTd}YnXtj|rgdpjd|j|S)zwTry to compile a source file built from 'body' and 'headers'. Return true on success, false otherwise. r)rYTFzsuccess!zfailure.)r4rYr5rKrrSrX)r&r=r>r!r?rYrZr'r'r( try_compiles     zconfig.try_compilec Csddlm}m}|jy&|j||||||d} Wn||fk rfd} YnXtj| rydp|d|j| S)zTry to compile and link a source file, built from 'body' and 'headers', to executable form. Return true on success, false otherwise. r)rY LinkErrorTFzsuccess!zfailure.)r4rYrer5rQrrSrX) r&r=r>r!r"r#r?rYrerZr'r'r(try_links     zconfig.try_linkc Csddlm}m}|jyA|j||||||\} } } |j| gd} Wn!||tfk rd} YnXtj| rdpd|j | S)zTry to compile, link to an executable, and run a program built from 'body' and 'headers'. Return true on success, false otherwise. r)rYreTFzsuccess!zfailure.) r4rYrer5rQZspawnrrrSrX) r&r=r>r!r"r#r?rYrerErJZexerZr'r'r(try_runs    zconfig.try_runrc Cs|jg}|r'|jd||jd|rN|jd|n|jd||jddj|d}|j|||||S)aDetermine if function 'func' is available by constructing a source file that refers to 'func', and compiles and links it. If everything succeeds, returns true; otherwise returns false. The constructed source file starts out by including the header files listed in 'headers'. If 'decl' is true, it then declares 'func' (as "int func()"); you probably shouldn't supply 'headers' and set 'decl' true in the same call, or you might get errors about a conflicting declarations for 'func'. Finally, the constructed 'main()' function either references 'func' or (if 'call' is true) calls it. 'libraries' and 'library_dirs' are used when linking. z int %s ();z int main () {z %s();z %s;}r7)r5rOrTrf) r&funcr>r!r"r#ZdeclZcallr=r'r'r( check_funcs   zconfig.check_funccCs*|j|jd|||g||S)aDetermine if 'library' is available to be linked against, without actually checking that any particular symbols are provided by it. 'headers' will be used in constructing the source file to be compiled, but the only effect of this is to check if all the header files listed are available. Any libraries listed in 'other_libraries' will be included in the link, in case 'library' has symbols that depend on other libraries. zint main (void) { })r5rf)r&Zlibraryr#r>r!Zother_librariesr'r'r( check_lib6s zconfig.check_libcCs|jddd|gd|S)zDetermine if the system header file named by 'header_file' exists and can be found by the preprocessor; return true if so, false otherwise. r=z /* No body */r>r!)r[)r&rBr!r#r?r'r'r( check_headerDszconfig.check_header)rNr )r Nr )r r r)rrr)rrr)rrr)rrr)rNr)rNr)__name__ __module__ __qualname__Z descriptionZ user_optionsr)r/r0r5rCrGrKrQrXr[rcrdrfrgrjrkrlr'r'r'r(rsT             rc Csb|dkr tjd|n tj|t|}ztj|jWd|jXdS)zjDumps a file content into log.info. If head is not None, will be dumped before the file content. Nz%s)rrSr:readr<)r@headrAr'r'r(rHNs   rH)__doc__sysr-r]Zdistutils.corerZdistutils.errorsrZdistutils.sysconfigrZ distutilsrr9rrHr'r'r'r( s$:PK!7""6command/__pycache__/bdist_wininst.cpython-35.opt-1.pycnu[ Yf;@sdZddlZddlZddlmZddlmZddlmZm Z ddl Tddl m Z ddl mZGd d d eZdS) zzdistutils.command.bdist_wininst Implements the Distutils 'bdist_wininst' command: create a windows installer exe-program.N)Command) get_platform) create_tree remove_tree)*)get_python_version)logc@seZdZdZd4dddefdd d d fd dd dfd5d6d7d8d9d:d;d<d=g ZddddgZd&d'Zd(d)Zd*d+Z d,d-Z dd.d/Z d0d1Z d2d3Z dS)> bdist_wininstz-create an executable installer for MS Windows bdist-dir=N1temporary directory for creating the distributionz plat-name=pz;platform name to embed in generated filenames (default: %s)z keep-tempkz/keep the pseudo-installation tree around after z!creating the distribution archiveztarget-version=z!require a specific python versionz on the target systemno-target-compilec/do not compile .py to .pyc on the target systemno-target-optimizeo:do not compile .py to .pyo (optimized)on the target system dist-dir=d-directory to put final built distributions inbitmap=b>bitmap to use for the installer instead of python-powered logotitle=t?title to display on the installer background instead of default skip-build2skip rebuilding everything (for testing/debugging)install-script=Tbasename of installation script to be run afterinstallation or before deinstallationpre-install-script={Fully qualified filename of a script to be run before any files are installed. This script need not be in the distributionuser-access-control=specify Vista's UAC handling - 'none'/default=no handling, 'auto'=use UAC if target Python installed for all users, 'force'=always use UACcCsyd|_d|_d|_d|_d|_d|_d|_d|_d|_d|_ d|_ d|_ d|_ dS)Nr) bdist_dir plat_name keep_tempno_target_compileno_target_optimizetarget_versiondist_dirbitmaptitle skip_buildinstall_scriptpre_install_scriptuser_access_control)selfr3D/opt/alt/python35/lib64/python3.5/distutils/command/bdist_wininst.pyinitialize_options:s            z bdist_wininst.initialize_optionscCsG|jdd |jdkry|jrO|jrO|jjd}|j|_|jdj}tj j |d|_|j sd|_ |j r|jj rt }|j r|j |krtd|f||_ |jdd d |jrCxC|jjD]"}|jtj j|kr Pq Wtd|jdS) Nbdistr.ZwininstzMtarget version can only be %s, or the '--skip-build' option must be specifiedr+r&z(install_script '%s' not found in scripts)r.r.)r+r+)r&r&)Zset_undefined_optionsr%r.r& distributionZget_command_objget_finalized_command bdist_baseospathjoinr*has_ext_modulesrZDistutilsOptionErrorr/scriptsbasename)r2r6r:Z short_versionscriptr3r3r4finalize_optionsJs4        zbdist_wininst.finalize_optionsc Cstjdkr9|jjs-|jjr9td|jsO|jd|jddd}|j |_ |j|_d|_ |j |_ |jd}d|_ d|_|jjr$|j}|stjdd }d |j |f}|jd}tjj|jd ||_xDdD]<}|j}|dkrS|d}t|d||q+Wtjd|j |jtjjdtjj|j d|jtjd=ddlm}|} |jj } |j!| dd|j } |j"| | |j#|jjr5t$} nd} |jj%j&d| |j'| ftj(d| tj)| |j*st+|j d|j,dS)Nwin32z^distribution contains extensions and/or C libraries; must be compiled on a Windows 32 platformbuildinstallZreinit_subcommandsr install_libz.%s-%slibpurelibplatlibheadersr?dataz/Include/$dist_nameZinstall_zinstalling to %sZPURELIB)mktempzipZroot_diranyr zremoving temporary file '%s'dry_run)rJrKrLr?rM)-sysplatformr8r>Zhas_c_librariesZDistutilsPlatformErrorr.Z run_commandZreinitialize_commandr%rootZwarn_dirr&compileoptimizer*versionr9r;r<r=Z build_baseZ build_libuppersetattrrinfoZensure_finalizedinsertrunZtempfilerN get_fullnameZ make_archive create_exer,rZ dist_filesappendget_installer_filenamedebugremover'rrQ) r2rErGr*Zplat_specifierrDkeyvaluerNZarchive_basenamefullnamearcnameZ pyversionr3r3r4r\psd                %       zbdist_wininst.runc Csg}|jj}|jd|jp+dd}dd}x{dddd d d d d gD][}t||d}|r]|d|j||f}|jd|||fq]W|jd|jr|jd|j|jd|||jd|j |jd|j |j rD|jd|j |j ra|jd|j |j pv|jj }|jd||ddl }ddl} d|j|j | jf} |jd| dj|S)Nz [metadata]r7 cSs|jddS)Nrgz\n)replace)sr3r3r4escapesz)bdist_wininst.get_inidata..escapeZauthorZ author_email descriptionZ maintainerZmaintainer_emailnameZurlrWz %s: %sz%s=%sz [Setup]zinstall_script=%szinfo=%sztarget_compile=%dztarget_optimize=%dztarget_version=%szuser_access_control=%sztitle=%srzBuilt %s with distutils-%sz build_info=%s)r8metadatar_Zlong_descriptiongetattr capitalizer/r(r)r*r1r-r]time distutilsZctime __version__r=) r2linesrmrZrjrlrMr-rprqZ build_infor3r3r4 get_inidatas<   !      zbdist_wininst.get_inidatac Csddl}|j|j|j}|j|}|jd||rrt|dj}t|}nd}t|d} | j |j |r| j |t |t r|j d}|d}|jr&t|jddd } | jj d } WdQRX|| d }n |d}| j ||jd d t||} | j | | j t|djdS) Nrz creating %srbwbmbcssrencodingzlatin-1s zs PK!~U##+command/__pycache__/register.cpython-35.pycnu[ Yf-@sdZddlZddlZddlZddlZddlZddlZddlm Z ddl m Z ddl Tddl mZGddde ZdS) zhdistutils.command.register Implements the Distutils 'register' command (register with the repository). N)warn) PyPIRCCommand)*)logc@seZdZdZejdd gZejdddgZdd d fgZd d Zd dZ ddZ ddZ ddZ ddZ ddZddZddZdddZdS)!registerz7register the distribution with the Python package indexlist-classifiersN list the valid Trove classifiersstrictBWill stop the registering if the meta-data are not fully compliantverifycheckcCsdS)NT)selfr r ?/opt/alt/python35/lib64/python3.5/distutils/command/register.pyszregister.cCs#tj|d|_d|_dS)Nr)rinitialize_optionslist_classifiersr )rr r rrs  zregister.initialize_optionscCs<tj|dd|jfddi}||jjds$  PK!Z# # 2command/__pycache__/install_scripts.cpython-35.pycnu[ Yf@s\dZddlZddlmZddlmZddlmZGdddeZdS)zudistutils.command.install_scripts Implements the Distutils 'install_scripts' command, for installing Python scripts.N)Command)log)ST_MODEc@speZdZdZddddgZdd gZddZddZddZddZ ddZ d S)install_scriptsz%install scripts (Python or otherwise) install-dir=ddirectory to install scripts to build-dir=b'build directory (where to install from)forcef-force installation (overwrite existing files) skip-buildNskip the build stepscCs(d|_d|_d|_d|_dS)Nr) install_dirr build_dir skip_build)selfrF/opt/alt/python35/lib64/python3.5/distutils/command/install_scripts.pyinitialize_optionss   z"install_scripts.initialize_optionscCs*|jdd |jdd d d dS) NZbuild build_scriptsrZinstallrrr r)rr)rr)r r )rr)Zset_undefined_options)rrrrfinalize_options!s  z install_scripts.finalize_optionscCs|js|jd|j|j|j|_tjdkrxn|jD]`}|j rot j d|qMtj |t dBd@}t j d||tj||qMWdS)Nrposixzchanging mode of %simizchanging mode of %s to %o)rZ run_commandZ copy_treerroutfilesosname get_outputsZdry_runrinfostatrchmod)rfilemoderrrrun)s   zinstall_scripts.runcCs|jjpgS)N)Z distributionscripts)rrrr get_inputs8szinstall_scripts.get_inputscCs |jp gS)N)r)rrrrr;szinstall_scripts.get_outputs)rrr)r r r )r r r)rNr) __name__ __module__ __qualname__Z descriptionZ user_optionsZboolean_optionsrrr$r&rrrrrrs       r) __doc__rZdistutils.corerZ distutilsrr rrrrrrs  PK!'ENPP0command/__pycache__/build_scripts.cpython-35.pycnu[ YfW@sdZddlZddlZddlmZddlmZddlmZddl m Z ddl m Z m Z ddlmZddlZejd ZGd d d eZGd d d ee ZdS)zRdistutils.command.build_scripts Implements the Distutils 'build_scripts' command.N)ST_MODE) sysconfig)Command)newer) convert_path Mixin2to3)logs^#!.*python[0-9.]*([ ].*)?$c@sjeZdZdZdddgZdgZd d Zd dZddZddZ ddZ dS) build_scriptsz("build" scripts (copy and fixup #! line) build-dir=ddirectory to "build" (copy) toforcef1forcibly build everything (ignore file timestamps executable=e*specify final destination interpreter pathcCs1d|_d|_d|_d|_d|_dS)N) build_dirscriptsr executableoutfiles)selfrD/opt/alt/python35/lib64/python3.5/distutils/command/build_scripts.pyinitialize_optionss     z build_scripts.initialize_optionscCs)|jdddd|jj|_dS) NZbuildr rr r)r r)r r )rr)Zset_undefined_optionsZ distributionr)rrrrfinalize_options%s  zbuild_scripts.finalize_optionscCs|jS)N)r)rrrrget_source_files,szbuild_scripts.get_source_filescCs|js dS|jdS)N)r copy_scripts)rrrrrun/s zbuild_scripts.runc"Cs|j|jg}g}x|jD]}d}t|}tjj|jtjj|}|j||j rt || rt j d|q&yt |d}Wn$tk r|jsd}Yn|Xtj|j\}}|jd|j} | s!|jd|q&tj| } | rQd}| jdpNd } |rt jd ||j|j||jstjs|j} n:tjjtjd d tjd tjdf} tj| } d| | d} y| jdWn'tk r-t dj!| YnXy| j|Wn*tk rkt dj!| |YnXt |d'}|j"| |j#|j$WdQRX|r|j%q&|r|j%|j||j&||q&Wtj'dkr|x|D]y}|jr!t jd|qtj(|t)d@}|dBd@}||krt jd|||tj*||qW||fS)a"Copy each script listed in 'self.scripts'; if it's marked as a Python script in the Unix way (first line matches 'first_line_re', ie. starts with "\#!" and contains "python"), then adjust the first line to refer to the current Python interpreter as we copy. Fznot copying %s (up-to-date)rbNrz%s is an empty file (skipping)Tzcopying and adjusting %s -> %sBINDIRz python%s%sVERSIONEXEs#!s zutf-8z.The shebang ({!r}) is not decodable from utf-8zAThe shebang ({!r}) is not decodable from the script encoding ({})wbposixzchanging mode of %siimz!changing mode of %s from %o to %o)+Zmkpathrrrospathjoinbasenameappendr rrdebugopenOSErrordry_runtokenizedetect_encodingreadlineseekwarn first_line_rematchgroupinforZ python_buildrget_config_varfsencodedecodeUnicodeDecodeError ValueErrorformatwrite writelines readlinescloseZ copy_filenamestatrchmod)rr updated_filesZscriptZadjustZoutfilerencodinglinesZ first_liner6Z post_interprZshebangZoutffileZoldmodeZnewmoderrrr5s $                         zbuild_scripts.copy_scriptsN)r r r )r rr)rrr) __name__ __module__ __qualname__Z descriptionZ user_optionsZboolean_optionsrrrrrrrrrr s       r c@seZdZddZdS)build_scripts_2to3cCs5tj|\}}|js+|j|||fS)N)r rr/Zrun_2to3)rrrFrrrrs  zbuild_scripts_2to3.copy_scriptsN)rJrKrLrrrrrrMs rM)__doc__r'rerDrZ distutilsrZdistutils.corerZdistutils.dep_utilrZdistutils.utilrrrr0compiler5r rMrrrrs PK!''1command/__pycache__/build_py.cpython-35.opt-2.pycnu[ ] C@sddlZddlZddlZddlmZddlmZddlTddlm Z m Z ddl m Z GdddeZ Gd d d e e ZdS) N)glob)Command)*) convert_path Mixin2to3)logc@s*eZdZdZd8d9d:d;d<gZddgZddiZddZddZddZ ddZ ddZ ddZ ddZ dd Zd!d"Zd#d$Zd%d&Zd'd(Zd)d*Zd+d,Zd-d.d/Zd0d1Zd2d3Zd4d5Zd6d7Zd S)=build_pyz5"build" pure Python modules (copy to build directory) build-lib=ddirectory to "build" (copy) tocompileccompile .py to .pyc no-compileN!don't compile .py files [default] optimize=Olalso compile with optimization: -O1 for "python -O", -O2 for "python -OO", and -O0 to disable [default: -O0]forcef2forcibly build everything (ignore file timestamps)cCsLd|_d|_d|_d|_d|_d|_d|_d|_dS)Nr) build_lib py_modulespackage package_data package_dirr optimizer)selfr-/opt/alt/python35/lib64/python3.5/build_py.pyinitialize_options s       zbuild_py.initialize_optionsc Cs|jddd|jj|_|jj|_|jj|_i|_|jjrx3|jjjD]\}}t||j|ts z+build_py.get_data_files..) r"get_package_dirosr+joinrsplitlenfind_data_filesappend)rdatarsrc_dir build_dir filenamesr)r8rr$as %%zbuild_py.get_data_filescs|jjdg|jj|g}gxO|D]G}ttjj|t|}jfdd|Dq5WS)Ncs4g|]*}|krtjj|r|qSr)r;r+isfile)r6fn)filesrrr9s z,build_py.find_data_files..)rgetrr;r+r<rextend)rrrBZglobspatternZfilelistr)rHrr?ys !$zbuild_py.find_data_filescCsd}x|jD]v\}}}}xa|D]Y}tjj||}|jtjj||jtjj|||ddq)WqWdS)N preserve_modeF)r%r;r+r<mkpathdirname copy_file)rZlastdirrrBrCrDfilenametargetrrrr0s zbuild_py.build_package_datac Cs|jd}|js5|r.tjj|SdSng}x|ry|jdj|}Wn-tk r|jd|d|d=Yq>X|jd|tjj|Sq>W|jjd}|dk r|jd||rtjj|SdSdS)Nr4rErr5rR)r=rr;r+r<KeyErrorinsertrI)rrr+tailZpdirrrrr:s(      zbuild_py.get_package_dircCs|dkrPtjj|s.td|tjj|sPtd||rtjj|d}tjj|r|Stjdd|dS)NrEz%package directory '%s' does not existz>supposed package directory '%s' exists, but is not a directoryz __init__.pyz!package init file '%s' not found z(or not a regular file)) r;r+existsZDistutilsFileErrorisdirr<rFrwarn)rrrinit_pyrrr check_packages     zbuild_py.check_packagecCs1tjj|s)tjd||dSdSdS)Nz!file %s (for module %s) not foundFT)r;r+rFrrX)rmodule module_filerrr check_moduleszbuild_py.check_modulec Cs|j||ttjj|d}g}tjj|jj}xx|D]p}tjj|}||krtjjtjj |d}|j |||fqP|j d|qPW|S)Nz*.pyrz excluding %s) rZrr;r+r<abspathr!Z script_namesplitextbasenamer@Z debug_print) rrrZ module_filesmodulesZ setup_scriptrZabs_fr[rrrfind_package_moduless  "zbuild_py.find_package_modulesc Csi}g}x |jD]}|jd}dj|dd}|d}y||\}}Wn'tk r|j|}d}YnX|s|j||} |df||<| r|j|d| ftjj||d} |j || sq|j||| fqW|S)Nr4rr5__init__z.pyrRrR) rr=r<rSr:rZr@r;r+r]) rr"rar[r+rZ module_baserZcheckedrYr\rrr find_moduless*   zbuild_py.find_modulescCsqg}|jr"|j|j|jrmx?|jD]4}|j|}|j||}|j|q5W|S)N)rrJrdr"r:rb)rrarrmrrrfind_all_moduless  zbuild_py.find_all_modulescCsdd|jDS)NcSsg|]}|dqS)r5rRr)r6r[rrrr9-s z-build_py.get_source_files..)rf)rrrrget_source_files,szbuild_py.get_source_filescCs.|gt||dg}tjj|S)Nz.py)listr;r+r<)rrCrr[Z outfile_pathrrrget_module_outfile/szbuild_py.get_module_outfiler5cCs|j}g}x|D]\}}}|jd}|j|j||}|j||r|jr|jtjj|dd|j dkr|jtjj|d|j qW|dd|j D7}|S)Nr4 optimizationrErcSs>g|]4\}}}}|D]}tjj||qqSr)r;r+r<)r6rrBrCrDrPrrrr9Cs z(build_py.get_outputs..) rfr=rirr@r importlibutilcache_from_sourcerr%)rr-raZoutputsrr[r\rPrrrr23s"    zbuild_py.get_outputscCst|tr!|jd}n!t|ttfsBtd|j|j||}tj j |}|j ||j ||ddS)Nr4z:'package' must be a string (dot-separated), list, or tuplerLr) r&strr=rhtuple TypeErrorrirr;r+rNrMrO)rr[r\rZoutfiledirrrr build_moduleJs  zbuild_py.build_modulecCs=|j}x*|D]"\}}}|j|||qWdS)N)rdrr)rrarr[r\rrrr.Ys zbuild_py.build_modulescCsfx_|jD]T}|j|}|j||}x*|D]"\}}}|j|||q8Wq WdS)N)r"r:rbrr)rrrraZpackage_r[r\rrrr/bs  zbuild_py.build_packagesc Cstjr|jddSddlm}|j}|d tjkrS|tj}|jr||ddd|j d|d|j |j dkr||d|j d|j d|d|j dS) Nz%byte-compiling is disabled, skipping.r)r1r5rrprefixdry_runrR) sysdont_write_bytecoderXdistutils.utilr1rr;sepr rrtr)rrHr1rsrrrr1vs     zbuild_py.byte_compile)r r r )r r r)rNr)rrr)rrr)__name__ __module__ __qualname__ descriptionZ user_optionsZboolean_optionsZ negative_optr r,r3r$r?r0r:rZr]rbrdrfrgrir2rrr.r/r1rrrrrs8        '    4     rc@s(eZdZddZddZdS) build_py_2to3cCsfg|_|jr|j|jr9|j|j|j|j|j|jdddS)Nr-r) updated_filesrr.r"r/r0Zrun_2to3r1r2)rrrrr3s      zbuild_py_2to3.runcCs:tj||||}|dr6|jj|d|S)Nr5r)rrrr~r@)rr[r\rresrrrrrs zbuild_py_2to3.build_moduleN)ryrzr{r3rrrrrrr}s  r})r;importlib.utilrkrurZdistutils.corerZdistutils.errorsrwrrZ distutilsrrr}rrrrs    |PK!BYƲ6command/__pycache__/build_scripts.cpython-35.opt-2.pycnu[ ]W@sddlZddlZddlmZddlmZddlmZddlm Z ddl m Z m Z ddlm Z ddlZejdZGd d d eZGd d d ee ZdS) N)ST_MODE) sysconfig)Command)newer) convert_path Mixin2to3)logs^#!.*python[0-9.]*([ ].*)?$c@sjeZdZdZdddgZdgZd d Zd dZddZddZ ddZ dS) build_scriptsz("build" scripts (copy and fixup #! line) build-dir=ddirectory to "build" (copy) toforcef1forcibly build everything (ignore file timestamps executable=e*specify final destination interpreter pathcCs1d|_d|_d|_d|_d|_dS)N) build_dirscriptsr executableoutfiles)selfr2/opt/alt/python35/lib64/python3.5/build_scripts.pyinitialize_optionss     z build_scripts.initialize_optionscCs)|jdddd|jj|_dS) NZbuildr rr r)r r)r r )rr)Zset_undefined_optionsZ distributionr)rrrrfinalize_options%s  zbuild_scripts.finalize_optionscCs|jS)N)r)rrrrget_source_files,szbuild_scripts.get_source_filescCs|js dS|jdS)N)r copy_scripts)rrrrrun/s zbuild_scripts.runc"Cs|j|jg}g}x|jD]}d}t|}tjj|jtjj|}|j||j rt || rt j d|q&yt |d}Wn$tk r|jsd}Yn|Xtj|j\}}|jd|j} | s!|jd|q&tj| } | rQd}| jdpNd} |rt jd ||j|j||jstjs|j} n:tjjtjd d tjd tjd f} tj| } d| | d} y| jdWn'tk r-t dj!| YnXy| j|Wn*tk rkt dj!| |YnXt |d'}|j"| |j#|j$WdQRX|r|j%q&|r|j%|j||j&||q&Wtj'dkr|x|D]y}|jr!t jd|qtj(|t)d@}|dBd@}||krt jd|||tj*||qW||fS)NFznot copying %s (up-to-date)rbrz%s is an empty file (skipping)Tzcopying and adjusting %s -> %sBINDIRz python%s%sVERSIONEXEs#!s zutf-8z.The shebang ({!r}) is not decodable from utf-8zAThe shebang ({!r}) is not decodable from the script encoding ({})wbposixzchanging mode of %siimz!changing mode of %s from %o to %o)+Zmkpathrrrospathjoinbasenameappendr rrdebugopenOSErrordry_runtokenizedetect_encodingreadlineseekwarn first_line_rematchgroupinforZ python_buildrget_config_varfsencodedecodeUnicodeDecodeError ValueErrorformatwrite writelines readlinescloseZ copy_filenamestatrchmod)rr updated_filesZscriptZadjustZoutfilerencodinglinesZ first_liner6Z post_interprZshebangZoutffileZoldmodeZnewmoderrrr5s $                         zbuild_scripts.copy_scriptsN)r r r )r rr)rrr) __name__ __module__ __qualname__ descriptionZ user_optionsZboolean_optionsrrrrrrrrrr s       r c@seZdZddZdS)build_scripts_2to3cCs5tj|\}}|js+|j|||fS)N)r rr/Zrun_2to3)rrrFrrrrs  zbuild_scripts_2to3.copy_scriptsN)rJrKrLrrrrrrNs rN)r'rerDrZ distutilsrZdistutils.corerZdistutils.dep_utilrZdistutils.utilrrrr0compiler5r rNrrrrs PK!o,|N|N2command/__pycache__/bdist_msi.cpython-35.opt-2.pycnu[ ]@sddlZddlZddlmZddlmZddlmZddlm Z ddl m Z ddl m Z ddlmZddlZdd lmZmZmZdd lmZmZmZmZGd d d eZGd ddeZdS)N)Command) remove_tree)get_python_version) StrictVersion)DistutilsOptionError) get_platform)log)schemasequencetext) DirectoryFeatureDialogadd_datac@sjeZdZddZddZddddZd dd d Zd dd dZddZdS)PyDialogcOsKtj|||jd}d|d}|jdd||jddS)N$iHZ BottomLiner)r__init__hlinew)selfargskwZrulerZbmwidthr./opt/alt/python35/lib64/python3.5/bdist_msi.pyrs zPyDialog.__init__c Cs'|jddddddd|dS)NTitle i@<iz{\VerdanaBold10}%s)r )rtitlerrrr #szPyDialog.titleBackc Cs>|rd}nd}|j|d|jddd|||S)Nr"8) pushbuttonr)rr nextnameactiveflagsrrrback*s z PyDialog.backCancelc Cs>|rd}nd}|j|d|jddd|||S)Nr#r"i0r%r&r')r(r)rr r)r*r+r,rrrcancel5s zPyDialog.cancelNextc Cs>|rd}nd}|j|d|jddd|||S)Nr#r"r%r&r')r(r)rr r)r*r+r,rrrr)@s z PyDialog.nextc Cs:|j|t|j|d|jdddd||S)Nr%r&r'r#)r(intrr)rr*r r)ZxposrrrxbuttonKszPyDialog.xbuttonN) __name__ __module__ __qualname__rr r-r/r)r4rrrrrs     rc@s]eZdZdZdddfdddefdd d d fd dd dfdddfdddfdddfdddfdddfdddfg ZddddgZddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1gZd2Zd3d4Z d5d6Z d7d8Z d9d:Z d;d<Z d=d>Zd?d@ZdAdBZdS)C bdist_msiz7create a Microsoft Installer (.msi) binary distributionz bdist-dir=Nz1temporary directory for creating the distributionz plat-name=pz;platform name to embed in generated filenames (default: %s)z keep-tempkz/keep the pseudo-installation tree around after z!creating the distribution archiveztarget-version=z!require a specific python versionz on the target systemzno-target-compilecz/do not compile .py to .pyc on the target systemzno-target-optimizeoz:do not compile .py to .pyo (optimized)on the target systemz dist-dir=dz-directory to put final built distributions inz skip-buildz2skip rebuilding everything (for testing/debugging)zinstall-script=zTbasename of installation script to be run afterinstallation or before deinstallationzpre-install-script=z{Fully qualified filename of a script to be run before any files are installed. This script need not be in the distributionz2.0z2.1z2.2z2.3z2.4z2.5z2.6z2.7z2.8z2.9z3.0z3.1z3.2z3.3z3.4z3.5z3.6z3.7z3.8z3.9XcCsgd|_d|_d|_d|_d|_d|_d|_d|_d|_d|_ d|_ dS)Nr) bdist_dir plat_name keep_tempZno_target_compileZno_target_optimizetarget_versiondist_dir skip_buildinstall_scriptpre_install_scriptversions)rrrrinitialize_options}s          zbdist_msi.initialize_optionscCs`|jdd |jdkrI|jdj}tjj|d|_t}|j rt|j j rt||_|jr|jg|_ |j r|j j r|j|krt d|fnt|j|_ |jdd d |jrt d|jrSxC|j jD]"}|jtjj|krPqWt d|jd|_dS) NZbdistrDZmsizMtarget version can only be %s, or the '--skip-build' option must be specifiedrCr@z5the pre-install-script feature is not yet implementedz(install_script '%s' not found in scripts)rDrD)rCrC)r@r@)Zset_undefined_optionsr?get_finalized_command bdist_baseospathjoinrrB distributionhas_ext_modulesrGrDrlist all_versionsrFrEscriptsbasenameinstall_script_key)rrJZ short_versionZscriptrrrfinalize_optionss:        zbdist_msi.finalize_optionscCs\|js|jd|jddd}|j|_|j|_d|_|jd}d|_d|_|jj r|j }|st j dd}d|j |f}|jd}tjj|jd ||_tjd |j|jt jjdtjj|jd |jt jd=|j|j|jj}|j|}tjj|}tjj|rtj||jj }|j!} | s|j"} | sd } |j#} d t$| j } |jj}|j rd|j |f} n d|} t%j&|t'| t%j(| | |_)t%j*|j)t+d| fg} |j,ps|j-}|r| j.d|f|j/r| j.d|j/f| rt0|j)d| |j1|j2|j3|j4|j)j5t6|jdr9d|j pd|f}|jj7j.||j8sXt9|jd|j:dS)NbuildinstallZreinit_subcommandsr"r install_libr#z.%s-%slibzinstalling to %sZPURELIBZUNKNOWNz%d.%d.%dz Python %s %sz Python %sZ DistVersionZ ARPCONTACTZARPURLINFOABOUTProperty dist_filesr8anydry_run);rDZ run_commandZreinitialize_commandr?prefixZwarn_dircompileoptimizerNrOrBsysversionr@rIrKrLrMZ build_baseZ build_librinfoZensure_finalizedinsertrunZmkpathrC get_fullnameget_installer_filenameabspathexistsunlinkmetadataauthorZ maintainerZ get_versionrmsilibZ init_databaser Zgen_uuiddbZ add_tablesr Z author_emailZmaintainer_emailappendZurlradd_find_python add_files add_scriptsadd_uiCommithasattrr[rArr])rrWrXrBZplat_specifierrVfullnameinstaller_namerkrlrbZsversionZ product_nameZpropsZemailtuprrrres|         %                  z bdist_msi.runc Cs|j}tjd}tjj|j}t||d|dd}t|ddddddd}||d fg}x|j |j gD]}d|}d|} } d} ||j krd } d } nd |} d} t|| | | d| d|}t|||||| }|j |||fqW|j i}x|D]\}}}|g}x^|r|j }xEtj|jD]1}tjj|j|}tjj|r d |j||f}||} t||||| |}|j |q|js+|j|j|d||kr|j|}||<||jkr|jrvtd|d||_q||}t|jd|||j|d|jfgqWqiW|j qNW|j|dS)NZ distfiles TARGETDIRZ SourceDirPythonZ Everythingrr"Z directoryzPython from another locationzPython %s from registryz%s|%szMultiple files with name %sz[#%s]Z DuplicateFile)rnrmZCABrKrLrhr?r r rG other_versionrortpoplistdirZabsoluterMisdirZ make_shortZ componentZstart_componentZlogicalZadd_filerErTrrZcommit)rrnZcabZrootdirrootfitemsrbtargetr*defaultZdescr leveldirseenZfeatureZtodofileZafileZshortZnewdirkeyrrrrq s\    !           +zbdist_msi.add_filesc Csd}x|jD]}d|}d|}d|}d|}d|}d|}d|} d |} d |} d |} tjrd} nd } t|jd|d |d| f|d|d| fgt|jd||f||fgt|jd|d| d|df| d | d|df| d!| d| dfgt|jd|||f| ||df| d|d fgt|jd|||f| ||df| d|d fgt|jdd|dd|fg|d7}qWdS)"Niz)SOFTWARE\Python\PythonCore\%s\InstallPathzpython.machine.z python.user.zPYTHON.MACHINE.z PYTHON.USER.ZPythonFromMachineZPythonFromUserZ PythonExeryPYTHONr|Z RegLocatorr"Z AppSearch CustomAction3[]z ]\python.exeInstallExecuteSequenceInstallUISequence Conditionrzrz NOT TARGETDIRi3i3i3)rGrmZWin64rrn)rstartverZ install_pathZ machine_regZuser_regZ machine_propZ user_propZmachine_actionZ user_actionZ exe_actionZtarget_dir_propexe_propZTyperrrrpCsJ                       zbdist_msi.add_find_pythoncCsK|jrd}x|j|jgD]l}d|}d|}t|jd|d||jfgt|jd|d||fg|d7}q#W|jrGtjj |j d }t |d }|j d |j t |jj |jt|jd d tj|fgt|jddgt|jddgdS)Nizinstall_script.rr2rz &Python%s=3r"zpreinstall.batrzrem =""" %1 %0 exit """ Binary PreInstallr| NOT Installed)rr|rN)rrr)rErGr}rrnrTrFrKrLrMr?openwritereadclosermr)rrrZinstall_actionrZscriptfnrrrrrrys,            zbdist_msi.add_scriptscCsG|j}d}}d}d}d}d}d}d} t|dddddddgt|dddddgt|d dddddgt|d/tjt|d0tjt|d1||||||d2d2d2 } | jd3| jd4d2d5d| jd6d7d5d| jd8d9d:d;d<d=d>| jd?d9d@d;dAd=dB| j d2d6dCd2} | j dDdEt|dF||||||d2d2d2 } | jdG| jd4d2d5d| jd6d7d5d| jd8d9d:d;d<d=dH| jd?d9d@d;dAd=dB| j d2d6dCd2} | j dDdEt|dI||||||d2d2d2 } | jdJ| jd4d2d5d| jd6d7d5d| jdKd9dLd;dAd=dB| j d2d6dCd2} | j dDdMt|dN||||dO|dPdPdPdQdR }|jdSd9dTdUd9d=dV|jdKdAdWdXdAd=dY|jdZdAd[d\ddd]|j d^d_dAd`d\dadbdcddd |jdEdddCdE} | j dDdE|j dddPdCdd} | j dDdd|jdPdEdCdP} | j dDdPt |d ddd\dedf|dgdd }|jdgdddXdhddi|j djdkdldmdnddodj dDdp|j dqdrdldmdnddsdj dDdt|j duddldmdnddvdj dDdw|j dxdydldmdndd6dj dDdz|j d{dmdldmdnddddj dDd||j d}d~dldmdndddj dDd|j dddldmdnddPdj dDdt |dddddd|dododo }|jdZdhd9dddd|j dsdldddddsdo} | j dDdE|j doddddddods} | j dDdMt |ddddd||dMdMdM }|jdZdhd9dddd|j dMddddddMd} | j dDdEt|d!||||||d6d6d6 }|jdKd9d:d;dd=d|jd|jd/d9dd;dAd=d} | jd/dZ|jdd9dd;dd=d} | jddZ|jd7dd5d|j ddd5d|jd6d} | j ddt|d'||||||ddd6 }|jd|jdd9dddAdd|jj|jd4dd5d|j dd6} d}| j ddd|xF|j|jgD]1}|d7}| j dd|d|d|qW| j ddd|d| j dDdMd|d|jd6d} | j dd|j ddd9dddkddddd } | j dd|j}d|}d|}|jdd9dUdd9dd} | jd|| jd|| jd|| jd||j ddd9ddddd|ddd } | jd|| jd|| jd|| jd|t|d||||||ddddQdR }|jdSd9dTdUd9d=d|jdKdAdAdXdAd=d|jdZdAdd\ddd|j dddAdd\dddddd |jddddj dDdMt|d$||||||ddd6 }|jd|jdd9ddddddid }|jdddddAd|jdddddAd|jd7dd5d|j dd6} | j dddd| j dDdMdd|jd6d} | j ddt|d-||||||d6d6d6dQdR }|jdSdAd9dUd9d=d|jdZdddddd|jdddddAdd|jd/d:d|d:dAdd} | jd/dZ|j ddddkddddddd } | jdd|jd4dd5dR|j dd6d5dR|jd6d7j ddt|d*||||||ddd6 }|jd|jdd9dd\dydd|jdd9dd\ddddid }|jddddUdd|jddddUdd|jd4dd5dR|j d2d6} | j dddd| j ddddT| j ddddb| j dddd| j dddd| j dddd| j dddd| j dddd| j dDdMddA|jd6dj dddS(Nriri,z[ProductName] Setupr#r" rZ DefaultUIFontDlgFont8 ErrorDialogErrorDlg Progress1Install Progress2installsMaintenanceForm_ActionRepair WhichUsersALLZ TextStyleTahoma r DlgFontBold8 VerdanaBold10Verdanar VerdanaRed9r PrepareDlg(Not Privileged or Windows9x or Installed WhichUsersDlg.Privileged and not Windows9x and not InstalledSelectFeaturesDlg Not InstalledMaintenanceTypeDlg,Installed AND NOT RESUME AND NOT Preselected ProgressDlg ActionTextUITextZ FatalErrorZFinishz)[ProductName] Installer ended prematurelyz< Backr+r.r!Z Description1rFi@Piz[ProductName] setup ended prematurely because of an error. Your system has not been modified. To install this program at a later time, please run the installation again.Z Description2z.Click the Finish button to exit the Installer.r*Z EndDialogZExitZUserExitz'[ProductName] Installer was interruptedz[ProductName] setup was interrupted. Your system has not been modified. To install this program at a later time, please run the installation again.Z ExitDialogz&Completing the [ProductName] InstallerZ DescriptionZReturnZ FilesInUseZRetryZbitmapFrz{\DlgFontBold8}Files in Useiz8Some files that need to be updated are currently in use.ZText7iJzThe following applications are using files that need to be updated by this setup. Close these applications and then click Retry to continue the installation or Cancel to exit it.ZListZListBoxkZFileInUseProcessIgnoreeiZ ErrorText0r{NxHQZNoZErrorNoYZYesZErrorYesAZAbortZ ErrorAbortC*Z ErrorCancelIZ ErrorIgnoreOZOkZErrorOkRZ ErrorRetryZ CancelDlgiUz;Are you sure you want to cancel [ProductName] installation?9r&r'ZWaitForCostingDlgzRPlease wait while the installer finishes determining your disk space requirements.f(zOPlease wait while the Installer prepares to guide you through the installation.z&Welcome to the [ProductName] Installernz Pondering...Z ActionDatar0Z SpawnDialogzSelect Python InstallationsZHintz9Select the Python locations where %s should be installed.zNext >z [TARGETDIR]z [SourceDir]Zorderingz [TARGETDIR%s]z FEATURE_SELECTED AND &Python%s=3ZSpawnWaitDialogr|ZFeaturesZ SelectionTreerZFEATUREZPathEditz[FEATURE_SELECTED]1z!FEATURE_SELECTED AND &Python%s<>3ZOtherz$Provide an alternate Python locationZEnableZShowZDisableZHiderryZ DiskCostDlgZOKz&{\DlgFontBold8}Disk Space RequirementszFThe disk space required for the installation of the selected features.5aThe highlighted volumes (if any) do not have enough disk space available for the currently selected features. You can either remove some files from the highlighted volumes, or choose to install less features onto local drive(s), or select different destination drive(s).Z VolumeListZVolumeCostListdiz{120}{70}{70}{70}{70}g?Z AdminInstallzGSelect whether to install [ProductName] for all users of this computer.zInstall for all usersZJUSTMEzInstall just for mez [ALLUSERS]zWhichUsers="ALL"z({\DlgFontBold8}[Progress1] [ProductName]#AzYPlease wait while the Installer [Progress2] [ProductName]. This may take several minutes.Z StatusLabelzStatus:Z ProgressBariz Progress doneZ SetProgressZProgressz)Welcome to the [ProductName] Setup WizardZBodyText?z:Select whether you want to repair or remove [ProductName].ZRepairRadioGrouplrz&Repair [ProductName]ZRemoverzRe&move [ProductName]z [REINSTALL]zMaintenanceForm_Action="Repair"z [Progress1]Z Repairingz [Progress2]ZrepairsZ Reinstallz[REMOVE]zMaintenanceForm_Action="Remove" ZRemoving Zremoves z MaintenanceForm_Action<>"Change")rr)rr)rr)rr)rr)rr)rrrNr)rrrNr")rrrNr")rrrrr)rrr)rrr)rrr)rrr)rNr)rnrr rrrr r-r/r)eventZcontrolrr(mappingrNrfrGr}Z conditionr4Z radiogroupadd)rrnxyrrr ZmodalZmodelessZtrack_disk_spacefatalr;Z user_exitZ exit_dialogZinuseerrorr/ZcostingZprepZseldlgorderrbrZinstall_other_condZdont_install_other_condZcostZ whichusersgZprogressZmaintrrrrss                .......$$$ !!        "  % zbdist_msi.add_uicCsT|jr%d||j|jf}nd||jf}tjj|j|}|S)Nz%s.%s-py%s.msiz %s.%s.msi)rBr@rKrLrMrC)rrv base_namerwrrrrgs   z bdist_msi.get_installer_filename)r5r6r7 descriptionrZ user_optionsZboolean_optionsrQr}rHrUrerqrprrrsrgrrrrr8SsP      ( [ 6 6 & ?r8)rarKZdistutils.corerZdistutils.dir_utilrZdistutils.sysconfigrZdistutils.versionrZdistutils.errorsrZdistutils.utilrZ distutilsrrmr r r r r rrrr8rrrr s ">PK!I##8command/__pycache__/install_headers.cpython-35.opt-1.pycnu[ Yf@s0dZddlmZGdddeZdS)zdistutils.command.install_headers Implements the Distutils 'install_headers' command, to install C/C++ header files to the Python include directory.)Commandc@sgeZdZdZddgZdgZdd Zd d Zd d ZddZ ddZ dS)install_headerszinstall C/C++ header files install-dir=d$directory to install header files toforcef-force installation (overwrite existing files)cCsd|_d|_g|_dS)Nr) install_dirroutfiles)selfr F/opt/alt/python35/lib64/python3.5/distutils/command/install_headers.pyinitialize_optionss  z"install_headers.initialize_optionscCs|jddddS)NZinstallrr r)rr )rr)Zset_undefined_options)r r r rfinalize_optionss z install_headers.finalize_optionscCsf|jj}|sdS|j|jx9|D]1}|j||j\}}|jj|q-WdS)N) distributionheadersZmkpathr Z copy_filer append)r rheaderout_r r rrun!s  zinstall_headers.runcCs|jjpgS)N)rr)r r r r get_inputs+szinstall_headers.get_inputscCs|jS)N)r )r r r r get_outputs.szinstall_headers.get_outputsN)rrr)rrr ) __name__ __module__ __qualname__Z descriptionZ user_optionsZboolean_optionsrrrrrr r r rr s      rN)__doc__Zdistutils.corerrr r r rsPK!N!3command/__pycache__/bdist_dumb.cpython-35.opt-2.pycnu[ ]1@sddlZddlmZddlmZddlmZmZddlTddl m Z ddl m Z Gdd d eZ dS) N)Command) get_platform) remove_treeensure_relative)*)get_python_version)logc @seZdZdZd&dddefd'd d d dfd(d)d*d+d,g Zd ddgZddddiZd d!Zd"d#Z d$d%Z dS)- bdist_dumbz"create a "dumb" built distribution bdist-dir=d1temporary directory for creating the distributionz plat-name=pz;platform name to embed in generated filenames (default: %s)format=f>archive format to create (tar, gztar, bztar, xztar, ztar, zip)z keep-tempkz/keep the pseudo-installation tree around after z!creating the distribution archive dist-dir=-directory to put final built distributions in skip-buildN2skip rebuilding everything (for testing/debugging)relative6build the archive using relative paths(default: false)owner=u@Owner name used when creating a tar file [default: current user]group=gAGroup name used when creating a tar file [default: current group]posixgztarntzipcCsUd|_d|_d|_d|_d|_d|_d|_d|_d|_dS)Nr) bdist_dir plat_nameformat keep_tempdist_dir skip_buildrownergroup)selfr+//opt/alt/python35/lib64/python3.5/bdist_dumb.pyinitialize_options2s        zbdist_dumb.initialize_optionscCs|jdkr9|jdj}tjj|d|_|jdkry|jtj|_Wn%t k rt dtjYnX|j dddd dS) NZbdistZdumbz@don't know how to create dumb built distributions on platform %sr&r#r')r&r&)r#r#)r'r') r"Zget_finalized_command bdist_baseospathjoinr$default_formatnameKeyErrorDistutilsPlatformErrorZset_undefined_options)r*r.r+r+r,finalize_options=s  zbdist_dumb.finalize_optionsc Cs|js|jd|jddd}|j|_|j|_d|_tjd|j|jdd|jj |j f}t j j |j|}|js|j}nm|jjr|j|jkrtdt|jt|jfn!t j j |jt|j}|j||jd |d |jd |j}|jjrkt}nd }|jjjd ||f|jst|jd|jdS)NZbuildinstallZreinit_subcommandsrzinstalling to %sz%s.%szScan't make a dumb built distribution where base and platbase are different (%s, %s)root_dirr(r)anyr dry_run) r'Z run_commandZreinitialize_commandr"rootZwarn_dirrinfoZ distributionZ get_fullnamer#r/r0r1r&rZhas_ext_modulesZ install_baseZinstall_platbaser5reprr make_archiver$r(r)rZ dist_filesappendr%rr;)r*r7Zarchive_basenameZpseudoinstall_rootZ archive_rootfilenameZ pyversionr+r+r,runOs>              zbdist_dumb.run)r r r )rrr)rr r)rNr)rNr)rrr)rrr) __name__ __module__ __qualname__ descriptionrZ user_optionsZboolean_optionsr2r-r6rBr+r+r+r,r s6     r )r/Zdistutils.corerZdistutils.utilrZdistutils.dir_utilrrZdistutils.errorsZdistutils.sysconfigrZ distutilsrr r+r+r+r,s  PK!.~*7*7.command/__pycache__/sdist.cpython-35.opt-1.pycnu[ Yf-G@sdZddlZddlZddlZddlTddlmZddlmZddlm Z ddl m Z m Z m Z mZddlmZddlTdd lmZdd l mZdd lmZd d ZGddde ZdS)zadistutils.command.sdist Implements the Distutils 'sdist' command (create a source distribution).N)*)glob)warn)Command)dir_utildep_util file_util archive_util)TextFile)FileList)log) convert_pathcCsddlm}ddlm}g}x6|jD](}|jd|d||dfq3W|j||jddS)zoPrint all possible values for the 'formats' option (used by the "--help-formats" command-line option). r) FancyGetopt)ARCHIVE_FORMATSzformats=Nz.List of available source distribution formats:)Zdistutils.fancy_getoptrZdistutils.archive_utilrkeysappendsortZ print_help)rrformatsformatrZd?d@ZdAdBZdCdDZdEdFZdGdHZdIdJZdKdLZd S)Zsdistz6create a source distribution (tarball, zip file, etc.)cCs|jS)zYCallable used for the check sub-command. Placed here so user_options can view it)metadata_check)selfrrrchecking_metadata&szsdist.checking_metadata template=t5name of manifest template file [default: MANIFEST.in] manifest=m)name of manifest file [default: MANIFEST] use-defaultsNRinclude the default file set in the manifest [default; disable with --no-defaults] no-defaults"don't include the default file setprunespecifically exclude files/directories that should not be distributed (build tree, RCS/CVS dirs, etc.) [default; disable with --no-prune]no-prune$don't automatically exclude anything manifest-onlyoEjust regenerate the manifest and then stop (implies --force-manifest)force-manifestfkforcibly regenerate the manifest and carry on as usual. Deprecated: now the manifest is always regenerated.formats=6formats for source distribution (comma-separated list)z keep-tempkz1keep the distribution tree around after creating zarchive file(s) dist-dir=dFdirectory to put the source distribution archive(s) in [default: dist]metadata-check[Ensure that all required elements of meta-data are supplied. Warn if any missing. [default]owner=u@Owner name used when creating a tar file [default: current user]group=gAGroup name used when creating a tar file [default: current group]z help-formatsz#list available distribution formatsposixZgztarntzipcheckcCsyd|_d|_d|_d|_d|_d|_d|_d|_d|_d|_ d|_ d|_ d|_ dS)Nr) templatemanifest use_defaultsr' manifest_onlyZforce_manifestr keep_tempdist_dir archive_filesrownergroup)rrrrinitialize_optionsds            zsdist.initialize_optionsc Cs|jdkrd|_|jdkr0d|_|jd|jdkry|jtjg|_Wn%tk rtdtjYnXt j |j}|rt d||j dkrd|_ dS)NZMANIFESTz MANIFEST.inrz)__name__ __module__ __qualname__Z descriptionrZ user_optionsZboolean_optionsrZ help_optionsZ negative_optrNZ sub_commandsrMrRrVrYrTr_r`rarbr\r]rrUrrrrrr"sn           ( P     * r)__doc__rOstringrtypesrwarningsrZdistutils.corerZ distutilsrrrr Zdistutils.text_filer Zdistutils.errorsZdistutils.filelistr r Zdistutils.utilr rrrrrrs    "  PK!3command/__pycache__/build_clib.cpython-35.opt-1.pycnu[ YfV@srdZddlZddlmZddlTddlmZddlmZddZ Gd d d eZ dS) zdistutils.command.build_clib Implements the Distutils 'build_clib' command, to build a C/C++ library that is included in the module distribution and needed by an extension module.N)Command)*)customize_compiler)logcCsddlm}|dS)Nr)show_compilers)distutils.ccompilerr)rrA/opt/alt/python35/lib64/python3.5/distutils/command/build_clib.pyrsrc@seZdZdZd"d#d$d%d&gZdd gZdddefgZddZddZ ddZ ddZ ddZ ddZ d d!ZdS)' build_clibz/build C/C++ libraries used by Python extensions build-clib=b%directory to build C/C++ libraries to build-temp=t,directory to put temporary build by-productsdebugg"compile with debugging informationforcef2forcibly build everything (ignore file timestamps) compiler=cspecify the compiler typez help-compilerNzlist available compilerscCsUd|_d|_d|_d|_d|_d|_d|_d|_d|_dS)Nr) r build_temp libraries include_dirsdefineundefrrcompiler)selfrrr initialize_options4s        zbuild_clib.initialize_optionscCs|jdddd d d |jj|_|jrD|j|j|jdkrh|jjpbg|_t|jtr|jjtj |_dS) NZbuildrr rrr)rr )rr)rr)rr)rr) Zset_undefined_optionsZ distributionrcheck_library_listr isinstancestrsplitospathsep)r rrr finalize_optionsDs  zbuild_clib.finalize_optionscCs|js dSddlm}|d|jd|jd|j|_t|j|jdk rs|jj|j|j dk rx*|j D]\}}|jj ||qW|j dk rx!|j D]}|jj |qW|j |jdS)Nr) new_compilerrdry_runr)rrr)rr*rrrZset_include_dirsrZ define_macrorZundefine_macrobuild_libraries)r r)namevalueZmacrorrr run^s    zbuild_clib.runcCst|tstdx|D]}t|t rVt|dkrVtd|\}}t|ts}tdd|kstjdkrtj|krtd|dt|ts"tdq"Wd S) a`Ensure that the list of libraries is valid. `library` is presumably provided as a command option 'libraries'. This method checks that it is a list of 2-tuples, where the tuples are (library_name, build_info_dict). Raise DistutilsSetupError if the structure is invalid anywhere; just returns otherwise. z+'libraries' option must be a list of tuplesz*each element of 'libraries' must a 2-tuplezNfirst element of each tuple in 'libraries' must be a string (the library name)/z;bad library name '%s': may not contain directory separatorsrzMsecond element of each tuple in 'libraries' must be a dictionary (build info)N) r#listDistutilsSetupErrortuplelenr$r&sepdict)r rlibr, build_inforrr r"vs"   "   *zbuild_clib.check_library_listcCs>|js dSg}x$|jD]\}}|j|qW|S)N)rappend)r Z lib_nameslib_namer8rrr get_library_namess  zbuild_clib.get_library_namescCs|j|jg}xe|jD]Z\}}|jd}|dks]t|ttf rmtd||j|q W|S)Nsourceszfin 'libraries' option (library '%s'), 'sources' must be present and must be a list of source filenames)r"rgetr#r1r3r2extend)r filenamesr:r8r<rrr get_source_filess" zbuild_clib.get_source_filesc Csx|D]\}}|jd}|dksDt|ttf rTtd|t|}tjd||jd}|jd}|jj|d|j d|d|d|j }|jj ||d|j d|j qWdS)Nr<zfin 'libraries' option (library '%s'), 'sources' must be present and must be a list of source filenameszbuilding '%s' librarymacrosrZ output_dirr) r=r#r1r3r2rinforcompilerrZcreate_static_libr )r rr:r8r<rArZobjectsrrr r+s$"     zbuild_clib.build_libraries)r r r )rrr)rrr)rrr)rrr)__name__ __module__ __qualname__Z descriptionZ user_optionsZboolean_optionsrZ help_optionsr!r(r.r"r;r@r+rrrr r s*       $ r ) __doc__r&Zdistutils.corerZdistutils.errorsZdistutils.sysconfigrZ distutilsrrr rrrr s   PK!V 9command/__pycache__/install_egg_info.cpython-35.opt-2.pycnu[ ]" @sddlmZddlmZmZddlZddlZddlZGdddeZddZ dd Z d d Z dS) )Command)logdir_utilNc@sOeZdZdZdgZddZddZd d Zd d Zd S)install_egg_infoz8Install package's PKG-INFO metadata as an .egg-info file install-dir=ddirectory to install tocCs d|_dS)N) install_dir)selfr 5/opt/alt/python35/lib64/python3.5/install_egg_info.pyinitialize_optionssz#install_egg_info.initialize_optionscCs|jdddtt|jjtt|jjtjddf}t j j |j ||_ |j g|_dS)NZ install_libr z%s-%s-py%s.egg-info)r r )Zset_undefined_options to_filename safe_name distributionget_name safe_versionZ get_versionsysversionospathjoinr targetoutputs)r basenamer r r finalize_optionssz!install_egg_info.finalize_optionsc Cs|j}tjj|rGtjj| rGtj|d|jnmtjj|r||j tj |jfd|n8tjj|j s|j tj |j fd|j t jd||jst|ddd}|jjj|WdQRXdS)Ndry_runz Removing z Creating z Writing %swencodingzUTF-8)rrrisdirislinkrZ remove_treerexistsZexecuteunlinkr makedirsrinfoopenrZmetadataZwrite_pkg_file)r rfr r r run s %# zinstall_egg_info.runcCs|jS)N)r)r r r r get_outputs.szinstall_egg_info.get_outputsN)rrr) __name__ __module__ __qualname__ descriptionZ user_optionsr rr(r)r r r r r s    rcCstjdd|S)Nz[^A-Za-z0-9.]+-)resub)namer r r r6srcCs%|jdd}tjdd|S)N .z[^A-Za-z0-9.]+r.)replacer/r0)rr r r r>srcCs|jddS)Nr._)r4)r1r r r rHsr) Z distutils.cmdrZ distutilsrrrrr/rrrrr r r r s $+  PK!3command/__pycache__/build_clib.cpython-35.opt-2.pycnu[ ]V@slddlZddlmZddlTddlmZddlmZddZGdd d eZ dS) N)Command)*)customize_compiler)logcCsddlm}|dS)Nr)show_compilers)distutils.ccompilerr)rr//opt/alt/python35/lib64/python3.5/build_clib.pyrsrc@seZdZdZd"d#d$d%d&gZdd gZdddefgZddZddZ ddZ ddZ ddZ ddZ d d!ZdS)' build_clibz/build C/C++ libraries used by Python extensions build-clib=b%directory to build C/C++ libraries to build-temp=t,directory to put temporary build by-productsdebugg"compile with debugging informationforcef2forcibly build everything (ignore file timestamps) compiler=cspecify the compiler typez help-compilerNzlist available compilerscCsUd|_d|_d|_d|_d|_d|_d|_d|_d|_dS)Nr) r build_temp libraries include_dirsdefineundefrrcompiler)selfrrr initialize_options4s        zbuild_clib.initialize_optionscCs|jdddd d d |jj|_|jrD|j|j|jdkrh|jjpbg|_t|jtr|jjtj |_dS) NZbuildrr rrr)rr )rr)rr)rr)rr) Zset_undefined_optionsZ distributionrcheck_library_listr isinstancestrsplitospathsep)r rrr finalize_optionsDs  zbuild_clib.finalize_optionscCs|js dSddlm}|d|jd|jd|j|_t|j|jdk rs|jj|j|j dk rx*|j D]\}}|jj ||qW|j dk rx!|j D]}|jj |qW|j |jdS)Nr) new_compilerrdry_runr)rrr)rr*rrrZset_include_dirsrZ define_macrorZundefine_macrobuild_libraries)r r)namevalueZmacrorrr run^s    zbuild_clib.runcCst|tstdx|D]}t|t rVt|dkrVtd|\}}t|ts}tdd|kstjdkrtj|krtd|dt|ts"tdq"WdS) Nz+'libraries' option must be a list of tuplesz*each element of 'libraries' must a 2-tuplezNfirst element of each tuple in 'libraries' must be a string (the library name)/z;bad library name '%s': may not contain directory separatorsrzMsecond element of each tuple in 'libraries' must be a dictionary (build info)) r#listDistutilsSetupErrortuplelenr$r&sepdict)r rlibr, build_inforrr r"vs"   "   *zbuild_clib.check_library_listcCs>|js dSg}x$|jD]\}}|j|qW|S)N)rappend)r Z lib_nameslib_namer8rrr get_library_namess  zbuild_clib.get_library_namescCs|j|jg}xe|jD]Z\}}|jd}|dks]t|ttf rmtd||j|q W|S)Nsourceszfin 'libraries' option (library '%s'), 'sources' must be present and must be a list of source filenames)r"rgetr#r1r3r2extend)r filenamesr:r8r<rrr get_source_filess" zbuild_clib.get_source_filesc Csx|D]\}}|jd}|dksDt|ttf rTtd|t|}tjd||jd}|jd}|jj|d|j d|d|d|j }|jj ||d|j d|j qWdS)Nr<zfin 'libraries' option (library '%s'), 'sources' must be present and must be a list of source filenameszbuilding '%s' librarymacrosrZ output_dirr) r=r#r1r3r2rinforcompilerrZcreate_static_libr )r rr:r8r<rArZobjectsrrr r+s$"     zbuild_clib.build_libraries)r r r )rrr)rrr)rrr)rrr)__name__ __module__ __qualname__ descriptionZ user_optionsZboolean_optionsrZ help_optionsr!r(r.r"r;r@r+rrrr r s*       $ r ) r&Zdistutils.corerZdistutils.errorsZdistutils.sysconfigrZ distutilsrrr rrrr s   PK!552command/__pycache__/bdist_rpm.cpython-35.opt-2.pycnu[ ]T@sddlZddlZddlZddlmZddlmZddlmZddl m Z ddl Tddl m Z ddlmZGd d d eZdS) N)Command)DEBUG) get_platform) write_file)*)get_python_version)logc+@seZdZdZdfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|d}d~ddddddddddddddddg)Zd4d9d=d2dUgZd7d4d;d9d?d=iZdXdYZdZd[Zd\d]Z d^d_Z d`daZ dbdcZ dddeZ dS) bdist_rpmzcreate an RPM distribution bdist-base=N/base directory for creating built distributions rpm-base=dbase directory for creating RPMs (defaults to "rpm" under --bdist-base; must be specified for RPM 2) dist-dir=dDdirectory to put final RPM files in (and .spec files if --spec-only)python=Mpath to Python interpreter to hard-code in the .spec file (default: "python") fix-pythonLhard-code the exact path to the current Python interpreter in the .spec file spec-onlyonly regenerate spec file source-onlyonly generate source RPM binary-onlyonly generate binary RPM use-bzip27use bzip2 instead of gzip to create source distributiondistribution-name=gname of the (Linux) distribution to which this RPM applies (*not* the name of the module distribution!)group=9package classification [default: "Development/Libraries"]release=RPM release numberserial=RPM serial numbervendor=aRPM "vendor" (eg. "Joe Blow ") [default: maintainer or author from setup script] packager=ARPM packager (eg. "Jane Doe ")[default: vendor] doc-files=6list of documentation files (space or comma-separated) changelog= RPM changelogicon=name of icon file provides=%capabilities provided by this package requires=%capabilities required by this package conflicts=-capabilities which conflict with this packagebuild-requires=+capabilities required to build this package obsoletes=*capabilities made obsolete by this package no-autoreq+do not automatically calculate dependencies keep-tempk"don't clean up RPM build directory no-keep-temp&clean up RPM build directory [default]use-rpm-opt-flags8compile with RPM_OPT_FLAGS when building from source RPMno-rpm-opt-flags&do not pass any RPM CFLAGS to compiler rpm3-mode"RPM 3 compatibility mode (default) rpm2-modeRPM 2 compatibility mode prep-script=3Specify a script for the PREP phase of RPM building build-script=4Specify a script for the BUILD phase of RPM building pre-install=:Specify a script for the pre-INSTALL phase of RPM buildinginstall-script=6Specify a script for the INSTALL phase of RPM building post-install=;Specify a script for the post-INSTALL phase of RPM buildingpre-uninstall=rnroREADME README.txtrk1rlrirprqrrrsrtrurvrwrxryrzr|r}r~rrr)rr)Z ensure_stringrZ get_contactZget_contact_emailZensure_string_list isinstancerolistrrexistsappend_format_changelogrpZensure_filename)rZreadmerrrrs>    !                  zbdist_rpm.finalize_package_datac CstrPtdtd|jtd|jtd|jtd|j|jrr|j}|j|nNi}x;d(D]3}t j j |j |||<|j||qW|d}t j j |d |j j}|jt||jfd ||jrdS|j jdd}|jd }|jrOdg|_n dg|_|jd ||j _|jd}|d}|j|||jrt j j|jr|j|j|ntd|jtjddg} t j jdst j jdr(dg} |jrA| jdn&|j rZ| jdn | jd| j!dd|j"g|j#r| j!ddt j j$|j g|j%s| jd|j&r| jd| j|d} | d } d!| d"} d#| | |f} t j'| }zg}d}xP|j(}|sNP|j)j*}|j|d$|dkr;|d}q;W|j+}|rt,d%t-| Wd|j+X|j.| |j/s|j j0rt1}nd&}|j sbt j j |d |}|j2||jt j j |j|}|j jjd'||f|jsx|D]}t j j |d |}t j j|rr|j2||jt j j |jt j j3|}|j jjd'||fqrWdS))Nzbefore _get_package_data():zvendor =z packager =z doc_files =z changelog =SOURCESSPECSBUILDRPMSSRPMSz%s.specz writing '%s'sdistbztargztarrzicon file '%s' does not existz building RPMsrz/usr/bin/rpmbuildz /bin/rpmbuildZrpmbuildz-bsz-bbz-baz--definez __python %sz _topdir %sz--cleanz--quietz%{name}-%{version}-%{release}z.src.rpmz%{arch}/z .%{arch}.rpmz%rpm -q --qf '%s %s\n' --specfile '%s'r_zFailed to execute: %sanyr )rrrrr)4rprintrmrnrorprerbZmkpathrrrrarget_nameZexecuter_make_spec_fileZ dist_filesZreinitialize_commandrhformatsZ run_commandZget_archive_filesZ copy_filerqrZDistutilsFileErrorrinforgrrfextendrcrabspathrr\popenreadlinestripsplitcloseZDistutilsExecErrorreprspawndry_runrrZ move_filebasename)rZspec_dirZrpm_dirrZ spec_pathZsaved_dist_filesrsourceZ source_dirZrpm_cmdZ nvr_stringZsrc_rpmZ non_src_rpmZq_cmdoutZ binary_rpmsZ source_rpmlinelstatusZ pyversionZsrpmfilenamerrrrruns                                          z bdist_rpm.runcCs"tjj|jtjj|S)N)rrrrbr)rrrrr _dist_pathszbdist_rpm._dist_pathc CsKd|jjd|jjjddd|jjd|jjdddd|jjg}tjd }d jd d |j D}d }d}|j||}||kr|j d|j d|d |j dddg|j r|j dn |j d|j d|jj d|jddg|jsy|jjs|j dn|j d|jxxdJD]p}t||j}t|tr|j d"|d#j|fq|dk r|j d"||fqW|jjd$kr7|j d%|jj|jrT|j d&|j|jrz|j d'd#j|j|jr|j d(tjj|j|jr|j d)|j dd*|jjgd+|jtjjtj d,f}d-|} |j!rd.| } d/|} dKd3d4| fd5d6| fdLdMdNdOdPdQg } x| D]|\} } }t|| }|s|r_|j ddD| g|r|j t"|dEj#j$d q_|j |q_W|j ddFdGg|j%r|j dHd#j|j%|j&rG|j ddIg|j |j&|S)RNz %define name z%define version -_z%define unmangled_version z%define release z Summary: zrpm --eval %{__os_install_post} cSs g|]}d|jqS)z %s \)r).0rrrr s z-bdist_rpm._make_spec_file..zbrp-python-bytecompile \ z%brp-python-bytecompile %{__python} \ z2# Workaround for http://bugs.python.org/issue14443z%define __os_install_post z Name: %{name}zVersion: %{version}zRelease: %{release}z-Source0: %{name}-%{unmangled_version}.tar.bz2z,Source0: %{name}-%{unmangled_version}.tar.gzz License: zGroup: z>BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildrootzPrefix: %{_prefix}zBuildArch: noarchz BuildArch: %sVendorPackagerProvidesRequires Conflicts Obsoletesz%s: %s ZUNKNOWNzUrl: zDistribution: zBuildRequires: zIcon: z AutoReq: 0z %descriptionz%s %srz%s buildzenv CFLAGS="$RPM_OPT_FLAGS" z>%s install -O1 --root=$RPM_BUILD_ROOT --record=INSTALLED_FILESr{rr&%setup -n %{name}-%{unmangled_version}Zbuildrsinstallrtcleanrurm -rf $RPM_BUILD_ROOT verifyscriptrvprerwpostrxpreunrypostunrz%rz%files -f INSTALLED_FILESz%defattr(-,root,root)z%doc z %changelog)rrrrrr)r{rrr)rrur)rrvN)rrwN)rrxN)rryN)rrzN)'rrZ get_versionreplacerkZget_description subprocess getoutputr splitlinesrrrhZ get_licenserjrrgetattrlowerrrZget_urlrirrqrrrrZget_long_descriptionrcrargvropenreadrrorp)rZ spec_fileZ vendor_hookZproblemZfixedZ fixed_hookZfieldvalZdef_setup_callZ def_buildZ install_cmdZscript_optionsZrpm_optattrdefaultrrrrs          #        &       (    zbdist_rpm._make_spec_filecCs|s |Sg}x|jjdD]i}|j}|ddkr^|jd|gq&|ddkr~|j|q&|jd|q&W|ds|d=|S)Nrrrrrz )rrrr)rrpZ new_changelogrrrrr3s  zbdist_rpm._format_changelog)r Nr )r Nr )rrr)rNr)rNr)rNr)rNr)rNr)rNr)rNr)rNr )r!Nr")r#Nr$)r%Nr&)r'Nr()r)Nr*)r+Nr,)r-Nr.)r/Nr0)r1Nr2)r3Nr4)r5Nr6)r7Nr8)r9Nr:)r;r<r=)r>Nr?)r@NrA)rBNrC)rDNrE)rFNrG)rHNrI)rJNrK)rLNrM)rNNrO)rPNrQ)rRNrS)rTNrU)rVNrW)rXNrY)rZNr[)r\r]r^)__name__ __module__ __qualname__ descriptionZ user_optionsZboolean_optionsZ negative_optrrrrrrrrrrrr s      -  -  r )rrrZdistutils.corerZdistutils.debugrZdistutils.utilrZdistutils.file_utilrZdistutils.errorsZdistutils.sysconfigrZ distutilsrr rrrrs$ PK!  (command/__pycache__/clean.cpython-35.pycnu[ Yf @s\dZddlZddlmZddlmZddlmZGdddeZdS)zBdistutils.command.clean Implements the Distutils 'clean' command.N)Command) remove_tree)logc@s[eZdZdZddddddgZdgZddZddZddZdS)cleanz-clean up temporary files from 'build' command build-base=b2base build directory (default: 'build.build-base') build-lib=N}tjj|rt|d|jqctj d|qcW|jsy'tj |jtjd|jWntk rYnXdS)Ndry_runz%'%s' does not exist -- can't clean itz removing '%s')ospathexistsrrrrdebugrrrrwarnrmdirrinfoOSError)rZ directoryrrrrun1s$        z clean.run)rrr)r Nr )r r r )rNr)rNr)rrr) __name__ __module__ __qualname__Z descriptionZ user_optionsZboolean_optionsrrr(rrrrr s"     r) __doc__r Zdistutils.corerZdistutils.dir_utilrZ distutilsrrrrrrs  PK![?>>2command/__pycache__/build_ext.cpython-35.opt-2.pycnu[ ]{@sddlZddlZddlZddlZddlmZddlTddlmZm Z ddlm Z ddl m Z ddl mZddlmZdd lmZdd lmZejd Zd d ZGdddeZdS)N)Command)*)customize_compilerget_python_version)get_config_h_filename) newer_group) Extension) get_platform)log) USER_BASEz3^[a-zA-Z_][a-zA-Z_0-9]*(\.[a-zA-Z_][a-zA-Z_0-9]*)*$cCsddlm}|dS)Nr)show_compilers)distutils.ccompilerr )r r./opt/alt/python35/lib64/python3.5/build_ext.pyr sr c@seZdZdZdejZd`dad d d efd d ddfdddefdbdcdddddefdedfdgdhdidjdkdldmdngZd d%d(d1d8gZ d:d2d;e fgZ d<d=Z d>d?Z d@dAZdBdCZdDdEZdFdGZdHdIZdJdKZdLdMZejdNdOZdPdQZdRdSZdTdUZdVdWZdXdYZdZd[Zd\d]Zd^d_Zd2S)o build_extz8build C/C++ extensions (compile/link to build directory)z (separated by '%s') build-lib=b(directory for compiled extension modules build-temp=t1directory for temporary files (build by-products)z plat-name=pz>platform name to cross-compile for, if supported (default: %s)inplaceiz=ignore build-lib and put compiled extensions into the source z,directory alongside your pure Python modulesz include-dirs=Iz.list of directories to search for header filesdefine=DC preprocessor macros to defineundef=U!C preprocessor macros to undefine libraries=l!external C libraries to link withz library-dirs=Lz.directories to search for external C librariesrpath=R7directories to search for shared C libraries at runtime link-objects=O2extra explicit link objects to include in the linkdebugg'compile/link with debugging informationforcef2forcibly build everything (ignore file timestamps) compiler=cspecify the compiler type parallel=jnumber of parallel build jobsswig-cppN)make SWIG create C++ files (default is C) swig-opts=!list of SWIG command line optionsswig=path to the SWIG executableuser#add user include, library and rpathz help-compilerzlist available compilerscCsd|_d|_d|_d|_d|_d|_d|_d|_d|_d|_ d|_ d|_ d|_ d|_ d|_d|_d|_d|_d|_d|_d|_dS)Nr) extensions build_lib plat_name build_temprpackage include_dirsdefineundef libraries library_dirsrpath link_objectsr+r.compilerswigswig_cpp swig_optsr=parallel)selfrrrinitialize_optionsjs*                    zbuild_ext.initialize_optionsc Csrddlm}|jdd'd(d)d*d+d,d-|jdkrP|jj|_|jj|_|j}|jd d }|j dkr|jj pg|_ t |j t r|j j t j|_ tjtjkr|j jt jjtjd |j j|||kr+|j j||jd|jd|jdkr]g|_|jdkrxg|_n*t |jt r|jj t j|_|jdkrg|_n*t |jt r|jj t j|_t jdkrC|jjt jjtjdtjtjkrL|jjt jjtjd|jrst jj|jd|_nt jj|jd|_|j jt jjtttdd}|r|jj||j dkrd}n|j dd}t jjtjd}|r3t jj||}|jj|tj!dddksutj!dddkrtj"j#t jjtjdr|jjt jjtjddt$dn|jjd|j%d r|j&s|jj|j%d!n|jjd|j'rP|j'j d"}d#d$|D|_'|j(rn|j(j d"|_(|j)dkrg|_)n|j)j d%|_)|j*r%t jjt+d }t jjt+d} t jj,|r|j j|t jj,| r%|jj| |jj| t |j-t rnyt.|j-|_-Wnt/k rmt0d&YnXdS).Nr) sysconfigZbuildr@rBrKr+r.rOrAZ plat_specificincluderGrJntZlibsZDebugZRelease_homewin32ZPCbuildcygwinatheosbinlibpythonconfig.Py_ENABLE_SHAREDLIBDIR,cSsg|]}|dfqS)1r).0symbolrrr s z.build_ext.finalize_options.. zparallel should be an integer)r@r@)rBrB)rKrK)r+r+)r.r.)rOrO)rArA)1 distutilsrRZset_undefined_optionsrC distributionZ ext_packageZ ext_modulesr?Zget_python_incrD isinstancestrsplitospathsepsys exec_prefixbase_exec_prefixappendpathjoinZensure_string_listrGrHrInameprefixr+rBdirnamergetattrrAplatform executable startswithrget_config_varZ python_buildrErFrNr=r isdirrOint ValueErrorZDistutilsOptionError) rPrRZ py_includeZplat_py_include _sys_homesuffixZnew_libZdefinesZ user_includeZuser_librrrfinalize_optionss  "      ""  2$        zbuild_ext.finalize_optionsc Csddlm}|jsdS|jjrj|jd}|jj|jpSg|j j |j |d|j d|j d|jd|j|_ t|j tjdkr|jtkr|j j|j|jdk r|j j|j|jdk r9x*|jD]\}}|j j||qW|jdk rlx!|jD]}|j j|qRW|jdk r|j j|j|j dk r|j j|j |jdk r|j j|j|j dk r|j j!|j |j"dS) Nr) new_compiler build_clibrKverbosedry_runr.rU)#r rr?rjZhas_c_librariesget_finalized_commandrGextendZget_library_namesrHrsrrKrrr.rrnrvrAr Z initializerDZset_include_dirsrEZ define_macrorFZundefine_macroZ set_librariesZset_library_dirsrIZset_runtime_library_dirsrJZset_link_objectsbuild_extensions)rPrrrvvaluemacrorrrruns>    !z build_ext.runc Cst|tstdxt|D]\}}t|trFq(t|t sht|dkrttd|\}}tjd|t|t ot j |stdt|t stdt||d}x9dD]1}|j |}|dk rt|||qW|j d|_d|krPtjd|j d}|rg|_g|_x|D]~} t| tot| dkstdt| dkr|jj| dq~t| dkr~|jj| q~W||||j|jg}x!|jD]}|j|jq W|S)N)rr?rr)rP filenamesrrrrget_source_filess zbuild_ext.get_source_filescCsG|j|jg}x*|jD]}|j|j|jq W|S)N)rr?rsget_ext_fullpathrv)rPZoutputsrrrr get_outputss zbuild_ext.get_outputscCs4|j|j|jr&|jn |jdS)N)rr?rO_build_extensions_parallel_build_extensions_serial)rPrrrrs  zbuild_ext.build_extensionscsj}jdkr$tj}yddlm}Wntk rRd}YnX|dkrmjdS|d|jfddjD}xAtj|D]-\}}j ||j WdQRXqWWdQRXdS)NTr)ThreadPoolExecutor max_workerscs%g|]}jj|qSr)submitbuild_extension)rer)executorrPrrrgs z8build_ext._build_extensions_parallel..) rOrn cpu_countconcurrent.futuresr ImportErrorrr?zip_filter_build_errorsresult)rPworkersrfuturesrZfutr)rrPrrs        z$build_ext._build_extensions_parallelc Cs<x5|jD]*}|j||j|WdQRXq WdS)N)r?rr)rPrrrrrsz"build_ext._build_extensions_serialccsdy dVWnTtttfk r_}z+|js3|jd|j|fWYdd}~XnXdS)Nz"building extension "%s" failed: %s)ZCCompilerErrorZDistutilsErrorZ CompileErrorZoptionalrrv)rPrerrrrs   zbuild_ext._filter_build_errorsc Cs|j}|dks+t|ttf r>td|jt|}|j|j}||j}|jpt ||dst j d|jdSt j d|j|j ||}|jpg}|jdd}x!|jD]}|j|fqW|jj|d|jd|d|jd|j d |d |j}|dd|_|jrt|j|j|jpg}|jp|jj|} |jj||d |j|d |jd |jd |d|j |d|j d|jd| dS)Nzjin 'ext_modules' option (extension '%s'), 'sources' must be present and must be a list of source filenamesZnewerz$skipping '%s' extension (up-to-date)zbuilding '%s' extensionZ output_dirrrDr+Zextra_postargsdependsrGrHrexport_symbolsrBZ target_lang)!rrkrrrrvrrr.rr r+info swig_sourcesrrrrsrKcompilerBrDZ_built_objectsrrrlanguageZdetect_languageZlink_shared_object get_librariesrHrget_export_symbols) rPrrext_pathr extra_argsrrFZobjectsrrrrrsN "              zbuild_ext.build_extensioncCsg}g}i}|jr(tjd|jsOd|jksOd|jkrXd}nd}xr|D]j}tjj|\}} | dkr|j|d||j||d ||            zbuild_ext.swig_sourcescCstjdkrdStjdkrixWd D]5}tjjd|d}tjj|r)|Sq)WdSntd tjdS) NposixrLrU1.31.21.1z c:\swig%szswig.exez>I don't know how to find (much less run) SWIG on platform '%s')rrr)rnrvrtruisfileZDistutilsPlatformError)rPZversfnrrrrfs zbuild_ext.find_swigcCs|j|}|jd}|j|d}|jsstjj|dd|g}tjj|j|Sdj|dd}|jd}tjj |j |}tjj||S)Nr`rSrbuild_pyrrr) get_ext_fullnamermget_ext_filenamerrnrtrur@rabspathZget_package_dir)rPrfullnameZmodpathfilenamerCrZ package_dirrrrr~s #zbuild_ext.get_ext_fullpathcCs&|jdkr|S|jd|SdS)Nr`)rC)rPrrrrrszbuild_ext.get_ext_fullnamecCs?ddlm}|jd}|d}tjj||S)Nr)r}r` EXT_SUFFIX)distutils.sysconfigr}rmrnrtru)rPrr}rZ ext_suffixrrrrs zbuild_ext.get_ext_filenamecCs@d|jjdd}||jkr9|jj||jS)NZPyInit_r`rSr)rvrmrrs)rPrZ initfunc_namerrrrszbuild_ext.get_export_symbolscCs3tjdkrddlm}t|j|szd}|jrJ|d}|tjd?tjd?d@f}|j|gS|jSntjdd d krd }|tjd?tjd?d@f}|j|gStjdd d krdd l m }d }|tjd?tjd?d@f}g}xS|j dj D]<}|j dro|j|ddq@|j|q@W|j|dg|Stjdkr|jStjdddkr|jSdd l m }|j dr(djtjd?tjd?d@|j d}|j|gS|jSdS)NrWr) MSVCCompilerz python%d%dZ_drYrZz python%d.%dr[)rRSHLIBSz-lrmdarwinaixraz python{}.{}{}ABIFLAGS)rprzZdistutils._msvccompilerrrkrKr+ hexversionrGrirRr}rmr|rsformat)rPrrtemplateZ pythonlibrRextrar]rrrrsJ    zbuild_ext.get_libraries)rrr)rrr)rrr)rrr )r!r"r#)r%r&r')r(r)r*)r+r,r-)r.r/r0)r1r2r3)r4r5r6)r7Nr8)r9Nr:)r;Nr<)r=Nr>) __name__ __module__ __qualname__ descriptionrnroZsep_byr Z user_optionsZboolean_optionsr Z help_optionsrQrrrrrrrr contextlibcontextmanagerrrrrrrrrrrrrrr!s~        @ N     K 6   r)rrnrerpZdistutils.corerZdistutils.errorsrrrrZdistutils.dep_utilrZdistutils.extensionrZdistutils.utilr rir Zsiter rrr rrrrrs       PK! 4command/__pycache__/install_lib.cpython-35.opt-1.pycnu[ Yf @sjdZddlZddlZddlZddlmZddlmZdZ GdddeZ dS)zkdistutils.command.install_lib Implements the Distutils 'install_lib' command (install all Python modules).N)Command)DistutilsOptionErrorz.pyc @seZdZdZd*d+d,d-d.d/d0gZdd dgZdd iZddZddZddZ ddZ ddZ d d!Z d"d#Z d$d%Zd&d'Zd(d)ZdS)1 install_libz7install all Python modules (extensions and pure Python) install-dir=ddirectory to install to build-dir=b'build directory (where to install from)forcef-force installation (overwrite existing files)compileccompile .py to .pyc [default] no-compileNdon't compile .py files optimize=Olalso compile with optimization: -O1 for "python -O", -O2 for "python -OO", and -O0 to disable [default: -O0] skip-buildskip the build stepscCs:d|_d|_d|_d|_d|_d|_dS)Nr) install_dir build_dirr roptimize skip_build)selfrB/opt/alt/python35/lib64/python3.5/distutils/command/install_lib.pyinitialize_options3s      zinstall_lib.initialize_optionsc Cs|jddddddd|jdkr7d |_|jdkrOd |_t|jtsy+t|j|_|jdkrtWn$ttfk rtdYnXdS)Ninstall build_librrrr rrrTFrzoptimize must be 0, 1, or 2)r!r)rr)r r )rr)rr)rr)rr"r#)Zset_undefined_optionsrr isinstanceintAssertionError ValueErrorr)rrrrfinalize_options<s$    zinstall_lib.finalize_optionscCsB|j|j}|dk r>|jjr>|j|dS)N)buildr distributionhas_pure_modules byte_compile)routfilesrrrrunVs  zinstall_lib.runcCsE|jsA|jjr%|jd|jjrA|jddS)Nbuild_py build_ext)rr*r+Z run_commandhas_ext_modules)rrrrr)fs   zinstall_lib.buildcCsLtjj|jr0|j|j|j}n|jd|jdS|S)Nz3'%s' does not exist -- no Python modules to install)ospathisdirrZ copy_treerwarn)rr-rrrr ms   zinstall_lib.installc Cstjr|jddSddlm}|jdj}|jrm||ddd|jd|d|j |j dkr||d|j d|jd|d |j d|j dS) Nz%byte-compiling is disabled, skipping.r)r,r rr prefixdry_runverbose) sysdont_write_bytecoder5Zdistutils.utilr,get_finalized_commandrootrr r7rr8)rfilesr,Z install_rootrrrr,vs    zinstall_lib.byte_compilec Cs|s gS|j|}|j}t||}t|ttj}g}x4|D],} |jtjj|| |dqZW|S)N) r; get_outputsgetattrlenr2sepappendr3join) rZhas_anyZ build_cmdZ cmd_optionZ output_dirZ build_filesrZ prefix_lenZoutputsfilerrr_mutate_outputss  *zinstall_lib._mutate_outputscCsg}x|D]}tjjtjj|d}|tkrDq |jrl|jtjj |dd|j dkr |jtjj |d|j q W|S)Nr" optimizationr) r2r3splitextnormcasePYTHON_SOURCE_EXTENSIONrrB importlibutilcache_from_sourcer)rZ py_filenamesZbytecode_filesZpy_fileZextrrr_bytecode_filenamess "  zinstall_lib._bytecode_filenamescCsu|j|jjdd|j}|jr?|j|}ng}|j|jjdd|j}|||S)zReturn the list of files that would be installed if this command were actually run. Not affected by the "dry-run" flag or whether modules have actually been built yet. r/r!r0)rEr*r+rrrNr1)rZ pure_outputsZbytecode_outputsZ ext_outputsrrrr>s   zinstall_lib.get_outputscCslg}|jjr7|jd}|j|j|jjrh|jd}|j|j|S)zGet the list of files that are input to this command, ie. the files that get installed as they are named in the build tree. The files in this list correspond one-to-one to the output filenames returned by 'get_outputs()'. r/r0)r*r+r;extendr>r1)rZinputsr/r0rrr get_inputsszinstall_lib.get_inputs)rrr)rr r )r r r )rrr)rNr)rrr)rNr)__name__ __module__ __qualname__Z descriptionZ user_optionsZboolean_optionsZ negative_optrr(r.r)r r,rErNr>rPrrrrrs*          r) __doc__r2importlib.utilrKr9Zdistutils.corerZdistutils.errorsrrJrrrrrs   PK!z 5command/__pycache__/install_data.cpython-35.opt-1.pycnu[ Yf @sRdZddlZddlmZddlmZmZGdddeZdS)zdistutils.command.install_data Implements the Distutils 'install_data' command, for installing platform-independent data files.N)Command) change_root convert_pathc@sjeZdZdZdddgZdgZd d Zd dZddZddZ ddZ dS) install_datazinstall data files install-dir=dIbase directory for installing data files (default: installation base dir)root=Ns PK![n_ii8command/__pycache__/install_headers.cpython-35.opt-2.pycnu[ ]@s*ddlmZGdddeZdS))Commandc@sgeZdZdZddgZdgZdd Zd d Zd d ZddZ ddZ dS)install_headerszinstall C/C++ header files install-dir=d$directory to install header files toforcef-force installation (overwrite existing files)cCsd|_d|_g|_dS)Nr) install_dirroutfiles)selfr 4/opt/alt/python35/lib64/python3.5/install_headers.pyinitialize_optionss  z"install_headers.initialize_optionscCs|jddddS)Ninstallrr r)rr )rr)Zset_undefined_options)r r r rfinalize_optionss z install_headers.finalize_optionscCsf|jj}|sdS|j|jx9|D]1}|j||j\}}|jj|q-WdS)N) distributionheadersZmkpathr Z copy_filer append)r rheaderout_r r rrun!s  zinstall_headers.runcCs|jjpgS)N)rr)r r r r get_inputs+szinstall_headers.get_inputscCs|jS)N)r )r r r r get_outputs.szinstall_headers.get_outputsN)rrr)rrr ) __name__ __module__ __qualname__ descriptionZ user_optionsZboolean_optionsrrrrrr r r rr s      rN)Zdistutils.corerrr r r rsPK!'ENPP6command/__pycache__/build_scripts.cpython-35.opt-1.pycnu[ YfW@sdZddlZddlZddlmZddlmZddlmZddl m Z ddl m Z m Z ddlmZddlZejd ZGd d d eZGd d d ee ZdS)zRdistutils.command.build_scripts Implements the Distutils 'build_scripts' command.N)ST_MODE) sysconfig)Command)newer) convert_path Mixin2to3)logs^#!.*python[0-9.]*([ ].*)?$c@sjeZdZdZdddgZdgZd d Zd dZddZddZ ddZ dS) build_scriptsz("build" scripts (copy and fixup #! line) build-dir=ddirectory to "build" (copy) toforcef1forcibly build everything (ignore file timestamps executable=e*specify final destination interpreter pathcCs1d|_d|_d|_d|_d|_dS)N) build_dirscriptsr executableoutfiles)selfrD/opt/alt/python35/lib64/python3.5/distutils/command/build_scripts.pyinitialize_optionss     z build_scripts.initialize_optionscCs)|jdddd|jj|_dS) NZbuildr rr r)r r)r r )rr)Zset_undefined_optionsZ distributionr)rrrrfinalize_options%s  zbuild_scripts.finalize_optionscCs|jS)N)r)rrrrget_source_files,szbuild_scripts.get_source_filescCs|js dS|jdS)N)r copy_scripts)rrrrrun/s zbuild_scripts.runc"Cs|j|jg}g}x|jD]}d}t|}tjj|jtjj|}|j||j rt || rt j d|q&yt |d}Wn$tk r|jsd}Yn|Xtj|j\}}|jd|j} | s!|jd|q&tj| } | rQd}| jdpNd } |rt jd ||j|j||jstjs|j} n:tjjtjd d tjd tjdf} tj| } d| | d} y| jdWn'tk r-t dj!| YnXy| j|Wn*tk rkt dj!| |YnXt |d'}|j"| |j#|j$WdQRX|r|j%q&|r|j%|j||j&||q&Wtj'dkr|x|D]y}|jr!t jd|qtj(|t)d@}|dBd@}||krt jd|||tj*||qW||fS)a"Copy each script listed in 'self.scripts'; if it's marked as a Python script in the Unix way (first line matches 'first_line_re', ie. starts with "\#!" and contains "python"), then adjust the first line to refer to the current Python interpreter as we copy. Fznot copying %s (up-to-date)rbNrz%s is an empty file (skipping)Tzcopying and adjusting %s -> %sBINDIRz python%s%sVERSIONEXEs#!s zutf-8z.The shebang ({!r}) is not decodable from utf-8zAThe shebang ({!r}) is not decodable from the script encoding ({})wbposixzchanging mode of %siimz!changing mode of %s from %o to %o)+Zmkpathrrrospathjoinbasenameappendr rrdebugopenOSErrordry_runtokenizedetect_encodingreadlineseekwarn first_line_rematchgroupinforZ python_buildrget_config_varfsencodedecodeUnicodeDecodeError ValueErrorformatwrite writelines readlinescloseZ copy_filenamestatrchmod)rr updated_filesZscriptZadjustZoutfilerencodinglinesZ first_liner6Z post_interprZshebangZoutffileZoldmodeZnewmoderrrr5s $                         zbuild_scripts.copy_scriptsN)r r r )r rr)rrr) __name__ __module__ __qualname__Z descriptionZ user_optionsZboolean_optionsrrrrrrrrrr s       r c@seZdZddZdS)build_scripts_2to3cCs5tj|\}}|js+|j|||fS)N)r rr/Zrun_2to3)rrrFrrrrs  zbuild_scripts_2to3.copy_scriptsN)rJrKrLrrrrrrMs rM)__doc__r'rerDrZ distutilsrZdistutils.corerZdistutils.dep_utilrZdistutils.utilrrrr0compiler5r rMrrrrs PK!d?d@dAg ZddgZd$dd%efgZd&d'Z d(d)Z d*d+Z d,d-Z d.d/Z d0d1Zd2d3Zd4e fd5e fd6efd7efgZdS)Bbuildz"build everything needed to install build-base=b base directory for build librarybuild-purelib=N2build directory for platform-neutral distributionsbuild-platlib=3build directory for platform-specific distributionsz build-lib=z9build directory for all distribution (defaults to either zbuild-purelib or build-platlibbuild-scripts=build directory for scripts build-temp=ttemporary build directoryz plat-name=pz6platform name to build for, if supported (default: %s) compiler=cspecify the compiler type parallel=jnumber of parallel build jobsdebugg;compile extensions and libraries with debugging informationforcef2forcibly build everything (ignore file timestamps) executable=e5specify final destination interpreter path (build.py)z help-compilerzlist available compilerscCspd|_d|_d|_d|_d|_d|_d|_d|_d|_d|_ d|_ d|_ dS)Nrr) build_base build_purelib build_platlib build_lib build_temp build_scriptsZcompiler plat_namerr executableparallel)selfrrrinitialize_options8s           zbuild.initialize_optionsc Cs|jdkrt|_ntjdkr9tdd|jtjddf}ttdrr|d7}|jdkrtj j |j d|_|j dkrtj j |j d||_ |j dkr|jjr|j |_ n |j|_ |jdkr.tj j |j d ||_|jdkritj j |j d tjdd|_|jdkrtj jtj|_t|jtryt|j|_Wntk rtd YnXdS) NntzW--plat-name only supported on Windows (try using './configure --help' on your platform)z.%s-%srgettotalrefcountz-pydebuglibZtempzscripts-zparallel should be an integer)r+rosnamersysversionhasattrr&pathjoinr%r'r( distributionZ ext_modulesr)r*r,normpath isinstancer-strint ValueError)r.Zplat_specifierrrrfinalize_optionsHs<      zbuild.finalize_optionscCs(x!|jD]}|j|q WdS)N)Zget_sub_commandsZ run_command)r.Zcmd_namerrrrunsz build.runcCs |jjS)N)r;has_pure_modules)r.rrrrCszbuild.has_pure_modulescCs |jjS)N)r;has_c_libraries)r.rrrrDszbuild.has_c_librariescCs |jjS)N)r;has_ext_modules)r.rrrrEszbuild.has_ext_modulescCs |jjS)N)r; has_scripts)r.rrrrFszbuild.has_scriptsZbuild_pyZ build_clibZ build_extr*)r r r )r Nr )rNr)rNr)rrr)rrr)rrr)rrr)rr r!)r"r#r$)__name__ __module__ __qualname__Z descriptionrZ user_optionsZboolean_optionsrZ help_optionsr/rArBrCrDrErFZ sub_commandsrrrrrsR      8       r) __doc__r6r4Zdistutils.corerZdistutils.errorsrZdistutils.utilrrrrrrrs  PK!"00/command/__pycache__/upload.cpython-35.opt-1.pycnu[ Yf@sdZddlZddlZddlZddlZddlmZddlmZm Z m Z ddl m Z ddl mZmZddlmZddlmZdd lmZGd d d eZdS) zm distutils.command.upload Implements the Distutils 'upload' subcommand (upload package to a package index). N)standard_b64encode)urlopenRequest HTTPError)urlparse)DistutilsErrorDistutilsOptionError) PyPIRCCommand)spawn)logc@sieZdZdZejddgZejdgZdd Zd d Zd d Z ddZ dS)uploadzupload binary package to PyPIsignssign files to upload using gpg identity=iGPG identity used to sign filescCs>tj|d|_d|_d|_d|_d|_dS)NrF)r initialize_optionsusernamepassword show_responser identity)selfr=/opt/alt/python35/lib64/python3.5/distutils/command/upload.pyr s      zupload.initialize_optionscCstj||jr,|j r,td|j}|ikrx|d|_|d|_|d|_|d|_ |j r|j jr|j j|_dS)Nz.Must use --sign for --identity to have meaningrr repositoryrealm) r finalize_optionsrr rZ _read_pypircrrrr distribution)rconfigrrrr(s        zupload.finalize_optionscCsU|jjsd}t|x0|jjD]"\}}}|j|||q+WdS)Nz'No dist file created in earlier command)rZ dist_filesr upload_file)rmsgcommand pyversionfilenamerrrrun:s   z upload.runc$4Cst|j\}}}}}} |s3|s3| rFtd|j|dIkrbtd||jrddd|g} |jrd|jg| d d |d?t/t5|d@|i}t6|jdA|dB|}y%t7|}|j8} |j9}!Wnwt:k r}"z|"j;} |"j9}!WYdd}"~"XnAt<k r}"z!|j2t/|"t3j=WYdd}"~"XnX| dCkr|j2dD| |!ft3j4|j>r|j?|}#dEj@dFdG|#dFdGf}|j2|t3j4n/dH| |!f}|j2|t3j=tA|dS)KNzIncompatible url %shttphttpszunsupported schema Zgpgz --detach-signz-az --local-userdry_runrbz:actionZ file_uploadZprotocol_version1nameversioncontentZfiletyper$Z md5_digestZmetadata_versionz1.0ZsummaryZ home_pageZauthorZ author_emaillicense descriptionkeywordsplatformZ classifiersZ download_urlZprovidesZrequiresZ obsoletesrZ bdist_rpmzbuilt for %s %sZ bdist_dumbz built for %sZtersecommentz.ascZ gpg_signature:asciizBasic z3--------------GHSKFJDLGDS7543FJKLFHRE75642756743254s --s-- z+ Content-Disposition: form-data; name="%s"z; filename="%s"rzutf-8s s s zSubmitting %s to %sz Content-typez multipart/form-data; boundary=%szContent-lengthZ AuthorizationdataheaderszServer response (%s): %s -KzUpload failed (%s): %s)r'r()BrrAssertionErrorr rr r*openreadcloserZmetadataZget_nameZ get_versionospathbasenamehashlibZmd5Z hexdigestZget_descriptionZget_urlZ get_contactZget_contact_emailZ get_licenceZget_long_descriptionZ get_keywordsZ get_platformsZget_classifiersZget_download_urlZ get_providesZ get_requiresZ get_obsoletesr3distrrencoderdecodeioBytesIOitems isinstancelisttypetuplestrwritegetvalueZannouncer INFOlenrrZgetcoder"rcodeOSErrorZERRORrZ_read_pypi_responsejoinr)$rr#r$r%ZschemaZnetlocZurlZparamsZqueryZ fragmentsZgpg_argsfr/metar8r5rGr.idZ user_passZauthboundaryZ sep_boundaryZ end_boundaryZbodykeyvaluetitler"r9ZrequestresultZstatusreasonetextrrrr!As!                                                zupload.upload_fileN)r rr)rrr) __name__ __module__ __qualname__r1r Z user_optionsZboolean_optionsrrr&r!rrrrr s     r )__doc__rCrJr3rFbase64rZurllib.requestrrrZ urllib.parserZdistutils.errorsrrZdistutils.corer Zdistutils.spawnr Z distutilsr r rrrrs    PK!aG|:|:*command/__pycache__/install.cpython-35.pycnu[ Yfg @sdZddlZddlZddlmZddlmZddlmZddl m Z ddl m Z ddl mZdd lmZmZmZdd lmZdd l mZdd lmZdd lmZdZddddddddddiZdddddddddddiddddddd ddddid!eiZerdd"dd"dd#dd$dd%ied&d?Zd@dAZdBdCZdDdEZdFdGZdHdIZdJdKZdLdMZdNdOZdPdQZdRdSZdTdUZdVdWZdXefdYefdZefd[efd\d]d^fgZdS)oinstallz'install everything from build directoryprefix=Ninstallation prefix exec-prefix=.(Unix only) prefix for platform-specific fileshome=+(Unix only) home directory to install under install-base=;base installation directory (instead of --prefix or --home)zinstall-platbase=z8base installation directory for platform-specific files z$(instead of --exec-prefix or --home)root=/opt/alt/python35/lib64/python3.5/distutils/command/install.pyinitialize_optionss2                       zinstall.initialize_optionscCsr|js|js|jr=|js-|jr=tdd|jrd|jsX|jrdtd|jr|js|js|js|js|jrtdtjdkr|jr|j dd|_|j dtjdkr|j n |j |j d t jjd }td d \}}y t j}Wntk rcd }YnXd|jjd|jjd|jjd|d|d dd|d |dd|d |d|d |d|i |_tr|j|jd<|j|jd<|j|j d|j|jd<|j|jd=z %s: %sr) rZdistutils.fancy_getoptrrdebug user_options negative_opt translategetattr)rUmsgrZoptZopt_namevalrVrVrWrjss  zinstall.dump_dirscCs|jdk s|jdk r|jdkrK|jdkrK|jdksx|jdksx|jdksx|jdkrtddS|j r|j dkrt d|j |_|_|j dn|j dk r|j |_|_|j dn|jdkr^|jdk r+tdtjjtj|_tjjtj|_n|jdkry|j|_|j|_|j|_|j ddS)z&Finalizes options for posix platforms.NzPinstall-base or install-platbase supplied, but installation scheme is incompletez$User base directory is not specifiedrrz*must not supply exec-prefix without prefixr)rBrCrHrErFrGrIrJr r=rKr select_schemerAr?r@rgr{normpathrm)rUrVrVrWrks<       zinstall.finalize_unixc Cs|jrN|jdkr$td|j|_|_|jtjdn|jdk r|j|_|_|jdnv|j dkrtj j t j |_ |j |_|_y|jtjWn%t k rtdtjYnXdS)z)Finalizes options for non-posix platformsNz$User base directory is not specifiedZ_userrz)I don't know how to install stuff on '%s')r=rKrrBrCrrgrhrAr?r{rrmKeyError)rUrVrVrWrls"   zinstall.finalize_othercCsRt|}xAtD]9}d|}t||dkrt||||qWdS)z=Sets the install directories by applying the install schemes.install_N)INSTALL_SCHEMES SCHEME_KEYSrsetattr)rUrhschemekeyZattrnamerVrVrWrs    zinstall.select_schemecCsx{|D]s}t||}|dk rtjdksFtjdkrXtjj|}t||j}t|||qWdS)NrYr)rrgrhr{ expanduserr rrr)rUZattrsattrrrVrVrW _expand_attrss  zinstall._expand_attrscCs|jdddgdS)zNCalls `os.path.expanduser` on install_base, install_platbase and root.rBrCrDN)r)rUrVrVrWrtszinstall.expand_basedirscCs#|jddddddgdS)z+Calls `os.path.expanduser` on install dirs.rErFrHrGrIrJN)r)rUrVrVrWrvs zinstall.expand_dirscGs>x7|D]/}d|}t||tt||qWdS)z!Call `convert_path` over `names`.rN)rrr)rUnamesrhrrVrVrWrxs  zinstall.convert_pathscCs|jdkr|jj|_|jdk rt|jtrT|jjd|_t|jdkr}|jd}}n3t|jdkr|j\}}n tdt|}n d}d}||_||_ dS)z4Set `path_file` and `extra_dirs` using `extra_path`.N,r>rr_zY'extra_path' option must be a list, tuple, or comma-separated string with 1 or 2 elementsrZ) rNrq isinstancestrrolenr r path_filer})rUrr}rVrVrWrys   zinstall.handle_extra_pathc GsDx=|D]5}d|}t||t|jt||qWdS)z:Change the install directories pointed by name using root.rN)rr rDr)rUrrhrrVrVrWr~s  zinstall.change_rootscCs|js dSttjjd}x`|jjD]O\}}|j|r5tjj| r5|j d|tj |dq5WdS)zCreate directories under ~.N~zos.makedirs('%s', 0o700)i) r=rrgr{rrritems startswithisdirZ debug_printmakedirs)rUrArhr{rVrVrWrw s "zinstall.create_home_pathcCs|jsO|jd|jjdj}|jrO|tkrOtdx!|jD]}|j|q\W|j r|j |j r |j }|j rt|j }x2tt|D]}|||d||szinstall.)rNr)rNr)rNr)r Nr!)r"Nr#)r$Nr%)r&Nr')r(Nr))r*Nr+)r,Nr-)r.r/r0)r1Nr2)r3r4r5)r6r7r8)r9Nr:)r;Nr<) __name__ __module__ __qualname__Z descriptionrZboolean_optionsrsrrrrXrrjrkrlrrrtrvrxryr~rwrrrrrrrrZ sub_commandsrVrVrVrWrIs      M  (       ,          r)rrrrr)__doc__rmrgZ distutilsrZdistutils.corerZdistutils.debugrZdistutils.sysconfigrZdistutils.errorsrZdistutils.file_utilrZdistutils.utilrr r r r Zsiter rrsZWINDOWS_SCHEMErrrrVrVrVrWs\      PK!P >.command/__pycache__/bdist.cpython-35.opt-2.pycnu[ ]@s\ddlZddlmZddlTddlmZddZGdddeZdS) N)Command)*) get_platformcCslddlm}g}x6tjD]+}|jd|dtj|dfq W||}|jddS)Nr) FancyGetoptzformats=z'List of available distribution formats:)Zdistutils.fancy_getoptrbdistformat_commandsappendformat_command print_help)rformatsformatZpretty_printerr*/opt/alt/python35/lib64/python3.5/bdist.py show_formats s rc@seZdZdZd6dddefd7d8d9d:d;gZdgZdd defgZd<Z ddddiZ ddddd d!d"dd#g Z dd=dd>dd?dd@d dAd!dBd"dCddDd#dEi Z d0d1Z d2d3Zd4d5Zd S)Frz$create a built (binary) distribution bdist-base=b4temporary directory for creating built distributionsz plat-name=pz;platform name to embed in generated filenames (default: %s)formats=N/formats for distribution (comma-separated list) dist-dir=d=directory to put final built distributions in [default: dist] skip-build2skip rebuilding everything (for testing/debugging)owner=u@Owner name used when creating a tar file [default: current user]group=gAGroup name used when creating a tar file [default: current group]z help-formatsz$lists available distribution formats bdist_rpmposixgztarntzipZrpmbztarxztarZztartarZwininstZmsiRPM distribution bdist_dumbgzip'ed tar filebzip2'ed tar filexz'ed tar filecompressed tar filetar file bdist_wininstWindows executable installerZIP file bdist_msiMicrosoft InstallercCsCd|_d|_d|_d|_d|_d|_d|_dS)Nr) bdist_base plat_namer dist_dir skip_buildgroupowner)selfrrrinitialize_optionsQs      zbdist.initialize_optionsc Cs|jdkr<|jr't|_n|jdj|_|jdkr||jdj}tjj|d|j|_|j d|j dkry|j tj g|_ Wn%t k rtdtj YnX|jdkrd|_dS)NZbuildzbdist.r z;don't know how to create built distributions on platform %sZdist)r7r9rZget_finalized_commandr6 build_baseospathjoinZensure_string_listr default_formatnameKeyErrorZDistutilsPlatformErrorr8)r<r>rrrfinalize_optionsZs$    zbdist.finalize_optionsc Cs g}xR|jD]G}y|j|j|dWqtk rVtd|YqXqWxtt|jD]}||}|j|}||jkr|j||_ |dkr|j |_ |j |_ |||ddkrd|_ |j |qqWdS)Nrzinvalid format '%s'r+r)r r r rDZDistutilsOptionErrorrangelenZreinitialize_commandno_format_optionr r;r:Z keep_tempZ run_command)r<commandsr iZcmd_nameZsub_cmdrrrrunvs"      z bdist.run)rrr)rNr)rrr)rNr)rrr)rr r!)r")r"r*)r+r,)r+r-)r+r.)r+r/)r+r0)r1r2)r+r3)r4r5)__name__ __module__ __qualname__ descriptionrZ user_optionsZboolean_optionsrZ help_optionsrHrBrr r=rErKrrrrrsJ       r)r?Zdistutils.corerZdistutils.errorsZdistutils.utilrrrrrrrs   PK!~U##1command/__pycache__/register.cpython-35.opt-1.pycnu[ Yf-@sdZddlZddlZddlZddlZddlZddlZddlm Z ddl m Z ddl Tddl mZGddde ZdS) zhdistutils.command.register Implements the Distutils 'register' command (register with the repository). N)warn) PyPIRCCommand)*)logc@seZdZdZejdd gZejdddgZdd d fgZd d Zd dZ ddZ ddZ ddZ ddZ ddZddZddZdddZdS)!registerz7register the distribution with the Python package indexlist-classifiersN list the valid Trove classifiersstrictBWill stop the registering if the meta-data are not fully compliantverifycheckcCsdS)NT)selfr r ?/opt/alt/python35/lib64/python3.5/distutils/command/register.pyszregister.cCs#tj|d|_d|_dS)Nr)rinitialize_optionslist_classifiersr )rr r rrs  zregister.initialize_optionscCs<tj|dd|jfddi}||jjds$  PK!kjn n 3command/__pycache__/install_egg_info.cpython-35.pycnu[ Yf" @sdZddlmZddlmZmZddlZddlZddlZGdddeZ ddZ d d Z d d Z dS) zdistutils.command.install_egg_info Implements the Distutils 'install_egg_info' command, for installing a package's PKG-INFO metadata.)Command)logdir_utilNc@sUeZdZdZdZdgZddZdd Zd d Zd d Z dS)install_egg_infoz)Install an .egg-info file for the packagez8Install package's PKG-INFO metadata as an .egg-info file install-dir=ddirectory to install tocCs d|_dS)N) install_dir)selfr G/opt/alt/python35/lib64/python3.5/distutils/command/install_egg_info.pyinitialize_optionssz#install_egg_info.initialize_optionscCs|jdddtt|jjtt|jjtjddf}t j j |j ||_ |j g|_dS)NZ install_libr z%s-%s-py%s.egg-info)r r )Zset_undefined_options to_filename safe_name distributionZget_name safe_versionZ get_versionsysversionospathjoinr targetoutputs)r basenamer r r finalize_optionssz!install_egg_info.finalize_optionsc Cs|j}tjj|rGtjj| rGtj|d|jnmtjj|r||j tj |jfd|n8tjj|j s|j tj |j fd|j t jd||jst|ddd}|jjj|WdQRXdS)Ndry_runz Removing z Creating z Writing %swencodingzUTF-8)rrrisdirislinkrZ remove_treerexistsZexecuteunlinkr makedirsrinfoopenrZmetadataZwrite_pkg_file)r rfr r r run s %# zinstall_egg_info.runcCs|jS)N)r)r r r r get_outputs.szinstall_egg_info.get_outputsN)rrr) __name__ __module__ __qualname____doc__Z descriptionZ user_optionsr rr'r(r r r r r s    rcCstjdd|S)zConvert an arbitrary string to a standard distribution name Any runs of non-alphanumeric/. characters are replaced with a single '-'. z[^A-Za-z0-9.]+-)resub)namer r r r6srcCs%|jdd}tjdd|S)zConvert an arbitrary string to a standard version string Spaces become dots, and all other non-alphanumeric characters become dashes, with runs of multiple dashes condensed to a single dash.  .z[^A-Za-z0-9.]+r-)replacer.r/)rr r r r>srcCs|jddS)z|Convert a project or version name to its filename-escaped form Any '-' characters are currently replaced with '_'. r-_)r3)r0r r r rHsr) r,Z distutils.cmdrZ distutilsrrrrr.rrrrr r r r s$+  PK!s3##0command/__pycache__/bdist_wininst.cpython-35.pycnu[ Yf;@sdZddlZddlZddlmZddlmZddlmZm Z ddl Tddl m Z ddl mZGd d d eZdS) zzdistutils.command.bdist_wininst Implements the Distutils 'bdist_wininst' command: create a windows installer exe-program.N)Command) get_platform) create_tree remove_tree)*)get_python_version)logc@seZdZdZd4dddefdd d d fd dd dfd5d6d7d8d9d:d;d<d=g ZddddgZd&d'Zd(d)Zd*d+Z d,d-Z dd.d/Z d0d1Z d2d3Z dS)> bdist_wininstz-create an executable installer for MS Windows bdist-dir=N1temporary directory for creating the distributionz plat-name=pz;platform name to embed in generated filenames (default: %s)z keep-tempkz/keep the pseudo-installation tree around after z!creating the distribution archiveztarget-version=z!require a specific python versionz on the target systemno-target-compilec/do not compile .py to .pyc on the target systemno-target-optimizeo:do not compile .py to .pyo (optimized)on the target system dist-dir=d-directory to put final built distributions inbitmap=b>bitmap to use for the installer instead of python-powered logotitle=t?title to display on the installer background instead of default skip-build2skip rebuilding everything (for testing/debugging)install-script=Tbasename of installation script to be run afterinstallation or before deinstallationpre-install-script={Fully qualified filename of a script to be run before any files are installed. This script need not be in the distributionuser-access-control=specify Vista's UAC handling - 'none'/default=no handling, 'auto'=use UAC if target Python installed for all users, 'force'=always use UACcCsyd|_d|_d|_d|_d|_d|_d|_d|_d|_d|_ d|_ d|_ d|_ dS)Nr) bdist_dir plat_name keep_tempno_target_compileno_target_optimizetarget_versiondist_dirbitmaptitle skip_buildinstall_scriptpre_install_scriptuser_access_control)selfr3D/opt/alt/python35/lib64/python3.5/distutils/command/bdist_wininst.pyinitialize_options:s            z bdist_wininst.initialize_optionscCsG|jdd |jdkry|jrO|jrO|jjd}|j|_|jdj}tj j |d|_|j sd|_ |j r|jj rt }|j r|j |krtd|f||_ |jdd d |jrCxC|jjD]"}|jtj j|kr Pq Wtd|jdS) Nbdistr.ZwininstzMtarget version can only be %s, or the '--skip-build' option must be specifiedr+r&z(install_script '%s' not found in scripts)r.r.)r+r+)r&r&)Zset_undefined_optionsr%r.r& distributionZget_command_objget_finalized_command bdist_baseospathjoinr*has_ext_modulesrZDistutilsOptionErrorr/scriptsbasename)r2r6r:Z short_versionscriptr3r3r4finalize_optionsJs4        zbdist_wininst.finalize_optionsc Cstjdkr9|jjs-|jjr9td|jsO|jd|jddd}|j |_ |j|_d|_ |j |_ |jd}d|_ d|_|jjr9|j}|s|jstd tjdd }d |j |f}|jd}tjj|jd ||_xDdD]<}|j}|dkrh|d}t|d||q@Wtjd|j |jtjjdtjj|j d|jtjd=ddlm }|} |jj!} |j"| dd|j } |j#| | |j$|jjrJt%} nd} |jj&j'd| |j(| ftj)d| tj*| |j+st,|j d|j-dS)Nwin32z^distribution contains extensions and/or C libraries; must be compiled on a Windows 32 platformbuildinstallZreinit_subcommandsr install_libz Should have already checked thisz.%s-%slibpurelibplatlibheadersr?dataz/Include/$dist_nameZinstall_zinstalling to %sZPURELIB)mktempzipZroot_diranyr zremoving temporary file '%s'dry_run)rJrKrLr?rM).sysplatformr8r>Zhas_c_librariesZDistutilsPlatformErrorr.Z run_commandZreinitialize_commandr%rootZwarn_dirr&compileoptimizer*AssertionErrorversionr9r;r<r=Z build_baseZ build_libuppersetattrrinfoZensure_finalizedinsertrunZtempfilerN get_fullnameZ make_archive create_exer,rZ dist_filesappendget_installer_filenamedebugremover'rrQ) r2rErGr*Zplat_specifierrDkeyvaluerNZarchive_basenamefullnamearcnameZ pyversionr3r3r4r]psf                %       zbdist_wininst.runc Csg}|jj}|jd|jp+dd}dd}x{dddd d d d d gD][}t||d}|r]|d|j||f}|jd|||fq]W|jd|jr|jd|j|jd|||jd|j |jd|j |j rD|jd|j |j ra|jd|j |j pv|jj }|jd||ddl }ddl} d|j|j | jf} |jd| dj|S)Nz [metadata]r7 cSs|jddS)Nrhz\n)replace)sr3r3r4escapesz)bdist_wininst.get_inidata..escapeZauthorZ author_email descriptionZ maintainerZmaintainer_emailnameZurlrXz %s: %sz%s=%sz [Setup]zinstall_script=%szinfo=%sztarget_compile=%dztarget_optimize=%dztarget_version=%szuser_access_control=%sztitle=%srzBuilt %s with distutils-%sz build_info=%s)r8metadatar`Zlong_descriptiongetattr capitalizer/r(r)r*r1r-r^time distutilsZctime __version__r=) r2linesrnr[rkrmrMr-rqrrZ build_infor3r3r4 get_inidatas<   !      zbdist_wininst.get_inidatac Csddl}|j|j|j}|j|}|jd||rrt|dj}t|}nd}t|d} | j |j |r| j |t |t r|j d}|d}|jr&t|jddd } | jj d } WdQRX|| d }n |d}| j ||jd d t||} | j | | j t|djdS) Nrz creating %srbwbmbcssrencodingzlatin-1s zs PK!E!TT,command/__pycache__/bdist_msi.cpython-35.pycnu[ Yf@sdZddlZddlZddlmZddlmZddlmZddl m Z ddl m Z ddl mZdd lmZddlZdd lmZmZmZdd lmZmZmZmZGd d d eZGdddeZdS)z# Implements the bdist_msi command. N)Command) remove_tree)get_python_version) StrictVersion)DistutilsOptionError) get_platform)log)schemasequencetext) DirectoryFeatureDialogadd_datac@speZdZdZddZddZdddd Zd dd d Zd dddZddZ dS)PyDialogzDialog class with a fixed layout: controls at the top, then a ruler, then a list of buttons: back, next, cancel. Optionally a bitmap at the left.cOsKtj|||jd}d|d}|jdd||jddS)zbDialog(database, name, x, y, w, h, attributes, title, first, default, cancel, bitmap=true)$iHZ BottomLinerN)r__init__hlinew)selfargskwZrulerZbmwidthr@/opt/alt/python35/lib64/python3.5/distutils/command/bdist_msi.pyrs zPyDialog.__init__c Cs'|jddddddd|dS) z,Set the title text of the dialog at the top.Title i@<iz{\VerdanaBold10}%sN)r )rtitlerrrr #szPyDialog.titleBackc Cs>|rd}nd}|j|d|jddd|||S)zAdd a back button with a given title, the tab-next button, its name in the Control table, possibly initially disabled. Return the button, so that events can be associatedr"8) pushbuttonr)rr nextnameactiveflagsrrrback*s z PyDialog.backCancelc Cs>|rd}nd}|j|d|jddd|||S)zAdd a cancel button with a given title, the tab-next button, its name in the Control table, possibly initially disabled. Return the button, so that events can be associatedr#r"i0r%r&r')r(r)rr r)r*r+r,rrrcancel5s zPyDialog.cancelNextc Cs>|rd}nd}|j|d|jddd|||S)zAdd a Next button with a given title, the tab-next button, its name in the Control table, possibly initially disabled. Return the button, so that events can be associatedr#r"r%r&r')r(r)rr r)r*r+r,rrrr)@s z PyDialog.nextc Cs:|j|t|j|d|jdddd||S)zAdd a button with a given title, the tab-next button, its name in the Control table, giving its x position; the y-position is aligned with the other buttons. Return the button, so that events can be associatedr%r&r'r#)r(intrr)rr*r r)ZxposrrrxbuttonKszPyDialog.xbuttonN) __name__ __module__ __qualname____doc__rr r-r/r)r4rrrrrs     rc@s]eZdZdZdddfdddefdd d d fd dd dfdddfdddfdddfdddfdddfdddfg ZddddgZddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1gZd2Zd3d4Z d5d6Z d7d8Z d9d:Z d;d<Z d=d>Zd?d@ZdAdBZdS)C bdist_msiz7create a Microsoft Installer (.msi) binary distributionz bdist-dir=Nz1temporary directory for creating the distributionz plat-name=pz;platform name to embed in generated filenames (default: %s)z keep-tempkz/keep the pseudo-installation tree around after z!creating the distribution archiveztarget-version=z!require a specific python versionz on the target systemzno-target-compilecz/do not compile .py to .pyc on the target systemzno-target-optimizeoz:do not compile .py to .pyo (optimized)on the target systemz dist-dir=dz-directory to put final built distributions inz skip-buildz2skip rebuilding everything (for testing/debugging)zinstall-script=zTbasename of installation script to be run afterinstallation or before deinstallationzpre-install-script=z{Fully qualified filename of a script to be run before any files are installed. This script need not be in the distributionz2.0z2.1z2.2z2.3z2.4z2.5z2.6z2.7z2.8z2.9z3.0z3.1z3.2z3.3z3.4z3.5z3.6z3.7z3.8z3.9XcCsgd|_d|_d|_d|_d|_d|_d|_d|_d|_d|_ d|_ dS)Nr) bdist_dir plat_name keep_tempZno_target_compileZno_target_optimizetarget_versiondist_dir skip_buildinstall_scriptpre_install_scriptversions)rrrrinitialize_options}s          zbdist_msi.initialize_optionscCs`|jdd |jdkrI|jdj}tjj|d|_t}|j rt|j j rt||_|jr|jg|_ |j r|j j r|j|krt d|fnt|j|_ |jdd d |jrt d|jrSxC|j jD]"}|jtjj|krPqWt d|jd|_dS) NZbdistrEZmsizMtarget version can only be %s, or the '--skip-build' option must be specifiedrDrAz5the pre-install-script feature is not yet implementedz(install_script '%s' not found in scripts)rErE)rDrD)rArA)Zset_undefined_optionsr@get_finalized_command bdist_baseospathjoinrrC distributionhas_ext_modulesrHrErlist all_versionsrGrFscriptsbasenameinstall_script_key)rrKZ short_versionZscriptrrrfinalize_optionss:        zbdist_msi.finalize_optionscCsq|js|jd|jddd}|j|_|j|_d|_|jd}d|_d|_|jj r|j }|s|jst dt j dd}d |j|f}|jd}tjj|jd ||_tjd |j|jt jjdtjj|jd |jt jd=|j|j|jj}|j|}tjj|}tjj|rtj ||jj!}|j"} | s|j#} | sd } |j$} dt%| j } |jj}|j r&d|j |f} n d|} t&j'|t(| t&j)| | |_*t&j+|j*t,d| fg} |j-p|j.}|r| j/d|f|j0r| j/d|j0f| rt1|j*d| |j2|j3|j4|j5|j*j6t7|jdrNd|j p2d|f}|jj8j/||j9smt:|jd|j;dS)NbuildinstallZreinit_subcommandsr"r install_libz Should have already checked thisr#z.%s-%slibzinstalling to %sZPURELIBZUNKNOWNz%d.%d.%dz Python %s %sz Python %sZ DistVersionZ ARPCONTACTZARPURLINFOABOUTProperty dist_filesr9anydry_run)| jd?d9d@d;dAd=dB| j d2d6dCd2} | j dDdEt|dF||||||d2d2d2 } | jdG| jd4d2d5d| jd6d7d5d| jd8d9d:d;d<d=dH| jd?d9d@d;dAd=dB| j d2d6dCd2} | j dDdEt|dI||||||d2d2d2 } | jdJ| jd4d2d5d| jd6d7d5d| jdKd9dLd;dAd=dB| j d2d6dCd2} | j dDdMt|dN||||dO|dPdPdPdQdR }|jdSd9dTdUd9d=dV|jdKdAdWdXdAd=dY|jdZdAd[d\ddd]|j d^d_dAd`d\dadbdcddd |jdEdddCdE} | j dDdE|j dddPdCdd} | j dDdd|jdPdEdCdP} | j dDdPt |d ddd\dedf|dgdd }|jdgdddXdhddi|j djdkdldmdnddodj dDdp|j dqdrdldmdnddsdj dDdt|j duddldmdnddvdj dDdw|j dxdydldmdndd6dj dDdz|j d{dmdldmdnddddj dDd||j d}d~dldmdndddj dDd|j dddldmdnddPdj dDdt |dddddd|dododo }|jdZdhd9dddd|j dsdldddddsdo} | j dDdE|j doddddddods} | j dDdMt |ddddd||dMdMdM }|jdZdhd9dddd|j dMddddddMd} | j dDdEt|d!||||||d6d6d6 }|jdKd9d:d;dd=d|jd|jd/d9dd;dAd=d} | jd/dZ|jdd9dd;dd=d} | jddZ|jd7dd5d|j ddd5d|jd6d} | j ddt|d'||||||ddd6 }|jd|jdd9dddAdd|jj|jd4dd5d|j dd6} d}| j ddd|xF|j|jgD]1}|d7}| j dd|d|d|qW| j ddd|d| j dDdMd|d|jd6d} | j dd|j ddd9dddkddddd } | j dd|j}d|}d|}|jdd9dUdd9dd} | jd|| jd|| jd|| jd||j ddd9ddddd|ddd } | jd|| jd|| jd|| jd|t|d||||||ddddQdR }|jdSd9dTdUd9d=d|jdKdAdAdXdAd=d|jdZdAdd\ddd|j dddAdd\dddddd |jddddj dDdMt|d$||||||ddd6 }|jd|jdd9ddddddid }|jdddddAd|jdddddAd|jd7dd5d|j dd6} | j dddd| j dDdMdd|jd6d} | j ddt|d-||||||d6d6d6dQdR }|jdSdAd9dUd9d=d|jdZdddddd|jdddddAdd|jd/d:d|d:dAdd} | jd/dZ|j ddddkddddddd } | jdd|jd4dd5dR|j dd6d5dR|jd6d7j ddt|d*||||||ddd6 }|jd|jdd9dd\dydd|jdd9dd\ddddid }|jddddUdd|jddddUdd|jd4dd5dR|j d2d6} | j dddd| j ddddT| j ddddb| j dddd| j dddd| j dddd| j dddd| j dddd| j dDdMddA|jd6dj dddS(Nriri,z[ProductName] Setupr#r" r[ DefaultUIFontDlgFont8 ErrorDialogErrorDlg Progress1Install Progress2installsMaintenanceForm_ActionRepair WhichUsersALLZ TextStyleTahoma r DlgFontBold8 VerdanaBold10Verdanar VerdanaRed9r PrepareDlg(Not Privileged or Windows9x or Installed WhichUsersDlg.Privileged and not Windows9x and not InstalledSelectFeaturesDlg Not InstalledMaintenanceTypeDlg,Installed AND NOT RESUME AND NOT Preselected ProgressDlg ActionTextUITextZ FatalErrorZFinishz)[ProductName] Installer ended prematurelyz< Backr+r.r!Z Description1rFi@Piz[ProductName] setup ended prematurely because of an error. Your system has not been modified. To install this program at a later time, please run the installation again.Z Description2z.Click the Finish button to exit the Installer.r*Z EndDialogZExitZUserExitz'[ProductName] Installer was interruptedz[ProductName] setup was interrupted. Your system has not been modified. To install this program at a later time, please run the installation again.Z ExitDialogz&Completing the [ProductName] InstallerZ DescriptionZReturnZ FilesInUseZRetryZbitmapFrz{\DlgFontBold8}Files in Useiz8Some files that need to be updated are currently in use.ZText7iJzThe following applications are using files that need to be updated by this setup. Close these applications and then click Retry to continue the installation or Cancel to exit it.ZListZListBoxkZFileInUseProcessIgnoreeiZ ErrorText0r}NxHQZNoZErrorNoYZYesZErrorYesAZAbortZ ErrorAbortC*Z ErrorCancelIZ ErrorIgnoreOZOkZErrorOkRZ ErrorRetryZ CancelDlgiUz;Are you sure you want to cancel [ProductName] installation?9r&r'ZWaitForCostingDlgzRPlease wait while the installer finishes determining your disk space requirements.f(zOPlease wait while the Installer prepares to guide you through the installation.z&Welcome to the [ProductName] Installernz Pondering...Z ActionDatar0Z SpawnDialogzSelect Python InstallationsZHintz9Select the Python locations where %s should be installed.zNext >z [TARGETDIR]z [SourceDir]Zorderingz [TARGETDIR%s]z FEATURE_SELECTED AND &Python%s=3ZSpawnWaitDialogr~ZFeaturesZ SelectionTreerZFEATUREZPathEditz[FEATURE_SELECTED]1z!FEATURE_SELECTED AND &Python%s<>3ZOtherz$Provide an alternate Python locationZEnableZShowZDisableZHiderr{Z DiskCostDlgZOKz&{\DlgFontBold8}Disk Space RequirementszFThe disk space required for the installation of the selected features.5aThe highlighted volumes (if any) do not have enough disk space available for the currently selected features. You can either remove some files from the highlighted volumes, or choose to install less features onto local drive(s), or select different destination drive(s).Z VolumeListZVolumeCostListdiz{120}{70}{70}{70}{70}g?Z AdminInstallzGSelect whether to install [ProductName] for all users of this computer.zInstall for all usersZJUSTMEzInstall just for mez [ALLUSERS]zWhichUsers="ALL"z({\DlgFontBold8}[Progress1] [ProductName]#AzYPlease wait while the Installer [Progress2] [ProductName]. This may take several minutes.Z StatusLabelzStatus:Z ProgressBariz Progress doneZ SetProgressZProgressz)Welcome to the [ProductName] Setup WizardZBodyText?z:Select whether you want to repair or remove [ProductName].ZRepairRadioGrouplrz&Repair [ProductName]ZRemoverzRe&move [ProductName]z [REINSTALL]zMaintenanceForm_Action="Repair"z [Progress1]Z Repairingz [Progress2]ZrepairsZ Reinstallz[REMOVE]zMaintenanceForm_Action="Remove" ZRemoving Zremoves z MaintenanceForm_Action<>"Change")rr)rr)rr)rr)rr)rr)rrrNr)rrrNr")rrrNr")rrrrr)rrr)rrr)rrr)rrr)rNr)rprr rrrr r-r/r)ZeventZcontrolrr(mappingrOrhrHrZ conditionr4Z radiogroupadd)rrpxyrrr ZmodalZmodelessZtrack_disk_spaceZfatalr<Z user_exitZ exit_dialogZinuseerrorr/ZcostingZprepZseldlgorderrdrZinstall_other_condZdont_install_other_condZcostZ whichusersgZprogressZmaintrrrrus                .......$$$ !!        "  % zbdist_msi.add_uicCsT|jr%d||j|jf}nd||jf}tjj|j|}|S)Nz%s.%s-py%s.msiz %s.%s.msi)rCrArLrMrNrD)rrxZ base_nameryrrrris   z bdist_msi.get_installer_filename)r5r6r7Z descriptionrZ user_optionsZboolean_optionsrRrrIrVrgrsrrrtrurirrrrr9SsP      ( [ 6 6 & ?r9)r8rcrLZdistutils.corerZdistutils.dir_utilrZdistutils.sysconfigrZdistutils.versionrZdistutils.errorsrZdistutils.utilrZ distutilsrror r r r r rrrr9rrrrs ">PK!.6j5 5 5command/__pycache__/install_data.cpython-35.opt-2.pycnu[ ] @sLddlZddlmZddlmZmZGdddeZdS)N)Command) change_root convert_pathc@sjeZdZdZdddgZdgZd d Zd dZddZddZ ddZ dS) install_datazinstall data files install-dir=dIbase directory for installing data files (default: installation base dir)root=Ns PK!3^F^F,command/__pycache__/build_ext.cpython-35.pycnu[ Yf{@sdZddlZddlZddlZddlZddlmZddlTddlm Z m Z ddlm Z ddl m Z ddlmZdd lmZdd lmZdd lmZejd Zd dZGdddeZdS)zdistutils.command.build_ext Implements the Distutils 'build_ext' command, for building extension modules (currently limited to C extensions, should accommodate C++ extensions ASAP).N)Command)*)customize_compilerget_python_version)get_config_h_filename) newer_group) Extension) get_platform)log) USER_BASEz3^[a-zA-Z_][a-zA-Z_0-9]*(\.[a-zA-Z_][a-zA-Z_0-9]*)*$cCsddlm}|dS)Nr)show_compilers)distutils.ccompilerr )r r@/opt/alt/python35/lib64/python3.5/distutils/command/build_ext.pyr sr c@seZdZdZdejZd`dad d d efd d ddfdddefdbdcdddddefdedfdgdhdidjdkdldmdngZd d%d(d1d8gZ d:d2d;e fgZ d<d=Z d>d?Z d@dAZdBdCZdDdEZdFdGZdHdIZdJdKZdLdMZejdNdOZdPdQZdRdSZdTdUZdVdWZdXdYZdZd[Zd\d]Zd^d_Zd2S)o build_extz8build C/C++ extensions (compile/link to build directory)z (separated by '%s') build-lib=b(directory for compiled extension modules build-temp=t1directory for temporary files (build by-products)z plat-name=pz>platform name to cross-compile for, if supported (default: %s)inplaceiz=ignore build-lib and put compiled extensions into the source z,directory alongside your pure Python modulesz include-dirs=Iz.list of directories to search for header filesdefine=DC preprocessor macros to defineundef=U!C preprocessor macros to undefine libraries=l!external C libraries to link withz library-dirs=Lz.directories to search for external C librariesrpath=R7directories to search for shared C libraries at runtime link-objects=O2extra explicit link objects to include in the linkdebugg'compile/link with debugging informationforcef2forcibly build everything (ignore file timestamps) compiler=cspecify the compiler type parallel=jnumber of parallel build jobsswig-cppN)make SWIG create C++ files (default is C) swig-opts=!list of SWIG command line optionsswig=path to the SWIG executableuser#add user include, library and rpathz help-compilerzlist available compilerscCsd|_d|_d|_d|_d|_d|_d|_d|_d|_d|_ d|_ d|_ d|_ d|_ d|_d|_d|_d|_d|_d|_d|_dS)Nr) extensions build_lib plat_name build_temprpackage include_dirsdefineundef libraries library_dirsrpath link_objectsr+r.compilerswigswig_cpp swig_optsr=parallel)selfrrrinitialize_optionsjs*                    zbuild_ext.initialize_optionsc Csrddlm}|jdd'd(d)d*d+d,d-|jdkrP|jj|_|jj|_|j}|jd d }|j dkr|jj pg|_ t |j t r|j j t j|_ tjtjkr|j jt jjtjd |j j|||kr+|j j||jd|jd|jdkr]g|_|jdkrxg|_n*t |jt r|jj t j|_|jdkrg|_n*t |jt r|jj t j|_t jdkrC|jjt jjtjdtjtjkrL|jjt jjtjd|jrst jj|jd|_nt jj|jd|_|j jt jjtttdd}|r|jj||j dkrd}n|j dd}t jjtjd}|r3t jj||}|jj|tj!dddksutj!dddkrtj"j#t jjtjdr|jjt jjtjddt$dn|jjd|j%d r|j&s|jj|j%d!n|jjd|j'rP|j'j d"}d#d$|D|_'|j(rn|j(j d"|_(|j)dkrg|_)n|j)j d%|_)|j*r%t jjt+d }t jjt+d} t jj,|r|j j|t jj,| r%|jj| |jj| t |j-t rnyt.|j-|_-Wnt/k rmt0d&YnXdS).Nr) sysconfigZbuildr@rBrKr+r.rOrAZ plat_specificincluderGrJntZlibsZDebugZRelease_homewin32ZPCbuildcygwinatheosbinlibpythonconfig.Py_ENABLE_SHAREDLIBDIR,cSsg|]}|dfqS)1r).0Zsymbolrrr s z.build_ext.finalize_options.. zparallel should be an integer)r@r@)rBrB)rKrK)r+r+)r.r.)rOrO)rArA)1 distutilsrRZset_undefined_optionsrC distributionZ ext_packageZ ext_modulesr?Zget_python_incrD isinstancestrsplitospathsepsys exec_prefixbase_exec_prefixappendpathjoinZensure_string_listrGrHrInameprefixr+rBdirnamergetattrrAplatform executable startswithrget_config_varZ python_buildrErFrNr=r isdirrOint ValueErrorZDistutilsOptionError) rPrRZ py_includeZplat_py_include _sys_homesuffixZnew_libZdefinesZ user_includeZuser_librrrfinalize_optionss  "      ""  2$        zbuild_ext.finalize_optionsc Csddlm}|jsdS|jjrj|jd}|jj|jpSg|j j |j |d|j d|j d|jd|j|_ t|j tjdkr|jtkr|j j|j|jdk r|j j|j|jdk r9x*|jD]\}}|j j||qW|jdk rlx!|jD]}|j j|qRW|jdk r|j j|j|j dk r|j j|j |jdk r|j j|j|j dk r|j j!|j |j"dS) Nr) new_compiler build_clibrKverbosedry_runr.rU)#r rr?riZhas_c_librariesget_finalized_commandrGextendZget_library_namesrHrrrrKrrr.rrmrurAr Z initializerDZset_include_dirsrEZ define_macrorFZundefine_macroZ set_librariesZset_library_dirsrIZset_runtime_library_dirsrJZset_link_objectsbuild_extensions)rPrrruvaluemacrorrrruns>    !z build_ext.runc Cst|tstdxt|D]\}}t|trFq(t|t sht|dkrttd|\}}tjd|t|t ot j |stdt|t stdt||d}x9dD]1}|j |}|dk rt|||qW|j d|_d|krPtjd|j d}|rg|_g|_x|D]~} t| tot| dkstdt| dkr|jj| dq~t| dkr~|jj| q~W||||j|jg}x!|jD]}|j|jq W|S)N)rr?rr)rP filenamesrrrrget_source_filess zbuild_ext.get_source_filescCsG|j|jg}x*|jD]}|j|j|jq W|S)N)rr?rrget_ext_fullpathru)rPZoutputsrrrr get_outputss zbuild_ext.get_outputscCs4|j|j|jr&|jn |jdS)N)rr?rO_build_extensions_parallel_build_extensions_serial)rPrrrrs  zbuild_ext.build_extensionscsj}jdkr$tj}yddlm}Wntk rRd}YnX|dkrmjdS|d|jfddjD}xAtj|D]-\}}j ||j WdQRXqWWdQRXdS)NTr)ThreadPoolExecutorZ max_workerscs%g|]}jj|qSr)Zsubmitbuild_extension)rer)executorrPrrrfs z8build_ext._build_extensions_parallel..) rOrm cpu_countZconcurrent.futuresr ImportErrorrr?zip_filter_build_errorsresult)rPZworkersrZfuturesrZfutr)rrPrrs        z$build_ext._build_extensions_parallelc Cs<x5|jD]*}|j||j|WdQRXq WdS)N)r?rr)rPrrrrrsz"build_ext._build_extensions_serialccsdy dVWnTtttfk r_}z+|js3|jd|j|fWYdd}~XnXdS)Nz"building extension "%s" failed: %s)ZCCompilerErrorZDistutilsErrorZ CompileErrorZoptionalrru)rPrerrrrs   zbuild_ext._filter_build_errorsc Cs|j}|dks+t|ttf r>td|jt|}|j|j}||j}|jpt ||dst j d|jdSt j d|j|j ||}|jpg}|jdd}x!|jD]}|j|fqW|jj|d|jd|d|jd|j d |d |j}|dd|_|jrt|j|j|jpg}|jp|jj|} |jj||d |j|d |jd |jd |d|j |d|j d|jd| dS)Nzjin 'ext_modules' option (extension '%s'), 'sources' must be present and must be a list of source filenamesZnewerz$skipping '%s' extension (up-to-date)zbuilding '%s' extensionZ output_dirrrDr+Zextra_postargsdependsrGrHrexport_symbolsrBZ target_lang)!rrjrrrrurrr.rr r+info swig_sourcesrrrrrrKcompilerBrDZ_built_objectsrrrlanguageZdetect_languageZlink_shared_object get_librariesrHrget_export_symbols) rPrrext_pathrZ extra_argsrrFZobjectsrrrrrsN "              zbuild_ext.build_extensioncCsg}g}i}|jr(tjd|jsOd|jksOd|jkrXd}nd}xr|D]j}tjj|\}} | dkr|j|d||j||d ||            zbuild_ext.swig_sourcescCstjdkrdStjdkrixWd D]5}tjjd|d}tjj|r)|Sq)WdSntd tjd S) zReturn the name of the SWIG executable. On Unix, this is just "swig" -- it should be in the PATH. Tries a bit harder on Windows. posixrLrU1.31.21.1z c:\swig%szswig.exez>I don't know how to find (much less run) SWIG on platform '%s'N)rrr)rmrursrtisfileZDistutilsPlatformError)rPZversfnrrrrfs zbuild_ext.find_swigcCs|j|}|jd}|j|d}|jsstjj|dd|g}tjj|j|Sdj|dd}|jd}tjj |j |}tjj||S) zReturns the path of the filename for a given extension. The file is located in `build_lib` or directly in the package (inplace option). r`rSNrbuild_pyrrr) get_ext_fullnamerlget_ext_filenamerrmrsrtr@rabspathZget_package_dir)rPrfullnameZmodpathfilenamerCrZ package_dirrrrr~s #zbuild_ext.get_ext_fullpathcCs&|jdkr|S|jd|SdS)zSReturns the fullname of a given extension name. Adds the `package.` prefixNr`)rC)rPrrrrrszbuild_ext.get_ext_fullnamecCs?ddlm}|jd}|d}tjj||S)zConvert the name of an extension (eg. "foo.bar") into the name of the file from which it will be loaded (eg. "foo/bar.so", or "foo\bar.pyd"). r)r|r` EXT_SUFFIX)distutils.sysconfigr|rlrmrsrt)rPrr|rZ ext_suffixrrrrs zbuild_ext.get_ext_filenamecCs@d|jjdd}||jkr9|jj||jS)aReturn the list of symbols that a shared extension has to export. This either uses 'ext.export_symbols' or, if it's not provided, "PyInit_" + module_name. Only relevant on Windows, where the .pyd file (DLL) must export the module "PyInit_" function. ZPyInit_r`rSr)rurlrrr)rPrZ initfunc_namerrrrszbuild_ext.get_export_symbolscCs3tjdkrddlm}t|j|szd}|jrJ|d}|tjd?tjd?d@f}|j|gS|jSntjd d d krd }|tjd?tjd?d@f}|j|gStjd d d krddl m }d }|tjd?tjd?d@f}g}xS|j dj D]<}|j dro|j|dd q@|j|q@W|j|dg|Stjdkr|jStjd ddkr|jSddl m }|j dr(djtjd?tjd?d@|j d}|j|gS|jSd S)zReturn the list of libraries to link against when building a shared extension. On most platforms, this is just 'ext.libraries'; on Windows, we add the Python library (eg. python20.dll). rWr) MSVCCompilerz python%d%dZ_dNrYrZz python%d.%dr[)rRSHLIBSz-lrmdarwinaixraz python{}.{}{}ABIFLAGS)roryZdistutils._msvccompilerrrjrKr+ hexversionrGrhrRr|rlr{rrformat)rPrrtemplateZ pythonlibrRZextrar]rrrrsJ    zbuild_ext.get_libraries)rrr)rrr)rrr)rrr )r!r"r#)r%r&r')r(r)r*)r+r,r-)r.r/r0)r1r2r3)r4r5r6)r7Nr8)r9Nr:)r;Nr<)r=Nr>) __name__ __module__ __qualname__Z descriptionrmrnZsep_byr Z user_optionsZboolean_optionsr Z help_optionsrQrrrrrrrr contextlibcontextmanagerrrrrrrrrrrrrrr!s~        @ N     K 6   r)__doc__rrmreroZdistutils.corerZdistutils.errorsrrrrZdistutils.dep_utilrZdistutils.extensionrZdistutils.utilr rhr Zsiter rrr rrrrrs"       PK!/command/__pycache__/upload.cpython-35.opt-2.pycnu[ ]@sddlZddlZddlZddlZddlmZddlmZmZm Z ddl m Z ddl m Z mZddlmZddlmZddlmZGd d d eZdS) N)standard_b64encode)urlopenRequest HTTPError)urlparse)DistutilsErrorDistutilsOptionError) PyPIRCCommand)spawn)logc@sieZdZdZejddgZejdgZdd Zd d Zd d Z ddZ dS)uploadzupload binary package to PyPIsignssign files to upload using gpg identity=iGPG identity used to sign filescCs>tj|d|_d|_d|_d|_d|_dS)NrF)r initialize_optionsusernamepassword show_responser identity)selfr+/opt/alt/python35/lib64/python3.5/upload.pyr s      zupload.initialize_optionscCstj||jr,|j r,td|j}|ikrx|d|_|d|_|d|_|d|_ |j r|j jr|j j|_dS)Nz.Must use --sign for --identity to have meaningrr repositoryrealm) r finalize_optionsrr rZ _read_pypircrrrr distribution)rconfigrrrr(s        zupload.finalize_optionscCsU|jjsd}t|x0|jjD]"\}}}|j|||q+WdS)Nz'No dist file created in earlier command)rZ dist_filesr upload_file)rmsgcommand pyversionfilenamerrrrun:s   z upload.runc$4Cst|j\}}}}}} |s3|s3| rFtd|j|dIkrbtd||jrddd|g} |jrd|jg| d d |d?t/t5|d@|i}t6|jdA|dB|}y%t7|}|j8} |j9}!Wnwt:k r}"z|"j;} |"j9}!WYdd}"~"XnAt<k r}"z!|j2t/|"t3j=WYdd}"~"XnX| dCkr|j2dD| |!ft3j4|j>r|j?|}#dEj@dFdG|#dFdGf}|j2|t3j4n/dH| |!f}|j2|t3j=tA|dS)KNzIncompatible url %shttphttpszunsupported schema Zgpgz --detach-signz-az --local-userdry_runrbz:actionZ file_uploadZprotocol_version1nameversioncontentZfiletyper$Z md5_digestZmetadata_versionz1.0ZsummaryZ home_pageZauthorZ author_emaillicense descriptionkeywordsplatformZ classifiersZ download_urlZprovidesZrequiresZ obsoletesrZ bdist_rpmzbuilt for %s %sZ bdist_dumbz built for %sZtersecommentz.ascZ gpg_signature:asciizBasic z3--------------GHSKFJDLGDS7543FJKLFHRE75642756743254s --s-- z+ Content-Disposition: form-data; name="%s"z; filename="%s"rzutf-8s s s zSubmitting %s to %sz Content-typez multipart/form-data; boundary=%szContent-lengthZ AuthorizationdataheaderszServer response (%s): %s -KzUpload failed (%s): %s)r'r()BrrAssertionErrorr rr r*openreadcloserZmetadataget_nameZ get_versionospathbasenamehashlibmd5 hexdigestZget_descriptionZget_urlZ get_contactZget_contact_emailZ get_licenceZget_long_descriptionZ get_keywordsZ get_platformsZget_classifiersZget_download_urlZ get_providesZ get_requiresZ get_obsoletesr3distrrencoderdecodeioBytesIOitems isinstancelisttypetuplestrwritegetvalueZannouncer INFOlenrrZgetcoder"rcodeOSErrorERRORrZ_read_pypi_responsejoinr)$rr#r$r%ZschemaZnetlocZurlparamsZqueryZ fragmentsZgpg_argsfr/metar8r5rJr.idZ user_passZauthboundaryZ sep_boundaryZ end_boundaryZbodykeyvaluetitler"r9Zrequestresultstatusreasonetextrrrr!As!                                                zupload.upload_fileN)r rr)rrr) __name__ __module__ __qualname__r1r Z user_optionsZboolean_optionsrrr&r!rrrrr s     r )rDrMr3rGbase64rZurllib.requestrrrZ urllib.parserZdistutils.errorsrrZdistutils.corer Zdistutils.spawnr Z distutilsr r rrrrs    PK!0zT,,+command/__pycache__/build_py.cpython-35.pycnu[ Yf C@sdZddlZddlZddlZddlmZddlmZddlTddl m Z m Z ddl m Z Gdd d eZGd d d ee ZdS) zHdistutils.command.build_py Implements the Distutils 'build_py' command.N)glob)Command)*) convert_path Mixin2to3)logc@s*eZdZdZd8d9d:d;d<gZddgZddiZddZddZddZ ddZ ddZ ddZ ddZ dd Zd!d"Zd#d$Zd%d&Zd'd(Zd)d*Zd+d,Zd-d.d/Zd0d1Zd2d3Zd4d5Zd6d7Zd S)=build_pyz5"build" pure Python modules (copy to build directory) build-lib=ddirectory to "build" (copy) tocompileccompile .py to .pyc no-compileN!don't compile .py files [default] optimize=Olalso compile with optimization: -O1 for "python -O", -O2 for "python -OO", and -O0 to disable [default: -O0]forcef2forcibly build everything (ignore file timestamps)cCsLd|_d|_d|_d|_d|_d|_d|_d|_dS)Nr) build_lib py_modulespackage package_data package_dirr optimizer)selfr?/opt/alt/python35/lib64/python3.5/distutils/command/build_py.pyinitialize_options s       zbuild_py.initialize_optionsc Cs|jddd|jj|_|jj|_|jj|_i|_|jjrx3|jjjD]\}}t||j|ts z+build_py.get_data_files..) r#get_package_dirosr,joinrsplitlenfind_data_filesappend)rdatarsrc_dir build_dir filenamesr)r9rr%as %%zbuild_py.get_data_filescs|jjdg|jj|g}gxO|D]G}ttjj|t|}jfdd|Dq5WS)z6Return filenames for package's data files in 'src_dir'cs4g|]*}|krtjj|r|qSr)r<r,isfile)r7fn)filesrrr:s z,build_py.find_data_files..)rgetrr<r,r=rextend)rrrCZglobspatternZfilelistr)rIrr@ys !$zbuild_py.find_data_filescCsd}x|jD]v\}}}}xa|D]Y}tjj||}|jtjj||jtjj|||ddq)WqWdS)z$Copy data files into build directoryN preserve_modeF)r&r<r,r=mkpathdirname copy_file)rZlastdirrrCrDrEfilenametargetrrrr1s zbuild_py.build_package_datac Cs|jd}|js5|r.tjj|SdSng}x|ry|jdj|}Wn-tk r|jd|d|d=Yq>X|jd|tjj|Sq>W|jjd}|dk r|jd||rtjj|SdSdS)zReturn the directory, relative to the top of the source distribution, where package 'package' should be found (at least according to the 'package_dir' option, if any).r5rFrr6NrS)r>rr<r,r=KeyErrorinsertrJ)rrr,tailZpdirrrrr;s(      zbuild_py.get_package_dircCs|dkrPtjj|s.td|tjj|sPtd||rtjj|d}tjj|r|Stjdd|dS)NrFz%package directory '%s' does not existz>supposed package directory '%s' exists, but is not a directoryz __init__.pyz!package init file '%s' not found z(or not a regular file)) r<r,existsZDistutilsFileErrorisdirr=rGrwarn)rrrinit_pyrrr check_packages     zbuild_py.check_packagecCs1tjj|s)tjd||dSdSdS)Nz!file %s (for module %s) not foundFT)r<r,rGrrY)rmodule module_filerrr check_moduleszbuild_py.check_modulec Cs|j||ttjj|d}g}tjj|jj}xx|D]p}tjj|}||krtjjtjj |d}|j |||fqP|j d|qPW|S)Nz*.pyrz excluding %s) r[rr<r,r=abspathr"Z script_namesplitextbasenamerAZ debug_print) rrrZ module_filesmodulesZ setup_scriptrZabs_fr\rrrfind_package_moduless  "zbuild_py.find_package_modulesc Csi}g}x |jD]}|jd}dj|dd}|d}y||\}}Wn'tk r|j|}d}YnX|s|j||} |df||<| r|j|d| ftjj||d} |j || sq|j||| fqW|S)aFinds individually-specified Python modules, ie. those listed by module name in 'self.py_modules'. Returns a list of tuples (package, module_base, filename): 'package' is a tuple of the path through package-space to the module; 'module_base' is the bare (no packages, no dots) module name, and 'filename' is the path to the ".py" file (relative to the distribution root) that implements the module. r5rr6__init__z.pyrSrS) rr>r=rTr;r[rAr<r,r^) rr#rbr\r,rZ module_baserZcheckedrZr]rrr find_moduless*   zbuild_py.find_modulescCsqg}|jr"|j|j|jrmx?|jD]4}|j|}|j||}|j|q5W|S)a4Compute the list of all modules that will be built, whether they are specified one-module-at-a-time ('self.py_modules') or by whole packages ('self.packages'). Return a list of tuples (package, module, module_file), just like 'find_modules()' and 'find_package_modules()' do.)rrKrer#r;rc)rrbrrmrrrfind_all_moduless  zbuild_py.find_all_modulescCsdd|jDS)NcSsg|]}|dqS)r6rSr)r7r\rrrr:-s z-build_py.get_source_files..)rg)rrrrget_source_files,szbuild_py.get_source_filescCs.|gt||dg}tjj|S)Nz.py)listr<r,r=)rrDrr\Z outfile_pathrrrget_module_outfile/szbuild_py.get_module_outfiler6cCs|j}g}x|D]\}}}|jd}|j|j||}|j||r|jr|jtjj|dd|j dkr|jtjj|d|j qW|dd|j D7}|S)Nr5 optimizationrFrcSs>g|]4\}}}}|D]}tjj||qqSr)r<r,r=)r7rrCrDrErQrrrr:Cs z(build_py.get_outputs..) rgr>rjrrAr importlibutilcache_from_sourcerr&)rr.rbZoutputsrr\r]rQrrrr33s"    zbuild_py.get_outputscCst|tr!|jd}n!t|ttfsBtd|j|j||}tj j |}|j ||j ||ddS)Nr5z:'package' must be a string (dot-separated), list, or tuplerMr) r'strr>rituple TypeErrorrjrr<r,rOrNrP)rr\r]rZoutfiledirrrr build_moduleJs  zbuild_py.build_modulecCs=|j}x*|D]"\}}}|j|||qWdS)N)rers)rrbrr\r]rrrr/Ys zbuild_py.build_modulescCsxxq|jD]f}|j|}|j||}x<|D]4\}}}||ksYt|j|||q8Wq WdS)N)r#r;rcr)rs)rrrrbZpackage_r\r]rrrr0bs  zbuild_py.build_packagesc Cstjr|jddSddlm}|j}|d tjkrS|tj}|jr||ddd|j d|d|j |j dkr||d|j d|j d|d|j dS) Nz%byte-compiling is disabled, skipping.r)r2r6rrprefixdry_runrS) sysdont_write_bytecoderYdistutils.utilr2rr<sepr rrur)rrIr2rtrrrr2vs     zbuild_py.byte_compile)r r r )r r r)rNr)rrr)rrr)__name__ __module__ __qualname__Z descriptionZ user_optionsZboolean_optionsZ negative_optr r-r4r%r@r1r;r[r^rcrergrhrjr3rsr/r0r2rrrrrs8        '    4     rc@s(eZdZddZddZdS) build_py_2to3cCsfg|_|jr|j|jr9|j|j|j|j|j|jdddS)Nr.r) updated_filesrr/r#r0r1Zrun_2to3r2r3)rrrrr4s      zbuild_py_2to3.runcCs:tj||||}|dr6|jj|d|S)Nr6r)rrsr~rA)rr\r]rresrrrrss zbuild_py_2to3.build_moduleN)rzr{r|r4rsrrrrr}s  r})__doc__r<importlib.utilrlrvrZdistutils.corerZdistutils.errorsrxrrZ distutilsrrr}rrrrs    |PK!3^F^F2command/__pycache__/build_ext.cpython-35.opt-1.pycnu[ Yf{@sdZddlZddlZddlZddlZddlmZddlTddlm Z m Z ddlm Z ddl m Z ddlmZdd lmZdd lmZdd lmZejd Zd dZGdddeZdS)zdistutils.command.build_ext Implements the Distutils 'build_ext' command, for building extension modules (currently limited to C extensions, should accommodate C++ extensions ASAP).N)Command)*)customize_compilerget_python_version)get_config_h_filename) newer_group) Extension) get_platform)log) USER_BASEz3^[a-zA-Z_][a-zA-Z_0-9]*(\.[a-zA-Z_][a-zA-Z_0-9]*)*$cCsddlm}|dS)Nr)show_compilers)distutils.ccompilerr )r r@/opt/alt/python35/lib64/python3.5/distutils/command/build_ext.pyr sr c@seZdZdZdejZd`dad d d efd d ddfdddefdbdcdddddefdedfdgdhdidjdkdldmdngZd d%d(d1d8gZ d:d2d;e fgZ d<d=Z d>d?Z d@dAZdBdCZdDdEZdFdGZdHdIZdJdKZdLdMZejdNdOZdPdQZdRdSZdTdUZdVdWZdXdYZdZd[Zd\d]Zd^d_Zd2S)o build_extz8build C/C++ extensions (compile/link to build directory)z (separated by '%s') build-lib=b(directory for compiled extension modules build-temp=t1directory for temporary files (build by-products)z plat-name=pz>platform name to cross-compile for, if supported (default: %s)inplaceiz=ignore build-lib and put compiled extensions into the source z,directory alongside your pure Python modulesz include-dirs=Iz.list of directories to search for header filesdefine=DC preprocessor macros to defineundef=U!C preprocessor macros to undefine libraries=l!external C libraries to link withz library-dirs=Lz.directories to search for external C librariesrpath=R7directories to search for shared C libraries at runtime link-objects=O2extra explicit link objects to include in the linkdebugg'compile/link with debugging informationforcef2forcibly build everything (ignore file timestamps) compiler=cspecify the compiler type parallel=jnumber of parallel build jobsswig-cppN)make SWIG create C++ files (default is C) swig-opts=!list of SWIG command line optionsswig=path to the SWIG executableuser#add user include, library and rpathz help-compilerzlist available compilerscCsd|_d|_d|_d|_d|_d|_d|_d|_d|_d|_ d|_ d|_ d|_ d|_ d|_d|_d|_d|_d|_d|_d|_dS)Nr) extensions build_lib plat_name build_temprpackage include_dirsdefineundef libraries library_dirsrpath link_objectsr+r.compilerswigswig_cpp swig_optsr=parallel)selfrrrinitialize_optionsjs*                    zbuild_ext.initialize_optionsc Csrddlm}|jdd'd(d)d*d+d,d-|jdkrP|jj|_|jj|_|j}|jd d }|j dkr|jj pg|_ t |j t r|j j t j|_ tjtjkr|j jt jjtjd |j j|||kr+|j j||jd|jd|jdkr]g|_|jdkrxg|_n*t |jt r|jj t j|_|jdkrg|_n*t |jt r|jj t j|_t jdkrC|jjt jjtjdtjtjkrL|jjt jjtjd|jrst jj|jd|_nt jj|jd|_|j jt jjtttdd}|r|jj||j dkrd}n|j dd}t jjtjd}|r3t jj||}|jj|tj!dddksutj!dddkrtj"j#t jjtjdr|jjt jjtjddt$dn|jjd|j%d r|j&s|jj|j%d!n|jjd|j'rP|j'j d"}d#d$|D|_'|j(rn|j(j d"|_(|j)dkrg|_)n|j)j d%|_)|j*r%t jjt+d }t jjt+d} t jj,|r|j j|t jj,| r%|jj| |jj| t |j-t rnyt.|j-|_-Wnt/k rmt0d&YnXdS).Nr) sysconfigZbuildr@rBrKr+r.rOrAZ plat_specificincluderGrJntZlibsZDebugZRelease_homewin32ZPCbuildcygwinatheosbinlibpythonconfig.Py_ENABLE_SHAREDLIBDIR,cSsg|]}|dfqS)1r).0Zsymbolrrr s z.build_ext.finalize_options.. zparallel should be an integer)r@r@)rBrB)rKrK)r+r+)r.r.)rOrO)rArA)1 distutilsrRZset_undefined_optionsrC distributionZ ext_packageZ ext_modulesr?Zget_python_incrD isinstancestrsplitospathsepsys exec_prefixbase_exec_prefixappendpathjoinZensure_string_listrGrHrInameprefixr+rBdirnamergetattrrAplatform executable startswithrget_config_varZ python_buildrErFrNr=r isdirrOint ValueErrorZDistutilsOptionError) rPrRZ py_includeZplat_py_include _sys_homesuffixZnew_libZdefinesZ user_includeZuser_librrrfinalize_optionss  "      ""  2$        zbuild_ext.finalize_optionsc Csddlm}|jsdS|jjrj|jd}|jj|jpSg|j j |j |d|j d|j d|jd|j|_ t|j tjdkr|jtkr|j j|j|jdk r|j j|j|jdk r9x*|jD]\}}|j j||qW|jdk rlx!|jD]}|j j|qRW|jdk r|j j|j|j dk r|j j|j |jdk r|j j|j|j dk r|j j!|j |j"dS) Nr) new_compiler build_clibrKverbosedry_runr.rU)#r rr?riZhas_c_librariesget_finalized_commandrGextendZget_library_namesrHrrrrKrrr.rrmrurAr Z initializerDZset_include_dirsrEZ define_macrorFZundefine_macroZ set_librariesZset_library_dirsrIZset_runtime_library_dirsrJZset_link_objectsbuild_extensions)rPrrruvaluemacrorrrruns>    !z build_ext.runc Cst|tstdxt|D]\}}t|trFq(t|t sht|dkrttd|\}}tjd|t|t ot j |stdt|t stdt||d}x9dD]1}|j |}|dk rt|||qW|j d|_d|krPtjd|j d}|rg|_g|_x|D]~} t| tot| dkstdt| dkr|jj| dq~t| dkr~|jj| q~W||||j|jg}x!|jD]}|j|jq W|S)N)rr?rr)rP filenamesrrrrget_source_filess zbuild_ext.get_source_filescCsG|j|jg}x*|jD]}|j|j|jq W|S)N)rr?rrget_ext_fullpathru)rPZoutputsrrrr get_outputss zbuild_ext.get_outputscCs4|j|j|jr&|jn |jdS)N)rr?rO_build_extensions_parallel_build_extensions_serial)rPrrrrs  zbuild_ext.build_extensionscsj}jdkr$tj}yddlm}Wntk rRd}YnX|dkrmjdS|d|jfddjD}xAtj|D]-\}}j ||j WdQRXqWWdQRXdS)NTr)ThreadPoolExecutorZ max_workerscs%g|]}jj|qSr)Zsubmitbuild_extension)rer)executorrPrrrfs z8build_ext._build_extensions_parallel..) rOrm cpu_countZconcurrent.futuresr ImportErrorrr?zip_filter_build_errorsresult)rPZworkersrZfuturesrZfutr)rrPrrs        z$build_ext._build_extensions_parallelc Cs<x5|jD]*}|j||j|WdQRXq WdS)N)r?rr)rPrrrrrsz"build_ext._build_extensions_serialccsdy dVWnTtttfk r_}z+|js3|jd|j|fWYdd}~XnXdS)Nz"building extension "%s" failed: %s)ZCCompilerErrorZDistutilsErrorZ CompileErrorZoptionalrru)rPrerrrrs   zbuild_ext._filter_build_errorsc Cs|j}|dks+t|ttf r>td|jt|}|j|j}||j}|jpt ||dst j d|jdSt j d|j|j ||}|jpg}|jdd}x!|jD]}|j|fqW|jj|d|jd|d|jd|j d |d |j}|dd|_|jrt|j|j|jpg}|jp|jj|} |jj||d |j|d |jd |jd |d|j |d|j d|jd| dS)Nzjin 'ext_modules' option (extension '%s'), 'sources' must be present and must be a list of source filenamesZnewerz$skipping '%s' extension (up-to-date)zbuilding '%s' extensionZ output_dirrrDr+Zextra_postargsdependsrGrHrexport_symbolsrBZ target_lang)!rrjrrrrurrr.rr r+info swig_sourcesrrrrrrKcompilerBrDZ_built_objectsrrrlanguageZdetect_languageZlink_shared_object get_librariesrHrget_export_symbols) rPrrext_pathrZ extra_argsrrFZobjectsrrrrrsN "              zbuild_ext.build_extensioncCsg}g}i}|jr(tjd|jsOd|jksOd|jkrXd}nd}xr|D]j}tjj|\}} | dkr|j|d||j||d ||            zbuild_ext.swig_sourcescCstjdkrdStjdkrixWd D]5}tjjd|d}tjj|r)|Sq)WdSntd tjd S) zReturn the name of the SWIG executable. On Unix, this is just "swig" -- it should be in the PATH. Tries a bit harder on Windows. posixrLrU1.31.21.1z c:\swig%szswig.exez>I don't know how to find (much less run) SWIG on platform '%s'N)rrr)rmrursrtisfileZDistutilsPlatformError)rPZversfnrrrrfs zbuild_ext.find_swigcCs|j|}|jd}|j|d}|jsstjj|dd|g}tjj|j|Sdj|dd}|jd}tjj |j |}tjj||S) zReturns the path of the filename for a given extension. The file is located in `build_lib` or directly in the package (inplace option). r`rSNrbuild_pyrrr) get_ext_fullnamerlget_ext_filenamerrmrsrtr@rabspathZget_package_dir)rPrfullnameZmodpathfilenamerCrZ package_dirrrrr~s #zbuild_ext.get_ext_fullpathcCs&|jdkr|S|jd|SdS)zSReturns the fullname of a given extension name. Adds the `package.` prefixNr`)rC)rPrrrrrszbuild_ext.get_ext_fullnamecCs?ddlm}|jd}|d}tjj||S)zConvert the name of an extension (eg. "foo.bar") into the name of the file from which it will be loaded (eg. "foo/bar.so", or "foo\bar.pyd"). r)r|r` EXT_SUFFIX)distutils.sysconfigr|rlrmrsrt)rPrr|rZ ext_suffixrrrrs zbuild_ext.get_ext_filenamecCs@d|jjdd}||jkr9|jj||jS)aReturn the list of symbols that a shared extension has to export. This either uses 'ext.export_symbols' or, if it's not provided, "PyInit_" + module_name. Only relevant on Windows, where the .pyd file (DLL) must export the module "PyInit_" function. ZPyInit_r`rSr)rurlrrr)rPrZ initfunc_namerrrrszbuild_ext.get_export_symbolscCs3tjdkrddlm}t|j|szd}|jrJ|d}|tjd?tjd?d@f}|j|gS|jSntjd d d krd }|tjd?tjd?d@f}|j|gStjd d d krddl m }d }|tjd?tjd?d@f}g}xS|j dj D]<}|j dro|j|dd q@|j|q@W|j|dg|Stjdkr|jStjd ddkr|jSddl m }|j dr(djtjd?tjd?d@|j d}|j|gS|jSd S)zReturn the list of libraries to link against when building a shared extension. On most platforms, this is just 'ext.libraries'; on Windows, we add the Python library (eg. python20.dll). rWr) MSVCCompilerz python%d%dZ_dNrYrZz python%d.%dr[)rRSHLIBSz-lrmdarwinaixraz python{}.{}{}ABIFLAGS)roryZdistutils._msvccompilerrrjrKr+ hexversionrGrhrRr|rlr{rrformat)rPrrtemplateZ pythonlibrRZextrar]rrrrsJ    zbuild_ext.get_libraries)rrr)rrr)rrr)rrr )r!r"r#)r%r&r')r(r)r*)r+r,r-)r.r/r0)r1r2r3)r4r5r6)r7Nr8)r9Nr:)r;Nr<)r=Nr>) __name__ __module__ __qualname__Z descriptionrmrnZsep_byr Z user_optionsZboolean_optionsr Z help_optionsrQrrrrrrrr contextlibcontextmanagerrrrrrrrrrrrrrr!s~        @ N     K 6   r)__doc__rrmreroZdistutils.corerZdistutils.errorsrrrrZdistutils.dep_utilrZdistutils.extensionrZdistutils.utilr rhr Zsiter rrr rrrrrs"       PK!A[command/wininst-8.0.exenu[MZ@ !L!This program cannot be run in DOS mode. $tpj\VXq@YYt_Wp@؃u'jWp@utWhr@jՃ WjYYuhp@t Whr@jՃ \Fu[_]3@^U SVW=p@39uuEVhuVVSu ׃Ep@uu uu  uPt Pp@/9u u jU YYt.VhjVVSu ׃Eu%9u u hs@u jU YY9u t u jU YYEPuup@}EPPPWp@9uu Wp@\VuVjVWp@W=p@׃u9u t8u hr@&VVVjSq@SE׋E;u9u tu hr@jU 3_^[U8}S]VWj8EjPdSE EȋE@E̋Ej8hhs@E؍Ej3P]F2}t t*PhPs@EjP4;YYtt PhPK?PKV. uMN VGF*OȋEˍDEEPUQEHEEPQM <\tEhps@PQYYEPq@eDEE8t;EE0sQPuE04q@EEMȃ8EuGPuEPdq@ EEPQYM<\tGuF PFPvEuPjt"uOvvQuPF}tE@PE@ PujUE@ E9EkKM3PsEEPvP_EM+؍EPMbPM<\t#EPMPYM</tEhps@P/PYYM<\tjPq@S8VVq@$ hPx@Yt$q@D$Y_^][ U|@3ʼnE39EVt>PPQVuPhp@VPq@ p@Pq@+WVPq@ jhx@P5@@{V4tRDy@Y;N;t +V+щ0@+FM+F+~hq@YEEPh\p@tnuEjh@y@PXp@tV3PPPvPujEtKvWPq@uB|WHq@MuE q@3@p@P y@Y3_3^RBŔUV5r@W3EPr@EPr@jWWWEPօu_^UP|@3ʼnE} EEtuuu Pxr@SVWMQP|r@j]r@j Yhxy@3QQQQQQQjhQQQPHp@=Dp@PSjSE4p@ @VsAYPVjjSPp@hu8p@VOAYPVj j uuuPUl$|@3ʼnElExSVW=p@xQh3ShE|hz@Pd\tׅt3\SSSSpPEPSxDžpPp@\t;DžpPt8tEPVZ>YY5Dr@EPEhhz@P֍EP|hh~@hWuE~@ur@h@P4h~@P4h@Pu4@;tQh @h~@Pq@SVV4r@5q@E֋=q@@Px@Su׃uPPh~@@r@PEEPEPh`@Wփ;t֍EPEPhL@Wփ;uWgPp@;tGtBE=EPEPh8@Wփ;uWEPEPh$@Wփ;uW YEE;Eu3vp@tEEp@~P}Y9]Etuuuh@PDr@uuh@PDr@j@h@EPS9ut99ut49ut/;t+39uh@UuuJ U^[UQEPh4u@u $@ uujht@@ UQEPh4u@u $@ uujht@@ ø'|@3ĉ$$ NU$ V$-tX-t0H~j$hhUPr@VhUr@VjhhUPr@b3@6@tPjhrhUPr@h@D$ hЂ@PDr@5r@ D$PhUh@hUv1t(8jjhpUTr@PXr@5Tr@W3WWhpU-@D@PXr@WWhkUPr@@WN%<0\Yt hps@W%YYW%U0YY(S5`@5H@5r@ء,@t8th@hU5,@Y=D@h@hUh@5@5@WSTu hd@uY=D@=t@ @t9hH@hUh4@h5@+tjpYWp@=D@tB=p@t9h@hUh4@h5@tj%YWp@[_3$^]3^$UtSVWj,3ۍESP&$3]}j0^VESP] $Su}`p@5(p@EȍEP]E%@Ek։EEP}ElEP)@։EEP}EmEu>@։EEP}EnEf0@SEE4`p@EEEEEEPE ]]]E,p@_^[ø#|@3ĉ$SUVW5@=p@UD$Pt@Sh@؃@VjPYD$ @5@D$UPShЃ@V׋͍D$@@5@jPh@Shă@V5@-p@jh@V5@t@jh@V5@p@j hP@Sh@V5@jPh@Sh@h@5@hh@Shp@Vh @$P@@YY5@ q@@_^][tPp@@tP u B J^8e~0NlFLRFTPQv` FpPj EtCE@@NhfUHfTNpFhuFdF`9Fh 닋E@@^NlFPRFXPQvdF`DFpPj EtE@@}r\}rSEMuH MHMMHP^8~<E^8~}'EM;AtE}t j}E+G]+_G_^~Et,t(G S+Ã~PvtB FG0Eԃ > u3ɋV҃@VH@H@OI@I@PJ@J@K@L@L@M@&M@3M@M@)MMMAGMu+MM#+MM;Ms)MMAGMu֋MUvLBj3YM@mAGAGAGHuE +ʃmAGAGAG}w}tAG}vIG;]s7;}#,@0@@P@ t @h@M +)M 3AыM JʋU#эKOH M+˃HM+ρHE _V8F<^[Ul$|@3ʼnE\E|UxS]lVutWjE3Y}<339}p]ԉUvKDEU3B3ۃ}h]JEUUMur3@MM*MMM;M} EfU)~M UɊUUf fM feE`3ҋ+MBMMM M] )U+˃}]u3ҍHBMut Z#3ۃELEEMM 3ҍHBut J#ʋ3ۅuEME؉3M\_^3[`US]VuW3@;u$E ;r+;+M û3]E[QQQQQQQQQ Q Q Q Q QQHw3Ҿǿ3MIQQQQQQQQQ Q Q Q Q QQHt+KAu;r+3&KAuƹ3ҋNj3 _^[]UQ}SVWйtt3#3@BMu} j_UU3#ы@3@#3@3@3#@3@#3@3@3#ы@3@#3@3@3#@3@#3@3@3#ы@3@#3@3@3#@3@3@#3@3#ы@3@#m 3@3@3#@3@3@#3@Mk9}rDUU3)}#ы@3@3@#3@MuŃ}t3#3@FMu_^[ËT$u3t$ D$Y%\q@%`q@%hq@%lq@%pq@; |@uQL$+ȃ Y*QL$+ȃ Y%q@QL$+#ȋ%;r Y$-h!k@@$@5@@h@h@h@q@@}jYjXh8@3ۉ]]EPp@EEdp@jVWp@t;u3Fhp@3F@;u j]Y/@u 5@hr@hr@*YYt .5@@;uhr@hr@YY@uSWp@=@th@dYt jjj@r@0u< wLt}uBt < wFuEtEj XPVjh@ @=@u[Pr@<"u 39MMP r@YtFuF놋E MPQEYYËeEܣ@=@uPr@=@ur@E@3@ËeE-f=@MZt3Q<@@PEu@ t uԃ@v39@t@v39@j@Pq@jTq@YY@@0r@ @,r@ @(r@@=@u hl@$r@Y=@u j r@Y35U(@ @@@5@=@f@f @f@f@f%@f-@@E@E@E@(@@@@ @|@@p@ @jlYjp@hȰ@p@= @ujHYh lp@Pp@%q@jh`@5@5$q@YEu u q@YajYe5@։E5@։EEPEPuEu5Tq@֣@uփ@E EjYt$XYHVW(@(@;NjstЃ;r_^VW0@0@;NjstЃ;r_^%r@̋L$f9MZt3ËA<8PEu3fx ̋D$H<ASVq3҅WDv|$H ;r X;r (;r3_^[jh@ne@RsYt=E+PRYYt+@$ЃE E3=ËeE3T%r@%r@hl@d5D$l$l$+SVW|@1E3PeuEEEEdËMd Y__^[]Qt$t$t$t$he@h|@Vhh3V t VVVVV^3U|@eeSWN@;ǻt t У@`VEPp@u3up@3p@3p@3EPp@E3E3;uO@ u 5|@։5@^_[%Lq@%q@%q@%q@%(q@%,q@%0q@ȹֹ>. nRB0zbrζ 2@Tl0@TdԵzʾt`B&ڽĽĵRF8"jLVdlv6$ƺкں$2<JT\dlt~ʻԻ޻",BP`jrм  ظȸzjXJ6*޷ηp^+f@Uh@CreateDirectory (%s)MapViewOfFile (%s)CreateFileMapping (%s)CreateFile (%s)inflateEnd returns %dinflate returns %dinflateInit2 returns %d1.2.3\message_boxdirectory_createdfile_createdget_root_hkeyget_special_folder_pathcreate_shortcutCSIDL_FONTSCSIDL_PROGRAMSCSIDL_COMMON_PROGRAMSCSIDL_STARTUPCSIDL_COMMON_STARTUPCSIDL_DESKTOPDIRECTORYCSIDL_COMMON_DESKTOPDIRECTORYCSIDL_APPDATACSIDL_STARTMENUCSIDL_COMMON_STARTMENULib\site-packages\DATAScripts\SCRIPTSHEADERSPLATLIBPURELIBInstallation failed.no such folder (%s)unknown CSIDL (%s)sSHGetSpecialFolderPathAfunction not availableshell32.dllFailed to create shortcut '%s' - error 0x%xSetWorkingDirectory() error 0x%xSetIconLocation() error 0x%xSetArguments() error 0x%xSetDescription() failed, error 0x%xSetPath() failed, error 0x%xQueryInterface(IPersistFile) error 0x%xCoCreateInstance failed, error 0x%xsss|sssiCoInitialize failed, error 0x%xissilSOFTWARE\Python\PythonCore\%d.%d\InstallPathPYTHONHOME=%sOSErrorValueError__builtin__PyErr_FormatPyArg_ParseTuplePy_BuildValuePyCFunction_NewPyObject_GetAttrStringPyObject_SetAttrStringPyImport_ImportModuleRunning Script...Could not open postinstall-script %s Py_FinalizePyRun_SimpleStringPySys_SetArgvPy_InitializePyErr_PrintPy_SetProgramNameOut of memory!rbRunning the pre-installation script failed Can't load Python for pre-install scriptaRuntime Error100 Made Dir: %s .py200 File Copy: %s Error200 File Overwrite: %s Could not create temporary file~duInvalid cfgdata magic number (see bdist_wininst.py)Times RomanSetup %sCould not register window classSetup.exeSetupWindowClassThis Wizard will install %s on your computer. Click Next to continue or Cancel to exit the Setup Wizard.Software\Python\PythonCore\%s\InstallPathPython Version %s (found in registry)Software\Python\PythonCoreDon't know Python's installation typeStrangepython%d%d.dllPython Version %d.%dCannot installNo Python installation found in the registry.Python version %s required, which was not found in the registry.Python %s is required for this package. Select installation to use:UninstallString"%s\Remove%s.exe" -u "%s\%s-wininst.log"wb%s\Remove%s.exe040 Reg DB Value: [%s\%s]%s=%s Could not set key valueDisplayNamePython %d.%d %s020 Reg DB Key: [%s]%s Could not create key%s-py%d.%d999 Root Key: %s Source: %s *** Installation started %Y/%m/%d %H:%M *** %s\%s-wininst.logCould not open keyYou do not seem to have sufficient access rights on this machine to install this softwareHKEY_CURRENT_USERHKEY_LOCAL_MACHINE*** Installation finished %Y/%m/%d %H:%M *** Postinstall script finished. Click the Finish button to exit the Setup wizard.*** Could not load Python ****** run_installscript: internal error 0x%X *** freopen stdoutfreopen stderr300 Run Script: [%s]%s \Scripts\-installPlease wait while running postinstall script...if exist "%s" goto Repeat del "%s" :Repeat w%s.batCould not delete keyCould not delete valueuninstall-script-removeUninstall Finished!%d files and %d directories removed%d files and %d directories removed %d files or directories could not be removed%d Run Script: %s%d Reg DB Value: %s%d Reg DB Key: %s%d File Overwrite: %s%d File Copy: %s%d Made Dir: %sYou do not seem to have sufficient access rights on this machine to uninstall this software%d Root Key: %sAre you sure you want to remove this package from your computer?Please confirmOut of memorycould not open logfiler2. arg is not -u-uWrong number of args%s%cimport py_compile; py_compile.compile (r'%s')Py_OptimizeFlagPySys_GetObjectCompiling files to .pyo...Loading python...Compiling files to .pyc...Failed to unzip installation filesInstalling files...Running pre-installation scriptReady to installClick Next to begin the installation of %s. If you want to review or change any of your installation settings, click Back. Click Cancel to exit the wizard.install_scriptmetadatanametarget_versiontarget_optimizetarget_compilebuild_infoinfoSetuptitleSetup program invalid or damagedThis program is normally started by windowsRemoveCould not open archive`Psp0  ` @ X ;x8 h( H T+t4  d$ D \ S|< l,  L R#r2  b" B Z Cz: j*  J V@3v6 f& F  ^ c~> n. N `Qq1  a! A Y ;y9 i)  I U+u5  e% E ] S}= m-  M S#s3  c# C [ C{; k+  K W@3w7 g' G  _ c? o/ O `Psp0  ` @ X ;x8 h( H T+t4  d$ D \ S|< l,  L R#r2  b" B Z Cz: j*  J V@3v6 f& F  ^ c~> n. N `Qq1  a! A Y ;y9 i)  I U+u5  e% E ] S}= m-  M S#s3  c# C [ C{; k+  K W@3w7 g' G  _ c? o/ O A@!  @a`10  @     incorrect length checkincorrect data checkinvalid distance too far backinvalid distance codeinvalid literal/length codeinvalid distances setinvalid literal/lengths setinvalid bit length repeatinvalid code lengths settoo many length or distance symbolsinvalid stored block lengthsinvalid block typeheader crc mismatchunknown header flags setincorrect header checkinvalid window sizeunknown compression methodincompatible versionbuffer errorinsufficient memorydata errorstream errorfile errorstream endneed dictionary0@$@t@@@@@؎@@t@ inflate 1.2.3 Copyright 1995-2005 Mark Adler  #+3;CScs !1Aa  0@`@@0w,aQ mjp5c飕d2yҗ+L |~-d jHqA}mQDžӃVlkdzbeO\lcc=  n;^iLA`rqgjm Zjz  ' }Dңhi]Wbgeq6lknv+ӉZzJgo߹ホCՎ`~ѡ8ROggW?K6H+ L J6`zA`Ugn1yiFafo%6hRw G "/&U;( Z+j\1е,[d&c윣ju m ?6grWJz+{8 Ғ |! ӆBhn[&wowGZpj;f\ eibkaElx TN³9a&g`MGiIwn>JjѮZf @;7SŞϲG0򽽊º0S$6к)WTg#.zfJah]+o*7 Z-A1b62S-+ldEw}ZVǖAOIъ OM~-QJ#SpxAaU׮.7׵Y-6]]wll?AԞZ͢$ Faw$eڪ]]FD(koipvk19Z* ,  m86F߲]qTp0ek*1u4yީ%8S1bSWĔՖk1**ykʬHpo].*F6fcTT"eM©g0&):{ϼkZ> 8$,52F*sw1pHkQ6Fzw]cN̵J #pAF]#l8?1(BOgT~yUbL8^#ܖTZ1ObbSyOIV~P-{b-R4٠~^eGnHl/Su6: #jT$+e?yHf'*b#ٽЧ ?&~?$pi;FBzw[keZ~7 Sv8H 3?r$7jnԄYFܨ |OQ;օ U d S - =G\ p&Gw)` /a߫i5&LsZ<#0zMzFM8,9; :R:(q-v,.7/pXqYs3r%w+OQvrtEux܉~OK }!b|tyBxʠz{.lD~m8onlk[wjR1h58ib?mcf+aQ`צedd"fig HINSKyuJcO NZLݘMFGN@E$DD2AsX@*IBCPhTg3U>uW ַVS:R|P~Q9ZS [fYX4])\ZEo^m/_5qϱ٥s\ۼqދ!K7 kfֶԁ-b3Πjp]$^'~*I@VW<âM˟ŏ{ tDCm-@wm.B+(铜>Td"ŀǼϭ~8y$owJ1}05_K^ iϏ은BI#ƈdX܁T̓cQ: rՆ⩗ fn|xK)o%ƭ/3vUuA?)C:|sĵ@͂ Ͳ;bIUeh"׻_HS1޼^Z4eg Wb27_k%8ם(ŊO}do׸Jj3wVcXWP0qB{߭gCru&op-?'Bs ưGz>2[Ȏg; i8P/ _Y=чe:ZO?(3wwXR @hQ+ğH*0"ZOWoI}@mNП5+#*'G| AH=XX?#1jvʬ`p^Y<L~i/{kHwâ hs)aLoD~Pf7VM'(@ﰤ ہg9x+n&;f?/X)T`D1 ߨMߒ.FgTp'Hq/L0UEc?kǃh6ry7]P\@TN%s7@'>$!AxUʰ\3;Y^U~PGl!;b F2ȂpԞ(Q_V:1X: n3 m:@/)IJNv"2x+ٗ Kx.HҥfAj^y9*O]#kM`~b_R 7zFh!1߈Vc0a"j6nS Nr)Υ{t*F8#vufz`rs"WG9^EMvc΍&DAdQy/4Aڱ&S֚E biLQ<6'5P..T&q]w4.6IE? v\[YI>U!lDa>Ԫ΋ϩ7~8A]&nv|oY yKiw\¹9~$ 66nQfq>,o,IӔ 渱{I .H>C-Yn馑gQz tafw0a, Qmpjc5dۈ2yܸو L+~|-dj qHA}mԵQӅlVdkbze\Ocl=c ;n Li^`Agqr<KG k5Blۻ֬@2lE\u ϫ=Y&0Q:Qa!V#Ϻ(_ ٲ $/o|XhLaf-=vAq *q3xɢ4 j m=-dlc\kkQlabe0bNl{WeP|b-I|LeMaX:QΣtԻ0JߥA=ؕפmCij4ngF`D-s3 L_ |Pq<'A  Wh% of a^)ɘИ"רY=. \;l  tҚG9w&sc d; mj>zjZ '}DhibW]egl6qnkv+zZgJoC`֣ѓ~8ORѻgWg?H6K +گ L6JAz``ègU1nFiyaf%oҠRh6 w G"U&/ź; (+Z\j1,ٞ[ޮd°c&ujm 6?rgWJz{+ 8Ҏվ | !Bhݳڃn&[owGwZjpf; \ebiaklE x NT9§g&a`IiGM>nwۮjJZ@ f7;𩼮S޻G0齽ʺŠS0$6TW)#gfz.aJ]h*o+ 7 Z-1A26b+-Sdl}wEVZOAي»IˬO ~M-JQS#xpaA.U7Y-۩6˚w]]llA?Z$㧲F waރ$Ųe]]DFok(vpi91k *Z  ,8mF6]pTqke0*1¶u4%y<8syjHA}X*ݹ1SbSW§ٖծ1k**kypH]oF*.f6TTcMe"¤0g)&Ůޟ:{kZ >8,$5*F21wsHpQkzF6c]wN̵ׄJ# pȄA#]F8l1?(gOB~TUyLbˁ8#^TO1ZbbySIOP~V{-b-4R^~Ge­lHnuS/:6# $Tj?e+y䏼Hf*'˼Ѝb# &??~p$iBF;[wzek~ZS 7H8v ?3$rj7nFY |OQ; U dؓS - \G=&pGw`)/ ai5&sL <:R=Pe6^X7}o5641W0ճ2k3$k%'1&-[#bML"'{ "!$*x(+)`F(> q-q,v.Ț/7pqXsYr3w%vQO+tru՛E~xKO} |b!ytxBz{l.m~Do8nkljw[h1Ri85bcm?a+f`Qeddf"giH IKSNJuyOcN LZMݥFĚGE@ND$A2D@XsBI*CThPU3gWu>V SR:P|Q~Z9[ SYfX]4\)^oEZ_/m5qs<\kg2z &J8 좞V`a/6i\lU,zB\uHƒ=&FW A+Ox]`غ7W>9q߳!7Kk ֩fض-bѠ3pj$]^Ĝ'*~@IWVÕ<ӂMʏş{ Dt͆mC-@mw+B.(>dT"ş~Ϝ8yo$w1J}50K_ ^ϋiBۉI#dXфTQc:r Р fΫnx|)Ko%3/uUv?A)ġ:C|sд@͉ ;IbeU"hH_S1ފZ^ھ4ge ȋbW72%k_ܝ8Ŵ(}OodJֿjw3XcVPW0Bq{gǧurCo&p-?О'sB zGɠ2>[ ;g/P8i_ Y=嗇e:ϏOZw3(?RXw@ Qh+HZ"0*WOIo@}m5N#+'*GA |􏒨HX=#?X1vjʨ`^pYL'!$UxAׯ3\Y;U^GP~b;!lڇF 2p(ԐQV_:X1: 3n :m@I)/NJ2"v+x xKH.jAf^O*9y]#Mk~`bю_޶ Rz7hFм!10cV"ajحn6 SrN){t*8Fv#fu`zrϮsɛW"G9E^vMcD&dA/yQA4S&ֿ EbLil!>aDƋΪ~7A8n&]|vYoᡱ Kyi׫w¡\~9$66 Qnf>q,o,ӹI 散 I{.C>HnY-Qg̰t zfaFF F@(@H|@ @l. nRB0zbrζ 2@Tl0@TdԵzʾt`B&ڽĽĵRF8"jLVdlv6$ƺкں$2<JT\dlt~ʻԻ޻",BP`jrм  ظȸzjXJ6*޷ηp^dPropertySheetACreatePropertySheetPageACOMCTL32.dll(SetLastErrorKCreateDirectoryA^GetFileAttributesAhMapViewOfFileTCreateFileMappingA4CloseHandleSetFileTimeDosDateTimeToFileTimeqGetLastErrorSCreateFileAqUnmapViewOfFilelstrlenAGetProcAddressRLoadLibraryAuMultiByteToWideCharFreeLibrary\LocalFreeFormatMessageAcGetFileSizeGetTempFileNameAGetTempPathAGetModuleHandleAResumeThread1SetPriorityClassBGetCurrentProcessEGetCurrentThreadDSetThreadPriorityfCreateProcessA}GetModuleFileNameADeleteFileARemoveDirectoryAGetPrivateProfileIntAGetPrivateProfileStringAKERNEL32.dllMessageBoxAGetFocuswsprintfASSetDlgItemTextA;SendMessageA*ReleaseDC GetDCDispatchMessageATranslateMessagePeekMessageAEndPaint]GetSystemMetrics BeginPaintDefWindowProcAUpdateWindowShowWindow`CreateWindowExARegisterClassALoadCursorAMoveWindowtGetWindowRectPostMessageAEGetParent6SendDlgItemMessageAGetDlgItemMSetCursorUSER32.dll3CreateDIBitmapDeleteObject<SetTextColorNTextOutASetBkModeSelectObject9CreateFontAPCreateSolidBrushGDI32.dllRegQueryValueARegCloseKeyRegQueryValueExARegEnumKeyExARegOpenKeyExARegSetValueExARegCreateKeyExARegDeleteKeyARegDeleteValueAADVAPI32.dlliCoUninitializeCoCreateInstance;CoInitializeole32.dllWstrchr/memcpy3memsetastrncatUstrcat`strlenZstrcpyz_localtime64_time64nstrtolfree$malloc6_putenv_fstat64i32fprintf__iob_funcDremovefreadftellfseekfopenfclosefflushfreopenq_snprintfdstrncpyXstrcmphstrrchr_vsnprintfSsscanffwrite_strftimeOsprintf isspace>qsortCreallocfgetscstrncmp__argv__argcMSVCR80.dll_amsg_exit__getmainargs/_cexit_exitg_XcptFilter+_ismbbleadexit_acmdln _initterm _initterm_e?_configthreadlocale__setusermatherr_adjust_fdiv__p__commode__p__fmodem_encode_pointer__set_app_typeN_crt_debugger_hook_unlock__dllonexit|_lock"_onexitc_decode_pointerv_except_handler4_common_invoke_watsonB_controlfp_s)InterlockedExchangeVSleep&InterlockedCompareExchangeGetStartupInfoA^TerminateProcessnUnhandledExceptionFilterJSetUnhandledExceptionFilter9IsDebuggerPresentQueryPerformanceCounterGetTickCountFGetCurrentThreadIdCGetCurrentProcessIdGetSystemTimeAsFileTime_strnicmp_strdup_stricmp<_close=_read#_open_tempnamt@t@t@t@t@t@t@t@t@t@t@t@t@t@t@t@t@t@t@t@Software\Microsoft\Windows\CurrentVersion\Uninstallt@ t@pt@Pt@8t@ t@t@s@s@s@s@@s@t@s@@s@>@s@<>@ts@@Software\Microsoft\Windows\CurrentVersion\UninstallN@D(@pnklmn ( 8 H X hx  $ZR(n, BBB999111)))cR[RABZRYRZRAB[R[RAB[RAAB[ && &&&@JQ1AA1ZQ1111ZQ1AAZ@JQ1AAZQ1AAJ eu eu @ABZ@J@G@F@F@G@AABX@J@AABX@J@J@AA1X@J@G@HRX@G@AAG@ZRX@AAG@JQJed%ed%ed@AA1ZQ1AA1X@J@HQ1AA1X@1A1ZQ1AA1ZQ1A1J  & & RAABZRABZR[R[RABZRYRBZRABZRBW@J@J &R[R[R[R[R[RABZR[R[R[ & & & & & & &@J@J@J@J@HQ1AA1X@J@J@J@J@J@J@G@J@G@JQJ@ABZQ11Z@J@AAG@J@G@GQ1J@AA1ZQ1YQ1[@J@AAG@J@G@1W@J&@I@G@J@J@J@J@G@J@G@Z@J@AA1X@J@HRABX@J@HQ1AA1X@J@J  &  %& & & &RAABZR[RZRAAABZR[R[RABZR[R[@H{SetupMS Sans SerifP} This Wizard will install %s on your computer. Click Next to continue or Cancel to exit the Setup Wizard.P}PhnP}@H{SetupMS Sans SerifP} Select python installation to use:PP}7Python Directory:P}jPhnPP}BInstallation Directory:@B2Find other ...@H{SetupMS Sans SerifP} Click Next to begin the installation. If you want to review or change any of your installation settings, click Back. Click Cancel to exit the Wizard.P}msctls_progress32Progress1P}Installation progress:PhnPA@H{SetupMS Sans SerifP} Click the Finish button to exit the Setup wizard.PhnP}( PAPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXPK!Wcommand/wininst-6.0.exenu[MZ@ !L!This program cannot be run in DOS mode. $Aţ/\ţ/\ţ/\#\£/\%\Σ/\F!\ǣ/\+\ǣ/\ţ/\£/\ţ.\W/\<\ȣ/\p\ã/\Kp\ģ/\%\ģ/\)\ģ/\Richţ/\PEL@H `lp@Xph.textp^` `.rdataJ;p@p@@.data`* @.rsrcX @@Vt$ Ul$W|$S>tpj\V\q@YYt_Wp@؃u'jWp@utWhhr@jՃ WjYYuhp@t Whhr@jՃ \Fu[_]3@^U SVW=p@39uuEVhuVVSu ׃Ep@uu uu  uPt Pp@/9u u jU YYt.VhjVVSu ׃Eu%9u u hr@u jU YY9u t u jU YYEPuup@}EPPPWp@9uu Wp@\VuVjVWp@W=p@׃u9u t8u hr@&VVVjSp@SE׋E;u9u tu hr@jU 3_^[U8}S]VWj8EjPpZE EȋE@E̋Ej8hs@E؍Ej3P]F2}t t*Phr@EjP4;YYtt Phr@j׃ 3EPJYt,t Phr@j׃ 339uuuu SY FSp@_^[U(ES]L+A Q+ƒ9PKWM}:t3efy V3@^_[ËE}4N*>PKE?PK9V. u MN VGF*OMUDE܍PYHEPYM <\ths@PXYYPp@eEE8t;EE0XPuE0Pq@EEMȃ8EuGPuPhq@ t /u\@uPJXYM<\tNu3fF P3fFPvuPjt"uOvvQuP^}tE@PE@ PujUE@ E9E=0M3WsEPWE_M+؍PMWM<\t)PhWYM</ths@PGWYYE\t/u@KSPPhq@]3UE Ph @u  @ u]u jmhD@@ ]UE Ph @u  @ u]u j5hD@@ ]U=4@VWu hh@p@t3hP@Pp@4@EPh @u  @ tY=4@uh8@5,@@YY;3|@u6h\@WUhH@h5@SRYD$tjPYYt$`p@=4@tB=@t9h,@WUhH@h5@SYtjVAYYV`p@3_^][8@tPq@Yt$@q@%4@Y8@U SV5p@W}hظ@Whĸ@Wh@WEh@WEh@WEh@WE395<@u3J;tC9ut>9ut99ut49ut/;t+39u h`@Uu u U_^[ÁP<@SUV3Wt$3;t@A=$r@PVhS5@VVUS5@׉t$5<@$h cD$6D$D$ h@P,r@D$(P$ttD$t$D$ 6h@P,r@D$,Pjjt$US5@6h5@0r@vuD$_^][PUhV5,r@Wh @hP@PE֍Pq@=p@uׅ5@E5$@h @PփE5p@PPEPhօtEPPEPhօt3,hȵ@P4DuP%DP_^USV3WSSDq@ q@5q@@Թ@QWPE֡q@ PWuh @$;u0p@Pth@P,r@tPuVYEYV`p@q@=q@@Pסq@5q@@P֡q@ Pסq@ Pփ9]ht@4C$p@uq@jSq@PEuq@jjuEӋED8Pq@؃(t:ht@SBu;ujPq@uÀ$8SSq@$ h`@Yuq@EY_^[UQQSV5p@W}hظ@Whĸ@Wh@WEh@WEhع@WE֋3;t;9Et69Et19Et,;t(h`@UW u U tU_^[USV5p@W}h@Wht@Wh\@WEhL@WEh<@WEh(@WEh@WEh@WE3E;9u9u9u9ut{9utv9utqh@ӋY;t?h@WUh@W@U,@Ȱ@jVUP6WU(@rE@E @E@EP@3jX_^[UV5r@W3jWWEWPօtEPr@EP r@jWWEWP_^U@El@=tEX@VW3MWQWjWW\@WVP p@;t5ujWh@Lr@PPr@3Wh@VLr@PPr@@@=q@SVuhԻ@P׍hԹ@Pq@$@EPq@q@EPӍEPPh@hPq@q@P5$@h`@h@5$@ӃHuh@5$@5@5$@Vhx@P׃ EPEP3PhPPPPu p@tjh`@PLr@PPr@up@}uPh\@hH@5$@Ӄh@5@5$@h8@P׍P>@PPjjh,@up@tjh@PLr@PPr@Ph,@Ph\@h@5$@Vuh@P׍h@Pq@Pj5@E5d@q@@uq@VuVuh@P׍P > @@PPjjVup@tjh@PLr@PPr@PVPh\@h@5$@ӃjX[_^U=} NV} K} W39=4@)@ƅ=@ S0r@hp@hu}Ed@}Ӎh @P=hX@P<VP<$@;tQh @h@@Pq@WWDq@ q@5q@@Թ@QWPE փuPPh0@Lr@PPr@q@ PWu փ uPPh @Lr@PPr@hjq@Pr@Eh @EHYt{V4th@RYY;N;t +V+щ0@+FMh+F+~q@YPhp@tmSjh@Pp@tT3PPPvPSjEtLvWPq@u(|W@q@MuEp@jXh@p@PYY3_^[̋T$3;tMB;tFHJJJB0HH H H(H,H0H8H<0@HlHPHL3ø̋D$ W3;81|$8Vt$ ;9~ ~u F ]@~(9~$uF$]@F(h0%jPV ;u^_ËL$;ωF}xB0P}|VH$x4^_PF(PV$~^_ø_SUl$ ]VWC43;u(K$M(jPQU ;ljC4u _^][9{(uK${0{,S(}K(+;r*u {4+ȃK(_^]C0K,3[+K0;ȉL$vȉL$S0{4u +ʃL$+t(u {4ȋ+ʃ_C0C(^C,]3[Ë{0C(;Љ{0uC0S,;sщS,_^]3[̋D$8SX|H q8u Ha; u H PUk3UUUR$CjD$4D$4D$5KPQ5$Cl$C Ct@0CL$%3ҹL$рtD$L@\}@C$L$;vL$LD$AH}@h3UUUSLT$L$X҃ CA0 l$1D$L@0}@D$s'nO|$FD$t$r<CtL$LA\}@tT$LB}@K tCt%D$D$$D$%KjD$(PQ" C33 sOF D$rK tACt7D$D$$ȋD$'jD$(L$)T$*KPQ8" C33s(TO|$FD$t$rًK tЁQK A Ct%D$D$$jT$(D$)CRP! C3D$3Ktvs-O|$FD$t$rًK ɉC@tACt%D$D$$D$%KjD$(PQ5! C3D$3K tAKK@;ωL$vωL$S tHR҉T$8t=S zs@R+49;v+׋ʋT$8t$ʃL$|$t$StD$KPVQ L$(CD$ S@++щ|$t$S@K@C@Kt3ɍ1AL$K ɉT$,t-Q҉T$8t"S@;Q sL$8|$D$8D$,C@D$8L$,tL$;rKtT$CRVPCD$ L$+L$,ɉ|$t$K tAC@K31AL$K ɉT$,t-Q$҉T$8t"S@;Q(sL$8|$D$8D$,C@D$8L$,tL$;rKtT$CRVPCD$ L$+L$,ɉ|$t$K tA$KtOs' O|$FD$t$rًK;tT$LB}@R 3l$C tK H,S B0jjjLL$XCA0D$   s'_ O|$F D$t$rًȋЁ3Ҋt$L$LCA03D$3 K  jjjT$XCB0D$  |$P Kt̓+D$T s$ O|$Ft$r݋ȃKȃMws$H]@ D$ CLs@CT CP{@CXD$ D$ T$LB|@D$ ̓+ D$s+d$ O|$F D$t$rًЋҁ;tL$LA|@. 3K@D$3K@ɉL$;vωL$T$ ;vʉL$R t$|$(ʋT$L$t$|$ +t$t$(щT$S@++щ|$ |$t$(t$S@ s# O|$Ft$r݋ȃЉK`ȃK\K`BSdD$ʃChKh;K\s[s#_ O|$Ft$r݋ShU{@3ɊD$fLSpKhAKh;K\rKh;s*3 $d$ShU{@fLSpShB;ЉShr千0KlCLRCTPQjCpPjXD$4D$t L$LA|@1 T$LB|@! ChK`Sd9ShKTKLJ#Ћ ;ՉL$@v<A KTOºKLF|$J#Ћ ;Չt$L$@wċT$@fsR;L$s&L$OF;|$t$rfT$B+KhfTKpKhAD$KhHuh͍Q;L$s+L$OFQ;|$t$r+KhɉD$bLKnL$,ȃfՉT$uJJ;s-d$$O|$‹T$FJ;t$r׋ȃDJ;s)O|$‹T$FJ;t$r׋ȃ +D$,{dSh{`;׉D$tT$,{hfT{p{hGI{hu|$S`Kd9Kh;0KlCLRS`CTPQ RCpPj D$4t8L$LD$Ap|@T$LBT|@L$L|$AT|@vSlKlSPRCXPQK`CdPTKpRjP D$4tD$L@<|@D$)D$rg|$ r]D$LT$ L$(PT$0H L$R0xPK8k<|D$TH P0xC8k<L$(T$ t$|$D$KTKLJ#Ћ;͉T$@v<KTOºKLF|$J#Ћ;͉t$T$@wĄΉL$3ɊʉT$,L$L$J#L$@ыKLL$,T$@;ՉL$v[IT3ɊL$,O‹T$F|$ʺL$t$J#L$.ыKL ՉL$@L$;wT$@++L$@҉D$K@u w t  g@tT$LB |@LSHKHtE;s%KHOF;|$t$rۋKHK@J#ʉK@KH+KXKPJ#Ћ;͉T$@v<,KXOºKPF|$J#Ћ;͉t$T$@wΉL$3ɊʉT$,L$L$J#L$@ыKPL$,T$@;ՉL$v^3ɊL$,O‹T$F|$ʺL$t$J#L$.ыKP ՉL$@L$;wT$@++@D$tL$LA|@L$@KDSHKHtI;s%KHOF;|$t$rۋKHKDJ#ʉKDKH+D$T$ K,+L$09KDvT$LB{@-L$ T$0+ыKD;v<+ʋS0;ʉL$v+ʋS4S(L$+ S4+S0L$T$,S@;ʉT$8vT$(+ыK@T$,L$8L$T$ ;vʉL$+щT$ T$8+щS@L$,L$(T$,AL$(L$BIT$,L$uۋK@ncL$(S@AL$(L$ >K s'O|$F D$t$rًL$0+L$ T$LJSхɉL$0St8CSL$(D$0Pt +QR +QR L$XCA0D$ KT$ ɉT$0u'3Ҋt$L$8ʋʉL$8;Kt L$LA{@`3D$3KK s'O|$F D$t$r;CtSL$LA{@ d_^][8ËL$LT$(Q T$ y_1Q^k@3L$@ȋD$@L$H#L$$̉D$+٨t‹L$;؉L$s(jBT$;sjBT$+M#͋l$L$D+;l$+;l$HnL$,D$Iu*D$(+ȋD$T;+ʼnD$Td$AAFMus;sS+D$(+l$D$T;sc+ʼnD$TAAFMuL$,D$l$TI;s<+l$TD$@AAFMu+ȋD$T;s+ʼnD$TAAFMuD$+ȋD$Tv7PEAAFQAFT$TAAFMT$Tu݋T$D$Tt^AAF|$TvPIFH+ō$H@FH@FH@FL$TL$TwۅtH@F|$Tv@Fl$;T$0sQ;t$4EL$PD$A{@,L$PA|@ t E D$P@ |@E ++ً˸L$PH#BFA D$0+ƒAD$4+A}8_^]<][<̃|$3҉D$+Dž~|$AB;rt$HT$(ЉD$<$T$(u =֋$ D$DL$ +T$8fLG$*ÅD$@D$fD$t]t$ d$t L$@D$8#;tD$73ۉD$D$ЋˋL$ Jtut H#ȋuT$(T$ȉ$_^]3[|_^][|̋L$S\$Wu1D$ʁrr_ [Vt$u ^_[Ãs3t FKur3Ҿ^_[ Án^U [IVVVVVVVVV V V V V VVHw3ҹǿ3MF]VVVVVVVVV V V V V VVʃHtt FKu3ҹǾ3^_ [QSVt&It3Ҋ3ЁP@3ANu߃ UW3܋,P@ҋP@3Ջ؉D$,P@Y3%3P@3Ӌދ,P@P@3ŋډT$,P@Y3Ł3P@3Ã܋,P@ҋP@3Ջ؉D$,P@Y3%3P@3Ӄދ,P@P@3ʼnT$,P@Y3ŋ,P@33ËЃҋP@D$3P@,P@3%3P@3Ӌދ,P@P@3ŋ,P@Y3ʼnT$3P@3Ã܋,P@ҋP@3ՉD$,P@Y%3Ջ,P@33Ӌދ,P@P@3,P@T$P@3Ń3à OrH3܋,P@D$|$"u:Fu:t<"u>"uFu:t< v]ЍEPp@EtE> vFuj XPVSSdp@PAEPp@E MPQYYËeup@%p@%q@hh YY3%0q@%8q@B2 اȧlTD|`4,8JXl|Τ0FZh|H$^4֣ȣn TL>6ک^nzΪB$0:Ωĩ~ĨΨب",6>FNV`jt|bئ̦vh`T>2&Хĥ΢CreateDirectory (%s)MapViewOfFile (%s)CreateFileMapping (%s)CreateFile (%s)inflateEnd returns %dinflate returns %dinflateInit2 returns %d1.2.3\`Psp0  ` @ X ;x8 h( H T+t4  d$ D \ S|< l,  L R#r2  b" B Z Cz: j*  J V@3v6 f& F  ^ c~> n. N `Qq1  a! A Y ;y9 i)  I U+u5  e% E ] S}= m-  M S#s3  c# C [ C{; k+  K W@3w7 g' G  _ c? o/ O `Psp0  ` @ X ;x8 h( H T+t4  d$ D \ S|< l,  L R#r2  b" B Z Cz: j*  J V@3v6 f& F  ^ c~> n. N `Qq1  a! A Y ;y9 i)  I U+u5  e% E ] S}= m-  M S#s3  c# C [ C{; k+  K W@3w7 g' G  _ c? o/ O A@!  @a`10  @     incorrect length checkincorrect data checkinvalid distance too far backinvalid distance codeinvalid literal/length codeinvalid distances setinvalid bit length repeatinvalid literal/lengths settoo many length or distance symbolsinvalid code lengths setinvalid stored block lengthsinvalid block typeheader crc mismatchunknown header flags setincorrect header checkinvalid window sizeunknown compression method~@~@~@}@}@}@}@}@}@~@incompatible versionbuffer errorinsufficient memorydata errorstream errorfile errorstream endneed dictionary inflate 1.2.3 Copyright 1995-2005 Mark Adler  #+3;CScs !1Aa  0@`@@0w,aQ mjp5c飕d2yҗ+L |~-d jHqA}mQDžӃVlkdzbeO\lcc=  n;^iLA`rqgjm Zjz  ' }Dңhi]Wbgeq6lknv+ӉZzJgo߹ホCՎ`~ѡ8ROggW?K6H+ L J6`zA`Ugn1yiFafo%6hRw G "/&U;( Z+j\1е,[d&c윣ju m ?6grWJz+{8 Ғ |! ӆBhn[&wowGZpj;f\ eibkaElx TN³9a&g`MGiIwn>JjѮZf @;7SŞϲG0򽽊º0S$6к)WTg#.zfJah]+o*7 Z-A1b62S-+ldEw}ZVǖAOIъ OM~-QJ#SpxAaU׮.7׵Y-6]]wll?AԞZ͢$ Faw$eڪ]]FD(koipvk19Z* ,  m86F߲]qTp0ek*1u4yީ%8S1bSWĔՖk1**ykʬHpo].*F6fcTT"eM©g0&):{ϼkZ> 8$,52F*sw1pHkQ6Fzw]cN̵J #pAF]#l8?1(BOgT~yUbL8^#ܖTZ1ObbSyOIV~P-{b-R4٠~^eGnHl/Su6: #jT$+e?yHf'*b#ٽЧ ?&~?$pi;FBzw[keZ~7 Sv8H 3?r$7jnԄYFܨ |OQ;օ U d S - =G\ p&Gw)` /a߫i5&LsZ<#0zMzFM8,9; :R:(q-v,.7/pXqYs3r%w+OQvrtEux܉~OK }!b|tyBxʠz{.lD~m8onlk[wjR1h58ib?mcf+aQ`צedd"fig HINSKyuJcO NZLݘMFGN@E$DD2AsX@*IBCPhTg3U>uW ַVS:R|P~Q9ZS [fYX4])\ZEo^m/_5qϱ٥s\ۼqދ!K7 kfֶԁ-b3Πjp]$^'~*I@VW<âM˟ŏ{ tDCm-@wm.B+(铜>Td"ŀǼϭ~8y$owJ1}05_K^ iϏ은BI#ƈdX܁T̓cQ: rՆ⩗ fn|xK)o%ƭ/3vUuA?)C:|sĵ@͂ Ͳ;bIUeh"׻_HS1޼^Z4eg Wb27_k%8ם(ŊO}do׸Jj3wVcXWP0qB{߭gCru&op-?'Bs ưGz>2[Ȏg; i8P/ _Y=чe:ZO?(3wwXR @hQ+ğH*0"ZOWoI}@mNП5+#*'G| AH=XX?#1jvʬ`p^Y<L~i/{kHwâ hs)aLoD~Pf7VM'(@ﰤ ہg9x+n&;f?/X)T`D1 ߨMߒ.FgTp'Hq/L0UEc?kǃh6ry7]P\@TN%s7@'>$!AxUʰ\3;Y^U~PGl!;b F2ȂpԞ(Q_V:1X: n3 m:@/)IJNv"2x+ٗ Kx.HҥfAj^y9*O]#kM`~b_R 7zFh!1߈Vc0a"j6nS Nr)Υ{t*F8#vufz`rs"WG9^EMvc΍&DAdQy/4Aڱ&S֚E biLQ<6'5P..T&q]w4.6IE? v\[YI>U!lDa>Ԫ΋ϩ7~8A]&nv|oY yKiw\¹9~$ 66nQfq>,o,IӔ 渱{I .H>C-Yn馑gQz tafw0a, Qmpjc5dۈ2yܸو L+~|-dj qHA}mԵQӅlVdkbze\Ocl=c ;n Li^`Agqr<KG k5Blۻ֬@2lE\u ϫ=Y&0Q:Qa!V#Ϻ(_ ٲ $/o|XhLaf-=vAq *q3xɢ4 j m=-dlc\kkQlabe0bNl{WeP|b-I|LeMaX:QΣtԻ0JߥA=ؕפmCij4ngF`D-s3 L_ |Pq<'A  Wh% of a^)ɘИ"רY=. \;l  tҚG9w&sc d; mj>zjZ '}DhibW]egl6qnkv+zZgJoC`֣ѓ~8ORѻgWg?H6K +گ L6JAz``ègU1nFiyaf%oҠRh6 w G"U&/ź; (+Z\j1,ٞ[ޮd°c&ujm 6?rgWJz{+ 8Ҏվ | !Bhݳڃn&[owGwZjpf; \ebiaklE x NT9§g&a`IiGM>nwۮjJZ@ f7;𩼮S޻G0齽ʺŠS0$6TW)#gfz.aJ]h*o+ 7 Z-1A26b+-Sdl}wEVZOAي»IˬO ~M-JQS#xpaA.U7Y-۩6˚w]]llA?Z$㧲F waރ$Ųe]]DFok(vpi91k *Z  ,8mF6]pTqke0*1¶u4%y<8syjHA}X*ݹ1SbSW§ٖծ1k**kypH]oF*.f6TTcMe"¤0g)&Ůޟ:{kZ >8,$5*F21wsHpQkzF6c]wN̵ׄJ# pȄA#]F8l1?(gOB~TUyLbˁ8#^TO1ZbbySIOP~V{-b-4R^~Ge­lHnuS/:6# $Tj?e+y䏼Hf*'˼Ѝb# &??~p$iBF;[wzek~ZS 7H8v ?3$rj7nFY |OQ; U dؓS - \G=&pGw`)/ ai5&sL <:R=Pe6^X7}o5641W0ճ2k3$k%'1&-[#bML"'{ "!$*x(+)`F(> q-q,v.Ț/7pqXsYr3w%vQO+tru՛E~xKO} |b!ytxBz{l.m~Do8nkljw[h1Ri85bcm?a+f`Qeddf"giH IKSNJuyOcN LZMݥFĚGE@ND$A2D@XsBI*CThPU3gWu>V SR:P|Q~Z9[ SYfX]4\)^oEZ_/m5qs<\kg2z &J8 좞V`a/6i\lU,zB\uHƒ=&FW A+Ox]`غ7W>9q߳!7Kk ֩fض-bѠ3pj$]^Ĝ'*~@IWVÕ<ӂMʏş{ Dt͆mC-@mw+B.(>dT"ş~Ϝ8yo$w1J}50K_ ^ϋiBۉI#dXфTQc:r Р fΫnx|)Ko%3/uUv?A)ġ:C|sд@͉ ;IbeU"hH_S1ފZ^ھ4ge ȋbW72%k_ܝ8Ŵ(}OodJֿjw3XcVPW0Bq{gǧurCo&p-?О'sB zGɠ2>[ ;g/P8i_ Y=嗇e:ϏOZw3(?RXw@ Qh+HZ"0*WOIo@}m5N#+'*GA |􏒨HX=#?X1vjʨ`^pYL'!$UxAׯ3\Y;U^GP~b;!lڇF 2p(ԐQV_:X1: 3n :m@I)/NJ2"v+x xKH.jAf^O*9y]#Mk~`bю_޶ Rz7hFм!10cV"ajحn6 SrN){t*8Fv#fu`zrϮsɛW"G9E^vMcD&dA/yQA4S&ֿ EbLil!>aDƋΪ~7A8n&]|vYoᡱ Kyi׫w¡\~9$66 Qnf>q,o,ӹI 散 I{.C>HnY-Qg̰t zfaFF Fn@1n@ޢXrh(pXp,(qt4p@Tp$rq(*pB2 اȧlTD|`4,8JXl|Τ0FZh|H$^4֣ȣn TL>6ک^nzΪB$0:Ωĩ~ĨΨب",6>FNV`jt|bئ̦vh`T>2&Хĥ΢SCoUninitialize CoCreateInstance-CoInitializeole32.dllIPropertySheetACreatePropertySheetPageACOMCTL32.dllqSetLastError-CreateDirectoryA GetFileAttributesAMapViewOfFile5CreateFileMappingACloseHandlelSetFileTime_DosDateTimeToFileTimeGetLastError4CreateFileAUnmapViewOfFilelstrlenA>GetProcAddressLoadLibraryAMultiByteToWideCharLocalFreeFormatMessageAFreeLibrary&GetModuleHandleAuGetVersionExAWDeleteFileA4GetPrivateProfileIntA:GetPrivateProfileStringA,ResumeThreadwSetPriorityClassGetCurrentProcessGetCurrentThreadSetThreadPriorityDCreateProcessA$GetModuleFileNameA'RemoveDirectoryAGetFileSizecGetTempFileNameAeGetTempPathAKERNEL32.dllMessageBoxAGetFocusSendMessageAEndPaintFGetSystemMetrics BeginPaintDefWindowProcAPostMessageA,SetDlgItemTextAwsprintfA5GetParentSendDlgItemMessageAReleaseDCGetDCMoveWindow\GetWindowRectGetDlgItemDispatchMessageATranslateMessagePeekMessageA&SetCursorLoadCursorAUpdateWindowjShowWindowYCreateWindowExARegisterClassAUSER32.dllSDeleteObjectSetTextColorTextOutASetBkModeSelectObject6CreateFontA0CreateDIBitmapMCreateSolidBrushGDI32.dll[RegCloseKeyrRegOpenKeyExA{RegQueryValueExAgRegEnumKeyExAzRegQueryValueARegSetValueExA_RegCreateKeyExAbRegDeleteKeyAdRegDeleteValueAADVAPI32.dllrShellExecuteASHELL32.dllstrchrmemcpymemsetstrncatstrcatstrlenstrcpystrcmpstrrchrXfprintf_vsnprintfmalloc_snprintfstrncpy^freesscanf_putenvremove]freaddftellbfseekWfopenLfcloseOfflush_freopen_iobffwritestrftimelocaltimetimesprintf_fstatstrtol_pctype_isctypea__mb_cur_maxqsortreallocRfgetsstrncmpc__p___argvb__p___argcMSVCRT.dll_exitH_XcptFilterIexit_acmdlnX__getmainargs_initterm__setusermatherr_adjust_fdivj__p__commodeo__p__fmode__set_app_type_except_handler3_controlfpPGetStartupInfoA_strnicmp_strcmpi_strdup_tempnam_close_read_open@D@@D@@D@@@ز@D@@IJ@@IJ@@D@@@ز@D@@ @@l@T@<@,@@@@@@б@@@@@~@@@@@Software\Microsoft\Windows\CurrentVersion\UninstallSoftware\Microsoft\Windows\CurrentVersion\Uninstallmessage_boxdirectory_createdfile_createdget_root_hkeyget_special_folder_pathcreate_shortcutCSIDL_FONTSCSIDL_PROGRAMSCSIDL_COMMON_PROGRAMSCSIDL_STARTUPCSIDL_COMMON_STARTUPCSIDL_DESKTOPDIRECTORYCSIDL_COMMON_DESKTOPDIRECTORYCSIDL_APPDATACSIDL_STARTMENUCSIDL_COMMON_STARTMENULib\site-packages\DATAScripts\SCRIPTSHEADERSPLATLIBPURELIBsno such folder (%s)unknown CSIDL (%s)function not availableSHGetSpecialFolderPathAshell32.dllFailed to create shortcut '%s' - error 0x%xSetWorkingDirectory() error 0x%xSetIconLocation() error 0x%xSetArguments() error 0x%xSetDescription() failed, error 0x%xSetPath() failed, error 0x%xQueryInterface(IPersistFile) error 0x%xCoCreateInstance failed, error 0x%xsss|sssiCoInitialize failed, error 0x%xissi100 Made Dir: %s .py200 File Copy: %s Error200 File Overwrite: %s Runtime ErrorTimes RomanThis Wizard will install %s on your computer. Click Next to continue or Cancel to exit the Setup Wizard.Don't know Python's installation typeStrange\python%d%d.dllPython Version %d.%dCannot installNo Python installation found in the registry.Python version %s required, which was not found in the registry.Python %s is required for this package. Select installation to use:Software\Python\PythonCore\%s\InstallPathPython Version %s (found in registry)Software\Python\PythonCoreCompiling files to .pyo...Loading python...Compiling files to .pyc...Failed to unzip installation filesInstalling files...Running pre-installation scriptReady to installClick Next to begin the installation of %s. If you want to review or change any of your installation settings, click Back. Click Cancel to exit the wizard.Py_OptimizeFlagPySys_GetObjectPyRun_SimpleStringPy_FinalizePy_SetProgramNamePy_Initialize%s%cimport py_compile; py_compile.compile (r'%s')SOFTWARE\Python\PythonCore\%d.%d\InstallPathPYTHONHOME=%sOut of memory!rbRunning the pre-installation script failed Can't load Python for pre-install script (%d)aPyErr_PrintOSErrorValueError__builtin__PyLong_FromVoidPtrPyErr_FormatPyArg_ParseTuplePy_BuildValuePyCFunction_NewPyObject_GetAttrStringPyObject_SetAttrStringPyImport_ImportModuleUninstallString"%s\Remove%s.exe" -u "%s\%s-wininst.log"wb%s\Remove%s.exe040 Reg DB Value: [%s\%s]%s=%s Could not set key valueDisplayNamePython %d.%d %s020 Reg DB Key: [%s]%s Could not create key%s-py%d.%d999 Root Key: %s Source: %s *** Installation started %Y/%m/%d %H:%M *** %s\%s-wininst.logCould not open keyYou do not seem to have sufficient access rights on this machine to install this softwareHKEY_CURRENT_USERHKEY_LOCAL_MACHINEPostinstall script finished. Click the Finish button to exit the Setup wizard.*** Could not load Python ****** run_installscript: internal error 0x%X *** freopen stdoutfreopen stderr300 Run Script: [%s]%s \Scripts\-installPlease wait while running postinstall script...Installation failed.Running Script...Could not open postinstall-script %s PySys_SetArgv*** Installation finished %Y/%m/%d %H:%M *** IsUserAnAdminSetupFailed to start elevated process (ShellExecute returned %d)runasBad user_access_control valueoopsnoneautoforceuser_access_controlinstall_scriptmetadatanametarget_versiontarget_optimizetarget_compilebuild_infoinfotitleSetup %sCould not register window classSetup.exeSetupWindowClassif exist "%s" goto Repeat del "%s" :Repeat w%s.batCould not delete keyCould not delete valueuninstall-script-removeUninstall Finished!%d files and %d directories removed%d files and %d directories removed %d files or directories could not be removedYou do not seem to have sufficient access rights on this machine to uninstall this software%d Run Script: %s%d Reg DB Value: %s%d Reg DB Key: %s%d File Overwrite: %s%d File Copy: %s%d Made Dir: %s%d Root Key: %sAre you sure you want to remove this package from your computer?Please confirmOut of memorycould not open logfiler2. arg is not -u-uWrong number of argsSetup program invalid or damagedThis program is normally started by windowsRemoveCould not open archiveCould not create temporary file~duInvalid cfgdata magic number (see bdist_wininst.py) 8nhklmn     0 8Z@(n, BBB999111)))cR[RABZRYRZRAB[R[RAB[RAAB[ && &&&@JQ1AA1ZQ1111ZQ1AAZ@JQ1AAZQ1AAJ eu eu @ABZ@J@G@F@F@G@AABX@J@AABX@J@J@AA1X@J@G@HRX@G@AAG@ZRX@AAG@JQJed%ed%ed@AA1ZQ1AA1X@J@HQ1AA1X@1A1ZQ1AA1ZQ1A1J  & & RAABZRABZR[R[RABZRYRBZRABZRBW@J@J &R[R[R[R[R[RABZR[R[R[ & & & & & & &@J@J@J@J@HQ1AA1X@J@J@J@J@J@J@G@J@G@JQJ@ABZQ11Z@J@AAG@J@G@GQ1J@AA1ZQ1YQ1[@J@AAG@J@G@1W@J&@I@G@J@J@J@J@G@J@G@Z@J@AA1X@J@HRABX@J@HQ1AA1X@J@J  &  %& & & &RAABZR[RZRAAABZR[R[RABZR[R[@H{SetupMS Sans SerifP} This Wizard will install %s on your computer. Click Next to continue or Cancel to exit the Setup Wizard.P}PhnP}@H{SetupMS Sans SerifP} Select python installation to use:PP}7Python Directory:P}jPhnPP}BInstallation Directory:@B2Find other ...@H{SetupMS Sans SerifP} Click Next to begin the installation. If you want to review or change any of your installation settings, click Back. Click Cancel to exit the Wizard.P}msctls_progress32Progress1P}Installation progress:Phn@H{SetupMS Sans SerifP} Click the Finish button to exit the Setup wizard.PhnP}(PK!2yQllcommand/wininst-9.0-amd64.exenu[MZ@ !L!This program cannot be run in DOS mode. $ooo{ *o=8o=)oєoPKuA}PKuN .HcHHD$PFFIEH ;T$HIUHHcHH$HDII+HD$p HA:uH3H$H$HHр|\HT$`tH$HlafGH$ ]HcH HD$hHD$@H8tBLI9HT$PH3HLAI 1-HL$@IMILI9uMEHT$PH$.zLd$`H$,H3H$H|$hHB|!\Ld$Xt\F DNLd$0fD$(FH$L3fD$ Ht*NEEDNHT$pLd$(L$ H MtEDEOH׹AADAD;T$HLD$xE3HT$@MIJLD$ H^HEYH=>t3H= 'HT$ HIptH rH oiHP^GH&HcE3H3DHT$0}>tHT$0H 1^kH lH]LD$ X3H$@H3wH$`HP_@SHH'H3H$H$Hd$hd$XHd$xHd$PHd$`3HlZyH_H JlD)XHD$XL$L$HD$@HD$hH^HD$8HD$xHHD$0H$HD$(HD$pHD$ Wu3HD$PL ӜH 3DHD$ Yy H9^SHL$PLD$`HHy H]-HL$PH$Hy H]HL$PH$HP8y HZ]H$HtHL$PHPXy H]HT$hHt#HL$PDD$XHy H\HT$xHtHL$PHPHy Hx\jLD$pH$A33D$(HD$ UHL$`HH$DP0yGLD$pH mjH[DEVHL$`HtHPHL$PHtHP?XOHL$`HPHL$PHPXH ZhH$H3QtH[LHHIKHMK IKMCH\HUu3-VDL$`LD$hHT$0H0WH \YhHHH ="H%eH\$WHH$H3H$HLKhHl\H$D$ ^VH$HTHD pgD-eH[HL$0VLL$ L$HT$0HQt'LL$ L$HT$0HQt3K3HH$HWHfG3H$3Ɋ HDuH$ZSH$H3rH$Hİ_H\$UVWATAUAVAWH H \HSH[HH SH[HLRH[HHRHt[HLRHI[HHHD$hRH![HLRHZHLR3HD$pH;H;L;L;H;L;L;H ZHH;t[HlZHHXZHHfcH-m!HH gHc3HHAHHLAH rHl$hHD$pH-eL%RHb3L-RH\$`H A_A^A]A\_^]@UATAUAVAWHHl$ HHHH!H3HEXHHZIMcLHMJQHZIHE6QHZIL#QH\ZIHEQHYILPHYIHPHbYIHE PHMH:YLP3H9ML;H9ML;}H;tL;kH;bH9M XH;H8@3Hu ՂH^YLHH`袀FH dL$Y SUHML-63IAhIE~2MLL+H HtT3IHIuDL-D6IAA3H~ILHt!wHH;|HU(λ{uPDEJLRHT$ HA0JyH G]HtHRL$XxH$X.HtBH=lRHu/H$X' H \HtL$XH"R5xH$ H3gH8_^HHXHhHp WH@H`E3H@EA@GHHu3iHT$`HmFHd$(d$ E33HEAGHHrGHtHd$ E3E3AQHcGHHGG.HH\$PHl$XHt$hH@_H\$WH0H=GHtQH=[uGILGd$(EH IPHMAHHT$ DHHH[\IH\$@H0_@SUVWATAUAVH`HH3H$PL$E3+TM+TMuM1"HcHف|PK;{V4tHP3A;D9stHcCHH+HcCH+H F+SH{+HAHcH+mHI;HT$@4DA;HLPHL$@LE3 DA;tgDE3Lt$0AHHfDt$(fDt$ HI;tPLcHHzH3HHHcHIEI4$6E9EHO3H$PH3AdH`A^A]A\_^][HhHL$0GHL$0GHL$0E3E33D$ mGuHh@SUVWHHH3H$Ht G&HT$pGHFE3ɋиgfffE33H &OHL$h3ɉL$`L$XL$PL$HL$@L$8L$0D$(D$  BHHBHHAH3H=@L @PHDHɉL$ HAHAH3P H=Y@L R@DHHɉL$ HAHH~AHAHT$pHE3H$H3bH_^][H\$Ht$H|$ AT0H+HSH3H$HUH33D$`HD$ht$tt$pgA3H$HD$x%EH$@L%MHL$`L$H$H$Df;uH |SLMHvME3DHVMH$L]D3@HDDHt$XH\$PHt$HHt$@|$8D$0L$E3I3ɉt$(t$ `DHȺHCHVDHH$H3aL$I[Is I{(IA\H\$WH@HT$0HC3 DDL$0DT$HKHL$0BLD$0HYCLzAHDCLSH/C'Ay8uBAE3HȺpvB3H$0H3\_H@[H\$Hl$ VWATH`H4H3H$PHHD$HILHKAE3HHD$ 3=t3H!t$8H!t$0H!t$(H!t$ D$@P31D$@PHt-?t(HT$`HH+DA+uHEuLD$`H5KH$GALD$`HJH$-AL\$PH$AE3HL\$ <ufD$DHHtZHL$PHD$DE3HD$(E33H\$ y<u4L$E3IlAL˺ILcHQAHL$P&<Hd$8Hd$0Hd$(Hd$ HL$HLL$@LD$`;HL$H;H$PH3_]L$`I[0Ik8IA\_^H\$WH0HD$@H AE3HHD$ ;3ۋ;u HL$@p;;ËH\$HH0_@SH H? HH;tKH=uu:H 1LIHIA?VHHHH H [̃~Ht u Hg }H Hl$Ht$H|$ AUAVAWP*H+H3 H3H$@NH3t+fD;IfD;9HQH;tE3ɺArHD$ >H΋>L5MHHMIH~>MHH,E3AHH|$ [>L;t!tHALcHH|$ 3>M@:t4H IH$@M=L$@H>LD;uD@:t"H{HH$@M=H$@H)HLHAH=H=AE3HMͺp=E3AHH|$ o=HLu\f=EME3HȺpY=L@H=L@H=@N: =ME3HȺp<McAHMH|$ <L=sNHIH "H+Њ H@:uMǺH9=MAHH|$ <Hc:bLH;tgMAHHD$ U<L ^MLKHFI|ru"D E3HH/HL$H*HTH\$@Hl$PHt$XH0_H\$Hl$Ht$ WH0H[HHlEHHHH]REHHHH=5EHH 2HD$HHWAE3HD$ M*t.L,;E3HH.?HL$HHS)t!tM.Lv=E3HH.HL$H)HxSH\$@Hl$PHt$XH0_@SH :tDHHtH 荇uH+H [@SH :E3E33,HrH==t H=HHH=~HHu Hz=몹PQHHD$8HuHJ=3SNHL$PLƺlHH3H|$PHHHcHLIE;|$A HIcHHHD$8HJHL$PLƺɏH]DHbMcL IAH‹LC<H;A$3+CE3HHP.MJHT$ t A$ %H.BH BHAHE A$AE+AD}H+D+D+HGAHEI@DuHEAET$D#AD$@H8A_A^A]A\_^][3H;tXHQ(H;tOBAA HA ALBB HB B,B0B4B@BDHHHHB`HBX3BøEHt:LI(Mt1,EADEA wʸEQDAA#AA@3øH\$WH HMA81AXHu Ha Hy0uHa@HHA0Hy8u HHA8HI@AH%S0HHuBRHC(y`0B}GwHb8Hˉz(HK@S8Hc(\H\$0H _ELºH!@Ah AlHAXHHHA`H\$Hl$Ht$WH HY(HH{8u!K(DHN@V0HC8Hu{,uK(c4c0{,+n{,HV;rHK8LH+!c4C,P+{4K4;GHK8H+D!+tHVHK8DI+!k4ËK,{49K4uc4C0;sljC03H\$0Hl$8Ht$@H _ÉT$SUVWATAUAVAWHXE3LI;Hy(I;L9aL9!u D9a? u DIDqLQL9Dt$8ED$D$wDo@D$LT$@AG;A;t__HXA_A^A]A\_^][E;AAIA;r߉o@t HGt HGHO I;t g s#@l$0HT$0@l$1OA5GAAE;fAAI rHG I;thg s5@l$0HT$0AD$1@l$3D$2OGAAAE;AAIA;rHO I;t@ʼnAHG H g s)@l$0HT$0@l$1OACAGAAg r{HG I;tL`g _HA;AGA;HG I;LHM;PH+WH;vi+gE; AAIA;rHG oHI;thg s#@l$0HT$0@l$1OAqGAAIDIIg sODI 3ɉ$;txD$LT$@H;IE "G|fDGG|A;uGxGt9G|DD$D$H:IE HDGxHOlHG`GtLd$(HL$ LHGz D$D$LT$@$E3䉄$A;tH:IE ArGAr>MUEMM}EuAI͉o@wDMUEMM}EuD$#OhL_XAAA+ȋH#A5E;AAOhMAA+ȋH#HGX;wA:DȋAD$4EAAAAD#ADCDADYE;ADL$5AAD$6AAAAIǃD#ADHGXBDED;wL$5++OHA:u  p@t H:/OPWPA;t9;s!E;8A΃AI;wPrߋʸ#GH+OlL_`AAA+ȋH#A5E;AAOlMAA+ȋH#HG`;wDȋAD$4EAAAAD#ADCDADYE;PADL$5AAD$6AAAAIǃD#ADHG`BDED;wL$5++@t H-qD$D$LT$@AOLȃOPWPA;t9;s!E;A΃AI;wPrߋʸ#GL+G0A+A9GLv H,E;:OLAA+;v/+ȋG4;vW,++H5+ЋGHHW8;v GHIH+ыA;AGD++GHD$HAIƒuLT$@QD9gHFnGt.pidD9gE;dAAI rE+EEDGE;t;OAIH+D9gtD$LT$@GDZ AEL͋ED$ȋ%ȋD9gE;Ot H4AAD9gD9gE;AAI r;ot]H4lE;t`GHAIAD$LT$@MUEMM}Euo@wDAAAAD$HD$@$M}IE$EuAEo@3wD9o,u ?}A;]tI;t !A+]t$8A+uA]Au _9ot+;t'IUOH+D9ot GAELG؋Ƀ@? DODAMH;u;t $u D;DDA@SH HHt6HA(Ht-LA8Mt$HP8HtHI@AHS(HK@S8Hc(3H [H\$Hl$Ht$WH AHHHtHY(Ht {t; tH\$0Hl$8Ht$@H _Ã; u%E333DHՋ;CtWHCt HK8;s,vDC,HI+HW D[,D[0C,H+LHH9 s0C 3[HtHA(Ht@t HP b@3øD E3LEttMFDE3ȃf@+FDrHL$0F@FDn@AH~DsHN|HT$0!DGHHN| G )GDO H~|t#DGHDO DG 3H\$8Ht$@H _3H;tHI(H;t9 u9ADu øH\$Hl$Ht$WATAUH HLH=H4Hz(H'HB0HHz8HK@AAH%AHHu 3H9o8t&O(AEHK@S0HHu HK@HS8IHAXAH%HHL_XHHHL;rعƕH [H\$Ht$WH0HH3ۋH;;u"X{8H\$ E3E333G-荖HH;tDXLH\$@Ht$HH0_̉L$SVWATAUAVAWHHHc3ۋH;;u.XWH\$ E3E3338G3DB0HJuWW ;t;5ihLLIL=fAMkXKBL AA#u.xWQW H\$ E3E333F5耗K Ft!uW J !A;t1t,;uV Wu fO fO7wfDwf_f_ f_ H_(H_ H_u_FK H\$(H$HD$ E3E33J !#$O f_f_ f_ f_fDwK HT$PJ !;u@VDt$PtG $fG G fG9\$du 9\$huH_ nH$HL$d,;wHT$@H$ ;\D$LDT$JDL$HDD$FT$BL$@L$0D$(DT$ 蕙HG 9\$\u9\$`u HG HGnH$HL$\;HT$@H$;D$LDT$JDL$HDD$FT$BL$@L$0D$(DT$ HG9\$Tu9\$Xu HG HG(fH$HL$T$;tiHT$@H$;tRD$LDT$JDL$HDD$FT$BL$@L$0D$(DT$ 蕘HG(D$tGGfG_ ')>TT H\$ E3E333aCHĐA_A^A]A\_^[HHPHHL@LH SVWATH8H3ۋH;;u'SH\$ E3E333BH;;u'}SH\$ E3E333BLd$pG@Hƪt*t%HcHHLHkXIH =H 4HLB8u%ttHcHHHkXI A8t"RH\$ E3E333B;u*HME3HT$hH0H׋謝H[H8A\_^[LD$LL$ H(LL$H蠫H(LD$LL$ H(LL$H褫H(HHPL@LH H(LHE3}H(LD$LL$ H(LL$H脫H(HHPL@LH H(LHE3]H(Hٝ@SH u;LHcȺ耈HHu$PHˉcHHux3HkHH0HHt HjE3HbEHILIHIHkXLIt ItMuIH0Iu3H [H(蟭=ltH H(@SH HH H;r:H@H;w.HH*H+HHHH?L蜎k HK0H [@SH H}nk HJ0H [H(H1H;r7HH;w+qH+H*HHHH?L H0sH(H(}rƌ HJ0JH(LD$LL$ SWHhIHMu%tOHd$ E3E333>iHtHtѹL$D$HBH;H|$@H|$0GHL$0E3T$8H豛Htl$8x HD$0 HT$03ɫHh_[LL$ H8HD$`HD$ H8ffLM t$H+t(HItu IHHHIr&I~LLIM3IMtIHItx$tuHItiHtbHItV$tSHItGHt@HIt4$t1HIt%tHIt$tHIAA A AE+t\AND;u2AH3;|  >E3E333H\$ $.3H\$PHl$XHt$`H|$hH0A^A]A\3A9X|Ax IcHHD$xHHL$pDD:FIIDM1H H9u-3A9XhKA9H[IcHHD$xHT8HL$pDD:IIDM1H H9uI%HD$pM1HAH3;*ЍR+ȍC DAMD+At\At7E;HD$xQHHD$(HD$pHD$ H3;4A@3;h;`;tH3A9XKA9HAAHA9X3Axm%A9H|+E@$IAAЋ‹kD+D;|Aދ3A9A8;AH3;;Ax|;Ax1E@QAЋJkdD+kdAP<3oAmAZA/E+E+tdE+t/D;DAH3;m SAH A;|$LL$pLljD$ dLl$xLd$p3Ll$(Ld$ 9$tIAp;I9$HLl$(L L7I $Ld$ LƺH433A9X\Ax QIcHHD$xHTpHL$pDD:IIDM1H H9u3A9X KA9HIcHHD$xHHL$pDD:IIDM1H H9u~AH3; ApAE+t|E+tNE;4:39^ HHHL$pDD: HIDL7H H9uAH3;-Qkd+HD$x3HD$(HD$pHD$ 9$tAu3n3A9XKA9HNA3A9XAxAx HD$x,H0HL$pDD:t@IIDM1H H9u*L8HT$pED:tHMD L7H H9uA`@UATAUAVAWHpHl$@H]`HuhH}pHH3HE LMLEME3LHMAA;tA;t IPIHI@E9\aAAL-FLE-3lDD$(fAXfDEfEAALD$ fALE3fE AA fEAAfEAAfEALfEAE3DA;=:HHHH;w HHH苡H+H\$@I;HcE3HI;t HI;tiAXLEL3Dd$(HH\$ ADXE~%HH:vIAˈIH HEHK9uLMLmAA:pHL9`AAILMAIA8$tDAdg1A'AAtAHtYAMt#AaHH^uOLg`A+t!A+tA+tA;QBbA۲mA+t A;t*A۲HiHLHuLgpKAtxHE3A:uL9X<'tRI3E3EXA;tL9vD8G>IHLjMHIIMHA:uIHcHE3A+t!A+tA+tA;_AaA۲dAЃh1A+t%t YOyHAy  I0I8E3A;L9 I'E3EXA;tL9vD8C2IHÈMHIMHL9IE3EXA;tL9vD8CIHÈMHIIۈMHA:uA+tA;t$A۲SfA+tA;tA۲MSA+tIA;tGIATE3EXA;tL9vD8GtcIHLjMHIIMH1A۲ILE\$0MIL|$(Ht$ mE3A;tEXIA:t LM3AHM H3H]`HuhH}pHe0A_A^A]A\]HHXHhHHVWATAUAVHpHH$LHHE3MIAL$M;sI;jE3I;^H$I;u HD$HHXHI;HD$@ A:%tsHT$HA;t;H|$@v3D8s H$HÈH$HHL$@H$H$HÈHD$@H$HHD$@SM;HAƀ;#uHÊD$0HD$@L$HL$HMHl$(HD$ A;tHD$@HI;L9t$@vE4$A;uAL9t$@w: 2"LI;vH$D1H+|$@D8t$`t HL$XH41E3E333Lt$ !D8t$`t HD$X3L\$pI[8Ik@IA^A]A\_^H8HD$`HD$(Hd$ H8H8Hd$(Hd$ H8H8HD$`Hd$(HD$ H8H\$Ht$H|$ ATH@Hd$0EHH3Hu'0Hd$ E3E333A 33Hu'0Hd$ E3E333 338u$0Hd$ E3E3333gKHHD$PHu]03F>u"I0H HL$03LEHH/HHHH\$XHt$`H|$hH@A\A@@SH0ILHHu%/Hd$ E3E333ɉ$AHIrHHt3/H0[HT$LD$LL$ SH`Hu%f/Hd$ E3E333UHtHL$@HL$0L$HL$0E3D$8D$HB{l$8x HL$0 HT$03ϋH`[LD$LL$ H(LL$HH(LMCMK H8IC E3IC H8LL$ H8HD$`HD$ H8LMK H8IC(ICIc_H8LH8IC0ICIC(IC<H8LMCMK H8IC E3ICH8LL$ H8HD$`HD$ H8HHHHPL@LH H(HPH(HHHHPL@LH H(HPH(HHPL@LH H(L@LH(HHPL@LH H(L@XH(@SH@HcHL$ HD$ ~LD$ RDH@DXA|$8t HD$0AH@[@SH@=HcuHX%YHL$ 3HD$ ~LD$ IRDH@DXA|$8t HD$0AH@[@SH@HcHL$ HD$ ~LD$ QDH@DXA|$8t HD$0AH@[@SH@=/HcuHXVHL$ 3"HD$ ~LD$ cQDH@DXA|$8t HD$0AH@[@SH@HcHL$ HD$ ~LD$ PDH@DXA|$8t HD$0AH@[@SH@=KHcuH/XVHL$ 3>HD$ ~LD$ PDH@DXA|$8t HD$0AH@[@SH@HcHL$ HD$ ~LD$ PDH@DXA|$8t HD$0AH@[@SH@=gHcuHKXVHL$ 3ZHD$ ~LD$ ODH@DXA|$8t HD$0AH@[@SH@HcHL$ HD$ ~LD$ 6ODH@DXA|$8t HD$0AH@[@SH@=HcuHcX%YHL$ 3pHD$ ~LD$ NDH@DXA|$8t HD$0AH@[@SH@HcHL$ HD$ ~LD$ JNDH@DXA|$8t HD$0AH@[@SH@=HcuH{XVHL$ 3HD$ ~LD$ MDH@DXA|$8t HD$0AH@[@SH@HcHL$ %HD$ ~LD$ fMDH@DXA|$8t HD$0AH@[@SH@=HcuHXVHL$ 3HD$ ~LD$ LDH@DXA|$8t HD$0AH@[@SH@HcHL$ AHD$ ~LD$ LDH@DXA|$8t HD$0AH@[@SH@=˗HcuHX%YHL$ 3HD$ ~LD$ KDH@DXA|$8t HD$0AH@[@SH@HcHL$ UHD$ ~LD$ WKDH@DXAW|$8t HD$0AH@[@SH@=ߖHcuHX%WYHL$ 3HD$ ~LD$ WKDH@DXAW|$8t HD$0AH@[@SH@HcHL$ iHD$ ~LD$ JDH@DXA|$8t HD$0AH@[@SH@=HcuH~X%YHL$ 3HD$ ~LD$ %JDH@DXA|$8t HD$0AH@[@SH@HcHL$ }HD$ ~LD$ IDH@DXA |$8t HD$0AH@[@SH@= HcuH}X VHL$ 3HD$ ~LD$ ?IDH@DXA |$8t HD$0AH@[3Ã@SH@HcHL$ HD$ ~LD$ HDH@DXA38L$8t HD$0D;u_uH@[@SH 3;u_uH [@SH@HcHL$ HD$ ~LD$ &HDH@DXA38L$8t HD$0D;u_uH@[@SH 3;u_uH [H;t$MtfDD HˆDJHIuH;Hl$ WATAUH H\$@Ht$HLt$PN4MIHLffIIL;wDHHAՅHOHH;vLHH;t%Ht H+fD HIDJuH+I;wLt$PHt$HH\$@Hl$XH A]A\_@UATAVAWHMILHu6Ht1 E3E3E333L|$ DHA_A^A\]MtMtHH$@H$HH$PL$LjLLE3fff3II+HHpHw*MLIIzINt0N HIHIHAԅ~3LHL;t(ML+fA HIADJuIIAԅ~3LIM;t(MM+fA HIADJuIHAԅ~3LII;t(LM+fA HIADJuIIH;vHH;sHHAԅ~H;wHI;w HHAԅ~H+H;v HHAԅH;r7LHH;tLL+A HIADJuH;uHzHH;s"fH+H;vHHAԅtH;rfDH+I;v HHAԅtIHH+I+H;|&L;sNt0J II;"LI;sJ\0N IL;LH$PH$HH$@L$HA_A^A\]H\$Ht$WH HHHu HjHu*\HwCH 7HHDL3LHHuo97tPHHt+HvHG 3H\$0Ht$8H _}HX%dH? H@SVWATAUH@I؋LLHHu*t&$H!t$ E3E333n 33u'Hd$ E3E333< 3Y3Hu'Hd$ E3E333 3&u3H$HC@Hst*t%HcHHLAHkXIH ozH fzHLB8u%ttHcHHHkXI A8t'Hd$ E3E333I 3Ht$0HtV|$xtHCxHHH H蔹ȉL$puM;u3Ht$0A $ILd$8 tA$H[HH@A]A\_^[ffMtuH+LItB H:uWItNtJHuJ ffwHJ H;uHII~vHLI3It H3HHÄt't#HttHtt tuH3H\$WH HNH=`wHtH\$0H _@SH CAH k<H [H@SH H זHtHHHtH [@SH ̹W̹VH;s-H\$WH HHHHtHH;rH\$0H _H\$WH 3HHH;suH HtHH;rH\$0H _H8Hu'>Hd$ E3E333HHtH3H8H8Hu'Hd$ E3E333?HaHtH3H8H\$WH H=ΫtH ëVt腺HH _uZH /ڹH3H=4HHtHH;rH=gtH ^tE33APF3H\$0H _H\$Ht$DD$WATAUAVAWH@EDV=nD%cH Ī9HHD$0HH r9HHD$ LHt$(LHD$8HH|$ H;r ;9H9uH;r\H39H9HH O9HH 8 9L;uL;t LH\$(HH\$0LHD$8HHD$ H(H ,H%H Et SEu&bAL$SA|AoH\$pHt$xH@A_A^A]A\_E33jE3AP\33DBO̺3D=@SH 8HH@HBHH*H.H辻H膹HbH 7H3gH [@SH =uj?=H [MZf9u9Hc GHHȁ9PEu f9Au3v 93H\$Ht$WHHL$0/MZf9ubHcH5HƁ8PEt 3ۉ$N f9Ht 3ۉ$8w 3ۉ$$39É$3ۉ$H56;u!9=xuM>;9u!9=Nu#>;\[y ,HEtH~py Uy Tt@|$lT$pA DEL3HtD$ uNa$u@VL$I[Is I_H(gH(HL$HH ~{LL\$XE3HT$`HL$XuHD$PH|$PtAHD$8HD$HHD$0HD$@HD$(H|~HD$ LL$PLD$XHT$`3cu"H$HHH$HH~H.H}H$H~v} p}H^HD$hH^HD$p} 3fH Q=}u  H"HĈH a@SHd$pHL$t3A萦L\$pH$H$L\$HHD$PH$HT$@HE3;tHt;Hd$8HT$@HL$`HL$0HL$XLHL$(H$LHL$ 3s H$H$H$H$H$D$pD$tH$E3ɋ3HL$H u uHHH[H\$WH HH $2HH2H HH\$0H _H 2H8HD$`HD$ }H8H\$Hl$Ht$WH0HH AIHT2HtLT$`DLHHLT$ %L\$`DLHHL\$ H\$@Hl$HHt$PH0_H8Hd$ E3E333_H8H8HD$`HD$ EH8@SH gH [@SH WH [@SH GH [HSVWATAUAVAWHPE3EADpDpDpANMLH$ A;tLt$ E3E333H$8 A;tLt$ E3E333H$R A;tLt$ E3E333TD5AD=<`D=%`H IHHD$@I;D80H I;t HHhA;u AwH sI;t襱HGHHDHQI;u HFLHPH , DA;xLt$ E3E333_H ~I;t 0L5~H 6~,~ ~k<$fD95K~tQ~k<ȉ$;~fD95y~t$~A;tDŽ$+k<$D$D$H$HD$8Lt$0?t$(I$HD$ EL}3ҋIA;tD9$u I$Dp?I$D0H$HD$8Lt$0t$(ID$HD$ EL}3ҋA;tD9$u ID$Dp?ID$D0$F $( $" IA;gAMLAW=I $HA;tLt$ E3E333I?-u AHHDEiD$0@9<+:| @:?:ulHHkH\$@Hl$HHt$PH|$XH0A\H\$Ht$WH0IHH?!tHd$ E3E333"HC@8tL AHHHD$ H8tL AHHHD$ H\$@Ht$HH0_H\$UVWATAUAVAWH0HAUAF!HH$3H;HnLkhED$ED&IEL jHD$(HfQHHD$ MLL5;3L6QH;tE3E333Ht$ I$IMQA;HEIIMII HLlHIEHD$(HHD$ LM;pH$E3A;uHHKXI;tu HKXΌHS`I;t u HK`貌HsXHkHHRH蝌HKXI;tu HKX~HS`I;t u HK`bHLkXLkHLkPLk`H\$pH0A_A^A]A\_^]@SUVWATAUAVAWHH4H3H$H$`IMHH- HpLhE3HL$@HtLt$0LHL$8I;I;M;;CuTD8cuNLRIH7A;tE3E333Ld$ I;tfD'fDgfDgI;tD&H;H LH=s(HIٟHL$8HğHL$PHE3HT$0LD$PHL$PHD$0HL$@LD$P@ID83tIsMHiHL$8MNLúNtHd$ E3E333Lt$0HtAIH|HtHT$@AH|MIHtHd$ E3E333I3H$H3܁HA_A^A]A\_^][H\$ UVWATAUAVAWHH2H3H$ILcH LL$HHT$pHHD$@AHD|$(HD$ _Hu3oIHL$pHHT;HLHL$pHHHLHtHD;HMoHL$hHD$XBAD$PKDHGHHD$`h{GHULD$pIL$D$DtHd$ E3E333HL$`ID$HT$HHD;HD$HAB {AD$@E33҉GH|9Gt!H|H|HAHH|EtIcH|H|H|AGAhzD$8D$0GLMD$(H$UD3HD$ KtCH$f!HHuHj=H$A'3ɅG|AuD$@GKH4H…HD$Xt"IHD;HtD\$PD$DFGH <H;t)HT;XuHL;X>IIL=0Hd;PA$Ld;XHD;HH$H3~H$hHA_A^A]A\_^]@SUVWATAUAVHH/H3H$IHt Ht IHcHHDH83DfH$A8LAAxC6Ax_+H$H|HHLL+x8;oAL%I $MHuI $zL;tHIAL;~HHH褿HHu }; AJHL$0LLź{tHd$ E3E333JLD$0AHD0HtH݀;t HÀ;HJH$H3*}HA^A]A\_^][!t$(H!t$ HT$0E3AHHt3HoHt-HUHL$0謙tLD$0HHuE3H ~EgZ3cHHXHhHpHx ATH Hw+Ht&AIAL$MHHu(H 3H\$0Hl$8Ht$@H|$HH A\IԹ`HHu H@IԹ HCHu H H;Ht%H9H;tHA`Pv'HH LƋHtHHSHdt%HKÃH [H ?H諃3HCD HCD HHt$H|$Ld$ AUAVAWH@LDE3v&$L!d$ E3E333n3nHHD$p`HHx HHtH;tHA`1u'H MAHLHD$0H Mt)H08I8 PAAE͉ pPA fHHHD-7HH .9H"9H AH P\tL9AC PACPA8IXH/I(Hp>I@H=A ]> {H5IHt$`H|$hLd$xH@A_A^A]H%}[3H%s[H%q[H%q[H%q[̋Z83H%e[H( B8t W[ 08H([H\$WH HHHMHAǁƁtCƁCH1H H q HHuH{7HHl 5H\$0H _H\$WH X Z7bZHHuHHHHt3 /7H>ZH˅t3:ZHK3ۋXHH\$0H _@SH qHHuHHH [H+H\$WH HHI8HtHKHHtrHKXHtdHKhHtVHKpHtHHKxHt:HHt)HHH;t HHL$0HtuHA$H;=Y>utHAI;u I]HL9'uHc HHI;u 4HHHHHI;u勌$L#$H==I;H=A;tKI;tFdH= A;}|NA;trH$H@A_A^A]A\_^]A;t3I;u%k HL=I;tL H=M=I;u F H7=I;tL H=(=HI;tHM+3IHMcH;tCy=MHI3;uHfB9<`fB9 `HHH;uH=<H+H;CH9:HcH UuD$3D;tjH9 tHL3HHHHH9uHcHH;s=H V<A 3H;t&H=<H=4<H+HjLG؋H [Ë= =H\$Hl$Ht$WH 3HHmHHu(9=v FDD;=AG;uHl$8Ht$@HH\$0H _HHXHhHpHx ATH 3HHAE3HH)HHu*9G=v"EDD;/=AAGA;uHl$8Ht$@H|$HHH\$0H A\HHXHhHpHx ATH 3HHAHH4HHu/Ht*9<v"EDD;<AAGA;uHl$8Ht$@H|$HHH\$0H A\H\$Hl$Ht$WATAUH 3IHALLHI˼HHu/Ht*94<v"vDDD;<AAGA;uHl$HHt$PHH\$@H A]A\_ffHHHtfHt_uI~IHMHLHI3I#tHPtQtGHt9t/Ht!tt uHDHDHDHDHDHDHDHD3Ht9t HHH;rH\$Ht$WHPHًHL$0Ie3H;uDsE3E333Ht$ 轵@8t$Ht HD$@3H\$`Ht$hHP_HT$89ruH|Z@8t$HtHL$@ f;t3DtH@83t ;u HC;tH;l@8t$Ht HD$@HfE3HHXHhHp HPWATAUAVAWH@MyM!Iq8M+AfMHL3HHL@9>+H^ CL;CL;{;tHL$0HIЅ~sA}csmu(H=WtH WgtIWKAHIO]IF@SMcMHD$(IF(IMHHD$ @R]H;>sj>3fIy 3I+9.vTH^KL;r>CL;s6H;r H;sAE u/;t H;t#HT$xIDZIDCMAH;.rL\$@I[0Ik@IsHIA_A^A]A\_H\$Ht$H|$ATH L%33I܃{u%HcƺH HJ8H H rt-H!HH;|øH\$0Ht$8H|$@H A\HcHI$3H\$Hl$Ht$WH HAH-z!HH7HttHx?HdfH'HH;|H Ht {uO?HH;|H\$0Hl$8Ht$@H _HcHHH H%x?H(H3?H(˨H\$Ht$H|$AUH HcپH=3u(N芨HHL-UI|t{(HHuF 3Z fI|u/HH\$0Ht$8H|$@H A]H\$WH HcH=HH<uuHEH H\$0H _H%$>H\$Hl$Ht$WH Hڅxi; ?RsaHcH-GRHHHkXHDH<u==u'tt u 5;HDH3  H\$0Hl$8Ht$@H _H\$Hl$WH xs; QskHcH-QHHHkXHDDtGH<t@=u)tt u 3:HDH 3M b H\$0Hl$8H _H8u>  ]x1; Ps)HcH PHƒHHkXHDtH, ̿Hd$ E3E333 HH8HHXHpHxL` AUH HcLIL-jPHkXKt|3 u3O |3 uHL3gn#D3 GtKLHL;H\$0Ht$8H|$@Ld$HH A]HcH OHƒHHkXHHLH%|;H\$H|$Ld$AUAVAWH@IEE3AL$ uA 3|$$HsO@LcJHH\$0JH H;C{ u; p{ u HKGmu DpDt$(C Eu HK:Ct HK:HIEu?CL#LNK+H.袋.HLIIH?LDDl$ HXH\$0IHzN E;lj|$$H_NXJYHD$0HttHcL9NIЃN I H H;s@L @ ` HXHD$0|$ HcHHHkXIDHADD|$ AH\$`H|$hLd$pH@A_A^A]HHXHpHx ATH0L3x@ߍG Esˀy9;uV8諼u@utHct$Hu;P8 PIԋHHHLLHkXIȈ\IȀd8IȀd8D$ H\$@Ht$PH|$XH0A\HHXHhVWATAUAVH````McHcFZLNF BA8Lc$A;&Lc$A;A H iAQDL A+A;}[Ùƒ;uAkd;u#lAiҐ;AC,ƒ;uAkd;ulAiҐ;u~ō+ADCDAAADAAD+ʙALHcHFHcHimHHcHH RItkH>teAEt^AEuH3A;tILcIHAMkXM$HI$AEAD$IL$FfA;tAD$ IH;|EIHHkXHGH;t H;tKCAD$ɃE;D0HHtJI;tEH;3A;t7H3uK@ uKHKeA;tC .K@HAHHQ "Gx23L$I[ Is(I{0Mc8IA_A^A]H\$WH HFH;Ht7H  t HO*2HHXH H;rH YH#HHHH;|H\$0H _H\$H|$ATH H -cH0H;u3cH`H;uwC ucL%,HcI<u+IHuHC HCHC$CI C$CHKH K3H\$0H|$8H A\̅t0SH b HsHcc$H#HcH [@SH B@It HzuA&Bx HHFu H [̅~LH\$Hl$Ht$WH II@LH@?tH\$0Hl$8Ht$@H _H\$Hl$Ht$WH A@@IIHt IxuA7~3MLHHŃ?u豳8*uLHֱ?H\$0Hl$8Ht$@H _HH@HHH@HHf@H\$UVWATAUAVAWHHNH3H$3HHL$hHHL$xIMD$`DD$TDD$HD$XD$P@RE3I;uA3E3E333H\$ ;8$tH$AC@L H" HA;t(t#LcL IAHMkXMɀ LL ȻA@8u)A;ttHcHƒHHkXIB8tA'3E3E333H\$ o8$tH$A1E3I;t@/ADT$@DT$DAL$A:H$AHA;H$E8B8u%ttHcHHHkXI A8t""H\$ E3E333l;u(HMLL$pMIHA֋H׋HVH\$PHt$`H|$hH0A^A]A\H8LL$ MLHH ;VH8H8LL$ MLHH O2H8H8LL$ MLHH H8H8LD$ LHH E3H8H8LD$ LHH E3H8H8LD$ LHH JE3H8H\$Ht$ATH03N^\$ ;I}iLcH8J<tPJ At>[tƉt$$|1H8J H0!H 8J HL8K$É\$ 돹SH\$@Ht$HH0A\H\$Ht$WH A3H$<u?At69+y~-HSDNj3;uCyCK HKcHt$8H H\$0H _@SH HHu5,jtcsH/3H [Ht$H|$Ld$AUAVAWH0DE33Ns3|$ A;=zGLcHR7J<tjJBt`SH27J At5Au9A;t%ADd$$EuAtA;ADt$(H6JSlj|$ nAADHt$PH|$XLd$`H0A_A^A]H\$HL$WH HHuRHHSH\$8H _̹HHXHhHp HWH HHKHcu K 4@t ֢"3t{HCHKC{C u/PH0H;tPH`H;u ;uHC+HS+kHBHC$;C~Dŋ1W K?t#tHHH2HHkXH H $A t3ҋDBIHHKD$0HT$0D0;D$0H\$8Hl$@Ht$HH _H\$Ht$WH IIHH; udM9u=H ]HHu3KHD$PHLH6LML"HHA(HtHH HH H\$0Ht$8H _HH(@SH v˃߃EˋH [H(AxHHH>ЋH(H(t肿H(H\$Ht$WH HHH؃t wuHt$8H\$0H _H\$UVWATAUAVAWHH6H3H$pE3L$L$IHHT$PLd$pHHL$`HDŽ$^D|$|fD|$xAD|$EAD|$9ED|$4\$lA:A%SvA;tXD+DHDl$4A;t%vA;uH֋~HMvA;uHl$PD8ekD8eP3D|$\D$D|$LAED|$XD|$@D|$0AD$L|$P@D\$8LAs3;tvCDDlCлL$0@:t҉|$h|$HD$pL$LD$p@<HD$|HH$HHD$ JA;p +u$Ź+A;uADID$<@`Ź+A;t\HD$pL$@<HHD$|LD$pH$HHD$ A;IAD$<mA;uD+Dl$4A;tIԋA;D8|$0u7Ht$pD$lD<3\$8H +͹H$L$LƋHl$PA;uD\$hA@:Hl$PEApAsAuAxA{tBHl$PE;T$9Dl$4E3AֈT$9A: L$L$ @:Hl$PEDOH}^uHDt$X3H$DB +}]AuA]IƄ$ E<]E3I<-uVE:tQM]tIID:sDEDE:w,EAMAӃIEMBE:vE DDAIBE<]xA38]+uA+t$H;ADd$4Hl$`0uOEHDd$4/D$<@g3;tgD$\@D$\ft$\3Ƀ߃;E|$<t>3L$Lt$\9D$ht+t6\$4Iω\$4D$@OUtqH$@OTH$3Ƀ;E|$D$X|$`t$\tD+t3H\$hD$4HJD${E3E333Lt$ ZjD8$tH$D$d\$dD8$tH$H$pH3H$HĀA_A^A]A\_^]H\$WH HcLHtYHW u @u ;u@`tHH;tH#u 3ۋ8LHHAH H MkXBDt "z3H\$0H _H\$Ht$ L$WATAUH0Hcكuy38y 3;;] HLIL-Z HkXKDL0u+sy8Ly H|$ E3E333ha~KDD0t  y )y8x H|$ E3E3333hH\$`Ht$hH0A]A\_@SH AHt"AtHIc3HHCCH [H\$ UVWATAUAVAW0H+HhH3H$ 33ELHcىl$@Eu3Hu.Jx!8#xH!|$ E3E333mgLLHIAJ Lt$PMkXAt8@@@t@u AШtAD t 3ҋDBvCmHJAD3HT$XHHV9YJ I t @g!|$LI܉D$XEwDt$X @HT$P E3 H-HTAA|Pt ADLL$]AD$\AdPHT$\I#t4IH+IHHL$DAH荘vHAHHL$DlUHd$8Hd$0L$XHD$\LD$DA3D$(HHD$ _HD$PHd$ H H LL$LHT$\I DBA+|$@9l$L EHD$PHd$ @l$\H LL$LDEH HT$\I T|$L|{D$@e@t@uE3f fD$DAH@t@u6L$DPf;D$DEtfl$D1f;D$DuxD$@A+A;\$LLt$Pl$@zet uLt$PJLADLJDADP\$L떋\$LHJ AD3I@ES Dt$@H$ 3ɋA+A;s&EH< u AHHHHHrH!\$ H$ DD+H Dt$@Lt$PLL$HH$ J I t5|$HH$ H+HcD$HH;ź A+A;N@E" Dt$@H$ 3ɋA+A;s1EHf ufAHHHfHHrH!\$ H$ DD+H%Dt$@Lt$PLL$HH$ J I J|$HH$ H+HcD$HH;ź A+A;?ENA HL$p3ҋA+A;s.EHf u fDHHHfHHrHd$8Hd$0HD$p+LD$pD$(U +3DH$ HD$ iD3HD$PHd$ HcH EH H LL$HD+I t t$HD;D;A A+A;I H!|$ LL$HEI[t |$H3~q~HlJAD@t A<$.dqyq H+H$ H3I H$H0A_A^A]A\_^]H\$Ht$L$WATAUAVAWH0ELHcكuq38p 3;;HLIL=HkXKL0u+p8p H|$ E3E333_mŰKD0tEIՋKp `p84)Kp8$p H|$ E3E333n_H\$hHt$pH0A_A^A]A\_@SH@HL$ HD$ DH@BY%|$8t HL$0H@[@SH@HL$ 3HD$ DH@BY%|$8t HL$0H@[Lº;̺Lº̺ΓLº̺鲓Lº̺間Lº˒̺zLº鯒̺^Lº铒̺BLºw̺&LºW[̺W Lº?̺Lº #̺ Ғ3f;@SH Lº3;uf_uH [@SH }3;uf_uH [@SH Lº蒑3;uf_uH [@SH !3;uf_uH [LEIA@wA  HAw EtD;tD+AH\$Ht$WHPHHHL$0IB Hu:lHd$ E3E333A\|$Ht HD$@qHtHD$0xu HHH|$HtOHL$@AHT$0ʑHT$0H踑HDžt;t+؀|$Ht HL$@H\$`Ht$hHP_H8=au8Hu')lHd$ E3E333r[HtE3H8H\$Hl$VWATAUAWH0-4IE3E3E3ۀ: EyEHLuI߀; t;at?;rt3;wt'kHd$ E3E333Z39 3A  IA׊AȃS~to  tLA+tBt+ tuEE׃@@@Ew@uqjEu]E׃ ]TtJt:A+t' tAu35Eu(E'EuEAu  s3 IߊEI߀; tH ZAHHI߀; t;=nI߀; tHjZAHTu HMHSZAH1u H*H@ZAHHI߀; t;HL$hEDID$ 谚D=!FD$hH&HfHf(FnHH\$`Hl$pH0A_A]A\_^H\$Ht$WH03ۍK?3|$ ;=J HcH"H<tkH@uV`rOGwOHH\LI@t HЋHlj|$ xHcXH HH H<tXH H0duH mH h L]I$$HOH H0L:IcHtccHcH#Hc(KHH\$@Ht$HH0_ffHM3M3Hd$ LD$(HfDHL$HT$DD$I ff@SH`Hu%0gHd$ E3E333yVJHtHL$@HL$0HL$0D$8D$HB至l$8x HL$0 HT$03H`[ME3uHhHHu%fHd$ E3E333U#Hd$@Hd$0HL$0D$8D$HBHhLHH E3MLHH вwLHH {oE3_MLHH `oGH\$Hl$Ht$WH`3MIHLL;u'eE3E333H\$ UL;tH;tL$AL;L$HT$@GHT$0HL$0ID$HBD$8AӋH;t7;|%l$8x HD$0HT$03t9\$8\.ÍCL\$`I[IkIs I_H8LL$(Hd$ MLHH HH8H8HD$`HD$(LL$ MLHH UHH8@SH0HMtGHtBHt=HD$`HD$(LL$ MLHH A`lyu0Sd" FdHd$ E3E333SH0[H8LL$ E3oH8HHXHhHpHx ATH0IIHHMMuHuH3HHI;vPcLFH q_HD$hLHD$(HD$`HHD$ uonc8"`cTcH %_LD HD$hLHD$(HD$`HHD$ 0DuHuc8"uC cD 9y8u-b" bHd$ E3E333/RH\$@Hl$HHt$PH|$XH0A\H8HD$`HD$(Hd$ H8H8LL$(Hd$ MLHH kpHH8H8HD$`HD$(LL$ MLHH k8HH8H\$Ht$WH0HHu$bH!|$ E3E333NQ A@t AA uMHAHH(DG$HWGGu_HtHI;sNH;HBHH;r H—HuHV H;rDH謗Ht7HHH=u5H ,uWHqAσti t>ttZH\$0H 14yHHH yHpH  yHHt[HxHJH xHHt5HxH$H xHHtHxH3ϓEuHCt:t5 t0~~&VHd$ E3E333EHHH\$PHt$XH|$`H@A\H\$Ht$WATAUAVAWH@3|$p3у tMt,t_UH!t$ E3E333>EL%H |$pL%H |$pL%wH p|$puhxHHukHHLcS9YtHIHHH;rIHHH;s9Yt3LaM,$L%H |$pvLIu3Mu AMu>̅t3t tt L|$8Dt$p1LL|$8HuDdžDt$pu9 qщL$0i;}*HcHHHd‰T$0 @%vI$t3R;u AA;t tuL;uD3L\$@I[8Is@IA_A^A]A\_H H\$Hl$Ht$WH0HH uHHu(SHd$ E3E333ɉBeHH DHHtHDH HHu:JSH%RH!|$ E3E333ɉBRIHtHtHH;t H HׅuR R3H\$@Hl$HHt$PH0_@UVWATAUAVAWHHH3H$H$ EEL3LL$0E!t$(AH|$0D$ 莓Dui)z!t$(!t$ E3EAI_LctbIHHHtJd$(LEAIDd$ %Dt McIʈHHEHu2tHH$H3HA_A^A]A\_^]AD$LILcutHd$ E3E333D?tH3롅u!T$(H=MEALD$ 7qE7&tMHH@΀0H;M|H H H8RD؉D$ =u E3D\$ AH8H(H8csmu+xu%@ = t=!t="t=@uo3H(H(H O3H(H\$WH 39=Vu\H(HHHD؀; w ;t3t);"u 3 输tHH< w HÊuHH\$0H _H\$Hl$Ht$WH0=u:\H[3Hu<=tH&H\uGHcgHHٹHtH ;teH;=ptCHcH,HHtrLHHtHd$ E3E333HL$0 HDAHD$ SEL$?HL$0 HDAHD$ 0EL$@HL$0 HDAHD$ EL$AHL$0 H DAHD$ EL$BHL$0 H(DAHD$ EL$'HL$0 H0DAHD$ EL$(HL$0 H8DAHD$ H@HD$ EL$HL$0DA^EL$HL$0 HHDAHD$ ;HL$0A HPDAHD$ HL$0A  H\D3HD$ X H\$PHl$XHt$`H|$hH@A\HSH HHIHKHKHK HK(~HK0uH mHK@dHKH[HKPRHKXIHK`@HKh7HK8.HKp%HKxHHHHHHHHHHHHHHtHhH\HPHDH8H,H  H(H0H8H@HHHPH [H\$Hl$WH y HH-W{tKhbbHHuMHHtHHtǃ`HHXH;t`HX3H\$0Hl$8H _E3HD8 t<0|<9,0HD8 u<;uLA@AIA:uHtBSH HH H; 5tHKH; +tHKH; !tH [HHXHhHpWATAUAVAWH@3HHHHX9Yu9YuLLH-ĉXXHDgIaHH;uAH(HL艿H|`LH;u Hlj9^HW`LH;ts~>HL$0AADHl$ HMHL$ HL$0ADAԋL}HL$0ADA L|$ tHAHI[I3<0|<9 ,0I8u;<;uLA@AI:uHLHEHHEHHEE&L;tEeHH;tHH;tuHH(LLH(3L\$@I[0Ik8Is@IA_A^A]A\_E3HD8 t<0|<9,0HD8 u<;uLA@AIA:uHSH HHIH; tEHK H; t3HK(H; t!HK0H; tHK8H; tHK@H; tHKHH; |tH [HHXHhHpHx ATAUAVH@E3HHHL!`D9auD9auE3H- XH׍O:^HHu 8H]LHu HKD! D9fhH]LHu H$Iσ ~8AHEAQHL$0DHD$ HM AHL$ AQHL$0DNjHM(AHL$ AQHL$0D AHL$0 HE0AQDHD$ ALu8HL$0AQD Lt$ AP HE@HL$0AQDHD$ bAQ HEHHL$0AQDHD$ @HL$0A HEPD3HD$ HL$0A HEQD3HD$ HL$0AT HERD3HD$ HESHL$0AUD3HD$ HL$0 HETAVD3HD$ HL$0AW HEUD3HD$ HL$0AR HEVD3HD$ `HL$0AS HEWD3HD$ @ t HHIII<0|<9,0H€:u)<;uLA@AI<uH!HLH(HHMH(HHHMH(HHHMAEMtA$H HtHHtuH(SHGL LH(3H\$`Hl$hHt$pH|$xH@A^A]A\3H(;GH ~H9ts|u3HH(@SH0LHt HtMu,D|#Hd$ E3E333ɉH0[À9t HHuHuAAIHtHuHuA#"3H8HoH3HD$ E3LL $LL$LL$LL$LDIBIAA:u$ AIEAIBtIcHL$ H3荽H8HHXHhHpHx ATAUAVH 3M;L|?;t=IM>+HcLMK;u KLIM }}u;~;Hl$HHt$PH|$XËH\$@H A^A]A\@SH IHC$C H [H\$WH0HmH3HD$(HHHtf9taHh&gtQHT&HTuO$DHLD$ P stBH\$ HHL$(H3MH\$PH0_ËO$LD$ A1u3H%HL$ u6E3H%A@f; tDHA r3̊LE3'BI<w B<wAEFLЄuA3ҊHH ɌH;t2g6Ht(HHtH H;tG6HtHHH .6HtDMIH3H\$pHl$xH@A^A]A\_^H8x ~ u~1~ ~#Hd$ E3E3338H8É e̋eH\$Hl$Ht$WH`3IHHL;u3H;u)E3E333Hl$ H;tIwHL$@I舲L\$@AS;uHfAr fZwf fAr fZwf HHHt f;tf;t+VACHL$@LˉD$8t$0AH|$(t$ b;u'@8l$XDHD$P3@8l$Xt HL$PL\$`I[IkIs I_@SH03L9H;u&SE3E333H\$ _H;tIwAfAr fZwf  fAr fZwf IHIt f;tf;t+E3H0[H\$Ht$WH0HHtKBHHHKYHHt-HVLH0tHd$ E3E333KH3H\$@Ht$HH0_H\$WH03H;t H;vL;u0f95E3E333H|$ ~H\$@H0_LAIfAIf;tHuH;uf9"3H\$Hl$WH0Hd$@H,{HHtud$(Hd$ DL33NHctxHϺvGHD$@HtaLD33ɉ|$(HD$ t:HL$@3;xHHHu3H\$HHl$PH0_HL$@Ht HL$@KHHXHhHpHx ATH0HzE3AI;uf=tH@H\CfA;uGHcFHH%zI;tHQzfD9#thH@f;=ptCHcHfFHI;txLHHA;tE3E333Ld$ HHcHCfD9#uHyHWL%yL'3H\$@Hl$HHt$PH|$XH0A\H kyL%_yH\$Hl$Ht$WH 3HH;u3Lf9tHf9uHf9u+ǃHcHEHH;tLHHHHljHH\$0Hl$8Ht$@H _ f;tHfuf;uH3HHXHhHpWH`HHHHIIIyHL$PHt Hd$PHHHY3H\$XHl$`H@_HL$PH\$WH0IHHt23HBHH;s$ Hd$ E3E333 3]HHHD3HwH |PLHu-=tHt5uHt Ht H\$@H0_H\$Ht$WH03HHHt13HGHI;s# H!|$ E3E333 3=IHtuHHHHsHHtH;sH+H 3LHH\$@Ht$HH0_H8u R Rx.; s&HcH HHHkXHD@" Hd$ E3E333 \3H8HHHHPL@LH SWH83Hu% Hd$ E3E333jH|$XطHP0>ķHH0S贷LE3HT$PHH0V虷HP0zT舷HP0vH8_[HHPL@LH H(L@aH(HHPL@LH H(L@aH(HHHHPL@LH H(L@3naH(HHPL@LH H(L@daH(HHHHPL@LH H(L@3:aH(H}T3HH9HH#H H UT3HH9 H\$fDL$ UVWH`3IHHH;uL;vH;t)3H;t Iv$E3E333ɉHl$ 6oH$HL$@L\$@A9k$f;vLH;tH;v L3H*t@8l$Xt HL$PH$H`_^]H;tCH;w<@"E3E333ɉHl$ @8l$XHHL$P7H;t@8l$XHD$PH$$AKHD$8Hl$0L$A3҉|$(Ht$ ȃ;t9$H;thzH;tH;v L3H_"E3E333ɉHl$ @8l$XgHD$PVH8Hd$ H8HHXHpWHPHHH؃IЉp ,L\$0Mc HD$0HL$xDHHD$ Dt$x|$Ht HD$@H\$`Ht$hHP_H\$Ht$WH0Ht$PHd$ HL$PLcDH%H\$@Dt$PHt$HH0_@SH B@It HzuA&Bx HHau H [̅~LH\$Hl$Ht$WH II@LH@?tH\$0Hl$8Ht$@H _H\$Hl$Ht$WH A@@IIHt IxuA7~3MLHHŃ?uU8*uLHֱ?H\$0Hl$8Ht$@H _H\$UVWATAUAVAWHHPH3H$3HHL$hHHL$xIMD$`DD$TDD$HD$XD$PE3I;uA3E3E333H\$ 8$tH$AC@L HZHaA;t(t#LcL IAHMkXMɀ LL A@8u)A;ttHcHƒHHkXIB8tA3E3E333H\$ 78$tH$AKE3I;t@/ADT$@DT$DAL$A:H$AHA;H$E<3u2uHA&*A0uA AA׸DA;I]IA0uA At~A;u EMIDAc;IcH @I;u"HD9u HfDH$@ HL$LAE3A;tKD$DAA;u AEI%AcIcH @I;&Hf$@ D\$LH$@ DMD$@ A@A;I;AcUIcH @HD9Y@D eg~in#opsVuoxO'AcIcH @I;uHD9jHHAt5I;D$HDNH A+fD9t HA;uH+HI;HDMH A+D8tIA;u+sAA$AEAQQD$T0T$PD$UAEy}A vA;u I}I%AcIcH @I;HH8TE3A;D$HA tfH$D$DA@A T$PAsJA;u MEIAcBIcH @I;ufHD9u A sMA;tAcIcH @I;u"HD9u HL A A@tSA;uMEIAcIcH @I;uHD9ATHLA;uEEIAc@IcH @I;tHDpA@t6A;u McEI[AcIcH @I;pHLc4A;u EEI%AcIcH @I;:HDE3A@t M;}IAAr A rEE;}EAD;DO$IH$? H#ʉL$PAE+A;M;t3IIcHLB09~LjI+H$H$? +IA D$L|E3A;t ;0nI+D\$L0^DźbE;H$@ }AIu @guAEHu -7H >HHd$ LL$DHT$@AX==qYxu}%}=gXHd$8Hd$0HD$HLD$@A3D$(HD$ lZH ]>Ht0Hd$ LL$DHT$HDXtfD$@ =HL$PH3xHhH\$Ht$WH@H3ۋH;;u+H\$ E3E333Q HHHH|$0H;t"HHt$Pmf;uιnH\$XHt$`H@_@SH ٹi$ع3fH [fL$SH`f;u 3ff;sHV;fHf#nHL$@I {L\$@ACLD$pHL$@D$0ACDʉD$(HD$xHD$ 53;u fL$xfD$x8L$XtHD$PfD$x#H`[fL$SH@f;u3of;sH:H#P=CLu<3LD$PD$03H @5D$(HD$`DHD$ 4L$PE3H@[k̍A Hl$WHpHcHL$PysbHT$P ~LD$PHT$PH@xtHH8|$ht HD$`HD$P ~6HT$P@.jt@$@$Ƅ$ *@$Ƅ$HL$PD$@L$AAD$8H$D$0HD$(T$ QHL$P2$t $ |$ht HL$`H$Hp_H(=mJuAw 3mH(HHXL@HHUVWATAUAVAWH3AAH@ox@$HxEtxAl$pDHL$T9;tE3E333H|$ r@u |$TtE AA#Ⱥ;tT+t:;t18 ^E3E333H|$ D@tuA@D$At,t#tt@uD;A AϋƺL$H#tF=t8=t*=t=t*=t&=t;t/A AADl$PsA"$AEDDDl$P@@tAADl$PL$H s ADl$P@ tA @t ADl$P1u!8 H$DD$HH$H|$0LL$`ADl$(l$ RHD$XHA#;uC@t9DD$HH$H|$0ALL$`Dl$(A׉l$ 1RHD$XHu;Hc L-,gHHHkXIDdR[8HR;uMHc L-fHHHkXIDdQȋHL$XQ;u A;uA@ uAHT$X Hc L-wfHHD IDHkXDtHc HHHkXIDd8A$HD$LEAtx Eă2D$Du88tP }Z HT$@A@|$@ ;u|$@uHcT$D :/t E33-2tE<@uD$T#u #=@tJ=t,=@t%=t+=@t$=t=@u($#;uD$@$|$DA@A%=@$=t|=;A;vv8l$AA+ A;PD$D E3sH;t E33bH| HT$DAZaA;t uk|$DuD@D$D$D=u X4=u# E3Az0D$ E33X0;;vqA; E3H; E33Hu8D$DA HcEHTDD+famD;AHc @$H@HHkXIDd8@l8HcHƒHHkXILƀd8D8@8|$Lu!@tHc HHHkXIDL A%=AHL$XMD$PDD$HH$H|$0D$(ALL$`D$ AuMHu6qMLcIAHMkXIDBd BHcHʃHHkXILH H$HĀA_A^A]A\_^]HĉPL@LH VWHXH`E3HAEu(Hd$ E3E333=H$HD@d$0DD$(D$ @DLHT$@HL$DvD$H|$Dt9t(Hc|$@HHHL_aHkXId|$@V|$@t G0HX_^Ht$WHPELd$@3H$Hu(8Hd$ E3E333N3Hu(8Hd$ E3E333$t8Au%8Hd$ E3E333Ѿ`L$0DL$(DT$ DHHL$@'D$D|$@t,t!HcHHL`HkXIdtHt$`HP_LECMK SH@d$(MKIC MKD\$0L$0EˋH@[H8ADL$`ELD$(HL$ DAIWH8HHXHhHpWHPHHHHIIm3H;u@8l$Ht HD$@3HL$89iuLHHJ[H;u<E3E333Hl$ ]@8l$Ht HD$@-H;tAHHDL tUH;ufDLZ@8/uCfHf f;Qr f;QwfQ$f;Qrf;QwfQDtDHIELtNH;u^H@8.ufQfAHfD fAfD;Ar f;AwfA+f;Ar%f;AwfAADt fAf;uf;H;u@8l$Ht HL$@H\$`Hl$hHt$pHP_E3 H\$Hl$Ht$WHP3IHHL;u3&HL$0IkL\$8A9kuLHHH;u<0E3E333Hl$ z@8l$Ht HD$@H;tAHHFDt-H;uFDu[fG@8/uf ff HHFDt#H;uH@8.uf ff Hf;u&f;tH;u@8l$HHD$@@8l$Ht HL$@H\$`Hl$hHt$pHP_E3HT$L$SUVWATAUAVAWHXAHcADd$4\$8A;u38 3;;[HLL IKHkXD1v8~;H;tD|18AEAAσtu ШtLdШtA;AB؋LH;u =$3DBL ELKL\0@KIA D0HL0 A:;AMKAAIUAhDD0 D:tbKL09A:tQ;tM KAHAhDD09Au.KL0:A:t;t KHAhADD0:KLL$0DH 1H|$ D;HcT$0;H;L7KD0yA;tA} uL0d0HcIMIHD$@L;: A$< @:t HIHD$@HL;sID$8 u ILKLL$0H$H 1AIH|$ C;u C;u{9|$0tuLTKD0Ht"$ t'@+K$D1 GI;u$ u 3$AHY$ LtL@+HL;d$@KD0@uL0 A$HËA+A;AI+uIAI;rI+AB8Vt BV;u*A;uHcH^KD0Ht;I߃L0 |KI߈D19uKI߈D1:HcH+$EHc.D$8L$A+DMʼnD$(3ҹL|$ A;u BbADd$4;HwJ@|0H;׺ tfA9UuL0d0HcIMN<(M;{ A$fEf;tfHI%IGL;sID$f9u ILKLL$0H$H 1AIH|$ @;u!A;9|$0LKD0HtF f9$tKf+$KD1 $KD19KT0:WI;u f9$uf>$HDBk Lf9$t Lf+HM;"KD0@uL0 A$fHA+Dd$4L$M;tI`gADDAi?u muD뮋$3)8 E3E333H|$ HXA_A^A]A\_^][H\$Ht$L$WATAUAVAWH0ALHcu3ۉi 3;;=#TLLIL= TAMkXKBL u.8 H\$ E3E333[A;u+H\$ E3E333nKBD tDIՋs s)c H\$ E3E333譱H\$hHt$pH0A_A^A]A\_H8Hu&Hd$ E3E333gHLH G33<H8̹邧H"t ahHt Rk"t_H$>HL$03A VH$3HD$@HD$0D$0@HD$ H$HD$(I>HL$ 6>Ī̋:"D#AD#D D%"IDL$(EЋLAH%;H\$Ht$WH@HHL$ IA`DL$pLË׋;|$8t HL$0H\$PHt$XH@_@UATAUAVAWHPHl$@H]@HuHH}PH H3HED83MEDHDfD;u7E3E33;;t582<D8xEDD8E;D;D;u'uh;uHpE3E3AA:LcD;u3~g3HBIHrXKL$Hw1HAH;w HH5)H+H|$@H;tGcHH;tHHH;tELAA%:;t8E`A3H\$8LNjH\$0;u \$(H\$ D$(L|$ ;<HO9u@HL$@LΉD$8\$0AH|$(\$ u脨y|$Xt HL$PH\$pHt$xH`_H(=qufE3H(H\$Ht$H|$ ATAUAVH0MMHL>VHx0H|$X3Hu%Hd$ E3E33319HWH MMHHA֋H׋HqWH\$PHt$`H|$hH0A^A]A\MLHH 3MLHH $MLHH LHH E3LHH ߢE3LHH OE3HHHd$0d$(AH E3ɺDD$ "HHHHHHd$0d$(AH pE3ɺ@DD$ U"HHHH(H }Ht HtK"H \Ht Ht2"H(H(AAMD}3LL$PDIA)!H(H\$Ht$WH@HHL$ AIE}3LL$pDH׋ |$8t HL$0H\$PHt$XH@_HHXHhHpHx ATAUAWH H33DG9LHtPDG3ҋ#Ht=HH+H;!AWHM!HH;u1 H\$@Hl$HHt$PH|$XH A_A]A\úDDI;HEMNjK,t HH+H;~դ8u 諤 HAԋ LH3 U}]E3HՋ>HT5HHHHHu%B WH HE3IՋH3Ht$H|$ L$ATAUAVH0HHcu F ;54LLIL54AMkXKBL u0谣 舣 8Hd$ E3E333В3Hu-t L8Hd$ E3E333蔒d}KBD tH׋r  8+ 8Hd$ E3E333.Ht$XH|$hH0A^A]A\H(HcH(H\$Ht$WH HcANHuo RDE3Hu*3t wHHH3HHHkXdH\$0Ht$8H _H\$Ht$L$WATAUAVAWH0EDHcكu38ɡ 3;;2HLIL=2HkXKL0u+蚡8s H|$ E3E333轐mKD0tEAՋ+ @8)+8 H|$ E3E333NH\$hHt$pH0A_A^A]A\_H\$LcH1MAIMkXJ BD8F\ADA@tXtHt(t uHBLJBd8BL80BLJBd8BL8BdBLJ Bd8EuA%@H\$H8@t7t/t'۟Hd$ E3E333$ #3H8H8Hu'螟Hd$ E3E333 3H8H\$Ht$ L$WATAUH0Hc@tHt@t8t0t(#Hd$ E3E333lu ;=/HLIL-/HkXKDLu%訞 Hd$ E3E333]KDDt Ӌb R#I Hd$ E3E333蒍H\$`Ht$hH0A]A\_%l%n%p%r%t%v%x%z%|%~%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%V%@%2%$%%p%b%T%F%8%*%%%%%%%%%%%%%t%f%X%J%<%.% %%%@SH0Mыمt*;tA;u!HD$xDL$pLD$hHT$`IHD$ H0[H\$WH H3HHWLHt4HȊt&<"uH AIHÊutAH>3H\$0H _HHXHxL` AUAVAWH0LHE3L!xAOu3|L;3HL$`WtuL!|$ E3E333uHL$`Ht3uH\$`5Ht3Ht"3H HH HEMt I^LHSBL8 DQHHLIHvtHd$ E3E333KHLl\A8Uu:H'L;t_LWIHvtIHd$ E3E3332A}/t+L#IHhvtHd$ E3E333LJMt'MIHH0Hй@H0]@UH0HMPhH0]@UH0HM`QH0]@UH0HHMH@H0]@UH0H4H0]@UH HH ]@UH@H}Dt7}Ht'HcU@HHHL HkXIdU@H@]@UH@H}@t>}Dt*HHc HHLt HkXIdH hH@]@UH0HM`QH0]@UH0HHMX?H0]@UH0HMP"H0]@UH0HM` H0]@UH0HMPH0]@UH0HH0]@UH HHcM HH!H>H ]@UH HH ]f///v//T/B/2/.)).....z.h..F+T+d+t+++++++++,&,:,L,b,v,,,558+h5\5L565&5554444444j4Z4@4&4 433333&++ +****z5****r*d*N*>*(***x3f3V3>3503/ 00$0<0V0t0000000011101B1V1r11111112"2,282J2Z2j2v22222222223/,,-P.B.,. ...----,---n-b-N-:-*-"---,///ؤ@ @@0@(P@]@@ IZCreateDirectory (%s)MapViewOfFile (%s)CreateFileMapping (%s)CreateFile (%s)inflateEnd returns %dinflate returns %dinflateInit2 returns %d1.2.3\message_boxdirectory_createdfile_createdget_root_hkeyget_special_folder_pathcreate_shortcutCSIDL_FONTSCSIDL_PROGRAMSCSIDL_COMMON_PROGRAMSCSIDL_STARTUPCSIDL_COMMON_STARTUPCSIDL_DESKTOPDIRECTORYCSIDL_COMMON_DESKTOPDIRECTORYCSIDL_APPDATACSIDL_STARTMENUCSIDL_COMMON_STARTMENULib\site-packages\DATAScripts\SCRIPTSHEADERSPLATLIBPURELIBInstallation failed.no such folder (%s)unknown CSIDL (%s)sSHGetSpecialFolderPathAfunction not availableshell32.dllFailed to create shortcut '%s' - error 0x%xSetWorkingDirectory() error 0x%xSetIconLocation() error 0x%xSetArguments() error 0x%xSetDescription() failed, error 0x%xSetPath() failed, error 0x%xQueryInterface(IPersistFile) error 0x%xCoCreateInstance failed, error 0x%xsss|sssiCoInitialize failed, error 0x%xissiSOFTWARE\Python\PythonCore\%d.%d\InstallPathPYTHONHOME=%sOSErrorValueErrorbuiltinsPyLong_FromVoidPtrPyErr_FormatPyArg_ParseTuplePy_BuildValuePyCFunction_NewPyObject_GetAttrStringPyObject_SetAttrStringPyImport_ImportModuleRunning Script...Could not open postinstall-script %s Py_FinalizePyRun_SimpleStringPySys_SetArgvPy_Initialize*** Could not load Python ***PyErr_PrintPy_SetProgramNameOut of memory!Running the pre-installation script failed Can't load Python for pre-install script (%d)Runtime Error100 Made Dir: %s .py200 File Copy: %s Error200 File Overwrite: %s Could not create temporary file~duInvalid cfgdata magic number (see bdist_wininst.py)Times RomanSetup %sCould not register window classSetup.exeSetupWindowClassThis Wizard will install %s on your computer. Click Next to continue or Cancel to exit the Setup Wizard.Software\Python\PythonCore\%s\InstallPathPython Version %s (found in registry)Software\Python\PythonCoreDon't know Python's installation typeStrangepython%d%d.dllPython Version %d.%dCannot installNo Python installation found in the registry.Python version %s required, which was not found in the registry.Python %s is required for this package. Select installation to use:UninstallString"%s\Remove%s.exe" -u "%s\%s-wininst.log"wb%s\Remove%s.exe040 Reg DB Value: [%s\%s]%s=%s Could not set key valueDisplayNamePython %d.%d %s020 Reg DB Key: [%s]%s Could not create key%s-py%d.%d999 Root Key: %s Source: %s *** Installation started %Y/%m/%d %H:%M *** a%s\%s-wininst.logCould not open keyYou do not seem to have sufficient access rights on this machine to install this softwareHKEY_CURRENT_USERHKEY_LOCAL_MACHINE*** Installation finished %Y/%m/%d %H:%M *** Postinstall script finished. Click the Finish button to exit the Setup wizard.*** run_installscript: internal error 0x%X *** 300 Run Script: [%s]%s \Scripts\Please wait while running postinstall script...-installIsUserAnAdminSetupFailed to start elevated process (ShellExecute returned %d)runasif exist "%s" goto Repeat del "%s" :Repeat w%s.batCould not delete keyCould not delete valueuninstall-script*** Could not run installation script ***-removeUninstall Finished!%d files and %d directories removed%d files and %d directories removed %d files or directories could not be removedYou do not seem to have sufficient access rights on this machine to uninstall this software%d Run Script: %s%d Reg DB Value: %s%d Reg DB Key: %s%d File Overwrite: %s%d File Copy: %s%d Made Dir: %s%d Root Key: %sAre you sure you want to remove this package from your computer?Please confirmOut of memorycould not open logfiler2. arg is not -u-uWrong number of args%s%cimport py_compile; py_compile.compile (r'%s')Py_OptimizeFlagPySys_GetObjectCompiling files to .pyo...Loading python...Compiling files to .pyc...Failed to unzip installation filesInstalling files...Running pre-installation scriptReady to installClick Next to begin the installation of %s. If you want to review or change any of your installation settings, click Back. Click Cancel to exit the wizard.Bad user_access_control valueoopsnoneautoforceuser_access_controlinstall_scriptnamemetadatatarget_versiontarget_optimizetarget_compilebuild_infoinfotitleSetup program invalid or damagedThis program is normally started by windowsRemoveCould not open archive0w,aQ mjp5c飕d2yҗ+L |~-d jHqA}mQDžӃVlkdzbeO\lcc=  n;^iLA`rqgjm Zjz  ' }Dңhi]Wbgeq6lknv+ӉZzJgo߹ホCՎ`~ѡ8ROggW?K6H+ L J6`zA`Ugn1yiFafo%6hRw G "/&U;( Z+j\1е,[d&c윣ju m ?6grWJz+{8 Ғ |! ӆBhn[&wowGZpj;f\ eibkaElx TN³9a&g`MGiIwn>JjѮZf @;7SŞϲG0򽽊º0S$6к)WTg#.zfJah]+o*7 Z-A1b62S-+ldEw}ZVǖAOIъ OM~-QJ#SpxAaU׮.7׵Y-6]]wll?AԞZ͢$ Faw$eڪ]]FD(koipvk19Z* ,  m86F߲]qTp0ek*1u4yީ%8S1bSWĔՖk1**ykʬHpo].*F6fcTT"eM©g0&):{ϼkZ> 8$,52F*sw1pHkQ6Fzw]cN̵J #pAF]#l8?1(BOgT~yUbL8^#ܖTZ1ObbSyOIV~P-{b-R4٠~^eGnHl/Su6: #jT$+e?yHf'*b#ٽЧ ?&~?$pi;FBzw[keZ~7 Sv8H 3?r$7jnԄYFܨ |OQ;օ U d S - =G\ p&Gw)` /a߫i5&LsZ<#0zMzFM8,9; :R:(q-v,.7/pXqYs3r%w+OQvrtEux܉~OK }!b|tyBxʠz{.lD~m8onlk[wjR1h58ib?mcf+aQ`צedd"fig HINSKyuJcO NZLݘMFGN@E$DD2AsX@*IBCPhTg3U>uW ַVS:R|P~Q9ZS [fYX4])\ZEo^m/_5qϱ٥s\ۼqދ!K7 kfֶԁ-b3Πjp]$^'~*I@VW<âM˟ŏ{ tDCm-@wm.B+(铜>Td"ŀǼϭ~8y$owJ1}05_K^ iϏ은BI#ƈdX܁T̓cQ: rՆ⩗ fn|xK)o%ƭ/3vUuA?)C:|sĵ@͂ Ͳ;bIUeh"׻_HS1޼^Z4eg Wb27_k%8ם(ŊO}do׸Jj3wVcXWP0qB{߭gCru&op-?'Bs ưGz>2[Ȏg; i8P/ _Y=чe:ZO?(3wwXR @hQ+ğH*0"ZOWoI}@mNП5+#*'G| AH=XX?#1jvʬ`p^Y<L~i/{kHwâ hs)aLoD~Pf7VM'(@ﰤ ہg9x+n&;f?/X)T`D1 ߨMߒ.FgTp'Hq/L0UEc?kǃh6ry7]P\@TN%s7@'>$!AxUʰ\3;Y^U~PGl!;b F2ȂpԞ(Q_V:1X: n3 m:@/)IJNv"2x+ٗ Kx.HҥfAj^y9*O]#kM`~b_R 7zFh!1߈Vc0a"j6nS Nr)Υ{t*F8#vufz`rs"WG9^EMvc΍&DAdQy/4Aڱ&S֚E biLQ<6'5P..T&q]w4.6IE? v\[YI>U!lDa>Ԫ΋ϩ7~8A]&nv|oY yKiw\¹9~$ 66nQfq>,o,IӔ 渱{I .H>C-Yn馑gQz tafw0a, Qmpjc5dۈ2yܸو L+~|-dj qHA}mԵQӅlVdkbze\Ocl=c ;n Li^`Agqr<KG k5Blۻ֬@2lE\u ϫ=Y&0Q:Qa!V#Ϻ(_ ٲ $/o|XhLaf-=vAq *q3xɢ4 j m=-dlc\kkQlabe0bNl{WeP|b-I|LeMaX:QΣtԻ0JߥA=ؕפmCij4ngF`D-s3 L_ |Pq<'A  Wh% of a^)ɘИ"רY=. \;l  tҚG9w&sc d; mj>zjZ '}DhibW]egl6qnkv+zZgJoC`֣ѓ~8ORѻgWg?H6K +گ L6JAz``ègU1nFiyaf%oҠRh6 w G"U&/ź; (+Z\j1,ٞ[ޮd°c&ujm 6?rgWJz{+ 8Ҏվ | !Bhݳڃn&[owGwZjpf; \ebiaklE x NT9§g&a`IiGM>nwۮjJZ@ f7;𩼮S޻G0齽ʺŠS0$6TW)#gfz.aJ]h*o+ 7 Z-1A26b+-Sdl}wEVZOAي»IˬO ~M-JQS#xpaA.U7Y-۩6˚w]]llA?Z$㧲F waރ$Ųe]]DFok(vpi91k *Z  ,8mF6]pTqke0*1¶u4%y<8syjHA}X*ݹ1SbSW§ٖծ1k**kypH]oF*.f6TTcMe"¤0g)&Ůޟ:{kZ >8,$5*F21wsHpQkzF6c]wN̵ׄJ# pȄA#]F8l1?(gOB~TUyLbˁ8#^TO1ZbbySIOP~V{-b-4R^~Ge­lHnuS/:6# $Tj?e+y䏼Hf*'˼Ѝb# &??~p$iBF;[wzek~ZS 7H8v ?3$rj7nFY |OQ; U dؓS - \G=&pGw`)/ ai5&sL <:R=Pe6^X7}o5641W0ճ2k3$k%'1&-[#bML"'{ "!$*x(+)`F(> q-q,v.Ț/7pqXsYr3w%vQO+tru՛E~xKO} |b!ytxBz{l.m~Do8nkljw[h1Ri85bcm?a+f`Qeddf"giH IKSNJuyOcN LZMݥFĚGE@ND$A2D@XsBI*CThPU3gWu>V SR:P|Q~Z9[ SYfX]4\)^oEZ_/m5qs<\kg2z &J8 좞V`a/6i\lU,zB\uHƒ=&FW A+Ox]`غ7W>9q߳!7Kk ֩fض-bѠ3pj$]^Ĝ'*~@IWVÕ<ӂMʏş{ Dt͆mC-@mw+B.(>dT"ş~Ϝ8yo$w1J}50K_ ^ϋiBۉI#dXфTQc:r Р fΫnx|)Ko%3/uUv?A)ġ:C|sд@͉ ;IbeU"hH_S1ފZ^ھ4ge ȋbW72%k_ܝ8Ŵ(}OodJֿjw3XcVPW0Bq{gǧurCo&p-?О'sB zGɠ2>[ ;g/P8i_ Y=嗇e:ϏOZw3(?RXw@ Qh+HZ"0*WOIo@}m5N#+'*GA |􏒨HX=#?X1vjʨ`^pYL'!$UxAׯ3\Y;U^GP~b;!lڇF 2p(ԐQV_:X1: 3n :m@I)/NJ2"v+x xKH.jAf^O*9y]#Mk~`bю_޶ Rz7hFм!10cV"ajحn6 SrN){t*8Fv#fu`zrϮsɛW"G9E^vMcD&dA/yQA4S&ֿ EbLil!>aDƋΪ~7A8n&]|vYoᡱ Kyi׫w¡\~9$66 Qnf>q,o,ӹI 散 I{.C>HnY-Qg̰t zfainvalid distance too far backinvalid distance codeinvalid literal/length code`Psp0  ` @ X ;x8 h( H T+t4  d$ D \ S|< l,  L R#r2  b" B Z Cz: j*  J V@3v6 f& F  ^ c~> n. N `Qq1  a! A Y ;y9 i)  I U+u5  e% E ] S}= m-  M S#s3  c# C [ C{; k+  K W@3w7 g' G  _ c? o/ O `Psp0  ` @ X ;x8 h( H T+t4  d$ D \ S|< l,  L R#r2  b" B Z Cz: j*  J V@3v6 f& F  ^ c~> n. N `Qq1  a! A Y ;y9 i)  I U+u5  e% E ] S}= m-  M S#s3  c# C [ C{; k+  K W@3w7 g' G  _ c? o/ O A@!  @a`10  @     incorrect length checkincorrect data checktoo many length or distance symbolsinvalid distances setinvalid literal/lengths setinvalid bit length repeatinvalid code lengths setheader crc mismatchinvalid block typeinvalid stored block lengthsincorrect header checkinvalid window sizeunknown header flags setunknown compression method inflate 1.2.3 Copyright 1995-2005 Mark Adler  #+3;CScs !1Aa  0@`@@incompatible versionbuffer errorinsufficient memorydata errorstream errorfile errorstream endneed dictionaryе@@8x@@@@x@h@P@8x@fFK I*TK ITTK IO :i+00SBi+00@_dP/N !:i+00'":i+00 E%6NKKº}`fUܭHb0RF#/xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF΋!  Hx5i+.b`ODV A H FM^2mFT d_N" (2W]/4*&{-zeG'{-ph}OUBl OU3(9O> G e+.bchOU4^ ;ݧB}/NKfNr@"=3H$Oڠ'my4[ J1B&M[Or G:ᠷqEJ ǬMWs5i+.bs5i+.bs5i+.bw~s5i+.b%e{HqC,㐲RO$[Dt.|I)sO>+dWnO@;>V;>V Wt חb@J7<}iFϦODa'wj5Ob0wDObAGQ`{FL!mv`[c'wj5Obd'wj5Ob6J[CAVgqe'wj5Ob5i!Lz)zR88`[|^1/`[@L\J7@呰 חbu`ެ@`ެ.PRO—-T'tE`ެA`tpZdl?<W4plTI?rPB,ɨ=O${aPo0p,oiyŜ?Oɝa4Oص,OꙠς`RWpO6OyѦjc(=O0%G`묡51Mlg~6JNfs3K@~Oq!2)wKL+2V4K@~OqT'B6Q:.7V`ƆEz5K@~OqiI~+.ͩ pO]_eOkm'WFAOлP0 P0 P0 M]`gI6FOEг]K $^5N$̈&HS3M17i;'$9Y:Oh7%9Y:Oh7&9Y:Oh7'9Y:Oh7ի|I˃(9Y:Oh7!FsGF{H@FS2IEt$#CȫR e.{ JOe/P($IZ^9$\E9 O奄`OO\;x8WFTpj@wiKw^ևA)!\_[C+dWnO4DLe+.bSmb`ߌ #Or'>O.jxO^QmOd4'>Or3߷;`[MO KLb`wG:J'i>VMYFDAt;&OF} Ҩ\I;%S| *E yЎf|txM NI{@ >KJ\FЗ4mc-NvEc7VfCNItwׄ8A!ӱJ'8EK}4@ VqC(DW@XzvF@S>LNdL֬+ o.Eцݷ"JL :̿,LB)隇A }jL^6CTw]+.DJQS[bHNAFPCU .4zl'K@-tК#FlHiawhM0Y3S!AbostA^?UX2NfHyu 5ꥂG)]/qNnN9jI=W.I|Kg 4cH~%]bM I]7BWGCQl2$HܨEye64ۅ>eL:er='oOU{p OsCů$53QB`ϝ]v+qAO;ل.CZ0YcwN]ND.Q1RWHΨ}'CBg (#l^"`G3qs03NvFZ9\;û@Z|KJ$M>MEQ wmjKDWw? ec E kjO}c^NIe2mG)fpNr-O&oO}N8úGˢ)qKmHB" C[E|ti!OL'`gp+J=$?xԒhKGM]k>+$%|QOz)(BqF[͟WÅm]rLwx,4Ku@ +׉#G`` WG 35A AlG ؂تI`FtQ<[MEĀd_NM&uf4L3lEZIC~"@0(9A8L"k1%B T #F@FDF[Fʙ^AiXשFh Mm8gh z0Gd<O8m xO4yO"FFFMm8gh 0F1F2F3F%F)F*F0:s*Dw=IF y.Y+F&FEFGFHF:/ۆ/O:/ۆ/O:/ۆ/O:/ۆ/O:/ۆ/O:/ۆ/Oǝv\Wސy(_FFFFFFU 8r+C+n44FâRX0eu{ڮP9Vu{0ne0E Kvne yOܦϫ|x O jIOQnO09$-1.E^*onePone |~|?ne? PE^#1$-?W2$-?W2$-pw~?neg@ne˳j@ne˳j@ne?W2$-~{S^BEy|KDphKΔӳOհrIOxhO{lhO\`OOrOh7y) Oh7BTyI6 E9A!8ҏFs%E~2]rgO!B> 9}Nr*GݓkFN]ͷghhϓgAc*^Z%Ȕ2AeqKW';?B@ J$SQ`Ɔ(œO>1s-O(hHjxOi QD(ߥl+ rˆLmCBUa{Ӱ~C.`1 y/DĊY F;3bpc(Jg Дէ{E] E)ПS-oEH?syYz(XGA'qQU AJ s Y!WOZ{*lg(M2(TfC'>|a.  O;O.K[K8H]҇26 -&{-r: %wCjW'tVamy!@iaWBVm`ɠI-`:Bn5OCښL%2J4{[kYs=BMQ!B\[/B{NsASÖ.̆I#t9JDf?kјH"tŻ-Gs?zZAe!`[ǽ6NXX$  KiiőԞ(LqmjK H(.~,-Y@o3\.Q Cpg{L\l%IT߁KI s<_z\ LKo(t;sM|@)^vJYӞ~+IzÊChsxDpWJ?,CP0DOAoZ\q"tDk׾ TLrTIkE a`NNe76_I|kHrYM>s: .jxOˡd:aDX7iii9P5}+EutX(T6QB~ۜC]_#ͼ_Ld=xr|խhG2`?uIp4Bf6חKt3 SNwL1"(iv@ YGح+ObC4`[ԄLr?RJ{,AsEOWL"O7v8yOhKKt&1Zs~:6 B}Ftr⋪GMv2̤ pDʹfD.b[GvtH; zr\GڙYkH?x9J4uY&HxHϣ'GVBeUNOyדسDg,ݠeL3"5/QqCAwSk5 X;-3B{_41lxƱLb VBPoz5zD #D@Fgm[M/BT|\?@zpDF[0 49Z I}AaB}KX䌠%D|DZ#&oI Qd5CvSdn0@DH&'E4VwҁnB*O&-bfMlV!jt€I$[a#FVODJ hFXapf_:qJ?򥸱PpZdFK6eJ7`, :i+00Fh3MnMܙS{5)xKt O3CKsw`$D&l;0MHֿRUBu(dT&arrCuƋ.|uU:WPHw[ێ Z܊M`* !sG3^F0MJSkyZ 8y M3,/KqI\M;TQI![Y ,!PCsg?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~_.,._;=C=;runtime error TLOSS error SING error DOMAIN error R6034 An application has made an attempt to load the C runtime library incorrectly. Please contact the application's support team for more information. R6033 - Attempt to use MSIL code from this assembly during native code initialization This indicates a bug in your application. It is most likely the result of calling an MSIL-compiled (/clr) function from a native constructor or from DllMain. R6032 - not enough space for locale information R6031 - Attempt to initialize the CRT more than once. This indicates a bug in your application. R6030 - CRT not initialized R6028 - unable to initialize heap R6027 - not enough space for lowio initialization R6026 - not enough space for stdio initialization R6025 - pure virtual function call R6024 - not enough space for _onexit/atexit table R6019 - unable to open console device R6018 - unexpected heap error R6017 - unexpected multithread lock error R6016 - not enough space for thread data This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information. R6009 - not enough space for environment R6008 - not enough space for arguments R6002 - floating point support not loaded Microsoft Visual C++ Runtime Library ...Runtime Error! Program: (null)(null)EEE50P( 8PX700WP `h````xpxxxxccsUTF-8UTF-16LEUNICODE SystemFunction036ADVAPI32.DLL ((((( H h(((( H H  !"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~united-statesunited-kingdomtrinidad & tobagosouth-koreasouth-africasouth koreasouth africaslovakpuerto-ricopr-chinapr chinanznew-zealandhong-konghollandgreat britainenglandczechchinabritainamericausausukswissswedish-finlandspanish-venezuelaspanish-uruguayspanish-puerto ricospanish-peruspanish-paraguayspanish-panamaspanish-nicaraguaspanish-modernspanish-mexicanspanish-hondurasspanish-guatemalaspanish-el salvadorspanish-ecuadorspanish-dominican republicspanish-costa ricaspanish-colombiaspanish-chilespanish-boliviaspanish-argentinaportuguese-braziliannorwegian-nynorsknorwegian-bokmalnorwegianitalian-swissirish-englishgerman-swissgerman-luxembourggerman-lichtensteingerman-austrianfrench-swissfrench-luxembourgfrench-canadianfrench-belgianenglish-usaenglish-usenglish-ukenglish-trinidad y tobagoenglish-south africaenglish-nzenglish-jamaicaenglish-ireenglish-caribbeanenglish-canenglish-belizeenglish-ausenglish-americandutch-belgianchinese-traditionalchinese-singaporechinese-simplifiedchinese-hongkongchinesechichhcanadianbelgianaustralianamerican-englishamerican englishamerican@ENU@ENU@ENUx@ENAp@NLB`@ENC\@ZHHX@ZHIP@CHS8@ZHH @CHS@ZHI@CHT@NLB@ENU@ENA@ENL@ENC@ENBp@ENI`@ENJP@ENZ8@ENS@ENT@ENG@ENU@ENU@FRB@FRC@FRL@FRS@DEAx@DEC`@DELP@DES@@ENI0@ITS @NOR@NOR@NON@PTB@ESS@ESB@ESL@ESOp@ESCP@ESD@@ESF(@ESE@ESG@ESH@ESM@ESN@ESI@ESA@ESZ@ESRp@ESU`@ESYH@ESV8@SVF,@DES(@ENG$@ENU @ENU@USA@GBR@CHN@CZE@GBR@GBR@NLD@HKG@NZL@NZL@CHN@CHN@PRI@SVKx@ZAFh@KORX@ZAFH@KOR0@TTO(@GBR @GBR@USA$@USA  6 - 0OCPACPNorwegian-NynorskGetProcessWindowStationGetUserObjectInformationAGetLastActivePopupGetActiveWindowMessageBoxAUSER32.DLLEEE00P('8PW700PP (`h`hhhxppwppCONIN$CONOUT$TMPRSDSXJ\I ORo:\src\python-3-trunk\lib\distutils\command\wininst-9.0-amd64.pdbdT42p dT4pT4 p) 4=4 p`PT42 p20  4 2pd T 4Rp 4, *p@ X0 4Y Vp 4 2 p`P9 %+t$d4# Px dT4p t d T 42+ T$4# p ` 4 pP*p` d T 4 rp  4 Rp$ , p`P0P p`P00 td4  4 rp!00' T342, p `P  4 Rp204 "t1"d0"T/"*@( dX4WR p+@$d241. p`B b0d T 4Rpd T 4Rp2020d 4 r p7 %d%T%4% pP' T9482 p ` t d T 42BB&p`P00  "0/ d T 4 p0bt4t d4td T4Bd'4&$ pB b p`P0  4 2pdT42p  p`P020dT42pd42 p d T 42p) 4 p`P20B  R0  4 rpd42 p2020 tdT4bbbb  2020d42 p4 R p`P2P200̝؝`RPd 4R p0<R`rP  p`00mf`RPbp`00D`BBBBB20B2020BB p 0  b  4 pbdT4pbbbb  4 RpRP4 R p0` dT4 RpRPt d 4R0Ю`B tdT 4  dT4p 4 p`P  t4 t d T 4 R- Etd4C P` T4p`bbbRPt d 4 r0Acah|aR00Bb  b  bbb  bBBBBr0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r020r020!! d 4T 2p!p!  Ԃtd4pPd42 pRP  rp`00,a  4 2p20202042 p  4 2pbb  4 2p2P d4rp0Ga20202P d4 p0>J+iaB    0  4 2pbd T 4Rpbb202020rP p`001aT 4 R p ` dT4p2PB0(a2PB0GMa2P200pzat d 4Rd42 pbbb t d T 4RBB2020R020R0d 4R p20d42 pdT42p$d4 pp2P  4 2p0Rar04r p`P82P  t d 4R0bBd42 p  20202P200bR02P2P2 00 14bLsTb2P2P  4 2p0  mb & bbp`P0 t d T 4Rd 4R p 4R p`P&  p`P0) 4MB p`P$  p`P0 t dT42RPRPRP t d r0bc#b=bB2P2P  4 2p0"-cBi c  4 2p202P2P42p09c @Yc2020dT pBBB t 4RB  4 2p20dT42pd42 p 4rp`Pd42 pd42 p 4R p ` PR020dT42p t dT42 t dT42 d T 42pd 4  p d T 4 rptd42dT42pB2Ptd420c44rc  4 2pdT42pT42 pb2P  td42077W7c2P2P t 4 r0Y88c89cBpPt d 4R0j::c T4 p `  t d 4 0==T@  4 2pt42   2020dT42pdT42p) 4dZ p`PbRP t d 4 R0NO)dbbbbbb2Pd 4R 0PKQAdd42 p202P2P  t d R0RRZdVRRd2P42 p0DSNSdd T42pd42 p20BBd42 p) 4ZP p`Ppd42 p20BBd42 p+ 4ZP p `Pp  4 2pRPd 4 Rp0o}}d20/ 4qf p`P RP d4 Rp0(Ydr0r020202020d 4  pb T4 R p `2Pd 4R p0d0dT4pbbR0b t d T 4Rbbbd 4R p d T 42p202P t d 420"eB  4 2p  4 2p  4 2p2P B0W e B0B B0BdT42pB2Pd42 p0МAeBBRPt d 4 r0ǞҟWeRP d4r p0Kmed T 4Rp%  p`P2P b0ǥeǥBB  4 2pd T 4Rp t d T 42d 4 R p t d T 4 r  4 2pR0d42 pd T 4Rpd T 4RpRPR00eRPt d 4R0H,eRPt d 4R0yae1 dT4pBBBBB- Etd4C PXd4 p1 5#td43r P8d4 pB t d T 4 r2 0T42 p  20 dT4rp2 0 tdT 4 rBR0b  t d T 4220 4 Rp($d4 p!4p`P$T4 p 4 p202020 t d T 4Rb  T4r p `bdT4pR0d 4R p  4 RpT 4 R p t d T 4RdT42pdT4pd 4R pT 4 r p  4 Rpd 4R pbRPbp00CeBBBBB4p ` Pbd 4  pd 4R p20dT42pdT42p) 4dZ p`P  t420dT42pdT42p) 4 p`PH RP4 R p `0#f  4 2pRP d4 Rp02f20  4 RpRP4R p0IfdT 4 pPRPd 4 r p00af2P200`kzf  0  r0  T pB! !4!p`PrPp`0%&frP  d p0+'O'fr 0bdT 4 pdT 4 p  p ` P 0RP d4 Rp0342gbd 4 r p- Etd4C P@d 4  pd 4 r p  4 rp tdT4bbbb20b(' EC p`0PpdT 4 pbd 4R pbbbd 4R pbb t d T 4RdT 4 p$ 53 p`0PXd4 pd4 pBRP t d 4 R0NNIgBBd 4 r p t d T 42RPt d R0pSSagBd42 pRP d4 Rp0HUyUxg4bbRPd 4 Rp0X;XgR0  4 2pRP  t 4 R0\]g2P2Pt dR 0 ^J^g]]^gd 4  pR0B$)Pp%,p(\.pt$.hp`$/p(/`t)/Huf///v//T/B/2/.)).....z.h..F+T+d+t+++++++++,&,:,L,b,v,,,558+h5\5L565&5554444444j4Z4@4&4 433333&++ +****z5****r*d*N*>*(***x3f3V3>3503/ 00$0<0V0t0000000011101B1V1r11111112"2,282J2Z2j2v22222222223/,,-P.B.,. ...----,---n-b-N-:-*-"---,///PropertySheetACreatePropertySheetPageACOMCTL32.dllSetLastErrornCreateDirectoryAGetFileAttributesA MapViewOfFile{CreateFileMappingADCloseHandleSetFileTimeDosDateTimeToFileTimeGetLastErrorzCreateFileAOUnmapViewOfFilelstrlenAMultiByteToWideChar"GetProcAddressLoadLibraryADeleteFileAhReadFileSetFilePointerGetFileSizeNFreeLibrary SetStdHandle>GetStdHandleLocalFreeIFormatMessageA\GetTempFileNameA^GetTempPathAGetModuleHandleAzGetVersionExAResumeThreadSetPriorityClassGetCurrentProcessGetCurrentThreadSetThreadPriorityCreateProcessAGetModuleFileNameA}RemoveDirectoryAGetPrivateProfileIntAGetPrivateProfileStringAGetModuleFileNameWKERNEL32.dllMessageBoxA&GetFocuswsprintfA|SetDlgItemTextAbSendMessageAPReleaseDCGetDCPeekMessageADispatchMessageATranslateMessageEndPaintqGetSystemMetricsBeginPaintDefWindowProcAUpdateWindowShowWindowgCreateWindowExA7RegisterClassALoadCursorA MoveWindowGetWindowRect"PostMessageAWGetParent]SendDlgItemMessageA!GetDlgItemvSetCursorUSER32.dll4CreateDIBitmapDeleteObjectSetTextColorTextOutAfSetBkMode^SelectObject:CreateFontARCreateSolidBrushGDI32.dllfRegQueryValueAHRegEnumKeyExA*RegCloseKeygRegQueryValueExAZRegOpenKeyExAwRegSetValueExA2RegCreateKeyExA7RegDeleteKeyAARegDeleteValueAADVAPI32.dllShellExecuteASHELL32.dlloCoUninitializeCoCreateInstanceACoInitializeole32.dllSGetSystemTimeAsFileTimeHeapFreeHeapAllocFileTimeToSystemTimeFileTimeToLocalFileTimeGetFileInformationByHandle=PeekNamedPipeGetFileTypeEnterCriticalSectionLeaveCriticalSectionGetDateFormatAlGetTimeFormatAHeapReAllocGetModuleHandleW/SleepExitProcessqGetCommandLineA<GetStartupInfoA;TerminateProcessLUnhandledExceptionFilter#SetUnhandledExceptionFilterIsDebuggerPresentRtlVirtualUnwindRtlLookupFunctionEntryRtlCaptureContextWideCharToMultiByteoGetTimeZoneInformation]GetCPInfoTGetACPGetOEMCPIsValidCodePageEncodePointerDecodePointer@TlsAlloc@FlsGetValueAFlsSetValue?FlsFreeGetCurrentThreadId>FlsAllocHeapSetInformationHeapCreateHeapDestroyWriteFileSetEnvironmentVariableASetEnvironmentVariableWRtlUnwindExDeleteCriticalSection FatalAppExitASetHandleCountGetConsoleCPGetConsoleModeSetConsoleCtrlHandlerInitializeCriticalSectionAndSpinCountLFreeEnvironmentStringsAGetEnvironmentStringsMFreeEnvironmentStringsWGetEnvironmentStringsWSQueryPerformanceCounterjGetTickCountGetCurrentProcessIdLCMapStringALCMapStringW@GetStringTypeACGetStringTypeWrGetUserDefaultLCIDGetLocaleInfoAEnumSystemLocalesAIsValidLocaleCFlushFileBuffersWriteConsoleAGetConsoleOutputCPWriteConsoleWHeapSizeGetLocaleInfoWVCompareStringWSCompareStringASetEndOfFile&GetProcessHeapSoftware\Microsoft\Windows\CurrentVersion\Uninstall@x@8x@0x@8x@(x@8x@ x@x@x@8x@@x@w@0x@w@(x@8x@ x@x@x@8x@w@ w@w@w@w@hw@Xw@@w@0w@ w@w@@v@`@v@@v@N@v@N@v@X@Software\Microsoft\Windows\CurrentVersion\Uninstall2-+] f@@x@t@p@l@h@d@`@X@P@H@8@(@@@ @@@@@@@@@@@@@@@@@@@@@@x@h@`@\@P@8@(@ pF@ @pPSTPDT H@`H@        ! 5A CPR S WY l m pr   )     abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ J@`y!@~ڣ @ڣ AϢ[@~QQ^ _j21~@C`O@`O@`O@`O@`O@ V@@@@pF@pO@pO@ J@@@ @ @@@`@0@@@@`@8@@@ x@!@"@x@y@z@@@ @@4@4@4@4@4@4@4@4@4@4@ ;Zx0Nm:Yw/Ml@@.V@n@n@n@n@n@n@n@n@n@ V@.,v<1`4jpx]`XX  `#`#%$ %&@&(\(((**c+d+++q-t---'/(/0 0;1,<1M28P2Y4L\44l45xD599==Z>\>@@@@AAAABBFD(HDUE<XEiFPlFFdFFlFGtGILLLMMNNNN6O8ORR?T@TBW DWOX@PX'[H([[P[^X^mbhbb|bcccc hhiijjtc 4TXՏ`h'p(q|tѕԕ}LLnpə̙  \\n<pl%(EHehФؤCDq tʦ̦0ͧ<lD 6P8۪XܪlEtH}|=@RT'(bl4L@dvpx  *,FHfh(08@ H2P4UXX|`|hpx 14 ghKL24~klWX C(D0&8<@HQPT|Xlpln`pbbqtGH(9<i(l08 @ ELHX`h|L, f p  ( }0 D L T \ d t X X 7 8\ \$ XD XX h #p $cx d,    V X  $ $  e . 0 0 `T `\ (x (   H X G H    > ` L               ( ;H Dax  ~ ( (]8`l1t4=|@ll 4 w    !!!!("("''C(D(( (t,0t,,H,-P --X-.l... //0022"3$3333344 5D 55P5h6dh66t67799::=<=y@T|@@@AAAA;B >=> @>> >> >]A AB BC CD DCD!DDfD!hD{D!|DE !EE0!EE8!EF@!FGX!GLl!L)M!,MAN!DNeN!hNO!OO!O'P!(PcP!dPP"PP "PR"RS@"SSl"STt"TU"UV"VV"V'W"(W}X"TZZ#Z[#[]$#]z^d#|^i_#t_`#``#0`~`(`` ``4``d`````aa,a,aGaGaiatiaaaal aa aa aa ab( bb b4b 4bMb Tbmb mbbX bbP bbp bbh bc` cc  c9c 9cRc0Ycrc(rcccc|ccccc)d)dAd AdZdtZdddddd ddddpdeee eAeHAeWeWememeePeeeeeeeeefdf2f2fIfIfaf,afzf|zfffff2g<2gIgIgag!agxg8"xgg"gg"gg#gg\#ghT#(@pnklmn ( 8 H X hx  $ZZ(n, BBB999111)))cR[RABZRYRZRAB[R[RAB[RAAB[ && &&&@JQ1AA1ZQ1111ZQ1AAZ@JQ1AAZQ1AAJ eu eu @ABZ@J@G@F@F@G@AABX@J@AABX@J@J@AA1X@J@G@HRX@G@AAG@ZRX@AAG@JQJed%ed%ed@AA1ZQ1AA1X@J@HQ1AA1X@1A1ZQ1AA1ZQ1A1J  & & RAABZRABZR[R[RABZRYRBZRABZRBW@J@J &R[R[R[R[R[RABZR[R[R[ & & & & & & &@J@J@J@J@HQ1AA1X@J@J@J@J@J@J@G@J@G@JQJ@ABZQ11Z@J@AAG@J@G@GQ1J@AA1ZQ1YQ1[@J@AAG@J@G@1W@J&@I@G@J@J@J@J@G@J@G@Z@J@AA1X@J@HRABX@J@HQ1AA1X@J@J  &  %& & & &RAABZR[RZRAAABZR[R[RABZR[R[@H{SetupMS Sans SerifP} This Wizard will install %s on your computer. Click Next to continue or Cancel to exit the Setup Wizard.P}PhnP}@H{SetupMS Sans SerifP} Select python installation to use:PP}7Python Directory:P}jPhnPP}BInstallation Directory:@B2Find other ...@H{SetupMS Sans SerifP} Click Next to begin the installation. If you want to review or change any of your installation settings, click Back. Click Cancel to exit the Wizard.P}msctls_progress32Progress1P}Installation progress:PhnPA@H{SetupMS Sans SerifP} Click the Finish button to exit the Setup wizard.PhnP}( PAPADDINGXXPADDINGPK!@command/wininst-10.0.exenu[MZ@ !L!This program cannot be run in DOS mode. $[ɏɏɏQɏqb;ɏqW ɏJɏZɏȏɏqcɏqSɏqTɏRichɏPEL{O  50@Pg02@0.text `.rdata0@@.data$M@.rsrc0@@tt /u\@uUVu S]W2B>toj\VgYYt_ST1BE u&jSX1Bu9Et SWjU SjUYYE uh\1B}t SWjU \Fu_[3@^]U SVW=81B39uuEVhuVVSu ׉E<1Buu uu  uPt P\1B/9u u jU YYt.VhjVVSu ׉Eu%9u u h@3Bu jU YY9u t u jU YYEPuu@1B}EPPPWD1B9uu WH1B\VuVjVWL1BW=H1B׃u9u t8u h(3B&VVVjSP1BSE׋E;u9u tu h3BjU 3_^[U8}S]VWj8EjP,jE EȋE@E̋Ej8h3BE؍Ej3P]FF}t t*Ph|3BEjPHYY;tt Phh3Bj׃ 3EP7[Yt,t PhP3Bj׃ 339uuuu S!f FS41B_^[U@B3ʼnEEMEW}L8+A Q+ƒ9PKt33SVf;Q |3@^[M3_jËs*;PK>PKS. K SFC*NȋύDM +AuP@u+I<\t"OGGu3BfP,1BGP@u+PQ ȃ8uFPP$h 6P@u+€<\tVC PCPsPjt(NssQPt$@P@ Pj@ 94ȋx@uN+NjAu+΍OOGuʃ󤋍ȉI+ȍp@u+Ɗ<\tj@9BY3tu%u %YCtu h,9BPf M3_3@^XUQQVW3VhjVjhu81Bu3NSEPW0BVVVjVWL1BW=H1BE׃}u3VVVjuP1Bu׋E [_^U=Ct@=Cu7Vu|2BCP jHQRjQVL0BVuC2B^]UB3ʼnEEL+AV+A W} "43҉9PK>{V4tR9BY;N;t +V+щC+F+F+~h^YPhp0Bjh9BPl0Btn3PPPvPjt]vWPh p@u+ƍD8PfY41B3@<1BPx9BY3M_3^VUV5p2BW3EPt2BEPx2BjWWWEPօu_^UPB3ʼnE} EEtuuu P`2BSVWMQPd2BjEh2Bj Yh9B3SSSSSSSjhSSSP40BPu80BjuE<0BCƍx@:u+Nj=@0BPVjjuhuD0BƍH@:u+PVj j uuu80BPH0BEPul2B_^3[M3uUU0iB3ʼnEESVW=t0B3VDžDž'@hVL2BhP0B:BPP2BfuVh:Bh9B5 C,2Bh9BP$2B VV׋=h2BPVVjPjPVVVPSVT2BjVX2BV\2BM_^3[UTUB3ʼnESVEPWD2B5h2Bjj֋UȋE++EjRU+UR+PE+EÙ+PWH2BM^3[SUgB3ʼnE} NS]} S=CYtPjhrhS82BVWS<2B+h`Ch(:BP$2B52B PhSh ChSh`ChS_^#Ex8ujjhpS<2BP@2BM33[SUB3ʼnEESQh3SE h:BP0Bt3~SSSSPEPSDžP0BAVW=2BuDžP;t48t0E:u:tN:Hu:u3;5$2BEP\h:BP֍EP h:BPփPhS P0Burh XYDž;tKPVSSS0Bu0\PSh׋VPh0BSSSSPEP0B_^0B3@M3["QUQVEPjjhdBh0Bu u0B3^UBV;t?=uu/5B'jh,;Bh;Bu,2BƣB^]U}~4B]u } 4B}B]UdB3ʼnEE NS]VWZ-=82Bt)HEf;sHdCtPjhrhS׻0CShV42BP ShV42BP jjhV׉ttjHPhV׀=0Ct.Sh;BP$2B Ph2Bu@=0CtSh;BP$2B l;Bjh\;BP,2B<2BjjhpP@2BjjhV׉uSjjhpP@2B=2B5BVhVhנ5BCCjjhpP@2BjhV׋ BC+Њ@uQh2BjhV@PTYtZShVhHCh(ChD;BSxbu5HC5(Ch4;BhC$2BSTY 5BC5HC5(C3ɊC AuqAu+΀ \tOOGu3Bf@Њ@u+OOGuȍPh2B@Ex8u43VVhhS82BujjVhpS<2BP@2BM_^33[LU(B3ʼnEEBDž=B=t Dž=BSVW=0B3SQSjSSSHBVP;t5ujSh=B(2BP,2B3Sht=BV(2BP,2B`CVh`=BPth\=BP^tCPNPlNP`NPh,=BhP#sP5CYhCh =B5CXHh =B5CX5HC5(CVh=BPt PPShSSSPׅtShBhPnpP5C_VC$tPc^YM3HU B3ʼnE} NVuW} u} =$C=@CS2Bh>BhVDž>B3C@uOGGu>B@CfЊ@u+OOGuȡCtQhCh>BPDUhjL2B502BP։PjP tPh>BV@PT thh@>BhMY[FC3;tPWhrhV82B9=$CuPhV2BWWhV@2B3@%Ex8ujjhpV<2BP@2B3M_3^Fh5B 1Bu3h ?BP$1BBtUXB3ʼnE=0Cu3Ah0CEh:BP$2B EPhjEPh0Buu0B3@M3EUB3ʼnEhPDžhx0Bt3@lw u9ps3M3EUB3ʼnEjjh5BhCht?Bj2B ,P|h8?BP$2B jh0?B|Pj,2BM33EUEE :utP:Quu3]]U`B3ʼnESVWhP3W0BPh?BPmh?BP6mh?BS1RP?BVSRPh|?BS RPVSQ@S ZjD^VWPB3fPPh3BWVWWWPWDž0BtO50Bjj0BPh0BP0B5H1B|0B֋M_^3[CUQQSWuj[PE=3ۃ ;VGj]W=YY;Fj V|=YY;tEPhSW5B0BtSht=Bu(2BP,2B2Vu0B;ttSh?Bu(2BP,2Bu0BupIY^_[UQQSWuJj[PE<3ۃ ;VGj]W<YY;Fj=V<YY;tpEPhSW5B0BtSht=Bu(2BP,2B2Vu 0B;ttSh?Bu(2BP,2Bu0BuHY^_[UVj:u.<YYtFPoYuV1B^]UVj:u;YYtFPPoYuV0B^]Uj[u;YYuV@j]P;YYSFB΋Ê:utP:Quu3tweeWEPjV}E,@Bu th@BVP@PNYY}t?tjh?BW(2BP,2BW}GYӋ+_ @u3@[^U(TB3ʼnEE 3Ƀ}Sj [tQQhHBBQ,2B3@1VpWjDBBY3t3PPh0BB)h,BBph3YY;u VVhBBVj(3GY;uVhhPt P@u+‹ND7PYmYuPƄ55Y9| PQsYYhPQt f3U$8@jpj$hBBhABV,2BBDž5B9j[4Ί:u*tP:Qu˄u3jABYVPPhABV5S;uMj=BY3uBM2@jPh@AB(2BP,2B3@PPh,ABVR;uVYPPhABVR;uVYtSPPhABVXR;tʍPPh@BV8R;uVj<1B;tat\TPPh@BVQ;uVR+PPh@BVQ;u HY9v1Bt<1B~PYt#hp@BP$2BhH@BP$2Bj@h4@BPj,2B\3_^M3[J<UXB3ʼnEESV3BW3@A;u=82BPVhS5CVVhS5C׉5BE  c6hhBBP$2BPt6h`BBP$2BPj%jhS5C6h5C2BvmM_^3[;USV5$1Bh\8BWh8BWh,8BWEh88BWEhBBWEhBBWE395Bu3J;tC9ut>9ut99ut49ut/;t+39uh@CUuu3 U^[UQEPh`5Bu C uujh5BC UQEPh`5Bu C uujh5BC UNB3ʼnEE NVuW}-tS-t+HPuhhW82BVhW2BVjhhW82B3@eCtPjhrhW82Bh`ChpCBP$2B52B PhWh\CBhWv1t(8jjhpW<2BP@2B5<2BS3SShpW=C$CP@2BSShkWP2BCÍp@u+ƀC\t{GGu3BfÍP@u+WCgSYY85HC5(C52BCt8th33HUBFMuҋ#Ƌ#_^[3tt3uUSVW}j +[ 7UKu_^[]UB3ʼnE} V33ADž| @|@ ||PP|rYY|P^E Yt΍5} t-P|1E Yt΍|} u3EM3^)UuMu YY]UuMu YY]UU u3]uE}Y]U@EHPSKLMԋ+M VpWx OωMč:MЋN(M܋N,MN0MN4M؋N8MN)MMMAGMu+MM#+MM;Ms)MMAGMu֋MUvTBj3YM@QmWQWHuE$+ʊQmWQW}w}tQG}vIG;]s7;},@|eB@deB t @HeBM +)M 3AыM KOH M+˃HMJUU#U+ρHE _V8F<^[UM3;t\A;tUV3PQQQFq00PP @P P(P,P0P8P u H 8^8MH@}~E@PoB,$ } u2   σ+} EME r܋ˋ%;tE@0oB} 33} F@ F@EE9EvEE9EvE} uuu E)EE)EE )F@ }T EMEr܋ÃF`Ã@FdÃ~`F\w~dw fhQE@ oB}EMEr܋Nh M nBÃfDNpFhFh;F\rFhE nB3fLFpFh~hr卆0NlFLRFTPQjFpPj E܅tE@nBfh}EMENT3@NLH#ËɉE;wfsK"}MME;r̋Fh+fMfLFpFhf}uW}|MMEH;rڋ+FhDFnEÃf}uZ}EMEB;rڋjÃ7}EMEB;rڋjà eY+VdNhV`;w6tNhfUfTNpFhHuFdF`9FhsE@nBE@nB>fpuE@nB0NlFLRFTPQv` FpPjf E܅tE@nBNlFPRFXPQvdF`DFpPj! E܅tE@xnBX} }ri}r`EMuH MHMMHP^8~<]> E^8~}'EM;AtE}t jm}E+G]+_G_^~Et,t(G S+Ã~PvtW2FG0Eԃ  u Eet t3V҃@UVb@b@b@ c@c@e@f@f@h@h@ j@Uj@j@k@k@Ol@Xl@l@UVut0Ft)N$t"@4tPv(YYvv(V$fYY3jX^]USVW}3;tw;t ] 9Ft > t jX_^[]Ã> uPPPuSP;Ftj׋Gt jF(};v+PSv4Z F(F,N4W+SQC ~, F 3UEt@t@tM H a03]jX]U39E v?SWs6Uځ;uAt3jZ+ы@;E r_[]US]3VW;{;9Su <sjjX9tGG<ȃg8+G<rO8G8DBO8w<sREwh&P5YYswh3&)CC>CYYEtjsSvECsY 3jX_^[]UEt@t8 u x<u3@]3]jX]UQQSVW39}u ;^;F ;9~$hjv(Ѓ E;uj}9{4t(K$3@jPv(V E;u uv(V$YYɋ}jYhuSV%CL0 0;r/;w%++0FLCP++0FPCl}++0FltK$3@Ps4W E~4p3jX_^[UEt@tǀjjX]UEt2@t+uH@u +H@3ɋ]ø]UB3ʼnEE UEESE3VuWj Y}3ɉt9MvEHDEfA;Mrj[3E]Gf|]uK];s;v]uE@E:SljE;vf|Eu@E;r9EsE׋DM+Av~ }tu;uq3jfEYfD fD ܃fD r}39Uv(EPf8tLMfOLMfB;Ur؋MtAItMEpBEpB7pB+щUPpB+щUE }}EMEM>3B3ۃ}]J|]UUxuTs}uPr3@MM*MMM;M} EfU&~M UɊUUf E`3fM3ҋ+MBMMMM] )U+˃}]u3ҍHBMut Z#3ۃEfLE܉]u;EEMA|U;,x#ˉM;M}uUM<ȋE3+B;Es)EDEE+Ӆ~AEEE;Er3@UU9Eu }T}u }PE] UT+EfT|k*ME@M3fMK}tx#;Mt Ee>EMM 3ҍHBut J#3ۅuEMt3M_^3[Sø3BjUXUEqB+ȋ]UE EP Y]Uu Y]%,0B%(0B%\1B%X1B%T1B%P1B%L1B%H1B%D1B%@1B%<1B%81B%41B%,1B%(1B%$1B% 1B%1B%1B%1B%0B%X0B%\0B%`0B%d0B%h0B%l0B%p0B%t0B%x0B%|0B%0B%0B%0B%0B%0B%0B%0B%0B%0B%0B%,2B%(2B%$2B%2B%2B%2B%|2B%x2B%t2B%p2B%l2B%h2B%d2B%`2B%\2B%X2B%T2B%P2B%L2B%H2B%D2B%@2B%<2B%82B%42B%02B%L0B%H0B%D0B%@0B%<0B%80B%40B%P0B% 0B%0B%0B%0B%0B%0B%0B%0B% 0B%2B%2B%2B%2B̍B[Í$d$3D$ST$t :tτtQu WV ؋ ~333ƃu%t%uu^_[3ËB:t6t:t't:tt:tt^_B[ÍB^_[ÍB^_[ÍB^_[UWVu M};v;r=CtWV;^_u Aur)$`z@Ǻr $ty@$pz@$y@y@y@y@#ъFGFGr$`z@I#ъFGr$`z@#ъr$`z@IWz@Dz@Wr1كt +шuʃtt uD$_ËD$̋L$ W|$VStt9u~Ѓ3ƒtGt!tt uσ t$u u\"t=t)uu8˃ttu[^D$_ÈD$[^_ÉtȺ~Ѓ3‹t܄t΄t*tuĉD$[^_f3ҋD$W[^_fD$[^_; Bu=U}tuuuuu ;@]ËUVuW3}}};u|Lj^0z@TSj$hV] ;uQLj^0O@(C ;|;r|o@v"Lj^0[_^vGEPJYEPJYEPJYK;|jv`E+EPV}MGYYu9E;VGY,E)EEPUVGYYYF SVGYY<9Et,V8GYt!EEF ȋU+]Eڙ+jjYttȃ CBA$u)ttCB@$t>2M9]u#W|EPSu W~EWV}E EpuYËUEPuu u訋]ËUEPuu u謋]ËUEPju u葋]ËUEPuu u蕋]ËUEPju uz]øBá -CVj^u;}ƣ -CjPpkYYCujV5 -CWkYYCujX^3ҹBC  B|j^3ҹBWCt;tu1 BB|_3^词=Bt(5CYËUVuB;r"Bw+QnN Y V1B^]ËUE}PcnE H Y]ËE P1B]ËUEB;r=Bw` +P)mY]à P1B]ËUME }` QlY]à P1B]QL$+ȃ YQL$+ȃ YU SW3j3Y}]9]u;/uM Vu;t;uo;l/PE;wMEPSuEPEBuu{;tMxE EPSYY^_[ËUEPuuu uk]̋L$ WVSًt$|$u 't+t/uuatt7uD$[^_tuutu[^D$_Ét~Ѓ3‹t܄t,tt uĉ3҉3t 3uwD$[^_UW}3كE 8t3_ËU eWj3Y}9Eud9a-xM Vutu@9=-SE;wMuEuEBuuPu\ytMxE EPj賉YY^_ËUujuu u<]QL$+#ȋ%;r Y$-U eWjY3}_uf8c,9E tV9gYEIuuM;wEuEuu PUËUVuEPju hAv^]ËUVuEPuu hAS^]ËUVuEPju h.A1^]ËUVuEPuu h.A^]ËUVuWuy7v+ DF t8VJV蹭V貃PyFt PfYf _^]j hBDiM3uu6* F @t f EPiV YeV +}O;]rOt V܄Yu}}t 3ҋu+WuV2YPZ ta;wM+;rP})EVPpYYt)EFKEEAEN +3u N Ej hByg39u t!9ut39u;u.5+)3guHYuuuu uPEEEuYËUEtM ]ËUEt8uPaY]ËUSVWuM3E苸]utec4EZcE}YYM\rՍCPbYutdeE:4EF+ƍDPVCa uTVcE:tEF+ƍDPVau*VbE}Yr}_^[tE`pE3PPPPP\'jYËUSVWuM3E䋸w8uE v0nb6EdbuYYMÃM\uuՍCP aYutbehE:wF+ƍDPVH` uRV bE:7F+ƍDPV#`u-VaE} Yr}_^[tE`pE3PPPPPc&j YËU$SVWuM3E܋}]t{a4EpaE}YYM|rՍF8EE ]s0Da3E:aEYYMM|uaaǍ|`|`|`ePE_؃hdVSdeF] )uEESvj [0A~wII@;r[ËUQSV3҉U9Ut597vj [0F ~w7NN@;r.;1s(NVtj [0ENuE)^[ËUQSVu WًY{Iv mtjtEHt"tFYPv@ 7UThv UT% vƙj Y…uQXQMjY+twHHt,HHt HiF;tHF;ȋFr=mg;}3j^;x@rA;8ZF(;F==jdYujkdtmZ%HHtUHt*vmuFjv ujZ>Yc}uSWVt#u@FPuEuMPUtBF9]w9]vE+}8]tTMapKME9]u 9]w%"9]vEy%v8]tE`p3^_[ËUujuuu uY]ËUjjuuu u:]ËUjuuuu u]j h0BW3ۉ]3};;u$3y3u ;;t38;t螩E;u $ʉ]8u $jEPhB裪 PuVWEE EVuYËUj@u u2 ]ËUVuu$j^0$huu t3#^]ËU SW3j3Y}]9] u#ME;tVEEEPSu EPEEBcMxE EPS9tYY^_[ËUEPuu uǪ]ËUEPjuu u2]ËUEPuuu u]ËUEPjuuu u膭]ËUEPuuuu ud]ËUEPjuu u{]ËUEPuuu u\]ËUE PuYY]ËUE PuYY]ËUEPu uݪ ]ËUEPu u ]ËUu MyE~EPhu5 MH%}tMapËU=BuE BA%]ju~YY]ËUu ME~EPjuB5 MH}tMapËU=BuE BA]juYY]ËUu MtE~EPju4 MH}tMapËU=BuE BA]juYY]ËUu ME~EPjuD4 MH}tMapËU=BuE BA]juYY]ËUu MvE~EPhu3 MH%}tMapËU=BuE BA%]ju~YY]ËUu ME~EPju?3 MH}tMapËU=BuE BA]juYY]ËUu MqE~EPju2 MH}tMapËU=BuE BA]juYY]ËUu ME~EPhu>2 MH%}tMapËU=BuE BA%]ju~YY]ËUu MlE~EPhWu1 MH%W}tMapËU=BuE BA%W]ju~YY]ËUu ME~EPhu21 MH%}tMapËU=BuE BA%]ju~YY]ËUu M`E~EPj u0 MH }tMapËU=BuE BA ]juYY]ËU}]ËUE]ËUu u9YYu}_t]3@]ËUuoYu}_t]3@]ËUu u~YYu}_t]3@]ËUEPYu}_t]3@]̋V;tt+S@Nu[^̋UQUW;vlM  SEVIu;w"$SVU~u ;vM U;t!t+I@NuM U+;w^[_]̋UVu W}ut_^]S]t}u[_^]ÃrNE}u+3@wEPSW SWU~,U;t#+JUU U U@uVWU~,M;t#+$U U @Iu}VSU~*M;t!+U U @Iu}I;v};sSWU~;wI};}w SWU~+u;v SVU;w2Ut#+JUU U U@u;uu;s+u;vSVUt;rI+uE;vSVUtEUʋ++;|+;sM􉄍xAM;s9u]}=;sM􉼍xAM;s}]u]EHExUEU}u u Y]Vu u u(Y3MW0uFVuj5B1Bu^9Ct@V>YtvV>Y( 3_^]<1BPY<1BPYjhPB J]]3;u9M t 339M ;t3u;;t9M tډuVYeF @uoVcYttȃ CBA$u)ttCB@$t! e}t:M t2Nx AVYEu ;ue G}< uE E1IËuV\YËUQeS]u3VrustnM EtR:QuMPt<:Qu7Pt&:Qu!Pt:Qu E9ur.@IF@I<@I2@I(M Eu t:u @FA;r3^[ +Uh8B1Bth(BP$1Btu]ËUuYu1BjGYjFYËV6$V;VVҪV!V(V^ËUV tЃ;ur^]ËUVu3utу;u r^]ËUMu jX]áBt3]ËUMujX]áBt3]ËU=CthCOYt uCY胫h2Bh2BAYYuTVWhaA2B2BY;stЃ;r= C_^th CYt jjj C3]j hpBTFjFYe3@9BBEB} 5C51B֋؉]Ѕth5C֋}ԉ]܉}؃};rK\"9t;r>7֋I"5C֋5C9]u9Et]܉]ЉE؋}ԋ]E2B}2BsEtЃEE2B}2BsEtЃEE }u)BjDYu@}tjCYfEËUjju ]ËUjju ]jjj jjjz ËU8u7Yh̋U=Bu8u6hYY]øMZf9@t3á<@@PEu f9@uރt@v39@jXhB-uEFV,YiE<+t<0|<9F3ۋuj9YÀ>:u8FVYk<E<9F<0}>:uFVקYE<9F<0}9]t]E;tjVj@wt Gu-0u0:ËU e} SVW}%yH@Eu jd[ult B \BE +_jd_FjEÙU}[+ЉUGEim%Ek+E;Ut}}u jd[ult E B E `B;~D?%yH@u jd[ult 4B4\Buk<M k<M$iM(}u5B B=B_^[ÍEP5$B (BYuDEi(By(B\& $B\&9(B| )(B$B= B3PPPPP̋U VE3PuY9uXWS3C;Bu ; B95BB BPBPBPf95BuBVPBPRS BPVVRVBScRB LB$PPBPNBPf95DBuHBVPJBPwSJBPVVwVFBV$TjXjYE ]k}jXE EVVVVVQRSSjYEVVVVVuwSVjYH B$BW;};|";;~;}[^;|;;~;}3Gk<Gk<i;u 3;B 3;(BVVVVV8jhB6395Bu*jm6Yu95Bu BE6jL5YjhBn6j(6YeE6j5Yj hB66j5Ye}EE EP6j4YËUeVuuj^0 j$hVE tӋ@ME|@Ws sj^0뼃| &AwSWjh3PQ+HF+yjd}M؋Ǚ_jh+؋EDAڙRP+jQSRP}U}M|sGEǀ3UȁEyIAu jdYuEluAU2EȁyIAu jdYuEluEEjSuFW%jFhRP3U}`BuBF3A9B} A9|QIN+jF E Sp0jY3ShuWVjFhRP轪SUj_^ 3[^ËUVtuVYY#^]ËUEub_jX]Ë 4B3]ËUEu52jX]Ë 8B3]ËUEujX]Ë 0B3]ËUS] Vt4}v4tW}t Et1t,j^0K}tj^034B6q/@Yu3;Evj"X6uS~- _^[]ø4Bø8Bø0BøBËUE3;BtA-rHwj X]ËB]DjY;#]u0BÃu4Bà ËUVMQY0^]ËUuj X]M3]ËUVuu jX z3^]ËU|uj X]lM3]ËUVuu FjX G3^]WVS3D$ }GT$ڃD$T$D$ }GT$ڃD$T$ uL$D$3؋D$A؋L$T$D$ ud$ȋD$r;T$wr;D$vN3ҋOu؃[^_SW3D$ }GT$ ڃD$T$ D$ }T$ڃD$T$ uL$D$3D$ 3OyNS؋L$T$D$ ud$d$r;T$wr;D$ v+D$T$+D$ T$Oy؃_[UQeVuuj^0Sj$hV] u{j^0y @W}`j^0WiҀyʍF3;|+B;|+ȸB;|B+EVQ`BFiȃ}uBF3B9G} B9|] JV+QF j_jElBD;FG;v}>uЋuE}urlj{CijC CtBZf1f0JuL@;v~0C@IuCC Ss3ȋ {95BTM_^3[éËUjM߬Ext}@tMapÀ}tE`p3jhPBr(M}_hu3E;CWh #Y؅Fwh#SuvYYEuvh1BuFh=@BtPwY^hS=1BFp`Bj 'YeCBCBC B3E}fLCf EB@3E=} L`B@3E=}hB@5hB1BuhB=@BtP辮YhBSE0j %Y%u @BtS舮YeE*'Ã=CujVYC3ËUSV51BW}W֋tP֋tP֋tP֋tP֍_PE{dBt tPփ{t CtPփMu֋P_^[]ËUW}SV51BW֋tP֋tP֋tP֋tP֍_PE{dBt tPփ{t CtPփMu֋P^[_]ËUSVu3W;to=Bth;t^9uZ;t9uPuYY;t9uPƬ˫YY讬裬YY;tD9u@-P肬+Po+PaV=hBt9uP$-YY~PEdBt;t 9uPY9_tG;t 9uPYMuVY_^[]ËUW} t;Et4V0;t(W8jYtV>YuBtVsY^3_]j hpB#U`BFpt"~lt>pluj Y $j #Ye5BlVYYYEEj b"Yuj1B1BUu5B2B]BËV5B2Bu5B1BV5B2B^ËUu u5B1B]BtP5B1BЃ BBtP2B BF!jhB"hB1BuF\Bf3G~~pƆCƆKCFh@Bj D"Yevh1BE>j #"Y}E FluBFlvl~YEw"3Guj Yj YËVW<1B5BЋuNhjYYt:V5B5B1BЅtjVYY 2BN V8Y3W\1B_^ËVujY^jhBz!uF$tPYF,tPݨYF4tPϨYFtCuS~uMhTBudX u't ffGfG`t dC3PPPPPVYP;s,VhYYVXYYLlVPYYlPSP% CTlPWh >t P;r L5B@PVWXŃ%39\tjS\) 9`tjT` hud uh VVVVV3M_^3[ËUB3ʼnEESWphS\PPPhxPhu3M_3[腖sHxPzYYuCHӍxPPtYYltCHphD XHAkjPd8PڐFxQtLlQP lXCHPjPPdw p\tFdV;t6td@PH@td|-tt#PdHturjvxvPjhBjj t<3f!Ex@rh5BxP @Fpu \Fpk VBYt1hlCH輚HYXLFhdBt.p41Bu4ssTkcLYYplY3PPPPP̋UB3ʼnEESV3ۋWh;t;t PYɋDHDžpt;8L0xC&x_hXBWYY+ljp;;DžlBpPW6 u6Y9ptl B~ChLBS3YY;u ;;lDWSxhP~uTlh=xxPtYtt?t G? 39thVVVVV3xSSShxQP;t\~Ht57xP~YYtxPYu!ptC~39pu9tt3M_^3[蛑ËU}VWw$} t3GWjC YYu; 3_^]Wh YYu V͗YWh  YYFu6诗V詗YًBu MTYu66SVt 2vp4YYt#vT66V@3 F8F8>U]jh0Be}vKH39uRNpe3GWh YY؉]܅j Y}Nleu MXYE} thdBu |YYt=Bj YE~lSWqS Fpu?`Bu67hBMYYB (B ,B4Be.]܋u3Gj + YËuj  YSSYYE EnËufpjhj2B3ɅB5B2B%BáBËU3M; Bt @r3]ËB]ËUB3ʼnESVuWV3Y;ljYjYu =B6hBhBW h"BVSf*B0BuhBSV t 3PPPPPfV@Y ]ËVW3(Ct~t WW&YB|ܾB_t ~uPӃB|^[ËUE4B1B]t$j 1BhYj hhB3G}39BujhڸYYu4B9tmjWYE Ej YËUEV4B>uP#YujBY61B^]h@d5D$l$l$+SVWB1E3PeuEEEEdËMd Y__^[]Q̋t O3 0葀O G3 0遀̋US] Vs35BWEE{t N3 8W1Bt3%>uN@ uNhF P`1Bt,F N@Ch5C1B3_[^ÃVWCt6;s!p ~tV1B@N;r7{'YC|_^h@d5D$l$l$+SVWB1E3ʼnEPeuEEEEdËM3tUVuV PվYYt|詃 ;u3虃@;u`3@BF uNSW^^N 3_@[3^]ËU}t'Vu F tVf f&fY^]A @tyt$Ix  QPGYYu ËUVMEM >t} ^]ËUQC @VEt {uE >'} ~0EM nE>u?*u˰?X} Ճ?uE^ËUE@]ËUEAQ]ËUEf@]ËUB3ʼnES] Vu3W}uu:u++(t `p7 F @u^V[ YBttȃ CA$uttȃC@$q3;g C39y B@Dž W @9} DžjugucDžW9~~=]VoYt Dž51BGPPSP5HBЋtuPS5TBYYguuPS5PBYY;-uCSDž*snHHXDž'Dž2Qƅ0Dž t@tGGG@t3҉@t|sځu39} Dž9~ u!u t-RPWS踷0؋9~N뽍E+Ftbt΀90tW0@?If90tu+(u BI8t@u+@t5t ƅ-t ƅ+ tƅ Dž++ u% OtPYYt.u%˰0Ostヽtu~qPjEPPOu69t.EPQYYu#P#YY|2t) Ot߃tmYtrt `pM_^3[fÐA A AK A A A AAUEu荳芧]Ë@]j hB3u3} ;;uTQ39u;t܉} WavYuG @uoW~Yttȃ CBA$u)ttCB@$t²迦M9uu"W=uuuWUEWVE Eu vYËUuuu uh< A]ËUuuu uh`A]ËUuuu uhA]ËUuju uh< A{]ËUuju uh`A\]ËUuju uhA=]jhB3ۉ]jY]j_};= -C}TC9tE@ tPIzYtE|(C P1BC4jYCGE EjYËUSVuF Ȁ3ۀu@t9FW>+~,WPVBYPj. ;uF yF N _Ff^[]ËUVuu V5Y/V|YtF @tVPBYY3^]jh0B3}}j8Y}3u;5 -CC98t^@ tVPVsYY3BUCH t/9UuPJYtE9}utP/Yu E܉}F3uC4VsYYE}EtEjYj hXB39uu V Y'urYuuYEE EurYjYËUQVu VE F Yu N /@t "S3ۨt^NF F F ^] u,q ;t q@;u u YuVYF WF>HN+IN;~WPu + EM F yM ttCB@ tjSSQ>#ƒt%FM3GWEPu |+ E9}t N E%_[^ËU9EuFjP;M u+YYu3]ËE6u 7[ Q tՉ&3@]ËUE]ËUEPEYu߃]Jx A R)9YËU}t]|]ËUSU؃tP詍Yu[]ËUB3ʼnEMEVu W3|\PDž$^0l;u菬茠;t@ @SurPYBttȃ CA$u&ttȃC@$tuTbƅ[t4PzYt?\ttYt\PYYGP@Yu <%k 8GX 3/THdXYcsZkƅ{(3GP辊YtdHk DЉdN*tpFItLut{O6uG84u(8]u ]FE /F<-uqtm]tfF:s{{:{s,{*ЋσdzDGJu苝L{D2ȊЋDL<]cD@b+u.du t ƅs\t؉l0\t؉lxt_XtZLxDžTt&HtdusDžLo.tt\SYYj0[\tYH؉ltdd}sDžLxF@xGrtt\PYY;c4cZt@3f@ƅ{l-u ƅY+u.du t ƅs\te؉l(<sLxt]LptTPYLou88<Kjj <8"I0PEYtk8<SYlTCЙH8f>D[GDd<%u8GuG\tGlD;uwPYt%\tGD;u7tlu?%uNDxnuB4lt\PYYt\lYY0u PVYlu*4u 8[ut% apt `p4[M_3^PËU9EuFjP;M u+YYu3]ËE6u 7J Q8 tՉ&3@]ËUEP0|EYu߃]Jx A R[(YËU}t]]ËUSU؃tP|Yu[]ËUB3ʼnEMEVu W3|`PXDž(^0l ;u赛貏;t@ @SurPYBttȃ CA$u&ttȃC@$t85uzQƅ^t8P{YtK`ttYt`P%YYPFPb{YuPpP<% 8F 3<ƅ/T@d4ƅ]ƅ\ƅjƅsƅ_ƅkƅ{$FPyYtd@k DЉdN*tpFItLut{N6uF84u$HLm3u F82u\dtWitRotMxtHXuAj9ht(lt wts"F8lt{k {ksjPu3ۀkDƅsu ntPct{t`tZY`tl DP@t d6 juAct st{u2@D4 oUcdCg~Dit!njt jd_l-ƅ\3ۃl-u X-C l+ud`tl@udlkddtflXT 0P|PCSX( q `tslPvYu]:ldd`tXl] 0P|PCSX(k  lkddtfXlT 0P|PCSX( j `tllP|uYuT_let lEIdd5Xe0P|PCSX(  `tl-u,X-0P|PCS9  l+u/ddu!d`tqllkddtfXlT 0P|PCSX( `tlPtYutlt`l衺YYTjMX8QPD{HP5LB1BЃudDž@k~ƅ_tlt`lYYct4@tddv`tl=ctLsu | % u4{]3ҋȃBL 3υj4_ PYt`tF!PDž? PP1ffDǃpHHt3;l<^jL;k~ƅ_F>^uFƅ]j EjPdC >]u ]FE /F<-uktg]t`F:s{{:{s&{*ЋσdzDGJu{D2ȊЋD<]oDPU+u.du t ƅs`ty؉l0x`tW؉lxtPXtKDžTxt@tdusjo[tt`SٶYYj0[`t@؉ltdd}sjx_CDFtt`PdYY;rj8c_tD3fDƅ{l-u ƅ\+u.du t ƅs`t؉l$FsxtiptdPnYou*8HLHL_jj LH7HL<PoYtsHLSHLYlTCЙHL@tdt7`t؉ltt`S襴YY\HL؃ىHLsxt7pt2PmYou8}<58D<$tHLC{tfP^FPl<%u8FuF`t3FlP;P` Yt)`tFP;tlu>%Pxn-l~k~3f slt`lAYYDž K̋_ t3f0+t`PYYt`lYY0u X)EYlu*8u 8^ut>ap2 u0-t `p8[M_3^2>ËUVuWVAYtPCu u u@Dtjj YY;tVYPH1Bu <1B3V]CYD0t W蓊Y3_^]jhxB胼]u[ @ x;Cr4  ~ҋ<CD0tS裿YeD0t SYElj ME EË]SYËUVuF ttv8Cf 3YFF^]ËUPB3ʼnEE VuW34809}u3;u58}SCL8$$?tu'Mu׈ 輈|D8 tjjjVCVYD@l39H P41B3;`;t 8?P1B4 3,9E#@?g $3 ǃx8tP4UM`8jEPKPYt:4+M3@;jDSPa C@jSDP= n3PPjMQjDQP C@1B=j,PVEP$4t1B @089,j,PjEP$E 4t1B,08<t<u!33Ƀ @D<t<uRD@Yf;DI8t)j XPDYf;D80E9@8T4D83ɋD8?D49M3+4H;Ms&CA u 0 @F@FrՋH+j(PVHP$4t1BC(8;;+4;El%?49MH@+4jH^;MsCΉ u0j [f @@fƁ@rH+j(PVHP$4t1Bi(8;a+4;EGK4,9Mu,@+4jH^;Ms;,,΃ uj [f@@fƁ@r3VVhU QH++PPVh1B;j(P+P5P$4t1Bt (; <1BD;\,+48;E ?Q(Qu448t1Bt(D8 <1BD8ulDt-j^9Du݂ 0?DY1$D@t48u3$蝂襂 8+0[M_3^5jhB葴]ui N x;CrB ' $vҋ<CD0tS豷YeD0tuu Sn É Ձ ME EË]SYËUU VuWHFw  yBw t;t_+^]ËUSuM7]u#B?u8]tE`pVu u$u}tE`pRExu VSMYY1+W3MQPFMQP7Ft;t+_}tMap^[ËU39Bu'9Eu艀t]9E t]Pu u ]ËUu M6EMA%}tMapËUjuYY]ËUhu貪YY]ËUhu蜪YY]ËUju艪YY]ËUjuvYY]ËUjucYY]ËUjuPYY]ËUju=YY]ËUju*YY]ËUhuYY]ËUhuYY]ËUjuYY]ËUjuةYY]ËUjuũYY]ËUju販YY]ËUhu蜩YY]ËUhu膩YY]ËUhWupYY]ËUhWuZYY]ËUhuDYY]ËUhu.YY]ËUj uYY]ËUj uYY]ËU츀f9E]ËUhuިYYu f}_t]3@]ËUhu踨YYu f}_t]3@]ËUhu蒨YYu f}_t]3@]ËUhulYYu f}_t]3@]ËUCS3Vu E]]]F> t tjVhĬBu u~F> t>=unF> tjhȬBV u ?jhЬBVƱ u  jhܬBV觱 uF> t>ta{^ohuE SuP?t3"BEMH 3ɉHHHM H_^[jhB/33}jY]3u;5 -CC9t[@ uHuAFwFPޫYC4V>YYC@ t PVg>YYF둋}cj8&Y C;tNhC P`1BCu43YC P1BC<}_ ;tg ___OE ZË}jڪYSVWT$D$L$URPQQhQAd5B3ĉD$d%D$0XL$,3p t;T$4t;v.4v\ H {uhC"C4d_^[ËL$At3D$H3U,Uhp pp> ]D$T$UL$)qqq( ]UVWS33333[_^]Ëj33333USVWjRhFRAQ_^[]Ul$RQt$ ]U eWjY3}_9E u^x[lËEtVuEuEu EPEEBzMxE EPjYY^ËUuju ug]ËU Wj3Y3}U_9U uwkuEuEu EBPUUUËUu juh< A]ËUuu uh< Ap]ËUu juhAT]ËUuu uhA7]ËU SW3j3Y}]9]uvj}Vu ;t;uvjkE;w}uEuEBuuPuUE;t5;|"MxEEPS^_[ËUujuu uh< Ay]ËUuuuu uh< Ay]ËU}uui]Vut} w u1uuuu Vh`Ayuu"i^]ËUujuu uq]ËU}uSuPi]S]VuWuu9u u3t} uuuuuu;v*8CSVh`AuGt8"uYt8PWVh`AD>u}ut8"u%tyut"h_^[]ËUujuuu u]ËUujuu uhA&y]ËUuuuu uhAy]ËUVuusgF @t F F u VƙYFvvVYP. FF uQVѿYt0VſYt$WV踿V<C訿YY_B@$=Cu5jhXA0B3A;u Cp<1BEu +tyt tNt(H5C1BE;toV1BCa5C1BE;tNV1BC@5C1BE;t-V1BC5C1BE;t V1BCE}uE8]j/YÃt$t t~~ocqj hXB3}}؋] KtjY+t"+t+tY+uC~}؅uTCCUw\ YpQÃt2t!Htnb빾CCCC CCEP1BE3}9EujN[9EtPY3Et tuO`MԉG`u>OdMGdu, BM܋ B B9M}Mk W\DEZ|EuwdSUY]}؃}tj臞YSUYt tuEԉG`uEЉGd3ΟËUEC]ËUQV5C1BEu*mj^0(a WhB0BEulj^0`hBP$1Bu(l5<1BP|lY`PllYLSV1B={WhC0B;[t uX0Bjuօupl el3_^ËUB3ʼnE} ESVW}xth|QuuP̬ub<1BzuxVVuux襬ptXFVP˙YYtHptSuuxjtjV蔙3YY;u!9ttS8%YM_^3[ÍNQSVP u9ttS%Y3WWWWW^} uH50B3PPuu֋؅tjSYYtSPuuօu7$'Yp} fxjxPE Pu0BPumYYt/P41BCu=1B׉VףCE3_^[ËVjj ٗYYV1BCCujX^Ã&3^j hxBۛSeuYEE ESËUuYH]ËV`B`BW;stЃ;r_^ËVhBhBW;stЃ;r_^ËVW30B1B0B(r_^̋UMMZf9t3]ËA<8PEu3ҹ f9H‹]̋UEH<ASVq3WDt} H ;r X;r B(;r3_^[]̋UjhBh@dPSVWB1E3PEdeEh@*tTE-@Ph@Pt:@$ЃEMd Y_^[]ËE3ҁ9‹ËeE3Md Y_^[]ËUE8csmu*xu$@= t=!t="t=@u3]h=u Fd.=u Fd=u Fd=uFdvdjY~d`QY^`[_^]ËUcsm9Eu u PYY]3]ËVW39=Cup5Cu5B< wt.t$<"u 3ɅP¨YtFF< wFu_^Ã=CupV5BW3u<=tGV&YtujGWYY=Btˋ5BS3V>=YXt"jSYYt?VSP uG>u5B%B'C3Y[_^5B[%B3PPPPP(X̋UEB]ËUQMS3VU 9Et ]EE>"u39E"FE<tBU PFdYt} t M E FU Mt2}u t utBe>< t< uFN>}t EE3C3FA>\t>"u&u}t F8"u 339EEtIt\BuU tU}u< tK< tGt=Pt#Yt M E FM E  \YtFU FVtBU ME^[t ËU S3VW9CunhCVSC0BC5B;tE8uuUEPSS} E =?sJMsB;r6PY;t)UEPWV}E HB5B3_^[ËU SV0B3;u3wf93tf90uf90uW=1BVVV+V@PSVVE׉E;t8P膏YE;t*VVuPuSVVׅu ueYuS0BE S0B3_^[ËUBeeSWN@;t t УBeVEPx1Bu3u0B3 2B30B3EP0BE3E3;uO@u G 5B։5B^_[Ã%CËUj ju ]ËUu j ju]ËU]U]Uj ju' ]ËUu j ju9]ËUES3VW9]u;u9] u3_^[];t} ;wG`j^0ET9]uҋU;uك}u+ B:t"Ou+A:tOtMu9]u;u}uM jP\Xx_j"Y̋T$L$u<:u. t&:au% t:Au t:au uҋ3Ðt:u ttf:u t:au t눋U=CV5Bu3cWu95BtS[uJ5Bt@}t:uY'P֍Y;v<8=uWuP]Z tu3_^]ËD8USV3;u^j^0RCE;t9] w9] u;tWu3Y;t/WN@Y9] t ;E vj"X_^[]Wu uZ u3SSSSSQ̋UVW3;u^j^0ROE7;t09u tSu Y;tKSΌpjV3 ;u] ][_^]SVPNJ u E;t03WWWWW)QjhB讏39Euo]lQ3?VuˌYY;tj0YeuYEE E菏jYj hB4jY3ۉ]3};;u\j^0PujM ;t 9]w ;u 9]u3@3;t;tumY;t0V舋Y@9]t!;Ev E"Vuu 蓉 ;u]EE̎SSSSSOjEYj hBgj!Y3u3};;u\j^0Put7E ;t039u;tuY;tS̊pjV 3;u[ [ESVPň ;u!E ;t0}EEWWWWWOjnYËULB3ʼnES3VuW]ԉ]]]؉]܉u]9^F9u PF0hPESPj辈jWEjWEjWE݈jhEΈ$E9]9]v;n9]e9]\Eԉ3M܈@=|EPv1B2}(EEЃ~.8]t)E:t x M G;~8XuڋESSvPhu܉EjSv MESvWQW@PhvS$ESvWPEW@PhvS$bE}3҃}fU؉Mč_ZMMȈ~U8]tPMM:tDI҉M;(HMEfM̋M 9M~MM8YuhQPjPWEjQP$;tKP1Bu@-Pt+Pa+PSHEEEĉEEȉEЉuYouuuu3ۃCˋ;tP1BdžBdž@BdžBdž3M_^3[ PhȋAl;Bt`BQpueËUEu]] hȋAl;Bt`BQpue@gȋAl;Bt`BQpube@gȋAl;Bt`BQpuSEjP, Pj?SEjP Pj@SEjP PjASEjPP PjBSEjP PjCSEjP Pj(SEjP Pj)SEjPP PjuEjPl Pj uEjPS PhuEjP7 Ph uEjP EPPj1SEjP Pj2SEjP Pj3SEjP Pj4SEjPP Pj5SEjP Pj6SEjP Pj7SEjPk Pj*SEjPTP Pj+SEjP: Pj,SEjP# Pj-SEjP Pj.SEjPP Pj/SEjP Pj0SEjP PjDSEjP PjESEjPP PjFSEjP| PjGSEjPe PjHSEjPN PjISEjP7P PjJSEjP PjKSEjP PjLSEjP PjMSEjPP PjNSEjP PjOSjEP Pj8SEjP $Pj9SEjPyP (Pj:SEjP_ ,Pj;SEjPH 0PjSEjP <Pj?SEjP @Pj@SEjP DPjASEjPP HPjBSEjP LPjCSEjP PPj(SEjPs TPj)Sj[ESPZP XPjuESP? \Pj uESP'`Vhu ESP < _^[ËUVucvvv vvv6v v$v(v,v0v4vv8v<@v@yvDqvHivLavPYvTQvXIv\Av`9vd1vh)vl!vpvtvx v|@zodYN@@5* @ wla V$K(@,50*48< @DH@LPTX\`^]ËUSVu~ WhBtBhdjuYYu3@IƋRtWGWUYYLJ;t P1B3_^[]28tSV<0|<9 ,0A8u^[<;uX@8uUVutY;BtPYF;BtPYF;BtPYF0;BtPYv4;5 BtVY^]ËUSVuW3u}9~u9~u}}BejPjtYY;u3@jYj)t3YE;u SYыu89~jtYE;u3FSuYYD8v>SjVEjPCPjVEjP CPjVEjP C0PjVEjP}P C4PjVEjPf tS{YkC0|9 0@8u>;uNF>uBBCBCBC0 B}C4Mu3@Mt=1BtP׋tPׅuYYEE3_^[28tSV<0|<9 ,0A8u^[<;uX@8uUVuF ;BtPEYF;BtP3YF;BtP!YF;BtPYF;BtPYF ;BtPYF$;BtPYF8;BtPYF<;BtPYF@;BtPYFD;BtPYFH; BtPYvL;5$BtVmY^]ËUSVuW3}u}9~u9~u}}BjPjqqYY;u3@jqYE;u SY89~4jpYE;uSuY҉8v8C PjVEjPCPjVEjP CPjVEjP CPjVEjPtP CPjVEjP] C PjPVEjPI C$PjQVEjP5 C(PjVEjP!P C)PjVjEP C*PjTVEjP C+PjUVEjP C,PjVVEjPP C-PjWVEjP C.PjRVEjP C/PjSVEjP C8PjVEjP{P CujYBE IuKIKI0K0@4MC43@39}tM;tP1B;t#P1Bu5*YYEE3_^[PHl; Bt `BHpuZN(Bá0BPȋAl;Bt`BQpu,N3ËUMVWt} u?j^03AUu>tFOut+BtOuu?j"Y3_^]UV3PPPPPPPPU I t $uI t $s ^ËU3S3@9] |FVWt>E Ù+‹E<7E0fYYu M9 yNu ^;] ~_^3Ʌ[]ÁN0BFFËUQtP>tKhBVYYt:hBVYYujEPh w0Bt)EVYEjEPh w0Bu3Ã}u1BËU3fMf;Bt r3@]3]ËV3 AB<w A<wtЊ uڋ^3 BA|Z~aw@ËU|B3ʼnEVW}CN׋jxEP%PW0Bu !@AEPʼYYuWYtЃM_3^aUQVjEP%h P0Bu3);ut!}tE 0WVkY;_t3@^ËU|B3ʼnESVW}@M׍0BjxEPF%PWӅu f3@cEPvĻYYjxEPF%PWӅtEP6萻YYu N~RFuOF t,PEP6J u6N~jY;F u!~VuWYt V~N#;jxEPF%PWӅEP6Y3Yu0NF9^t FH9^ t<6LjY;F u/Vj9^u49^ t/EP6蜺YYuVSYYtN9^u~FЃM_^3[5U|B3ʼnEVW}pK׍jxEPF%PW0Bu!F@\EP6YYu 9Fu1Vj~u0~ t*EP6ֹYYuVP?YYt N~~FЃM_3^uv$iYj@hAF0BFuf6hv@Fhf@~YYFtjXjhAF 0BFt tuf6h@YFtjXjhAF 0BFufËUSVWIEu O@_t8tSjhмB gt[8tVt8t SWj@hȺB tft;t RIt0;t+SgYj@hAG0BGugG0BGGuƃ#uP1Bjw0BE tfOffOfHfp]th50Bf9u hBj@Sd t3PPPPP^+j@Shwօt,j@C@Phwօtj jSu݀3@3_^[]Åt 3ɅD  +t 3ɅD ff;t1+t3҅DuFI+t3ɅD 3Ë;tg+t3҅DuPFQ+t3҅Du5FQ+t3҅DuFI+t3ɅD 3ËVWN;tv+t3DqB+t3DqB+t3DqB+t 3t3A;BtwB+t3DkqB+t3DLqB+t3D-qB+t 3t3A;BtwB+t3Dq B +t3Dq B +t3Dq B +t 3t3A ;B twB +t3DYq B +t3D:qB+t3DqB+t 3t3A;BtwB+t3DqB+t3DqB+t3DqB+t 3t3mA;BtwB+t3DGqB+t3D(qB+t3D qB+t 3t3A;BtwB+t3DqB+t3DqB+t3DqB+t 3t3[A;BtwB+t3D5qB+t3DqB+t3DqB+t 3t3 ׃$AA;BtxBq+t3DqB+t3DfqB+t3DGqB+t 3t3"A;BtwB+t3DqB+t3DqB+t3DqB+t 3t3A;BtwB+t3DsqB+t3DTqB+t3D5qB+t 3t3A;BtwB+t3DqB+t3DqB+t3DqB+t 3t3A;BtwB+t3DaqB+t3DBqB+t3D#qB+t 3t3A;BtwB+t3DqB+t3DqB+t3DqB+t 3t3uyA;BtiB+t3DuWqB+t3Du<qB+t3Du!AJ+t3ɅD 3u3_^ËA;BtkB+t3DuqB+t3DuqB+t3DuqB+t 3t3uA;BtxBq+t3D]qB+t3D>qB+t3DqB+t 3t3A;BtwB+t3DqB+t3DqB+t3DqB+t 3t3qA;BtwB+t3DKqB+t3D,qB+t3D qB+t 3t3A;BtwB+t3DqB+t3DqB+t3DqB+t 3t3_A;BtwB+t3D9qB+t3DqB+t3DqB+t 3t3A;BtwB+t3DqB+t3DqB+t3DrqB+t 3t3MAJ+=3ɅD -A;BtwB+t3DqB+t3DqB+t3DqB+t 3t3A;BtxBq+t3D}qB+t3D^qB+t3D?qB+t 3t3A;BtwB+t3DqB+t3DqB+t3DqB+t 3t3A;BtwB+t3DkqB+t3DLqB+t3D-qB+t 3t3A;BtwB+t3DqB+t3DqB+t3DqB+t 3t3A;BtwB+t3DYqB+t3D:qB+t3DqB+t 3t3A;BtwB+t3DqB+t3DqB+t3DqB+t 3t3mfAf;B]A;BtxBq+t3D3qB+t3DqB+t3DqB+t 3t3A;BtwB+t3DqB+t3DqB+t3DlqB+t 3t3GA;BtwB+t3D!qB+t3DqB+t3DqB+t 3t3A;BtwB+t3DqB+t3DyqB+t3DZqB+t 3t35A;BtwB+t3DqB+t3DqB+t3DqB+t 3t3A;BtwB+t3DqB+t3DgqB+t3DHqB+t 3t3#A;BtwB+t3DqB+t3DqB+t3DqB+t 3t3qB+t3D{qB+3DVA AAAߛAAbA5AZAA٢AAњApAPA#AHAAǡAAA^A>AA6AԜAAAA[A+AAUVW}ǃHHlH!HM ESj Z20;1tt0+t3ۅÍt+pY+t3ۅÍt pY+t3ۅÍtpY+t3ۅÍt3p;qtvpY+t3ۅÍtpY+t3ۅÍtpY+t3ۅÍtepY+t3ۅÍt3Bp;qtvpY+t3ۅÍtp Y +t3ۅÍtp Y +t3ۅÍtp Y +t3ۅÍt3p ;q tvp Y +t3ۅÍtp Y +t3ۅÍttpY+t3ۅÍtUpY+t3ۅÍt32p;qtvYp+t3ۅÍt pY+t3ۅÍtpY+t3ۅÍtpY+t3ۅÍt3p;qtvpY+t3ۅÍtpY+t3ۅÍtdpY+t3ۅÍtEpY+t3ۅÍt3"p;qtvpY+t3ۅÍtpY+t3ۅÍtpY+t3ۅÍtpY+t3ۅÍt3p;qtjpY+t3ۅÍtuwpY+t3ۅÍtu\pY+t3ۅÍtuApY+t3ۅÍt3u"+;σ$RAP;QtiQ+t3҅tupQ+t3҅tupQ+t3҅tupQ+t3҅t3uP;QtuQ+t3҅t\pQ+t3҅t=pQ+t3҅tpQ+t3҅t3P;QtuQ+t3҅tpQ+t3҅tpQ+t3҅tpQ+t3҅t3tP;QtuQ+t3҅tNpQ+t3҅t/pQ+t3҅tpQ+t3҅t3P;QtvQp+t3҅tpQ+t3҅tpQ+t3҅tpQ+t3҅t3eP;QtuQ+t3҅t?pQ+t3҅t pQ+t3҅tpQ+t3҅t3P;QtmQ+t3҅Tu6pQ+t3҅TupQ+t3҅Tt@I+t3ɅD 3u3[ P;QtuQ+t3҅t5pQ+t3҅tpQ+t3҅tpQ+t3҅t3P;QtuQ+t3҅tpQ+t3҅tpQ+t3҅tppQ+t3҅t3MP;QtuQ+t3҅t'pQ+t3҅tpQ+t3҅tpQ+t3҅t3P;QtuQ+t3҅tpQ+t3҅tpQ+t3҅tbpQ+t3҅t3?P;QtuQ+t3҅tpQ+t3҅tpQ+t3҅tpQ+t3҅t3P;QtvQp+t3҅tpQ+t3҅trpQ+t3҅tSpQ+t3҅t30P;QtuQ+t3҅t pQ+t3҅tpQ+t3҅tpQ+t3҅t3I@+83ɅD (P;QtuQ+t3҅tcpQ+t3҅tDpQ+t3҅t%pQ+t3҅t3P;QtuQ+t3҅tpQ+t3҅tpQ+t3҅tpQ+t3҅t3{P;QtuQ+t3҅tUpQ+t3҅t6pQ+t3҅tpQ+t3҅t3P;QtuQ+t3҅tpQ+t3҅tpQ+t3҅tpQ+t3҅t3mP;QtuQ+t3҅tGpQ+t3҅t(pQ+t3҅t pQ+t3҅t3P;QtvQp+t3҅tQp+t3҅tQp+t3҅tQp+t3҅t3^P;QtuQ+t3҅t8pQ+t3҅tpQ+t3҅tpQ+t3҅t3fPf;QfQp+3҅TP;QtvQp+t3҅tzpQ+t3҅t[pQ+t3҅t<pQ+t3҅t3P;QtuQ+t3҅tpQ+t3҅tpQ+t3҅tpQ+t3҅t3P;QtuQ+t3҅tlpQ+t3҅tMpQ+t3҅t.pQ+t3҅t3 P;QtuQ+t3҅tpQ+t3҅tpQ+t3҅tpQ+t3҅t3P;QtvQp+t3҅t]pQ+t3҅t>pQ+t3҅tpQ+t3҅t3P;QtuQ+t3҅tpQ+t3҅tpQ+t3҅tpQ+t3҅t3uP;QtuQ+t3҅tOpQ+t3҅t0pQ+t3҅tpQ+t3҅t3pQ+3҅TcMu +t3҅DAV+t3҅DAV+t3҅DAN+3ɅD Mu +t3҅DudAV+t3҅DuIAN뤋Mu +t3҅Du ANxEM  g3_^]ËAcA5AA.AܳAAAATA&AAAͲAAAAFAAAAAAzAA8A AAAAAkAUV3PPPPPPPPU I t $u t $sF ^ËU$B3ʼnEESEE VWE=e=CEu}hB0B؅=$1BhBSׅ51BPhBSCPhBSCPhнBSCP֣CthBSP֣CCM51B;tG9 Ct?P5C֋؅t,t(ׅtMQj MQjPӅtEu M 3C;Et)Pօt"ЉEtC;EtPօtuЉE5Cօtuuuu3M_^3[苾ËUVuWt} u< j^0:_^]ËMu3f݋f:tOut+f ftOu3uf j"Y몋UUS]VWuu9U u3_^[]Åt} u j^0݅u3fЋMu3fԋƒu+fft'Ou"+ fftOtKuu3fy3uM jPfDJXdf j"YjUVuWt} u j^0_^]ËEufߋ+f ftOu3uf j"Y뼋UMx~ uB]áB B] ]ËUEB]ËUS]u3}uA >Vu u W;vuMCE@uJU+2Ar Zw Ar Zw Kt ftf;t+7SVSuhPvSuo}tE`p}tMap_^[ËU=BV}u%"M t߾9uv_u+Ar Zw Ar Zw Mt ftf;t+juu u,^]ËUS39]u3AVWu{1pjVN ;tuVW< u SSSSS3_^[]ËUQQSV5B3ۉ]W;tP=(1BSSjPSS׉E;tAjP4YYE;t0uPj6SSׅt*ESPe.YYx;u3_^[Ã9]tugYV5BW3uf=tGV0YtFfuSjGWl4YYBue5B5V]0f>=Yxt"jW94YYtAVWP uI4~f>u5Bǿ%B#C3Y[_^5B衿%B3PPPPPn̋V0B3;u3^f9tf9uf9uS+ƍXWSP3Yu V0B_[^SVW茳 UEfU f;tfuf9t3]ËUSuM衻M3;u8]tE`p39]u&8]tE`p9] tV;v?E9XuuQu uR6pQu Quhp EPR ;u8]tE`p8]tMap^[ËUjuu u ]ËUS39]u3>VWu-3pVfYY;tuVW@1 u SSSSS3_^[]ËUQQSV3W=Bu;te1BVVVVjPVVӉE;tTjP1YYE;tCVVuPj7VVӅt6EVP.YYy9ut uLYu;u3_^[Ãu+YUMtj3X;E sT 3]M VuF3wVj5B1Bu2=CtV)YuҋEt 3 Mt ^]ËUM S3;vj3X;Es 3AMVW9]t uCYVu YYt;s+VjS _^[]ËUEuo 3]Åx;CrT Qދȃ CD@]j hBM4339u;u  _Uj [Pj`YYu>Pm@YE PVu&PBEPW@E E 4 PjkYYËUEPu u4Q ]ËUEPu u8Q ]ËUE Pju Q ]ËUEPu u$Q ]ËUE Pju Q ]ËU BU39 C#щC]áB39CËUSVu 3W};u;v E;t3{E;tvj^0VuMԶE9XfEf;v6;t;v WSVű ?*48]tMap_^[;t&;w j"^08]tE`pyE;t8]t} ^]ËUQC @VEt {uE >'} ~0EM nE>u?*u˰?X} Ճ?uE^ËUB3ʼnES] Vu3W}u~u+t `pa F @u^V7IYBttȃ CA$uttȃC@$q3;g C9 B@Dž GW @} DžjugucDžW9~~=]V2$Yt Dž51BGPPSP5HBЋtuPS5TBYYguuPS5PBYY;-uCS*stHH[Dž'Dž5Qƅ0Dž t@tGGG@t3҉@t|s؃ځu3} Dž9~ u!u t-RPWS}0؋9~N뽍E+Ftct΀90tX0@@If8tu+(u BI8t@u+@t5t ƅ-t ƅ+ tƅ Dž++ u% OtPYYt.u%˰0Otヽtu~qPjEPPu69t.EPsYYu#PEYY|2t) Ot߃t菫Yt3dt t `pM_^3[覤ÍIAA+AAAA%AWAUS]VuFt} ^]ËUQC @VEt {uE >'} ~0EM nE>u?*u˰?X} Ճ?uE^ËUEAQ]ËUB3ʼnEES] VuWu3dH`LX[hD;u+t `pRF @u^V;YBttȃ CA$uttȃC@$q;i(u93(lxTPpEG|C8Lp`Xà tIt5t%HHt *9u@j hPW轤h HQ|uL9$d;l~lŴ9j*V3Ÿ3҉p; p pk ˍDЉp *9u@WW6I" Ej[+PD=P6\L ;݃ CD$2M0 CD$M ʀ}u!Etȃ CD M#;u~EtxuH1BjuEjPuE%Pu 81B;u4<1BPȃ CD 6Y6 CEVSSSSSAjhBM3}39};u~{r}uj@u uEPE|EEu;t<6039}t+9}tEMCD u]YËEjjhB3}3u;;uj^0Y39};t9}tE%@tʉ}uuu uEPEEE;t3u9}t(9}t CD 6YËUQMjEPuuu utËEËUjuuuuu ]ËUSuM/39]u8]tE`p3E9Xu&uu u 8]Map9]u&zw8]tE`pfW} ;u&LI8]tE`p7VM MEDMte9]uD]fU:u]Tf EfMf;pr f;pwfp1f;pr+f;pw%fpU At ʉMfuGDMtG9]u]XM:tf GMf;Hr f;HwfH1f;Hr+f;Hw%fHU At ʉMfMf;u!f;t 9]8]tE`p3^_[H8]tMapUjuu u]ËU}u3WuM}u'uu u۲ }MapS]u#gd8]tE`p_Vu u$<9}tE`p2 MCD8t=}u 3D8tY}tE`p3^[_Êu3 f CFD:t }u3Mtf Ff;uft}pH}tMap닋Ujuu u]USVWUjjhBu ]_^[]ËL$At2D$H3E{UhP(RP$R]D$T$SVWD$UPjhBd5B3PD$dD$(Xp t:|$,t;t$,v-4v L$ H |uhDID_뷋L$d _^[3d yBuQ R 9QuSQ@B SQ@BL$ KCk UQPXY]Y[ËUUVujXEU;u }S3;|;5Cr ƺNW<CL0u hwN];9] t5D0$EHjYtHuШtU] ]zШu<"6M;rEuY]u njjjusD(T,AHtzI tr}tlM} CED tPL% tE}t?@M}ED% u%L& t}t@MED& jMQuP41BxMm;MdMD}t ; u ]EÉ]E;M<< t CAMEH;sA8 u M uEmEjEPjEP41Bu <1BuE}t?DHt} t ML%;]u} tjjju} t CE9EFD@uC+E}EK xC3@;]rK @PBtPBu *zA;u@D1Ht%CT1| T%Cu T&C+ؙjRPuE+]Pu Sujh(1BEu4<1BP:YME;E tP|YEEE3;EL0ƅt f; u ]EÉ]E;E tf EM;sHf9 u Ej MEjEPjEP41Bu <1Bu[}tUDHt(f} tj XfMLML%D& *;]uf} tjjjuf} t j XfE9Et@u ff+]]<1Bj^;u 0jmZe\3_[^jhB]u^ C x;Cr7  ҋ<CD0tƸ;E@u SYeD0tuu S E ME EË]SY OtjaQYPBtjh@j腲 j`̋UM PBU#U # ʉ PB]ËU B3ʼnEE@SVW=0B3VVuEu ׋ȉM;u3~Ej3Xr9D =w؃;tPyY;t 3;tuSuu ׅt VV9uuVVuujSVu1BS莊Yƍe_^[M3urËUuMuuEuuu P}tMapËU}u]uj5B0B]j$YËUuMuE MUTu}tMA#E3t3@}tMapËUjjuu ]ËUjjuj]ËUjjuu h]ËUjjujP]ËUjjuu 7]ËUjjuj]ËUjhuu ]ËUjhuj]ËUjhuu ]ËUjhuj]ËUjhuu ]ËUjhujz]ËUjhWuu ^]ËUjhWujC]ËUjjuu *]ËUjjuj]ËUjjuu ]ËUjjuj]ËUjjuu ]ËUjjuj]ËUu MrEt*xu!jjuu y}tMapÀ}tE`p3ËUjuYY]ËU9ur9w}v1ٹE"t MMEt e]MuE_^tMEtEM؃ىEM}tẼ`pEU[ËU3Puu u9BuhBP=]ËUjuu uu ]ËU=Bjuu uuhBj]ËUjuu uu]ËUQeVEPu uT u9Et貸t 詸M^ËU}SVWuMn]u'sp}tE`pu tҿ9}v!;8}tE`p]ExuuVS }tAMap8+3MQP]MQPNFMtt;t+3_^[ËU39Bu09Eu褷衫]9E t}w]<Puu u]ËUSV3;uVj^0TW9]w:j^08u39]A9Mw j"ۋM "wɋ9]t 3C-N؋3u vW0ACt;]r;]rIIG;r3_^[] U} Eu yjj juuM ]ËU3} u9E}@M PuEu]ËUM Ejuu]ËU 3V;u1j^0/9Mv39M@9Ew j"ӋE"wE S]M9Mt-wE؉uM u uPS]؋ƒ vW0MFAMut;MrȋM[;Mr脵j"YLNEN@E;r3^U3} u9E  |9Es3@W}Puuu u_]ËUW}juuu u_]ËUVu~ Vu YYE~ Pu YYttPuVuu u01B+ujX 3D^]ËUMI8t@uIE+H]ËU,B3ʼnEESVW}ىE܉U~?I8t@u+}u~*΋I8t@u+u}3|e}u@Et;ujX3C;~;~jEPu1Bt~-}r}Et؊PtыM܊ :r:v8u뺅~4}r}EtPtM :r:u8uw5(1BjjWuj u֋؉]ԅ~@j3Xr4D;w/wątP-mYt Ee}Suuujuօjjuuj u֋؅tx~?j3Xr3D;wvątPlYt 3t1SWuujuօtSWuuu u01BEWn}Yue}EYe_^[M3KeËUuMfhu$Uu Muuuu b}tMapËUSuM#hU3;u8]tE`p39]u&蚱藥8]tE`p9] tV;vebKEH;uEPRu u?pERu RuhQP ;u8]tE`p8]tMap^[ËU=Bu]juu u]jhBsp u39E u虰薤Jdp|,>L`n~"6F\v "0@4&xhXJ<* zn^L0 F@B@,@`A~cApB&B@{O]CreateDirectory (%s)MapViewOfFile (%s)CreateFileMapping (%s)CreateFile (%s)inflateEnd returns %dinflate returns %dinflateInit2 returns %d1.2.5\message_boxdirectory_createdfile_createdget_root_hkeyget_special_folder_pathcreate_shortcutCSIDL_FONTSCSIDL_PROGRAMSCSIDL_COMMON_PROGRAMSCSIDL_STARTUPCSIDL_COMMON_STARTUPCSIDL_DESKTOPDIRECTORYCSIDL_COMMON_DESKTOPDIRECTORYCSIDL_APPDATACSIDL_STARTMENUCSIDL_COMMON_STARTMENULib\site-packages\DATAScripts\SCRIPTSHEADERSPLATLIBPURELIBInstallation failed.no such folder (%s)unknown CSIDL (%s)sSHGetSpecialFolderPathAfunction not availableshell32.dllFailed to create shortcut '%s' - error 0x%xSetWorkingDirectory() error 0x%xSetIconLocation() error 0x%xSetArguments() error 0x%xSetDescription() failed, error 0x%xSetPath() failed, error 0x%xQueryInterface(IPersistFile) error 0x%xCoCreateInstance failed, error 0x%xsss|sssiCoInitialize failed, error 0x%xissiSOFTWARE\Python\PythonCore\%d.%d\InstallPathPYTHONHOME=%sOSErrorValueErrorbuiltinsPyLong_FromVoidPtrPyErr_FormatPyArg_ParseTuplePy_BuildValuePyCFunction_NewPyObject_GetAttrStringPyObject_SetAttrStringPyImport_ImportModuleRunning Script...Could not open postinstall-script %s Py_FinalizePyRun_SimpleStringPySys_SetArgvPy_Initialize*** Could not load Python ***PyErr_PrintPy_SetProgramNameOut of memory!Running the pre-installation script failed Can't load Python for pre-install script (%d)Runtime Error100 Made Dir: %s .py200 File Copy: %s Error200 File Overwrite: %s Could not create temporary file~duInvalid cfgdata magic number (see bdist_wininst.py)Times RomanSetup %sCould not register window classSetup.exeSetupWindowClassThis Wizard will install %s on your computer. Click Next to continue or Cancel to exit the Setup Wizard.Software\Python\PythonCore\%s\InstallPathPython Version %s (found in registry)Software\Python\PythonCoreDon't know Python's installation typeStrangepython%d%d.dllPython Version %d.%dCannot installNo Python installation found in the registry.Python version %s required, which was not found in the registry.Python %s is required for this package. Select installation to use:UninstallString"%s\Remove%s.exe" -u "%s\%s-wininst.log"wb%s\Remove%s.exe040 Reg DB Value: [%s\%s]%s=%s Could not set key valueDisplayNamePython %d.%d %s020 Reg DB Key: [%s]%s Could not create key%s-py%d.%d999 Root Key: %s Source: %s *** Installation started %Y/%m/%d %H:%M *** a%s\%s-wininst.logCould not open keyYou do not seem to have sufficient access rights on this machine to install this softwareHKEY_CURRENT_USERHKEY_LOCAL_MACHINE*** Installation finished %Y/%m/%d %H:%M *** Postinstall script finished. Click the Finish button to exit the Setup wizard.*** run_installscript: internal error 0x%X *** 300 Run Script: [%s]%s \Scripts\-installPlease wait while running postinstall script...IsUserAnAdminSetupFailed to start elevated process (ShellExecute returned %d)runasif exist "%s" goto Repeat del "%s" :Repeat w%s.batCould not delete keyCould not delete valueuninstall-script*** Could not run installation script ***-removeUninstall Finished!%d files and %d directories removed%d files and %d directories removed %d files or directories could not be removed%d Run Script: %s%d Reg DB Value: %s%d Reg DB Key: %s%d File Overwrite: %s%d File Copy: %s%d Made Dir: %sYou do not seem to have sufficient access rights on this machine to uninstall this software%d Root Key: %sOut of memoryAre you sure you want to remove this package from your computer?Please confirmcould not open logfiler2. arg is not -u-uWrong number of args%s%cimport py_compile; py_compile.compile (r'%s')Py_OptimizeFlagPySys_GetObjectCompiling files to .pyo...Loading python...Compiling files to .pyc...Failed to unzip installation filesInstalling files...Running pre-installation scriptReady to installClick Next to begin the installation of %s. If you want to review or change any of your installation settings, click Back. Click Cancel to exit the wizard.Bad user_access_control valueoopsnoneautoforceuser_access_controlinstall_scriptmetadatanametarget_versiontarget_optimizetarget_compilebuild_infoinfotitleSetup program invalid or damagedThis program is normally started by windowsRemoveCould not open archive0w,aQ mjp5c飕d2yҗ+L |~-d jHqA}mQDžӃVlkdzbeO\lcc=  n;^iLA`rqgjm Zjz  ' }Dңhi]Wbgeq6lknv+ӉZzJgo߹ホCՎ`~ѡ8ROggW?K6H+ L J6`zA`Ugn1yiFafo%6hRw G "/&U;( Z+j\1е,[d&c윣ju m ?6grWJz+{8 Ғ |! ӆBhn[&wowGZpj;f\ eibkaElx TN³9a&g`MGiIwn>JjѮZf @;7SŞϲG0򽽊º0S$6к)WTg#.zfJah]+o*7 Z-A1b62S-+ldEw}ZVǖAOIъ OM~-QJ#SpxAaU׮.7׵Y-6]]wll?AԞZ͢$ Faw$eڪ]]FD(koipvk19Z* ,  m86F߲]qTp0ek*1u4yީ%8S1bSWĔՖk1**ykʬHpo].*F6fcTT"eM©g0&):{ϼkZ> 8$,52F*sw1pHkQ6Fzw]cN̵J #pAF]#l8?1(BOgT~yUbL8^#ܖTZ1ObbSyOIV~P-{b-R4٠~^eGnHl/Su6: #jT$+e?yHf'*b#ٽЧ ?&~?$pi;FBzw[keZ~7 Sv8H 3?r$7jnԄYFܨ |OQ;օ U d S - =G\ p&Gw)` /a߫i5&LsZ<#0zMzFM8,9; :R:(q-v,.7/pXqYs3r%w+OQvrtEux܉~OK }!b|tyBxʠz{.lD~m8onlk[wjR1h58ib?mcf+aQ`צedd"fig HINSKyuJcO NZLݘMFGN@E$DD2AsX@*IBCPhTg3U>uW ַVS:R|P~Q9ZS [fYX4])\ZEo^m/_5qϱ٥s\ۼqދ!K7 kfֶԁ-b3Πjp]$^'~*I@VW<âM˟ŏ{ tDCm-@wm.B+(铜>Td"ŀǼϭ~8y$owJ1}05_K^ iϏ은BI#ƈdX܁T̓cQ: rՆ⩗ fn|xK)o%ƭ/3vUuA?)C:|sĵ@͂ Ͳ;bIUeh"׻_HS1޼^Z4eg Wb27_k%8ם(ŊO}do׸Jj3wVcXWP0qB{߭gCru&op-?'Bs ưGz>2[Ȏg; i8P/ _Y=чe:ZO?(3wwXR @hQ+ğH*0"ZOWoI}@mNП5+#*'G| AH=XX?#1jvʬ`p^Y<L~i/{kHwâ hs)aLoD~Pf7VM'(@ﰤ ہg9x+n&;f?/X)T`D1 ߨMߒ.FgTp'Hq/L0UEc?kǃh6ry7]P\@TN%s7@'>$!AxUʰ\3;Y^U~PGl!;b F2ȂpԞ(Q_V:1X: n3 m:@/)IJNv"2x+ٗ Kx.HҥfAj^y9*O]#kM`~b_R 7zFh!1߈Vc0a"j6nS Nr)Υ{t*F8#vufz`rs"WG9^EMvc΍&DAdQy/4Aڱ&S֚E biLQ<6'5P..T&q]w4.6IE? v\[YI>U!lDa>Ԫ΋ϩ7~8A]&nv|oY yKiw\¹9~$ 66nQfq>,o,IӔ 渱{I .H>C-Yn馑gQz tafw0a, Qmpjc5dۈ2yܸو L+~|-dj qHA}mԵQӅlVdkbze\Ocl=c ;n Li^`Agqr<KG k5Blۻ֬@2lE\u ϫ=Y&0Q:Qa!V#Ϻ(_ ٲ $/o|XhLaf-=vAq *q3xɢ4 j m=-dlc\kkQlabe0bNl{WeP|b-I|LeMaX:QΣtԻ0JߥA=ؕפmCij4ngF`D-s3 L_ |Pq<'A  Wh% of a^)ɘИ"רY=. \;l  tҚG9w&sc d; mj>zjZ '}DhibW]egl6qnkv+zZgJoC`֣ѓ~8ORѻgWg?H6K +گ L6JAz``ègU1nFiyaf%oҠRh6 w G"U&/ź; (+Z\j1,ٞ[ޮd°c&ujm 6?rgWJz{+ 8Ҏվ | !Bhݳڃn&[owGwZjpf; \ebiaklE x NT9§g&a`IiGM>nwۮjJZ@ f7;𩼮S޻G0齽ʺŠS0$6TW)#gfz.aJ]h*o+ 7 Z-1A26b+-Sdl}wEVZOAي»IˬO ~M-JQS#xpaA.U7Y-۩6˚w]]llA?Z$㧲F waރ$Ųe]]DFok(vpi91k *Z  ,8mF6]pTqke0*1¶u4%y<8syjHA}X*ݹ1SbSW§ٖծ1k**kypH]oF*.f6TTcMe"¤0g)&Ůޟ:{kZ >8,$5*F21wsHpQkzF6c]wN̵ׄJ# pȄA#]F8l1?(gOB~TUyLbˁ8#^TO1ZbbySIOP~V{-b-4R^~Ge­lHnuS/:6# $Tj?e+y䏼Hf*'˼Ѝb# &??~p$iBF;[wzek~ZS 7H8v ?3$rj7nFY |OQ; U dؓS - \G=&pGw`)/ ai5&sL <:R=Pe6^X7}o5641W0ճ2k3$k%'1&-[#bML"'{ "!$*x(+)`F(> q-q,v.Ț/7pqXsYr3w%vQO+tru՛E~xKO} |b!ytxBz{l.m~Do8nkljw[h1Ri85bcm?a+f`Qeddf"giH IKSNJuyOcN LZMݥFĚGE@ND$A2D@XsBI*CThPU3gWu>V SR:P|Q~Z9[ SYfX]4\)^oEZ_/m5qs<\kg2z &J8 좞V`a/6i\lU,zB\uHƒ=&FW A+Ox]`غ7W>9q߳!7Kk ֩fض-bѠ3pj$]^Ĝ'*~@IWVÕ<ӂMʏş{ Dt͆mC-@mw+B.(>dT"ş~Ϝ8yo$w1J}50K_ ^ϋiBۉI#dXфTQc:r Р fΫnx|)Ko%3/uUv?A)ġ:C|sд@͉ ;IbeU"hH_S1ފZ^ھ4ge ȋbW72%k_ܝ8Ŵ(}OodJֿjw3XcVPW0Bq{gǧurCo&p-?О'sB zGɠ2>[ ;g/P8i_ Y=嗇e:ϏOZw3(?RXw@ Qh+HZ"0*WOIo@}m5N#+'*GA |􏒨HX=#?X1vjʨ`^pYL'!$UxAׯ3\Y;U^GP~b;!lڇF 2p(ԐQV_:X1: 3n :m@I)/NJ2"v+x xKH.jAf^O*9y]#Mk~`bю_޶ Rz7hFм!10cV"ajحn6 SrN){t*8Fv#fu`zrϮsɛW"G9E^vMcD&dA/yQA4S&ֿ EbLil!>aDƋΪ~7A8n&]|vYoᡱ Kyi׫w¡\~9$66 Qnf>q,o,ӹI 散 I{.C>HnY-Qg̰t zfainvalid literal/length codeinvalid distance codeinvalid distance too far back`Psp0  ` @ X ;x8 h( H T+t4  d$ D \ S|< l,  L R#r2  b" B Z Cz: j*  J V@3v6 f& F  ^ c~> n. N `Qq1  a! A Y ;y9 i)  I U+u5  e% E ] S}= m-  M S#s3  c# C [ C{; k+  K W@3w7 g' G  _ c? o/ O `Psp0  ` @ X ;x8 h( H T+t4  d$ D \ S|< l,  L R#r2  b" B Z Cz: j*  J V@3v6 f& F  ^ c~> n. N `Qq1  a! A Y ;y9 i)  I U+u5  e% E ] S}= m-  M S#s3  c# C [ C{; k+  K W@3w7 g' G  _ c? o/ O A@!  @a`10  @     incorrect length checkincorrect data checkinvalid distances setinvalid literal/lengths setinvalid code -- missing end-of-blockinvalid bit length repeatinvalid code lengths settoo many length or distance symbolsinvalid stored block lengthsinvalid block typeheader crc mismatchunknown header flags setincorrect header checkinvalid window sizeunknown compression method inflate 1.2.5 Copyright 1995-2010 Mark Adler  #+3;CScsI !1Aa  0@`@@incompatible versionbuffer errorinsufficient memorydata errorstream errorfile errorstream endneed dictionaryqBtqB5BhqBXqBLqB8qB(qBqB5BfFK I*TK ITTK IO :i+00SBi+00@_dP/N !:i+00'":i+00 E%6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF΋!  Hx5i+.b`ODV A H FM^2mFT d_N" (2W]/4*&{-zeG'{-ph}OUBl OU3(9O> G e+.bchOU4^ ;ݧB}/NKfNr@"=3H$Oڠ'my4[ J1B&M[Or G:ᠷqEJ ǬMWs5i+.bs5i+.bs5i+.bw~s5i+.b%e{HqC,40L]0RO$[Dt.+*U6F:(Y;a-kQG^)|I)sO>+dWnO@;>V;>V Wt חb@J7<}iFϦODa'wj5Ob0wDObAGQ`{FL!mv`[c'wj5Obd'wj5Ob6J[CAVgqe'wj5Ob5i!Lz)zR88`[|^1/`[@L\J7@呰 חbu`ެ@`ެ.PRO—-T'tE`ެA`tpZdl?<W4plTI?rPB,ɨ=O${aPo0p,oiyŜ?Oɝa4Oص,OꙠς`RWpO6OyѦjc(=O0%G`묡51Mlg~6JNfsv]=D%Ocg3K@~Oq!2)wKL+2V4K@~OqT'B6Q:.7V`ƆEz5K@~OqiI~+.ͩ pO]_eOkm'WFAOлP0 P0 P0 M]`gI6FOEг]K $^5N$̈&HS3M17i;'$9Y:Oh7%9Y:Oh7&9Y:Oh7'9Y:Oh7ի|I˃(9Y:Oh7!FsGF{H@FS2IEt$#CȫR e.{ JOe/P($IZ^9$\E9 O奄`OO\;x8WFTpj zO1I( @wiKw^ևA)!\_[C+dWnO4DLe+.bSmb`ߌ #Or'>O.jxO^QmOd4'>Or3߷;`[MO KLb`wG:J'i>VMYFDAt;&OF} Ҩ\I;%S| *E yЎf|txM NI{@ >KJ\FЗ4mc-NvEc7VfCNItwׄ8A!ӱJ'8EK}4@ VqC(DW@XzvF@S>LNdL֬+ o.Eцݷ"JL :̿,LB)隇A }jL^6CTw]+.DJQS[bHNAFPCU .4zl'K@-tК#FlHiawhM0Y3S!AbostA^?UX2NfHyu 5ꥂG)]/qNnN9jI=W.I|Kg 4cH~%]bM I]7BWGCQl2$HܨEye64ۅ>eL:er='oOU{p OsCů$53QB`ϝ]v+qAO;ل.CZ0YcwN]ND.Q1RWHΨ}'CBg (#l^"`G3qs03NvFZ9\;û@Z|KJ$M>MEQ wmjKDWw? ec E kjO}c^NIe2mG)f\"gJ]lV`W0\"F-V pNr-O&oO}N8úGˢ)qKmHB" C[E|tKpȞ&Aõ*iG2 HNOiNㄫ9O'HKlqto%yL%4FxWObDcq# (O\iN`|\1IkLICN_3haO1FI&I}!<OGFVXia;B8n29֔hJuAtXJQ xd_w~8ƏWU]O Ɋ36(A#)V)F#Ϋ>%'GoGG+}.аvLX] p`OK #7 EC)t0ō*ƾ{,D Jև+DW^ Oor9tRNNgɆ>!OL'`g+$%|QOz)(B _@^A% xSDMt Nn 8Åm]rLwx,4Ku@ +׉#G`` WG 35A AlG ؂تI`FtQ<[MEĀd_NM&uf4L3lEZIC~"@0(9A8L"k1%B T #=E\\GNˇbR FHspSi)!@'QL.JiFFFFFF F F!FFFF&FF F FFk!Pi)?F0:s *Dw= F F F F F FFFFFPF%FQFFFF`k;Yi+-z1OY ȿ4<OV% X$5I?#3:O4j;Yi+-zj;Yi+-zi;Yi+-zv nr=F>F@FDF[Fʙ^AiXשFh Mm8gh z0Gd<O8m xO4yO"FFFMm8gh 0F1F2F3F%F)F*F0:s*Dw=IF y.Y+F&FEFGFHF:/ۆ/O:/ۆ/O:/ۆ/O:/ۆ/O:/ۆ/O:/ۆ/Oǝv\Wސy(_FFFFFFU 8r+C+n44FâRX0eu{ڮP9Vu{0ne0E Kvne yOܦϫ|x O jIOQnO09$-1.E^*onePone |~|?ne? PE^#1$-?W2$-?W2$-pw~?neg@ne˳j@ne˳j@ne?W2$-~{S^BEy|KDphKΔӳOհrIOC'zO{TxhO{lhO6ǀ_`\`OOrOh7y) Oh7BTyI6 E&jnLFB}sg'Dx+h\t<6M>?i]?9A!8ҏFs%E~2]r?jdN&6u^gO!B> 9}Nr*GݓkFN]ͷghhϓgAc*^Z%Ȕ2AeqKW';?B@ J$SQ`Ɔ(œO>1s-O(hHjxOi QD(ߥl+ rˆLmCBUa{Ӱ~C.`1 y/DĊY F;aAdƼ403bpc(Jg Дէ{E] E)ПS-oEH?syYz(y K@AXGA'qQU AJ s Y!WOZ{*lg(M2(TfC'>|a.  O;O.K[K8H]҇26 -&{-r: %wCjW'tVamy!@iaWBVm`ɠI-`:Bn5OC(K鞟^ﯘ=ѕK0:ښL%2J4{[kYs=BMQ!B\[/B{NsASÖ.̆I#t9JDf?kјH"tŻ-Gs?zZAe!`[ǽ6NXX$  KiiőԞ(LqmjK H(.~,-Y@o3\.Q Cpg{LKI s<_z\ LKo(t;sM|@)^vJYӞ~+IzÊChsxDpWJ?,CP0DOAoZ\q"tDk׾ TLrTIkE a`NNe76_I|kHrYM>s: .jxOˡd:aDX7iii9P5}+EutX(T6QB~ۜC]_#ͼ_Ld=xr|խhG2`?uIp4Bf6חKt3OtaG'"v0 SNwL1"(iv@ YGح+ObC4`[ԄLr?RJ{,AsEOWL"O7v8yOhKKt&1Zs~:6 B}Ftr⋪GMv2̤ pDʹfD.b[GvtH; zr\GڙYkH?FA&OA;,Ui6 IJ"x9J4ܵ;EfDװqmrE.1!YuY&HxHϣ'GVBeUNOخ|)IE@0lyדسDg,ݠeL3"5/QqCAwSk5 X;-3B{_41lxpOh6ǾƱLb VBPoz5zD #D@Fgm[M/BT|\?@zpDF[0 49Z I}AaB}KX䌠%D|DZ#`ڽWvGE>ςZ#@k{X8&oI Qd5CvSdn0@DH&'E4VwҁnB*O&-bfMlV!j hFXapf_:qJ?򥸿2cpF^W5}3ƔHjiOY<0G== 6eFpqFwHҶe_K#q}kdO-p;z5Og5е.Í}DwMm3sG%`4n.8E40PpZdFK6eJ7`, :i+00Fh3MnMܙS{5)xKt O3CKsw`$D&l;0MHֿRUBu(dT&arrCuƋ.|uU:WPHw[ێ Z܊M`* !sG3^F0MJSkyZ 8y M3,/KqI\M;TQ'CHCh4-6C$/`zLbeLWwR"!5C34a@Y?JTwZ8KMn錕Ra/pam/pmCorExitProcessmscoree.dllB0BTZSunMonTueWedThuFriSatJanFebMarAprMayJunJulAugSepOctNovDecHH:mm:ssdddd, MMMM dd, yyyyMM/dd/yyPMAMDecemberNovemberOctoberSeptemberAugustJulyJuneAprilMarchFebruaryJanuaryDecNovOctSepAugJulJunMayAprMarFebJanSaturdayFridayThursdayWednesdayTuesdayMondaySundaySatFriThuWedTueMonSunHH:mm:ssdddd, MMMM dd, yyyyMM/dd/yyPMAMDecemberNovemberOctoberSeptemberAugustJulyJuneAprilMarchFebruaryJanuaryDecNovOctSepAugJulJunMayAprMarFebJanSaturdayFridayThursdayWednesdayTuesdayMondaySundaySatFriThuWedTueMonSunKERNEL32.DLLFlsFreeFlsSetValueFlsGetValueFlsAllocLC_TIMELC_NUMERICLC_MONETARYLC_CTYPELC_COLLATELC_ALLlB@`BdBATBdBtoAHBdB0A?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~_.,._;=C=;runtime error TLOSS error SING error DOMAIN error R6033 - Attempt to use MSIL code from this assembly during native code initialization This indicates a bug in your application. It is most likely the result of calling an MSIL-compiled (/clr) function from a native constructor or from DllMain. R6032 - not enough space for locale information R6031 - Attempt to initialize the CRT more than once. This indicates a bug in your application. R6030 - CRT not initialized R6028 - unable to initialize heap R6027 - not enough space for lowio initialization R6026 - not enough space for stdio initialization R6025 - pure virtual function call R6024 - not enough space for _onexit/atexit table R6019 - unable to open console device R6018 - unexpected heap error R6017 - unexpected multithread lock error R6016 - not enough space for thread data R6010 - abort() has been called R6009 - not enough space for environment R6008 - not enough space for arguments R6002 - floating point support not loaded B(B ЩB B0BШBB0BBpBBB@BB8B ФB!BxByBzB|B\BMicrosoft Visual C++ Runtime Library ...<program name unknown>Runtime Error! Program: (null)(null)EEE50P( 8PX700WP `h````xpxxxxccsUTF-8UTF-16LEUNICODESystemFunction036ADVAPI32.DLL  ((((( H h(((( H H  !"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~united-statesunited-kingdomtrinidad & tobagosouth-koreasouth-africasouth koreasouth africaslovakpuerto-ricopr-chinapr chinanznew-zealandhong-konghollandgreat britainenglandczechchinabritainamericausausukswissswedish-finlandspanish-venezuelaspanish-uruguayspanish-puerto ricospanish-peruspanish-paraguayspanish-panamaspanish-nicaraguaspanish-modernspanish-mexicanspanish-hondurasspanish-guatemalaspanish-el salvadorspanish-ecuadorspanish-dominican republicspanish-costa ricaspanish-colombiaspanish-chilespanish-boliviaspanish-argentinaportuguese-braziliannorwegian-nynorsknorwegian-bokmalnorwegianitalian-swissirish-englishgerman-swissgerman-luxembourggerman-lichtensteingerman-austrianfrench-swissfrench-luxembourgfrench-canadianfrench-belgianenglish-usaenglish-usenglish-ukenglish-trinidad y tobagoenglish-south africaenglish-nzenglish-jamaicaenglish-ireenglish-caribbeanenglish-canenglish-belizeenglish-ausenglish-americandutch-belgianchinese-traditionalchinese-singaporechinese-simplifiedchinese-hongkongchinesechichhcanadianbelgianaustralianamerican-englishamerican englishamericanBENUBENUBENUBENABNLBtBENCpBZHHlBZHIdBCHSPBZHHJdp|,>L`n~"6F\v "0@4&xhXJ<* zn^L0 PropertySheetACreatePropertySheetPageACOMCTL32.dllsSetLastError|CreateDirectoryAGetFileAttributesAWMapViewOfFileCreateFileMappingARCloseHandlejSetFileTimeDosDateTimeToFileTimeGetLastErrorCreateFileAUnmapViewOfFileMlstrlenAgMultiByteToWideCharEGetProcAddress<LoadLibraryADeleteFileAReadFilefSetFilePointerGetFileSizebFreeLibrarySetStdHandledGetStdHandleHLocalFree]FormatMessageAGetTempFileNameAGetTempPathAGetModuleHandleAGetVersionExAResumeThread}SetPriorityClassGetCurrentProcessGetCurrentThreadSetThreadPriorityCreateProcessAGetModuleFileNameARemoveDirectoryA;GetPrivateProfileIntAAGetPrivateProfileStringAGetModuleFileNameWKERNEL32.dllMessageBoxA,GetFocus2wsprintfASetDlgItemTextAwSendMessageAeReleaseDC!GetDCDispatchMessageATranslateMessage2PeekMessageAEndPaint~GetSystemMetricsBeginPaintDefWindowProcAUpdateWindowShowWindowmCreateWindowExAKRegisterClassALoadCursorAMoveWindowGetWindowRect5PostMessageAdGetParentrSendDlgItemMessageA'GetDlgItemSetCursorUSER32.dll6CreateDIBitmapDeleteObjectSetTextColorTextOutASetBkModewSelectObject<CreateFontATCreateSolidBrushGDI32.dlllRegQueryValueA0RegCloseKeymRegQueryValueExANRegEnumKeyExA`RegOpenKeyExA}RegSetValueExA8RegCreateKeyExA=RegDeleteKeyAGRegDeleteValueAADVAPI32.dllShellExecuteASHELL32.dlllCoUninitializeCoCreateInstance>CoInitializeole32.dllyGetSystemTimeAsFileTimeHeapFreeHeapAlloc%FileTimeToSystemTime$FileTimeToLocalFileTimeGetFileInformationByHandlePeekNamedPipeGetFileTypeEnterCriticalSection9LeaveCriticalSectionGetTimeFormatAGetDateFormatAHeapReAllocGetModuleHandleWExitProcessDecodePointerGetCommandLineAHeapSetInformationcGetStartupInfoWIsProcessorFeaturePresentTerminateProcessUnhandledExceptionFilterSetUnhandledExceptionFilterIsDebuggerPresentEncodePointerWideCharToMultiByteGetTimeZoneInformationrGetCPInfoInterlockedIncrementInterlockedDecrementhGetACP7GetOEMCP IsValidCodePageTlsAllocTlsGetValueTlsSetValueTlsFreeGetCurrentThreadIdHeapCreateHeapDestroy%WriteFileWSetEnvironmentVariableWVSetEnvironmentVariableASleepInitializeCriticalSectionAndSpinCountDeleteCriticalSection FatalAppExitAoSetHandleCountGetConsoleCPGetConsoleModeRtlUnwind-SetConsoleCtrlHandlerInterlockedExchange?LoadLibraryWGetLocaleInfoWaFreeEnvironmentStringsWGetEnvironmentStringsWQueryPerformanceCounterGetTickCountGetCurrentProcessId-LCMapStringWiGetStringTypeWGetUserDefaultLCIDGetLocaleInfoA EnumSystemLocalesA IsValidLocaleWFlushFileBuffers$WriteConsoleWHeapSizedCompareStringWCreateFileWSSetEndOfFileJGetProcessHeap5B5B 5B5B5B5B4B4B4B5B5B4B 5B4B5B5B4B4B4B5BSoftware\Microsoft\Windows\CurrentVersion\Uninstall4B 4B4B|4Bd4BL4B<4B$4B4B4B3B@3B@3B@3BC@3BC@3BA@Software\Microsoft\Windows\CurrentVersion\UninstallN@D C CpPSTPDT@BB        ! 5A CPR S WY l m pr   )     abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ@B`y!@~ڣ @ڣ AϢ[@~QQ^ _j21~CBBBܠBؠBԠBРBȠBBBBBBBBBB|BxBtBpBlBhBdB`B\BTBHB@B8BxB0B(B BB BBBBBB̟BB BBBBBBBxBhBXBDB0B B BBBBBBܞBԞB̞BĞBBBBBB|BpBBdBXBHB4B$BBBBB؝BBBdBdBdBdBdBBB@BBhBBB@BB `BPB B B B B B B B B B B;Zx0Nm:Yw/Ml..BCCCCCCCCCBCCCCCCCBBB. (@pnklmn ( 8 H X hx1 ; =$?ZABZ(n, BBB999111)))cR[RABZRYRZRAB[R[RAB[RAAB[ && &&&@JQ1AA1ZQ1111ZQ1AAZ@JQ1AAZQ1AAJ eu eu @ABZ@J@G@F@F@G@AABX@J@AABX@J@J@AA1X@J@G@HRX@G@AAG@ZRX@AAG@JQJed%ed%ed@AA1ZQ1AA1X@J@HQ1AA1X@1A1ZQ1AA1ZQ1A1J  & & RAABZRABZR[R[RABZRYRBZRABZRBW@J@J &R[R[R[R[R[RABZR[R[R[ & & & & & & &@J@J@J@J@HQ1AA1X@J@J@J@J@J@J@G@J@G@JQJ@ABZQ11Z@J@AAG@J@G@GQ1J@AA1ZQ1YQ1[@J@AAG@J@G@1W@J&@I@G@J@J@J@J@G@J@G@Z@J@AA1X@J@HRABX@J@HQ1AA1X@J@J  &  %& & & &RAABZR[RZRAAABZR[R[RABZR[R[@H{SetupMS Sans SerifP} This Wizard will install %s on your computer. Click Next to continue or Cancel to exit the Setup Wizard.P}PhnP}@H{SetupMS Sans SerifP} Select python installation to use:PP}7Python Directory:P}jPhnPP}BInstallation Directory:@B2Find other ...@H{SetupMS Sans SerifP} Click Next to begin the installation. If you want to review or change any of your installation settings, click Back. Click Cancel to exit the Wizard.P}msctls_progress32Progress1P}Installation progress:PhnPA@H{SetupMS Sans SerifP} Click the Finish button to exit the Setup wizard.PhnP}( PAPADDINGXXPADDINGPK!קK7command/wininst-7.1.exenu[MZ@( !L!This program cannot be run in DOS mode. $IoA'tpj\Vd@YYt_W@؃u'jW@utWh@jՃ WjYYuh@t Wh@jՃ \Fu[_]3@^U SVW=@39uuEVhuVVSu ׃E@uu uu  uPt P@/9u u jU YYt.VhjVVSu ׃Eu%9u u hĂ@u jU YY9u t u jU YYEPuu@}EPPPW@9uu W@\VuVjVW@W=@׃u9u t8u h@&VVVjS@SE׋E;u9u tu h@jU 3_^[U8}S]VWj8EjPpZE EȋE@E̋Ej8h@E؍Ej3P]F2}t t*Ph@EjP4;YYtt Ph@j׃ 3EPJYt,t PhԂ@j׃ 339uuuu SY FS@_^[U(ES]L+A Q+ƒ9PKWM}:t3efy V3@^_[ËE}4N*>PKE?PK9V. u MN VGF*OMUDE܍PYHEPYM <\th @PXYYP؀@eEE8t;EE0XPuE04@EEMȃ8EuGPuPp@ t /u\@uPJXYM<\tNu3fF P3fFPvuPjt"uOvvQuP^}tE@PE@ PujUE@ E9E=0M3WsEPWE_M+؍PMWM<\t)PhWYM</th @PGWYYE\t/u@KSPPp@]3UE Ph @u ,@ u]u jmhT@(@ ]UE Ph @u ,@ u]u j5hT@(@ ]U=D@VWu hh@Ѐ@t3hP@PԀ@D@EPh @u ,@ tY=D@uh8@5L@$@YY;3|@u68@YYt)G@ruh$@5@$@ 3_^Ëx@jPPjD@tPh @(@YYuh@5L@U,V3Vuuuuuup@;} Ph@EPEPEPEPEPEPEPh@u ,@$FEPhh@jVhx@t@;} Phl@EURh@P;} PhD@EuPQP;}Ph$@pEu܋PQ;}Ph@X9utEuPQ,;}Ph@;9utuEuPQD;}Ph@9ut'EuPQ$;}Ph@5L@$@ GhPjuVV̀@EjRPQ;}h\@WUhH@h50@SRYD$tjPYYt$@=T@tB=@t9h,@WUhH@h50@SYtjVAYYV@3_^][H@tP@Yt$<@%T@YH@U SV5Ԁ@W}h@Wh@Wh@WEh@WEh@WEh@WE395L@u3J;tC9ut>9ut99ut49ut/;t+39u h@Uu u U_^[ÁPL@SUV3Wt$3;t@A=H@PVhS50@VVUS50@׉t$5L@$h cD$6D$D$ h@PP@D$(P$ttD$t$D$ 6h@PP@D$,Pjjt$US50@6h50@T@vuD$_^][PUhV5P@Wh@@hP@PE֍P@=Ѐ@uׅ5@E5D@h @PփE5@PPEPhօtEPPEPhօt3,h@P4DuP%DP_^USV3WSS@@ ȁ@5ā@@@QWPE֡ȁ@ PWuh@@$;u0@Pth@PP@tPuVYEYV@ȁ@=@@Pסȁ@5@@P֡ȁ@ Pסȁ@ Pփ9]ht@4C$p@u@jS@PEu@jjuEӋED8P@؃(t:ht@SBu;ujP@uÀ$8SS@$ h`@Yu@EY_^[UQQSV5Ԁ@W}h@Wh@Wh@WEh@WEh@WE֋3;t;9Et69Et19Et,;t(h@UW u U tU_^[USV5Ԁ@W}h@Wht@Wh\@WEhL@WEh<@WEh(@WEh@WEh@WE3E;9u9u9u9ut{9utv9utqh@ӋY;t?h@WUh@W@UL@@jVUP6WU(@rE(@E,@E$@Ep@3jX_^[UV5(@W3jWWEWPօtEP,@EP0@jWWEWP_^U@El@=tEX@VW3MWQWjWW\@WVP@;t5ujWh@@P8@3Wh@V@P8@`@=܁@SVuh@P׍h@P@D@EP؁@ԁ@EPӍEPPh@hPЁ@@P5D@h@h@5D@ӃHuh@5D@5@5D@Vhx@P׃ EPEP3PhPPPPu@tjh`@P@P8@u@}uPh\@hH@5D@Ӄh@5@5D@h8@P׍P>@PPjjh,@u@tjh@P@P8@Ph,@Ph\@h@5D@Vuh@P׍h@P@Pj5@E5@́@@u@VuVuh@P׍P > @@PPjjVu@tjh@P@P8@PVPh\@h@5D@ӃjX[_^U=} NV} K} W39=T@)@ƅ=@ ST@hp@hu}Ed@}Ӎh@@P=hX@P<VP<D@;tQh@@h@@P@WW@@ ȁ@5ā@@@QWPE փuPPh0@@P8@ȁ@ PWu փ uPPh @@P8@hj @P$@Eh@@EHYt{V4th@RYY;N;t +V+щP@+FMh+F+~@YPh@tmSjh@P܀@tT3PPPvPSjEtLvWP@u(|W<@MuE@jXh@@PYY3_^[̋T$3;tMB;tFHJJJB0HH H H(H,H0H8H<0@HlHPHL3ø̋D$ W3;81|$8Vt$ ;9~ ~u F ]@~(9~$uF$]@F(h0%jPV ;u^_ËL$;ωF}xB0P}|VH$x4^_PF(PV$~^_ø_SUl$ ]VWC43;u(K$M(jPQU ;ljC4u _^][9{(uK${0{,S(}K(+;r*u {4+ȃK(_^]C0K,3[+K0;ȉL$vȉL$S0{4u +ʃL$+t(u {4ȋ+ʃ_C0C(^C,]3[Ë{0C(;Љ{0uC0S,;sщS,_^]3[̋D$8SX|H q8u Ha; u H PUk3UUUR$CjD$4D$4D$5KPQ5$Cl$C Ct@0CL$%3ҹL$рtD$L@t@C$L$;vL$LD$A`@h3UUUSLT$L$X҃ CA0 l$1D$L@H@D$s'nO|$FD$t$r<CtL$LAt@tT$LB,@K tCt%D$D$$D$%KjD$(PQ" C33 sOF D$rK tACt7D$D$$ȋD$'jD$(L$)T$*KPQ8" C33s(TO|$FD$t$rًK tЁQK A Ct%D$D$$jT$(D$)CRP! C3D$3Ktvs-O|$FD$t$rًK ɉC@tACt%D$D$$D$%KjD$(PQ5! C3D$3K tAKK@;ωL$vωL$S tHR҉T$8t=S zs@R+49;v+׋ʋT$8t$ʃL$|$t$StD$KPVQ L$(CD$ S@++щ|$t$S@K@C@Kt3ɍ1AL$K ɉT$,t-Q҉T$8t"S@;Q sL$8|$D$8D$,C@D$8L$,tL$;rKtT$CRVPCD$ L$+L$,ɉ|$t$K tAC@K31AL$K ɉT$,t-Q$҉T$8t"S@;Q(sL$8|$D$8D$,C@D$8L$,tL$;rKtT$CRVPCD$ L$+L$,ɉ|$t$K tA$KtOs' O|$FD$t$rًK;tT$LB@R 3l$C tK H,S B0jjjLL$XCA0D$   s'_ O|$F D$t$rًȋЁ3Ҋt$L$LCA03D$3 K  jjjT$XCB0D$  |$P Kt̓+D$T s$ O|$Ft$r݋ȃKȃMws$H]@ D$ CL(@CT CP(@CXD$ D$ T$LB@D$ ̓+ D$s+d$ O|$F D$t$rًЋҁ;tL$LA@. 3K@D$3K@ɉL$;vωL$T$ ;vʉL$R t$|$(ʋT$L$t$|$ +t$t$(щT$S@++щ|$ |$t$(t$S@ s# O|$Ft$r݋ȃЉK`ȃK\K`BSdD$ʃChKh;K\s[s#_ O|$Ft$r݋ShU@3ɊD$fLSpKhAKh;K\rKh;s*3 $d$ShU@fLSpShB;ЉShr千0KlCLRCTPQjCpPjXD$4D$t L$LAȌ@1 T$LB@! ChK`Sd9ShKTKLJ#Ћ ;ՉL$@v<A KTOºKLF|$J#Ћ ;Չt$L$@wċT$@fsR;L$s&L$OF;|$t$rfT$B+KhfTKpKhAD$KhHuh͍Q;L$s+L$OFQ;|$t$r+KhɉD$bLKnL$,ȃfՉT$uJJ;s-d$$O|$‹T$FJ;t$r׋ȃDJ;s)O|$‹T$FJ;t$r׋ȃ +D$,{dSh{`;׉D$tT$,{hfT{p{hGI{hu|$S`Kd9Kh;0KlCLRS`CTPQ RCpPj D$4t8L$LD$A@T$LBl@L$L|$Al@vSlKlSPRCXPQK`CdPTKpRjP D$4tD$L@T@D$)D$rg|$ r]D$LT$ L$(PT$0H L$R0xPK8k<|D$TH P0xC8k<L$(T$ t$|$D$KTKLJ#Ћ;͉T$@v<KTOºKLF|$J#Ћ;͉t$T$@wĄΉL$3ɊʉT$,L$L$J#L$@ыKLL$,T$@;ՉL$v[IT3ɊL$,O‹T$F|$ʺL$t$J#L$.ыKL ՉL$@L$;wT$@++L$@҉D$K@u w t  g@tT$LB8@LSHKHtE;s%KHOF;|$t$rۋKHK@J#ʉK@KH+KXKPJ#Ћ;͉T$@v<,KXOºKPF|$J#Ћ;͉t$T$@wΉL$3ɊʉT$,L$L$J#L$@ыKPL$,T$@;ՉL$v^3ɊL$,O‹T$F|$ʺL$t$J#L$.ыKP ՉL$@L$;wT$@++@D$tL$LA @L$@KDSHKHtI;s%KHOF;|$t$rۋKHKDJ#ʉKDKH+D$T$ K,+L$09KDvT$LB@-L$ T$0+ыKD;v<+ʋS0;ʉL$v+ʋS4S(L$+ S4+S0L$T$,S@;ʉT$8vT$(+ыK@T$,L$8L$T$ ;vʉL$+щT$ T$8+щS@L$,L$(T$,AL$(L$BIT$,L$uۋK@ncL$(S@AL$(L$ >K s'O|$F D$t$rًL$0+L$ T$LJSхɉL$0St8CSL$(D$0Pt +QR +QR L$XCA0D$ KT$ ɉT$0u'3Ҋt$L$8ʋʉL$8;Kt L$LA@`3D$3KK s'O|$F D$t$r;CtSL$LAЋ@ d_^][8ËL$LT$(Q T$ y_1Q^k@3L$@ȋD$@L$H#L$$̉D$+٨t‹L$;؉L$s(jBT$;sjBT$+M#͋l$L$D+;l$+;l$HnL$,D$Iu*D$(+ȋD$T;+ʼnD$Td$AAFMus;sS+D$(+l$D$T;sc+ʼnD$TAAFMuL$,D$l$TI;s<+l$TD$@AAFMu+ȋD$T;s+ʼnD$TAAFMuD$+ȋD$Tv7PEAAFQAFT$TAAFMT$Tu݋T$D$Tt^AAF|$TvPIFH+ō$H@FH@FH@FL$TL$TwۅtH@F|$Tv@Fl$;T$0sQ;t$4EL$PD$A@,L$PA @ t E D$P@8@E ++ً˸L$PH#BFA D$0+ƒAD$4+A}8_^]<][<̃|$3҉D$+Dž~|$AB;rt$HT$(ЉD$<$T$(u =֋$ D$DL$ +T$8fLG$*ÅD$@D$fD$t]t$ d$t L$@D$8#;tD$73ۉD$D$ЋˋL$ Jtut H#ȋuT$(T$ȉ$_^]3[|_^][|̋L$S\$Wu1D$ʁrr_ [Vt$u ^_[Ãs3t FKur3Ҿ^_[ Án^U [IVVVVVVVVV V V V V VVHw3ҹǿ3MF]VVVVVVVVV V V V V VVʃHtt FKu3ҹǾ3^_ [QSVt&It3Ҋ3Ёh@3ANu߃ UW3܋,h@ҋh@3Ջ؉D$,h@Y3%3h@3Ӌދ,h@h@3ŋډT$,h@Y3Ł3h@3Ã܋,h@ҋh@3Ջ؉D$,h@Y3%3h@3Ӄދ,h@h@3ʼnT$,h@Y3ŋ,h@33ËЃҋh@D$3h@,h@3%3h@3Ӌދ,h@h@3ŋ,h@Y3ʼnT$3h@3Ã܋,h@ҋh@3ՉD$,h@Y%3Ջ,h@33Ӌދ,h@h@3,h@T$h@3Ń3à OrH3܋,h@D$|$PfzxTh~سDjXL6&ֺκĺ .>L^r»̻ػ|nd\R޸$.8BPZfpxʹԹܹ$.:JԵȵ6$ܶȶt^RF4$ĸCreateDirectory (%s)MapViewOfFile (%s)CreateFileMapping (%s)CreateFile (%s)inflateEnd returns %dinflate returns %dinflateInit2 returns %d1.2.3\`Psp0  ` @ X ;x8 h( H T+t4  d$ D \ S|< l,  L R#r2  b" B Z Cz: j*  J V@3v6 f& F  ^ c~> n. N `Qq1  a! A Y ;y9 i)  I U+u5  e% E ] S}= m-  M S#s3  c# C [ C{; k+  K W@3w7 g' G  _ c? o/ O `Psp0  ` @ X ;x8 h( H T+t4  d$ D \ S|< l,  L R#r2  b" B Z Cz: j*  J V@3v6 f& F  ^ c~> n. N `Qq1  a! A Y ;y9 i)  I U+u5  e% E ] S}= m-  M S#s3  c# C [ C{; k+  K W@3w7 g' G  _ c? o/ O A@!  @a`10  @     incorrect length checkincorrect data checkinvalid distance too far backinvalid distance codeinvalid literal/length codeinvalid distances setinvalid bit length repeatinvalid literal/lengths settoo many length or distance symbolsinvalid code lengths setinvalid stored block lengthsinvalid block typeheader crc mismatchunknown header flags setincorrect header checkinvalid window sizeunknown compression method(@@@@@@@Ѝ@@@incompatible versionbuffer errorinsufficient memorydata errorstream errorfile errorstream endneed dictionary inflate 1.2.3 Copyright 1995-2005 Mark Adler  #+3;CScs !1Aa  0@`@@0w,aQ mjp5c飕d2yҗ+L |~-d jHqA}mQDžӃVlkdzbeO\lcc=  n;^iLA`rqgjm Zjz  ' }Dңhi]Wbgeq6lknv+ӉZzJgo߹ホCՎ`~ѡ8ROggW?K6H+ L J6`zA`Ugn1yiFafo%6hRw G "/&U;( Z+j\1е,[d&c윣ju m ?6grWJz+{8 Ғ |! ӆBhn[&wowGZpj;f\ eibkaElx TN³9a&g`MGiIwn>JjѮZf @;7SŞϲG0򽽊º0S$6к)WTg#.zfJah]+o*7 Z-A1b62S-+ldEw}ZVǖAOIъ OM~-QJ#SpxAaU׮.7׵Y-6]]wll?AԞZ͢$ Faw$eڪ]]FD(koipvk19Z* ,  m86F߲]qTp0ek*1u4yީ%8S1bSWĔՖk1**ykʬHpo].*F6fcTT"eM©g0&):{ϼkZ> 8$,52F*sw1pHkQ6Fzw]cN̵J #pAF]#l8?1(BOgT~yUbL8^#ܖTZ1ObbSyOIV~P-{b-R4٠~^eGnHl/Su6: #jT$+e?yHf'*b#ٽЧ ?&~?$pi;FBzw[keZ~7 Sv8H 3?r$7jnԄYFܨ |OQ;օ U d S - =G\ p&Gw)` /a߫i5&LsZ<#0zMzFM8,9; :R:(q-v,.7/pXqYs3r%w+OQvrtEux܉~OK }!b|tyBxʠz{.lD~m8onlk[wjR1h58ib?mcf+aQ`צedd"fig HINSKyuJcO NZLݘMFGN@E$DD2AsX@*IBCPhTg3U>uW ַVS:R|P~Q9ZS [fYX4])\ZEo^m/_5qϱ٥s\ۼqދ!K7 kfֶԁ-b3Πjp]$^'~*I@VW<âM˟ŏ{ tDCm-@wm.B+(铜>Td"ŀǼϭ~8y$owJ1}05_K^ iϏ은BI#ƈdX܁T̓cQ: rՆ⩗ fn|xK)o%ƭ/3vUuA?)C:|sĵ@͂ Ͳ;bIUeh"׻_HS1޼^Z4eg Wb27_k%8ם(ŊO}do׸Jj3wVcXWP0qB{߭gCru&op-?'Bs ưGz>2[Ȏg; i8P/ _Y=чe:ZO?(3wwXR @hQ+ğH*0"ZOWoI}@mNП5+#*'G| AH=XX?#1jvʬ`p^Y<L~i/{kHwâ hs)aLoD~Pf7VM'(@ﰤ ہg9x+n&;f?/X)T`D1 ߨMߒ.FgTp'Hq/L0UEc?kǃh6ry7]P\@TN%s7@'>$!AxUʰ\3;Y^U~PGl!;b F2ȂpԞ(Q_V:1X: n3 m:@/)IJNv"2x+ٗ Kx.HҥfAj^y9*O]#kM`~b_R 7zFh!1߈Vc0a"j6nS Nr)Υ{t*F8#vufz`rs"WG9^EMvc΍&DAdQy/4Aڱ&S֚E biLQ<6'5P..T&q]w4.6IE? v\[YI>U!lDa>Ԫ΋ϩ7~8A]&nv|oY yKiw\¹9~$ 66nQfq>,o,IӔ 渱{I .H>C-Yn馑gQz tafw0a, Qmpjc5dۈ2yܸو L+~|-dj qHA}mԵQӅlVdkbze\Ocl=c ;n Li^`Agqr<KG k5Blۻ֬@2lE\u ϫ=Y&0Q:Qa!V#Ϻ(_ ٲ $/o|XhLaf-=vAq *q3xɢ4 j m=-dlc\kkQlabe0bNl{WeP|b-I|LeMaX:QΣtԻ0JߥA=ؕפmCij4ngF`D-s3 L_ |Pq<'A  Wh% of a^)ɘИ"רY=. \;l  tҚG9w&sc d; mj>zjZ '}DhibW]egl6qnkv+zZgJoC`֣ѓ~8ORѻgWg?H6K +گ L6JAz``ègU1nFiyaf%oҠRh6 w G"U&/ź; (+Z\j1,ٞ[ޮd°c&ujm 6?rgWJz{+ 8Ҏվ | !Bhݳڃn&[owGwZjpf; \ebiaklE x NT9§g&a`IiGM>nwۮjJZ@ f7;𩼮S޻G0齽ʺŠS0$6TW)#gfz.aJ]h*o+ 7 Z-1A26b+-Sdl}wEVZOAي»IˬO ~M-JQS#xpaA.U7Y-۩6˚w]]llA?Z$㧲F waރ$Ųe]]DFok(vpi91k *Z  ,8mF6]pTqke0*1¶u4%y<8syjHA}X*ݹ1SbSW§ٖծ1k**kypH]oF*.f6TTcMe"¤0g)&Ůޟ:{kZ >8,$5*F21wsHpQkzF6c]wN̵ׄJ# pȄA#]F8l1?(gOB~TUyLbˁ8#^TO1ZbbySIOP~V{-b-4R^~Ge­lHnuS/:6# $Tj?e+y䏼Hf*'˼Ѝb# &??~p$iBF;[wzek~ZS 7H8v ?3$rj7nFY |OQ; U dؓS - \G=&pGw`)/ ai5&sL <:R=Pe6^X7}o5641W0ճ2k3$k%'1&-[#bML"'{ "!$*x(+)`F(> q-q,v.Ț/7pqXsYr3w%vQO+tru՛E~xKO} |b!ytxBz{l.m~Do8nkljw[h1Ri85bcm?a+f`Qeddf"giH IKSNJuyOcN LZMݥFĚGE@ND$A2D@XsBI*CThPU3gWu>V SR:P|Q~Z9[ SYfX]4\)^oEZ_/m5qs<\kg2z &J8 좞V`a/6i\lU,zB\uHƒ=&FW A+Ox]`غ7W>9q߳!7Kk ֩fض-bѠ3pj$]^Ĝ'*~@IWVÕ<ӂMʏş{ Dt͆mC-@mw+B.(>dT"ş~Ϝ8yo$w1J}50K_ ^ϋiBۉI#dXфTQc:r Р fΫnx|)Ko%3/uUv?A)ġ:C|sд@͉ ;IbeU"hH_S1ފZ^ھ4ge ȋbW72%k_ܝ8Ŵ(}OodJֿjw3XcVPW0Bq{gǧurCo&p-?О'sB zGɠ2>[ ;g/P8i_ Y=嗇e:ϏOZw3(?RXw@ Qh+HZ"0*WOIo@}m5N#+'*GA |􏒨HX=#?X1vjʨ`^pYL'!$UxAׯ3\Y;U^GP~b;!lڇF 2p(ԐQV_:X1: 3n :m@I)/NJ2"v+x xKH.jAf^O*9y]#Mk~`bю_޶ Rz7hFм!10cV"ajحn6 SrN){t*8Fv#fu`zrϮsɛW"G9E^vMcD&dA/yQA4S&ֿ EbLil!>aDƋΪ~7A8n&]|vYoᡱ Kyi׫w¡\~9$66 Qnf>q,o,ӹI 散 I{.C>HnY-Qg̰t zfaFF Fn@n@]o@ao@o@o@6(XHз4tԸpp@bRڷ. Ttd´޴*>PfzxTh~سDjXL6&ֺκĺ .>L^r»̻ػ|nd\R޸$.8BPZfpxʹԹܹ$.:JԵȵ6$ܶȶt^RF4$ĸdPropertySheetACreatePropertySheetPageACOMCTL32.dllSetLastErrorECreateDirectoryAVGetFileAttributesA^MapViewOfFileNCreateFileMappingA.CloseHandleSetFileTimeDosDateTimeToFileTimeiGetLastErrorMCreateFileAcUnmapViewOfFilelstrlenAGetProcAddressHLoadLibraryAkMultiByteToWideCharRLocalFreeFormatMessageAFreeLibrarywGetModuleHandleAGetVersionExA|DeleteFileAGetPrivateProfileIntAGetPrivateProfileStringAResumeThread$SetPriorityClass:GetCurrentProcess=GetCurrentThread6SetThreadPriority`CreateProcessAuGetModuleFileNameARemoveDirectoryA[GetFileSizeGetTempFileNameAGetTempPathAKERNEL32.dllMessageBoxAGetFocus;SendMessageAEndPaint]GetSystemMetrics BeginPaintDefWindowProcAPostMessageASSetDlgItemTextAwsprintfAEGetParent6SendDlgItemMessageA*ReleaseDC GetDCMoveWindowtGetWindowRectGetDlgItemDispatchMessageATranslateMessagePeekMessageAMSetCursorLoadCursorAUpdateWindowShowWindow`CreateWindowExARegisterClassAUSER32.dllDeleteObject<SetTextColorNTextOutASetBkModeSelectObject9CreateFontA3CreateDIBitmapPCreateSolidBrushGDI32.dllRegCloseKeyRegOpenKeyExARegQueryValueExARegEnumKeyExARegQueryValueARegSetValueExARegCreateKeyExARegDeleteKeyARegDeleteValueAADVAPI32.dllShellExecuteASHELL32.dllhCoUninitializeCoCreateInstance:CoInitializeole32.dllstrchrmemcpymemset strncatstrcat strlenstrcpystrcmpstrrchrfprintf%_vsnprintfmalloc_snprintfstrncpyfreesscanf_putenvremovefreadftellfseekfopenfclosefflushfreopenC_iobfwrite strftimelocaltimetimesprintf_fstatstrtol_pctypeE_isctypey__mb_cur_maxqsortreallocfgetsstrncmp{__p___argvz__p___argcMSVCR71.dll_c_exit_exitK_XcptFilterM_ismbblead_cexitexit_acmdln_amsg_exitn__getmainargs?_initterm__setusermatherr_adjust_fdiv__p__commode__p__fmode__set_app_type_except_handler3k__dllonexit_onexit_controlfpGetStartupInfoA_strnicmp_strcmpi_strdup_tempnam_close_read_open@T@@T@@T@@@@T@@@@@@T@@@@T@@ @@l@T@<@,@@@@@@@@@@@~@@@@@Software\Microsoft\Windows\CurrentVersion\UninstallSoftware\Microsoft\Windows\CurrentVersion\Uninstallmessage_boxdirectory_createdfile_createdget_root_hkeyget_special_folder_pathcreate_shortcutCSIDL_FONTSCSIDL_PROGRAMSCSIDL_COMMON_PROGRAMSCSIDL_STARTUPCSIDL_COMMON_STARTUPCSIDL_DESKTOPDIRECTORYCSIDL_COMMON_DESKTOPDIRECTORYCSIDL_APPDATACSIDL_STARTMENUCSIDL_COMMON_STARTMENULib\site-packages\DATAScripts\SCRIPTSHEADERSPLATLIBPURELIBsno such folder (%s)unknown CSIDL (%s)function not availableSHGetSpecialFolderPathAshell32.dllFailed to create shortcut '%s' - error 0x%xSetWorkingDirectory() error 0x%xSetIconLocation() error 0x%xSetArguments() error 0x%xSetDescription() failed, error 0x%xSetPath() failed, error 0x%xQueryInterface(IPersistFile) error 0x%xCoCreateInstance failed, error 0x%xsss|sssiCoInitialize failed, error 0x%xissi100 Made Dir: %s .py200 File Copy: %s Error200 File Overwrite: %s Runtime ErrorTimes RomanThis Wizard will install %s on your computer. Click Next to continue or Cancel to exit the Setup Wizard.Don't know Python's installation typeStrange\python%d%d.dllPython Version %d.%dCannot installNo Python installation found in the registry.Python version %s required, which was not found in the registry.Python %s is required for this package. Select installation to use:Software\Python\PythonCore\%s\InstallPathPython Version %s (found in registry)Software\Python\PythonCoreCompiling files to .pyo...Loading python...Compiling files to .pyc...Failed to unzip installation filesInstalling files...Running pre-installation scriptReady to installClick Next to begin the installation of %s. If you want to review or change any of your installation settings, click Back. Click Cancel to exit the wizard.Py_OptimizeFlagPySys_GetObjectPyRun_SimpleStringPy_FinalizePy_SetProgramNamePy_Initialize%s%cimport py_compile; py_compile.compile (r'%s')SOFTWARE\Python\PythonCore\%d.%d\InstallPathPYTHONHOME=%sOut of memory!rbRunning the pre-installation script failed Can't load Python for pre-install script (%d)aPyErr_PrintOSErrorValueError__builtin__PyLong_FromVoidPtrPyErr_FormatPyArg_ParseTuplePy_BuildValuePyCFunction_NewPyObject_GetAttrStringPyObject_SetAttrStringPyImport_ImportModuleUninstallString"%s\Remove%s.exe" -u "%s\%s-wininst.log"wb%s\Remove%s.exe040 Reg DB Value: [%s\%s]%s=%s Could not set key valueDisplayNamePython %d.%d %s020 Reg DB Key: [%s]%s Could not create key%s-py%d.%d999 Root Key: %s Source: %s *** Installation started %Y/%m/%d %H:%M *** %s\%s-wininst.logCould not open keyYou do not seem to have sufficient access rights on this machine to install this softwareHKEY_CURRENT_USERHKEY_LOCAL_MACHINEPostinstall script finished. Click the Finish button to exit the Setup wizard.*** Could not load Python ****** run_installscript: internal error 0x%X *** freopen stdoutfreopen stderr300 Run Script: [%s]%s \Scripts\-installPlease wait while running postinstall script...Installation failed.Running Script...Could not open postinstall-script %s PySys_SetArgv*** Installation finished %Y/%m/%d %H:%M *** IsUserAnAdminSetupFailed to start elevated process (ShellExecute returned %d)runasBad user_access_control valueoopsnoneautoforceuser_access_controlinstall_scriptmetadatanametarget_versiontarget_optimizetarget_compilebuild_infoinfotitleSetup %sCould not register window classSetup.exeSetupWindowClassif exist "%s" goto Repeat del "%s" :Repeat w%s.batCould not delete keyCould not delete valueuninstall-script-removeUninstall Finished!%d files and %d directories removed%d files and %d directories removed %d files or directories could not be removedYou do not seem to have sufficient access rights on this machine to uninstall this software%d Run Script: %s%d Reg DB Value: %s%d Reg DB Key: %s%d File Overwrite: %s%d File Copy: %s%d Made Dir: %s%d Root Key: %sAre you sure you want to remove this package from your computer?Please confirmOut of memorycould not open logfiler2. arg is not -u-uWrong number of argsSetup program invalid or damagedThis program is normally started by windowsRemoveCould not open archiveCould not create temporary file~duInvalid cfgdata magic number (see bdist_wininst.py) 8nhklmn     0 8Z@(n, BBB999111)))cR[RABZRYRZRAB[R[RAB[RAAB[ && &&&@JQ1AA1ZQ1111ZQ1AAZ@JQ1AAZQ1AAJ eu eu @ABZ@J@G@F@F@G@AABX@J@AABX@J@J@AA1X@J@G@HRX@G@AAG@ZRX@AAG@JQJed%ed%ed@AA1ZQ1AA1X@J@HQ1AA1X@1A1ZQ1AA1ZQ1A1J  & & RAABZRABZR[R[RABZRYRBZRABZRBW@J@J &R[R[R[R[R[RABZR[R[R[ & & & & & & &@J@J@J@J@HQ1AA1X@J@J@J@J@J@J@G@J@G@JQJ@ABZQ11Z@J@AAG@J@G@GQ1J@AA1ZQ1YQ1[@J@AAG@J@G@1W@J&@I@G@J@J@J@J@G@J@G@Z@J@AA1X@J@HRABX@J@HQ1AA1X@J@J  &  %& & & &RAABZR[RZRAAABZR[R[RABZR[R[@H{SetupMS Sans SerifP} This Wizard will install %s on your computer. Click Next to continue or Cancel to exit the Setup Wizard.P}PhnP}@H{SetupMS Sans SerifP} Select python installation to use:PP}7Python Directory:P}jPhnPP}BInstallation Directory:@B2Find other ...@H{SetupMS Sans SerifP} Click Next to begin the installation. If you want to review or change any of your installation settings, click Back. Click Cancel to exit the Wizard.P}msctls_progress32Progress1P}Installation progress:Phn@H{SetupMS Sans SerifP} Click the Finish button to exit the Setup wizard.PhnP}(PK!o,`command/wininst-14.0-amd64.exenu[MZ@  !L!This program cannot be run in DOS mode. $%KKK|kK|k`K|kKVWKHKNKOKKKKJfK_CKZK_IKRichKPEd *PX" pȗ@p `d@ XZ` lT.text `.rdata*@@.dataKl@.pdataZ\|@@.gfidst0 @@.rsrcX@ @@.relocl` @BHtt +|>+B|.PK8t33ۉ\$@fB;\.LcLMcF*A8LcLA>PKuA<$PKuAF.AN LcAFLID$HcHT$DIT$HIHHHHD$`H D pHuHL$pHHT$pHL$PHH8u<\tHL$pHH8ufHL$psHcHD$pHHD$XE3HD$H2HIIF8uIUE3҅HHHHD$HL9uMD$HL$pIH\$PHD$p8t8/u\HuHL$pHH<u<\H\$Xt_ENHvHD$0HT$pAF LfD$(3AFfD$ Ht'ANED$ENHT$`L$ HD|$@HFD.AED|$@BD.D;T$D3HT$HHIMHIF8uHL$pHHD8uLD3AH„uED$HL$pIcIIE+HD8uH\$P<\t </tHL$pHHD8uf:\t:/uHAMcHL$p@HH3zL$I[8Is@I{HIA_A^A]A\]HEHEH\$Ht$WH0IHHE3H\$ LHHŞH\$@Ht$HH0_HHPL@LH SVWH0HHpHE3Ht$ LHHyH0_^[H\$Ht$WH0IHHKLLHHHD$`HHD$(Hd$ >H\$@Ht$HHH0_H\$Hl$Ht$WH0IIHHH\$(LHd$ LHHHߣH\$@Hl$HHt$PHH0_H\$Ht$WH0IHHH\$(LHd$ HLHHHHt$HHH\$@H0_HHPL@LH SVWH0HHpH+LHt$(Hd$ HLHHHHH0_^[LD$LL$ SUVWH8IHl$xHHHl$(LHd$ LHHHˢHH8_^][H\$Ht$WH0IHHH\$(LHd$ IHHH\$@Ht$HH0_HHPL@LH SVWH0HHpH7Ht$(LHd$ IHHfH0_^[/H\$Hl$WH AHHHtwtnviH\uU80|W83~#8nt 8ruHH ;f HH/AHT$0HQ< u HHD$0 HHuHl$@H\$8H _@SH HH HtH6%HH [HݎHuHH\$WH HٹY9HHH H\$0HOHH=H _H\$Hl$ VWAVHHXdH3H$Hf3E3LH@AHuH AE3HHD$ DBHH qH!|$ E3DB*H53Hۃ LH׏HL$0HL$0AօtLDKcHޏHL$0HT$0H Hd$ LcDBLH ƞHvHrH$H3qtL$I[0Ik8IA^_^H\$Hl$Ht$WH0HHHÀ<ud$(DKHd$ L33Hɋ7HHu3+l$(DKLH|$ 33vu HbHH\$@Hl$HHt$PH0_HHXHhHpHx ATAVAWH DHHPHHH=HHH*HHHHHLHHL3H9 u3GHt?Ht:Ht5Mt0Mt+Ht&EH UAI2ՋH\$@Hl$HHt$PH|$XH A_A^A\H(HLD$@Hu3HT$@H H(H(HLD$@Hu3HT$@TH әH(H\$WHPH`H3H$@H=HuBH IHuH _H@JHFHHLD$ HHH=t3H=kHT$ H行tH rH H GHkHcHE33DHT$01tHT$0H }˘H HLD$ 3H$@H3qH$`HP_H\$UH$@HH_H3HHd$h3Hd$pHڃd$XHd$xHd$PHd$`yHMH DHD$XHHD$@LMHD$pHD$8LEHD$xHD$0H(HD$hHD$(HEHD$ wu3HD$PDHD$ L 3H Ty H_HL$PLD$`HCHy H9HL$PHUHy HHL$PHUHP8y HHT$hHtHL$PHPXy HHT$pHt#HL$PDD$XHy HHT$xHtHL$PHPHy HیLEHED$(A3HD$ 3HL$`HUDHP0yFLEHH ;D*HL$`HtHPHL$PHtHPdHL$`HPHL$PHPòH ֈHH3_nH$H]LHHIKHIKMK HMCH<bu3-DL$`HLD$hHT$0̱H HHH hH%*H\$UH$@HH|\H3HLKD$0H,HOHHHHD ÔHD͓HHL$@HD$ LL$0HLEHT$@t#LL$0HLEHT$@t3GHMHH9uFfHMHH9u3ҊH„u3HMDBHH3lH$H]H\$UVWATAUAVAWH HIH0HQHHHVHL H[HHHXHLHUHHHD$h̫HUHLHRHL3HD$pHHMMHMMH HHt[HHHHHH-fHґHHc3HHAHLHAHv rHl$hHD$pHx3H-L5XL=yH\$`H A_A^A]A\_^]@UVWATAUAVAWHpHl$ HHYH3HEHHMHŅHtHMHHE`HمHLMHHL:HHL'HxHHHHHEHHHE3H9MMMMHwH9MmHdH9MZHJ8 BH u"HJ HHXLFH LbUHHm3HAL+HI >Ht3HHHGH;|HӹAH0H Ht HHH;|HUλ)uUDE,A@HcHAH;w HH蘔H+H|$ H~HcH: Hc:AՋAԋ HMHH3thHHePA_A^A]A\_^]H\$T$UVWATAUAVAWH@I!L33IM͂Hd$0E3D$(DźD$ HL<H؋ܨLΨHӋH$HӹuHHtMIHHϋw# HHqIչ&H$3H ;s 3H GHc*E3HHtCE3D$E33HHL$DL|$ H$HD<HIH$H@A_A^A]A\_^]HHXHhHpHx ATAVAWH LLHDHIL1HIHHIH HTIHHMt;Ht6Ht1Ht,Ht'H uAItIՋ؅t׋H\$@Hl$HHt$PH|$XH A_A^A\HHXHhHpHx ATAVAWHHiTH3H$H=332Hd$0E3D$(HD$ LEAH@L0H֋LH֋ߤJHHu-dDH*HL$PHL$PHH.HˋI׹IԹs3HxDG-Hc(HHtdd$@H̄H+Š H„uE3E33HԣHd$ HS,LL$@DHQD$@H˃,H H HGIH$H3cL$I[ Ik(Is0I{8IA_A^A\H\$WH`H|RH3H$P3HtEHD$0DD$(DHD$@3ҹHD$ mHT$@HL$PD蛜HL$@(D$PHL$PHcLH+HD$PHHJH LAHT$P3H$PH3cH$xH`_LISMCMK SVWH@HQH3H$0HIsHt$(HT$0Hd$ LAHH躍tot%H HH!E3H pHc^DI9L$hLH GQHT$0%A0LɂHHT$0yH FHtHrL$h H$h.sHtBHwHGu/H$h~ H HtL$hHH$0H3?aH@_^[HHXHpHPWH@H`H ԉE3@@EA4HHu3lHT$XHHd$(E3Ƀd$ 3HˋEAHHHtHd$ E3E3HAQHHHÉ5H\$PHt$`H@_H\$WH0H=HtQH=uGLHȃd$(HEH IPMHT$ ACHHH^pH\$@H0_HHXHhHpHx AVH`HNH3H$PH 3C+T +T"H- HcHH-ޙ|PK!;{V4tHq3LcCEtHcCHH+I+H LsA+A+ЉuIcH+"HHHT$@LH'E3HL$@tnEE3Hl$0Hfl$(fl$ AHxHHtYMcHHHH@8,uHKH譋HHH5ИڟşH3H$PH3U^L$`I[IkIs I{(IA^HhHL$0HL$0E3D$ E3HL$03%uHh@SUVWAVHHLH3H$Ht HT$p.H^E3E3ȸgfffH~HD$hD҃d$`3҃d$Xd$Pd$Hd$@d$8d$0AAʉ\$(AD$ HH`HHrHL5HHA<uL$ DMH:H$HA<u \$ DMH HHHHT$pH'3H$H3\HA^_^][HHXHpHxLx UH8/H+HKH3HHPD$`3HD$h3Ht$pHu3HD$xHE[L=\}HuHL$`HEL}şfuH iLJ}E3HP}L[H\}HMj3*HL?Ht$XLEH\$PE3Ht$HIHt$@3ɉ|$8D$0t$(t$ AHȺHHoHHH3%[L$I[IsI{ M{(I]H\$WHPHIH3HD$@HT$0Hq3DT$0ȋD$4D\$LD$`HzHM(HD$PAE3HD$ HUHu{D$DHHtVHL$PHD$DHD$(E3E3H\$ 3u0LME3ILHLcIHL$PHd$8Hd$0Hd$(Hd$ HL$HLL$@LD$`HL$HWHMPH3vWL$`I[0Is8IA^_]H\$WH0HD$@AE3HD$ HHRH3ۋu HL$@ËH\$HH0_@SH HQHH;tKH=uu:HQ1ALlyHmyVHHHH QH [̋ }~HVPu=}HEP}H|RHl$H|$Ld$ AUAVAWPH+HDH3H$@HNt+fD;IfD;3HF}HtE3HD$ ArЙHϋHH]HƙHHCHd$ E3AH}LHvHd$ HLcAHϋU|t8L|HxH$@L$@H!|EuGt&Ls|H,xH$@H$@HUxALxxHHAE3HEϺpTHd$ E3AHIHLA;u\EOE3HȺpLnHSLnH>n{DvIME3HȺpHd$ AMcMHL-{IH+HH N HuMźHHd$ MAHHcLHtgMHD$ AHkL zILyH wu"D zH wDyH MuI ym1utL3B *L0H„uHD$0IB<0uHD$0A|\tHL$0HH9u%mfHL$0HH9uM@3AH„uLD$0HYAy8uOHd$ E3ɺAeIHA;u EN wAE3pH3H$@H3RL$PIk(I{0Mc8IA_A^A]HHXHxL`Lh UAVAWHXHH@H3HH LHuHHuL=vLHDIHd$@HD$`HD$8E3Hd$0E3D$(d$ XtEu$HjuE3HEH3ՔE3LuHIL% xL-xMMHuHL$pHuHL$pHjxHu9LLD$pHjuHzPHRHL$XjHL$XHL$XLLluHL$p H wHT$pH wLyHguH wHduLwHguD vHMĉD$ HL$`HD$PHD$@HHD$hE3HD$8E3Hd$0D$(d$ t \E3L uHHzHL$`oAD9t$PuH wLMHtD vHvDuHtHL$pHD$ HHL$pHH<uHL$hHtAEΉD$(E3HD$pHHD$ tE3LtHHT$pH `vHD$pHD$(LMH\$ HxtMHtMHL$p`HtHL$pKHcrLH zuMH;HMLd$(MLl$ HHtHL$p HD$pHǀ<8uHL$hHD$pAHLt|$(HEHD$ E3 tE3LsHHT$p‘HL$pMHL$(LH WuHsH\$ &AHH3ML$I[ I{(Mc0Mk8IA_A^]HXHB<H3H$@HL$ 5HL$ 蛽HL$ 葽LLsHL$0H tHT$0H tHt:H$@H3MHX@UVW@xH+H;H3H$0IHNtxt4Hd$ MDBLƺHHt$ E3DBw>H$0H3]LH@_^]HsHtE3HD$ Ar-L&sHrHL$0ԏLD$0H LrHAy1t0Ay8AE3HȺpbH=u$sƏE3E3HȺp2HE3E3HȺkuHLrHHA<uB|\tIHH9uefHA<uHHNHB-^H WrHHt9tLqHӎ=GrLqHH?u H qK=r=kqtKLqHoH tLqVqHHt3HwH=qtW=fntNLqHH 3tLqHHtHH3ZJHHpLpLx UHhHpH^8H3HE`HNu=p=lHd$HHqL%qHD$@=3HpD PHuHL$PHH9uqqfAHL$PHH9uL l3AH„uH IpHtLL$PLjHp 3?HLLL$0HD$PLD$8HD$8HL$PDtHHpELt$0MtMƺH?LpH*I袸I)|eH[oHtE3HD$ Ar=fou#H`LbHHLEE3E3HU)Ay8uAE3HȺp'3HM`H3iGL$pIsMs M{(I]H\$UHl$H H5H3HEHnHL$$3DBd_HeHM33HEHEHED@`_3D$ hD$$gHd$PHL$ HD$(H`HD$HHD$0kąHL$ D$$HEH4HD$HHD$0lHL$ D$$HEHlHD$HHD$0mlHL$ D$$HEHHD$HHD$0n@3E`HEHeHMHeeHEHEHEH]E EHMH3EH$0H ]H(H b_Hu3H(HdnH[Hd^HtH(HHH:4H3H$=lu3RLlHgHL$@ HD$0AE3HD$ HT$@HuHL$0H$H3EHĨHH3H3H$D$(L 2_Hd$ LmHm3 /DH}mHL$0ZALmHT$03PH$H3pDHH\$Hl$AV@"pH+H3H3H$0H~~L5^HD$(H-7mLL$0MƉ\$ HH$m APHT$0H jH,~LL$0HD$(HlMƉ\$ H˃DHT$0H mH}L mHD$(HlMD$ PHL }HlAHdL }HlA:jHAgHjHu}MHD$(H~lLD$ HHK}L iHD$(H`lMD$ PH VlH}L fHD$(HFlMD$ HH|L iHD$(H(lMD$ HHHÀ;u\HlH huuuuLHkH htu[uKtBˀ=ht7HkH }htt E3LkHHkKHXisH hH {HtTH hHt3H$0H3AL$@I[IkIA^HHH+Њ: u Hu3H\$UH$HH/H3HAHU3LEHjHHjHHjHH4LEHHj!LEHHjLHHjHhHL$pD3YHD$P\$pHD$HH3EHD$pf]HD$@E3HZE3HD$83H\$0D$(D\$  tUHL$XSHȍSqHȺHL$PHL$XWHL$XHH3?H$ H]H\$Hl$Ht$ WH0Hl[HHPHH]HHPHH HHPHtH B:HD$HAHD$ E3HW}tE3LycHH͂=HL$HHS}twE3LiHHHL$H}H>H\$@Hl$PHt$XH0_H\$Hl$Ht$ WH0Hk[HHOHH]HHOHH=HHOHH 59HWAHD$HE3HD$ |tE3LibHH=HL$HHS|tgE3LhHHHL$H~|H.H\$@Hl$PHt$XH0_@SH :NHHuH [H ׷uHH [H%}@SH :NHHuH [H 蛷uHH [H%|H\$Ht$WHPH+H3HD$@[`NHu3HH]FNHHtHH5UHH+HDA+uHEuHd$8HfHd$ LL$ LD$(HD$0HH\$(tHHfH|$ Ht!?tE3LfHHH褬H+ HÄuHL$@H3;H\$hHt$pHP_HHXHpHx UATAUAVAWHx`gH+Hu*H3HPE3HT$@3Dt$0!t$43LEn t HCfHJ:JfA:$ t A $H~H~Hj~IG AAE+AH+EoD+AD+EgHGEVDIAI@IG#AF@H(A_A^A]A\_^][E3HtfHQ(Ht]DBDADA LA BtALHHHHB`HBX3LDB BLB LB@ǂø3HtHA(Ht HP,P4pH\$Hl$Ht$WH HHtXHy(HtOy3ƃ0}tCw*HW8Ht9_(t HI@U8Hg8H͉w_(hH\$0Hl$8Ht$@H _H\$Ht$WH HMA81AXHuA~Ha Hy0uHa@Hy"HA0Hy8u Hs"HA8HI@AS0HHuG1H{(H`8HtHK@HS8Hc(H\$0Ht$8H _ELº$EHtJLI(MtAy Aa@AaD3Ã+EADEA wEQDAA#AA@͸HiqAh HAXHWyHA`AlHHXHhHpHx AVH HY(E3AHHL9s8u!K(DHH@P0HC8HuD9s,u K({,Ls0{,;rHK8H+HDPDs4C,R+{4H֋K4;GHK8DH+O+tHK8DI+HOk4{4C4;C,ADƉC4C0;C,sljC03H\$0Hl$8Ht$@H|$HH A^@USVWATAUAVAWHHXHy(3LHH9QH9u 9Q? u DQELYL DiDw@wDL]LMDUHDmDUPUH_lLh ;-TtC\HXA_A^A]A\_^[]ø;s&EAIDLMA̓rDwAt HyAt HyHO Ht AGt'OHUXDuXAADuYLM3҉GD!ExAIDLMA̓ rHG HtDpGt5OHUXADuXAEYAAEZDu[G3LMD!EAIDLMA̓;rHO HtAƉAAHG H Gt#OHUXDuXAADuYG3LMDGHG HtHPLMG _HA;AG݅HG HLHMP+WHH;vp+nEAIDLMA̓;rHG DwHHtDpGt#OHUXDuXAADuYG3D=L}DIIK3L}GtMuODIb3҉GLMD+L)_HLM9WH:WHGEڋF<HG HtHP HtOH;H(sD<GH3EtA;rGt MuODILM3҉GD+LLMEtMHG HtHP WHGEuڋF<HG HtHP0HtOH;H8sD<GH3EtA;rGMkx9Wu, pEAIDLMA̓;rGtEAunLMDEPDUHL]ID$ sHHOlDGxLHG`GtHDL|$(HL$ HG 3҉E؅t HmLMLhDEPH_lDUHL]AruArlM\$AET$IM $El$Dw@wD? M\$M $ET$El$BDw@wDDEPL]DUHLMAL_XHAH#A;EAIADLMA̓HAH#HGX;wDAAE‹AȉE`AAAE#ADCDADD;viL}EADMaAIDEbAAAAL}E#AADHGXBDED;wLhMaA+3҉+AOHu  t @t H=jLMȃOPWPtC!EAIDLMA̓;rۋʸ+A#AGHGH3҉ L_`HAH#A:EAI DLMA̓HAH#HG`;wDAAE‹AȉE`AAAE#ADCDADD;veL}EADMaAIDEbAAAAL}E#AADHG`BDED;wMaA+LMLhDEPDUHL]+A@t HXhOLȃOPWPtO-H$igEAIDLMA̓;rۋʸ+A#AGL3EZOLAA+;+;O09HgZtWt.9W!EAIDLMA̓ rE+ED$DGEt?9WIAtH+u#O OH+L]3DUHLMGAD$LADUPAEA%A9WAE;Ot H\hPD9W9W !EAIDLMA̓ rD;wHhEGHAIAL]DUHG4;v W,+++HW8GH;v GHIH+ыA;AGD++DUHI+ӉGHBAIÃu3L]A9WHM\$ET$M $El$Dw@wDEL}DEL}3HE]PID$EHAD$M<$El$Dw@wD9W,u A;\$t+?&IT$DE+D$Iy3҅t A+\$A\$EA+D$AD$ _9Wt>t:9WIT$tH+uODIOH+De3҉GAD$L?t?DuAGظɃ@? DЋEAѹWDAT$HD@SH HA(HHt-LA8Mt$HP8HtHI@AHS(HK@S8Hc(3H [H\$Ht$WH IHHtMHY(HtDC0t/Ht*S4H+HS8D8DC4K0HS8I+H8HtC03H\$0Ht$8H _H\$Hl$Ht$WH AHHHtHY(Ht {t; tH\$0Hl$8Ht$@H _Ã; uDƹ;CtH.DHt C 3HtHA(Ht@t HP b@3øD E3LEttQVDE3f@+щVDr"DN@F@ABD0ADN@sVDHN|!HT$0HHN|DGG )GDW H~|t#DOHDW 3DO H\$8Ht$@H _3HtHI(Ht9 u9ADu øH\$Hl$Ht$WAVAWH HHHHHz(HHB0HHz8HK@AAAHHu E3L9w8t&O(AEHK@S0LHu HK@HS87HHEKDBIMC E K0M0C@E@KPMPHI@ A H0I0@@A@HPIP@`A`IHpIII+uHHI@ A H0I0@@A@HPIPH@`HA`HHHOXH;rAHH;w5H+H+HHRHHFXHG`H+H+HHRHHF`HH+H+HHRHHMtO(HW8AIET4Lv83Hu(H\$@Hl$HHt$PH A_A^_HtHA(Htǀø3Ht-HA(Ht$8uPH8u +PHøH\$UVWATAUAVAWHl$HHH3HEL}HHUM3ELEwLMD҉MDbLEL}AHH EfTAvAEtHIIfDdEI+uA8MAAf9TEuDE;sA;AGEuHD$ @D$ IMIEM+uE 3HMH3H$HA_A^A]A\_^]EE;vHEf9u EIE;rA;AEABALE+0EAvE3҅~E;fDUIʺD fD fD II+u3Et+Hf9tLEfEOfDdE3EIE;rE3ۅtBA;tH5e[AHuH\5H[H+H5~[H+AHuIL}IAIEAD\$$ED\$(AHEAMEHUD]ACEu ATwA;uAPv pDd$(AA*ĈD$!HM AA;} 3fL$"D$ ~ ND$ JD$ `3fD$"D$ ALmA+̾D]AA+ADD+uLmAHASuE3ۅt B#AۋL$$AL$$fTEu E;HM AHEDHL$$D]HUHuD;DeD#D;eD\$(AHMEۋEDDA+D\$(DH HME;sBL]+х~ AE;rLmEAAED]u AT{A;u APiIEHUDeB4IEHuB|IMHEH+HfBDL$$%C%xD%bD%dDffH; uHfuH7@SH H3AHA@HȺ H [H%AHL$H8't)H HD$8HjHD$8HHHSHHD$@H HkH HHkH HL HkH HL H tH8H(H(̉L$H(&tD$0)H HD$(HHD$(HHHkH HkH T$0HH _sNH(LD$T$L$H8M&tD$@)H HD$8HHD$8HHmHH7 |$HvH|$PuD$H|$Hv D$HȉD$HD$HHkH T$@HD$ D$ D$ D$H9D$ s"D$ L$ HLD$PIHH Pr?H8H\$ WH@H>HHT$PHE3>Ht2Hd$8HL$XHT$PLHL$0LHL$`HL$(3H\$ r>H\$hH@_@SVWH@HC>H3E3HT$`H1>Ht9Hd$8HL$hHT$`LHL$0LHL$pHL$(3H\$ >ǃ|H@_^[@SH SH;tl H J uVXt H tD 3H [ù1̹&H(3H(H( H(H(H(H\$WH0u @2@|$ l؋ u uJH?H a?t H??H (?q@@|$ #HH8t"HjtHH E3AP3HH8tH:tH 61LD3H hNuG@u3ұ!%ù|$ uH\$@H0_H(H(S@SH ELH GhD3H [4H(H(2HHыH3ƒ?HLHAй@?+HI3HHLcAOL*OHHtHHӋ HӋH\$0Ht$8H _H\$Hl$Ht$WH AL NLNHHNHHtHaDŋH H6H\$0Hl$8Ht$@H _HE3¹@?E+HIH L3H;HHу ILH@L;ūu9SH HlH HtHt8H#HHiH;uH [H@ƒ?+3HH3LHAй@?+HI3H@ƒ?+3HH3HFH!HH\$Ht$WH H!HAAaHHH:E3LA @:tAA<;wI?IrA<v~v t5IAAH8uHmHtHH@:t&H#CC{uC AAHt$8HH\$0H _ḦT$SH H!HAatAHT$8HH [H\$Ht$WH 3HHHtHE3VH ;@HtH ZHOHFHxHHH$C@qH1cHH\$0Ht$8H _@SH H3ɈKcH Ht!HD8 tHA8uEtHHH [H\$WH aB3HDOH;;DGDC;ukHHuCHH\$0H _H!HAa@SH@H+H3HD$8E3LL$5DYLaHLED\$5HyAIIHIH D*A0ELHuEtIA-LD$5IE+HHHL$8H3H@[@SH@HH3HD$8E3LL$4DQLaHLDT$4IHIH D*A0ELHuLD$4IE+HHHL$8H3CH@[HWHHHeXQH3D@ADA H̃ HAHAXDDL{LlE3HtD uHfL]D^H/D$0QHD$(HQHH D8HeWQHHE3HWHHt B,<vLLAH̃IHWHHHQLAH\$Ht$WH AHWHHHEtEHt@HcH E3<HCHȉ{Htt$H+׊HHuc HaaHt$8HH\$0H _HH Z1<ḦT$SH H!HAatAHT$8HH [H\$Ht$WH 3H@qHفaH1HtEE3VH ;HtH 0VHOHFHxHHHu CAHt$8HH\$0H _@SH HH3DKcH 8 t HA8uHHH [@SH aHوQ;ugHHu CH#HH [@SH HA w"9tD;IcHLH:HH [H\$H|$UHH`Mȸ!E#HvHeHeMH8?P@u>H:HM)HPHHMrHHME(MU$uV3HMYfofsf~E<t=uSH8tGHHHMb))M'?uHx@u܁HeM(M}u3}t=u H`8ufMHUHMHMHuOH}HtHHHHHEHcHHHHHHtSDHMHNHHȊt%A HA:uDHD8tHuފHH\$pH|$xH`]H\$WH0HIHL$ HH<H\$@HH0_H\$WH0HIHL$ HHH\$@HH0_H\$WH0HIHL$ HHH\$@HH0_@SH HHIHH [@SH HHAHH [@SH HHIHH [@SH HHIHH [@SH HHAHH [@SH yH(H:u RH9u HHH [H\$WH A@HD8AZtVH9uH!T$0HT$0AaA1E3H AP6HtH P@xHHHvHH\$8H _H\$Ht$WH yHHg3Ht`H91uLTB<v CE3H ?AP6HtH PHOHFHxHHHHt$8HH\$0H _H\$Ht$WH yHH\3HtU8tQH9u8EE3H AP5Ht"HD8t HA8uHHHHHYH\$0HHt$8H _@SH yH+H9t BvtaHHHH [H\$WH 9 HHt;H:t5E3H AP4HHt 3Ht HcHLHH\$0H _̀yt B<~AH3HHA HAHALAH\$WH HyHt4HAHA%HGH_HHOHHOHGHGHuH\$0H _̋&ШHcH d@HuHH\$WH HHHt?E3H AP 3HtHH NHHHPHxHHu CAH\$0H _HHXUVWATAUAVAWHhH\$HLHd$@)pH\$H)xUI}tAEt EeuH u&HL$0IH uAE DAQE3DAAADEoA%`EwAAɁ#ωMt%;t.ׁ3AƁsZ @ 7HL$00 HMHHHME(EfD$@\$HDEoE3ɅA3HL$0#AE{HME(EHT$0HMfEbHUHL$@THiHM׀8tW8At:P{|$HpxDEof@ ؉\$HQHH3KH_ uH,HL$0zHUHME(EHGHMfEHUHL$@HGHL$@HL$0 ШШ HMHT$0HME'(EHM fES(EHT$@HMfE(u]oDmwIDeϺ!UD#!U!U!UHMHMHMHMHMDeυEte%=u.HL$0!(D$0HL$0fE!(D$0fEEt$%=uHL$0!(D$0fEHL$0~!(|$03ɺ(}E%=CLM!UL`D$ <`t'!UHL$0HeHUHe;(D$0fE9!UHUHMHMHL$0}t|$8~D$8AD Deϋ Шt8t.HMHT$@HL$0D$0S(D$0fD$@'HL$0|$Htx~@ ؉\$HI}tQH|$@t>>u2 HMIHL$0D$0HT$0HL$@ AED$@eE3L!mD9mt_3HM<HDHHMHHL$0D$0HT$0HL$@pt (D$@(u>E3H APi-LHtH @`E3IHM<0}+E%=u{HCHMUHUHL$0D$0(D$0HL$0,fD$0(D$0HUHL$0fD$0(D$0HL$0,fD$0(D$0fD$0,Et]%=uOH|CHMD$0HUHL$0@(D$0HL$0,fD$0iHT$0HL$@H=CHL$@cHCf|$0HL$0LHT$0HL$@HM (HMHzHHL$0D$0(D$0HL$0)fD$0HT$0HL$@E3}oAE3D9ewAEAAEDžt!Et%=tHUHL$@FxHMШt8HHL$@!&8|$Htx~L$H@ ȉL$H+HMШtLHHL$@&L|$Htx~L$H@ ȉL$HHM?|$Htx~L$H@ ȉL$HШtMt(D$@AEf(t$@]oDmwIHL$@@A|EA#=huHT$@HPEukA#=pt=`uX3HM0(D$@HL$0{fD$0(D$0HUHL$0fD$0(D$0H@H%A;uU(D$@HCHHM8HHk}HHv8@RHHcCE3ADAA`AEAAEEAAD#t%3ɋ%A=t H@gEt%3ɋ%A=t H@=EEEA%t/3ɋ%A=tH@HL$@EuA#=xE3AE3EAEAAE%tc3ɋׁAƁu3AƁt/H>HMCHT$@HL$0D$0(t$0HT$@HMj 0)t$@EAAEDž ШEAAAEDžtV3ɋA#=EEt8H ?HMHT$@HL$0D$0(t$0A)t$@Et A#=tZEAAE׋Ɂtlt A#=t*EAAEυtNA#=tt>A#=u2Hq>HMHT$@HL$0D$0|(t$0)t$@ШEAIJAEDžt!3ɋ"<@AEEt H>fEAAEDžt)3ɋ"<3EEt H=/EEEEtN@3EEt2H=HM/HT$@HL$0D$0(t$0)t$@3Ɂ3EEE%t: u2Hu=HMHT$@HL$0D$0@(t$0)t$@s-HM=HMHT$@HL$0D$0(t$06L$HI[@A(sA({IA_A^A]A\_^]̋Ѓ̋Ѓ̋Ѓ̋־Ѓ̋ƾЃ̋Ѓ̋Ѓ̋ Ѓ̋%Ëz%H\$Ht$WH H9AHHtaH!AjHtat]E3H FtAP$Ht0DHH9"#HtH3>HH3HHu CAH\$0Ht$8H _̋½Ѓ̋Ѓ̋ 3``̋Ѓ̋~% ËrЃH\$Ht$WHPH!HAayH8@8Zt3,HH8DA0A w(H HT$@HHHHnHd$ HT$ d$(HL$0H_+HH+H~H `9 t HT$0yHT$0H@HUH;ucH#CH:{ HHt$hHH\$`HP_@SH0HHـ8X8ZHL$ |$(ufHһ8tZ8@t`8ZtHR(D$ H=:HfD$ HHL$ ШH:HE(D$ MHH^HH9HKaШH7HEHH7H oHH0[H\$Ht$H|$UAVAWHHpHE3HLD88e!AHu<[HMTWHMEx(EHM]fEHUeFL}ttH0HMbυt`HZD88tT3HMn[HMHHHME (EHMв]fE8HUHM}~L9>teFt E<(HMrHHME(EHMв)fE(EfEHUHM(EfEHUHMZ(m EAHML9:t?(HHME7(EH`9HMfEz(EfE[EкHM(EHM]fE"HUIL\$pII[ Is(I{0IA_A^]@SH@HH&+ШuHHL$ H 9tUHH 0t02t5uHPHUHL$02HHL$ B"H4HL$ HL$ HG6HL$ iD$ HH@[H\$UVWHHPHHH E8HeHeH ϷE0NweCmEvHGv:Iv,KvMPHk6HM2HN6HA6H06H6΃O7SX_HH *ÃNNGwyFsktJ$t!H5HMHMH*6HHMHHɺH HMH5먃HIv#KvMH5Ht5wH`5kH<5_ORtxStgUtVWtEw1HH HMfH~)EH HR5H65H5H4H4HeeE9L i ]LEHUHM']uH+HME[H1؃IHH @HM7fH~)EHu.HJ3HMH3HMA@]0M8Ct"At_uDEw<u7H3H,4HMHUHME(EfEH>t, HM HHME\HUHMO(E`H>uAt'H3HMt'H3HMrtHt2HML *HLEHU\& HMHHHH\$pHP_^]@SH 3H HH [H\$WH0HH8HAHHL$ ШtbtTtFt8t* ttu[H%=H%4H%+H%"H%H%Hn%H]%uHHL$ D$  _HH\$@H0_HHXHpHx L@UATAUAVAWHhH3)p)xLHy!UMHHu@u@80 8$Deu,ELEHUoHMH9ut E}HLHuHu@u@uD@+A:AM!U+!U(}ϋǃ+tuШGH9utGH=T$uH(EHM߲ fE(EHMHfE(EfEH $EEEEШMtCH=#uH f}HM(EHMHfE(})}LmaH#uHHM`Lm(}>Ű Шt9H9ut H=>#H/#uHHMAAH]HHS8$u*ELEHUoHM H9uFAAHD88AM+#H@80tHHuoHMH/(EHUHMfEH}(u)ut. fuHM(EHUHMfEt(u)uMt. f}HM(EHUHMfEA(u)uE3@Et HD8.tnH+HMuHUHMEHHM(EfED8(t# ~HUHME(u)uFHD8(t[HM#fofsf~M׀tx~M@ ȉM(uHvtHHf@tHM(uϋ`Шt8 < ucEHMMHUHME(u)u2 < u+HM}tx~M@ ȉM(u@t-H-HMHUHME(u)u@t-Ht-HMHUHMEV(u)uD8mtHI-fuHM(u)uD8mtH*-fuHMl(EfEϿEM9.tqA~uFM9/tA HMIHME(EHM fE(EIfE@AFt AEA HM8IM9/t, HM#IEHM_HUHMR }D8mtm (E$E9uI96tnA~uPI91tKHMIHME(EHM fE(EIH8HMsI91tHM[IĺI(|$pL$Is8HI[0I{HA(sIA_A^A]A\]LSHPHMK3L>IK!D$8ISIK!D$HL$ HHHP[H\$UHH`HHMH388?tI8XtHUHHHH9MuH0'H$nH )HMIeLMHHML$ LyHMHHUE끺HMHUHDHH\$pH`]H\$Ht$ UHHPTH s* HM3҉;-. EH?:HH8uOH8u#HMHͩ HH8u먀8$HMu f/!E3H3E3HMв8H}ut s E e }M~ (EBHIHM;H}=EtE(EHUHMfE+H(EfEЀ8@tKHME (EfEH$HM(EHUHMfE(EfEЋu؋MU tH}t uAtA uH} H\8t8@tRHD Zt'u#AuHeHUeHMHUH}uHHt$xHH\$`HP]H\$Ht$H|$UHH`L3DHA8QDVuMH5#LAuAH%A< w*M/LmHcHt HMHM3A@+tA<wLHAHcHMHL$AA:uAMLA:uEt%HtHM#ZHM@Ht2HM~HHMHHHMEHE HMLL\$`HI[IsI{ I]@SH HH p9_u5y_u/HH ZHAH JvHH#CcHH [@SH H0HH [H\$Ht$H|$UHHPHDAAAt  r3HHee HHTt{tmt_tturH4%`H%WHMAH&%HHMHHME(EfE"H$H$H$HMHeet (EfEHMHUHM(EHHHäHE$ H\$`HH|$pHt$hHP]@SH H>HH [H\$UHHPHpHHee8<0<1~-<3~ <4t5<5t,6<w{Ha"HP"H?"H."HMHHϩu+H#"HM6HUHME(E(EHHH\$`HP]H\$Ht$Lt$UHHPDUHH wIHeAADUIEH QD EAAE+7E;"9AEtHAHH AA;vKHeHUAE,AHMEDU`HMY(EHMHfE|(EHM>fEH}(EfE8$u IHe ^fEHMw(EHHfE8t IH4 AHMm(EAHH7EHeHUAD6AE>EDUHMqL5¡AEu2H8&uHLHH H8*uHSHH IH H#CcHt$hHH\$`Lt$pHP]H\$Ht$H|$UHH`E3HHH aAP4HHtH @`3HHHeLMHeLǶd$ HUHM!E!E(EHM fE(EHMHfE(EL\$`IsHI{ I[I]HHXHpHxUATAUAVAWHhHH3H UL8u#SHMIH,6<v9_t D1HA6H A)u(8t D1HA=H ޟAFvD ADGD;tD}A$D#H]ED}EA$9@HhHMHUHMEJH_HM(EfE8tAM HMHHHME (EHUHMfE3HUHME(EH fE HH О<@ԞL!UH΃`H H]HMt$ <`!ULMHUH](EfEA|@HMv HMHHHME (EHUHMfE(E3fEz!ULMHUH]=}w@8umEAD D}VHMWHUsHM}t@8p~M@ ȉMߋ@t)HMHUHMEB(EfE'HM}t@8p~M@ ȉMI9$t=(HMHUHME(EHM)fE(EfEE3H APLHtX`HLIHM'HM(HMH-HHMEi(EHM)fEHUHMH z`<`tEtHUHM' Y@HMtHHM#}t@8p~M@ ȉMߋHM@t#HHM##}t@8p~M@ ȉMMt(EAM' H&L$HI[0Is8I{@IA_A^A]A\]@SH 3HxHH [H\$WH H9Hu2HHXHHH\$0H _̃y$ ÊAH\$WH HQ3HtH:HtHHXH踥HH\$0H _H\$Ht$WH HyHHHXH胥HӄuH~HHXHgHH\$0Ht$8H _̋Q3t BHcHAH\$WHPH3HL$0_`HL$@HHHL$ D$ D$ 'H'H\$`HHP_H\$Ht$WH HzHHEtHH认HzHHDHA H;sRH;v3WH ęAHtH HtHKHtHHCH+HCHs H+HA HC HHCH\$0Ht$8H _H 1u3ÍB< wƒ/HH E3A@%tٍB<w4AADHH A:u֊HH ҘA:uAÃHHXHpHx L@UHH`HHHe!M3HeH!MH{A/1~d9C2HcHtHMHӠH}BHHMdHUHME(E!MHuЄHMu HM>HMHE HtHa;uE|HuHHHE3HM3%H0fH~)EHEHt.{1u(~HM衼HUHME(E)EHtHUHM(EL\$`HI[IsI{(I]H˺HHB΃BZ_ pHHsOD9t^tI/6~/8CHcHbHHӠn?CH+HJCHMЃHHcHӠ*mp?t0@~EBCu7DH HMm ;HHy0t E3H뽃TGSP+;uCHMHfHcHӠƿHu(EH$qhHcHMH( yH ʔHH 01t0΃w(EHUHwH+H (EHUHMfEMHM(,HMEqHUHM$HM,HMEHHUHMHM,HMEHUHM3HM)HMEHUHM(E'H3HMm(EHM fE(EHUHMfE[(ECHMHHcHӠE3HM3zfH~EHEuVMWY/_vHHA`DF~uJK@CHMHHcHӠ@t'HƊHMHHxuـ@u HHcECHMЃHHcHӠ茸H1HM8?u)HHMH8@uHHHHMHHM}CCCoCHM9HHcHӠ6[H}m @SH L HHH [@SH L HHH [H\$H|$UHHPLHHe!UHA$tt=tHHH"HMqH?t HMܿLL >IHULHELEfsf~EA@<$t^H˺lILGA5AtntZtHuIL ILH?tH5HM H0H IL@H HMHMHXHME裵(EHMHfE2(EHH\$PH@]H\$WH@HH $uH譫E3u HL$ >HL$ EtHx8t HHxD$ HHxL%xL-x $HH$HĀA_A^A]A\_^]LSHPIcMKIcL%D$ !D$8IS!D$HHvHHP[H\$H|$UHHPHxH8tW8Zu HeHeEHwjHMŻHrHHMHHME莦&HIHMHMENEв)H蔦H\$`HH|$hHP]H(LQwA@A3A8_u MAL0wA,A<A8$ME2L wAB$I@8PLDMLvE8t|A,Ft&A8Jt/A8K|A8M~A8O~A8QfMLvKMLvA,0< w!A/HLLjv ]I/5~gAM+CA+A+ MELuAA<wREA0AAɁ ʋ A"DAtAt At6S+@&ٺr|MLQuKAA<ML1u0t{A+tlA+t`A+tSA+tDA+t4A+t$A+tA;xph` A 39uMúLtٺ~EAAMËLgt AA"DA}Sº Att t3@At"AtAt Au  H(@SH HsHـ8t$8AtHHHs QHH [@SH HfHH [@SH0HH踣HL$ rHHG}H}HRs8@u HHCsHH0[H\$H|$UHH`HyH s8THeLMHeLLjd$ HUHM!E!E(EHM fE(EHMHfE苡(EHr8@HH趢HortxHM[`HMHݗHHME(EHM'fEEHUHHr8@u HHq:8@tHj#8u H蜢}HHq8@uH\$Ht$ UWATAVAWH$HHH)H3HE3IIHLMue| MtHtH`HL$X3HL$0DB RMHt$0H|$8Ld$@Au Dd$HHuD$HHD$0LHD$PHT$PHhHMHD$(MHD$`HD$ HTHM3HcHtKAt"HuHD$@H;u)x*H;v%{MtqHtyfD&HD$@H;tqfD$FHwLD8d$pt HL$XHH399L$I[0IsHIA_A^A\_]HuHD$@H;ufDd~H\$UVWAVAWH$HH'H3Hp IIHLMuzs MtHtH HL$Xp3HL$0DB QHd$@MHt$0H|$8Au Dt$HHuD$HHD$0LHD$PHT$PH HMHD$(MHD$`HD$ OHMC}HcHtIAt"HuHD$@H;u(x(H;v#uMtkHtyHD$@H;tlHuH|$pt HL$XHp H37H$HĀA_A^_^]HuHD$@H;uD>H\$Ht$ UWATAVAWH$HH%H3Hp E3IIHLMu y~ MtHtH HL$X3HL$0DB kOMHt$0H|$8Ld$@Au Dd$HHuD$HHD$0LHD$PHT$PH HMHD$(MHD$`HD$ lQHM_HcHtKAt"HuHD$@H;u)x*H;v%{MtqHtyfD&HD$@H;tqfD$FHDtLD8d$pt HL$XHp H35L$I[0IsHIA_A^A\_]HuHD$@H;ufDd~H\$UVWAVAWH$HH>$H3HIIHLMu^w} MtHtH`HL$X3HL$0DB MHd$@MHt$0H|$8Au Dt$HHuD$HHD$0LHD$PHT$PHhHMHD$(MHD$`HD$ (MHMw|HcHtIAt"HuHD$@H;u(x(H;v#uMtkHtyHD$@H;tlHrH|$pt HL$XHH324H$@HA_A^_^]HuHD$@H;uD>H\$Ht$ UWATAVAWH$HH"H3HE3IIHLMuuf{ MtHtH`HL$Xc3HL$0DB LMHt$0H|$8Ld$@Au Dd$HHuD$HHD$0LHD$PHT$PHhHMHD$(MHD$`HD$ NHM跉HcHtKAt"HuHD$@H;u)x*H;v%{MtqHtyfD&HD$@H;tqfD$FHpLD8d$pt HL$XHH32L$I[0IsHIA_A^A\_]HuHD$@H;ufDd~@SH0HMttH @IʐH H0[@SH0|LuHA HI DALHc cv#ns2txuWDAuxP1VH @IʐH@H0[@SH0|LuHA HI AHc cvPU2}xuYDAcEHH NdEHH cEHH .dH\$HAXLHAHDHDHu HHLALMBHAB8Et63AB8A0D؀9~Aɀa:IBHIJHE+BHIBHH\$EBPH\$HAXLHAHDHDHu HHLALMBHAB8Et63AB8A0D؀9~Aɀa:IBHIJHE+BHIBHH\$EBPH\$HAXLHAHDHDHu HHLALMBHAB8Et63AB8A0D؀9~Aɀa:IBHIJHE+BHIBHH\$EBPH\$HAXLHAHDHDHu HHLALMBHAB8Et63AB8A0D؀9~Aɀa:IBHIJHE+BHIBHH\$EBPH\$HAXLHAHDHDHu HHLALMBHAB8Et63AB8A0D؀9~Aɀa:IBHIJHE+BHIBHH\$EBPH\$HAXLHAHDHDHu HHLALMBHAB8Et63AB8A0D؀9~Aɀa:IBHIJHE+BHIBHH\$EBPH\$HAXLHAHDHDHu HHLALMBHAB8Et63AB8A0D؀9~Aɀa:IBHIJHE+BHIBHH\$EBPH\$HAXLHAHDHDHu HHLALMBHAB8Et63AB8A0D؀9~Aɀa:IBHIJHE+BHIBHH\$EBPH\$HAXLHAHDHDHu HHLALMBHAB8Et63AB8A0D؀9~Aɀa:IBHIJHE+BHIBHH\$EBPH\$HAXLHAHDHDHu HHLALMBHAB8Et63AB8A0D؀9~Aɀa:IBHIJHE+BHIBHH\$EBPH\$HAXLHAHDHDHu HHLALMBHAB8Et63AB8A0D؀9~Aɀa:IBHIJHE+BHIBHH\$EBPH\$HAXLHAHDHDHu HHLALMBHAB8Et63AB8A0D؀9~Aɀa:IBHIJHE+BHIBHH\$EBPH\$HAXALLHHHDHu HHLALMBHAB8Mt73AB8IH0L؀9~Aɀa:IBHIJHE+BHIBHH\$EBPH\$HAXALLHHHDHu HHLALMBHAB8Mt73AB8IH0L؀9~Aɀa:IBHIJHE+BHIBHH\$EBPH\$HAXALLHHHDHu HHLALMBHAB8Mt73AB8IH0L؀9~Aɀa:IBHIJHE+BHIBHH\$EBPH\$HAXALLHHHDHu HHLALMBHAB8Mt73AB8IH0L؀9~Aɀa:IBHIJHE+BHIBHH\$EBPH\$HAXALLHHHDHu HHLALMBHAB8Mt73AB8IH0L؀9~Aɀa:IBHIJHE+BHIBHH\$EBPH\$HAXALLHHHDHu HHLALMBHAB8Mt73AB8IH0L؀9~Aɀa:IBHIJHE+BHIBHH\$EBPH\$HAXALLHHHDHu HHLALMBHAB8Mt73AB8IH0L؀9~Aɀa:IBHIJHE+BHIBHH\$EBPH\$HAXALLHHHDHu HHLALMBHAB8Mt73AB8IH0L؀9~Aɀa:IBHIJHE+BHIBHH\$EBPH\$HAXALLHHHDHu HHLALMBHAB8Mt73AB8IH0L؀9~Aɀa:IBHIJHE+BHIBHH\$EBPH\$HAXALLHHHDHu HHLALMBHAB8Mt73AB8IH0L؀9~Aɀa:IBHIJHE+BHIBHH\$EBPH\$HAXALLHHHDHu HHLALMBHAB8Mt73AB8IH0L؀9~Aɀa:IBHIJHE+BHIBHH\$EBPH\$HAXALLHHHDHu HHLALMBHAB8Mt73AB8IH0L؀9~Aɀa:IBHIJHE+BHIBHH\$EBPE~~HHXHhHpHx AVH IADH3HH t HHxtHALtt ;}ƃ H\$0Hl$8Ht$@H|$HH A^EHHXHhHpHx AVH IDAH3HH t HHxtHAf;tt ;} H\$0Hl$8Ht$@H|$HH A^H\$E3HE~ELIBI9BuAztAA AHH@HHHHA9tAE;|H\$E~hH\$H|$@HE3LIBI9BuAztA$A AH@H@HHfHHA9tAE;|H\$H|$HD$(HAHD$0HA HHLALIHHHHHHHHHHHHHHHHD$(HAHD$0HA HHLALIHHHHD$(HAHD$0HA HHLALIHHHHD$(HAHD$0HA HHLALIHHHHD$(HAHD$0HA HHLALIHHHHHHHHHHD$(HAHD$0HA HHLALIHHH3HHAHAHAHA HA(HA0A8fA@APATHXH`H3HHAHAHAHA HA(HA0A8A@fABAPATHXH`H3HHAHAHA HAHA(HA0A8fA@APATHXH`HHhHD$(HAHD$0HA HLLI3HHAHAHA HAHA(HA0A8fA@APATHXH`HHhHD$(HAHD$0HA HLLI3HHAHAHA HAHA(HA0A8A@fABAPATHXH`HHhHD$(HAHD$0HA HLLI3HHAHAHA HAHA(HA0A8A@fABAPATHXH`HHhHD$(HAHD$0HA HLLI@SH H3H HKHKHK HKHK(HK0K8fK@KPKTHXH`HHhHD$PHCHD$XHC LLKp+HCHH [@SH H3H HKHKHK HKHK(HK0K8fK@KPKTHXH`HHhHD$PHCHD$XHC LLKpHxL@+HCHH [@SH H3H HKHKHK HKHK(HK0K8fK@KPKTHXH`HHhHD$PHCHD$XHC LLKp*HCHH [@SH H3H HKHKHK HKHK(HK0K8fK@KPKTHXH`HHhHD$PHCHD$XHC LLKpE*HCHH [@SH H3H HKHKHK HKHK(HK0K8fK@KPKTHXH`HHhHD$PHCHD$XHC LLKpHxL)HCHH [@SH H3H HKHKHK HKHK(HK0K8fK@KPKTHXH`HHhHD$PHCHD$XHC LLKp-)HCHH [@SH H3H HKHKHK HKHK(HK0K8K@fKBKPKTHXH`HHhHD$PHCHD$XHC LLKp(HCHH [@SH H3H HKHKHK HKHK(HK0K8K@fKBKPKTHXH`HHhHD$PHCHD$XHC LLKpHxL(HCHH [@SH H3H HKHKHK HKHK(HK0K8K@fKBKPKTHXH`HHhHD$PHCHD$XHC LLKp'HCHH [@SH H3H HKHKHK HKHK(HK0K8K@fKBKPKTHXH`HHhHD$PHCHD$XHC LLKp'HCHH [@SH H3H HKHKHK HKHK(HK0K8K@fKBKPKTHXH`HHhHD$PHCHD$XHC LLKpHxLu&HCHH [@SH H3H HKHKHK HKHK(HK0K8K@fKBKPKTHXH`HHhHD$PHCHD$XHC LLKp%HCHH [HHHHHHHH@SH HHH落CHH [HAH"HHH@SH HH`!H`H [@SH HH`!H`H [@SH HH`c!H`H [@SH HH`?!H`H [@SH HH`!H`H [@SH HH` H`H [@SH HH` H`H [@SH HH` H`H [@SH HH` H`H [@SH HH`g H`H [@SH HH`C H`H [@SH HH` H`H [@SH HH`H`H [@SH HH`H`H [@SH HH`H`H [@SH HH`H`H [@SH HH`kH`H [@SH HH`GH`H [@SH HH`#H`H [@SH HH`H`H [@SH HH`H`H [@SH HH`H`H [@SH HH`H`H [@SH HH`oH`H [@SH HH`KH`H [@SH HH`'H`H [@SH HH`H`H [@SH HH`H`H [@SH HH`H`H [@SH HH`H`H [HIH:u At@SH HHSHH [H\$WH HHH ,H'HHHH#H\$0H _H\$Ht$WHH{H3H$HHH8H{HSHL$8@HoHHD$@HK LKLHT$0H M LD$0LCHL$(HL$`HD$ MHL$`KH$pH$|$Pt HL$8H@蹸H$H3L$I[Is I_H 8H $H H H H\$Ht$WH`HcH3H$PHHH8HcHSHL$8@HWHHD$@HK LKLHT$0H M LD$0LCHL$(HL$`HD$ MiHL$`H$XH$|$Pt HL$8H@衷H$PH3L$`I[Is I_H H\$Ht$WH`HkH3H$PHHH8HkHSHL$8@H_HHD$@HK LKLHT$0H M LD$0LCHL$(HL$`HD$ MHL$`w(H$`H$|$Pt HL$8H@詶H$PH3L$`I[Is I_H H\$Ht$WHHsH3H$HHH8HsHSHL$8@HgHHD$@HK LKLHT$0H M LD$0LCHL$(HL$`HD$ MHL$`H$hH$|$Pt HL$8H@豵H$H3L$I[Is I_H $~H\$Ht$WHH{H3H$HHH8H{HSHL$8@HoHHD$@HK LKLHT$0H M LD$0LCHL$(HL$`HD$ M-HL$`$H$pH$|$Pt HL$8H@蹴H$H3L$I[Is I_H ,}H 0}H (}H\$Ht$WHHsH3H$HHH8HsHSHL$8@HgHHD$@HK LKLHT$0H M LD$0LCHL$(HL$`HD$ MAHL$`3(H$hH$|$Pt HL$8H@豳H$H3L$I[Is I_H 0|''''''''''''xHxu2Ãu |t3҉ HHH|HP4xHxu2Ãu |t3҉ HHH|HP4xHxu2Ãu |t3҉ HHH|HP4xHxu2Ãu |t3҉ HHH|HP4ppppppppHHHDA:t HuHt2 ,Et HuHHɀ90tD8uHɊHHˆuÍBL [[uEtD6H\$H@Hl$PH A^_^HHXHhVWAVH HqHHHPD6&DE HIH`H+-HG8"tHD$@H;GrHG@2>uEtD6H\$H@Hl$PH A^_^HHXHhVWAVH HqHHHPD6&DE HIH`H+_-HG8"tHD$@H;GrHG@2>uEtD6H\$H@Hl$PH A^_^HHXHhVWAVH HqHHHPD6&DE HIH`H+,HG8"tHD$@H;GrHG@2>uEtD6H\$H@Hl$PH A^_^HHXHhVWAVH HqHHHPD6&DE HIH`H+W,HG8"tHD$@H;GrHG@2>uEtD6H\$H@Hl$PH A^_^HHXHhVWAVH HqHHHPD6&DE HIH`H++HG8"tHD$@H;GrHG@2>uEtD6H\$H@Hl$PH A^_^HHXHhHp WH HqHHA HP.&HIH`Hq,HG8"tHD$0H;GrHG2>ut.H\$8Hl$@Ht$HH _HHXHhHp WH HqHHA HP.&HIH`H+HG8"tHD$0H;GrHG2>ut.H\$8Hl$@Ht$HH _HHXHhHp WH HqHHA HP.&HIH`Hq+HG8"tHD$0H;GrHG2>ut.H\$8Hl$@Ht$HH _HHXHhHp WH HqHHA HP.&HIH`H*HG8"tHD$0H;GrHG2>ut.H\$8Hl$@Ht$HH _HHXHhHp WH HqHHA HP.&HIH`Hq*HG8"tHD$0H;GrHG2>ut.H\$8Hl$@Ht$HH _HHXHhHp WH HqHHA HP.&HIH`H)HG8"tHD$0H;GrHG2>ut.H\$8Hl$@Ht$HH _H\$Hl$WH HHhHuN  GuH{tppH-3IcPc,RHC{(YCAS,, D.{A*HtIxu |ujAy K0ARCA< t(<#t<+t<-t <0u?K09K03K0-K0 'K0!A.@k@k0>k<@kT Ht6HCKAhHCH0t&C(H\$@Hl$HHt$PH A_A^_H\$Hl$WH HHhHu uH{tppH-DcPc,NHC{(UCAS,, K08K02K0,K0 &K0 Hs0@s@{8s<@sT Ht[HCKAHC9s,t{,u+ppwC(H\$0Hl$8Ht$@H _H\$Hl$Ht$WAVAWH 3HH9hub8H9itL=f@xxu |HLs4Hs8| A..HCkPk,CAHC9k(CAS,, D.{A*HtISxu |ujAy K0ARCA< t(<#t<+t<-t <0u?K09K03K0-K0 'K0!A.@k@k0>k<@kT Ht6HCKAhHCHtp)C(H\$@Hl$HHt$PH A_A^_H\$Hl$WH HhHu#HytppH-l=cPc,NHC{(UCAS,, E.f{B*HtI<xu |upAy K0AXCBA;t,#t!+t-t 0u?K09K03K0-D c0'K0!A.@k@k0>k<@kT Ht:HCfKBfXHCH]t;C(H\$@Hl$HHt$PH|$XH A^A]A\HHXHpHxLp AWH 3HH9huH9qtppL=&6Dw!sPs,HC9s(CBS,fA+fZwCBBL8΍B8C,tkt^t(tHFHH+ f{B*tHS8H4HC HC HHωK8s8f{B*tHS4HC HC HK4K0ىK4CBA;t0#t%+t-t0K0|K0vK0pD s0jK0dHs0@s@{8s<@sTPDCBCTHhH t HhH9ptHhAf;u{(C(tZHCfKBfFHCpp#C(H\$0Ht$8H|$@Lt$HH A_[HHXHhHpHx AVH 3HH9hudH9qtppL54o!sPs,HC9s(CBS,f+fZwCBBL0΍B 1K,tkt^t(tHFHt*f{B*tHS8H<HC HC HHωK8s8f{B*tHS4HC HC HK4K0ىK4CB;t2#t(+t-t0K0K0zK0t k0oK0iHs0@s@{8s<@sTUSBCTHhHAH9Au@8qtC(+{(&C(HhH@HhHfHhHteHCfKBf?HC9s,t{,u1ppC(H\$0Hl$8Ht$@H|$HH A^HHXHhHpHx ATAUAVH 3HH9huPH9itL-1Dg!xx$u |HLs4Hs8| A..HCkPk,fCBfHC9k(CBS,fA+fZwCBBL(͍B )K,H.~C,b$t{tot(t;HFH.)f{B*Ht H色xu |9.}I>E.f{B*HtI蠭xu |upAy K0AXCBA;t,#t!+t-t 0u?K09K03K0-D c0'K0!A.@k@k0>k<@kT HJ t:HCfKBfXHCH5t@C(H\$@Hl$HHt$PH|$XH A^A]A\HHXHhHpHx AVH 3HH9hu( H9qtppL5r.o!sPs,HC9s(CBS,f+fZwCBBL0΍B0C,tkt^t(tHgGH(f{B*tHS8HHC HC HHωK8s8f{B*tHS4HC HC HK4K0ىK4CB;t2#t(+t-t0K0K0zK0t k0oK0iHs0@s@{8s<@sTUSBCTHhHAH9Au@8qtC(+{(&C(HhH@HhHfHhHtZHCfKBfAHCppC(H\$0Hl$8Ht$@H|$HH A^ Q0 Q0 Q0 Q0 Q0 Q0 Q0 Q0 Q0 Q0 Q0 Q0ø9xu 9|t3ø9xu 9|t3ø9xu 9|t3ø9xu 9|t3ð̰̰̰̋xu |uÃu |t2Ëxu |uÃu |t2Ëxu |uÃu |t2Ëxu |uÃu |t22222̃|u 9xt3̃|u 9xt3̃|u 9xt3̃|u 9xt32222̃a8̃a8̃a8̃a8̃a8̃a8̃a8̃a8̃a8̃a8̃a8̃a8̊AA< t(<#t<+t<-t <0uI0I0I0 I0 I0̊AA< t(<#t<+t<-t <0uI0I0I0 I0 I0̊AA< t(<#t<+t<-t <0uI0I0I0 I0 I0̊AA< t(<#t<+t<-t <0uI0I0I0 I0 I0̊AA< t(<#t<+t<-t <0uI0I0I0 I0 I0̊AA< t(<#t<+t<-t <0uI0I0I0 I0 I0AB t,#t!+t-t 0uI0I0I0 I0 I0AB t,#t!+t-t 0uI0I0I0 I0 I0AB t,#t!+t-t 0uI0I0I0 I0 I0AB t,#t!+t-t 0uI0I0I0 I0 I0AB t,#t!+t-t 0uI0I0I0 I0 I0AB t,#t!+t-t 0uI0I0I0 I0 I0@SH 3Hp tCHhSAH tHhHxtHhyu C(C(M2H [@SH Hًxu |tu |ua3Hk tAHhSAH tHhHxtHhyu C(C(2H [@SH 3H tCHhSAH tHhHxtHhxu C(C(E2H [@SH 3H tHHhDCAHAH9AuytC($K(C(HAHhHDHhH2H [@SH Hًxu |tu |ud3H tDHhSAHAH9AuytC(σK(C(HAHhHHhH~72H [@SH 3H tHHhDCAHAH9AuytC($K(C(HAHhHDHhH2H [@SH ATHIBHhP tHhHxtHhtf;uK(C(H [@SH Hًxu |tZu |tLDCBCTHhH tHhHxt HhA tf;uK(C(H [@SH ATHIBHhP tHhHxtHhsf;uK(C(H [DIBLATHhHAH9AuytA@((AH(!A@(HAIhHfD IhHHыxu |tYu |tKDBBBTHhHAH9AuytB(&J( B(HAHhHfDHhHDIBLATHhHAH9AuytA@((AH(!A@(HAIhHfD IhH@SH 3H(tAHhSAH tHhHxtHhjtu C(C(H [@SH 3H`tAHhSAH tHhHxtHhtu C(C(H [@SH 3HtAHhSAH tHhHxtHhsu C(C(H [@SH 3HtFHhDCAHAH9AuytC($K(C(HAHhHDHhHH [@SH 3HtFHhDCAHAH9AuytC($K(C(HAHhHDHhHH [@SH 3H@tFHhDCAHAH9AuytC($K(C(HAHhHDHhHH [@SH ATHIBHhP tHhHxtHhpf;uK(C(H [@SH ATHIBHhP tHhHxtHhof;uK(C(H [@SH ATHIBHhP tHhHxtHhoof;uK(C(H [DIBLATHhHAH9AuytA@((AH(!A@(HAIhHfD IhHDIBLATHhHAH9AuytA@((AH(!A@(HAIhHfD IhHDIBLATHhHAH9AuytA@((AH(!A@(HAIhHfD IhH@SH HAHQAATHHf PtdHhH tHhHxtHh#pu C(C(HCHKAHCu2H [@SH HAHQAATHHf PtdHhH tHhHxtHhou C(C(HCHKAHCua2H [@SH HAHQAATHHf PtdHhH tHhHxtHhnu C(C(HCHKAHCu2H [H(HAHDAAATHHfB @thHhHAH9AuytB($J(B(HAHhHDHhHHBHJAHBu52H(H(HAHDAAATHHfB @thHhHAH9AuytB($J(B(HAHhHDHhHHBHJAHBuV2H(H(HAHDAAATHHfB @thHhHAH9AuytB($J(B(HAHhHDHhHHBHJAHBu2H(ATATATATATAT̃I83HA0A@AHCHk(LhHD$ LHT$PIDK0AtAuLDƲ0I3Hȍ}|C0AtLDƲ IDžAH\$XHl$`Ht$hH0A_A^_H\$Hl$Ht$ WAVAWH0AAHAd]ACt3DGSt_XtoZtac3>g~itgnt[ot8ptstutRxuePMjUA8A< EǺ1I0AtK0H]I0 E3KX(u2[|u D9xB{@8S03fD$P3D$RAt.AtD$P-AtD$P+AtD$P IKAAuAtEE2AEut*DxHCHk(LhHD$ LHT$0ID蛉K0AtAuLDAIw3H跄}|C0AtLDAIwAHL$8H3fL\$@I[8Ik@IsHIA_A^A]A\_H\$Hl$Ht$ WATAUAVAWH@HAUH3HD$8ABXHٍnD~d[;Ct2DGSt^;toZtac34 g~itgnt[ot8ptstutRxuePM$`UA8A< EǺ1I0AtK0HTI0 E3G&u2l{@_S03D$03fD$4Do At2At G-fD$0At+At fDl$0IKBAf+fAuAtEE2A0f+fAEut/fDd|0If;t f;t2A$afD|0Is4+sP+ uLK(DHhA^vHCHk(LhHD$ LHT$0ID藈K0AtAuLDAIv3Hׂ}|C0AtLDAIuAHL$8H3cL\$@I[8Ik@IsHIA_A^A]A\_H\$Hl$Ht$ WATAUAVAWH@HuRH3HD$8ABXHٍnD~d[;Ct2DGSt^;toZtac32g~itgnt[ot8ptstutRxuePM ^UA8A< EǺ1I0AtK0HRI0 E3E%u2|u D9xi{@_S03D$03fD$4Do At2At G-fD$0At+At fDl$0IKBAf+fAuAtEE2A0f+fAEut/fDd|0If;t f;t2A$afD|0Is4+sP+ uLK(DHhA|sHCHk(LhHD$ LHT$0ID赅K0AtAuLDAI/s3H}|C0AtLDAIsAHL$8H3aL\$@I[8Ik@IsHIA_A^A]A\_H\$Hl$Ht$ WATAUAVAWH@HOH3HD$8ABXHٍnD~d[;Ct2DGSt^;toZtac30 g~itgnt[ot8ptstutRxuePM \UA8A< EǺ1I0AtK0HPI0 E3D%%u2l{@_S03D$03fD$4Do At2At G-fD$0At+At fDl$0IKBAf+fAuAtEE2A0f+fAEut/fDd|0If;t f;t2A$afD|0Is4+sP+ uLK(DHhApHCHk(LhHD$ LHT$0IDK0AtAuLDAIep3H }|C0AtLDAI9pAHL$8H3M^L\$@I[8Ik@IsHIA_A^A]A\_̀yA*t HQ4MHA HA PQ4y I0ډQ4@SH yA*HtHQ4H [铔]t$xu |uC4y K0؉C4H [ÀyA*t HQ4ՔHA HA PQ4y I0ډQ4̀yA*t HQ4)HA HA PQ4y I0ډQ4@SH yA*HtHQ4H [o^^t$xu |uC4y K0؉C4H [ÀyA*t HQ4鱕HA HA PQ4y I0ډQ4fyB*t HQ4HA HA PQ4y I0ډQ4@SH fyB*HtHQ4H [F^t$xu |uC4y K0؉C4H [fyB*t HQ4逖HA HA PQ4y I0ډQ4fyB*t HQ4ЖHA HA PQ4y I0ډQ4@SH fyB*HtHQ4H [%_t$xu |uC4y K0؉C4H [fyB*t HQ4LHA HA PQ4y I0ډQ4̸ ̸ ̸ ̸ ̸̸̸̸HHHHH}HuHmHeÃ2ttt!tt u)øøøÃttރt3A;,A-A/AO1A2A4Ac6A7A9Aw;A=A>H\$Ht$WH HA HHA HxHt3HwHt*DAt7ttt(t&3"tt tHHt*HtHtH;uHcG(HG(G(fO(G@H\$0Ht$8H _H\$WH 3HT$8H\$8Hu2xu |uZ_ȋO</tt7ttt(t&3"tt tHHt*HtHtH;uHcG(HG(G(fO(G@H\$0Ht$8H _H\$Ht$WH HHY HA HpuSX ^2O<,t>t7ttt(t&3"tt tHHt*HtHtH;uHcG(HG(G(fO(G@H\$0Ht$8H _H\$WH 3HT$8H\$8Hu2xu |u[W]ȋO</tt7ttt(t&3"tt tHHt*HtHtH;uHcG(HG(G(fO(G@H\$0Ht$8H _H\$Ht$WH HHY HA Hp,uUP[2O<,t>t7ttt(t&3"tt tHHt*HtHtH;uHcG(HG(G(fO(G@H\$0Ht$8H _H\$WH 3HT$8H\$8Hu2xu |4uTXZȋO</tt7ttt(t&3"tt tHHt*HtHtH;uHcG(HG(G(fO(G@H\$0Ht$8H _H\$Ht$WH HHY HA HppuRX2O<,t>t7ttt(t&3"tt tHHt*HtHtH;uHcG(HG(G(fO(G@H\$0Ht$8H _H\$WH 3HT$8H\$8H&u2xu |xuQWȋO</tt7ttt(t&3"tt tHHt*HtHtH;uHcG(HG(G(fO(G@H\$0Ht$8H _̋Q0tQ0E3AP̋Q0tQ0E3APa̋Q0tQ0E3APE̋Q0tQ0E3AP̋Q0tQ0E3APE̋Q0tQ0E3AP)̋Q0tQ0E3AP̋Q0tQ0E3AP)̋Q0tQ0E3AP ̋Q0tQ0E3AP̋Q0tQ0E3AP ̋Q0tQ0E3AP̺A< AQ8i̺A< AQ8̺A< AQ8̺A< AQ8e̺A< AQ8̺A< AQ8̺A< AQ8a̺A< AQ8̺A< AQ8̺A< AQ8]̺A< AQ8̺A< AQ8H\$Ht$WH HA HHA q8DAHHHcCT茇H?u HHHHcCPH\$0Ht$8H _H\$Ht$WH HA HHA q8DAD>D2HcH @HːK4H\$HH0_H\$WH0|HuHA HQ DBDA4HIHT$@3H|$@DG SbxPHD$@HHHKx{f8$uud}p ;DC9>2HcH @HːK8H\$HH0_HA HA PQ8HA HA PQ8HA HA PQ8HA HA PQ8H(H Hu88>2H(H(( H(H9uU8>2H(H(H9u-8=2H(H(H9u8=2H(H8:D$`uDDJBH8ÉD$ #u7u=2H8:D$`uDDJBH8ÉD$ U%u|75=2H8:D$`uDfDJBH8ÉD$ 'u;7<2H8:D$`uDfDJBH8ÉD$ (u6<2@SH y,HHI<%|u]Hd$0,0< wGA HT$0~Y~3HD$08$u)xuH3A`  ǃ| ǃ||uXHKHT$8Hd$8A YxHT$8H HBHCux#:$ud} ;O H [5;2@SH y,HHI<%|u]Hd$0,0< wGA HT$0zX~3HD$08$u)xuH3A`  ǃ| ǃ||uXHKHT$8Hd$8A XxHT$8H HBHCux#:$ud} ;O H [4:2@SH y,HHIf%|ubHd$0f0f wHA HT$0X~4HD$0f8$u)xuH3A` ǃ| ǃ||uYHKHT$8Hd$8A *XxHT$8H HBHCu x$f:$ud} ;O H [392@SH y,HHIf%|ubHd$0f0f wHA HT$0W~4HD$0f8$u)xuH3A` ǃ| ǃ||uYHKHT$8Hd$8A WxHT$8H HBHCu x$f:$ud} ;O H [282̰̰̰̰H(y,ty,t2X82H(H(y,ty,ts2,82H(H(y,ty,tG282H(H(y,ty,t272H(H(y,Hty,t172]|uRxuIHc LLHJN HN M;t*AHB I@tt tuHB IѰH(H(y,Hty,t`172]|uRxuIHc LLHJN HN M;t*AHB I@tt tuHB IѰH(H(y,Hty,t062]|uRxuIHc LLHJN HN M;t*AHB I@tt tuHB IѰH(H(y,Hty,tH062]|uRxuIHc LLHJN HN M;t*AHB I@tt tuHB IѰH(̰̰̰̰@SH0|xuwHc cv/P52YDA/4ְH0[@SH0|xuwHc cv.42YDAHL$@H3H\$hHt$pHP_H\$Ht$WHPHJH3HD$@yTHtnAP~gHqH3t~DHT$4d$0HL$0AHv~u1DD$0Et'HCLK(HhHD$ HT$4 ;{Pu'K(!HCLI(DCPHhHSHHD$ j HL$@H3H\$hHt$pHP_H\$Ht$WHPHrH3HD$@yTHtnAP~gHqH3t~DHT$4d$0HL$0AHv覭u1DD$0Et'HCLK(HhHD$ HT$4;{Pu'K(!HCLI(DCPHhHSHHD$ HL$@H3H\$hHt$pHP_H\$Ht$WHPHH3HD$@yTHtnAP~gHqH3t~DHT$4d$0HL$0AHvάu1DD$0Et'HCLK(HhHD$ HT$4;{Pu'K(!HCLI(DCPHhHSHHD$ HL$@H3+H\$hHt$pHP_H\$Hl$VWAVH0E3HD8qTAPHqHALKHL$PfDt$PHILc@fHc~WHhDD$PH t HhL9pt HhArf;uK(C(HH;{Pu'K(!HCLI(DCPHhHSHHD$ H\$XHl$`H0A^_^H\$Hl$VWAVH0E3HD8qTAPHqHALKHL$PfDt$PHILc@zHc~WHhDD$PH t HhL9pt HhA膸f;uK(C(HH;{Pu'K(!HCLI(DCPHhHSHHD$ H\$XHl$`H0A^_^H\$Hl$VWAVH0E3HD8qTAPHqHALKHL$PfDt$PHILc@莦Hc~WHhDD$PH t HhL9pt HhA蚷f;uK(C(HH;{Pu'K(!HCLI(DCPHhHSHHD$ H\$XHl$`H0A^_^H\$Hl$Ht$ WH03H@8iTAPHqHLKHL$@fl$@HILc@裥HcЅ~WHhDD$@HAH9Au@8itC(&K( C(HAHhHfDHhHHH;{Pu'K(!HCLI(DCPHhHSHHD$ H\$HHl$PHt$XH0_H\$Hl$Ht$ WH03H@8iTAPHqHLKHL$@fl$@HILc@賤HcЅ~WHhDD$@HAH9Au@8itC(&K( C(HAHhHfDHhHHH;{Pu'K(!HCLI(DCPHhHSHHD$ H\$HHl$PHt$XH0_H\$Hl$Ht$ WH03H@8iTAPHqHLKHL$@fl$@HILc@ãHcЅ~WHhDD$@HAH9Au@8itC(&K( C(HAHhHfDHhHHH;{Pu'K(!HCLI(DCPHhHSHHD$ H\$HHl$PHt$XH0_H\$Hl$Ht$WAVAWH HILHDPA AtHHxuEH|$`IcHD?'H;tuHAH t HHxtH u  u5?*u8HH t HHxtH?еu IL;u?uEtD?H\$@Hl$HHt$PH A_A^_H\$Hl$Ht$ WAVAWH HILHDPA AtHHxuEH|$`Ic/'L&H HAH9AuytA)MA GH+ALH H;LBK6L9I$HI$LpI$xt/ L;tD7>uEtD>H\$PHl$XHt$`H A_A^A]A\_HDHBA%@UHH`HE0HELMLE(HUHM Huz"JMtHEHUHELMHEHUHELEHE HEHUHE(HEHM0HEHEӖH`]@UHH`HE0HELMLE(HUHM Hu5!JMtHEHUHELMHEHUHELEHE HEHUHE(HEHM0HEHEGH`]@UHH`HE0HELMLE(HUHM Hub!JMtHEHUHELMHEHUHELEHE HEHUHE(HEHM0HEHE;H`]@UHH`HE0HELMLE(HUHM Hu JMtHEHUHELMHEHUHELEHE HEHUHE(HEHM0HEHEH`]@UHH`HE0HELMLE(HUHM HuJ JMtHEHUHELMHEHUHELEHE HEHUHE(HEHM0HEHEH`]@UHH`HE0HELMLE(HUHM HuJMtHEHUHELMHEHUHELEHE HEHUHE(HEHM0HEHEWH`]H\$Hl$Ht$WATAWH0H|$pIIHLMuHuM3HMHM;vQ:LL$pLEHI̋0H$HD$(HD$xHD$ 赚uo8"0LL$pLHID8H$HD$(HD$xHD$ dD7uH;u8"u@D86yu*"Ar+HHl$XH\$PHt$`H0A_A\_HHXHhHpHx ATAUAWH0E3IIHLL9l$pMuHuMAHMHM;vQLL$pLEHI̋0H$HD$(HD$xHD$ up8"0LL$pLHID8H$HD$(HD$xHD$ 訚fDlwuH;uC8"uA9D87yfD/u*"" HHl$XH\$PHt$`H|$hH0A_A]A\H\$Ht$ UWATAVAWH$HHtH3HE3IIHLMuJMtHtH`HL$0G3HL$PDB MHt$PH|$XLd$`Au Dd$hHuD$hHD$PLHD$pHT$pHhHMHD$(MHD$8HD$ \HMHcHu/HLD8d$HHD$0AtMHu3t/HLD8d$HHD$0HD$`H;upxpH;vkMtHt_yD&VHD$`H;uHDd7EHtHD$`H;u2HDd7]LD8d$Ht HD$0*D$0H,LD8d$Ht HL$0HH3L$I[0IsHIA_A^A\_]H\$Ht$ UWATAVAWH$HH@H3Hp E3IIHLMu]MtHtH HL$03HL$PDB MHt$PH|$XLd$`Au Dd$hHuD$hHD$PLHD$pHT$pH HMHD$(MHD$8HD$ HMHcHu/HLD8d$HHD$0AtMHu3t/HLD8d$HHD$0HD$`H;upxpH;vkMtHt_yD&VHD$`H;uHDd7EHtHD$`H;u2HDd7)LD8d$Ht HD$0*D$0HLD8d$Ht HL$0Hp H3L$I[0IsHIA_A^A\_]@SH0HMtHHHH BtGEEDHH t8tA3AADOЀ w!@σ;@9EDDHAH̍G<w @σG<w @σAA;t-A;s(E A;r u;vAAH@8HHH H@t@88t?Au}L+HEAtj"AuA\At'}t HEHKHtHHQ}t HEHKHtHH*Atހ}t HMHCHtH HL\$@I[0Is@I{HIA_A^A]A\]H\$Hl$Ht$ WATAUAVAWHPE3AEHL9*u&HOHtHH3cEt A@"wHHL$(gL'ELd$ A$ID$ HHHu@A@f-uf+u HHH DŽ$jA`A0Af DFAfA;f:s A+fA;f;f;$s +f;f;s +pfA;kp f;s A+Qf;M f;s +4f;0p f;s -f  f; A f;cHvf;A f;Kf f;A f;1Hvf;A f;Hvf;A f;Pf;A f;Hvf;r{A f;HFf;rgA f;@f;rQA f;f;r;A f;H&f;r'A f;s~f;sA+u)CfvCfvACfw ɾt EuyD~sHAHHHBfAt:EDDHHftDf9t?AA0AEDDHAH3AAA`ADfA;f:s A+fA;yfA;jf;s A+ofA;jf;s A+Pf f;GH f;s +0 f;'H f;rAvf;H f;r̍Avf;H f;rAvf;H f;rf f;H f;rAvf;H f;vAvf;H f;^Pf;H f;DAvf;r{H f;0AFf;rgH f;@f;rQH f;f;r;H f;A&f;r'H f;sf;sA+u)CfvCfvACfw A;t0A;s+ E;r u;vEDHHHHE3HLd$ ftf9tt-@uL'D8l$@CHD$(2A֋Kto2"@uAa@t)D8l$@t HD$(HOHtHHWD8l$@t HD$(HOHtHH.@tAD8l$@t HL$(HWHtHH AL\$PI[0Ik@IsHIA_A^A]A\_H\$Ht$H|$ UATAUAVAWHH@H:EEHu&IHKHtHH3Et A@"wHHM`L+E3HULm8A}IEEnHz@~LEAՋ豢HU HHHA#Ņt H@8H3E@@-u@+u H@8HHLm8AG< w @ǃ#G<w @ǃG<w @ǃAt EuDE{>HHHH BtOEEDHH t8t AIMcI3ILȍOЀ w"DA>@9EDDHAHčG<w DAG<w DAAAt:E;s5A M;ruAH;v IIELH@8HHpL#H@t@88tC@u}L+HEI֋Gtt"@uMg@t,}t HEHKHtHHHX}t HEHKHtHHH,@tIހ}t HMHCHtH HIL\$@I[0Is@I{HIA_A^A]A\]H\$Hl$Ht$ WATAUAVAWHE3AEHL9*u&HOHtHH3AEt A@"wHHL$x]L'ML$A$ID$ HHHu@A@f-uf+u HHHD$tjf DŽ$ 0D$Pf `D$(p AD$hf DVD$0p D$X AD$8 Af D$pf D$@p D$`PD$HZD$lD$ D$$ D$,*D$4@D$D$lf;rvf;\$ *D$$f;rbf;\$,D$4f;rNf;\$<D$Df;r:f;\$LD$Tf;r&f;\$\sf;\$ds DE+AAu-CfvCfvACDfwA AAt?E;s: M;ruAH;vIIEL0HHHHE3HL$ftf9tZ@u"L'D8$xHD$xgI֋t\"@uIq@t1D8$t HD$xHOHtHHHbD8$t HD$xHOHtHHH1@tID8$t HL$xHWHtHH IL$I[0Ik@IsHIA_A^A]A\_H\$WH0AILHHL$ HADHH\$@H0_H\$WH0AILHHL$ HADHH\$@H0_H\$WH0AILHHL$ lHE3DHH\$@H0_H\$WH0AILHHL$ DHE3DH[H\$@H0_H\$WH0AILHHL$ HADHH\$@H0_H\$WH0AILHHL$ HADHH\$@H0_H\$WH0AILHHL$ |HE3DH{H\$@H0_H\$WH0AILHHL$ THE3DHsH\$@H0_HLAMtIHHLAMtIHHQHtHHHQHtHHHHHHHHH\$WH Ht&Hx~L‹ϺHHcH xH\$0H _H(.H(øH̸H̍A< w0ÍA<wWÍA<w7Ã̺0f;f:s +f;k`f;sB f;rҺf;]B f;rf f;GB f;rPvf;3B f;rPvf;B f;zPvf;B f;bPvf;B f;Jf f;B f;0Pvf;B f;Pvf;B f;Pf;B f;Pvf;rwB f;PFf;rcB f;@f;rMB f;f;r7B f;P&f;r#B f;s}f;ou(Afv AfvÍAfw HHHHH(H Ht8t:H(H(HHftf9tVH(H(H9u52H(H(H9u 2H(̺0f;f:s+úf;[`f;[B f;rֺf;EB f;rf f;/B f;rPvf;B f;rPvf;B f;rPvf;B f;jPvf;B f;Rf f;B f;8Pvf;B f; Pvf;B f;Pf;r{B f;Pvf;rgB f;PFf;rSB f;@f;r=B f;f;r'B f;P&f;rB f;HH\$WH HcMtIHy# 5x#H\$0H _H\$WH HcMtIx~ ԐHx# x#H\$0H _@SH0ALHHL$ 3HAD33H0[H\$WH0AILHHL$ HADHH\$@H0_H\$WH0AILHHL$ HADHH\$@H0_H\$WH0AILHHL$ HADHH\$@H0_H\$WH0AILHHL$ HHADHGH\$@H0_@SH0ALHHL$ HE3D3H0[H\$WH0AILHHL$ HE3DHH\$@H0_H\$WH0AILHHL$ HE3DHH\$@H0_H\$WH0AILHHL$ dHE3DHcH\$@H0_H\$WH0AILHHL$ (HE3DH'H\$@H0_@SH0ALHHL$ HAD3'H0[H\$WH0AILHHL$ HADHH\$@H0_H\$WH0AILHHL$ HADHH\$@H0_H\$WH0AILHHL$ XHADHoH\$@H0_H\$WH0AILHHL$ HADH;H\$@H0_@SH0ALHHL$ HE3D3H0[H\$WH0AILHHL$ HE3DHH\$@H0_H\$WH0AILHHL$ tHE3DHH\$@H0_H\$WH0AILHHL$ 8HE3DHWH\$@H0_H\$WH0AILHHL$ HE3DHH\$@H0_@SH0ALHHL$ HAD3H0[@SH0ALHHL$ HAD3H0[@SH0ALHHL$ SHAD3SH0[@SH0ALHHL$ #HE3D3;H0[@SH0ALHHL$ HE3D3H0[@SH0ALHHL$ HE3D3H0[@SH0ALHHL$ HAD3H0[@SH0ALHHL$ wHAD3H0[@SH0ALHHL$ GHAD3gH0[@SH0ALHHL$ HE3D3/H0[@SH0ALHHL$ HE3D3H0[@SH0ALHHL$ HE3D3H0[@SH 3HHL$0HD$0P_T$0EHtH [@SH03HHL$ HD$ PHT$ HHEHtHHH0[@SH HHuB3fu3HL$0HD$00LD$0H*!NbLHBzՔIIHHH?HHiʀD+AkdKH [@SH HHu3mu3HL$0HD$0LD$0H*!NbLHBzՔIIHHH?HHo@H;iʀHD+AkdKH [@SH 3HHL$0HD$0PT$0EHtH [@SH03HHL$ HD$ PHT$ HHEHtHHH0[WH\$Ht$WH HU3HHtHHdHEHH\$0Ht$8H _H\$Ht$WH H 3HHtHHHEHH\$0Ht$8H _@USWHH@HHHu=H@_[]úA$跮HtЃ?}΁?ne8HM8ee0}AHM蜈HM0軈 =}wY+M0HU M H誏[9E8mH1]EHU )E Hw(C 7HHX ;9E8tHtMM0+C +}0AAk<+ȉ yA<<AD AADADKAAkHcE8HUH)EHҌC ]HH賌Hc;9E0tHtE E8HC HcE H+IIHHHHH?Hk<+ȉ y AAHCHCH9{tH;CwH3HUStHFЈEP<0u@׈UPϊE`L}EAA B< wƒ0!B<wƒWB<wƒ7A;wKAM;tAEIHCHCMH9{tH;CwH3HRMȃtHF@NJЈEPL}HIHH:HCHCH9{tH;CwH3HmRtHF@HMXHEPL;uC<0u?AHCMHCH9{tH;CwH3H$RtHFЈEP<0u@׈UPB< wƒ0!B<wƒWB<wƒ7A;wDAL;mtAEIHCHCH9{tH;CwH3HQtHF@NJЈEPEu!HMׄ]``HKHCH9{tH;CwB<vHt HJH=}HCHEHHCH9{tH;CwH3HQȃtHF@ψMP@ǀEtPt et pu E`@8}`DHCHCH9{tH;CwH3HPtHF@<-EPA,+u2HCHCH9{tH;CwH3HuPtHF@NJȈEPD0ukrHCHCH9{tH;CwHHBH;BtHHBu@ψMHHKHCH9{tH;CwvH HAH;tHHAL;tfIC@88uLH;uL;tPE;~ mD;}\AɃADE;D;|D+EUEE]@Nj)"LEXHMHH$LEXHMHHH$H@A_A^A]A\_^]LD$HL$USVWATAUAVAWHHhL 3MHMtH9zu謘eHBAHEHHBH9zt H;BvIAI;AtHIAfA;uHEHUHEAHEfMAHErFEwELsHCH9{t H;Cv HHBH;BtHHBfA;uAfM'FuUMf-AABfAu=LsHCH9{t H;Cv!H HAH;AtHHAfA;ufUBAfA_BfA@0@}PDf;LKIAHCH9{tH;CvLI@I;@tnHI@fA;tYAfAuJLsEHCDuPH9{t H;Cv H HAH;AtHHAfA;ufULMHUUAHKHCH9{tH;Cw"fA+fA;wH HAH;t HHAUMeA0LeЋωMMDfA;ucA@ADHCHCH9{tH;Cw9H HAH;At,DHHAfE;t0AfUfD;ufUAE`jAA`EAAA E`/fA;\f:s A+Ff;)fA;8f;U`s A+"f;f;s -f f;p f;s -f  f; f;s - f f;p f;s -f  f; f;s - nf f;ep f;s -f If f;@p f;s -f $ f; f;s - f f;p f;s -f Pf;Zf;s -Pf;f;s - f;*f;s - n@f;riJf;s -@Pf;rKf;s -2f;r-f;s#-f;s+u)BfvBfvBfw A;wYEM;tAMLCAHCMH9{t H;Cv#H HAH;AtHHAfA;u׋MfUHuHLmXD}PLuHMeHH;LCHCH9{t H;Cv$HHBH;BtHHBf;ufMѸ0M;unf;uiuELCA+HCuH9{tH;Cw=H HAH;At0DHHAfD;t0AfUfD;uD@׸0fU`AAAf;f:s ƒ0fA;pf;jf;s +hf;_A f;s +Hf f;?A f;rHvf;+A f;r̍Hvf;A f;rHvf;A f;rHvf;A f;rf f;A f;vHvf;A f;^Hvf;A f;FPf;A f;,Hvf;r{A f;HFf;rgA f;@f;rQA f;f;r;A f;H&f;r'A f;sf;sA+u)BfvBfvBfw A;wUEM;tAMLcHCH9{t H;Cv H HAH;AtHHAfA;ufU0LmXD}PLuMeuEu!HMcAbHKHCH9{tH;Cw*AfA+f;wH HAH;tHHAAHCHEHHCH9{t H;Cv$HHBH;BtHHBf;u@fMEtPt et pu AE‰}DAPLCHCH9{t H;Cv$H HAH;AtHHAf;uf-fUʸAf+DMfuALCHCH9{t H;Cv$HHBH;BtHHBf;ufM0@}`f;ueE`HCHCH9{tH;Cw:H HAH;At-HHAf;t0fUf;ufM0f;f:s +f;k`f;sP f;rҸf;]P f;rf f;GP f;rBvf;3P f;rBvf;P f;zBvf;P f;bBvf;P f;Jf f;P f;0Bvf;P f;Bvf;P f;Pf;P f;Bvf;rwP f;BFf;rcP f;@f;rMP f;f;r7P f;B&f;r#P f;s}f;ou)AfvAfvAfw Ƀ sdCE`DBDUE;EHCHCH9{t H;CHHBH;BtHHBf;AQDUĺ0AAA`Af A Af A Af f;@f:s ++fA; fA;jf;s A+f;f;s +fA;p f;s A+fA; f;s A+fA;p f;s A+fA; f;s A+ifA;dp f;s A+Jf f;Ap f;s -f % f; f;s - f f;p f;s -f Pf;Zf;s -Pf;f;s - f;*f;s - o@f;rjJf;s -@Qf;rLf;s -3f;r.f;s$-f;sA+u)AfvAfvAfw Ƀ sGHCHCH9{t H;Cv%HHBH;BtHHBfA;uϺ0fMBLmXAPDMDUDE`LuMeD}PuEtAEuZHMm\tALCHCH9{t H;Cv$HHBH;BtHHBf;ufMAHKHCH9{tH;Cw"fA+ȸf;wH HAH;tHHAM;tfIF@88uLI;uM;tPE;~ mD;}\AɃADE;D;|E+EUEEu@Nj)"LEHMHFLEHMHHhA_A^A]A\_^[]LI[IsMCWATAVH@ICISICL%}HIKL3AB:'$tB:'$HCH{HCtH;CwH3H!ȃtHF2HAHuHKH{HCtH;CwA<vHɃt HJHMHCHD$pHH{HCtH;Cw*H;H!tHGHL$ Y2A3AB:'$tB:'$HCH{HCtH;CwH3H!ȃtHF2HAHuHKH{HCtH;CwA<vHɃt HJHLH\$`Ht$hH@A^A\_HL$ XLMCSH@ICISICHIKLE3EAA:$%tA:(%AHBHBL9ZtH;BwL IAI;AtHIAuAIA IuHJHBL9ZtH;BwvH HAH;tHHAHBHD$`HHBL9ZtH;BwLI@I;@tHI@uAA MAA:,%tA:4%HBHBL9ZtH;BwL IAI;AtHIAuAIA IuHJHBL9ZtH;BwvLIHI;tHIHH@[HL$ JXHL$ 9XLI[IkIs MCWATAUAVAWH@3ISICIKHICLL%D}AfB;'$tfB;'$L{HCH9kt H;Cv H3Hȸf;tL~HfAHuHKAHCH9ktH;CwfA+fA;wHHJHhHHCH$HHCH9ktH;Cv1HL$ &SH;Hf;tLfAHAfB;'$tfB;'%L{HCH9kt H;Cv H3Hȸf;tL~HfAH uHKHCH9ktH;CwfA+fA;wHHJHwGL\$@I[0Ik8IsHIA_A^A]A\_HL$ 6RLI[IkIs MCWH@ICISICH=IKLE3۽EA[AfA;8D%tfA;8L%HZHBL9Zt H;BvA L IAI;AtHIAf;uAIfA IuHJHBL9ZtH;Bwf+f;wH HAH;tHHAHBHD$`HHBL9Zt H;BvA4HL$ xULI@I;@tHI@f;uAfA MAfA;8X%tfA;8h%HZHBL9Zt H;BvA L IAI;AtHIAf;uAIfA I uHJHBL9ZtH;Bwf+f;wH HAH;tHHAH\$PHl$XHt$hH@_HL$ TLI[IsMCWAUAVH@ICISICL-HIKH3B:.$tB:.$HCH{HCtH;CwL3IsȃtIF2HƈHuHKH{HCtH;CwA<vHɃt HJH*FHCHD$pHH{HCtH;Cw*H3HtHFHL$ S\2<(tHL$ S;HCH{HCtH;CwH3HtHF2HӈH< t?HKH{HCtH;CwA<vHɃt HJHOEHHt<HKH{HCtH;CwA<vHɃt HJHEsA)D87tf?tXAЃ vAvAv _HCH{HCtH;CwH3HtHF2A:uD87H\$`Ht$hH@A^A]_LI[MCWH@ICISHICHIK3L }B: <%tB: @%HCH{HCtH;CwLI@I;@tHI@u2HˆHuHKH{HCtH;CwvH HAH;tHHAHCHD$`HH{HCtH;CwHHBH;BtHHBu2Ɉ(t-HL$ MQHL$ qM=HCH{HCtH;CwHHBH;BtHHBu2ɈHHS t:HKH{HKtH;Kw<vH HAH;tHHAHHt7HKH{HKtH;Kw<vH HAH;tHHAyA)D8tl?t^AЃ vAvAv _HCH{HCtH;CwHHBH;BtHHBu2ɈA:uD8H\$PH@_LI[IkIs MCWATAUAVAWH@3ISICIKHICHL%D}AfB;&%tfB;&%L{HCH9kt H;CvL3IfA;tM~HfHuHKAHCH9ktH;CwfA+fA;wHHJHt?HCH$HHCH9ktH;Cv-HL$ FL~H3HfA;tL~ff(tHL$ LCL{HCH9kt H;CvH3HfA;tL~HfH-t=HKHCH9ktH;CwfA+fA;wHHJH>HHt:HKHCH9ktH;CwfA+fA;wHHJH>>yf?)tnf9/t_AЃ vAvAv _L{HCH9kt H;CvH3HfA;tL~ff)uf?)L\$@I[0Ik8IsHIA_A^A]A\_LI[IkIs MCWAVAWH@3ISICIKHICHL MDvAfB; t%tfB; |%LsHCH9st H;Cv LI@I;@tHI@fA;uHfHuHKHCH9stH;CwfA+f;wH HAH;tHHAHCHD$pHHCH9stH;Cv4HL$ JHHBH;BtHHBfA;uff(tHL$ IVLsHCH9st H;Cv HHBH;BtHHBfA;ufHHt>HKHKH9stH;KwfA+f;wH HAH;tHHAHHt>HKHCH9stH;CwfA+f;wHHJH; tHHJf?)tuf97tfAЃ vAvAv _LsHCH9st H;Cv HHBH;BtHHBfA;uff)uf?)H\$`Hl$hHt$xH@A_A^_H\$Hl$Ht$WAVAWH 3H-HLA:/%t :/%u:HFHFH9^tH;FwL6I#tIFHAHuHl$HH\$@Ht$PH A_A^_H\$E3HELAA:%t A:%uBHBHBL9BtH;BwLIBI;BtHIBuAIA IuAH\$AH\$Hl$Ht$WAVAWH 3H-HLAf;/%t f;/%uFHFHFH9^t H;FvL6I/f;tIFHfAHuHl$HH\$@Ht$PH A_A^_H\$E3HELAfA;&t fA;&uPHBHBL9Bt H;BvA%LIBI;BtHIBf;uAIfA IuAH\$AH\$Hl$Ht$WAVAWH 3H-gHLA:/%t :/%u:HFHFH9^tH;FwL6I tIFHAHuHl$HH\$@Ht$PH A_A^_H\$E3HELAA:%t A:%uBHBHBL9BtH;BwLIBI;BtHIBuAIA IuAH\$AH\$Hl$Ht$WAVAWH 3H-[HLAf;/%t f;/%uFHFHFH9^t H;FvL6I f;tIFHfAH uHl$HH\$@Ht$PH A_A^_H\$E3HɝELAfA;%t fA;%uPHBHBL9Bt H;BvA%LIBI;BtHIBf;uAIfA I uAH\$AH8Lʃ3tmtMt:t"8 A8 8HT$ LD$ IɈD$(|tHT$ LD$ IɈD$(Vq38 돃tNt=t u838 AA-38A3A A3H8H8Lʃ3tqtPt9t(H8H?H H8H?HT$ LD$ ID$(`sHT$ LD$ ID$(U|3H늃tZtIt+uD3H8H?H I438H?I3IHI3H8H\$Ht$H|$ UATAUAVAWHHPE3EEHL9"tL9bu)nsHCHt L9cuD 3 Et A@"wHHMHCHEHHCL9ctH;CwH3H1 tHFAAHE@σx~LEAYHEHHQA#ƅt2HCHCL9ct H;CvAH;HtHG@EA@@-u@+u0HCHCL9ctH;CwH;H~t HG@AMA G< w @ǃ#G<w @ǃG<w @ǃtAEEiHCHCL9ctH;CwgL;IЃtUIGHuLEDDHCHCL9ct H;CvAfH;HAt HG@MAHAEAEDHKHCL9ctH;Cw$B<vHtHJHU3AMc3HIHU8LOЀ w DA&G<w DAG<w DAAAtqE;slA M;ruAH;v IIELHCH{HCtH;Cv@2|H;HtHG@HU8AV@2IE3LcHCL9{tH;CwG<vH@A;t LbHS2@uAHEH;CtHCD8D8}t HE؃HCHL9{D8I֋ktzuj"@uMm@t/D8}t HE؃HCHt L9{uD8H^D8}t HE؃HCHt L9{uD8H/@tID8}t HM؃HKHt L9{uD9IL\$PI[0Is@I{HIA_A^A]A\]H\$Hl$Ht$ WATAUAVAWHE3AEHL92tL9ru)ui.oHGHt L9wuD03Et A@"wHH$HGMH$HAHGL9wtH;GwYH7HfA;t HFf;\$XD$`f;r*f;\$hs#f;\$ps DAAAu-CfvCfvACDfwA AAt~E;sy M;ruAI;v IIELHwHGL9gt H;GvA*HHAH;AtHHAf;tںAHOHGL$L9gtH;Gw!f+޸f;wHHAH;tHHA@u/L;otHGD D8$H$I֋T6S"@uI}@t7D8$tH$HGHt L9guD HnD8$tH$HGHt L9guD H7@tID8$tH$HOHt L9guD!IL$I[0Ik@IsHIA_A^A]A\_HHXHhHpHx ATAVAWH MMHHMtVH|$`H+LIA:+t:u]HGHHGtH;GwH7HptHF2HAII;uH\$@Hl$HHt$PH|$XH A_A^A\2H\$H|$MILMt]LL$(L+HHAA:t:uOIAIyIAtI;AwMI@I;@tHI@u2HA HH;uH\$H|$2H\$Hl$Ht$WATAUAVAWH E3MMHHAMt_H|$pH+Af;+tf;ugHGHGL9ot H;GvAL7IUf;tIFAHfAHI;uH\$PHl$XHt$`H A_A^A]A\_2H\$Ht$H|$3IILDMtcLL$(L+fA;tf;u^IAIAI9qt I;Av$MI@I;@tHI@f;uIf HL;uH\$Ht$H|$2HHXWH@LA8HQHLHWHH3@@x蚏HKpLD$XH @8|$PtHtC@8{2t;HCxHCxHHHu`OUH@D$X@2H\$`H@_HHXWH@LA@HQHLHWHH3@@x:HKxLD$XH @8|$PtNtI@8{:tAHHHHHuNsTH@D$X@2H\$`H@_HHXWH@LA8HQHLHWHH3@@xrHKXLD$XH@8|$PtEt@@8{4t8HC`HC`HHHuNS HCh@D$X@2H\$`H@_HHXWH@LA@HQHLHWHH3@@xHK`LD$XH@8|$PtEt@@8{H$H$IWHfE;tHKAHS H$MEuL;t {4uEtHD$0HChH$H@A_A^A]A\_^]H\$UVWATAUAVAWH03DH@8qH(HAxHAxL@Mu9V?2H AH(H(HHL@MuW9?2H AH(H(HA`HA`L@Mu9>2 HAh AH(H(HAhHAhL@Mu8>2 HAp AH(H(HAxHAxL@Mu8Z>2HH IH(H(HHL@Mu[8>2HH IH(H(HA`HA`L@Mu8=2 HAhH IH(H(HAhHAhL@Mu7=2 HApH IH(HHLALIHHLALIHHHHD$(HAHD$0HA HHLALIHHLALIHHLALIHHLALIHD$(HAHD$0HA HHLALIHHLALIHHLALIHHHHHHHHLALIHHHHHLALIHHLALIHHLALIHHLALIHH@SH aHH3LAH4DB cHHc c(c0fCCC,H [3HHALAHA8AAHA A(A,A0HHaHLALIMtAHHaHLALIMtAHHaHLALIMtAHHaHLALIMtAH@SH LH3Aa(LADB LI HL c,Hc8c@cHHD$PfC0C2CDHHHCpHD$XHCxHH [@SH LHAJ3Ia0LA LI(DB HTx c4Hc@cHcPHD$PfC8C:CLHHHCxHD$XHHH [HD$(L3ALALI HQ(HQPQ0Q4HQ8Q@QDQHHAXHD$0HA`HHQhHQpHD$(LAJ3ILA LI(HQ0HQXQ8Qss AEDAA6EtEDA96t"AAAALHLALI E;uEtA>ss AE|AA6DDAC AIDssAEDA`A6@WA>LI^;A63IMtGHu '0HL;wHEL3T'" -EEDDLAAA IHL I E;u!A;6I~EHHDEHDAE6HE3HT$0E3HL$8DD$ D$@EF$EuD;F!dDABD$@3EʅEAAstVD;uAAKdDCȉL$@HD$8C EABDDIHЋHCHBTDH ;ƋD$@ut@AsCD;uAdDAAD$@AAËTDHЉTDD$@H څuDD$ AsHT$0AE; Dd$$D3IAMtEHu %.HL;w HT$DXL3 g%" +D+d$,HRDd$$D$(D+tkAE"tYtWEEtODDDAAAALIHLALI E;uEtA>ssAEDA3A6A6EtEDA96t"AAAADHATH DE;uEtA>ss AE|AA6HH3iL$I[0Is8I{HIA_A^A]A\]HDLtHE3ED9t(@AAATI AHLʉQI E;uEtAssELAHEIHLD$$D\$ E3ɺs2H̋HAH‰H ADLЋLALLT$D$ DH\$Ht$WH 3H9qt2HAqfq@qHq q(@q,q0@80u y[t3HCCq[H{HK Z[u2HK%8HA8CHC8*u H@{HCHXDHo[HKIt@HH?H H@IɁ;DA0AEMDDL$ AEىL$$@AHAD$pHH$Et HDHtEuEt[-t%=tDL$ D\$x=u:@7@8$tEu8\$ptADL$ D\$x DL$ D\$xËL$$HHt9AVIHI#HH;9AA+A+A+(IA8^t@H?H @gEAA@rHAAMHAA$HHL$xEt HDHtEuEt9t=t =u"D @A8\$xtEu 8$uDAAHIHAVHHH#HH;v%HɁ;~ j~AHHI#HH#It0@ŁH H HH#H4H H N@ ω 3H$H0A_A^A]A\_^]H\$Hl$Ht$WATAUAVAWH0H$DAEALъFA\$?҃A+D;w29vDAE3D9!vA3EAAH HEAE{ECAuFB|ABLH HEAE3EtC|ED"E;uHG|AGlA+AA+EAKIEDCTH#HALI#HLEu DuAE2E3EtC|AD"E;uAIDH$H\$`Hl$hHt$pH0A_A^A]A\_HE3D8BtAI?LÄAADL u33ELtAQ D$t3̸H;vH 3tB 3tBHAHAHAH+HAH+HH\$UVWATAUAVAWH$Hp HH3H` DLEBHL$XHT$pHыIE3DPE҉D$TLJEHA^&D;EEEABD+LHBDT$PHLL$xHD$hA+LRL$0M;:A EtzEEAATHiʚ;AHLTI E;uLL$xEt6Pss!PDTDPADPEDPDPEthEEt-AAAċTHLቌTDPI E;uEt.AssADTDPADP EDPEEAC AID$HM;EAD$8ȉD$@;ˋG3҉D$<ȋA""A#"HLÍHH CH "HHLHHuEDP EEELAAATIHLTI E;uEPss$PDTDPADPEDPAATLIDPMt@HTL;wHL3"DPE EELAAATIHLTI E;uA;DHTELHHDHTIDHL$`EHT$HDEAEDD$DEE"A‹4u!E;EzDDAEʅEAAstfE;uAAJDC ȉC EAHHBHC HBDH ;tHT$H딅tNAsE;uADAAAAӋHЉDH څuDD$DAsHL$`HT$HAE;EIDPMt@HTL;wHL3f"zDPtAL$@L^@+L$D;EDG3Dl$8AEA""A#"ًHLÍHH >H "HHLHHuEDPEEELAAATIHLTI E;uEt?Pss$PDTDPADPEDPADPATLIDPMt@HTL;wHL3L"`DP EEELAAATIHLTI E;uA;DHTELHTELDDEAEHHDEHT$HEAAtu!E;EzDDAEʅEAAsthE;uAAKDCȉCEAH֋ȋHBHCHBDH ;tHT$H뒅tNAsE;uADAAAAӋHЉDH څuAs7HT$HAE;EIDPMt@HTL;wHL39"MDPDd$DDl$8E+&Dd$D&D$RDL$P+L$HL$PD$8DL$0D+t@AIH."uuE3DuLEDHQDE"A9DuLEE3DHHQDAMHxtEtEELAAAIHLI E;uEhss$DDADBE3DuLEDHPHD$pLD$XHAD8ptAI?L0AAD0AUDt$H$tAEuA AL$Dt$HtAȋr+A;DS#|$0Dt$H\$0Ht$8H _3H9̋AËAËA0E3x~{AP~%t ;ti t3ËA(tQtQ;IEII(-t?t6ttt't'I"tt ׺HÊA,HHH̋A0E3x~{AP~%t ;ti t3ËA(tQtQ;IEII(-t?t6ttt't'I"tt ׺HÊA,HHH̊AÅA3QH ҉QH̊ÅA%ÊA%ËA0ËA0@SVWH H>H3H$H Bu(E3HNE3DT$ LD$$DM?tDEtE3H^EEHfAAH AHHL‰I E;uEtssDDE3DT$ LD$$DH>2gL$D6A~H^LBD HI>u'E3LD$$E3DT$ DHc>tDEtE3EEfDAAH AHHL‰I E;uEtssDDE3DT$ LD$$DH=2A;L$L$L$HFt LjLD ELzDLE3H$PAAډL$ EAlu;KDT$L$ EڋE߃stQ;uȍSDT$ щT$ LL$$M EALLA L MEI A;΋L$ uEtCs;uDT$HL$ HT$$HEË LDL$ I EEustlA;DLD$$IHN<H$PL$L$L$L$H$H36H _^[D2HLu+E3LD$$DE3HDT$ <HÃtH$uH$HH$E3H$EHyEAAËH AHHLʉI D;uH$EtAss"ELAH$H$HEE3LD$$DT$ H7;2̋HH\$UVWATAUAVAWH$HHH3H̉T$(DL%E3LD$,DD$ F&A&EDG3Dl$$AEH< "BL'Bt'HLHL$DD$@B'HL$DHHLHIL$@D$Du 3A6~EEr3M^DDHAAAI AHHL‰I E;uE1Ass EDAE3ɉt$@LD$DA6I92A6A~I^LAIMtGHu \0HIw HT$D3AϿ*"u#3LD$DE3ɉt$@A6H 9h_EES3LDDAAH AIHL‰I E;uEAss EDAE3ɉt$@LD$DA6H82;Mnt HT$DMD DL|$DIE3HT$0AAىEfDË E33H蟗@@ wtmtat+t2g3@8ySH$HĀA_A^_^]H\$UVWAVAWHHHAH3HEHIIMAA;fD{Ht"eHUH EȉC(HMD38kDLE3I/MH0 HM3fCC$HM؋C tS$HMC(tk3DNLEHEAHEIHE蹵tJHc}~ +HcUċMH HHSwAA;v"u͓ 2_ FfD{s 3fDfCt,Hd$(HEE3HD$ E33I+tHcEHCAHMH3XQH$HĀA_A^_^]H\$UVWAVAWHHH?H3HEHIIMAA;fD{Ht"eHUH EȉC(HMD3TiDLE3IKMHL HM3fCHC(HHMHHC HHS(HMHC0Htk3DNLEHEAHEIHEɳtJHc}~ +HcUċMH HHSwAA;v"uݑ 2_VfD{s 3fDfCt,Hd$(HEE3HD$ E33I;tHcEHCAHMH3hOH$HĀA_A^_^]H\$UVWAVAWHHH=H3HEHIIMȑAA;fD{Ht"eHUH EȉC(HMD3dgDLE3I[MH\HM3fCHC HHMHHCHt~HS HMHC(Htg3DNLEHEAHEIHEݱtFc}uHMwKAA;v"u 2]5nfD{s 3fDfCt*Hd$(HEE3HD$ E33IStECAHMH3MH$HĀA_A^_^]@UHHpH<H3HEHMЅu H uxHUHMtVLE3HUۏtBDUD]L$0DMDEUMDT$(D\$ tuݎ XHMH3LHp]@UHHpH`;H3HEHMЅu H uHzHUHM>tWLE3HU"tCDUD]L$0DMDEUMDT$(D\$ fsHu# e融HHMH3KHp]@SH@HD$xE EHD$p DH$DD$\$xD\$pH@[r@SH@HD$xE EHD$p DH$DD$\$xD\$pH@[rHD$8E EDHD$0 DT$8DHD$(DT$0DDT$(ZrHD$8E EDHD$0 DT$8DHD$(DT$0DDT$(*r̋HHHLAHHLA̋HHHLA̋HËHËHËHËHËHHHLAHHHH@SH H9Ht H H H [@SH HH úH#H [H9Ë g@SHPHHH [HcLHHA?IH BD8u JLKND(3M u13HL$ DB$UbHCD$ L$0HD$@IA 3HP[@SH`HHH yZHcLHHA?IH BD8uS WLKND(3M u>3HL$ DB8aHCD$ L$0HD$@IL$PA I03H`[̋ g@SHPHHH YHcLHHA?IH BD8u觊 LLKND(3M eu33HL$ DB0aHCD$ L$0HD$@IA 3HP[̋ f̋ f̋ f̋ e̋ f̋ e@SHPHHH YHcLHHA?IH BD8u߉ LLKND(3M qu33HL$ DB0M`HCD$ L$0HD$@IA 3HP[HHXHhHpHx AVH MIHHV0OLHHσ f^HHt 10H%%8"t3E3H3ɉ00^IH\$0Hl$8Ht$@H|$HH A^@SH H9Ht H H H [H(H(H("yu=w 菈2H(H(H"Hy~g2HcIH HȰH H(H\$Ht$WH L3AAuSMtGAAfv fafwfAx:tDEI@IHEf91tf9\tf9/uf9qt@@fff#иf f Mte.IvHHtPH-H]t9H*H]t&H'H]tH$H]uf@Ht$8ff8f fff H\$0H _HHH@SH H3҉fAfv fafw:fy:u,f9Qu^2!fAfw UH [H@SH Hu2`.uHHtHH\t9H H\t&H H\tHHs\uH [E3HHtH Afv fafw fz:tAHJHEfD9uf:\tf:/ufD9Bt2H3Hf9AuHfA\fA/fD9 tfD9upfD9ItfD9AubfD9At[fD9ItTHAftHfA;t fA;tHf9t1Hf9t(ftfA;t fA;tHf9tf9Pu2f\t f/t3øH\$Hl$VWAVH@H1H3H$0HHZE3HI„(軄AHL$ HD0YHHt 蘄($菄8"uQ腄E3H3ɉ(YHHHt2HHfD94GuHt HtH;wAH趲@H$0H3BL$@I[(Ik0IA^_^H9@SH HH oH#H [@USHHhHUHډM Hu螃!跃3HMDB$=ZEЋEMKC HcU uZ r txX;`V}PHLTR?HHHID8t-HE U(HELM(HEU0LEHEHU0HM  躈Hh[]@USHHxHUHډM Hu讂!ǂ3HMDB0MYEMEKC HcU uh 耂 txX;nU}PHLbQ?HHHID8t-HE U(HELM(HEU0LEHEHU0HM  ȇHx[]@USHHxHUHډM Hu躁!Ӂ3HMDB8YXEMEKMC K0HcU uj 肁 txX;pT}PHLdP?HHHID8t-HE U(HELM(HEU0LEHEHU0HM,  ʆHx[]@USHHxHUHډM Hu辀!׀3HMDB0]WEMEKC HcU ux 萀 txX;~S}PHLrO?HHHID8t-HE U(HELM(HEU0LEHEHU0HMz  ؅Hx[]@SH HHu a7Hd$0HT$0WHL$0u |H2HL$0{H [@SH HHu 7Hd$0HT$0EWHL$0u {HHL$0{H [@SH HHu 7Hd$0HT$0VHL$0u _{HHL$0F{H [@SH HHu 7Hd$0HT$0VHL$0u {HbHL$0zH [ /zH9 t HH;u3H̸csm;t3ËH\$Hl$Ht$WH HE3HHu3HHHHH;t 98t HH;uIHtHxHtHu L@GHHkHspH0HLAHH;u8s8tw8tf8tU8tD8t38t"8t8uOCFC=C4C+C"CCCCHcS׉sHL@GHkH\$0Hl$8Ht$@H _2H(auu =@t2H(@SHPH<)H3H$@HٹS{LHPHwYLL$@E3HT$@ H$4 HH;t HfuA+D$3DD$0LL$0LD$ IDBHT$@|H$@H39HP[H\$Hl$Ht$WAVAWH0Hٹ`3u =?AH-?AL\HT3Ʌ>L5%?f5&AIA}yAuLVIHHfA94NuHAH̋=̉ =H&HыH3ƒ?HL&HAй@?+HI3E3HALL+IIH;MGMtIHHIM;uHHa&H3@C?HHH )CH\$WH H/&HH3 C?HHu3H{HH\$0H _L%LAй@?+IM3L BHDuHuHHEHH}@LM@HD$ E3H}H3HbL}@AHUHIHHu Kx{ 8:NHHEHHLM@HD$ AuE@ȉS;HHM;HߋVHU8H}8HRttHM81HU8HHH9:t H@HH98u ;HH:HM8sH}8HsH\$`H0A_A^_^]H\$UVWAVAWHH0ADvqw)}HBAH3fuH5:3H:Htf9>uHHEHH}@LM@HD$ E3H}H3HL}@AHUHIHHu v{ 8:NHHEHHLM@HD$ qAuE@ȉ9HH9HߋVHU8H}8HrtHM81HU8HHH9:t H@HH98u 9HH9HM8rH}8H}rH\$`H0A_A^_^]EH H%'uEH H%/tHHXHhHpHx ATAVAWH L|$`MILHI'IHtLI@2;"u@@"@H7IHtH3HË8tIHtHH@t@u@ t@ uHt GH@2;; t; uH;MtI>II$3H;\t;"u1u@t {"uH 3@@Ht\HIutD@u< t;< t7t+HtH TtIHHtHIHiHtHI%MtI&I$H\$@Hl$HHt$PH|$XH A_A^A\HHXHpHxL` AWLT$03II2IHtLHDA"fD9!uEAAHIMt fAIHftEuf tf uMt fApH@A\f91f9 tf9 uHf91HtLHHAHfD99tfD9!u7Au@t fD9auH @D@MtfE8IIuft/@u f t$f tEtMtfAIIHrMtfA0II*HtH2HH\$Ht$H|$ Ld$(A_HH6HH 6HHHHHHHH@SH HH nH#H [@SH HH nH#H [H 3HH9t HRHH:uH 3HH9t HRHH:uHH!HH!HH!uCnCnHHHHH5H5H5H5@SH HH mH#H [@SH HH mH#H [H( |H(2@SH HLLH;r3uHHEHH}@LM@HD$ E3H}H3HXL}@AHUHIHHuAp{ 83NHHEHHLM@HD$ AuE@HG3=3HU8H}8HKltHM8lHH}8l?HU8HHH9:t H@HH98u 23H}8H2kHH}8kH\$`H0A_A^_^]H\$UVWAVAWHH0ADvYo8u*H:AH3PmH523H2Htf9>uHHEHH}@LM@HD$ E3H}H3HL}@AHUHIHHun{ 83NHHEHHLM@HD$ VAuE@H11HU8H}8HjtHM8jHH}8j?HU8HHH9:t H@HH98u x13H}8Hw1fjHH}8ZjH\$`H0A_A^_^]H a1H a1H(H:Hu 3H:H(H(H:Hu WH:H(@SH Hs:3Hu+H9m:u3ju%H J:HEHH [@SH H3:3Hu+H9:u3uH :HEHH [H\$WH 3H9=9t3HpyHHu'HHuH9H93iHhH\$0H _H\$WH 3H9=y9t3CyHHu'HHuHP9HA93hHhH\$0H _3=tHHH€<uHHʊuE3Af=tHHHfD9QuH QHfuH\$Hl$Ht$WAVAWH03L<=tHHH@84uHHȊuHJiHHtlLA86taHHA84.uHA>=t5HiHHt%MHHh3ɅuHI?IgLHI3rgH3fgH\$PHHt$`Hl$XH0A_A^_E3Ht$ E33qH\$Hl$Ht$WAVAWH03Lf=tHHHf94AuH AHfuHJhHHtpLfA96tdHHfA94nuHfA>=t5HhHHt&MHH'3ɅuII?IfM4nH3lfH3`fH\$PHHt$`Hl$XH0A_A^_E3Ht$ E33 pHt;H\$WH HHHHfHHHuHeH\$0H _Ht;H\$WH HHHHeHHHuHeH\$0H _kugvH\$Hl$VH@H56HHd$8AHd$03҃d$(3LHd$ iHctɺH gHHt[Hd$8AHd$03L3ɉl$(HD$ Sit13H 3dHH>s3H\$PHl$XH@^HdLH\$Hl$VH0H5B5Hupsd$(AL3Hd$ 3eHctغHLfHHtKLAl$(33HD$ et-3H`3=dHH>u3H\$@Hl$HH0^HdkMHH eMHH 銛HHH<uHHHfu.H@f.LȍU@LH;teu*H@ssf_tmHLLÍU?:t6uJHsDftf,u9HLLú:uyf,fI^0H\$PHl$XHt$`H0A_A^_E3L|$ E333YE3L|$ E333XE3L|$ E333XE3L|$ E333X@SH {DAЀɃt6t9t tR?XAAD AH [H(HHH;LDH~AJAHB A@ J0AH0B@A@@JPAHPB`A@`MJpIAHHuAJAHB A@ J0AH0B@A@@HBPI@PakyH(@SHPH@H3H$@كw:Ht5HD$0D$(LHD$ 3A3NtHT$0z3H$@H3"HP[@USVWATAUAVAWH$HHHH3H0L3HT$HIH\$XMLHHu%3H0H3HHA_A^A]A\_^[]iHAUt$0HHL$8LHHHL$@LIHD$P7f?Cu0f9wu*LHIPMtA6ITHHE3HfD9 wuHsLLIM+B+uHuHD$@LL+B+uHu{Kz3HDHL$`Au}ELD$`L|$8HL$`It'`t[LD$`I>E3MHHfD9;AJLHL$0Mƺ-#HH= LD$0fDl0AHHtI^fD9+tHfD9+HtH$H3H$XHA_A^A]A\_^]3Ll$(L$@AHD$ UHT$0HtHtALw(t@IHD$0H+DA+u HEutLD$0HHHuAI ~=0I8CE3Ll$ E333KH\$ UVWATAUAVAWH$H0HH3H ILcH莗LpAHT$`HLHD$@HD$(HD$ UvE3Hu,3H H3uH$H0A_A^A]A\_^]IHL$`HHD>(LL+F A+u HEutHD$`HHfD9XuH ]@LHwHL>(LD$`HL$HHSJ(HL$PO L$DHHw3ۅf|$`CIEHD>(uf9\$bu J(HpJ(AD$@DÉG HIO A9G tIAI HHH|EtIcIII Au|G EHzD$0LAD$(AQHEp3HD$ )it@HMpf!HIHcHrHHMpA2˅AOA_G AAGGAu D$@G AuD$@GKdHHHDH3ۅt8HD$HHD>(J(>HD$PIJ(>D$DG H H9L$Ht?HD>8u.HL>8N>HL>0D>J(7>H\>(J(AEHD>(Ll>8SE3H\$ E333GHHH 3HH H HËH(vzA3G tH(HiH @ƒ?+3HH3Hl=H\$LL$ WH II H 6H\$0H _H\$Ht$LL$ WATAUAVAWH@IM IHHu H@H5oDA?HH3:AHH|$0HH3ZHH\$ HGHLH|$(LH\$8A@AA+3HH3HH\$ H;r H9uH;sJHH;tHg<H5ƃ?D+A3HH3IHHIHHQIHHQr΃?H33HHHCBIHH5DA?LL3 AIHBH3HM;uI;t MLL$(ILL$0LHD$8HHD$ H$3ۋ~H\$pHt$xH@A_A^A]A\_HH(HLHH LHP HH?H(HH(HLHH LHP HHH(LHAй@?+HI3HH̋HHHLA̋HËHËHHH@SH HH :H#H [H\$Hl$Ht$WATAUAVAWH H3LH8HuH7LHI3I3EA?AHHHFHLLA@AHA+HI3HH;raH9tHAI3HHHM@LIEA?AHLHBM3I3IHM;uI;tMILHHtH9LLA?D+IAHI3HH)IHHiIHHi3H\$PHl$XHt$`H A_A^A]A\_̋ i|HHXHhHpHx ATAVAWH H3LHHuLA@H+ALK?H[I3M3HI3IHL;H+ݸHH;HHGAD$HHDH;rED$HH3L8Mu(H{AHH~3L8MQLM AI?A+HHHI+I3HIHIL;HGHtHHHIH;uLAÃ?+IGHAHI3MAIHʃ?+IHH3HH)AHtƒ?+IIL3HLBHVƒ?D+IAHH3H3HYH\$@Hl$HHt$PH|$XH A_A^A\̋ z̋ )z̋ !zHH!@SH HH c7H#H [HH BHH }LIKH8ICICMKMCIS D$PIKD$XH8E3LHuHAH9u$Ha@ƒ?+IL3MMHMH3HT$HL$UHH@HEHELM(HEHELEHUHM E(EH@]HHJH(H 1TH =HH(̰̰H( H(ð̰@SH H@3ۃ?+HH3H>H~HHHSH [3 @SH H OuH <H H;t 5H$H u|5H q3H`g5H dHUT5H YHJA5HDH [̰E3HALL+IIH;MGMtIHHIM;uHuH ~{H(HH(H(H(H=H FU|H(裌H(HyH6HEAH(H 5HxHEHHH(@SH HHH5HzHEBHZH [@SH 轊HXHt HG:5LMtHT$(vHT$(gHHtt;t+؀|$8t HD$ 3H\$PHl$XHt$`H@_HdHHXHPUVWATAUAVAWH0LL HE33LhHH'Eut=AwHt$pHtm3H)u3H#2IILƄt6<"uIMIAuHtH+II3HHu*31IH1Ht^3H跕uPHgHHD8.t"tIID8(uD)313H{u3x1Hp1H'H=3HRtH=ߍHG1IHMtLIG8,33LÄt8<"uHIHAuHtH+ʺH$,HHu)3=*3H3*HtS3HuEI.d;t"tHHǀ?u3)3Hu3I6)H&H=`3HuI> HJI3H)H\$PHHl$XH0A^_^Hd$ E3E333Z3HHXHhHp WAVAWH0LLHE33LxHH5t/AH\$`HHtr3HXu II>IILft=f"uHIHAfuHtH+ʺH*HHu*3(IH(Ht[3HuMI.lfD9;tf"tfHHfD9?u3fD8u(3H裋u3I6](H'H=3HuI> HτIIH)(H\$PHHl$XHt$hH0A_A^_E3L|$ E3331H8Hd$@L3HL$@觉t t3HD$@H8Hd$ E3E3331H8Hd$@L?3HL$@{t t3HD$@H8Hd$ E3E333;1H\$WH H3ۋӋLNJtW<"uHIHAuHt>H+ʺH(HtH"tHH8uH3&H3H\$0H _H\$WH H3ۋӋLftcf"uHIHAfuHtEH+ʺHl(Ht$Hf"tfHHf9ufH3d&H3H\$0H _̋A̋y̋H .̋H b̋H ̋H J̋MH 鯈̋H 颈̋MH 铈̋MH ̋H ̋MH HHH<uHHHfHT$(HT$(HDžt;t+؀|$8t HL$ Ht$XH\$PH@_@SHP3Hu%+L$`d$xd$@d$0DD$(D$ @DLHT$`HL$xD ؉D$@|$xt0t#HcL$`HHHd?HH€d8L$`t B%uD$`HP[@SHP3Hu%*L$`d$xd$@d$0DD$(D$ @DLHT$`HL$x ؉D$@|$xt0t#HcL$`HHH?HH€d8L$`?t $uD$`HP[H\$WHPEL3H$HuO$* 3Htً$tAtd$@d$DL$0DL$(DT$ DHHL$@ D$D|$@t,t!Hc HHH?HH€d8 Zt H\$`HP_H\$WHPEL3H$Huo#') 3Htً$tAtd$@d$DL$0DL$(DT$ DHHL$@ D$D|$@t,t!Hc HHH?HH€d8 zt H\$`HP_HD$8E MHDHD$0H DT$8DHD$(DT$0DDT$(<HD$8E MHDHD$0H DT$8DHD$(DT$0DDT$(8 HD$8E MHDHD$0H DT$8DHD$(DT$0DDT$(HD$8E MHDHD$0H DT$8DHD$(DT$0DDT$(LI[IkIs WAVAWH0Lc3MAA?H IIHIAHHBD8A@Eu"IK\$P D$PA#u?A#A@t>tt u #;uD>E@zE#‹ˋ=@t=t3;VEKA;vv\8A\$PHT$PA~DtEA;tW|$PuDE3A誉HtzE33A蘉Hu 1 MvD$P=u  =uE3IAMHtD>E33A5HttY\$PtuD$PAD$P~(DHcHT$PD+HAaF;3H\$XHl$`Ht$hH0A_A^_E3H\$ E333[%HHA@MA @LHd$0D$(A@E@ ARD$ HHH(DtHt!t$.'A"%@H(H(#tetVtGt8tEt!t';tf$! H(H\$Hl$VWAVH0HEAtFt t#-&"%@C#t^=tP=tB=t4=tB=t=t&;tx1#! CtJt>t2t&@t'"&3{@ 3c@s C@t u@uHL$Xu9t$Xt@+t8A#@uC@@tkkK  s K sk@ tk @tkHl$`HH\$PH0A^_^Hd$ E3E333<"H(tKt?t3t'@t!$3 3H(H8s2H8@tHL$@u |$@Hd$ E3E333!H\$Ht$WH HcH _HHH?HHL8HuxytAH舄HHu8tMF3HT$0ft$0DF^uf|$0uH׋~tE33ҋ+Ht3H\$8Ht$@H _HĉPL@LH H(H@DH(LECMK SH@d$(MKIC MKD\$0L$0EˋH@[HHXHhHpWHPH`HHHPIAuC$DH\$@H։D$0LË$H͉D$($D$ HˋH\$`Hl$hHt$pHP_H8AD$(DL$`ELHL$ DAIH8HĉPL@LH H(H@D2H(LECMK SH@d$(MKIC MKD\$0L$0EˋH@[{HHXHxL@UATAUAVAWHhHEMDMwHDEoHAHMfsfI~I L}E@EEAuw GPuT iHd$0LM׋MAHUEHeH]H ]\$(L$ IH EEH]DuHELHA#;uFAt@Hd$0LM׋MADuEHU\$(L$ HM_H MHELHu3HcL=H?HHIǀd8IuQȋHcL=GHʃ?HHI πd8I_ ~]u@uIHcL=HH?H]ILj\8HcH?HHID9At+Du3LmELMMHUE)EEMtDbAHcEHʃ?HHI ψD9HcHƒ?HHI A$d=D=Hu AtHcH?HHIǀL8 A#;AIHMLMHd$0ADEL$(ML$ HM_DuHUH 6HHu3HcH?HHIǀd8_HcH?HHIHT(3L$I[0I{8IA_A^A]A\]H8AD$(DL$`ELHL$ DAI[H8H\$Ht$WH0HHu3H\$@Ht$HH0_HHÀ<uHK%HHtLHSHuHHd$ E3E333H\$ UVWATAUAVAWH0LcLIHP?MIHJHL8(H$Mt A> uL88d88O$IIM; In<< tHHHI;s} uH HH Hd$ LL$xAHT$pHHtf|$xt_HJD88HtL$p u M JL8:@|$p u I;u ,AHA||$p H:tH/ HH$I;J D98@u D98 HI+ދH$H0A_A^A]A\_^]@SUVWATAUAVAWH8LcLIMI?HLA KHL8(H$Mt fD9 uL88d88N$BHHI;Hj fnf;tfHHHI;sfD9MuHfD HH|fHd$ L$AH$HH$LA KD88Hte$fA;ufD H$I;7 f$f 3K HψD:HH|KDL89 H(̋ H\$WH Hu3UHu @u ;u@xtHH;tHuH\$0H _̉L$H8Hcуuo  txX;usPHLi?HHHID8t-HD$@T$PT$XLL$PHT$XHD$ LD$ HL$H  H8H\$WH HcHu3WHu @u ;u@xtuHhH;t\Hu؋HLz?HHHI D8t 3H\$0H _HHHHH\$WH H?HuJH \,3Hu H3+VHHHtHCHH H\$0H _Ht7SH L3H uHH [@SH HHwEu0w Eu$o AA$u s@ HHCEtHf9+tEuf93GAHKHHHf9+tf;=Hf9+tAHKH}\u H /JAHrKHZ\u H/'AH_KH7\uH/Hf9+t8H\$@HHl$HHt$PH0_H\$H|$LL$ UHH`HAHMz@E؉Eu3`DEHMDD$ HuHM(E AHE(`HE(H`(HE(H`HE(H EHM(AHE(H\$pH|$xH`]H\$H|$LL$ UHH`HAHMf@E؉Eu3`DEHMDD$ HuHM(E AHE(`HE(H`(HE(H`HE(H EHM(AHE(H\$pH|$xH`]MH MH EMH 鹸MH 魸MH 顸MH IZMH =ZMH 1ZHD$(E EHDH DT$(6HD$(E EHDH DT$(̋@t2Ã@)̀:t2 ̀:t2 ̋t2 ‰̋t2̀:t2i ̀:t2q ̀:Lt2uIAHËt2HHXHhHp WHPHIHHA3@D$0D$8:tGDD$0HL$pDD$ Hu&D$4 GD$p_H_(H_HH߉GHl$hHH\$`Ht$xHP_HHXHhHp WHPHIHHA3@D$0D$8:tGDD$0HL$pDD$ Hu& D$4 GD$p_H_(H_HH߉GHl$hHH\$`Ht$xHP_H\$WH H_HH3?HHE33HHH\$0H _HH%@ƒ?+3HH3H\$Ht$LL$ WH II؋ ,HLHƒ?@+IL3LSH L>LAЃ?+ڋ3HI3HĻ,H\$0Ht$8H _HH(HLHH LHP HHGH(HIHыH3ƒ?HL1HAй@?+HI3̋HHH̋HHË +@SH LHA@?+HHHH QI3HS6LAЃ?+3ҊHI3HH [Ë *@SH LsLAл@?+IH M3ȍSL zL=AЃ?+3ҊHI3HTH [HL I3LIHIL ILIHIL ILIHIL ILIHVeL ILIHNEL ILIH>%L IL}IH6L yILeIHfIL qIL]IH^IL qI L]IH^IL iI LUIHVIL qI L]IH^IeL yI LeIHfIEL yI LeIHfI%L qIL]IH^IL mIL]IH^IL yILeIHfIL qIL]IH^IL yILeIHfIL ILmIHnIeL ILmIHEL iILUIHVI%L ILmIHnIL IIL5IH6IL aILMIHNIL aILMIHNIL aILMIHNIL YILEIHFIeL IIL9IH6IEL =IL-IH.I%L 9IL%IH&IL 9IL%IH&IH\$Hl$Ht$WAVAWH HHH;L=7IHtHttmM,3IAzHHu <WuE33IYH3HuHIHIHt HHu(HH;j3H\$@Hl$HHt$PH A_A^_HH\$Hl$Ht$WATAUAVAWH DL=MILK0LHAIH3у?HH;%HtHM;uIHtH;tzsM,3IARHHu WuE33I1H3L=cHu HIHIHt HXHuUHI;dL3HtJIH Ht2L@Aȃ?+ъHHI3K0-LבLΑA¹@?+HI3K03H\$PHl$XHt$`H A_A^A]A\_HHXHhHpHx AVH L5rI3Ht HH;HDsI,3HAHHu!WuE33HHHHuHI3HIHt HHH\$0Hl$8Ht$@H|$HH A^HHXHhHpHx ATAVAWH IHLI;L%7IHtHttmM,3IA"HHu WuE33IH3HuHIHIHt H.HuHH;j3Hu3 IHH\$@Hl$HHt$PH|$XH A_A^A\@SH 3AHmHu!2WuE33HH [H%I3H [@SH L GA3L:AH;A*HHtHHH [HH [HHXHhHpHx AVHPAIL @LL@H@HHtWHH$DH$LHL$@H$HL$8H$HL$0$L$(IHD$ 23IDϋ$LƉD$(H$HD$ H\$`Hl$hHt$pH|$xHPA^HHXHhHp HHWH@IIL %@L@H@HHtHHL$PLLƋ0HD$PHD$0LL$$LD$0HT$(D$$HL$ D$(H\$XHl$`Ht$hH@_H\$WH HL ?L?H-HHHtHXJH\$0H _H\$Ht$WH HL >HjL>-HHtHHӋ HӋH\$0Ht$8H _HHXHhHpHx AVH@IIL >LLr>Hs> HHt7HH$LHL$0LƋL$xՉL$(HL$pHL$ I,3ILϋD$xLƉD$(HD$pHD$ H\$PHl$XHt$`H|$hH@A^@SH L = L=H=HHtHHH [HHHXHhHpHx AVH AIL =LL=H= HHtHlDLƋI xZ3H\$0Hl$8Ht$@H|$HH A^HHXHhHpHx AVH AIL l=LLZ=H[= HHtHDLƋI3IwDLƋH\$0Hl$8Ht$@H|$HH A^H\$WH HL =L =H =HHtH_H HH\$0H _HHXHhHpHx AVH0IIL <LL<H<%HHt*HL$hLωL$(LHL$`HL$ I,3IuLϋD$hLƉD$(HD$`HD$ SH\$@Hl$HHt$PH|$XH0A^H\$Ht$WH L H<HH><L*<yHHtHDH E3DNjHYH\$0Ht$8H _H\$Ht$WH HL #<HH<L<HHt$HHHHH\$0Ht$8H _HH\$Hl$Ht$WH AL ;L;HHHHtH`DŋH H9H\$0Hl$8Ht$@H _H\$WH HL p;L\;H];,HHtHH3HȺH\$0H _HHXHhHpHx AVH EAHL +;L;H;HHtHxEDH׋ DH׋4GH\$0Hl$8Ht$@H|$HH A^HHXHhHpHx AVHPAIL :LLv:Hw:!HHtWHH$DH$LHL$@H$HL$8H$HL$0$L$(IHD$ 23IDDϋ$LƉD$(H$HD$ ,H\$`Hl$hHt$pH|$xHPA^H\$Ht$WH L 9HH9L9AHHtH HHFH\$0Ht$8H _H\$Hl$Ht$WH IL 9L9HH9HHt+HLNjHHH\$0Hl$8Ht$@H _HHHXHhHpHx AVH AIHL 39LL!9H"9THHt5HDLHIHH\$0Hl$8Ht$@H|$HH A^HBHHXHhHpHx AVH AIHL 8LL8H8HHt5HDLHIHH\$0Hl$8Ht$@H|$HH A^HH\$WH L a8LQ8HN8]HHt H(H\$0H _@SH L /8L8H 8HHt HH [H\$Ht$WH L 8HH8L8HHt#HHHH\$0Ht$8H _HH\$WH HL 7L7H7lHHtH7HH\$0H _@SH L 6L6H6#3Ht'L 6L6H6KHtH [H(L 4L3H3HH(H(L U6LA6HB6HH(H\$WH L 3L3H3cHHu3MH*HHtL Y4 LE4HF4%HHuHHHH\$0H _H|$H$H=M¹@?+3Hȹ H3HH|$H\$WHPHH3HD$@L 3L3H3HHuvL U4LA4HB4aHHtH,HHu283HHD$0D$8 Hd$ LD$0A HAQׅtʊD$8$HL$@H3qH\$`HP_H\$WH L3ۅt\L _2LK2HL2HHt(Hȉ\$0z3HL$0׃zu H  2H\$8H _@SH u/HH HtHtH#HHH;uذH [H\$WH0d$ _\$$;tnHcHHHuUH tH vH Y4tD$ H]H H0oH HH KH8H$놹)D$ H\$@H0_HL$HAHHD$`HH#;LDAA HA@A#AHuH\$Ht$WH HًA$<uJAtC9+yaHqH1~/DH(u;t KCtc3H\$0Ht$8H _@SH HHu H [@ktC tH }@u3H [̹HHXHpWAVAWH@``|H=ēHcL4AH|$(I;tqHH\$hH\$0HuWH1C t<uH+A;t*D$$$u CtH T$ A;AD׉T$ Hl1H녹4D$ DD$$H\$`Ht$pH@A_A^_H\$HL$WH HHu 1HH1H\$8H _H@@SH HًA t'AtHIc3HCHCH [ÅttøøHHXHhHpHx AVHHH"E3fD9t$bHD$hHHcHp H98L8;=̡O=št^AH;tEH;t?t:u H Ot(HH?HHHH HHA(A8HHHHuL$I[IkIs I{(IA^H\$Ht$H|$AVH 3E3HcH HÃ?HHHHC(HHv K8C8υtt  HHHHv Hf3tHs(uK8@.u)K8#K8@HC(HHt I@I5H\$0Ht$8H|$@H A^@SH  33?u I H [H\$WH 3H=H ;Ht 諧H$;HHrٰH\$0H _H@H(HuoAH(@SH E3HtHt MufD{3H [LL+CfAMIftHuHufD;"3@SH 3Ht HtMufH [LL+CfAMIftHuHuf"@UH Hl$ HxLɃL AI+IML#I;LBI 9tHH;uI+I;uILIM+IL+LWt u H I;uI9tHH;uI+wHH+HIML#I;LBK L;t 9tHH;uI+I;uLIM+WIL+Lfoftfu HI;uI9tHH;uI+eHIL;t 8tHH;uI+H ]@UH Hl$ H+wLLt)HQHH;tE3fD9 t HH;uH+H H+HML#II;LBE3IKXL;tfD9 t HH;uI+HI;uPIIPI+HH+WLJu u H I;uKP fD9 t HH;uI+HwHt+HQHH;8E3fD9 +HH;uH+HML#II;LBE3IKXL;tfD9 t HH;uI+HI;tIIPI+WHH+LJfofufu HI;uKP fD9 t HH;uI+H QIL;tE3fD9t HH;uI+HH ]LHI;t 8tHI;uH+LQHI;tf8t HI;uH+H@UH Hl$ HLLA I+LIML#II;LBIL;t 8tHH;uI+I;uJI+J HƒH+HWtu H H;uK9tHH;uI+wHH ]@UH Hl$ HLLt)H QIL;tE3fD9t HH;uI+H H+HML#III;LBE3K XL;tfD9t HH;uI+HI;uSI@II+HH+WLJuu H I;uKP fD9 t HH;uI+HwHH ]LLAI+LIML#II;LBIL;t 8tHH;uI+I;uJI+J HWɃH+Hfoftfu HH;uK9tHH;uI+HLLt%H QIL;tE3fD9t HH;uI+HÃH+HML#III;LBE3K XL;tfD9t HH;uI+HI;uSI@II+WHH+LJfofufu HI;uKP fD9 t HH;uI+HHw@UH Hl$ HotH ]@UH Hl$ HouH ]foftfofuofof@UH Hl$ HWH ]W@UH Hl$ HwqLɃL AI+IML#I;LBI 9tHH;uI+I;LIM+IL+LWt u H I;uI9tHH;uI+wH+HIML#I;LBK L;t 9tHH;uI+I;u^LIM+WIL+Lfoftfu HI;uI9tHH;uH9tHH;uI+HH ]@UH Hl$ HpLLt+HQHH;E3fD9 HH;u H+HML#II;LBE3IKXL;tfD9 t HH;uI+HI;HIIPI+HH+WLJu u H I;uKP fD9 t HH;uI+Hwt+HQHH;E3fD9 HH;uH+HML#II;LBE3IKXL;tfD9 t HH;uI+HI;usIIPI+WHH+LJfofufu HI;uKP fD9 t HH;uI+!HQHH;tE3fD9 t HH;uH+HHH ]@SH 3HiE3H H ʺtRà rӰ 3$2H [HcH H"H H%G@SH HH H / u߰H [HcH HΓH H%H YH%H IH%H\$T$UVWATAUAVAWH03LHugH=H軏LHt^I;tY@8pL5@L;5@l$puIiLHߌAMtPH95͌tGYHHHH$H0A_A^A]A\_^]@uѺI讽3HaȻL5UMuHH95Ku+Ix3H3蒻H95'tL5MtMIM+I96t4HMI!1uHA<=tA84t HH93I+H I+HHHxWI96tRI @uM<IDIHI94uAHI)3HHtfHk]@HHSH;s HHH;sAI3L萺MtMgI >HtVLHVVu0HH?u3=HH\$@Ht$HH|$PH0A^蟷Hd$ E3E333胷HHXHhHpHx AVH03HHu3HHH9/t HH@H9(uH芷HHt{H9/tQLL+HHHf9,puHNY3I>vI >HtYLHVu4HH9/u3MHH\$@Hl$HHt$PH|$XH0A^誶E3Hl$ E333菶H\$Hl$Ht$WH H=HHHH?t4HLH*uH<=t<t HH;H+H H+HHHl$8HH\$0Ht$@H _HHXHhHpHx AVH H=E3HHHL97t5HLHE(uHfH;HH#HAH;w HH_H+H\$@HH;HH#E3HHtHIHI3LEtt$(LEH\$ FLD$0LEt$(H\$ 蝵LE3M9vAII $fI$IʅHK9uLuAL]DfEdM9AAHHAMfD9tA;h+A'A;AC;tEC!A;tdAC&;t%AC:;HHojuXHw it%t#tAAbAڸmt tAAHHjuHwp%} A+ƒA…uFJ-3HׅtIIB<uHcIH5_>-Hu-HW~BHHD$8HH 3L 8$HHH+HHH/HD7qHKEtEHF80tWDFAyAC-Ad|QASkœDA |gfffASkDDC$u90uHQAE^|$Ht HD$03Hd$ E3E333JyLI[IsWH@t$x3H IICMCICHHD$pIC!DD$4LL$03H׃|$0-DH+HHDH\t%H$LL$0HD$(DHD$ HH\$PHt$XH@_HHXHhHpHx AVH@HT$xHHHMA@ANɀ|$pt;u3HcA>-Hf0A>-u-HHA~$LIB<uIHKH\0HIcFH؅~|HkLIB<uIHH\HD$(HH ANyB|$pu;}߅tHƀ<.uHcLFHHd\LcǺ0HH|$8t HD$ H\$P3Hl$XHt$`H|$hH@A^LI[IkIsAVHPH 3ICIICMCH$H$IC(Dt$DLL$@D$3Ƀ|$@-HAH+HH1HDHWtD$DD;|E;$}H\$Hl$Ht$WATAUAVAWH`MIHLHu^ntMtMtL$Mtы$At CvE2AH$@u*Qt!ILH?LƀDt$ sHA)tXt tL2=AHUEDmE4fHt)I;AHMHHAHHMHd$8HEHd$0LEMAD$(3HD$ H1bDHMLMHd$ HUDSb3҅tkK+MωKD9urbA u4HMЍB HT$ DBHUfELMb3҅t,}r.CCI;K D1>KL0=C\`HHMH3H$HĀA_A^A]A\_^]HHXHhHpHx AVH 3AHHAHHH;sEDp 7f;u)Cf uAfA;uCCHH;s _Hl$8HH\$0Ht$@H|$HH A^H\$Ht$WH Hcًu2ZHH5/H?HHD8tβHH8u H|9tH HT$8HL (`H\$0Ht$@H _H\$Hl$VWAVPtIH+HZ H3H$@HLcIAHH x.A?I#IcHcINt(L;soH|$@H;s$H< u C HLjHH$?H;rHd$ HD$@+LL$0DHT$@I_tD$0C;rH;r4^HH$@H3L$PI[ Ik0IA^_^H\$Hl$VWAVPlHH+HR H3H$@HLcIAHH p-A?I'IgHgINt(L;H\$@H;s1Hf uG f HfHH$>H;rHd$ HD$@H+LL$0HHT$@ID^tD$0G;rH;r]HH$@H3L$PI[ Ik0IA^_^H\$Hl$VWATAVAWpLGH+H2 H3H$`LcHIEHH P,A?MIMIHNd(3#HCM;HD$PI;s-Hf u fHfHH$H;rHd$8HL$PHd$0LD$PH+D$(U H$HHL$ Dȹ34]tI3t3Hd$ H$LL$@DHID+I]tt$@;r͋A+ljCI;3[HH$`H3BL$pI[0Ik@IA_A^A\_^H\$Ht$L$WATAUAVAWH ELHcكu[ [ xt;.slHLIL-*?HKDL08tEq7KDD08u[ j[ EIԋ@8F[ ^[ aH\$XHt$`H A_A^A]A\_H\$ UVWATAUAVAWHH`3ELcHEu3HuZ8Z`wMH)A?MIILmJ B\19C<w AШtBD18 t3ADBAH}VH)JBD086HH98uHS)JB8|09H=)J HUJL1([t{ˀ+!}N$>3L]I; E/AfA;u3]fA uA AfA;uÉ]IM;s XELmEHMLAxH~(J BD18tM˄t2tuyEHMLAEHMLAEHMLAkJL1(LM!}3H!D$ EHHEYu HXEЋ}EEHEH uhEt-uX XM=XH'JBD08@t >{X\X E+H$H`A_A^A]A\_^]HHXHpHx HPUHH HkHUDBAuX HEHHEH AAt W"HEHAt+HE`HEHHEAtHHHHE`HEHHE`HE`HEPu8H]A H;tH]H;u u HMHU@]!@H\$0Ht$@H|$HH ]HHXHpHx HPUHH H3HUDBAuV HEHHEH AAt V"HEHAt+HE`HEHHEAtHHHHE`HEHHE`HE`HEPu8H]AӶH;tH]H;u u HMHU'H\$0Ht$@H|$HH ]HHXHp HPHWH HHL$8LcȋQHL$83ۋHA9H+yHHD$8H ɉH~)HT$8DAHRLHD$8;HHD$0lAAvIHH$?IHHH H ]A8 t3ADBmHuHL$8IAHT$0AH\$@Ht$HH _HHXHp HPfHWH HHL$8LcȋQHL$83ۋHA9H+yHHD$8H H~+HT$8DAHREHD$8;HHD$0flAAvIH?#?IHHH H TA8 t3ADBdHuHL$8IAHT$0AH\$@Ht$HH _H\$Ht$WH HHDCAuS KC t |S"׋CtcCtHCHcKccCu,γH;t迳H;u uHH@$_@H\$0Ht$8H _H\$Ht$WH HHDCAuR KC t R"ՋCtcCtHCHcKccCu,H;tղH;u uHH>]H\$0Ht$8H _H(迤HT$0HHL$0HJHD$0HH(HH\$WH f;u3Jf;sHH+3fL$@LL$0f|$0HT$@ODPtD$0#H\$8H _ËRuHHcH#E3Ht$H|$Lt$ UHHHH3HEDHcIHMҽG=wHEHyHU@.t@uDJ@}E @}DE3T$0ELEfEHEЋH HEL$(HMHD$ vu8Et HEȃ3EA#ƀ}t HMȃHMH32L$IsI{ Ms(I]HE3HALL+IIH;MGMtIHIM;uE3HALL+IIH;MGMtIHIM;uHH)$pH$3$$H$H$H$H$H(HuRO U ~$3H(H(Hu"OT R$3H(H(HuNT $3H(H(MLHtFMtFHtHt9Aw3H#IcLHHA<uHHMu&3H(MtqN*TH(I;v "H(L#IMIH(sKHdJDAAQ+AADAAAADɋD+ʙAH\$Ht$WH HI3HHtHHdHEHH\$0Ht$8H _H\$Ht$WH H3HHtHHHEHH\$0Ht$8H _H\$WH HHHu2MRnA$#HtLcA@W}LH&AL;y-2AAi€yFD3D;|&AD+D;|D+AӸD;|AD+AˉSLE.EAAi€SDH"LEIJEHI9|E+˸E.DKIcA+S /$Ic ʃk+ȸųAKA iSDAAkHHt$LD$8L )HHL$@4uH33H=HH\$0H _H\$UVWAUAVHH0H-E3HM8Du8HDu@~HM@ H Ht&LHL+F A+uHEuWj=HHHD84 uH=3HeD=H YHHD84;uHWL#>:HDhE͍P@LA/D83t HHu;-@@tHHBiU8<+t,0< wH;:uLHHBU8k<щU8<9 HÊ<0};:u"HHBU8ЉU8<9 HÊ<0}@tډU8D83AE@tHNMLú@i t ,HFD0]8x]@^H\$`H0A^A]_^]E3Lt$ E333EE3Lt$ E333EE3Lt$ E333EE3Lt$ E333EE3Lt$ E333wE@USVWHHH3HM(u(H؉u0u88HM0iHM8CH _>;H kH5Ln>k Nt9u@u H@p?H@0HE@AHD$8LHC3Ht$0D$(?HD$ >t9u@u HC@p?HC@0](z]0`]8^HH_^[]E3Ht$ E333CE3Ht$ E333CE3Ht$ E333CH\$Ht$WH@H3H3H$0L 3A5HT$0HL$ 蕛uH|$0N"tHDHL$ 9HHu 3C9LD$ L AHHL$(LtH39HD$0HH;HDHt@87t H TH8H$0H3L$@I[IsI_H(u)HN{u s{H(@SH Hٹ{HعT{H [H(zx-{H(HT$LBIL9sztHcB HrLHT$BH Htf9t HHfHD$@HD$`HD$HH\$Ht$ HT$UWAVHH@HH3HEfMHnt=HM(wnt/H](HfnHcL5 HHPn?HIH0@933ɉ]]Mu)DDCHUHMt DEEAEDE@uHE(IcLHLL9s9XuD;@ LHE(DEAHHcхxHHDHHE(yDED@HE(`HE(HEHMH3;H\$pHt$xH@A^_]HHXHhHpHx AVH Hf;BROuHuHHG u_Hlt8Hlt+HlHcL5HHl?HIH@8t H`HGHHH9suJHcG Hr@HG HtHHf9(tHHHHf(GgOH\$0Hl$8Ht$@H|$HH A^H\$HT$WH H3Hu8w>"HHpHH\$0H _H\$WH BHڋ u}HkLcHLJAIvMIA?HIMLAx9u$AAvII?HHIB=t7=ltCKuuH{uH@HH;Cu {tHHCH Ht @88t HH@8CcK@H\$0H _H\$HT$WH Hڋ3HuG7=HHӋHvH\$0H _H(##t$=t=t+ H(H(%H(HHHHXHhHpHx ATAVAWHPE3ILHAHtMu3fD!Hu]6Cfwf Afwf Hft9f;t2HT$(THT$(Hv@Hftf;t+@8l$8t HL$ H\$PHl$XHt$`H@_H\$Hl$Ht$WAVAWH03HHHu(-3Ht>E|$(DH>AH|$ AAL3g%Lcu'S'IH2$HHt=Dt$(ALHD$ 3A"%u&'HHHH#H\$PHl$XHt$`H0A_A^_H\$Hl$Ht$WAVAWH@3HHHu"',3HtFDH|$8DH|$0Alj|$(AH>AH|$ L3]'Lcu&Q&I3#HHtGH|$8AH|$0LDt$(3AHD$ 'u%&HHHH"H\$`Hl$hHt$pH@A_A^_Hx"HH@SH HH _"H#H [3H9HH!H3H9@SH HH "H#H [H\$Hl$Ht$WH @#3HHtLHH;t=Hx0HOE3IJHOH7G G g @wH@HGH;uH3!H\$0HHt$@Hl$8H _HtJH\$Ht$WH HHHH;tHa%H@H;uHLcewA;0tqt~!3HM}}}1RHMP,HMoHc}+AQDCAADAAAADɋD+ʙ HcHAHcHimHcHHHcEH RH IHkH\$`Hl$hHt$pH|$xHPA^HHXHhHpHx AVHPALHC@|3tHt H@t @uJ؃@tdH|$(LL$0L6|$ 3Lt$03H\$8t$@|$DHHtE3Hu|$DHt H'Au3@HDMH>H\$`Hl$hHt$pH|$xHPA^E MHH c=E MHH =E MHH ;=E MHH =E MHH =E MHH =@SH DIHLHQ3uN߃@t^H|$(LL$0L|$ 3Lt$03H\$8t$@|$DHHtME3HH˅t /|$D?u3>HDMH;H\$`H|$xHl$hHt$pHPA^HHXHhHpHx AVHPALH?@d3tHt H@t p=u2߃@t^H|$(LL$0L|$ 3Lt$03H\$8t$@|$DHHtME3HvH˅t/|$Dt>u3=HDMH;H\$`H|$xHl$hHt$pHPA^H;s3H;H;s3H;H\$HT$UVWATAUAVAWHH`3HHu_WH:H99EH}tWH HUPfEP*?@}R^H HuLME33 LEHDu HH9;LeHuHuLLeHIH}PH+LLIIHHHI;HGIHt%LIHA8<uIHLIL;uLMPAIIΟHHtwJLHUHHUXI;tVHH+HMMMIC8<(uH+IHUPMHEHEXHMHUJ9IIHEXM;uHEHDH3 ILH+HHI;HGHtI HMH;uH AH$H`A_A^A]A\_^]E3H|$ E333LH\$UVWATAUAVAWHHHӼH3HE3HUHHu_WH:H99EH}tXH HUE*?f}H HuLME33 LEHeDu HH9;LeHuHuLLeHIH}H+LLIIHHHI;HGIHt&LIHfA9L҃ uA7AIEA>A3AHAAH̋A3E3HAE3H3H\$WH@HHL$ bHD$0Ht xuAE3H=3ɀ|$8t HD$ H\$PH@_̋A3E3HAE3H̋A3E3HAE3H̋A3E3HAE3H̋A3AW{HAAWH_A3EAIHAHEA1̋A3E3HAE3HHH@SH HH Ht H#H [3H9@SH HH Ht H#H [H(H(3HHf9AuH AHf9uHAH33H9HHXHhHpHx AVH@=E3HHHfD90tHHfD94FuH4FHfD96uLt$8H+Lt$0HHLDDt$(3Lt$ 3HctLHHHt/Lt$8DLt$0LÉl$(33HD$ tHIIHfIHt HoH\$PHHt$`Hl$XH|$hH@A^H\$Hl$Ht$WH >3HHt[HHf94HuHHHf90uH+HHH,HHHtLHHlH3HH\$0HHt$@Hl$8H _HHHHHHH@SH HH cH#H [@SH HH GH#H [HH!HH!@SH HH H#H [@SH HH H#H [H({DHT$0HHL$0HFHD$0@ H(H(KDHT$0HHL$0HEHD$0@H(H(DHT$0HHL$0HEHD$0H(H(H(CHT$0HHL$0HrEHD$0@H(HH@LI[IkIs WATAUAVAWHH~H3H$L83IKHI[DDDMLa H\$XsA9$u3Ld$ AIKߡHb3HD$X~E3LcH֋13LOH֋3H;Hֹ3L$H9\$XMM MHI͋ÈH=|A $H$$$IH8MM\$@D$PA$D$8D$0HL$(3ɉD$ D@/hqA$HH8MM\$@AD$8D$0HL$(3ɉD$ g,9t$P~58$t,H$8t Q HcB( ;~H8YuA$I\$0AD$(MHL$`HL$ 3Dd$PIfA^]AHD$hD;~?8$t6H$8t*QHcAfEG;~H8YuIIAAOA I0AG AO0A@IPAG@AOPA`AG`LApHAG HApAAI AGA0AO I@AG0APAO@I`AGPAO`IGpAxAGxA|fAG|AxAAAA ANA0AF A@AN0APAF@A`ANPApAF`ANpAFxA|fAF|A~AF~xE M0E @M0PE@`MPpE`MpEx|fE|~E~HHtN;uCHHnHAI+YHI+JH>HD$X0HHD$`HHD$hHIHHHDg$HL$XIIHIMHHtHxUHHHWHHHMYH3qH$H31L$I[8Ik@IsHIA_A^A]A\_HDHH@SH HH +H#H [HH!@SH HH H#H [HSH HHIH; tHK H; tHK(H; tHK0H; tHK8H; tHK@H; ztHKHH; ptmHKhH; ~t[HKpH; ttIHKxH; jt7HH; ]t"HH; Pt HH; CtH [H\$Ht$H|$UATAUAVAWHH@3HMHDH]H9@uH9HuDL5YtAAe3LMuAI͋?3L]Mu IPH9@RHI3L,Mu IIH@IFLHD$ AHMA5IN AHL$ LHMAՋIN(AHL$ LHMA HMIF0ALHD$ AՙAMn8LLl$ HM AQ贙APHM LIF@HD$ AQ蓙AQHM LIFHHD$ AQr HMIFPALHD$ 3S HMIFQALHD$ 34 HMIFRATLHD$ 3 IFSAULHD$ 3HM HMIFTAVLHD$ 3ט HMIFUAWLHD$ 3踘 HMIFVARLHD$ 3虘 HMIFWASLHD$ 3zAHM LIFhHD$ AQYAHM LIFpHD$ AQ8AHM LIFxHD$ AQAHM LIHD$ AQAPHM LIHD$ AQϗ IAQHD$ LHMAQ諗 t*IcIWIOIGgIU38 A< w0 AI8u;uLIHALuAHAHAN@ AF H0AN0@@AF@HPANP@`AF`@pAD A HDIDAHHIHHHINHHHINHHHXINXHHH`IN`E,$MtE/HHtHHt$uHHL3LLL\$@I[0Is8I{@IA_A^A]A\]E3HD8 t A< w0 HD8 uÀ;uLIHALuHtfSH HH H; t^HKH; tLHKH; t:HKXH; ;t(HK`H; 1tH [HHXHhHpWATAUAVAWH@3HHHHXH9HuH9@uDL5DLHuSHzAHAN@ AF H0AN0@@AF@HPANP@`AF`@pAD A HDIDs3L)Mu ImA$H9HH>3LMAHL$0HHALLt$ INAHL$ LHL$0ՋMnALLl$ HL$0 ǓAHL$0 LIFXHD$ AQ襓AHL$0 LIF`HD$ AQ胓 tII,IIU3 A< w0 H8uS;uLIHALuHLIHIFHIFH͘IFXHʘIF`A,$MtA/HHtHHt$uHsHgL3LLL\$@I[0Ik8Is@IA_A^A]A\_E3HD8 t A< w0 HD8 uÀ;uLIHALuHv̺j̺ ^̺R̺F̺ :HH@SH HH H#H [3H9HH!H\$Ht$WH 3HHHH+HHH;HGHtH 2HH[H;uH\$0Ht$8H _HH\$WH HPHu HA;HHtHH6u H3HHH\$0H _ǃ\H3H\$Ht$H|$ UATAUAVAWHH@LPLE3HUILe0IEl$1AHE0AMи%I$E+Mºk+ȋIHMHD$ K EMIG8MHHMHD$ ' HMI`EHMƺHD$  EMIMHHMHD$ ڏ AHm0EA8IEeHGMEM HD$ HM蛏EH|$ MHM 耏 EM HMHD$ HM[ HMH`EMHD$ < HAIpI0Mƍ{&HD$ DύSHM _I8DEl$HD$ MHMADHM {IMHD$ 辎 HMIDMHD$ 蟎 DcI@EMHD$ AHM{ {IHDMHD$ AHMX HMIPDHD$ MA3 DKIXM3HD$ HMEHM EeIAMHD$ IDHD$ MHMAύIDHL$ MHMA 词L\$@ I[8Is@I{HIA_A^A]A\]3H9@SH HH /H#H [HH\$Hl$VH HًHK8uHKpxHjH0U[H@HHHPH`)HH H0HUHPHDH8H,H\$0Hl$8H ^H\$WH HPHu H<RHHu3HH>uHH&3ǃ\H 3H H\$0H _E3LfD9Ht)MfE9tAf9tIAfuHfD9H+HMu3ftf;uHHIu +@UATAUAVAWH`Hl$0H]`HuhH}pHzH3HE DEHMHMFuHEp EMċ҃d$(Hd$ Lcu3IHHOH;HHtuHOH;HH#H=HGw:H;HH#HAH;w HHH+H\$0HtyH;HH#_HHtH3HtHL3H[EDt$(MH\$ .tLDHA3HtHK9u}t HEHM H3IH]`HuhH}pHe0A_A^A]A\]AHHtHHtHHtHHtHA8AHÈH9Pt HHtHxt HPHtH IuH yH\$Hl$Ht$WH HHHtyH fH;tmHHta8u\HHt9uH~HHt9udHHLH@HHtG8uBHHHH+HH+HH H(H{8HvH9GtHHt9u HHtHOHt 9uHH HuHH\$0Hl$8Ht$@H _fHtH<8H;t\øHt0SH H8HH;t\u H H [HtH7H;t\øH(HADIHHtDHHtDHHtDHHtDHA8AH!H9Pt HHtD Hxt HPHtD H IuH 5H(H\$WH 'H xt HHu6HHө&HعHuSHH\$0H _H\$WH HHtIHtDHH;uH9HH-Ht"H{uHH;tHH3H\$0H _H\$WHH̀H3H$IHHL$0U~2IHD$03IfB9H\$Ht$WH0HzH3H$ H AxLD$0HKHҁ3usFIH HT$0u-IIfB94OuIHXLǺUu4KCЃH$ H3hL$0I[Is I_E3Ht$ E333SH\$Ht$WH 3HHHtVf91tQHlSStAHdSH@u$HX DNLD$0t0D$0+HcLIK&蘡u IL$II y}u;~Hl$HHt$PH\$@H|$XH A_A^A\HHXHhHpHx ATAVAWH0IHLE3HIDcLXL3H{fE'HfD9 tLAT$H rEHHfD9 tMHfD9 t D9cuALH A@tHHfD9 t D9cIH؅|HtHH IfD&IfG9$OuIMǺUH$DH@LźHt{HA@LǺHtZ_H観HuP.H薳HtA@LHAQ|tA HEA3H\$PHl$XHt$`H|$hH0A_A^A\E3Ld$ E333H\$Hl$Ht$ WH HuH3H$HHHHLD$ Axȋҁ3ۅuCCHHT$ 蟞u$H Nf;1tHHcH rwwЃH$H3L$ I[Ik Is(I_H\$WH HHL3HHf9HHH`uu!ODNLD$0 1t-D$09HO/OLD$0A u3D$0uH\$8Ht$@H _E3L HAAfA;tDIIcH r3H\$Ht$WH 8LD$0A  HwE3҅u3S;\$0tHtDLEAIIBfv fafw AHHHfE9AuD;tH\$8Ht$@H _HHXHhHpHx AVH 3MHx0I+HcHHHTזt+y_w;~2H\$0Hl$8Ht$@H|$HH A^HHHHI@USVWATAVAWHH@HlH3HEILLH3HEEHME3HHILHHtfD9 t<H :LDeHHtyfD9 tsHHtfD9 t HM HMD9e=:LH 6HHtfD9 t HMwHMlHHtQfD9 tKHHHHfD9$HuHAH 7EuDeEEED9eIIHUHH#Q؅MMtAMHE3AqUDHtdMH E3DM@DLǺIt9MLDκ-tHDNDF3HMH3{H@A_A^A\_^[]H(HT$0HHL$0H HD$0HH(H\$Hl$Ht$WH IHHHt3HBHI;sK 3AHt pH3HHHHHtH;sH+H 8L3裓HH\$0Hl$8Ht$@H _H9H(&HH$H(H%H H\$Hl$Ht$WH HHH;u\HH+HtHՄt HH;uH;tH;t-HH{tH3Ht H3HHCH;u2H\$0Hl$8Ht$@H _H\$Ht$WH HH;t&HZH;Ht HX3HHCH;uH\$0Ht$8H _Hh@ƒ?+3HH3HihHыH3ƒ?HLQhHAй@?+HI3H1h@ƒ?+3HH3HE3HALL+IIH;MGMtIHHIM;uHH uH\$WH H.HHtHYHӅt3H\$0H _@SH 3Hg˃?H3H3HH [H\$WH H3lHDgƒ?HH3ՐH˹@+HH3H=3HH\$0H _Hf@ƒ?+3HH3H\$LL$ WH I Hf˃?H3{Hˋ%HH\$0H _HH(HLHH LHP HHH(HqfHыH3ƒ?HLYfHAй@?+HI3̋HËHË I̋ HfH3Џ?HH\$WH ٹHeƒ?ȅHuLH3~LxH3qHHr@+3HH3IHu3Ht HӸH\$0H _̃t/t ttt3HHHHՎE3HALL+IIH;MGMtIHHIM;uH HH 9Jt HH;u3HH(w r HH(HLH(MKMCD$8ISD$@IKH(H H H H H(O HH(H(; HH(HSVWATAUAWHHE3D!h@@$t"t ttqAviDk LHu"HH HH 9yt HH;u33HuǶ耼HY@2@$?t3t t tt3"HHHHڌH$@t 2@tHcʃ?H3HLL;I$Mu@t AO=VA w@As:IEH$HD$0IeuV@$D$ @u2Hh HIEH a HHHD$(H;t1H`HH6bƒ?@+3HH3HA @t |$t3auHIHҋSAIHuЋA׃ wAsH$IEu$HHHA_A]A\_^[H\$H|$Lt$AWH0LHBHD`2E3AO[tu:=ъu1H t #HHt3L`AЃ?ML38IL|$ It@+IM3L0!t I  HHtL=L98u&H L HHtL8IHUH HLMJH;t9xt HH;u3HZHPLItN I;t9zuL2HHJI;uIw r HH\$@H|$HLt$PH0A_@SH I3LL8L$Pt-LRM3A vW0AHI…tH;rH;rAx"0 AIAA AIAIM;r3H [H\$WH 3ILLҋ@8|$PtO-f LROM3A vfWf0fAHItH;rH;rfA;ر"萷'fA:IAA fAIfAIM;r3H\$0H _@SH HI3LL8L$Pt-LRHME3I vW0AHIHtH;rH;rA2" AIAA AIAIM;r3H [H\$WH 3HILLҋ@8|$PtO-Hf LROME3I vfWf0fAHIHtH;rH;rfA;莰"F'fA:IAA fAIfAIM;r3H\$0H _@SH0EDHu6H0[MtDL$`AHHHL;w "AB";wDL$`AEH0[@SH03EDHu輯tH0[MtDL$`fAHHHL;w 胯"AB";wDL$`AEH0[@SH0ELHuBH0[MtDL$`AHHHL;w "AB";wDL$`IEH0[L@SH03ELHuȮ耴H0[MtDL$`fAHHHL;w 菮"AB";wDL$`IEH0[j@SH03HA uHyEȈD$ IHH0[H83A uHyD$ H8@SH03HA uHyEȈD$ IHH0[H83A uHyD$ H8@SH03HA uyEȈD$ IHH0[H83A uyD$ H8@SH03HA uyEȈD$ IHH0[H83A uyD$ EH8@SH03HA uyEȈD$ IHH0[H83A uyD$ }H8@SH03HA uyEȈD$ I]HH0[H83A uyD$ H8@SH0ED$ IHHH0[H8D$ H8@SH0ED$ IH&HH0[H8D$ *H8@SH0ED$ IHHH0[H8D$ H8@SH0ED$ IHrHH0[H8D$ H8HHXHpHxLp AWH0IHL H3ۋMuT uIHtHHtH+LHtNHH88uHH'IHu MHHuHtH> H\$ E3E333ðH\$@Ht$HH|$PLt$XH0A_HHXHpHxLp AWH0IHL D3ۋMuPvIHtHHtHLHtOHHf9xuHǺH"IHu MHHuHtH> H\$ E3E333辯H\$@Ht$HH|$PLt$XH0A_H\$Ht$H|$AVH0HLHu)gH\$@Ht$HH|$PH0A^H!HtH"MtI-HHu3HHÀ<uHH$IHu LHHu HtHHd$ E3E333ˮHHXHhHpHx AVH03HLHu.艨AH\$@Hl$HHt$PH|$XH0A^H)HtH*MtIHHu3HHf9,XuHúHCIHu LHHu HtHE3Hl$ E333@SH H3Hu躧s3<3H=tӹ hHHع HH [@SH H3HuN3<3H=tӹ HHع :HH [H\$Ht$WH H@HHtWHtRHHǀ<>uH8t?H HH<uH;v<9=uLHt HH;HHH3H\$0Ht$8H _H\$Hl$Ht$WH Hl@3HHtXHtSHHf9,~uH9(tAH HHf9,AuH;vfHFE3I֋YHP3H\$@Hl$HHt$PH A_A^_賛8u ɛ 辛Hˋ8yE3HӋHLzHuz OHHT$L$USHHHLcAu xtD;$nskIL j?IHHID8tHHy՚ AHEDE0HELM0HE DELEHEHUHM(蒚 誚 bHH[]H\$Ht$L$WATAUAVAWH EDHcكuF ^ xt;ImslHLIL-6i?HKDL08tEuKDD08u ڙ EAԋ0v趙 Ι 臟H\$XHt$`H A_A^A]A\_H\$Ht$L$WATAUAVAWH ELHcكuZ r xw;]lsoHLIL-Jh?HKDL08tHtHKDD08u EIԋHuHǘ ߘ 蘞HH\$XHt$`H A_A^A]A\_H\$Ht$WH HcAˋVwHu菘 7DNjHЃtHLfg?HHHId8H\$0Ht$8H _H\$Ht$WH HcAHvHu HSDLD$HHH"u8qHD$HHtHLf?HHHI Ȁd8H\$0Ht$8H _LI[IsWH0d$X3AHcD$\MCIS HDHuSd$XLD$X3HDωD$\HetH|$X~!HT$ E3E3HB 묋D$XH\$@Ht$HH0_H(ELD$Hu$]HHD$HH(#cH(d$0HT$0 D$0H(H(Huj#luى l3H(H(u * Bx.; is&HcH eH?HHHD8@ 褛3H(H(bMLE3ɅuyMtlHu貕kH(HtL+A Afwf DA@fwfA HIt ftfA;tADD+AH(H(HHXHhHpHx AVH@E3IHHAMHu躚HtIHL$ HD$(L98u:H+>Cfwf Afwf HHtDft?f;t8HT$(=BHT$(-BHvHHt ftf;t+D8t$8t HL$ H\$PHl$XHt$`H|$hH@A^DE3ACAʙL+HcHB+ tyDHD@E;~̓HHXHhHpHx AV3L54DHACHU+LcIHN 1I+BJfwf A Afwf IHt ftf;t+tyEXEPE;~ IHADH\$Hl$Ht$ H|$(A^E3LLMtDL+C Afwf ABfwf IIt ftf;tDD+AH\$Hl$Ht$WH0IcDHu u Huy3yE3H-AC +AHcH+)tyDPDHE;~ՃxHUHHlHH~;}HLHuGH\$@Hl$HHt$PH0_Hd$ E3E333H(Ht"xHH=sHH 63H(H\$LL$ WH II؋ TmHHcHHHLt`?HID8t$pH|3ۅu)H9 mH\$0H _HH(HLHH LHP HHSH(̋HHH̋HË m@SH HL_HcHHH?HID8t&\oHt3jHяz H [̋ )l̉L$H8Hcуu K lxX;9csPHL-_?HHHID8t-HD$@T$PT$XLL$PHT$XHD$ LD$ HL$HA 蛕H8H(\LLE3ɅutHu諏dH(HtIwL+CBfwf A Afwf IIt ftf;t+H(H(HHXHhHpHx AVHP3IHLMu3Hu跔HtL;vՎ莔IHL$0HD$8H0HuCL+A >Afwf Bfwf HHt ftf;t+-t$(DMH|$ Nu BX@8l$Ht HD$0H\$`Hl$hHt$pH|$xHPA^̋ [jVE3HHXHhHpWH`HHIHHIHu3HtHu訍aH;v臍@cHD$HH0HuLL$HLHHV;@HL$HD$8L͉|$0AHt$(|$ Qu "X|$Xt HD$@L\$`I[IkIs I_@SH ;3҅uf_uH [@SH :3҅uf_uH [@SH@HL$ fHD$(HQ%|$8t HL$ H@[̺:̺:f u@ú@j:̺ ^:@SH I:3҅uf_uH [@SH :3҅uf_uH [ú9̺9̺9̺W9̺9̺9̺9̺9@SH@3HL$ 0HD$(HQ%|$8t HL$ H@[̺V9̺J93f;f u@ú@"9̺ 9̺ 9̺8̺8̺W8̺8̺8̺8̺83H9@UATAUAVAWH`Hl$PH]@HuHH}PH6H3HEHc]`MHUEH~HI_O;ÍX|DuxEuHDp DMA҃d$(Hd$ gLc{IIHHJH;HHtrHJH;HH#H=HBw7H;HH#HAH;wIHFsH+Ht$PHH;HH#˅HHtH3HDd$(DMHt$ AHd$@EHd$8LHd$0AL}d$(IHd$ HcbAEtREpN;DHd$@EHd$8LHd$0AՉD$(IHEhHD$ 觮 HHHJH;HHtvHJH;HH#I;HBw>H;HH#HAH;w HHqH+H\$PHH;HH#uHHtH3HtsHd$@EHd$8LHd$0AՉ|$(IH\$ ڭt2Hd$83H!T$0DϋEpLA΅uf!T$(H!T$  u`HK9u觃3HtHN9u菃HMH3EEH]@HuHH}PHeA_A^A]A\]ÉD$(HEhHD$ HK9uGH\$Ht$WHpHIHAHL$P$HL$XD$@Lˋ$DljD$8H֋$D$0H$HD$($D$ 3|$ht HL$PL\$pI[IsI_@SH 3Hu^HtEAOHH;w -"MtIQHA0DEtHA0DHAEx:5|0HȀ89t91uAAIIB8\uIHQp3H [@USVWATAUAVAWH$HHHM2H3HH AHD$XLD$PT$8D$HHT$HLLL$@I4AMHHHH#HH#HE#AAKK,ȉ|$dEVrEH D#|$hDd$ A։T$`3Džp;UE3BDdB9?ED;ud$(D[EA AAAIA+HA+DAt3D+AAE;AA;AA;u EtA2AEArA;DBE;tWEE+C<A;rHD;sFTdE3A@;sTd3A#ԋED#AAA CTdA;tT$`3Et ddA;uEAFDEE3Dž4ADd$ D0DDt$`hd$(D[EˍBAAA IEE+AHA+ދDdDAt3D+B E;AA;AA;u EtA2AEArA;DBE;t\EE+C<A;rMD;sFTdE3A@;sTd3A#D#AAAA AE‰TdCA;tT$`3Et ddA;uEAFDEE3403Džp; E3BDdB9ED;ud$(t3A D+D;AA;s DDdE3A;sTd3A3ЋA͉TdA;tT$`AHE3AD+Dt$`HLWD@θEIDD0M7H4L;Hk d$(BDdt3A D+E;AA;A;u EtA2Aubu^ArA;DBE;t?A;s DDdE3A;sTd3C3ЋA͉TdA;tT$`EAFDEE3Dt$`+H3HLVD~@ϸL3V"詅D0EAHD$4DD$$&ED;DGDl$0AE""#"ً3HLÍHVH H "HHLHHjDAuE3D0EE3LE3B4AIHLB4I AE;uEt40ss0D4D0AE3D02D0A4MIED0Mt@H4L;wHiL3T-~"D0EE3LE3B4AIHLB4I AE;uE;H4ELH4LDEEEEHHDE3E3HT$(DECtA…u!E;B!EzD3EEAAstfE;uAOCȉA9EAHHBHA9HBDH A;tHT$(딅tNAslE;uAAAAAӋHЉDH څuAsHT$(AE;EID0Mt@H4L;wHgL3R|"ׁD0Dd$$Dl$0E+HDd$$5D$4|$ +A"t{EE3DE3B4AIHLB4I AE;uEtA0ss)0D4D0AE3D0E3D0D0{AL$0HԧD$(DD$$&ED;DGDl$4AE""#"ً3HLÍHTQH mH "HHLHHdeDAu E3Dt$`EE3LE3BLdAIHLBLdI AE;uEt)|$`ssD$`DDdDt$`AE3Dt$`2sDt$`gA\$dMIED\$`Mt<HL$dL;wHdL3=Py"QDt$`EE3LE3BLdAIHLBLdI AE;uE;HL$dELHT$dLDEEEEHHDE3E3HT$HDECtA…u!E;B!ErD3EEAAstfE;uAOCȉA9EAHHBHA9HBDH A;tHT$H딅tNAsZE;uAAAAAӋHЉDH څuAs HT$HAE;EIDt$`Mt<HL$dL;wHbL3>Nw"R}Dt$`Dd$$Dl$4E+H+Dd$$bL$0D$(+A"tbEt~E3DE3BLdAIHLBLdI AE;uEtH|$`s|$ s.D$`DDdDt$`ADt$`.Ht$@d$`Hދ|$ Ht$@d$`H}Dt$`|$ Ht$@HEtgE3E3BDdH ALHFDdAI E;uEt;|$`ssD$`DDdD$`%Ld$`HL$dE3ɺH0HL$`{ 1H^EE3E3B4H ALHF4AI E;uEtZ0ss0D40;L0H4E3ɺ'u0H^HD$PL$88x wHD$XHȋH;HBHH;A DT$`EE3E3BDdHiʚ;AHLBLdI AE;uEt;|$`ssD$`DDdD$`%Ld$`HL$dE3ɺ\H0HL$`WzDLD+AAD*AH0DE;rA DD;uHH+I;IOHH;HH3K2HĸA_A^A]A\_^[]@SH H9<uC H9CHH [H(ytq9H(DLLD;t23Et#HBL B9LuA;uDE3LLD;t2AEtHBLB9L uA;u39H\$Ht$H|$AVH LH3HLI@H|$@BD3FH\$0Ht$8AIH A^@USVWATAUAVAWH$(HHuH3HHL$8MHL$`LL$PMLD$p7D$`E3<uDl$hHL$`78D$hH\$8HHMwH# HIHɃ AHu,Iu'H@L+IEoCo HL$88tAG_7HAH#H\$8D$8D$XHT$XL‰t$LI4MHMI#IL#LE#A*8a7,DuAEI D#DuADd$0A҉U3Dž($p ;aEAȋD9$JED;uD[Dl$8EˋAAA+IڋHA+ADAtA+AAD;AǃsAsuAEuAAEArA;DBE;t\EE+C<A;rGD;sFTE3A@;sT3A#ԋED#AAA CTA;tUAE3AEtADlA;uEAFDEDu E3EDmDžTDd$0ADPD D(td$8D[EˍBAADIE+AHA+ڋDDAt3+B D;AăsAsu EtA2AEArA;DBE;t\EE+C<A;rMD;sFTE3A@;sT3D#AAA#AD DTAECA;tUE3AEtDlA;uEAFDEDu E3EDmT,3Dž($p ; EAȋD9$ED;uADl$8tA+;AA;s DDE3A;sT3A3ЋA͉TA;tUAH$E3AD+DuHL DD@EǸI$E3DPD M=HTL;H$XBDl$8DtA+A;AssuAEuAAuhudArA;DBE;t>A;s DDE3A;sT3C3ЋA͉TA;tUE3AFEDEDu E3EDmAH$+3ҋHLBD~@EǸ$IL3Bl"qDPEAHD$HDD$@&ED;DGDl$DAE""#"ً3HLÍH$ 0BH IH "HH$LHH@VD A$uE3DP EE3LE3BTAIHLBTI AE;uEt4PssPDTDPAE3DP2DPATMIEDPMt@HTL;wH$JUL3@Yj"pDP EE3LE3BTAIHLBTI AE;uE;HTEL$HTLDEEEEH$HDE3E3HT$8DECtA…u!E;B!EzD3EEAAstgE;uAAJBȉBEAHHBHBHBDH A;tHT$8듅tNAs~E;uAAAAAӋHЉDH څuAs0HT$8AE;EIDPMt@HTL;wH:SL3>Ih"nDPDd$@Dl$DE+HٔDd$@4D$HE3|$0+A"EEEDAAATIHLTI E;uEtNPss6PDTDPADPE3EDPEDPuDPiAL$DHD$8DD$@&ED;DGDl$HAE""#"ً3HLÍH$ j=H H "HH$LHHzQ $u E3DuEE3LE3BLAIHLBLI AE;uEt%}ssEDDDuAE3Du2hDu]A]LID}Mt:HML;wH$PL3_HHL$@VE3HL$@E33fVuVW\;G蜤HHuKW`W3 ۅ$DHL$@HHuH3踅HHH\$0Hl$8Ht$HH _H\$ UVWH0HH3HD$(3AHEyV\3t!ruVV %؅tf@D$":.f\$ f|$&D$ .Ht~Df>HHL$ sE3HL$ E33UuUU\;GMHHuUV3 茄$DHL$ HHuH3iHHHL$(H3H\$hH0_^]H\$Hl$Ht$WH E33E3HaT3uTU3X;غG蓢HHuBUWU DHHHt HHHH賃HH\$0Hl$8Ht$@H _H\$Hl$Ht$WH E33E3HS3u+TdT3X;غGHHuTT DHHHt HHHHHH\$0Hl$8Ht$@H _H\$WH AHEuFTY35LE3ɋR;r T"݅u^SSHH\$0H _H\$WH AHEuSY35LE3ɋR;r S"݅uR+SHH\$0H _ALLIE3H%8RALLIE3H%(R@SH0H H3HD$(vS.S X343ۅuC)f@D$":\fL$ HL$ f\$&SËHL$(H3H0[H8d$(DHd$ H3A^H8H8d$(AHd$ >H8H8d$(DHd$ H3AZH8H8d$(AHd$ :H8fL$UHHPf;HMHEL8MuUBfwif cMf;s)-uUAHEUH,AHE DL$(LEIHD$ $UtU }t HMHP]35HXH1H3HD$@3LH LswD HH |HL IL AuAAɃHT uIEEu3HL$@H3HXI E3H\$WH@HHHuPsV3bHtH;sIHL$ xHL$0yuH%HSHH;w DuHH+ʃH+Hˀ|$8t HL$ HH\$PH@_H('T3ɄH(@UAVAWHpHl$@H]PHuXH}`LehHH3HE LMHAHMƼHEE3E3ID` qHcu3HHHJH;HHtyHJH;HH#H=HBw>H;HH#HAH;w HH99H+H\$@HH;HH#KHHtH3HtODLËIKqt;DEpAAHHd$8Hd$0I#DD$(AHT$ L3dO3HtHK9uJ}t HEHM H3 H]PHuXH}`LehHe0A_A^]@SUVWATAVAWHH+H3H$H$03AMLH>LL$@D$ DIHc؅tCWH+L3HIJH9>HCLcLD$@HZ3)MzE3ɉ|$ DIILcIϺKHHt%LD|$ DIIat HHHHIt;u;E3E3IoLctQIϋQKHHtELIYo랅u)|$0LD$0DI9ot D$0H$H3 HA_A^A\_^][E3H|$ E333RD 3DE+uH+fEtHD DE+tEyH(HuvL/RHH(L3H "H(H%KH(Hu:LQHH(L3H r"H(H%KHHXHpHxLp AWH MAHHٹ 轊KD8DHH3t IK0!HuHtHxHHIKD8 車H\$0Ht$8H|$@Lt$HH A_HHXHpHxLp AWH MAHHٹ 3KD8DHH3t IK0!HudHtHxPHIJD8 H\$0Ht$8H|$@Lt$HH A_HHXHhHpHx AWH0HAAHHH8Au TH HIXt3H膪tHt;t!HH<uH;rHt"dLHHVGum3NiHt?HxHHt6HHuQIG3HFHHtLI Gt6 H\$@Hl$HHt$PH|$XH0A_Hd$ E3E333OHd$ E3E333OH\$Hl$Ht$WATAUAVAWH0IcL% E3HHAAM94uAA@G3I]EIHfD93uAIHt3HXtHt=t#HHfD94CuH;rHtfD6"dLHHv|uo3NHt?HxPHt6HHuIIF3HDHHtLI+|t7 H\$`Hl$hHt$pH0A_A^A]A\_E3Lt$ E3333NE3Lt$ E333NH\$Ht$WH0HHٺ.HHuM2H\$@Ht$HH0_H;rH+H;v3HqHDB$kHtH+A$HHL=uHd$ E3E333MH\$Ht$WH0HHٺ.e6LHuM2H\$@Ht$HH0_H;rH+HH;vIp3HDB$kHtLA$L+HIHI+LΚuHd$ E3E333LH H H%DH\$WH HcH=4H<uD3HBHH\$0H _H\$WH HcH=H<uVD3HsBHH\$0H _H\$Ht$WH0bHHt~HйHwcHޅtt uutsHH+EA$LH_u1HH< uf .0D 2H\$@Ht$HH0_Hd$ E3E333yKHHXHhHpHx AVH0HcHE3L94uAVL;HH#HAH;w HH%H+H\$PHL;HH#8HHtH3HtTD|$(DMH\$ A]9t2Hd$@EHd$8LHd$0UHMD|$(H\$ 'Y3HtHK9u 73HtHO9u7HM(H3WHe8A_A^A]A\_^[]H\$Ht$WH`HIHAHL$@$HL$HD$8Lˋ$DljD$0HH$HD$($D$ |$Xt HL$@H\$pHt$xH`_38tH;t H<u@SH HC3H [@SH d$0Hً d$4KHL$0D$09u D$49Cu3H [@SH d$8Hكd$<HL$8wt"HD$8HL$8L$8Huu3H [E3D$HT$HHH#H@CH;AH;rHH;v~HH?H;s+HtbMtHHD$D$FiH= t&H=@tH;u0HE'HE HEHE HEHE HE HE 0HEHu8H }@t3HE!P HE0HEHHEH`HE!P`HEHPHHMAA A#A HE0HHEHHHEH`HUB`A#B`HEHHPP3LMDBHMAtH3AtH3 AtH3 AtH3 AtH3 t0ttu(H `H3 H+H3H+ H#}@tAPHAPHH\$8Ht$@H|$HH ]HHHD$xD$0HD$(HD$pHD$ HHH(tAw&" !H(\$ T$SHPL IE39tAH ~HH;|3 IcHIDH$HD$(Ht\D$pD$0D$tD$4D$xD$8D$|D$<$D$@$D$D\$ XHL$ uD$@6 $HP[@SH =؃?MH [H\$Ht$ WH HHD$8с## ωL$0=t%@t L$0t$8H\$@Ht$HH _@SH H? ËH [H(?H(D$HL$H0ff#D$ HD$ fD$H0f#ff fL$D$(D$WLf.z u3HD$LI0fDT$H uE3ɹf/AAu$D$ D$ yD$ D$tT$D$f#fD$Et f fD$D$D$HD$H0f#D$?f fD$D$JL$L$HD$H0f#º?f fD$D$D$ff#ȁA ùD$HD$H0ff#f+D$HD$H0D$f#ff fD$D$D$HD$H0f#D$fff fD$D$D$HD$HH u uÁu uAHH0fA#fA;uAfA;uut3%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%D%6%(%%%^%P%B%4%&%% %%%%%%%%%%~%p%b%T%F%8%*%%%`%%dLcAF@UH H} u"HcMHHHH?HH€d8MH|H ]@UH HHEHH ]E@UH HH ]E@UH HH ]E@UH H3H ]E@UH H3H ]E@UH HHEHH ]kE@UH HH ]RE@UH Hꀽt 5EH ]@UH HH ]E@UH0H H0]D@UH0H H0]D@UH H H ]D@UH H H ]D@UH0H H0]D@UH0H H0]D@UH HHM@fH ]@UH HH ]LD@UH HHEHH ]@UH HMPH ]@UH HMPH ]|@UH HHEHH ]b@UH HHEHH ]C@UH H H ]C@UH H H ]C@UH H H ]C@UH0HHM0yu HM0eH0]@UH HH8t 8t3H ]@UH HH8t 8t3H ]@UH HH3Ɂ8H ]ooppooooorj`j`oNo>o2o&ooopokll$l8lNl^lrlllllllllmm&m>mw0kkvvvvvrvXv>v2v&vvvuuuuuuuluXuDu,uukkkkxklk\kvDkk kjjjjjjjvtwttttpppppqq8qRqhq~qqqqqqqr*rBrZrrrrrrrrrrss&s6sDsTsvssssssssstt&t8tHtZtjttt0pmtmhmnnnnnnnnrndnVnDn2n n nmmmmmmmm\pnpLp@@ܕ@@̕@2@@@@}@4@@3@+dWnOA AlGRWpO6a'wj5ObFÅm]rLwx,aOMG  ķ]v+qAO pO]և+DW^ Oor;owLf[MEĀv*cMjVDEs"@0(9A8L7ʸ!A9mG-*+$%|QOz)(BF\G aUFEzfCNItwׄtxM NI{@ >K]TKFad4Cz "zOy|I)sO>BqB 7 EC)t0ō*M^2mFT }jL^6CTv]=D%OcgP0 V A H FFPB,ɨ=$HܨEye64Bl OUᏢWU]O ɊFiyŜ?Oɝa3K@~OqK M;rG¸E\\GNˇbo-XCMtY&h~vIsB U[6J[CS[bHNAF"JL G:7՝5F3+zFO${aύtA^?UX&I}!<OGFV;&OF}P($IZ^9&M[OrWG 35w~s5i+.bi;'~.gC\[bGEրEv+0PoSi)!@'QL.JifrtgHU;aއ-+ o.Eцf@"nO :i+00.PRO—-2NfHyu M7?eEd9Ē^F{w@=TR%9O'HKlqt} {ҜJ3F̉.|-!CQ7o֩Cmy4[ _eOkmM]`g.H iVFO#A,\V׉#G`` E%6QM\vWNVM.^R FHsp^QmOpNr-O&oORO%e{HqC,㟽$\E9 Ot<&KA>=a-kQG^),=Nk.4qa޼^Ol^\`U;MW.I|Kg+*U6F:(Y;J\FЗ4mc/4*&{-@`ެ)F#Ϋ>/ICVJNztI6FOEг@wiKw^ Ҩ\I;%Sjc(=O'>OСFVe\Kz~|Tn9{ŞC $&;ل.CZ0YctXT9bq^F*O !:i+00iI~+.ͩ _@^A% xSiMEQ 3߷;`[}N8úGˢ)w]+.DJQ3(9O>ܥ>G2A`tpZdfapHUeі[/tAxC(DW@Xzvi>VMYFDAtKpȞ&Aõ*.7V`Ɔ'":i+00hXt_vJ)v ؂تI'9Y:Oh7 e.{ JOe/+dWnOF]K $Lb`wG:J'Ws5i+.b!\_[CP2nD\HC*v CBg (#4DLe+.b1 ъ*Bp2r%9Y:Oh7ա΋!  Hl?<W>OrAGQ`{FL>!OL'`g$$/4EjfqJ1B*)l6ٿMp.лչL@mIh.6]PO,1Dl4L~ɋ@J7<}iFs5i+.b1IkLIC'+I~vph}OUEK}4@ VqzeG'{-F4plTI?rF֔hJuAtXJQ x;>VfNr@"=3uw-NFEH/дtF5K@~OqF9tRNNgɆ󝚫N_3haO1FIFS2IEt$c^NIe2$53QB`ϝk(ԺCy&|=HF5ꥂG)]/qNnwmjKDWw? jY>4'r`F$<;{dFP0 F:̿,LB)隇AxWObDcq# ۅ>eL:er=mG)fR IC0hxU*TK Ix5i+.b^5N$̈cpH|t$ HNOiNㄐi3O < zO1I( W0\"F-V ևA)F Wt חb@Z|KJAVgq@L\J7.jxO`OK #@;>VFhP}N<)ѪF $aOBd-@y#uLKdqkPCU .4z]bM I]Ft Ox_xrd_w~LNdL֬F4Ku@ +К#FlHi"k1%B T #8ƪd_NM&uf4Lc'wj5Obx8WFTpj7BWGCQl2FiM^eQI+Idʏ[FFFFF F F!FFF0:s *Dw= F`k;Yi+-z1OY ȿ4<OV% X$5I?#3:O4j;Yi+-zj;Yi+-zi;Yi+-zv nr=F>FDF[F"FFF0F1F2F3F%F)F*F0:s*Dw=IF y.Y+FGFHF:/ۆ/O:/ۆ/O:/ۆ/O:/ۆ/O:/ۆ/O:/ۆ/OFFFFU 8r+C+n4@FacH&8FvCj?e~ҦFFF&FF F FFk!Pi)? F F F F FFFFFPF%FQFFFF@Fʙ^AiXשFh Mm8gh z0Gd<O8m xO4yOԒMm8gh &FEFǝv\Wސy(_FF4F Z'B>âRX0eu{ڮP9Vu{0ne0E Kvne yOܦϫ|x O jIOQnO09$-1.E^*onePone |~|?ne? PE^#1$-?W2$-?W2$-pw~?neg@ne˳j@ne˳j@ne?W2$-~{S^BEy|KDphKΔӳOհrIOC'zO{TxhO{lhO6ǀ_`\`OOrOh7y) Oh7BTyI6 EZ{ْ?i]?9A!8ҏFs%E~2]r?jdN&6u^gO!B> 9}Nr*GݓkFN]ͷghhϓgAc*^Z%Ȕ2AeqKW';?B@ J$SQ`Ɔ(œO>1s-O(hHjxOi QD(ߥl+ rˆLmCBUa{Ӱ~C.`1 y/DĊY F;aAdƼ403bpc(Jg Дէ{E] E)ПS-oEH?syYz(y K@AXGA'qQU AJ s Y!WOZ{*lg(M2(TfC'>|a.  O;O.K[K8H]҇26 -&{-r: %wCjW'tVamy!@iaWBVm`ɠI-`:Bn5OC(K鞟^ﯘ=ѕK0:ښL%2J4{[kYs=BMQ!B\[/B{NsASÖ.̆I#t9JDf?kјH"tŻ-Gs?zZAe!`[ǽ6NXX$  KiiőԞ(LqmjK H(.~,-Y@o3\.Q Cpg{LKI s<_z\ LKo(t;sM|@)^vJYӞ~+IzÊChsxDpWJ?,CP0DOAoZ\q"tDk׾ TLrTIkE a`NNe76_I|kHrYM>s: .jxOˡd:aDX7iii9P5}+EutX(T6QB~ۜC]_#ͼ_Ld=xr|խhG2`?uIp4Bf6חKt3OtaG'"v0 SNwL1"(iv@ YGح+ObC4`[ԄLr?RJ{,AsEOWL"O7v8yOhKKt&1Zs~:6 B}Ftr⋪GMv2̤ pDʹfD.b[GvtH; zr\GڙYkH?FA&OA;,Ui6 IJ"x9J4ܵ;EfDװqmrE.1!YuY&HxHϣ'GVBeUNOخ|)IE@0lyדسDg,ݠeL3"5/QqCAwSk5 X;-3B{_41lxpOh6ǾƱLb VBPoz5zD #D@Fgm[M/BT|\?@zpDF[0 49Z I}AaB}KX䌠%D|DZ#`ڽWvGE>ςZ#@k{X8&oI Qd5CvSdn0@DH&'E4VwҁnB*O&-bfMlV!j hFXapf_:qJ?򥸿2cpF^W5}3ƔHjiOY<0G== 6eFpqFwHҶe_K#q}kdO-pV+UN;;z5Og5е.Í}DwMm3sG%`4n.8E40yvF'6я]A.VGމJ=PpZd1FOЊ ĽFK6eJ7`, :i+00Fh3MnMܙS{5)xKt O3CKsw`$D&l;0MHֿRUBu(dT&arrCuƋ.|uU:WPHw[ێ Z܊M`* !sG3^F0MJSkyZ 8y M3,/KqI\M;TQ'CHCh4-6C$/`zLbeLWwR"F)JȬ պFD-ʀr33yHȅF/_~_INK R(N伽I@܏Uo#RH kM?'kaIõ}EFVxCEg{Sl"vM`3)/#RW$ZI/Փg3wB$hŨ"IΕL?vk΄e}IƼ8-F"DDm'Cb**+C ,R[09|)J=AxB:RC%jAyiȳO^7q2hK_Lrz=*Fŗ5WIZgnMI/~o& IFk"t% 0H Ng4f/`CU7%(Lx#h>5qM?w;E9eZJ 57BxsCU3@@@@@@8@advapi32api-ms-win-core-fibers-l1-1-1api-ms-win-core-synch-l1-2-0kernel32EventRegisterEventSetInformationEventUnregisterEventWriteTransferFlsAllocFlsFreeFlsGetValueFlsSetValueInitializeCriticalSectionExP @` @h @x @ @ @ @ @ @ @ @ @ @@ @ @ @ @ @$ @( @, @0 @8 @D @H @L @P @T @X @\ @` @d @h @l @p @t @x @| @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @8 @X @x @ @ @ @@ @H@h@@@@@@@@@ @0@P@p@@@@@8@`@@@@@@@0@P@h@@__based(__cdecl__pascal__stdcall__thiscall__fastcall__vectorcall__clrcall__eabi__ptr64__restrict__unalignedrestrict( new delete=>><<!==!=[]operator->*++---+&->*/%<<=>>=,()~^|&&||*=+=-=/=%=>>=<<=&=|=^=`vftable'`vbtable'`vcall'`typeof'`local static guard'`string'`vbase destructor'`vector deleting destructor'`default constructor closure'`scalar deleting destructor'`vector constructor iterator'`vector destructor iterator'`vector vbase constructor iterator'`virtual displacement map'`eh vector constructor iterator'`eh vector destructor iterator'`eh vector vbase constructor iterator'`copy constructor closure'`udt returning'`EH`RTTI`local vftable'`local vftable constructor closure' new[] delete[]`omni callsig'`placement delete closure'`placement delete[] closure'`managed vector constructor iterator'`managed vector destructor iterator'`eh vector copy constructor iterator'`eh vector vbase copy constructor iterator'`dynamic initializer for '`dynamic atexit destructor for '`vector copy constructor iterator'`vector vbase copy constructor iterator'`managed vector copy constructor iterator'`local static thread guard'operator "" Type Descriptor' Base Class Descriptor at ( Base Class Array' Class Hierarchy Descriptor' Complete Object Locator'CV: ::template-parameter-generic-type-`'`anonymous namespace'''`non-type-template-parametervoid`template-parameter...NULL%d`template-type-parameter-`generic-class-parameter-`generic-method-parameter-}' }' `vtordispex{`vtordisp{`adjustor{`local static destructor helper'`template static data member constructor helper'`template static data member destructor helper'static virtual private: protected: public: [thunk]:extern "C" ) char short int long unsigned void volatilestd::nullptr_t std::nullptr_t,..., throw(cpuamp, charshortintlongfloatdoublebool__int8__int16__int32__int64__int128char16_tchar32_twchar_t__w64 UNKNOWNsigned const volatile`unknown ecsu'union struct class coclass cointerface enum volatile const & && cli::array<cli::pin_ptr<)[{flat}{for s @,@,@,@ @'@@@@(@\@@ @'@@@@'@@\@ @ (@@@ ?? EEE50P( 8PX700WP `h````xpxxxxEEE00P('8PW700PP (`h`hhhxwpwpp(null)(null)        ! 5A CPR S WY l m pr   )    Tc-^k@tFМ, a\)cd4҇f;lDِe,BbE"&'O@V$gmsmrd'c%{pk>_nj f29.EZ%qVJ.C|!@Ί Ą' |Ô%I@T̿aYܫ\ DgR)`*! VG6K]_܀ @َЀk#cd8L2WBJa"=UD~ $s%rс@b;zO]3AOmm!3VV%(w;I-G 8NhU]i<$qE}A'JnWb쪉"f37>,ެdNj5jVg@;*xh2kůid&_U JW {,Ji)Ǫv6 UړǚK%v t:H孎cY˗i&>r䴆["93uzKG-wn@  _l%Bɝ s|-Ciu+-,W@zbjUUYԾX1EL9MLy;-"m^8{yrvxyN\lo};obwQ4Y+XW߯_w[R/=OB R E]B.4o?nz(wKgg;ɭVl H[=J6RMq! EJjت|Lu<@rd 6x)Q9%0+L ;<(wXC=sF|bt!ۮ.P9B4Ҁy7P,=87MsgmQĢR:#שsDp:RRN/M׫ Ob{!@fu)/wdq=v/}fL3. iLs&`@< q!-7ڊ1BALlȸ|Rabڇ3ah𔽚j-6zƞ) ?IϦw#[/r5D¨N2Lɭ3v2!L.2>p6\BF8҇i>o@@w,=q/ cQrFZ**F΍$'#+GK ŎQ1VÎX/4Bycg6fvPbag ;s?.❲ac*&pa%¹u !,`j;҉s}`+i7$fnIoۍut^6n16B(Ȏy$dAՙ,C瀢.=k=yICyJ"pפldNnEtTWtøBncW[5laQۺNPqc+/ޝ"^̯p?m- }oi^,dH94X<H'W&|.ڋu;-Hm~$P  %-5 > H R ] i u -C Y p        %  d'@Bʚ;minkernel\crts\ucrt\inc\corecrt_internal_strtox.h__crt_strtox::floating_point_value::as_double_is_double__crt_strtox::floating_point_value::as_float!_is_doubleINFinfINITYinityNANnanINFinfINITYinityNANnanINFinfINITYinityNANnanINFinfINITYinityNANnanSNAN)snan)IND)ind)SNAN)snan)IND)ind)SNAN)snan)IND)ind)SNAN)snan)IND)ind)Visual C++ CRT: Not enough memory to complete call to strerror.Visual C++ CRT: Not enough memory to complete call to strerror..exe.cmd.bat.com./\?*   Runtime Error! Program: <program name unknown>... Microsoft Visual C++ Runtime Library(@\)@\/ )@/mscoree.dllCorExitProcess)@v@)@(@v@*@(@\@ *@(@@8*@(@l@P*@(@`@LC_ALLLC_COLLATELC_CTYPELC_MONETARYLC_NUMERICLC_TIME  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~=;;=C_.,_.@`@@d@X@\@@<@`@|@@@'@|'@@4@@@4@L@@D@H@@@@\\\.\.TMPTMPmsvcrt.dllccsUTF-8UTF-16LEUNICODEccsUTF-8UTF-16LEUNICODE@-@-@@-@.@`.@.@/@@P/@/@/@0@`0@0@ 1@p1@@8@1@api-ms-win-appmodel-runtime-l1-1-1api-ms-win-core-datetime-l1-1-1api-ms-win-core-file-l2-1-1api-ms-win-core-localization-l1-2-1api-ms-win-core-localization-obsolete-l1-2-0api-ms-win-core-processthreads-l1-1-2api-ms-win-core-string-l1-1-0api-ms-win-core-sysinfo-l1-2-1api-ms-win-core-winrt-l1-1-0api-ms-win-core-xstate-l2-1-0api-ms-win-rtcore-ntuser-window-l1-1-0api-ms-win-security-systemfunctions-l1-1-0ext-ms-win-kernel32-package-current-l1-1-0ext-ms-win-ntuser-dialogbox-l1-1-0ext-ms-win-ntuser-windowstation-l1-1-0user32AreFileApisANSICompareStringExEnumSystemLocalesEx GetActiveWindowGetCurrentPackageIdGetDateFormatEx GetEnabledXStateFeaturesGetFileInformationByHandleExGetLastActivePopupGetLocaleInfoExGetProcessWindowStation GetSystemTimePreciseAsFileTimeGetTimeFormatExGetUserDefaultLocaleNameGetUserObjectInformationW GetXStateFeaturesMaskIsValidLocaleNameLCMapStringExLCIDToLocaleNameLocaleNameToLCID LocateXStateFeatureMessageBoxAMessageBoxW RoInitialize RoUninitializeSetThreadStackGuarantee SystemFunction036am/pma/p - : +% 8@$8@(8@,8@08@48@88@<8@D8@P8@X8@h8@t8@8@8@8@8@8@8@8@8@8@8@8@8@8@8@8@8@8@8@8@8@8@9@9@9@(9@49@89@@9@P9@h9@x9@9@9@9@9@9@9@9@9@9@9@9@:@ :@8:@@:@H:@P:@X:@`:@h:@p:@x:@:@:@:@:@:@:@:@X:@:@:@;@;@(;@8;@P;@d;@l;@x;@;@;@;@SunMonTueWedThuFriSatSundayMondayTuesdayWednesdayThursdayFridaySaturdayJanFebMarAprMayJunJulAugSepOctNovDecJanuaryFebruaryMarchAprilJuneJulyAugustSeptemberOctoberNovemberDecemberAMPMMM/dd/yydddd, MMMM dd, yyyyHH:mm:ssSunMonTueWedThuFriSatSundayMondayTuesdayWednesdayThursdayFridaySaturdayJanFebMarAprMayJunJulAugSepOctNovDecJanuaryFebruaryMarchAprilJuneJulyAugustSeptemberOctoberNovemberDecemberAMPMMM/dd/yydddd, MMMM dd, yyyyHH:mm:ssen-USINFinfNANnanNAN(SNAN)nan(snan)NAN(IND)nan(ind)e+000 ((((( H   !"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~ ((((( H ( 0SunMonTueWedThuFriSatJanFebMarAprMayJunJulAugSepOctNovDecTZE@F@F@8F@HF@hF@F@F@F@F@F@G@(G@@G@XG@hG@xG@G@G@G@G@G@G@G@H@(H@hG@PH@`H@xH@H@H@H@H@H@hG@H@hG@I@ I@8I@XI@pI@hG@No errorOperation not permittedNo such file or directoryNo such processInterrupted function callInput/output errorNo such device or addressArg list too longExec format errorBad file descriptorNo child processesResource temporarily unavailableNot enough spacePermission deniedBad addressUnknown errorResource deviceFile existsImproper linkNo such deviceNot a directoryIs a directoryInvalid argumentToo many open files in systemToo many open filesInappropriate I/O control operationFile too largeNo space left on deviceInvalid seekRead-only file systemToo many linksBroken pipeDomain errorResult too largeResource deadlock avoidedFilename too longNo locks availableFunction not implementedDirectory not emptyIllegal byte sequence+I@I@I@I@ja-JPzh-CNko-KRzh-TWO@ENUO@ENUO@ENUO@ENAP@NLBP@ENC0P@ZHH8P@ZHI@P@CHSPP@ZHHxP@CHSP@ZHIP@CHTP@NLBQ@ENU8Q@ENAPQ@ENLpQ@ENCQ@ENBQ@ENIQ@ENJQ@ENZR@ENS0R@ENThR@ENGR@ENUR@ENUR@FRBR@FRCR@FRLS@FRS8S@DEAXS@DECS@DELS@DESS@ENIS@ITST@NOR T@NORHT@NONpT@PTBT@ESST@ESBT@ESLU@ESO0U@ESCXU@ESDU@ESFU@ESEU@ESGV@ESH(V@ESMHV@ESNhV@ESIV@ESAV@ESZV@ESRV@ESU W@ESY@W@ESVhW@SVFW@DESW@ENGW@ENUW@ENUAW@USAW@GBRW@CHNW@CZEW@GBRX@GBR X@NLD0X@HKGHX@NZL`X@NZLhX@CHNX@CHNX@PRIX@SVKX@ZAFX@KORX@ZAFY@KOR0Y@TTOW@GBRXY@GBRxY@USAW@USAamericanamerican englishamerican-englishaustralianbelgiancanadianchhchichinesechinese-hongkongchinese-simplifiedchinese-singaporechinese-traditionaldutch-belgianenglish-americanenglish-ausenglish-belizeenglish-canenglish-caribbeanenglish-ireenglish-jamaicaenglish-nzenglish-south africaenglish-trinidad y tobagoenglish-ukenglish-usenglish-usafrench-belgianfrench-canadianfrench-luxembourgfrench-swissgerman-austriangerman-lichtensteingerman-luxembourggerman-swissirish-englishitalian-swissnorwegiannorwegian-bokmalnorwegian-nynorskportuguese-brazilianspanish-argentinaspanish-boliviaspanish-chilespanish-colombiaspanish-costa ricaspanish-dominican republicspanish-ecuadorspanish-el salvadorspanish-guatemalaspanish-hondurasspanish-mexicanspanish-modernspanish-nicaraguaspanish-panamaspanish-paraguayspanish-peruspanish-puerto ricospanish-uruguayspanish-venezuelaswedish-finlandswissukususaamericabritainchinaczechenglandgreat britainhollandhong-kongnew-zealandnzpr chinapr-chinapuerto-ricoslovaksouth africasouth koreasouth-africasouth-koreatrinidad & tobagounited-kingdomunited-statesACPOCP  6 - h@h@h@h@(h@0h@8h@@h@ Hh@ Ph@ Xh@ `h@ hh@ph@xh@h@h@h@h@h@h@h@h@h@h@h@h@h@h@h@ h@!i@"W@#i@$i@%i@& i@'(i@)0i@*8i@+@i@,Hi@-Pi@/Xi@6`i@7hi@8pi@9xi@>i@?i@@i@Ai@Ci@Di@Fi@Gi@Ii@Ji@Ki@Ni@Oi@Pi@Vi@Wi@Zj@ej@j@j@(j@8j@I@Hj@Xj@hj@xj@ ;@ j@ j@ j@j@j@j@I@I@j@j@k@k@(k@8k@Hk@Xk@hk@xk@k@k@ k@!k@"k@#k@$k@%k@&l@'l@)(l@*8l@+Hl@,Xl@-pl@/l@2l@4l@5l@6l@7l@8l@9l@:m@;m@> m@?0m@@@m@APm@C`m@Dxm@Em@Fm@Gm@Im@Jm@Km@Lm@Nm@On@Pn@R(n@V8n@WHn@ZXn@ehn@kxn@ln@n@n@I@n@ n@ n@ n@n@o@o@(o@8o@Po@,`o@;xo@>o@Co@ko@ o@ o@ o@ o@ p@ p@ p@; 8p@k Hp@Xp@hp@xp@ p@ p@ p@p@;p@p@p@p@ q@ q@ (q@8q@;Pq@`q@ pq@ q@ q@q@;q@q@ q@ q@q@;r@ r@ 0r@ @r@; Pr@$`r@ $pr@ $r@;$r@(r@ (r@ (r@,r@ ,r@ ,r@0s@ 0s@ 0 s@40s@ 4@s@ 4Ps@8`s@ 8ps@<s@ <s@@s@ @s@ Ds@ Hs@ Ls@ Ps@|t@|t@arbgcazh-CHScsdadeelenesfifrhehuisitjakonlnoplptroruhrsksqsvthtruridbesletlvltfavihyazeumkafkafohimskkkyswuzttpagutateknmrsamnglkoksyrdivar-SAbg-BGca-EScs-CZda-DKde-DEel-GRfi-FIfr-FRhe-ILhu-HUis-ISit-ITnl-NLnb-NOpl-PLpt-BRro-ROru-RUhr-HRsk-SKsq-ALsv-SEth-THtr-TRur-PKid-IDuk-UAbe-BYsl-SIet-EElv-LVlt-LTfa-IRvi-VNhy-AMaz-AZ-Latneu-ESmk-MKtn-ZAxh-ZAzu-ZAaf-ZAka-GEfo-FOhi-INmt-MTse-NOms-MYkk-KZky-KGsw-KEuz-UZ-Latntt-RUbn-INpa-INgu-INta-INte-INkn-INml-INmr-INsa-INmn-MNcy-GBgl-ESkok-INsyr-SYdiv-MVquz-BOns-ZAmi-NZar-IQde-CHen-GBes-MXfr-BEit-CHnl-BEnn-NOpt-PTsr-SP-Latnsv-FIaz-AZ-Cyrlse-SEms-BNuz-UZ-Cyrlquz-ECar-EGzh-HKde-ATen-AUes-ESfr-CAsr-SP-Cyrlse-FIquz-PEar-LYzh-SGde-LUen-CAes-GTfr-CHhr-BAsmj-NOar-DZzh-MOde-LIen-NZes-CRfr-LUbs-BA-Latnsmj-SEar-MAen-IEes-PAfr-MCsr-BA-Latnsma-NOar-TNen-ZAes-DOsr-BA-Cyrlsma-SEar-OMen-JMes-VEsms-FIar-YEen-CBes-COsmn-FIar-SYen-BZes-PEar-JOen-TTes-ARar-LBen-ZWes-ECar-KWen-PHes-CLar-AEes-UYar-BHes-PYar-QAes-BOes-SVes-HNes-NIes-PRzh-CHTsrj@B`i@,`@qh@p@@@@@@Ђ@@@@@ @0@C@@P@`@Hi@)p@@ki@!@ch@@D@}Ѓ@h@@E(h@@G@0h@@H8h@(@8@H@IX@h@j@Ax@@h@@JHh@@@@Ȅ@؄@@@@@(@8@KH@X@Ph@ h@x@@@@@ȅ@؅@@@@@(@8@H@X@h@x@@i@#@ePi@*@l0i@&@hXh@ Ȇ@Lpi@.؆@s`h@ @@@@M(@8@i@>H@i@7X@hh@ h@Nxi@/x@th@@@Zph@ @O@i@(@ji@ȇ@axh@؇@Ph@@@Qh@@Rhi@-@ri@1(@xi@:8@h@i@?H@X@Si@2h@y(i@%x@g i@$@f@Xi@+@m@i@=Ȉ@i@;؈@i@0@@w@u@Uh@(@8@TH@h@X@i@6h@~h@x@Vh@@W@@@ȉ@h@؉@Xh@@Yi@<@@@v(@h@8@[i@"H@dX@h@x@@@@h@@\t@Ȋ@@@@h@(@8@]i@3H@zj@@X@i@8h@i@9x@h@@^@nh@@_i@5@|W@ ȋ@bh@؋@`i@4@@{8i@'@i(@o8@H@X@h@x@@@F@paf-zaar-aear-bhar-dzar-egar-iqar-joar-kwar-lbar-lyar-maar-omar-qaar-saar-syar-tnar-yeaz-az-cyrlaz-az-latnbe-bybg-bgbn-inbs-ba-latnca-escs-czcy-gbda-dkde-atde-chde-dede-lide-ludiv-mvel-gren-auen-bzen-caen-cben-gben-ieen-jmen-nzen-phen-tten-usen-zaen-zwes-ares-boes-cles-coes-cres-does-eces-eses-gtes-hnes-mxes-nies-paes-pees-pres-pyes-sves-uyes-veet-eeeu-esfa-irfi-fifo-fofr-befr-cafr-chfr-frfr-lufr-mcgl-esgu-inhe-ilhi-inhr-bahr-hrhu-huhy-amid-idis-isit-chit-itja-jpka-gekk-kzkn-inkok-inko-krky-kglt-ltlv-lvmi-nzmk-mkml-inmn-mnmr-inms-bnms-mymt-mtnb-nonl-benl-nlnn-nons-zapa-inpl-plpt-brpt-ptquz-boquz-ecquz-pero-roru-rusa-inse-fise-nose-sesk-sksl-sisma-nosma-sesmj-nosmj-sesmn-fisms-fisq-alsr-ba-cyrlsr-ba-latnsr-sp-cyrlsr-sp-latnsv-fisv-sesw-kesyr-syta-inte-inth-thtn-zatr-trtt-ruuk-uaur-pkuz-uz-cyrluz-uz-latnvi-vnxh-zazh-chszh-chtzh-cnzh-hkzh-mozh-sgzh-twzu-za01#INF1#QNAN1#SNAN1#IND:Yw/Ml;Zx0Nm?&{?x?5q(7>PD?%>b?>@??`??UUUUUU???UUUUUU????TUUUU?ƺ?Q#Ib?]4? ?0wG?`!?@?@Y?]??i?`÷?0?v?0ϸ?@'?m?ع?Щ0?_?pߺ?6?䍻?0?@:?p??}?? ?0>?0i?@A?pc?l?D???0Q ?P-?PIO?@p?0?@'?I?X?S?`:7?`X?x?p|??Н??0s?;?P[?`&|???pw?`? ?P?p(?7?0kE?S?+b?p?@~?`? R??๷???P?2? ??pD ?B?9(?*6?PD? " = .3i=W~ =imb;D=W>6Z= y+>>IԭwJ=07?v>Gb=M>Q= z >p=QW.>n[>p)=m6W>OJK>C>*f>8=pT=: r>]'p>qw>` '>M>[^j7>Kb|j>:bβ> >ޔ0>1k>A >+^=lg=)>,ļ,+>De}=7W`@>`z >~|'e>_M>`>1<. />:+>Os&>൏= MǛ/#> yHs=nX>JR!>11Y@/>58d%>_>)MJ$> " > H *>eVM>cQ6 !>6'Yx=%R>jtm}S=` '>Z>U&>䮿Y >?h/>77:ݸ$>a~>I{,>Y)>6{1n>Ur Vr.>Tz3&>Ra+f)>0'C>6Z d >' 4 >yU>^!-=j c?>cQ.> 5b#)>^x8o2>Lj[;>vj"=:1J<>s|d>f3>fvw=>;H9>&X;>7Y9>> 'S5>*StO9>T'4>K Z >`'>%%>΋.>Tu .(!>ʧY3p >%@~+>!n03>Pu?>d׌5>>t"v:>R=>X̤/> Ң;>[ >["`=>7>ː#>>6>\.>9Ir,>X>z8>4&/> VYS9>HVo6>a"$>S= 5>VaR:>V8>(. 0>D=Yc%>2x.&>>=K~Je#>!Ix[>dn-/!> 9٭7>qb(>aIbQ=cQ6 1>v+M<7>=*>!ư*>f[t0>To ->Or=)a ?>ė=l(>> "I c(>\, =F ET5>m0;>9lߙ%>6>ȨmG4>?7>*y W3>ay;>V >bp(=>?gҀ8:>})36,>8!> ;>PӽD8>j`&‘+>+&z*>nOv>h=O>yu`=GQ~f=oj37>k>/>dn9>hS=q)i5>m"e=?~X3>6>Tz36>J`?>!T4<> 0A8>cքBC?>6t9^ c:>VB4>ٲ6>*:8'>0<>Rm=1>"3>PkY)>'._M >5*=4<,BF>^G*>`JK&>.yCB )>O 'L>[.xJ>Hfy\PD>!MԩL>|b=})>\ >vc [1>H')>dL?>Z|F>Ni;>_j+>yC>O@L)>uzKs@>D>He@>5A3>N;kUr=CA > p.>EK>VR>>e kE>fvwM>`7nH> eF>tH/>ѤL>ev[%>J A>@ _A>pP&V6E>`"(5~7>ҹ@0$>y{@>W9oM>W L> փJ>W p0> lD>#,=>B_!">}tM>'>+Ai=1I!>u|KN> c0iN>/پA>+h->|ۈ:>r-4@>%>b?>@ ??? ?۠c?qBJeD? #D%?|?E??z?g1?Pt?t:W?sy:?????ہv`?#?4,Tw?ru\?AA?[,'?tn ?ƿD\n? V?m?^?BZ&?qq?I єX???.9&???+?{>e?к?#+?3=l}?e?O贁N?JH7?ـl@6 ?"1K ?(?^?pp?/?cj`?Y0Q?mЦm?JhAW?AA?Ň*,?Kz??3?-hk?N?U$?? /?r p?w \?H?,4?)I ?ՐO ???7zR?0?:bο?k??J?'t?aa?xO?ݾz?[R֯?Jv?gв9?H"?{Gz?f`Y4m?`?vS?beF?M0':?%f-?QY^& ??feт???B?,?u?{?U)#`?;;?"z8$?c,?f"?88?E[u?Hi?*_]?x+R?FyF?W[:?j\/?+J#?Xw?0 ?`*?h/?KN?K%?P- ?,M?7Z?@+??)A?[r??MΡ8}?5'Ps?'|h?p"^?w~S?$I$I?[`>?߼xV4?*"*?x!?UHy?g G ?  ?p}?Ljm Zjz  ' }Dңhi]Wbgeq6lknv+ӉZzJgo߹ホCՎ`~ѡ8ROggW?K6H+ L J6`zA`Ugn1yiFafo%6hRw G "/&U;( Z+j\1е,[d&c윣ju m ?6grWJz+{8 Ғ |! ӆBhn[&wowGZpj;f\ eibkaElx TN³9a&g`MGiIwn>JjѮZf @;7SŞϲG0򽽊º0S$6к)WTg#.zfJah]+o*7 Z-A1b62S-+ldEw}ZVǖAOIъ OM~-QJ#SpxAaU׮.7׵Y-6]]wll?AԞZ͢$ Faw$eڪ]]FD(koipvk19Z* ,  m86F߲]qTp0ek*1u4yީ%8S1bSWĔՖk1**ykʬHpo].*F6fcTT"eM©g0&):{ϼkZ> 8$,52F*sw1pHkQ6Fzw]cN̵J #pAF]#l8?1(BOgT~yUbL8^#ܖTZ1ObbSyOIV~P-{b-R4٠~^eGnHl/Su6: #jT$+e?yHf'*b#ٽЧ ?&~?$pi;FBzw[keZ~7 Sv8H 3?r$7jnԄYFܨ |OQ;օ U d S - =G\ p&Gw)` /a߫i5&LsZ<#0zMzFM8,9; :R:(q-v,.7/pXqYs3r%w+OQvrtEux܉~OK }!b|tyBxʠz{.lD~m8onlk[wjR1h58ib?mcf+aQ`צedd"fig HINSKyuJcO NZLݘMFGN@E$DD2AsX@*IBCPhTg3U>uW ַVS:R|P~Q9ZS [fYX4])\ZEo^m/_5qϱ٥s\ۼqދ!K7 kfֶԁ-b3Πjp]$^'~*I@VW<âM˟ŏ{ tDCm-@wm.B+(铜>Td"ŀǼϭ~8y$owJ1}05_K^ iϏ은BI#ƈdX܁T̓cQ: rՆ⩗ fn|xK)o%ƭ/3vUuA?)C:|sĵ@͂ Ͳ;bIUeh"׻_HS1޼^Z4eg Wb27_k%8ם(ŊO}do׸Jj3wVcXWP0qB{߭gCru&op-?'Bs ưGz>2[Ȏg; i8P/ _Y=чe:ZO?(3wwXR @hQ+ğH*0"ZOWoI}@mNП5+#*'G| AH=XX?#1jvʬ`p^Y<L~i/{kHwâ hs)aLoD~Pf7VM'(@ﰤ ہg9x+n&;f?/X)T`D1 ߨMߒ.FgTp'Hq/L0UEc?kǃh6ry7]P\@TN%s7@'>$!AxUʰ\3;Y^U~PGl!;b F2ȂpԞ(Q_V:1X: n3 m:@/)IJNv"2x+ٗ Kx.HҥfAj^y9*O]#kM`~b_R 7zFh!1߈Vc0a"j6nS Nr)Υ{t*F8#vufz`rs"WG9^EMvc΍&DAdQy/4Aڱ&S֚E biLQ<6'5P..T&q]w4.6IE? v\[YI>U!lDa>Ԫ΋ϩ7~8A]&nv|oY yKiw\¹9~$ 66nQfq>,o,IӔ 渱{I .H>C-Yn馑gQz tafw0a, Qmpjc5dۈ2yܸو L+~|-dj qHA}mԵQӅlVdkbze\Ocl=c ;n Li^`Agqr<KG k5Blۻ֬@2lE\u ϫ=Y&0Q:Qa!V#Ϻ(_ ٲ $/o|XhLaf-=vAq *q3xɢ4 j m=-dlc\kkQlabe0bNl{WeP|b-I|LeMaX:QΣtԻ0JߥA=ؕפmCij4ngF`D-s3 L_ |Pq<'A  Wh% of a^)ɘИ"רY=. \;l  tҚG9w&sc d; mj>zjZ '}DhibW]egl6qnkv+zZgJoC`֣ѓ~8ORѻgWg?H6K +گ L6JAz``ègU1nFiyaf%oҠRh6 w G"U&/ź; (+Z\j1,ٞ[ޮd°c&ujm 6?rgWJz{+ 8Ҏվ | !Bhݳڃn&[owGwZjpf; \ebiaklE x NT9§g&a`IiGM>nwۮjJZ@ f7;𩼮S޻G0齽ʺŠS0$6TW)#gfz.aJ]h*o+ 7 Z-1A26b+-Sdl}wEVZOAي»IˬO ~M-JQS#xpaA.U7Y-۩6˚w]]llA?Z$㧲F waރ$Ųe]]DFok(vpi91k *Z  ,8mF6]pTqke0*1¶u4%y<8syjHA}X*ݹ1SbSW§ٖծ1k**kypH]oF*.f6TTcMe"¤0g)&Ůޟ:{kZ >8,$5*F21wsHpQkzF6c]wN̵ׄJ# pȄA#]F8l1?(gOB~TUyLbˁ8#^TO1ZbbySIOP~V{-b-4R^~Ge­lHnuS/:6# $Tj?e+y䏼Hf*'˼Ѝb# &??~p$iBF;[wzek~ZS 7H8v ?3$rj7nFY |OQ; U dؓS - \G=&pGw`)/ ai5&sL <:R=Pe6^X7}o5641W0ճ2k3$k%'1&-[#bML"'{ "!$*x(+)`F(> q-q,v.Ț/7pqXsYr3w%vQO+tru՛E~xKO} |b!ytxBz{l.m~Do8nkljw[h1Ri85bcm?a+f`Qeddf"giH IKSNJuyOcN LZMݥFĚGE@ND$A2D@XsBI*CThPU3gWu>V SR:P|Q~Z9[ SYfX]4\)^oEZ_/m5qs<\kg2z &J8 좞V`a/6i\lU,zB\uHƒ=&FW A+Ox]`غ7W>9q߳!7Kk ֩fض-bѠ3pj$]^Ĝ'*~@IWVÕ<ӂMʏş{ Dt͆mC-@mw+B.(>dT"ş~Ϝ8yo$w1J}50K_ ^ϋiBۉI#dXфTQc:r Р fΫnx|)Ko%3/uUv?A)ġ:C|sд@͉ ;IbeU"hH_S1ފZ^ھ4ge ȋbW72%k_ܝ8Ŵ(}OodJֿjw3XcVPW0Bq{gǧurCo&p-?О'sB zGɠ2>[ ;g/P8i_ Y=嗇e:ϏOZw3(?RXw@ Qh+HZ"0*WOIo@}m5N#+'*GA |􏒨HX=#?X1vjʨ`^pYL'!$UxAׯ3\Y;U^GP~b;!lڇF 2p(ԐQV_:X1: 3n :m@I)/NJ2"v+x xKH.jAf^O*9y]#Mk~`bю_޶ Rz7hFм!10cV"ajحn6 SrN){t*8Fv#fu`zrϮsɛW"G9E^vMcD&dA/yQA4S&ֿ EbLil!>aDƋΪ~7A8n&]|vYoᡱ Kyi׫w¡\~9$66 Qnf>q,o,ӹI 散 I{.C>HnY-Qg̰t zfa`Psp0  ` @ X ;x8 h( H T+t4  d$ D \ S|< l,  L R#r2  b" B Z Cz: j*  J V@3v6 f& F  ^ c~> n. N `Qq1  a! A Y ;y9 i)  I U+u5  e% E ] S}= m-  M S#s3  c# C [ C{; k+  K W@3w7 g' G  _ c? o/ O `Psp0  ` @ X ;x8 h( H T+t4  d$ D \ S|< l,  L R#r2  b" B Z Cz: j*  J V@3v6 f& F  ^ c~> n. N `Qq1  a! A Y ;y9 i)  I U+u5  e% E ] S}= m-  M S#s3  c# C [ C{; k+  K W@3w7 g' G  _ c? o/ O A@!  @a`10  @     @@HN #+3;CScs !1Aa  0@` inflate 1.2.8 Copyright 1995-2013 Mark Adler @0@@@@P@`@p@@@@invalid distance too far backinvalid distance codeinvalid literal/length codeincorrect header checkunknown compression methodinvalid window sizeunknown header flags setheader crc mismatchinvalid block typeinvalid stored block lengthstoo many length or distance symbolsinvalid code lengths setinvalid bit length repeatinvalid code -- missing end-of-blockinvalid literal/lengths setinvalid distances setincorrect data checkincorrect length checkneed dictionarystream endfile errorstream errordata errorinsufficient memorybuffer errorincompatible version *PXZ *PX pp *PX @@@@ЍH `xЍ@H@H `x@H88@`H `x`@H@RSDSm>0JHȧE:\CPython\cpython35\lib\distutils\command\wininst-14.0-amd64.pdbGCTLp.text$mnp .text$mn$00 .text$x.idata$5.00cfg.CRT$XCA.CRT$XCAA.CRT$XCZ.CRT$XIA.CRT$XIAA.CRT$XIAC .CRT$XIC.CRT$XIZ.CRT$XPA.CRT$XPX0.CRT$XPXA8.CRT$XPZ@.CRT$XTAH.CRT$XTZPX.rdatal.rdata$rd.rdata$zzzdbgx.rtc$IAA.rtc$IZZ.rtc$TAA.rtc$TZZ|p.xdatad.idata$2d.idata$3d.idata$4`j .idata$6 .data.data$r=.bssZ.pdata0 .gfids$x0 .gfids$y@ 0.rsrc$010A (.rsrc$02dT42p dT4pd4 p7 &t;&d:&49&2P@d 4R pRp`0d 4R pd T 4Rpd 4R pRp`0bp ` P 0d 4R pRp`0T42 p20  4 2p' T9482 p `@d T 4Rp t d T 42BB 4, *p@@&4ZXP@&4ZXP@ 4 2 p`P* %4# p`P@h 4r p ` P t d T 422 t# d" T! 4 @ 4 p@P+p`0@0d 4 rp  4 Rp. t1d0T/4.,@P p`P0@9 ((t(d(4(P@ 4 p@@!0@0( d342, p P@P  4 Rp204 "1"t0"T/"*@@7 &&&t&4&P@+@@#p`P@0) 32d1.P@` 4&$P@B@@+T 4  @0&4dbP@d T 4Rpd T 4Rp2020d4  p@@= ,t,d,4, P@PR0t4t d4t d4) t*d)4(&P@  B p`P0dT42pd42 p t dT42  p`0P20d42 pdT42pd42 p d T 42p* 4  p`P@BbB  b  4 rprp`020B2020BB  4 Rp|7LL2PBBB20 "|7››PB202020  4 rPdT42pBBBBBB  4 2PBB4PBd42 pd42 pt42 P"" dT4rpBBBBB20 dT4rp20202020BBBd42 p20B20B20202020 t dT42 t dT42  4 2p t d T 4R  4 2p  4 2p  4 2pd42 pdT42p  2020 t dT42 t d T 42 d T 4 2p d T 4 2p t d4|)*RP t d4|*+RPd T 4Rpbp ` P 0d42 p  4 2p  2020d42 p  4 2pd42 pr0@8r0@8  4 2p  4 2ptd42dT42p2020202020  4 2pd42 pd42 p202020  20d42 p20  4 Rp  4 Rp  4 Rp  4 2pd42 p  4 2p20d4  P20- td4P@td4P +t*d)4(&P  4 rP  4 rptd4P 480 p`P1 #t!#d #4#P@- t#d"4!P@??x 4h4& p `PBr020  4 P  4 Rp20  4 Pt 4  P11x-h't'd'4'Pd 4 P04p`Ptd 4 P td 4 rPt 4  P td4P# #t#d#4#PR0d 4  pt 4  Pd 4R p20  4 p00202020td4P202020t4 P20R020r0t4 Pd42 p  4 2p  4 2pdT42pdT42pd42 p t dT4220  4 2p  4 2pd 4 R p|0102P20t d 4 R|012P20B t dT4220202042 p|55H2P  4 2p2020bb  4 2p|55`2P  4 2p|+686y2Pd42 pd42 p t d T 42 t d T 4R t d T 422020 t d T 4 r  4 Rp  4 rp  R0  4 2pbbb dT4p dT4p dT4p  P  P  P2 !d!4! p P@  4 Rp t d T 4 R2 !d!4! p P@p  P  P  P2 !d!4! p P@R0 d T 4 Rp2 !d!4! p P@p20B  4 2p20  4 2pPPPPPP, 4 p`P@2 !d!4! p P@R0  4 Rp  t d 4R t d 4 R, 4 p`P@p2 !d!4! p P@pB20 d T 42p20202020T42 p202020T 4 2 p `B d T 4 Rp  4 2pd42 pd42 p  4 p20d42 pd4  p@@20$d4 p@BB20 d T 4 2p20202020  td422020d T42pB+ dT4rp@8d42 pd42 pd42 pt4  20d42 pT 4 R p `20$d4 p@BB2020T42 p202020T 4 2 p `B d T 4 Rp  4 2pd42 pd42 p  4 p20d42 pd4  p@@20$d4 p@BB2020  td422020d T42pB+ dT4rp@8d42 pd42 pd42 pt4  20d42 pT 4 R p `20$d4 p@BB  4 Rp  4 RpR020d42 b2020 d T 42p202020T 4 2 p `2020B d T 4 Rpd42 pd42 pd42 pd4  p d T 4 2p  4 2pd4  p@@20$d4 p@PBB  4 Rp  4 RpR020d42 b2020 t d T 422020d T42p2020B+ dT4rp@8d42 pd42 pd42 ptd4  d T 4 2p  4 2pT 4 R p `20$d4 p@PBB t d T 42202020T42 p2020BT 4 2 p `B d T 4 Rp  4 2pd42 pd42 p  4 p20d42 pd4  p@@20B d T 4 2p202020 t dT42d T42pB+ dT4rp@8d42 pd42 pd42 pt4  20d42 pd T 4 Rp20, 4 p`P@2 !d!4! p P@B20B  4 Rp  4 RpR020d42 b2020 d T 42p2020BT 4 2 p `2020B d T 4 Rpd42 pd42 pd42 pd4  p d T 4 2p  4 2pd4  p@@20B20B  4 Rp  4 RpR020d42 b2020 t d T 42d T42p2020B+ dT4rp@8d42 pd42 pd42 ptd4  d T 4 2p  4 2pd T 4 Rp204444444444 t dT42" "t "d"T"4"24t 4dT42pR0R0R0R0R0R0R0R0R0R0R0R0R0R0R0R044444444R0R0R0R0R0R0R0R0R0R044R0R0R0R0R0R0R0R0R0444444R0R0R0R0R0R0R0R0R0R044R0R0R0R0R0R0R0R0R04442 p|MM2P42 p|MM2P42 p|JMTM2P42 p| MM2P42 p|LL2P42 p| NN2P20dT42p2020BT 4 2 p `B d T 4 Rp  4 2pd42 pd42 p  4 p20d42 pd4  p@@2020 t dT42d T42pB+ dT4rp@8d42 pd42 pd42 pt4  20d42 pd T 4 Rp20444444 P@!( ( Ԅtd4 {! {T 2p! d 4 70! 70BBBd 4 Rp| a42Pd 4 Rp|8N2PP d T 4 2pd42 pB42 p|.9h2PB2020B2020  4 2pR0  4 RpR0  4 RpR0  4 RpR0  4 RpR0  4 RpR0  4 RpR0  4 RpR0  4 RpR0  4 RpR0  4 RpR0  4 RpR0  4 Rp  4 2p  4 2p  4 2pBR0  4 RpR0  4 RpR0  4 RpR0  4 Rp  4 Rp  4 Rp  4 Rp  4 Rp  4 Rp  4 Rp  4 Rp  4 RpBB td4rP td4rPBB dT4p dT4p20R0202020R0d42 pd42 p  rp0P  rp0Pd42 pd42 pr0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r02020r0r0d42 pb  P t"d!4 P  P- t(d'4&"P@2020 TG> `!tFs !4Ds !s !s ?4?!4@ ^P!!t>dA4@ ^P!!t>4@ ^P!!t>4@ ^P! Dp`0@!A!!GGTJ@BCv!!v!!!! @ABCTJ!0 4~ p`P@YYCQDIFATG64HIp`!EIl"!Il"bb t dT42 t d T 42 4R p ` P dT 4 Rp@ /t/d/4/~!P@0 4xn p`P@`   4 Rp20  4 2p20  4 2p2020PP- t(d'4&"P@ t"d!4 PB20B20d42 p  4 2p2020  4 2p  4 2pd42 pd42 pd T 4 rp  4 2p  4 2p20Bd42 p2020d42 pB20) t"d!4 P@BB20Bd42 p  4 2p2020  4 2pd42 pd 4R pBd T 4 rp  4 2p  4 2pB  4 2p  4 2p d T 4 2pd42 pd42 p t dT42  4 2pd42 p202020t4 PBB20d42 p  4 2p20  4 2p  4 2pd42 pd42 pd T 4 rp  4 2p  4 2pB  4 2p  4 2p20  4 2pd42 pd 4R pBd T 4 rp  4 2p  4 2p20dT42p  4 2pdT42pd42 p d T 4 2p 4R p`PB20B td4P  4 rp  4 rp 4r p`P 4 2 p`PB  4 2pB dT4p  4 rp  4 rp t dT42 T4 R p `B td4rP  4 rp  4 rp 4R p`P d T 4 2pB dT4p  4 rp  4 rp42 p|z  2P42 p|: D 2P 4m hp@0B 4m hp@0B 4m hp@0B 4m hp@0B 4m hp@0B 4m hp@0B 4m hp@0B 4m hp@0B p ` 0 Pbb p ` 0 P 4r p`P p ` 0 P  4 2pd 4 rpd 4 rpbbbb  4 2p d T 4 rp d T 4 rp  r04 r pd T 4 rp dT 4 rp  4 2p t d T 42  4 2p d T 42p d T 42p  4 2p d T 4 2p  4 2p d T 42p d T 42p  t444t d444  4 Rpd T 4Rpd T 4Rp  4 Rp20b  4 Rp  4 Rpd T 4Rpd T 4RpB  0P  0P  0P  0P20202020BB t dT4220d42 p20' TN4MH p `@0202020 d4 p P20 d4 p P20 d4 p P20 d4 p P 0 P 0 P 0 P 0 P2020$4 p`P@xT 4 r p$4 p`P@xT 4 r p$4 p`P@xT 4 r p$4 p`P@xT 4 r p0B0B0B0B P@h P@hd 4 p|:,, 2Pd 4 p|)s*2Pd4p|n++2Pd 4 p|*3+2Pr0r0dT42p d T 4 RpB J0@@  4 2p4 R p`P4 R p`P20B4 R p`P4 R p`P t d T 422020 td42020BBB  4 2p  4 2pBd42 pBd42 p42 p42 p2020BB d T 4 Rp d T 4 RpT 4 r `T 4R `  4 2pB  4 2p t dT42d42 pBBB  4 2p2020B20  td42|q9r$xrq~r?2P2P4 2 p `|uuX2PBB t4d 4R p20  Rp0P *0@@2 0|@k2P2P P t d T 42- I p`0P@0bp`P0d T 4Rp d T 4 Rp0 4qf p`P@  dT 4 Rp) 4K@ p`P@B2p|~~2P202020202020BB  4 p20B42 p|xx2P42 p|w+wo2P  20|MwVw2P42 p|wx2PBr P  b2020 t d T 42B d T 4 2pB42 p|-7)2P d4rp|vʓC2PBBBBB2020 20|Xee20BBd T 4 rpbb  4 2p 4Rp ` P dT4 RpT 4 R p `20202020  t d 4 R|Тm`RP d T 4 Rp2020  t d 4 R|̣iyRPb  4 2pb  4 2pBd 4 r pbbdT 4 p# #t#4#PB0|rPB0|IvrP  4 p|;_ rP  4 p|?srPBBBbT 4 R p `d42 p d T 4 Rpr 0r 0d 4R p4 2 `|7n2P 4 p ` P4 b p ` P 0 4R p`P b p`P0b  4 2p  4 2pBB42 p|-m2P  20  4 2p202020B20bR0bR0bR0bR0bbbbR0R0R0R0  4 Rp  4 Rp  4 Rp  4 RpbbB20B. d4 p P@  4 rp t d T 4R20|Lz2PdT42p2020dT 4 pdT 4 pt4Pt4P  4 Rpd T 4Rp  4 2p  4 2p  4 2pd42 pt2020 tdT 4 d T 4 rp t d T 4 r20 t dT42 t dT42  4 2p t d T 4Rd42 pd42 pdT42p  4 2p tdT 4  t dT42d42 pdT42p t dT42 t dT42  4 2p20d42 p  4 2p20BB  4 2p 4 p@@  4 2p20 t dT42 d T 42p t d T 42 d T 4 2p20  4 2p20Bd42p|l2P  4 Rp|A*2P42 p|v2P20d42 pd4 r p|(C6]2P2P2020| !2P  4 2p tdT4td42B20202P2P2P2P2P2P2P2P2P2020 4R p ` P dT 4 Rpt d 4RdT42p t d T 4R t dT42  4 2pBB  4 2pd42 p2020  20  4 2pr PBB  P  RPBBB  rP  4 2p2020d42 p42 p|2P42 p|2P42 p|Iy2P42 p|1?2P2020Bbb td4P dT4p dT4p dT4ptd T4d42 pd42 p204 p ` P' E4C p`P@`BbBBBd4 Pd4 P  4 2p  4 2pd pPd pP tdT 4   4 Rp  4 pbd4p dT4pBP@ tdT 4 dT 4 p tdT4 t d T 4 rd 4 r pdT 4 42 p|ii2P20!T4 r p `@0  B4R p|ij'jj'2P20  4 2p  2042 p|#n.nA2PBB  2p`P04 R p| ooYooY2PBBB d 4 2p|wws2P 4 p`Pd42 p( 4 p`P@p t dT42- T4 p `@@- T4 p `@@1 T4 p `@`  4 Rpd42 pd42 pt d42Pt d42Pd 42pd 42pB  4 2p(tdP@pBBBBd42 pd42 p20d42 p  4 2p  4 2p2020d42 pd42 pB|7=2P20| 2PB|Ӗ2P202020  4 2p  p`0P4 R p`P$d+4*( p@0d T 4 Rp dT4p42 p|2P t dT42(d4rpP@842 p|2P  4 2pBBb td 4 r tdT4  4 2p20R0@($dK4JH p@0dT42pdT42pdT42pdT42p  4 2pdT42p  4 2pdT42pBd T 4 rp d T 4 Rp dT 4 rpBt d 4R| Q72P t d 4 R|72Ptd42 t dT42dT42pd42pt d 4R|2P2020  4 2p"  p`0P@h'  p`0P@pB2020  4 2p  4 2p tdT 4  tdT 4  tdT 4  tdT 4 2020B 4 p ` P( 4 p`P@pd42 p  4 2pdT42p t d T 4 R% 490 p`P@pd42 p  4 2pdT42p dT 4 Rp% 4[R p`P@2020d42 p  4 2p|2PB% T4r p `@8r0dT42p+t4 P@p4 rp`Pd42 pB42 p|x2P  4 rpd 4 r p t d T 4 rdT42pB2020B1 dT4p@BBB20202020 td4rP2 02020 dT4rp  20  4 2pT42` td4rP  4 2p2020d42 p- 5td43 P@PBdT42p  20  4 2p|2P  4 2p t d T 4 R t d T 42  4 2p' T4 p `@  4 2p$d*4)& p@  4! p@d42 p 4 rp@8  4 2p r p`0P@0 t dT42  4 2p( d*4)$ p@  4 2p$d(4'$ p@  4 2p) d)T(4'$p@20d42 pd42 pBdT42pBdT42pd42 p  4 2p20|z2P  4 2p|2PBBB t 4R|IG2P p`0|#2PB  4 2p|g 2PB42 p|2H2PbR0bR0bR0bR0bR0bR0bR0bR0bR0bR0R020R020R0  4 2pR0  4 2pbb20|++2P20|%,0,2P  t d 4R|-#.1.F.RP  t d 4R|.%/3/H/RP  t d 4R|'o(`}((`RP  t d 4R|(t)y))yRPd42 pdT42pd 4R pd T 4Rpt d 4R t d T 4R2020B0@HB20d 4 r p  4 Rp|4 5452P2PBB 0 P d T 42pBB42 p|M55)2Pd 4R pB d 4 2p|*9Z9C2P d 4 2p|:H:Z2Pd42 pd42 pBBBB t d T 4 rBd T 4Rp tdT4b20B42 p|ABq2PB tdT 4 dT4p20202020r0r0d4 p- Utd4S P@X20d42 p-  p`0P@td4220B-  p`0P@t d42P t d 4 2P  b  bB42 p|xx2P2020BBbbbbR0@(d T42p 4 Rp`P@(  4 2pdT42p  4 2pdT42p  P@@  4 rpB$  p`P0@- Etd4C P@`BBBBBBBd42 pBBd 4 r p|ǑRP  4 2pd 4R pd 4R p  4 2p|CZ2P  td42|d2P  td42|S2P t d T 4R dT 4 Rp  4 2p t d T 4Rd 4R p tdT 4 d4 p' US p`0P@x202020  hB20B  t d 4 2|V__2PdT 4 p 4P Lp@P0d42 p& h p`0P@& h p`0P@0  hbb  hbb' h 4! p `P@+ x h4# p `P@B h4R p`P 0t d42P20 d 42 p|jqEq2PB20  4 2p|ͻ2P0B20"ejPheZmhin e~ohd"pXi@p@jpooppooooorj`j`oNo>o2o&ooopokll$l8lNl^lrlllllllllmm&m>mw0kkvvvvvrvXv>v2v&vvvuuuuuuuluXuDu,uukkkkxklk\kvDkk kjjjjjjjvtwttttpppppqq8qRqhq~qqqqqqqr*rBrZrrrrrrrrrrss&s6sDsTsvssssssssstt&t8tHtZtjttt0pmtmhmnnnnnnnnrndnVnDn2n n nmmmmmmmm\pnpLpPropertySheetACreatePropertySheetPageACOMCTL32.dllSetLastErrorSetFileTimelstrlenAUnmapViewOfFileVGetLastError7GetFileAttributesACreateFileACloseHandleCreateFileMappingACreateDirectoryADosDateTimeToFileTimeMapViewOfFileTReadFilehGetModuleFileNameA#SetPriorityClassGetCurrentProcessGetStdHandleLoadLibraryExAiGetModuleFileNameWCSetThreadPriority SetFilePointerResumeThreadjGetModuleHandleAMultiByteToWideCharGetTempPathAGetCurrentThreadLoadLibraryADeleteFileA0SetStdHandleGetProcAddressLocalFreeBGetFileSizeRemoveDirectoryAFreeLibraryCreateProcessAFormatMessageAGetTempFileNameAGetPrivateProfileIntAGetPrivateProfileStringAKERNEL32.dllEndPaintBeginPaintReleaseDC_UpdateWindow|GetParentoPeekMessageA>GetDlgItemSetCursorSendMessageASetDlgItemTextASendDlgItemMessageAGTranslateMessagepCreateWindowExADefWindowProcARegisterClassAWMoveWindowJMessageBoxA(ShowWindowwsprintfAGetSystemMetricssPostMessageA6GetDC"LoadCursorADGetFocusGetWindowRectDispatchMessageAUSER32.dllVCreateSolidBrushDeleteObjectSetBkModeTextOutASetTextColor7CreateDIBitmapSelectObject=CreateFontAGDI32.dllrRegEnumKeyExAkRegDeleteValueARegOpenKeyExARegSetValueExARegQueryValueA\RegCreateKeyExARegQueryValueExAaRegDeleteKeyATRegCloseKeyADVAPI32.dll3ShellExecuteASHELL32.dllSCoInitializeCoUninitializeCoCreateInstanceole32.dllRtlCaptureContextRtlLookupFunctionEntryRtlVirtualUnwindUnhandledExceptionFilterRSetUnhandledExceptionFilterpTerminateProcesspIsProcessorFeaturePresent0QueryPerformanceCounterGetCurrentProcessIdGetCurrentThreadIdGetSystemTimeAsFileTimeTInitializeSListHeadjIsDebuggerPresentGetStartupInfoWmGetModuleHandleWRtlUnwindExZInterlockedPushEntrySListXInterlockedFlushSList)EnterCriticalSectionLeaveCriticalSectionDeleteCriticalSectionQInitializeCriticalSectionAndSpinCountTlsAllocTlsGetValueTlsSetValueTlsFreeLoadLibraryExWWideCharToMultiByteGetCommandLineAGetCommandLineWCreateFileW&GetDriveTypeWEGetFileTypePeekNamedPipemSystemTimeToTzSpecificLocalTimecFileTimeToSystemTimeWriteFileWExitProcesslGetModuleHandleExWGetACPGetConsoleModeRReadConsoleW<HeapFree8HeapAllocGetDateFormatWGetTimeFormatWCompareStringWLCMapStringWZGetLocaleInfoWwIsValidLocaleGetUserDefaultLCIDLEnumSystemLocalesWSetEnvironmentVariableASetEnvironmentVariableW?HeapReAllocGetConsoleCPGetStringTypeWGetTimeZoneInformationSetCurrentDirectoryW GetCurrentDirectoryWPGetFullPathNameWMGetFullPathNameAOutputDebugStringAOutputDebugStringWWaitForSingleObjectExCreateThreadnFindClosesFindFirstFileExAtFindFirstFileExWFindNextFileAFindNextFileWuIsValidCodePageGetOEMCPGetCPInfo.GetEnvironmentStringsWFreeEnvironmentStringsWGetProcessHeapSetConsoleCtrlHandler9GetFileAttributesExWSetEndOfFile SetFilePointerExFlushFileBuffersWriteConsoleWAHeapSizeGetTempPathWDRaiseException2-+] f/     DB@ @=@(@(@(@(@(@0@?@@A@`5@@@C@=@BB@PSTPDT@@@ abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ@`y!@~ڣ @ڣ AϢ[@~QQ^ _j21~ abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZЊ@@@@@@@@@@Ԋ@@@@@@@@0@..u@@@@@@@ȫ@ԫ@@@ Ь@@@@(@@@P@h@x@Software\Microsoft\Windows\CurrentVersion\UninstallSoftware\Microsoft\Windows\CurrentVersion\Uninstall`@L @p@ @@X#@@@@@@"@@@@@@@@ȫ@ԫ@@@.?AVDNameNode@@@.?AVcharNode@@@.?AVpcharNode@@@.?AVpDNameNode@@@.?AVDNameStatusNode@@@.?AVpairNode@@@.?AVtype_info@@J\ >@(<RLTXhBxT2H  K L " "X#8h#$@$K&XL&(p(**m+p+n-p-L.L. 0 00 0K10L1 3< 3L3`L34h48686667799::<:::@?@?C(C:DP{>>>>>>??3?x?????@$@@@1B^p,@^^,^K_d-L__8-_x`-x` a, aa\-a&b -(bb|-bcX+cd`+diP(is(sw@)w),P-т,Ԃol-pl(\)T(T)x(;h)<ڇ(܇z)|,(,)(ȏt)ȏ ( )v(x7)'a'd'M'řX*ș * F*H+šx*Ě*C*D8+ $- $0&`}%# D_#`}l&Рt& '+d&,G#H|# +,%},@|&-,Ȩ?,@(#@!ԯ$,%,e"h"" #P#_t#x#Il"I|"|"@(Q($ 8%|T&%M'&!v!v!""$" ^P!^~X!~l!!!0H"9H!X4($4"&$H%8'Li`$l&t%X'L$L'&%('D$D'%U'XL$"l%dT$g&p8$&qX%t)D',l$5&8%Pd'PD$&d%:P'<W#Xq$tH&V"  $  %$X$%$ &s s  !$ !$]0!"d0&`H((Lj$l@%$"%$P8(P|(|8))$%0%(V&X0'E|$`&%nt' $ $' % '      ! ! # #M#x P##h #|$-|$:%-<%%-%&.&&-& '- ''-'{(-|( )- ))-)*0*L+L1L+,1,,0,-d0-.-00-V-t0X-~-0-q.l/t.g/x/h/e0/h0[1/\11.1`3.`33 /3k5/l55,/574/77L/79T/9H:/H::/:; 0;;<L0<<>/>?/@A0AC00CD0DHE0HEE|1EE1FF/FG. GG\0GUH|0`HHl0(II0IVJ.XJzJ/|JJ.JJt.JJ|.J(L.4LL.LM.4N=O.HOcO.dOTP$.TPFQ0.HQDRH.DR6S<.8SST.SS\.S>Tl.@TTd.TV1VV1V\W1\WY1YZ1@Z[2[],24]^@2^`l2``\2``2aad2aa2aa2aIb2Lbc1c5e1Heie3lee$3ee 3ef3 ff2ff2LgEh,3HhKiD3Lii2ii3ij\3jhkl3kk2k=l2@lZl2\lvl2\mm2mm2mm2mln3nn3ndo|3o*p3,pxp3pp3 q-q30qDq3Dqr4rr4s\s3\ss3ss38t|t3tt4tu4uuX4vv4v=w6@wiw6lwx7xx6xyh6y6y68y^yp6$z?zH6@z[z86\zwzX6z:{x6<{Y|6|}P6}/}@60}K}`6P}}4}'~6(~~x5~546'4($H5$Ɔ4Ȇ4̈,5̈1h54Љ$5Љ5?5@~5@7K7L77:7X77 h7#`7D~P7H7?,8HX48`<8JD88$8К8t8Dl8DkL8|8ޜ8ß8ğ8998X9Χ9Ч99*9d8p9 9Ъ89ǫx9ȫ988X9S9XD:Ǯt:Ȯ::h@;3:4:;;w ;xƷ;ȷ0;<:X; ::l:%`;0 : R9Tɾh;̾b;d;;;x; ;D<<<4< (<=<@<|x<|p<<~<<Q<T<0,=0lD=l8=P==C$=Dw =x== < 6<8k<l<<<*<,_<`<<<==@Z|=\="\=$Sd=Tl=t=3>4== >\>uh>x%<>(L>X>(>A4A,Ax$AA@l@l8@8:@<@>>b>d|>>i>l>> ?s?t ,? dD?d P? h?x?t?t?g?hW?X?4?4?C@D,@8@4@@4P@\@d@>l@@t@>@a@d>ZdA#A$oA|`A`A B\BxB3(B4tPB|BBuBxB B  B  B B9BlBBB B<sBBCz0C|nXCpDC~pC"C,DDXDQDTzD|CDC`zC|8D Dd )!C,!!C" "C "#D# $$D$$,D$!%HD0%K%@DL%%C% &C &&C&?'C@'y'C|''C''E'(E((F(H)EH):*E<*_*E*C:EH:;EH<AEApCLEpCEhEEgMEhMMFM,O0E,OKOELOjO(ElOO EOO FOPFP5RpF8RRXFRRdFSBT8FHTUHFUU0FUU(FU(WF0WWFW(YF(YuYFxYYFZ]]$\>?,\`?'@`\@bAL\dAAD\A$B\$BJB\lBB\BqCx\tCD\D9E\TETF\TFF\FF\FF](GTG]TGG]G!H]H7L0]8LL ]LMX]M _] _>_]@_T_]`g`]h`sp]s[t`]\tv]vw]xx^xx^(ycy^dyy^y!zD^`zwzT^xzz\^zzL^z+|^,|}^}-~^0~~^~I^L^h^ht^|^׀d^؀l^_āb_l_$_L_,_|_1t_4ևX`؇z`|lj`ȉ7`8ы`ԋx aԌ`Ԍ`܍ `܍aq,`t_/_0G_X_ޒ__;_Hn_p_e0ahXaHa|a a \a ˟a̟a(a ^a(\a:aP`b'b(ϦbЦ54b8PKuA>PKuN .HcHHD$PFFIFH ;T$DIVHIcHHUHDII+HD$p HuH3H}HUHHр|\HT$XtH}HHQfGHM MHcHD HD$hHD$HH8t?LI9HT$PH3HLAI IMILL$HI9uMFHT$PHMH|Ll$XHM:H3H}H|$hHB|)\Ll$`tXF DNLl$0fD$(FHUL3fD$ Ht*NEFDNHT$pLl$(L$ H3MtDL$@EDHAAՋL$@ADL$@;T$DLD$xE3HT$HMIJ\HNHHH>LD$ HNH\H=>t3H=*'HT$ HMitH rH /lHPNGH&HcE3H3DHT$0}>tHT$0H 1NonH oHMLD$ t[3H$@H3ByH$`HP_H\$UH$@HH(H3HHeHd$hd$XHd$xHd$PHd$`3HUJyHOH oDZHD$XLMLEHD$@HD$hHNHD$8HD$xHHD$0HEHD$(HD$pHD$ Zu3HD$PL ȌH 3DHD$ Iy H>N_HL$PLD$`H0Hy HM9HL$PHUHy HMHL$PHUHP8y HgMHUHtHL$PHPXy H#MHT$hHt#HL$PDD$XHy HLHT$xHtHL$PHPHy HLLD$pHEA33D$(HD$ EHL$`HHUDP0yGLD$pH FmHLDYHL$`HtHPHL$PHtHPXHcHL$`HPHL$PHP7HH KkHH3vH$H]LHHIKHMK IKMCHLHvXu3-FDL$`LD$hHT$0HFH L)kHHH m"H%vhH\$H|$UH$PHH$H3HHLkHpLHD$ [FHoH>DHD 6jDgHKHL$0FLL$ LEHT$0HAt#LL$ LEHT$0HAt3?3HH}HHHfG3H}3Ɋ HDuHMCHH3tL$I[I{ I]H\$UVWATAUAVAWH H%LHTCHKHHACHKHL.CHKHHCHKHLCHaKHHHD$hBH9KHLBHKHLB3HD$pHHMMHMMH JHHt[HJHHpJHH>fH-!HHiHc3HHAHHLAH rHl$hHD$pH-thL%UHe3L-}UH\$`H A_A^A]A\_^]@USVWATAUAVAWHHl$ H"H3HE`HHJMMcHHMAHJHHEAHJHLmAHJHHHE VAHIHLHE?AHMHIH+AHMHIHEAHMH[IHE(A3H9MMHM{HrH9M(hH_H9MUHE8 =3Hu H~ILHH`FH fLDI!CUHMH 63A!k3E~0L56M+IJ 0Htr3IHI;|LuL%c6AIA3E~I Ht5yHI;|HU0λ}uMDEDA@HcHAH;w HH"H+H|$ H~HHf8 U A֋S HM`H3pHexA_A^A]A\_^[]H\$Hl$Ht$WATAUAVAWHPI!DL33IM$Hd$0E3DHȺD$(LD$ >H؋==H$*=HӋHD$@=Hӹ=H QHHtMEIHHϋ<赁HGHH`H$<HT$@<3H7=;s 3H#=GHcwE3HHtDE3E33HD$=HL$DHLl$ =D$HE,H=I=L\$PI[0Ik8Is@IA_A^A]A\_HHXHhHpHx ATAUAVH LHFLL=HFIL9=HRFIH&=HOFIH=HFIH=HMt;Ht6Ht1Ht,Ht'H `AIXIՋ؅t׋H\$@Hl$HHt$PH|$XH A^A]A\H\$Hl$VWATAUAVHHH3H$H33M"Hd$0E3EAHD$(LD$ [<H:L:H֋Lu:H֋j:H kNBHHu-<HEHL$PD=HL$PHH2Hˋ :Iչ:Iֹ93H:DG-HcDuHHtgd$@HEH+Š H„uE3E33H;Hd$ HS,LL$@DH:D\$@HA,AHGt H DH ;I:H$H3%lL$I[8Ik@IA^A]A\_^H\$WH`HH3H$P3HtEHD$0D$(HD$@DD3ҹHD$ 8HT$@HL$PDHL$@8D$PHL$P/:LHcH+HL PHH ]LDHT$PA;3H$PH3@kH$H`_LISMCMK VWH8HH3H$ IsLHL$ L蟂tmt$H `HHCH _Hc~DE3A;L$XH _LǺ;9HT$ C:L-CHT$ HA0:yH \`HtHBL$XzH$X.赀HtBH=BHu/H$X| H `HtL$XHwByH$ H3iH8_^HHXHhHp WH@H`E3H@EA@ 8HHu3iHT$`H6Hd$(d$ E33HEA7HH7HtHd$ E3E3AQH7HH7.HH\$PHl$XHt$hH@_H\$WH0H=JHtQH=^uG9LJd$(EH IPHMAHHT$ S5HHH^9H\$@H0_@SUVWATAUAVH`H#H3H$PL$E3+TM+TMuM1"HcHف|PK;{V4tH#A3D9stHcCHH+HcCH+H I+SH{+AHcH+pHHHT$@4H@HL$@LE34tgDE3Lt$0AHHfDt$(fDt$ {HHtPLcHH}|H3HHH觺HIEI4$55H?3H$PH3fH`A^A]A\_^][HhHL$07HL$07HL$0E3E33D$ 7uHh@SUVWHHQH3H$Ht X7&HT$pP7HJ7E3ɋиgfffE33H ~?HL$h3ɉL$`L$XL$PL$HL$@L$8L$0D$(D$ 2HH2HHv2H3H=CL CPHDHɉL$ HO2HI2H3P H=qCL jCDHHɉL$ H2HH1H 2HT$pHG63H$H3 eH_^][H\$Ht$UWAUH$@yH+HH3HHQH33D$`HD$hHt$p13HuHD$xx5HEq1L-B>HL$`LmHuHES5fuH VL>H=E34H=HML43\1H65)5Ht$XH\$PHt$HHt$@|$8D$0LEE3I3ɉt$(t$ 4HȺH4H4HHH3cL$I[(Is0IA]_]H\$WHPHkH3HD$@HT$0H=43}4p4DT$0L$"H L 2HL$ LH3t H8fH=2u ~H~ H8H 6\SHt%Ht H!AH=Hn!tH;!3H8H|$DLDAAu,DиD;rDED;D}HuBzAsFEtAIDEAuD;rDиqAkAA .qAn^A AP[AIDACEDACEDACEDACEDACEDACEDACEDACEDACEDACEDACEDACEDACEDACEDACEDEEAiDAiDHE AAHAAIDACEDACEDACEDACEDACEDACEDACEDACEDACEDACEDACEDACEDACEDACEDACEDEH@EtAIDEAuAiDAiDAE AH|$H\$DADAqADAEAEqi+DAiD+ںED+CD;r DD;rD=r;rH\$A _WH!H\$Ht$H|$DEHH5AEt#t AHH3DD3AuA !AHD3AHADHAD3HD3AD3 D3CEAHADHAD3HD3AD3 D3CEAHADHAD3HD3AD3 D3C EAHADHAD3HD3AD3 D3CEAHADHAD3HD3AD3 D3CAEHAHDAD3HH D3AAD3 D3CEAHADHAD3HD3AD3 D3CAHADHAD3HD3AD3 HArUEID3AHEAHADHAD3HD3AD3 IuEt AHH3DD3AuH\$Ht$H|$AAHHXHhHpHx DѽD#EDЋAH5#DDAEt+t&AHHH3ADD3AuHZA AAHD3SAHADHAD3HD3AD3D3CEAHADHAD3HD3AD3D3C EAHADHAD3HD3AD3D3CEAHADHAD3HD3AD3D3CEAHADHAD3HD3AD3D3CAEHAHDAD3HH D3AAD3D3CEAHADHAD3HD3AD3D3AHADHAD3HD3AD3HArYEIHAD3EAHADHAD3HD3AD3IuHEt&AHHH3ADD3AuH\$Ht$H|$ AAA#AA#Hl$A3tt3HuH(LLLL+A CIAIIuH(HHXHpHxUHhH0HVH3HE AED$ L HH |HT$ HMgHUHL$ YHT$ HMK@t HM"t&HUHL$ &@tHL$ u3ދHM H30L$0I[IsI{ I] Hu3@SUVWATAUAVAWH8Hi(DqH9LALMXHu`Dm4]@DUDLII+DMhIHH+ЋE,A$E0HT$$HE8HD$LMlMLL$H4$$HT$ AsGAHAJAH#"uG@ʸA#AEAAD+EuIAEAt+D;sHAAʸ#DD+AsGAHAJA$H#ȋ4'@A$ʺH $#Ћ4@։$D+tD;s'HAAD;sHAAʸD+#A+D$;-+;$v HT$LJEu*$+LA;D+IIAAulA+D;sG$A+LA;sXD+M+ICAuLJE;s;AE+IIAAuLA;sD+IIAAuML+Av7AKJAAIIA@AAAHA@AAuEtuAAH4$IAAv AAIALL$YIH+ȊAHIA@AAA@AAwEt#AH4$IAAvAIA LL$H4$I;sBM;s=HT$ t E %H2Ht2HK2ID$ EAE+AE|$H+D+D+HGAI$I@Et$ID$ADUD#ÉE@H8A_A^A]A\_^][3HtaHQ(HtXBAA HA D@DALHB HB HB,B4HB@HHHHB`HBX3BDøH\$Hl$Ht$WH HHtZHy(HtQy3Ń0}t |/*HW8Ht9_(t HI@V8Hg8HΉo_(H\$0Hl$8Ht$@H _H\$Ht$WH HMA81AXHuAHa Hy0uHa@H!HA0HA8H !HAHDHK@HC8S0HHuF1HC(H`8HtHK@HS8Hc(H\$0Ht$8H _ELºEHtJLI(MtAy Aa@AaD3Ã+EADEA wʸEQDAA#AA@͸H/Ah AlHAXH7HA`HHXHhHpHx ATH HY(E3HL9c8u!K(DHN@V0HC8HuD9c,u K(Lc0{,+n{,HV;rHK8DH+#Dc4C,S+{4K4;GHK8H+D#+tHVHK8DI+#k4{4C4K,;ADĉC4C0;sljC03H\$0Hl$8Ht$@H|$HH A\ÉT$USVWATAUAVAWHHXE3ۋLHHy(HL9YL9u D9YDg@wD D]HDENMVM.E~LUDMXLmD}EDM`C ;8t`vHXA_A^A]A\_^[]EAEIALmD;rDgAt H7`At H7KHO Ht AGt$DeAHUDeًOAE3ۉGEA"E@AEIALmD rHG HtD`Gt6ADeHUAEAADeۈEڋO&E3ۉGEA"EAEIALmD;rHO HtAĉAHG AH Gt(DeAHUDeًOAE3ۉGASEAGHG HtLXG_HA;AG߅HG HLHMPH+WH;vs+qEAEIALmD;rHG DgHHtD`Gt$DeAHUDeًOAE3ۉGEA>DIIGtODIG)_HD+LE3LmD9_HD_HGtyEAMHG E(IHtHP HtOH;H(sD,GHEtA;rGtHUODE3ۉGD+HEELm HG HtLX D_HG1EtjAMHG E(IHtHP0HtOH;H8sD,GHEtA;rGtHUODbE3ۉGD+HEEDmHHE]`E~IFEXAFHEIwD3Dg@9w,u?|A;^rI`SD9_u) 9EtAEIALmD;rGtRAuIE333HUAGfDe؋OGE3AEDE`DMXLUHG D_HtH@GAAȸB+k;uzA$<tH2IF XAÃD9_(u7O(E333ɉGgAAԉGAFLAA D'7;O(vHM2떺H'2IF HG HtLX0LmDE`DMXLU]PGtSt g΃A+"EAEIALmD rAA;t H>12OHEAgDoHE<E;EGE;EGE8HUEIAH]DMXLUE+E+LD)oHLm]PDMXLUEAEIALmD rAAĺ#AAA#AEGAFL D9_  E333eDE`DMXLUE3ۉGAFL ASZQD9_t;θ#A+E)AEIALmDrAA΃GAătBttuHF$tMt*OJD9_"E/AEIALmD rE+EFDGEt4OAIH+D9_t4DMXLUE3ۉGASAFLAAEDM`A%AD9_AE;Ot H3#7EAD9_D9_"EYAEIALmD rD;gH"EGHAIADMXLUG4;v W,+++ЋGHHW8;v GHIH+ыA;AGD++I+DMXGHBAIuLUQAD9_HGtTVDE3ʃf@+щVDr%N@LL$0F@AIAN@VDsHN|HT$0!DGHHN|G )GDW H~|t#DOHDW DO 3H\$8Ht$@H _3HtHI(Ht9 u9ADu øH\$Hl$Ht$WATAUH HLH=H4Hz(H'HB0HHz8HK@AAAHHu 3H9o8t&O(AEHK@S0HHu HK@HS8IHAXu AHHd L_XHHHL;rMu\L}Et A|A$E'LE3I_A ~LEA̺pLEI@AHtD#HuPA-uA+uD#HEWAMA$CEu(A0tA 8;xt ;XtA&A AuA0u;xt;XuDcHM@3҃ADAEJAȃt Ã0At.AD$A<w A;sA;r"u;vMuH@uMIE3\AD#HA@u@u<ƃtw u)A;v$["@t@$AMtI@t߀}t HMMtM>@8}t HE3L\$@I[0Is@I{HIA_A^A]A\]H83EL9D$ Hu H 3iH8H8d$ IELHHGH8H8=QELHD$ u H 3H8H8IELHHD$ H8Ht7SH LH 3<uYHoYH [@SH HH Hu 肂?H HALE3H [H%H\$Ht$WH HHw|HHEH MHu K?H (L3uHHu,9GtH荂t X X HgX 3H\$0Ht$8H _H\$UVWATAVHH0HeH=1HHu@HukXXHHu_Dr=A1Ht HȻH+H;}HH H;sHTHHH蛌HEHHtLHSHzʎHL轎L;hH;_J\ HIHEHH3LHHHEHA=E4HEHII+LI HHMHAtHMHHkH= d$(He@Hd$ L3D3DuW*Ht$d$(Hd$ DL33tEdIc̺^HE@HtDL33Dd$(HD$ su HM@Ht>HM@>HM@DfD4AHM@HD+HAL33Dd$(HD$ %tHM@3BtHM@H2P(3H\$`H0A^A\_^]@SH Hٹ)3HbعH [H\$Ht$WH HH3ۋHuUE-ƑHHtU腐H\$0Ht$8H _H\$Ht$ WATAUAVAWHHkH3H$HHct$L3ۋHuOU(U"3DB0Hu%UT ;5eLLIL=bAMkXKBL AA#fK Ft!uT oJ !A;t ttKT8u fO7wfDwf__ H_(H_ H_u_K H\$(HD$HHD$ E3E33J !#L$HO_ _fDwK HT$`J !MTGDt$`t $ fG9\$tu 9\$xuH_ hHT$@HL$tYHT$PHL$@AD$\DT$ZDL$XDD$VT$RL$PL$0D$(DT$ 輕HG 9\$lu 9\$puHG dHT$@HL$lHT$PHL$@fD$\DT$ZDL$XDD$VT$RL$PL$0D$(DT$ BHG9\$du 9\$huHG \HT$@HL$d tiHT$PHL$@tUD$\DT$ZDL$XDD$VT$RL$PL$0D$(DT$ ДHG($GGfG_y(RR AH$H3L$I[@IsHIA_A^A]A\_HHPHHL@LH SVWATH(H33HuQA3HtLd$`G@H讦t*t%HcHHLHkXIH H HLB8u%ttHcHHHkXI A8tP@u*HtME3HT$XH諛H׋'H^H(A\_^[LD$LL$ H(LL$H@H(LD$LL$ H(LL$HDH(HHPL@LH H(LHE3H(LD$LL$ H(LL$H$H(HHPL@LH H(LHE3H(H @SH u;LHcȺ<HHu$PHˉHhHuv3HHH0HHt H;E3HEHILIHIHkXLIt ItMuIH0Iu3H [H(;=t艦H H(@SH HH H;r>HtH;w2HH*H+HHHH?L謊kH [HK0H [H%@SH Hڃ}zkH [HJ0H [H%HaH;r5HH;w)qH+H*HHHH?LH0H%} rވHJ0H%ffHL$L\$M3LT$L+MBeL%M;sfAMAM;uL$L\$HLD$LL$ USVWHHXHeH3IHDB(HMHu0M=\HtHtLM@HMH;HEBGE3H}؉]H}ڗHtMx HE HU3HX_^[]LL$ H8HD$`HD$ H8ffLM t$H+t(HItu IHHHIv&I~LLIM3IMtIHItx$tuHItiHtbHItV$tSHItGHt@HIt4$t1HIt%tHIt$tHIu"-/H HL$ *3LEHHHHHH\$HHt$PH|$XH0A\A@@SH ILHHu.$AHIHHt3.H [HT$LD$LL$ USWHHPHeH3HHMDB(Hu;.(KHtLM0HME3HEEBH]H]xM؋x HM HU3.HP_[]LD$LL$ H(LL$H8H(LMCMK H8IC E3ICH8LL$ H8HD$`HD$ H8LMK H8IC(ICIc_H8LH8IC0ICIC(IC<H8LMCMK H8IC E3ICH8LL$ H8HD$`HD$ H8HHHHPL@LH H(HPH(HHHHPL@LH H(HPH(HHPL@LH H(L@`H(HHPL@LH H(L@lH(@SH@HcHL$ yHD$ ~LD$ ?DH@DXA|$8t HD$0AH@[@SH@=HcuH3X%YHL$ 3HD$ ~LD$ A?DH@DXA|$8t HD$0AH@[@SH@HcHL$ HD$ ~LD$ >DH@DXA|$8t HD$0AH@[@SH@=HcuHKXVHL$ 3HD$ ~LD$ [>DH@DXA|$8t HD$0AH@[@SH@HcHL$ HD$ ~LD$ =DH@DXA|$8t HD$0AH@[@SH@=#HcuHgXVHL$ 3*HD$ ~LD$ w=DH@DXA|$8t HD$0AH@[@SH@HcHL$ HD$ ~LD$ =DH@DXA|$8t HD$0AH@[@SH@=?HcuHXVHL$ 3FHD$ ~LD$ <DH@DXA|$8t HD$0AH@[@SH@HcHL$ HD$ ~LD$ .<DH@DXA|$8t HD$0AH@[@SH@=WHcuHX%YHL$ 3\HD$ ~LD$ ;DH@DXA|$8t HD$0AH@[@SH@HcHL$ HD$ ~LD$ B;DH@DXA|$8t HD$0AH@[@SH@=oHcuHXVHL$ 3vHD$ ~LD$ :DH@DXA|$8t HD$0AH@[@SH@HcHL$ HD$ ~LD$ ^:DH@DXA|$8t HD$0AH@[@SH@=HcuHςXVHL$ 3HD$ ~LD$ 9DH@DXA|$8t HD$0AH@[@SH@HcHL$ -HD$ ~LD$ z9DH@DXA|$8t HD$0AH@[@SH@=HcuHX%YHL$ 3HD$ ~LD$ 8DH@DXA|$8t HD$0AH@[@SH@HcHL$ AHD$ ~LD$ W8DH@DXAW|$8t HD$0AH@[@SH@=HcuHX%WYHL$ 3HD$ ~LD$ W 8DH@DXAW|$8t HD$0AH@[@SH@HcHL$ UHD$ ~LD$ 7DH@DXA|$8t HD$0AH@[@SH@=˕HcuHX%YHL$ 3HD$ ~LD$ 7DH@DXA|$8t HD$0AH@[@SH@HcHL$ iHD$ ~LD$ 6DH@DXA |$8t HD$0AH@[@SH@=HcuH'X VHL$ 3HD$ ~LD$ 76DH@DXA |$8t HD$0AH@[3Ã@SH@HcHL$ qHD$ ~LD$ 5DH@DXA38L$8t HD$0Eu_uH@[@SH 3҅u_uH [@SH@HcHL$ HD$ ~LD$ 5DH@DXA38L$8t HD$0Eu_uH@[@SH 3҅u_uH [LH;t MtL+A HIADJuH;Hl$ WATAUH H\$@Ht$HLt$PN4MIHLffIIL;wDHHAՅHOHH;vLHH;t$HtH+fD HIȈDJuH+I;wLt$PHt$HH\$@Hl$XH A]A\_@UATAVHMILHu!HtHA^A\]MtMtHH$0H$8H$@L$LjL$LLE3ff3III+HHpHw&MLIINt NHHIHAԅ~6LHL;t+ML+fffffA HIADJuIIAԅ~3LIM;t(MM+ffA HIADJuIHAԅ~3LII;t(LM+ffA HIADJuIIfH;vHH;sHHAԅ~H;wHI;w HHAԅ~H+H;v HHAԅH;w6LHt!LL+A HIADJuH;uH{HH;s#H+H;vHHAԅtH;rfDH+I;v HHAԅtIHH+I+H;|&L;sNt JII;"LI;sJ\ NIL;LL$H$@H$8H$0L$HA^A\]H\$Ht$WH HHHu HjHu\HwCH HHDL3LHHuo9tPHIFt+HvH7F 3H\$0Ht$8H _qHTXH;H@SVWATAUH0I؋LLHHut 3!3t3Ht҅tH\$xHC@H#qt*t%HcHHLDHkXIH zH zHLB8u%ttHcHHHkXI A8t[H 3H|$ HtTΉt$htGKxHHH HȉL$`uM;u3H|$ A $ILd$( tA$HHH0A]A\_^[ffMtuH+LItB H:uWItNtJHuJ ffwHJ H;uHII~vHLI3It H3HHÄt't#HttHtt tuH3@SH H HtHHHtH [@SH ̹U̹T@SH })HHBHH2HBHHH [H;s-H\$WH HHHHtHH;rH\$0H _H\$WH 3HHH;suH HtHH;rH\$0H _H(HuHAHtH3H(H(HuHHtH3H(H\$WH H=.tH #覾tսH&H uZH *HˇH=̇HHtHH;rH=ǮtH 9tE33AP3H\$0H _H\$Ht$DD$WATAUAVAWH@EDS="D%H $>HHD$0HH  HHD$ LHt$(LHD$8HH|$ H;rp 'H9uH;r_HH&HH ƄHH L;uL;tLH\$(HH\$0LHD$8HHD$ HH GHH 4EtpQEu&WQASA"H\$pHt$xH@A_A^A]A\_E33fE3APX33DBK̺3D9@SH >x<E3AP@SH =su>G<H [MZf9 t3Hc @ HHȁ9PEu f9Au3v 9H\$WHHL$00AMZH=fD9t31HcHǁ8PEu f9Hu3ۃv 9É$:u"=u=`;'u"=bu=5;躹Yy `HHy Zսy Gt21D$lT$pA DEL3H$uD$ u$uH$HĠ_H(/H(RHL$HH H؀HD$XE3HT$`HL$XCdHD$PH|$PtAHD$8HD$HHD$0HD$@HD$(HHD$ LL$PLD$XHT$`3c"H$HdH$HHHJH~H$H~ ~H_HD$hH_HD$p€~3H =~u } H^HĈH }H\$Ht$UWATH$HHH_H3HAكtEd$pHL$t3A覩L\$pHEHML\$HHD$P LHT$@IE3bHt7Hd$8HT$@HL$`HL$0HL$XLHL$(HMMHL$ 3\bHHHHHt$p|$tHEi3ɋWHL$HDuu t`HH3IL$I[(Is0IA\_]H\$WH HH ~HHHHH\$0H _H H%~H(AAHP|HH(H%~H8HD$`HD$ H\$Hl$Ht$WH0HH ~AIH'~DLHHHt!LT$`LT$ H\$@Hl$HHt$PH0_HD$`HD$ JH8Hd$ E3E333wH8H8Hd$ E3E333WHd$ E3E333H8HD$`HD$ -H8@SH +H [@SH H [@SH H [HSVWATAUAVAWHPE3EADpDpDpAN@KLH$  H$M H$h  D5AD=_D=_H ȿHHD$@HD80H wHt$HHH XHt~HDHHeBH6HHuDLHPH AhLt$ E3E333RH Ht L5H ')|! k<$LfD956tk<ȉ$fD95rt#xtDŽ$+k<$D$D$H$HD$8Lt$0?t$(I$HD$ ELy~3ҋk{tD9$u I$Dp?I$D0H$HD$8Lt$0t$(ID$HD$ ELz~3ҋ{tD9$u ID$Dp?ID$D0$Z $< $6 GD~ELǍV@I $(I?-uDnHH聻DEiD$0@9<+:| @:?:udHHCkR3H(HHXHhHpHx ATH IHHHt?Ht?HtHt2EtAu'IcL%vRI 6HHHu35HtH;v"MHH3H\$0Hl$8Ht$@H|$HH A\HyQHuQHeQHQL Q3ID@; t+IЃ-rAw ÁDAFHADH(Hu HSHH(H(Hu HRHH(@SH Hu HRHLRHtLP;AH [@SH cHu RHu HjRH3H [@SH HHu !CHu H/RH3H [@SH Hu Hu HQH3H [@SH HHu CHu HQH3H [H\$Ht$WH 3HHHugS\A$HtDA@W}.ʸy-AЋFiyD3D;|%D+D;|D+D;|D+SE.L w]AAH]SD[iҀD…LDȺIIHD9|ʸE.HcʉSE+D[ /c L$Iиųk+AKA иSiDAAЉSk聅Hd;PAELl;XHd$ E3E333@SUVWATAUAVHH7,H3H$IHt Ht 3HcHHDH"3DfHA8LAAxC6Ax_+HtHHHLL+x8;oAL%.I $MHuI $L;tHfIAL;~HHHxHHu }; A4HL$0LLź藍uaLD$0AHψD0HtH݀;t HÀ;HhH$H3{HA^A]A\_^][Hd$ E3E333!t$(H!t$ HT$0E3AHHt3HoHt-HUHL$0輍tLD$0HHuE3H ~EQD3MHHXHhHpHx ATH Hw+Ht&AAAL$iHHu( 3H\$0Hl$8Ht$@H|$HH A\IԹ`,HHu H褂IԹ  HCHu H 脂H;Ht%H7H;tHA`t'HH LƋHtHHSHt%HK'H H H3HCD HCD HH\$Ht$H|$ ATAUAVH0LD3v3eHHD$``HH' uHHtH;tHA`s'H MAHHHD$ HMt)HT3IX MAAẺ LA HHHuLD%2uCHH 7L 7I(H:I@H6;A 9; KHIHHH\$PHt$XH|$hH0A^A]A\H(E33D$0HHLHt)H<sH KLD$0A3\HH(H(H KGH%KH(HKL)3I; tHr3HHIDH\$Hl$Ht$ WATAUHPHb&H3H$@3HHNuNu =)\H-KALhHA3ɅL-KAf5MInDA|$u*LItE3E333Ht$ I#HHHtH(H5?Hu H>HtH(H5>HHtHM+HILl$pMcHtE=MHI?3ɅuHfB94hfB9 hHHHuH5u>H+HE3L9mHcHLxEtfL9ltHLHHHDHL9luHcHH;H >A%Ht{rH5=H+HsLdM.\EyߍG;tLcHL;^HHHHcL$LlM.Hy=D9l$xtuIH zHHtUIMHHuQHD$pHHGfD*HEIE>u*HwEt IwM.E3E333Ll$ IqwM.HHfuH+HHH\$Ht$WH H~<LcHHHHt4ILHuH<=t4<t.HHHuH9<H+HHt$8H\$0H _H+<HH\$Ht$WH H3HHt[H9 t HH8uAHcHHHuH hH HtH+HHH ;HuH'HH\$0Ht$8H _H\$T$UVWATAUAVAWH0E3LAHuL!M=IHHD$pHL;D8hH5 ;EAH;5;utHAHu IYHL9.uHcHHHuH hHEHtH+HHHH/HuL/H|$pl$xH5:Ht8L9-:t/Ftj H$H0A_A^A]A\_^]Et3߹H*:HtL(L9-+:uH:HtL(H59HHtHHA+LcHt?HMI0uHA|=A8\HHHuH59H+HE3L9mHcHL,tEtfL9ltHLHHHDHL9luHcHH;H .9A_Ht{rH59H+HsLdM.\EyߍG;LcHL;pHHZHcL$LlM.H8D9l$xttIlHHHHtVINMHHP{uRHHI+HT$pD*HEIE*:u*HrEt IrM.E3E333Ll$ IrM.@SH Ht HtMuDs_H [LM+ACItHuHu:"3@SH R9;gDG؋H [ËVD PDHHXHhHpHx ATH =-D3HAHhrHHu(t$8=DDD;AAGA;uHl$8Ht$@H|$HHH\$0H A\HHXHhHpHx ATH 3HHAE3HHiHHu*9Cv"]8DD;sCAAGA;uHl$8Ht$@H|$HHH\$0H A\HHXHhHpHx ATH 3HHAHH謭HHu/Ht*9Cv"7DD;BAAGA;uHl$8Ht$@H|$HHH\$0H A\H\$Hl$Ht$WATAUH 3IHALLHIHHu/Ht*9xBv"J7DD;`BAAGA;uHl$HHt$PHH\$@H A]A\_ffHHHtfHt_uI~IHMHLHI3I#tHPtQtGHt9t/Ht!tt uHDHDHDHDHDHDHDHD3Ht9t HHH;rH\$Ht$H|$UHH@HًHMIk3Hu8@8ut HE3H\$PHt$XH|$`H@]HU9ruH_@8utHM ft3DtH@83t ;u HC;tH;l@8ut HEHfE3 LI[IkIs ISWATAUAVAWH@MyM1AIy8M+MLHfIcqHIKMCH;7HH\ CL;CL;{;tHL$0IIЅ~t}csmu(H=]tH ]mtH]KAIIrYID$@SLcMHD$(ID$(ILIHD$ 3sYH;793MA 3E3M+Ǩ t;39v5HOAL;rL;v H;sHLul DIcqHH;7sUHHHߋCL;r9CL;s1EtD;+t1t;kt(;uHT$xFAD$HDCMAH;7rL\$@I[0Ik@IsHIA_A^A]A\_H\$Ht$H|$ATH L%"33Iu&HcƺH H:>H HU2t&H$|ɸH\$0Ht$8H|$@H A\HcHI$3H\$Hl$Ht$WH $H$"H+Ht{tH1HckH#HHuH!HKHt ;u1HHuH\$0Hl$8Ht$@H _HcH!HH H%2H(H3]1H( H\$Ht$H|$AUH HcپH=6uN,ʪHHL-9!I|ty({HHub 3X fHI|u-0uH?j& 3 I\$jH \!1H\$0Ht$8H|$@H A]H\$WH HcH= HH<uuH轭H H\$0H _H%H1HHXHhHpHx ATH MQ8HMAHIHHII\L:_DDUAA#AfDDEtLMHHH\$0Hl$8Ht$@H|$HH A\H\$Hl$Ht$WH Hڅxg; oWs_HcH-wWHHHkXHDH<u;=u%tt u -HDH3 H\$0Hl$8Ht$@H _H\$Hl$WH xq; VsiHcH-VHHHkXHDDtEH<t>=u'tt u 3-HDH 3 H\$0Hl$8H _H(u Mx1; Vs)HcH VHƒHHkXHDtH| T AHH(HHXHpHxL` AVH HcLIL5UHkXK4|3 u4O |3 uHL3k-#D3 tK HL\.H\$0Ht$8H|$@Ld$HH A^HcH "UHƒHHkXHHLH%.H\$Ht$H|$ATAUAVH@HDE3^ suI3HT|$$@LcJHH\$0JH H;C{ u< { u!HKN,u DhDl$(C EudHK;-Ct HK3-HHEu?CH3LTK+H.袋.HLIIH?LDDd$ HXHHSD;XJHD$0HtsHcLSIЃmS I H H;s@H0@ ` HXHD$0|$ HcHHHkXID[DD|$ }AH\$`Ht$hH|$pH@A^A]A\HHXHpHx ATH0HE3D`AAD$ Esˀy+u+Su@uHc|$HuD H֋HHHLIRHkXIȈ\IȀd8IȀd8D$ H\$@Ht$PH|$XH0A\@USVWATAUAVAWHHxHe H3HE3McHc}}}F\LPF DA:LcmhA;,LcupA;DWE;H AQDL A+A;}b%} A+ƒA…uAkd;u#lAiҐ;AG$%} A+ƒA…uAkd;ulAiҐ;u~E謶HMKHMjHM艺+AQDCADe]D}DmDuDAAADAAD+ʙALHcHFHcHimHIcHHcEH RIIE3҅D$@A tfD$\YA@A T$HDt MI:A rIA tLt$pA@tMFEFA@tMcFEFLt$pA@t MyIADu A rEEyA AE;EODt$`IHH#ʉL$HAAυMt 3IIcHLB09~AƈHLt$pH+HÉD$DEt ;0HD$D0uAgu=A5E;EOA~%A]HcEHEHtH؋AIH IAHcHEHMDHL$0L$xLƉL$(HMHD|$ AtEuH tHUHAguuH L~HUHЀ;-uAHHE3҉D$DD9T$\FA@t1AsD$L- AtD$L+|$HAtD$L |$HDd$THt$hD+d$DD+A uLL$@LAԱ LL$@HL$LLƋIAtAuLL$@LAԱ0|$D39D$Pti~eHDHHMAHE3҅u+Ut$LD$hLL$@HE3҅uHt$h%Ht$hADD$@LL$@LƋHE3DD$@Ex AtLL$@LAԱ +E3DD$@HEHtH*SDD$@E3LUH}T$XAL fD'EYD8Ut HMAHH3JH$ HA_A^A]A\_^]AIt7Aht(Alt AwuA 뗀?lu HA AA yA<6u4uHAZ<3u2uHABIEDC AD|HEA*uAID$TfAD$T AčDHЉD$TFA tAA#t1A+t"A-tA0$AAA AADT$xDT$\DT$TDT$HEDDT$P迪謚38EH(Hu蚪臚AH(HHXHpHx HPATAUAVH MMHL33HuD13MtHA[G@Hbt*t%HcHHL>HkXIH H HL^>B8u%ttHcHHHkXI A8t蚩臙u(H(LL$`MIHA֋H׋H[H\$@Ht$PH|$XH A^A]A\H8LL$ MLHH H8H8LL$ MLHH zH8H8LL$ MLHH #VH8H8LD$ LHH E32H8H8LD$ LHH E3H8H8LD$ LHH E3H8H\$Ht$WH03Oc_\$ ;1O}eHcH ?H<tPH At `tlj|$$|1H>H H0zH >H ML>I$돹H\$@Ht$HH0_H\$Ht$WH A3H$<u?At69+y~-HSDNj0;uCyCK HKcHt$8H H\$0H _@SH HHu H [4gt C@tH]^3H [H\$Ht$H|$ATAUAWH0D33N3A\$ ;MLcH=J<thJBt^XHc=J At3Au6A;t#Ɖt$$EuAtA;AD|$(H=J@XpADH\$PHt$XH|$`H0A_A]A\H\$HL$WH HHuWHHWH\$8H _̹HHXHhHp HWH HHKHcu肥 K 4@t f"3t{HCHKC{C u/7UH0H;t)UH`H;u QuH譿C+HS+kHBHC$ȉC~Dŋ&.W K?t#tHHH49HHkXH H |A t3ҋDBEHHKD$0HT$0D-;D$0H\$8Hl$@Ht$HH _H\$Ht$WH IIHH; udM9u=H HHu3KHD$PHLHtmE3tfHe@?lHuE3E|$kt$\E3߃E|$<t>D$Lt$\D9D$`tD+t6H\$hD$4HD$ AcAd* RAg~vAitXAn<Dt$4AƄuDt$LHME HEHDt$4Ht$pLd$`ADl$9I3Ht$pR Ad-$T$@ Iك-u HD$xH@8+u(Ll$`Dd$HDt$4ID+DQE3ɋD$<Dd$HLl$`Dt$4D9L$P@EDb3^AĹD+tSHD$xL$XLM@<HHELD$xHUHHD$ $IAȋD$D$Xt$\D9L$PtD+t6H\$`D$4H&D$%~nA;HT$`辛E~fD D 螀 A;t HT$`芛ArE3 E@t fD#qD#iA;t IԋIA;IIsE>Au' pD8et HMD$h\$h38Mt HEHpH3H$HĀA_A^A]A\_^]H\$WH HcHtYH+u @u ;u@`tH贽H;t訽HWu 53ۋܼLHHAHH MkXBDt N3H\$0H _H\$L$VWATH Hcكu~ ~ xe;As]HHHL%BHkXIL8t7RID8t v~ ν}~ U~ BnH\$PH A\_^@SH AHt"AtHI.$c3HHCCH [H\$ UVWATAUAVAWH$0"0H+HH3H 3EL!|$DHcEu3Hu}!8}mLLHIAJ Ld$PMkXAt8L|$`@@@t@u AШtAD t 3ҋDBgtqHJAD耎3HT$\HH9YJ I ?}t @p,!|$XI݉D$\EM@ 3 D$LH"JA|Pt ADLL$aAD$`AdPHT$`It4IH+IHHL$@AHHAHHL$@Hd$8Hd$0L$\HD$`LD$@A3D$(HHD$ DNHL$PHd$ HEH LL$XHT$`I E"A+|$DD9d$X|$LLd$PHd$ HD$` J LL$XHT$`I A|$XD$Dz@t@uE3f fD$@AHDd$LDd$L@t@u:L$@Θf;D$@ugEt!A AfDd$@諘f;D$@uDD$DLd$PA+A;s&H!J ADLJADP\$LR\$LHJ AD3M@ES D|$DH 3AA+A;s'A$I< u AHHHHHrH!\$ H DD+HD$PH [H D|$DL|$`I LL$HH /|$HH H+HcD$HH; Aĺ A+A;F@EH D|$DH 3AA+A;s2A$If ufAHHHfHHrH!\$ H DD+HD$PH y H D|$DL|$`I LL$HH M|$HH H+HcD$HH;*Aĺ A+A;;EpA HL$p3AA+A;s/A$If u fDHHHfHHrHd$8Hd$0HD$p+LD$pD$(U +3DH HD$ %D3HD$PHd$ HcH EH X H HD$`LL$HH D+t t$HD;D;AA A+A;L|$`t\uK]w rw1I H!|$ LL$HEI{|$H3뤋PwxHD$PH HAD@t A}2vv =+|$DH H3H$H0A_A^A]A\_^]H\$L$VWATAUAVH ALHcuv pv xs;= skHLIL5 HkXKLtEKDtDIԋ v v Z v u eH\$XH A^A]A\_^@SH@HL$ HD$ DH@BY%|$8t HL$0H@[@SH@HL$ 3HD$ DH@BY%|$8t HL$0H@[̺骓̺鞓̺钓̺醓̺z̺n̺b̺V̺J̺>̺2̺&̺̺̺̺̺W̺Wޒ̺Ғ̺ƒ̺ 麒̺ 鮒3f;@SH 艒3҅uf_uH [@SH ]3҅uf_uH [@SH 13҅uf_uH [@SH 3҅uf_uH [LEIA@wA  HAw EtD;tD+AH\$Ht$H|$UHH@HHHMI?Hu(rb}t HEkHtHExuHHT}tKHM>H+ >HU虑HU苑HDžt;t+؀}t HMH\$PHt$XH|$`H@]H(=]u-Hu=r*bH(HtH(E3H(H\$Hl$VWATAUAWH0-IE3E3E3ۀ: EyEHLuI߀; t;at/;rt#;wtqa37 3A  IA׊A@ȃSytj  tGt>t' tuEE׃@@@Ez@utmEu`E׃ `TtMt:t) tu4A 7Eu*E)EuEA u  s3 Iߊ EI߀; tH ]AHHI߀; t;=I߀; tHd]AHBu HMHM]AHu H*H:]AHHI߀; t;HL$hEDID$ 袙D=!FD$hH&HfHf(FnHH\$`Hl$pH0A_A]A\_^H\$Ht$WH03ۍKS3|$ ;="HcHH<tfH@uU@uLGwO$HHb LI@t HЋ H|yX賢HHcHvH HtUH0uH SH LCI$$H5H H0L IcHtccHcH#Hc(KHH\$@Ht$HH0_ffHM3M3Hd$ LD$("HfDHL$HT$DD$I ffHHXHhHpWHPH`H3IHDB(HHIHuJm7]RHtHL$ LLHD$(D$8BH\$0H\$ L$(x HL$  HT$ 36H\$`Hl$hHt$pHP_ME3=HHXHhHpWHPH`H3IHDB(HHI4Huls\,Hd$0Hd$ HL$ LLHD$(D$8BH\$`Hl$hHt$pHP_LHH E3[MLHH CLHH ?sE3+MLHH $sH\$Ht$H|$UATAUHHP3MLHHMDC(3IH]<Huk{[vMtHtLMHLE@L;AHGHMEBHuHuЉEAՋHt3x!MxHEЈHU3kt9]B\&ÍCL\$PI[ Is(I{0IA]A\]H8LL$(Hd$ MLHH HH8H8HD$`HD$(LL$ MLHH HH8@SH0HMtGHtBHt=HD$`HD$(LL$ MLHH adpyu 3j" &jZH0[H8LL$ E3H8HHXHhHpHx ATH0IIHHMMuHuH3HHI;vMiLFH cHD$hLHD$(HD$`HHD$ ul^i8"Pi~GiH XcLD HD$hLHD$(HD$`HHD$ GDuHui8"u3hD )y(uh" hXH\$@Hl$HHt$PH|$XH0A\H8HD$`HD$(Hd$ H8H8LL$(Hd$ MLHH oHH8H8HD$`HD$(LL$ MLHH o`HH8H\$Ht$WH HHuhWA@t AA uxHAHH DG$HW\GGu_Hڼt=u5H uacHqAσtl t?tt^H\$ H $HHH^HvH HHt`H6HNH HHt8HH&H ~HHtHH_3褝EuH-t$t t~~bqRHH\$@Ht$HH|$PH0A\H\$Ht$WATAUAVAWH03|$`3уtbtMtXtSt.tt5 bQ@L%H L%H |L%H lrHHurHHLcP9YtHIHHH;rIHHH;s9Yt3LaM,$ L%H |$`*LIu3Mu AMK̅t3<t t tL|$(,LL|$(HuDdžDt$`u9 %OщL$ O;}*HcHHHd‰T$ NpI$t3肛;u AA;t t L; DH\$hHt$pH0A_A^A]A\_H H\$Hl$Ht$WH HH HHu_OeHu~H @MHHtHMHjHHu+_HI_Op5_JHHZoH7H;t HyHׅuB_ 7_3H\$0Hl$8Ht$@H _@SUVWATAUAVHHH3H$H$0AEL LL$@DAH|$@3D$ GDu\zux!l$ E3DAI Lct\UIHHtILDAIνDl$ DtIcHؒHHHu1tHIH$H3FHA^A]A\_^][AELHLc utH3Hd$ E3E333M̽;uTH#E3E3AHct'Hϋ1HHtDLAuH H#B:!T$0LD$0DAD$0SH H\$Hl$Ht$WATAUH LH H HHH;HH+LcIHȔHI;sOH;HBHH;r HđHuHV H;rGH讑Ht:HHH<H=IHOHHI3H\$@Hl$HHt$PH A]A\_@SH J轐HHQHHHuCH#3H [H\$Ht$H|$ATAUAVH L/BH LH {HI;HI+LoII艓HI;sUH;HBHH;rI腐3Hu3HV H;rIIiHt9u ǃ*9u ǃ9ǺD‰AЉ LIIAH3H\$0Hl$8Ht$@H _øcsm;u 3H\$WH 39=u+cH|H]HHD؀; w ;t3t);"u 3 tHH< w HÊuHH\$0H _H\$Hl$Ht$WH0=%ubH3Hu<=tHjH\uGHc觊HHmHtH;tPH,;=pt.HcHlHHtsLHH:uKHHcH؀;uHLHH%<H'>3H\$@Hl$HHt$PH0_Hd$ E3E333DH mH%H HHXHhHpHx ATAUAVH Ll$`MIAeLHAHtLI3;"u3@"HË9AEHtH3HËtAEHtHH@tu@ t@ uHt GH3;; t; uH;MtI<$IA3H;\t;"u6utHC8"uH 33҅Ht\HAEutOu< tG< tCt78HttHÈHAEH tHAEAEHYHtHAEMtI$$AH\$@Hl$HHt$PH|$XH A^A]A\H\$Ht$ WH0="u_H=4A3H&ԾHH=Ht;uHHD$HLL$@E33HHD$ Hct$@HH;s\HcL$HHsQHH;rHH݆HHt8LHD$HLL$@HHHD$ gD\$@H=A3D۽H\$PHt$XH0_HHXHhHpHx ATH@E3HHHfD9 tHfD9#uHfD9#uLd$8H+Ld$0HL3DK3Dd$(Ld$ :HctQHHHtALd$8Ld$0DKL33ɉl$(HD$ u HIHH H3H\$PHl$XHt$`H|$hH@A\H\$WH HHd$0H2-+H;t HHtvHL$0H\$0dDI3DI3THL$8DI3KL\$8L3HL#H3-+L;LDLILH\$@H _̃%I3DB %L3DB F3DB L3DB *3DB L3DB @SH 3MMuHuHu3-HtHtMuMu;P'@H [LLIuM+ACI„t*Iu#L+CAIÄt ItIuMuAMyIu \A@P뚈O"ffH+LtB :uVHtWHuIJ ffwHJ H;uI~LHHI3ItHH3ffft't#HttHtt tu3HHH\$Ht$WH =H+HtmHuH9*t_@uVHHtJHtEH΄HH Ht2辄H;vH <9=uLH-@tHHHD83H\$0Ht$8H _H\$Hl$Ht$WH0IHHHu(!N >H\$@Hl$HHt$PH0_H!HtHuHuHtIHHu3HHHEHtH;v"LHHtHd$ E3E333IAI)IAIH0HtD u?H8H`HHHPHPH@H04HD$X0H0IH@IH8HHIHPD$P $HL$XIIIITH0HtH5H0H@Hi:H8HHH; HP3H$H3eL$I[8Ik@IsHIA_A^A]A\_H(WHH; tOulUHȋ H(HuH H(CWHH; =tuUHȋAH(H( WHH; tǝuTHȋAH(H(VHH; ͡tuTHHA H(˅tȀ9t Hu+ЍB@UATAUAVAWHPHl$@H]@HuHH}PHH3HE]`3MEU~*DIA@88t HEuAA+;ÍX|DexEuHD`DMẢ|$(H|$ 0Lcu3I~^3HBIHrOKL-Hw*HAH;wIHbH+H|$@HtHHt HHtDMƺADl$(H|$ LDu!t$(H!t$ AELAįHc"AEt7Mp ;HEhL$(ELAAHD$ |~g3HBHHrXHL6I;w5HAH;w HHfH+H\$@HHHtH3HtnELAAΉt$(H\$ 3ɅtHM HDAHD$ =EM?HM HDAHD$ EM@HM HDAHD$ EMAHM H DAHD$ EMBHM H(DAHD$ EM'HM H0DAHD$ EM(HM H8DAHD$ w H@HD$ EMHMEAVEMHM HHEAHD$ 5HMA HPEAHD$ HMA  H\E3HD$ EM0HMEi HpDADXHD$ EM0 HxHMDAHD$ EM1HM HDAHD$ EM2HM HDAHD$ aEM3HM HDAHD$ @EM4HM HDAHD$  HhEM5HMDAHD$ EM(HM HDAHD$ EM)HM HDAHD$ EM*HM HDAHD$ EM+HM HDAHD$ zEM,HM HDAHD$ YEM-HM HDAHD$ 8EM.HM HDAHD$ EMBHM HDAHD$ EMCHM HDAHD$ HHD$ EMDHMDAEMEHM HDAHD$ EMFHM HDAHD$ rEMGHM HDAHD$ QEMHHM HDAHD$ 0EMIHM HDAHD$ EMJHM HDAHD$ EMKHM H DAHD$ EMLHM H(DAHD$ EMMHM H0DAHD$ EM6 H8HD$ HMDAjEM7HM H@DAHD$ IEM8HM HHDAHD$ (EM9HM HPDAHD$ EM:HM HXDAHD$ EM;HM H`DAHD$ EMHM HxDAHD$ bEM?HM HDAHD$ AEM@D HHD$ HMA EMAHM HDAHD$ EM&HM HDAHD$ EM'HM HDAHD$ EMHM HEAHD$ EMHM HEAHD$ {HMA HEAHD$ X H\$`Ht$hH|$pH@A]A\]HSH HHIRHKIHK@HK 7HK(.HK0%H HK@HKH HKPHKXHK`HKhHK8HKpHKxHHHHHHHxHlH`HTHHHH [HHXHhHpWATAUAVAWH@3HHHHX9Yu9YuDDH-AAVcHHuAH(HLLbLHu Hȉ9^HbLH~>HL$0AADHl$ .HMHL$ HL$0ADAԋ L}HL$0ADA L|$ A HEXHL$0AQDHD$ A HE`HL$0AQDHD$ tH(AHII3<0|<9 ,0I8uQ<;uLA@AIuHLHEHHEHHEHЍHEXH͍HE`E&MtEeHHtHHt uHH(LLH(3L\$@I[0Ik8Is@IA_A^A]A\_E3HD8 t<0|<9,0HD8 u<;uLA@AIuHSH HHIH; tqHK H; t_HK(H; tMHK0H; t;HK8H; t)HK@H; ~tHKHH; ttHKhH; tHKpH; xtHKxH; ntHH; atHH; TtHH; GtH [H\$Ht$H|$UATAUAVAWHH@3HHMDH]9Yu9YuDL%eAA_LHu )_LHu I؉9^=H^LHu IIщ~8AID$HMAQDHD$ IL$ AHL$ AQHMDNj]IL$(AHL$ AQHMD ;AHM ID$0AQDHD$ AM|$8HMAQD L|$ AP ID$@HMAQDHD$ AQ ID$HHMAQDHD$ HMA ID$PD3HD$ HMA ID$QD3HD$ sHMAT ID$RD3HD$ S ID$SHMAUD3HD$ 3HM ID$TAVD3HD$ HMAW ID$UD3HD$ HMAR ID$VD3HD$ HMAS ID$WD3HD$ AHM ID$hAQDHD$ AHM ID$pAQDHD$ oAHM ID$xAQDHD$ MAHM I$AQDHD$ (APHM I$AQDHD$  AQI$HMAQDHD$ t InIIII3<0|<9 ,0H8u)<;uLA@AIuH·IM3H(HI $H(HHIL$H(HHIL$H(HHXIL$XH(HH`IL$`AMtAEH HtHHt uH(H L LL(3L\$@I[0Is8I{@IA_A^A]A\]H(38H 4H9t~u 6HH(HUH(7HH; t~u5HH@H(3@SH E3LHt HtMuD& H [D8tHHuHuEI+ABItHuHuE%"3H8HrH3HD$ E3LL $LL$LL$LL$LDIBIAu$ AIEAIBtIcHL$ H3ZH8HHXHhHpHx ATAUAVH 3MLx?t=IM>+HcLMK舲u KLIM y}u;~Hl$HHt$PH|$XËH\$@H A^A]A\@SH IHC$C H [H\$WH HHHtS9tNH&t>H &Hu!O$DHLD$0 lt-D$09HB/O$LD$0A ?u3D$0u)H\$8H _E3Hz%A@f; tDHA r3̊LE3'BI<w B<wAEFLЄuA3ҊHCtCtCucH [H3ҊHA|Z~aw@SH HH #S3H‰St*SH CucH [H3ҊHA|Z~awH\$Hl$VWATH0MHH-H@Hu KHF@H3HCHt8tLCH HcHti8tdHCHt8t HsH{H $Lú@trHCHt8t H1ZHPHKHt49t/Q3ɺHKH BCucCC C${HHHH#tZ?tUHHtBHHu%K$DHLD$P [;|$P;H-/K$LD$PA * |$PuK {HtC fEC$f}fEMf9Eu.L@IMt1Hd$ E3E333e ̋K A@Mĺt=K$MD$@A@t A I$EAZ3H\$XHl$`H0A\_^ffH+Ir"tf: u,HIuMIuMt: u HIuH3ÐIt7HH; u[HAH;D uLHAH;D u=HAH;D u.H IuIMItHH; uHIuIHHHH HHH;H8HeH3HD$ E3LL$L\$L\$L\$L!DIBIAuAAHuIEEu3HL$ H3iH8I@SUVWATAUAVHPH6eH3HD$HALL'3H9HH OAHHH&HHzHHHHdH˅HHHDHH|HHr$HLHiHt"H5HHcH<H3H*L+H;tbL;t]HH HЄLHt@8uH\$H|$DYAًLAp"ApE3ҺAst AASuAst AASu…iAdtfD:t;Aot5Aut/Axt)AXt#AdtD:tAotAut AxtAXukAdt D:tAotAutAxt AAXuAdt D:tAotAutAxt AXtA;t3MAI3r3 uA99,;uAAAA;tAҋ E3E:AAH\$H|$@SH B@It HzuA%Jx HHSu H [̅~LH\$Hl$Ht$WH II@LH@?tH\$0Hl$8Ht$@H _H\$Hl$Ht$WH A@@IIHt IxuA7~3MLHHŃ?u8*uLHֱ?H\$0Hl$8Ht$@H _HHH@H\$UVWATAUAVAWH$H` HEH3HX 3HHMLHUHL$`IM}D|$P|$D}蓚AAH}Hu+B/@8|$xt HL$pAOC@HbMHVA;t(t#LcL cIAHMkXM  LL @A@8u)A;ttHcHƒHHkXI B8t,@8|$x]HD$pLMtH]D߉D$L}Aum|$TME$$McËH}ED|$@}|$HD}ȉuLEEAMLM[AD$u AI%Ac" IcH @M HED\$TE3H]DD]A A@A;MvAc IcH @HD9-DD e~g~inopslu`x:'Ac/ IcH @MuHD9HHAt0HD]HD]QH A+fD9tHuH+HHHD)QH A+D8tIÅu+A|$HEAEAQQD$X0T$PD$YAEyuD ku I>I%Ac: IcH @MHH8uE3D$LA tfD$DA@A T$PAsHu MIAcIcH @MueHD9u ;KA sLtAc~IcH @Mu"HD9u HLA A@tQu MIAcIcH @MuHD9AHLu EIAcIcH @MtHDlA@t4u McIYAcIcH @MtHLc2u EI%AcYIcH @M@HDA@t MyIAAr A rEyA A;OD}IHH#ʉL$PA+Mt 3IIcHLB09~ALjI+D}H|$H+IۉD$TDt ;0I+D\$T0uEEĺHNE31LEH]y D$HIu AguAD\$H:;O|$H~)]Hc;"E3HEHtH؋D$HD9Uu IIHE AcIcH @HHHMH nMAHc[HL$`DHL$0MLƉL$(L$HHӉL$ HMAt|$HuH 8Mb[HT$`HAgu E3uH M>[HT$`HE3;-uAHHr#D$TAtD$X+|$PAtD$X |$PDeHuD+d$TD+A uLL$LLAԱ NLL$LHL$XLƋAtAuLL$LLAԱ0|$T39Et^~ZHDHP HMAHu&UЅtLELL$LHP uHuHuD$LLL$LLƋHD$LxAtLL$LLAԱ E3HMHt Le؋|$H|AItJAht;AltAwA A9lDT$@u MA AA AD <6uAy4u ID <3uAy2uIAIDHUA I耐HMLELIAA+LMMHH @H8DT$@|$H|$HDƄ*D Ač|HЉ|$HADT$HA*u AIHUA ȈHMLELIAA+LMMu\#9$AdDT$@A;DOHE3H @DT$@HD9 7EA*AHgHH @HDT$@MAىME AčLHЉMA tEA#t5A+t'A-tDT$@A0AAE AADUDT$DDUDT$PE|$HDUpMuA;tfM;ut\HT$`ADUNst(HULD$LAHED HHEEHULD$LAM|$HLMDT$@E!uD$LUEA3t A;D]uNEuILMcEx>HJtttt t tu]L2IIHM;~3D$LAD]A}LLeA|$xt HD$p*@8|$x@8|$xt HL$pHX H3H$ H` A_A^A]A\_^]H\$L$VWATH Hcu ;={s}HHHL%{HkXILtW%IDt+s%H Su T3ۅt% V& H\$PH A\_^H\$WH HcAHT$8$Hu HWT$8LD$EA IcEHTE+bDE;D}AHc DeXHAHHkXIƀd8Dd8HcHƒHHkXI Ƌƀd8D8@8}u @tHc HHHkXIƀL A#;AHMEEDEHMPH|$0D$(ALMD$ A=EHu59ELcIAHMkXIBd sHcHʃHHkXI H .E3E333H|$ *HĉPL@LH SWHHH`E3HAEuHD$pHD@DD$(D$ @DLHT$0HL$4D$8|$4t9t(Hc\$0HHHHkHkXH€d\$0\$0t #8oHH_[H\$WH@d$03H|$pHu3Htك|$xtAtDL$(DD$ DLHHL$0؉D$4|$0t,t!HcHHHkHkXH€drjH\$PH@_LECMK SH@d$(MKIC MKD\$0L$0EˋH@[H8ADL$`ELD$(HL$ DAIH8HHXHpHxL` UHH@HHHMIIwE3HuD8et HE3|HMD9auLHHNHu+M:D8et HE/HtAHHDL tWHuADLlD8'uACfHf f;Qr f;QwfQ$f;Qrf;QwfQDtDHAELtPHuA_HD8&uAQfAHfD AfD;Ar f;AwfA+f;Ar%f;AwfAADt Af;ufHD8et HMH\$PHt$XH|$`Ld$hH@]E3HHXHpHxL` UHH@E3IHHMu3HMIuL]E9cuLHHHu+n[D8et HEHtAHHFDt/HuAFDu^JD8'uA ff HHFDt%HuAHD8&uA ff Hf;u$ftHuD8eHED8et HMH\$PHt$XH|$`Ld$hH@]E3HT$L$USVWATAUAVAWHHXHcAE]uV38- 3;fHLL sIK HkXD1lv8_D>6HtDl18AEAADm`tu ШtL`ШtA;AB؋lLHuS hMH3DBgL LK L\0@K IA D0HL0 A:AK AAIVE`DD0 EtbK L09A:tQtM K AHE`DD09Au.K L0:A:tt K HE`ADD0:K LMDH 1H|$ <HcU܅|H;qLDK D05At A> uL0d0IcIMIHEL;A AE<A:t HIHEHL;sIE8 uI~LK LMHUXH 1AIH|$ <u A<uf9}taLK D0Ht}X tD#K EXD1 ;I;u }X u +MHAH2}X LctLXD#HL;m K D0@uL0 AEHDE+}`EHuHI;rHB8Vt BVuR*u;uHcH]K D0Ht;HÈL0 |K HÈD19uK HÈD1:HcH+MHAHcELmPA+DMƉD$(3ҹLl$ u:Du:;Ë]HJ @E|0HҺ t fA9uL0d0IcIMIHE`L;eA AEf.fA;tfHI HE`HL;sIEf9u ILK LMHUH 1AIH|$ f9u99}LK D0Ht; f9Ut@fD#EK D1 EK D19K T0:LI;u f9Uuf7MHHDBf Lf9Ut LfD#HL;m`"K D0@uL0 AEfHDE+]LmPM;tIqAD܋Y8u Amu뵋,38h UHXA_A^A]A\_^[]H\$Ht$L$WATAUAVAWH ALHcu:3ۉ 3ۅ;=v_LLIL=s_AMkXKBL tiAuW] KBD tDIՋz  zS @H\$XHt$`H A_A^A]A\_H(dHt g,tA@AH蟷ų̋+D#AD#D D+@UATAUAVAWHPHl$@H]@HuHH}PHH3HEHEDD`ME3E3AA35Hcu3~g3HBHHrXHL6Hw1HAH;w HHz{H+H\$@HtoHHtHHHtDLAA:5t9E`A3H|$8LAH|$0u |$(H|$ D$(L|$ 6HK9unHMH3fH]@HuHH}PHeA_A^A]A\]H\$Ht$WHPHHL$0IAjD$HL$0LDNjD\$ e|$Ht HL$@H\$`Ht$hHP_H(HuHH(LH :3H(H%3̹αH\$Ht$WH@HHL$ AAiHD$(DA|utHD$ H@BY#3t|$8t HL$0H\$PHt$XH@_H‹AHE3n̋AE33ZH‹AHE3B̋AE33.H‹AHE3̋AE33H‹AHA̋AA3H‹AHA̋AA3H‹AHA̋AA3gH‹AHAWK̋AAW33HAEAHA3EAH‹AHE3̋AE33H‹AHE3̋AE33H\$WH@HL$ HgL\$(Mt2A{u(AE3Hl|$8t#HL$0|$8t HD$03H\$PH@_3HHXHhHp WATAUAVAWH@LHHHEMfMtM.Mu*螴|$8t HD$03Et A|A$AuLD$ 3I]A ~LD$ @κLD$ I@@Ht@3H뾋$@-u@+u@3HEu&@0tA 6;xt ;XtA$AAu@0u;xt;Xu@sHM@Mc3HILL@EOAȃt @փ0At/F@<w A;sI;r%uI;vMu H@uMIE3pIHϋH@3HH@u%@uFŃtHH;w u,H;v'"@tH@$HHHMtI@tH߀|$8t HL$0HL\$@I[0Ik@IsHIA_A^A]A\_H83EL94D$ Hu H 3mH8H8d$ IELHHKH8H8=A4ELHD$ u H 3H8H8IELHHD$ H8@SH d$@LD$@HHu9D$@tHt L$@HH [LMt;E IAAwA  HAw It EtD;tD+A3HHXHpHxL` UHH@MHHMHMIScHu+ }t HEHtIwHExu!MHH)}tTHMGH+ 7HUHUHItt;t+؀}t HM3H\$PHt$XH|$`Ld$hH@]H(=U2u6Hu5"H(HtIwH(qE3H(H\$Ht$WH AMLҋHuؿįMtT$PHHHL;w 袿"AA";w3M…t A-MBKM3ҋ vW0AHItI;rI;rA@hAIAAAA IIM;r3H\$0Ht$8H _H8A uy D$ d$ H8H83A uyAAD$ H8H8d$ H8H\$Ht$WH AMLHHu胾oMtT$PHHHL;w M"ȍF";w3M…tA-MBKHM3HHH vW0AHIHtI;rI;rAdAIAAAA IIM;r3H\$0Ht$8H _H83A u HyAAD$ H8H8d$ H8HHXHhHpHx ATH0IcIDE~HIh HHcD$hH|$`~ HHL t tD$(DLƋAH|$ )+ظHHDH\$@Hl$HHt$PH|$XH0A\̋…tȀ9t Hu+ЍB@USVWATAUAVAWHhHl$0H H3HE(L3DEMULLeA~CIA+׃8t IDžuы+~)IA+8t Iׅu+;}3;|DEuIDpt;u WA;~AJA;~ ;HUA)t~)}r8]HEt8XtAM:r:HvH8~-}r8]HEt8XtA $:r :HsH8DMź AΉ\$(H\$ (LcI~f3HBIHrWKL?Hw0HAH;wIH7mH+Ld$0MA$waLHtILMDMźAD|$(Ld$ Y'LEDκ AΉ\$(H\$ 3'Lc~g3HBIHrXKL-Hw1HAH;w HHmlH+H|$0Ht{`HHtHHHtRLEDκADl$(H|$ &tUMEMDl$(H|$ &HO9u_IL$9u_HM(H3WHe8A_A^A]A\_^[]H\$Ht$WH`HHL$@IA[D$$HL$@D\$8D$0H$HD$($LDNj։D$ V|$Xt HL$PH\$pHt$xH`_H\$Ht$H|$UHH`HHHMIIZHu8]t HE3Hu(蒸}t HExHtHwHEPuLMLHH:@HMLΉD$8\$0AH|$(\$ u 넃}t HML\$`I[IsI{ I]̃=)uE3H\$Ht$H|$ ATAUAVH MMHLgHx0H|$H3Hu脷q9HhH MMHHA֋H׋HhH\$@Ht$PH|$XH A^A]A\MLHH CMLHH +MLHH (LHH E3LHH ˰E3LHH E3HHHd$0d$(AH HE3ɺ@DD$ -"HVHHH(H EHt Ht;#H(HHXHhHpHx ATAUAWH H33DG9LHtPDG3ҋ#Ht=HH+H #AWHE/#HHu1讵 裵H\$@Hl$HHt$PH|$XH A_A]A\ú^DDI;HEMNj_7t HH+H~i8u ? HAԋa"LH3"Uy]E3HՋ>HTAH HHHHu%ִ H!HE3IՋH3H\$Ht$ L$WATAUH HHcu葴 G ;=Hs~HLIL-HHkXKDL0tW3Hu> IKDD0tHӋ B ˳ 跣H\$HHt$XH A]A\_H(HcH(H\$Ht$WH HcAHug RDE3Hu* 3t oHHHGHHHkXdH\$0Ht$8H _H\$L$VWATAUAVH ADHcu Ȳ xs;=3GskHLIL54GHkXKLtEDKDtDAԋb w a 9 &H\$XH A^A]A\_^H\$LcHFMAIMkXJ BD8F\ADA@tXtHt(t uHBLJBd8BL80BLJBd8BL8BdBLJ Bd8EuA%@H\$H(@t'tt' 7-3H(H(Hu  -3H(H\$Ht$ L$WATAUH Hc@t0t(t tt菰u z }xi;=DsaHLIL-DHkXKDLt:KDDt Ӌ  q H\$PHt$XH A]A\_E3AHtfD9t HHH;r%%%% %"%$%&%(%*%,%.%0%2%4%6%8%:%<%>%@%B%D%F%H%J%L%N%P%R%T%V%X%Z%\%^%`%b%d%f%h%"%%%%%<%.% %%%%%%%%%%%%x%j%\%N%@%2%$%%%%%%%BH8Mхt+;tA;u"HD$xDL$pLD$hHT$`IHD$ ̋H8H\$WH H3HHW0LHt4HȊt&<"uH AIHÊutAH|S3H\$0H _HHXHpHx ATAUAVH0HHE3L!pANYu3L3HL$`atuL!t$ E3E333.̅uHL$`Ht3uH\$`5Ht3Ht"3H HH FHEHt HLHBL0 DHHLAHHuLd\A8$u9H%L;t_LAH҅tIHd$ E3E3339A<$/t,LIH蟅tHd$ E3E333Ht(LIHrtHd$ E3E333ٚHL$5 D95'B5n D5'Z Z  R +=v:HDQ3BMM+LA IYu3 3Ht8 t,Hd$ E3E333 Hd$ E3E333HL$`P3PHH\$PHt$XH|$hH0A^A]A\H\$Ht$WH03O3ۉ\$ ;RQ}\HcH.AH<tGHBt=[HAH AtHy(talj|$$H@H \똹H\$@Ht$HH0_H\$Ht$WH@HًHL$ I3KHu'跩褙@8|$8t HD$03~LD$(A9xuHh^@8|$8tbHL$0T BDt%HÊ t ;uH{Hu H;HDHÄu8L$8t HL$0HH\$PHt$XH@_E3@SH Hu ΘPuu譨'u!tt跨茨 3H [H(wH(@UH HAH ]@UH H&H ]@UH@HML}H@]@UH HHMPYH ]@UH HHM0YH ]@UH HHMHYH ]@UH HHM@iYH ]@UH HHMxOYH ]@UH Hꃽt gH ]@UH HHHыuNH ]@UH@H.H@]@UH HH ]@UH HH ]@UH HH ]@UH H H ]@UH H H ]@UH H H ]@UH H qH ]@UH H QH ]@UH H 6H ]@UH H H ]@UH H H ]@UH H H ]@UH H H ]@UH H H ]@UH H H ]@UH H eH ]@UH HHE`H ]@UH HH H ]@UH H H ]@UH H H ]@UH H H ]@UH H} u'HcUHHHHLA9HkXIdUHH ]@UH HHMH3VH ]@UH HTH ]@UH HHcM HH;H'L'\'l'x'''''''' ((2(D(Z(n(((*110'0000000z0j0T0D0*00///////x/`/8/*/'''&&&& 1&&&x&j&\&F&6& & &%"/:1/...+,,,4,N,l,|,,,,,,,---0-B-V-r------- .&.2.<.H.Z.h.v......+(((H*:*$***))))))))z)f)Z)F)2)")))((+++@@H@h@8?@K@@ܯObttCreateDirectory (%s)MapViewOfFile (%s)CreateFileMapping (%s)CreateFile (%s)inflateEnd returns %dinflate returns %dinflateInit2 returns %d1.2.5\message_boxdirectory_createdfile_createdget_root_hkeyget_special_folder_pathcreate_shortcutCSIDL_FONTSCSIDL_PROGRAMSCSIDL_COMMON_PROGRAMSCSIDL_STARTUPCSIDL_COMMON_STARTUPCSIDL_DESKTOPDIRECTORYCSIDL_COMMON_DESKTOPDIRECTORYCSIDL_APPDATACSIDL_STARTMENUCSIDL_COMMON_STARTMENULib\site-packages\DATAScripts\SCRIPTSHEADERSPLATLIBPURELIBInstallation failed.no such folder (%s)unknown CSIDL (%s)sSHGetSpecialFolderPathAfunction not availableshell32.dllFailed to create shortcut '%s' - error 0x%xSetWorkingDirectory() error 0x%xSetIconLocation() error 0x%xSetArguments() error 0x%xSetDescription() failed, error 0x%xSetPath() failed, error 0x%xQueryInterface(IPersistFile) error 0x%xCoCreateInstance failed, error 0x%xsss|sssiCoInitialize failed, error 0x%xissiSOFTWARE\Python\PythonCore\%d.%d\InstallPathPYTHONHOME=%sOSErrorValueErrorbuiltinsPyLong_FromVoidPtrPyErr_FormatPyArg_ParseTuplePy_BuildValuePyCFunction_NewPyObject_GetAttrStringPyObject_SetAttrStringPyImport_ImportModuleRunning Script...Could not open postinstall-script %s Py_FinalizePyRun_SimpleStringPySys_SetArgvPy_Initialize*** Could not load Python ***PyErr_PrintPy_SetProgramNameOut of memory!Running the pre-installation script failed Can't load Python for pre-install script (%d)Runtime Error100 Made Dir: %s .py200 File Copy: %s Error200 File Overwrite: %s Could not create temporary file~duInvalid cfgdata magic number (see bdist_wininst.py)Times RomanSetup %sCould not register window classSetup.exeSetupWindowClassThis Wizard will install %s on your computer. Click Next to continue or Cancel to exit the Setup Wizard.Software\Python\PythonCore\%s\InstallPathPython Version %s (found in registry)Software\Python\PythonCoreDon't know Python's installation typeStrangepython%d%d.dllPython Version %d.%dCannot installNo Python installation found in the registry.Python version %s required, which was not found in the registry.Python %s is required for this package. Select installation to use:UninstallString"%s\Remove%s.exe" -u "%s\%s-wininst.log"wb%s\Remove%s.exe040 Reg DB Value: [%s\%s]%s=%s Could not set key valueDisplayNamePython %d.%d %s020 Reg DB Key: [%s]%s Could not create key%s-py%d.%d999 Root Key: %s Source: %s *** Installation started %Y/%m/%d %H:%M *** a%s\%s-wininst.logCould not open keyYou do not seem to have sufficient access rights on this machine to install this softwareHKEY_CURRENT_USERHKEY_LOCAL_MACHINE*** Installation finished %Y/%m/%d %H:%M *** Postinstall script finished. Click the Finish button to exit the Setup wizard.*** run_installscript: internal error 0x%X *** 300 Run Script: [%s]%s \Scripts\Please wait while running postinstall script...-installIsUserAnAdminSetupFailed to start elevated process (ShellExecute returned %d)runasif exist "%s" goto Repeat del "%s" :Repeat w%s.batCould not delete keyCould not delete valueuninstall-script*** Could not run installation script ***-removeUninstall Finished!%d files and %d directories removed%d files and %d directories removed %d files or directories could not be removedYou do not seem to have sufficient access rights on this machine to uninstall this software%d Run Script: %s%d Reg DB Value: %s%d Reg DB Key: %s%d File Overwrite: %s%d File Copy: %s%d Made Dir: %s%d Root Key: %sAre you sure you want to remove this package from your computer?Please confirmOut of memorycould not open logfiler2. arg is not -u-uWrong number of args%s%cimport py_compile; py_compile.compile (r'%s')Py_OptimizeFlagPySys_GetObjectCompiling files to .pyo...Loading python...Compiling files to .pyc...Failed to unzip installation filesInstalling files...Running pre-installation scriptReady to installClick Next to begin the installation of %s. If you want to review or change any of your installation settings, click Back. Click Cancel to exit the wizard.Bad user_access_control valueoopsnoneautoforceuser_access_controlinstall_scriptnamemetadatatarget_versiontarget_optimizetarget_compilebuild_infoinfotitleSetup program invalid or damagedThis program is normally started by windowsRemoveCould not open archive0w,aQ mjp5c飕d2yҗ+L |~-d jHqA}mQDžӃVlkdzbeO\lcc=  n;^iLA`rqgjm Zjz  ' }Dңhi]Wbgeq6lknv+ӉZzJgo߹ホCՎ`~ѡ8ROggW?K6H+ L J6`zA`Ugn1yiFafo%6hRw G "/&U;( Z+j\1е,[d&c윣ju m ?6grWJz+{8 Ғ |! ӆBhn[&wowGZpj;f\ eibkaElx TN³9a&g`MGiIwn>JjѮZf @;7SŞϲG0򽽊º0S$6к)WTg#.zfJah]+o*7 Z-A1b62S-+ldEw}ZVǖAOIъ OM~-QJ#SpxAaU׮.7׵Y-6]]wll?AԞZ͢$ Faw$eڪ]]FD(koipvk19Z* ,  m86F߲]qTp0ek*1u4yީ%8S1bSWĔՖk1**ykʬHpo].*F6fcTT"eM©g0&):{ϼkZ> 8$,52F*sw1pHkQ6Fzw]cN̵J #pAF]#l8?1(BOgT~yUbL8^#ܖTZ1ObbSyOIV~P-{b-R4٠~^eGnHl/Su6: #jT$+e?yHf'*b#ٽЧ ?&~?$pi;FBzw[keZ~7 Sv8H 3?r$7jnԄYFܨ |OQ;օ U d S - =G\ p&Gw)` /a߫i5&LsZ<#0zMzFM8,9; :R:(q-v,.7/pXqYs3r%w+OQvrtEux܉~OK }!b|tyBxʠz{.lD~m8onlk[wjR1h58ib?mcf+aQ`צedd"fig HINSKyuJcO NZLݘMFGN@E$DD2AsX@*IBCPhTg3U>uW ַVS:R|P~Q9ZS [fYX4])\ZEo^m/_5qϱ٥s\ۼqދ!K7 kfֶԁ-b3Πjp]$^'~*I@VW<âM˟ŏ{ tDCm-@wm.B+(铜>Td"ŀǼϭ~8y$owJ1}05_K^ iϏ은BI#ƈdX܁T̓cQ: rՆ⩗ fn|xK)o%ƭ/3vUuA?)C:|sĵ@͂ Ͳ;bIUeh"׻_HS1޼^Z4eg Wb27_k%8ם(ŊO}do׸Jj3wVcXWP0qB{߭gCru&op-?'Bs ưGz>2[Ȏg; i8P/ _Y=чe:ZO?(3wwXR @hQ+ğH*0"ZOWoI}@mNП5+#*'G| AH=XX?#1jvʬ`p^Y<L~i/{kHwâ hs)aLoD~Pf7VM'(@ﰤ ہg9x+n&;f?/X)T`D1 ߨMߒ.FgTp'Hq/L0UEc?kǃh6ry7]P\@TN%s7@'>$!AxUʰ\3;Y^U~PGl!;b F2ȂpԞ(Q_V:1X: n3 m:@/)IJNv"2x+ٗ Kx.HҥfAj^y9*O]#kM`~b_R 7zFh!1߈Vc0a"j6nS Nr)Υ{t*F8#vufz`rs"WG9^EMvc΍&DAdQy/4Aڱ&S֚E biLQ<6'5P..T&q]w4.6IE? v\[YI>U!lDa>Ԫ΋ϩ7~8A]&nv|oY yKiw\¹9~$ 66nQfq>,o,IӔ 渱{I .H>C-Yn馑gQz tafw0a, Qmpjc5dۈ2yܸو L+~|-dj qHA}mԵQӅlVdkbze\Ocl=c ;n Li^`Agqr<KG k5Blۻ֬@2lE\u ϫ=Y&0Q:Qa!V#Ϻ(_ ٲ $/o|XhLaf-=vAq *q3xɢ4 j m=-dlc\kkQlabe0bNl{WeP|b-I|LeMaX:QΣtԻ0JߥA=ؕפmCij4ngF`D-s3 L_ |Pq<'A  Wh% of a^)ɘИ"רY=. \;l  tҚG9w&sc d; mj>zjZ '}DhibW]egl6qnkv+zZgJoC`֣ѓ~8ORѻgWg?H6K +گ L6JAz``ègU1nFiyaf%oҠRh6 w G"U&/ź; (+Z\j1,ٞ[ޮd°c&ujm 6?rgWJz{+ 8Ҏվ | !Bhݳڃn&[owGwZjpf; \ebiaklE x NT9§g&a`IiGM>nwۮjJZ@ f7;𩼮S޻G0齽ʺŠS0$6TW)#gfz.aJ]h*o+ 7 Z-1A26b+-Sdl}wEVZOAي»IˬO ~M-JQS#xpaA.U7Y-۩6˚w]]llA?Z$㧲F waރ$Ųe]]DFok(vpi91k *Z  ,8mF6]pTqke0*1¶u4%y<8syjHA}X*ݹ1SbSW§ٖծ1k**kypH]oF*.f6TTcMe"¤0g)&Ůޟ:{kZ >8,$5*F21wsHpQkzF6c]wN̵ׄJ# pȄA#]F8l1?(gOB~TUyLbˁ8#^TO1ZbbySIOP~V{-b-4R^~Ge­lHnuS/:6# $Tj?e+y䏼Hf*'˼Ѝb# &??~p$iBF;[wzek~ZS 7H8v ?3$rj7nFY |OQ; U dؓS - \G=&pGw`)/ ai5&sL <:R=Pe6^X7}o5641W0ճ2k3$k%'1&-[#bML"'{ "!$*x(+)`F(> q-q,v.Ț/7pqXsYr3w%vQO+tru՛E~xKO} |b!ytxBz{l.m~Do8nkljw[h1Ri85bcm?a+f`Qeddf"giH IKSNJuyOcN LZMݥFĚGE@ND$A2D@XsBI*CThPU3gWu>V SR:P|Q~Z9[ SYfX]4\)^oEZ_/m5qs<\kg2z &J8 좞V`a/6i\lU,zB\uHƒ=&FW A+Ox]`غ7W>9q߳!7Kk ֩fض-bѠ3pj$]^Ĝ'*~@IWVÕ<ӂMʏş{ Dt͆mC-@mw+B.(>dT"ş~Ϝ8yo$w1J}50K_ ^ϋiBۉI#dXфTQc:r Р fΫnx|)Ko%3/uUv?A)ġ:C|sд@͉ ;IbeU"hH_S1ފZ^ھ4ge ȋbW72%k_ܝ8Ŵ(}OodJֿjw3XcVPW0Bq{gǧurCo&p-?О'sB zGɠ2>[ ;g/P8i_ Y=嗇e:ϏOZw3(?RXw@ Qh+HZ"0*WOIo@}m5N#+'*GA |􏒨HX=#?X1vjʨ`^pYL'!$UxAׯ3\Y;U^GP~b;!lڇF 2p(ԐQV_:X1: 3n :m@I)/NJ2"v+x xKH.jAf^O*9y]#Mk~`bю_޶ Rz7hFм!10cV"ajحn6 SrN){t*8Fv#fu`zrϮsɛW"G9E^vMcD&dA/yQA4S&ֿ EbLil!>aDƋΪ~7A8n&]|vYoᡱ Kyi׫w¡\~9$66 Qnf>q,o,ӹI 散 I{.C>HnY-Qg̰t zfainvalid distance too far backinvalid distance codeinvalid literal/length code`Psp0  ` @ X ;x8 h( H T+t4  d$ D \ S|< l,  L R#r2  b" B Z Cz: j*  J V@3v6 f& F  ^ c~> n. N `Qq1  a! A Y ;y9 i)  I U+u5  e% E ] S}= m-  M S#s3  c# C [ C{; k+  K W@3w7 g' G  _ c? o/ O `Psp0  ` @ X ;x8 h( H T+t4  d$ D \ S|< l,  L R#r2  b" B Z Cz: j*  J V@3v6 f& F  ^ c~> n. N `Qq1  a! A Y ;y9 i)  I U+u5  e% E ] S}= m-  M S#s3  c# C [ C{; k+  K W@3w7 g' G  _ c? o/ O A@!  @a`10  @     incorrect length checkincorrect data checktoo many length or distance symbolsinvalid distances setinvalid literal/lengths setinvalid code -- missing end-of-blockinvalid bit length repeatinvalid code lengths setheader crc mismatchinvalid block typeinvalid stored block lengthsincorrect header checkinvalid window sizeunknown header flags setunknown compression method inflate 1.2.5 Copyright 1995-2010 Mark Adler  #+3;CScsI !1Aa  0@`@@incompatible versionbuffer errorinsufficient memorydata errorstream errorfile errorstream endneed dictionaryХ@@h@@@@x@h@P@h@fFK I*TK ITTK IO :i+00SBi+00@_dP/N !:i+00'":i+00 E%6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF΋!  Hx5i+.b`ODV A H FM^2mFT d_N" (2W]/4*&{-zeG'{-ph}OUBl OU3(9O> G e+.bchOU4^ ;ݧB}/NKfNr@"=3H$Oڠ'my4[ J1B&M[Or G:ᠷqEJ ǬMWs5i+.bs5i+.bs5i+.bw~s5i+.b%e{HqC,40L]0RO$[Dt.+*U6F:(Y;a-kQG^)|I)sO>+dWnO@;>V;>V Wt חb@J7<}iFϦODa'wj5Ob0wDObAGQ`{FL!mv`[c'wj5Obd'wj5Ob6J[CAVgqe'wj5Ob5i!Lz)zR88`[|^1/`[@L\J7@呰 חbu`ެ@`ެ.PRO—-T'tE`ެA`tpZdl?<W4plTI?rPB,ɨ=O${aPo0p,oiyŜ?Oɝa4Oص,OꙠς`RWpO6OyѦjc(=O0%G`묡51Mlg~6JNfsv]=D%Ocg3K@~Oq!2)wKL+2V4K@~OqT'B6Q:.7V`ƆEz5K@~OqiI~+.ͩ pO]_eOkm'WFAOлP0 P0 P0 M]`gI6FOEг]K $^5N$̈&HS3M17i;'$9Y:Oh7%9Y:Oh7&9Y:Oh7'9Y:Oh7ի|I˃(9Y:Oh7!FsGF{H@FS2IEt$#CȫR e.{ JOe/P($IZ^9$\E9 O奄`OO\;x8WFTpj zO1I( @wiKw^ևA)!\_[C+dWnO4DLe+.bSmb`ߌ #Or'>O.jxO^QmOd4'>Or3߷;`[MO KLb`wG:J'i>VMYFDAt;&OF} Ҩ\I;%S| *E yЎf|txM NI{@ >KJ\FЗ4mc-NvEc7VfCNItwׄ8A!ӱJ'8EK}4@ VqC(DW@XzvF@S>LNdL֬+ o.Eцݷ"JL :̿,LB)隇A }jL^6CTw]+.DJQS[bHNAFPCU .4zl'K@-tК#FlHiawhM0Y3S!AbostA^?UX2NfHyu 5ꥂG)]/qNnN9jI=W.I|Kg 4cH~%]bM I]7BWGCQl2$HܨEye64ۅ>eL:er='oOU{p OsCů$53QB`ϝ]v+qAO;ل.CZ0YcwN]ND.Q1RWHΨ}'CBg (#l^"`G3qs03NvFZ9\;û@Z|KJ$M>MEQ wmjKDWw? ec E kjO}c^NIe2mG)f\"gJ]lV`W0\"F-V pNr-O&oO}N8úGˢ)qKmHB" C[E|tKpȞ&Aõ*iG2 HNOiNㄫ9O'HKlqto%yL%4FxWObDcq# (O\iN`|\1IkLICN_3haO1FI&I}!<OGFVXia;B8n29֔hJuAtXJQ xd_w~8ƏWU]O Ɋ36(A#)V)F#Ϋ>%'GoGG+}.аvLX] p`OK #7 EC)t0ō*ƾ{,D Jև+DW^ Oor9tRNNgɆ>!OL'`g+$%|QOz)(B _@^A% xSDMt Nn 8Åm]rLwx,4Ku@ +׉#G`` WG 35A AlG ؂تI`FtQ<[MEĀd_NM&uf4L3lEZIC~"@0(9A8L"k1%B T #=E\\GNˇbR FHspSi)!@'QL.JiFFFFFF F F!FFFF&FF F FFk!Pi)?F0:s *Dw= F F F F F FFFFFPF%FQFFFF`k;Yi+-z1OY ȿ4<OV% X$5I?#3:O4j;Yi+-zj;Yi+-zi;Yi+-zv nr=F>F@FDF[Fʙ^AiXשFh Mm8gh z0Gd<O8m xO4yO"FFFMm8gh 0F1F2F3F%F)F*F0:s*Dw=IF y.Y+F&FEFGFHF:/ۆ/O:/ۆ/O:/ۆ/O:/ۆ/O:/ۆ/O:/ۆ/Oǝv\Wސy(_FFFFFFU 8r+C+n44FâRX0eu{ڮP9Vu{0ne0E Kvne yOܦϫ|x O jIOQnO09$-1.E^*onePone |~|?ne? PE^#1$-?W2$-?W2$-pw~?neg@ne˳j@ne˳j@ne?W2$-~{S^BEy|KDphKΔӳOհrIOC'zO{TxhO{lhO6ǀ_`\`OOrOh7y) Oh7BTyI6 E&jnLFB}sg'Dx+h\t<6M>?i]?9A!8ҏFs%E~2]r?jdN&6u^gO!B> 9}Nr*GݓkFN]ͷghhϓgAc*^Z%Ȕ2AeqKW';?B@ J$SQ`Ɔ(œO>1s-O(hHjxOi QD(ߥl+ rˆLmCBUa{Ӱ~C.`1 y/DĊY F;aAdƼ403bpc(Jg Дէ{E] E)ПS-oEH?syYz(y K@AXGA'qQU AJ s Y!WOZ{*lg(M2(TfC'>|a.  O;O.K[K8H]҇26 -&{-r: %wCjW'tVamy!@iaWBVm`ɠI-`:Bn5OC(K鞟^ﯘ=ѕK0:ښL%2J4{[kYs=BMQ!B\[/B{NsASÖ.̆I#t9JDf?kјH"tŻ-Gs?zZAe!`[ǽ6NXX$  KiiőԞ(LqmjK H(.~,-Y@o3\.Q Cpg{LKI s<_z\ LKo(t;sM|@)^vJYӞ~+IzÊChsxDpWJ?,CP0DOAoZ\q"tDk׾ TLrTIkE a`NNe76_I|kHrYM>s: .jxOˡd:aDX7iii9P5}+EutX(T6QB~ۜC]_#ͼ_Ld=xr|խhG2`?uIp4Bf6חKt3OtaG'"v0 SNwL1"(iv@ YGح+ObC4`[ԄLr?RJ{,AsEOWL"O7v8yOhKKt&1Zs~:6 B}Ftr⋪GMv2̤ pDʹfD.b[GvtH; zr\GڙYkH?FA&OA;,Ui6 IJ"x9J4ܵ;EfDװqmrE.1!YuY&HxHϣ'GVBeUNOخ|)IE@0lyדسDg,ݠeL3"5/QqCAwSk5 X;-3B{_41lxpOh6ǾƱLb VBPoz5zD #D@Fgm[M/BT|\?@zpDF[0 49Z I}AaB}KX䌠%D|DZ#`ڽWvGE>ςZ#@k{X8&oI Qd5CvSdn0@DH&'E4VwҁnB*O&-bfMlV!j hFXapf_:qJ?򥸿2cpF^W5}3ƔHjiOY<0G== 6eFpqFwHҶe_K#q}kdO-p;z5Og5е.Í}DwMm3sG%`4n.8E40PpZdFK6eJ7`, :i+00Fh3MnMܙS{5)xKt O3CKsw`$D&l;0MHֿRUBu(dT&arrCuƋ.|uU:WPHw[ێ Z܊M`* !sG3^F0MJSkyZ 8y M3,/KqI\M;TQ'CHCh4-6C$/`zLbeLWwR"!5C34a@Y?JTwZ8KMn錕Ra/pam/pmCorExitProcessmscoree.dll@a@a@TZSunMonTueWedThuFriSatJanFebMarAprMayJunJulAugSepOctNovDecHH:mm:ssdddd, MMMM dd, yyyyMM/dd/yyPMAMDecemberNovemberOctoberSeptemberAugustJulyJuneAprilMarchFebruaryJanuaryDecNovOctSepAugJulJunMayAprMarFebJanSaturdayFridayThursdayWednesdayTuesdayMondaySundaySatFriThuWedTueMonSunHH:mm:ssdddd, MMMM dd, yyyyMM/dd/yyPMAMDecemberNovemberOctoberSeptemberAugustJulyJuneAprilMarchFebruaryJanuaryDecNovOctSepAugJulJunMayAprMarFebJanSaturdayFridayThursdayWednesdayTuesdayMondaySundaySatFriThuWedTueMonSunLC_TIMELC_NUMERICLC_MONETARYLC_CTYPELC_COLLATELC_ALL@t @@M@H@@M@L@@M@@@M@h@@M@$@  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~_.,._;=C=;runtime error TLOSS error SING error DOMAIN error R6033 - Attempt to use MSIL code from this assembly during native code initialization This indicates a bug in your application. It is most likely the result of calling an MSIL-compiled (/clr) function from a native constructor or from DllMain. R6032 - not enough space for locale information R6031 - Attempt to initialize the CRT more than once. This indicates a bug in your application. R6030 - CRT not initialized R6028 - unable to initialize heap R6027 - not enough space for lowio initialization R6026 - not enough space for stdio initialization R6025 - pure virtual function call R6024 - not enough space for _onexit/atexit table R6019 - unable to open console device R6018 - unexpected heap error R6017 - unexpected multithread lock error R6016 - not enough space for thread data R6010 - abort() has been called R6009 - not enough space for environment R6008 - not enough space for arguments R6002 - floating point support not loaded @`@ @ @P@@@@@@@@@P@@@@ @!@x@y@zx@p@P@Microsoft Visual C++ Runtime Library ...<program name unknown>Runtime Error! Program: (null)(null)EEE50P( 8PX700WP `h````xpxxxxccsUTF-8UTF-16LEUNICODESystemFunction036ADVAPI32.DLL  ((((( H h(((( H H  !"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~united-statesunited-kingdomtrinidad & tobagosouth-koreasouth-africasouth koreasouth africaslovakpuerto-ricopr-chinapr chinanznew-zealandhong-konghollandgreat britainenglandczechchinabritainamericausausukswissswedish-finlandspanish-venezuelaspanish-uruguayspanish-puerto ricospanish-peruspanish-paraguayspanish-panamaspanish-nicaraguaspanish-modernspanish-mexicanspanish-hondurasspanish-guatemalaspanish-el salvadorspanish-ecuadorspanish-dominican republicspanish-costa ricaspanish-colombiaspanish-chilespanish-boliviaspanish-argentinaportuguese-braziliannorwegian-nynorsknorwegian-bokmalnorwegianitalian-swissirish-englishgerman-swissgerman-luxembourggerman-lichtensteingerman-austrianfrench-swissfrench-luxembourgfrench-canadianfrench-belgianenglish-usaenglish-usenglish-ukenglish-trinidad y tobagoenglish-south africaenglish-nzenglish-jamaicaenglish-ireenglish-caribbeanenglish-canenglish-belizeenglish-ausenglish-americandutch-belgianchinese-traditionalchinese-singaporechinese-simplifiedchinese-hongkongchinesechichhcanadianbelgianaustralianamerican-englishamerican englishamerican@ENU@ENUx@ENUh@ENA`@NLBP@ENCL@ZHHH@ZHI@@CHS(@ZHH@CHS@ZHI@CHT@NLB@ENU@ENA@ENL@ENCp@ENB`@ENIP@ENJ@@ENZ(@ENS@ENT@ENG@ENU@ENU@FRB@FRC@FRL@FRS@DEAh@DECP@DEL@@DES0@ENI @ITS@NOR@NOR@NON@PTB@ESS@ESB@ESLx@ESO`@ESC@@ESD0@ESF@ESE@ESG@ESH@ESM@ESN@ESI@ESA@ESZx@ESR`@ESUP@ESY8@ESV(@SVF@DES@ENG@ENU@ENU@USA@GBR@CHN@CZE@GBR@GBR@NLD@HKG@NZL@NZL@CHN@CHN@PRIx@SVKh@ZAFX@KORH@ZAF8@KOR @TTO@GBR@GBR@USA@USA  6 - OCPACPNorwegian-NynorskGetProcessWindowStationGetUserObjectInformationWGetLastActivePopupGetActiveWindowMessageBoxWUSER32.DLLEEE00P('8PW700PP (`h`hhhxppwppCONOUT$TMPRSDS# ,H0FHC:\python-dev\porting\cpython\lib\distutils\command\wininst-9.0-amd64.pdbdT42p dT4pT4 p0 4=4 p`PȑT42 p20  4 2pd T 4Rp 4, *pȑ@&4ZXPȑ+tZ4YV Pȑ 4 2 p`P' %# p`0Pȑ dT4p t d T 42+ T$4# p `ȑ 4 pȑP*p`ȑ d T 4 rp  4 Rp$ , p`P0ȑP p`P0ȑ4 #d#4# p Pȑ 4 pȑ@!0ȑ0& 44, p`PȑP  4 Rp204 "t1"d0"4/"*ȑ@3 "tY"dX"4W"RPȑ+ȑ@) t3d241.Pȑ`Bȑȑȑ&4dbPȑd T 4Rpd T 4Rp2020d 4 r p= ,t,d,4, PȑP' T9482 p `ȑ t d T 42BB&p`P0ȑ04$"P/ d T 4 pȑ0bt4t d4td T4B) t*d)4(&Pȑ  b p`P0dT42pd42 p t dT42  p`0P20dT42pd42 p d T 42p* 4 p`Pȑ20B  R0  rp0Pd42 p2020 td4rPbbbb  2020d42 p4 R p`P2P20x-|0M2Pd42 px-ߟKMrP, d4 p1tfM2PBp`0x-$MBBBBB20B2020p ` 0 P  bdT 4 pbdT 4 pbbbb  4 2p2P42 px-íͭM d T 4 2p2Ptd42x-ƯگMB tdT 4  tdT 4  dT4p  t4 t d T 4 R' E4C p`Pȑh# #t#d#4#Pbbb2Pt d 4 Rx-UwM|M20p0PBb  b  bbb  bBBBBr0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r0r020r020!! d 4T 2p!0!, , ԁtd40  Pd42 p2P  Rp`0x-M20202042 p  4 2pBB  4 2p2P d4rpx-N20202P  4 px-%NB  . d4 p Pȑ  4 2pBbd T 4Rpbbb202020rP p`0x-eCNeCNT 4 R p ` dT4p2PBx-L`^N2PBx-yN2P20x-NdT42pd42 pBBB t dT42BB2020202020d42 p20d42 pdT42p/ td4Pȑp2P  4 2px-"yNr04r p`Pȑ82P  t d 4Rx-NBd42 p202P20x-CYNB2P2P  4 2px-&0OEl O  4 2p202P2P42px-;O B[O2020d pP  20202P2P2 0x-< ` vO{  O2P2P  4 2px-0 9 OP W Obp`P0 t d T 4Rd 4R p dT 4 Rp&  p`P0ȑ0 4MB p`Pȑ$  p`P0ȑ t dT422P2P2P t d 4 Rx-0[O/ P L,PBB- dQTP4OJpȑ@B  4 2p20dT42pd42 p 4R p ` Pd42 pd42 p 4R p ` P2020 t dT42 t dT42 t dT42 d T 42pt d 4 rP d T 4 rptd42dT42pB2Ptd42x-?1}1GP  4 2p t dT42dT42pT42 pB2P  td42x-44eP2P2P td 4 rx-55P\56P2Pt d 4Rx-78P"  p`0Pȑh tT4d42 pt42   2020dT42pdT42p0 4dZ p`PȑB2P t d 42x-pK,LQbbbbbb2Pd 4R px-BMMQd42 p202P2P t d 4 Rx-NBO8QN[OhQ2P42 px-OOQd T42pd42 p20BBd42 p0 4ZP p`Pȑpd42 p20BBd42 p0 4ZP p`Pȑp  4 2p2P4 2 p `x-vwQ206 %4q%f p`Pȑ 2P4 2 p `x-aQr0r020202020t d 4 rPB T4 R p `2Pd 4R px-RrQdT 4 pdT 4 p td4PbbR0b t d T 4Rbbbd42 p Bx-юՎՎB Bx-B2Pd42 px-͏QBB2Pt d 4Rx-ǑْR2P d4 R px-iRdT42p$  p`P0ȑ d T 42p202P t d 42x-t8RB  4 2p  4 2p  4 2p2P Bx-PRBBdT42p  4 2pd T 4Rp t d T 42d 4 R p t d T 4 r  4 2p20d42 pd T 4Rpd T 4Rp2P20x-)4rRRP  t d 4Rx-xR*RRP  t d 4Rx-u R/R1 dT4pȑBBBB- Etd4C PȑHd4 p- 5td43r Pȑ0d4 p td 4 rP2 0T42 p  20 dT4rp2 0 td4rPBB20bȑ  t d T 4220  4 2p$d4 pȑd T42p$T4 pȑ 4 pȑ202020T 4 R p `bȑ  p`P0ȑH202020BdT 4 pBd 4R pT 4 R p t d T 4RdT42p td4Pd 4R pT 4 r p  4 2pd42 pB2PBp0x-RBBBBB4p ` Pbd 4  pd 4R p20dT42pdT42p0 4dZ p`Pȑ  t420dT42pdT42p0 4 p`PȑX 2P4 2 p `x-SR  4 2p2P4 2 p `x-S20  4 2p2P42 px-S td 4 P  b2P20x-6S  20t P$ $4$p`PRPp0x-QSRP  4 rpx-Sr 0b  t d 4 rP  t d 4 rP  p ` 0 P2P d 4 2px-*"+SB- Etd4C Pȑ@d 4  pBd 4 r p  4 rp dT4rpbbbb20  t d 4 rPBd42 pbbbd42 pbb t d T 4R$ 53 p`0PȑXd4 ptd4P2P t d 42x-!>G>TB t d T 422Pd 4 2px-AATBd42 p2P4 2 p `x- C;C4T4BB2Pd 4 2px-UE|EMTb  4 2pRP t d 4 Rx- JJfTJJfT2P2Pd 4R px-SK}KT"KKTd 4 r p20B %P`0!(`$T*Hd *h` +`$+8d%+ e:+*+n+^+L++*+*%%*****r*`**>'L'\'l'x'''''''' ((2(D(Z(n(((*110'0000000z0j0T0D0*00///////x/`/8/*/'''&&&& 1&&&x&j&\&F&6& & &%"/:1/...+,,,4,N,l,|,,,,,,,---0-B-V-r------- .&.2.<.H.Z.h.v......+(((H*:*$***))))))))z)f)Z)F)2)")))((+++PropertySheetACreatePropertySheetPageACOMCTL32.dllSetLastError|CreateDirectoryAGetFileAttributesAYMapViewOfFileCreateFileMappingARCloseHandlexSetFileTimeDosDateTimeToFileTimeGetLastErrorCreateFileAUnmapViewOfFile`lstrlenAiMultiByteToWideCharLGetProcAddress>LoadLibraryADeleteFileAReadFiletSetFilePointerGetFileSizehFreeLibrarySetStdHandlekGetStdHandleJLocalFreecFormatMessageAGetTempFileNameAGetTempPathAGetModuleHandleAGetVersionExAResumeThreadSetPriorityClassGetCurrentProcessGetCurrentThreadSetThreadPriorityCreateProcessAGetModuleFileNameARemoveDirectoryABGetPrivateProfileIntAHGetPrivateProfileStringAGetModuleFileNameWKERNEL32.dllMessageBoxA.GetFocus:wsprintfASetDlgItemTextA{SendMessageAiReleaseDC#GetDC6PeekMessageADispatchMessageATranslateMessageEndPaintGetSystemMetricsBeginPaintDefWindowProcAUpdateWindowShowWindowmCreateWindowExAORegisterClassALoadCursorAMoveWindowGetWindowRect9PostMessageAfGetParentvSendDlgItemMessageA)GetDlgItemSetCursorUSER32.dll6CreateDIBitmapDeleteObjectSetTextColorTextOutASetBkModewSelectObject<CreateFontATCreateSolidBrushGDI32.dlllRegQueryValueANRegEnumKeyExA0RegCloseKeymRegQueryValueExA`RegOpenKeyExA}RegSetValueExA8RegCreateKeyExA=RegDeleteKeyAGRegDeleteValueAADVAPI32.dllShellExecuteASHELL32.dllpCoUninitializeCoCreateInstanceBCoInitializeole32.dllGetSystemTimeAsFileTimeHeapFreeHeapAlloc+FileTimeToSystemTime*FileTimeToLocalFileTimeGetFileInformationByHandlePeekNamedPipeGetFileTypeEnterCriticalSection;LeaveCriticalSectionGetDateFormatAGetTimeFormatAHeapReAllocGetModuleHandleWExitProcessDecodePointerGetCommandLineAjGetStartupInfoWTerminateProcessUnhandledExceptionFilterSetUnhandledExceptionFilterIsDebuggerPresent&RtlVirtualUnwindRtlLookupFunctionEntryRtlCaptureContextEncodePointer WideCharToMultiByteGetTimeZoneInformationxGetCPInfonGetACP>GetOEMCP IsValidCodePageZFlsGetValue[FlsSetValueYFlsFreeGetCurrentThreadIdXFlsAllocHeapSetInformationGetVersionHeapCreateHeapDestroy4WriteFileeSetEnvironmentVariableWdSetEnvironmentVariableASleep%RtlUnwindExInitializeCriticalSectionAndSpinCountDeleteCriticalSection&FatalAppExitA|SetHandleCountGetConsoleCPGetConsoleMode;SetConsoleCtrlHandlerALoadLibraryW GetLocaleInfoWgFreeEnvironmentStringsWGetEnvironmentStringsWQueryPerformanceCounterGetTickCountGetCurrentProcessId/LCMapStringWpGetStringTypeWGetUserDefaultLCID GetLocaleInfoAEnumSystemLocalesAIsValidLocale]FlushFileBuffers3WriteConsoleWHeapSizedCompareStringWCreateFileWaSetEndOfFileQGetProcessHeapSoftware\Microsoft\Windows\CurrentVersion\Uninstall h@h@h@h@h@h@h@g@g@h@ h@g@h@g@h@h@h@g@g@h@g@ g@g@xg@`g@Hg@8g@ g@g@g@f@@f@@@f@@f@4N@f@xN@f@(@Software\Microsoft\Windows\CurrentVersion\Uninstall2-+] f@@pPSTPDTF@F@        ! 5A CPR S WY l m pr   )     abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZH@`y!@~ڣ @ڣ AϢ[@~QQ^ _j21~C@@@@@@@@@@@x@l@`@\@X@T@P@L@H@D@@@<@8@4@0@(@@ @@L@@@@@@@@@@@@x@ p@h@`@X@P@H@@@0@ @@@@@@@@@@@@@x@p@h@`@X@H@0@ @@@@@@@@@@|@t@`@8@ @M@M@M@M@M@U@@@@M@P@P@H@@ X@H@-@-@-@-@-@-@-@-@-@-@;Zx0Nm:Yw/Ml..U@U@xq@xq@xq@xq@xq@xq@xq@xq@xq@U@|q@|q@|q@|q@|q@|q@|q@@@.$ $Y4lXJh`p=|@&(o p # #$ $%<%'X'(|(%*(***c+d+,,<-<-..!0$00(01<13P3"4p$44|4"9$9G=H===2@4@t@t@AAeAhAA$BC4CDLDE`EFtFPF|PFbGdGKK-M0M4N4NvNxNNN-R0RS$SV4VWTWZ\Z&[d@[I^lL^a|a'b(bc0cgghh]iijj3 4$d,փ@Ph00ddǑȑϓГ ehŗȗi  BDwx$ݛ,040<hLhhƣȣ(508\8\y@|HPX`EhЧp ѨxԨrgh~&(]`ɬ̬z|np@/l0htp0  EH (08H:<]`9<'(  opS T(:0<8#@$HPX`shtp_x`KL.DY\{{}0j jwxK@LX78klW0 H*P4Xx14104oPpx  ;<kl"$N,P4<DL\1dht0080@Py`,,_`$ 1 , 4  4 P  D   L   d  l  x     & ( @, @ML Psp t p p  y |D L 0cX d` { t | 7$ T$$ $_% `%( (]) `)) )* ** *!+ $++, +h,H ,p-L x-u/` x//| /0 00 01 11 1|2 |2)3 ,33 3L4( L448 5$7x $78  8: := =3>(4>?8???H@??P??X?Z@l@JJ K KPLPLsLtLLLLLLLMM'M (MMMMNDPNNTNOlOOOeQhQQ R2R4RYR\RoR pRRR(c$(ccHccXc d`d#dh$dhdphduuvvSwTwww~~@[HtṔX́`$h`6p8~68ćЇȈWъ,Ԋ 4 z<|D܌L܌d-l0eth|ߎ%(EhH\ \pp-$0bXlppKTHH ( V4!H$ehhpx @HӥA Dܨ0ܨGLHEtHJLll$,+4,d<JDLlB|Dµĵ34"$hh , G4L<[D\Tpx<!$QT\,\HPX ``hh$|$ad!DFPNP7$84X)`,ShTupxx34!$OP E H4 H tY\?@u4Dvdl|y|NP!!# #C*,D*_+L`++|+--z-|---?.000230303R3T33 3333<4?5$@55<56D66T66\66d67l77|88888<<<<==k>>7? 8?Z?(\?@0@ATAAABBsCtCBDDDDDDDEGGG1H 4HK4KKKLLMM"M0MKM`KMfMfMMMMMMMM8MM@MNPN%N%NCNCN^N^NyNHyNNpNNNNNNNOXOO O;O;OVO[OvOvOO\ OOT OO OO OP  P'P ,PGP GPeP ePP0 PPp PPh PQ QQQ8Q8Q`QdhQQ\QQQQQQ QQQRRRR8RP8RNRPRrR@rRRDRRlRRRR,RSlSSS6S6SQS<QSSSSSTDTTT4TL4TMTMTfTfTT,TT|TTt(@pnklmn ( 8 H X hx  $ZZ(n, BBB999111)))cR[RABZRYRZRAB[R[RAB[RAAB[ && &&&@JQ1AA1ZQ1111ZQ1AAZ@JQ1AAZQ1AAJ eu eu @ABZ@J@G@F@F@G@AABX@J@AABX@J@J@AA1X@J@G@HRX@G@AAG@ZRX@AAG@JQJed%ed%ed@AA1ZQ1AA1X@J@HQ1AA1X@1A1ZQ1AA1ZQ1A1J  & & RAABZRABZR[R[RABZRYRBZRABZRBW@J@J &R[R[R[R[R[RABZR[R[R[ & & & & & & &@J@J@J@J@HQ1AA1X@J@J@J@J@J@J@G@J@G@JQJ@ABZQ11Z@J@AAG@J@G@GQ1J@AA1ZQ1YQ1[@J@AAG@J@G@1W@J&@I@G@J@J@J@J@G@J@G@Z@J@AA1X@J@HRABX@J@HQ1AA1X@J@J  &  %& & & &RAABZR[RZRAAABZR[R[RABZR[R[@H{SetupMS Sans SerifP} This Wizard will install %s on your computer. Click Next to continue or Cancel to exit the Setup Wizard.P}PhnP}@H{SetupMS Sans SerifP} Select python installation to use:PP}7Python Directory:P}jPhnPP}BInstallation Directory:@B2Find other ...@H{SetupMS Sans SerifP} Click Next to begin the installation. If you want to review or change any of your installation settings, click Back. Click Cancel to exit the Wizard.P}msctls_progress32Progress1P}Installation progress:PhnPA@H{SetupMS Sans SerifP} Click the Finish button to exit the Setup wizard.PhnP}( PAPADDINGXXPADDINGPK!+__pycache__/versionpredicate.cpython-34.pyonu[ i f @sdZddlZddlZddlZejdejZejdZejdZ ddZ iej d6ej d 6ej d 6ejd 6ejd 6ejd 6ZGdddZdaddZdS)zBModule for parsing and testing package version predicate strings. Nz'(?i)^\s*([a-z_]\w*(?:\.[a-z_]\w*)*)(.*)z^\s*\((.*)\)\s*$z%^\s*(<=|>=|<|>|!=|==)\s*([^\s,]+)\s*$cCsPtj|}|s(td|n|j\}}|tjj|fS)zVParse a single version comparison. Return (comparison string, StrictVersion) z"bad package restriction syntax: %r)re_splitComparisonmatch ValueErrorgroups distutilsversion StrictVersion)predrescompZverStrr ?/opt/alt/python34/lib64/python3.4/distutils/versionpredicate.pysplitUps rz>=z!=c@s:eZdZdZddZddZddZdS) VersionPredicateaParse and test package version predicates. >>> v = VersionPredicate('pyepat.abc (>1.0, <3333.3a1, !=1555.1b3)') The `name` attribute provides the full dotted name that is given:: >>> v.name 'pyepat.abc' The str() of a `VersionPredicate` provides a normalized human-readable version of the expression:: >>> print(v) pyepat.abc (> 1.0, < 3333.3a1, != 1555.1b3) The `satisfied_by()` method can be used to determine with a given version number is included in the set described by the version restrictions:: >>> v.satisfied_by('1.1') True >>> v.satisfied_by('1.4') True >>> v.satisfied_by('1.0') False >>> v.satisfied_by('4444.4') False >>> v.satisfied_by('1555.1b3') False `VersionPredicate` is flexible in accepting extra whitespace:: >>> v = VersionPredicate(' pat( == 0.1 ) ') >>> v.name 'pat' >>> v.satisfied_by('0.1') True >>> v.satisfied_by('0.2') False If any version numbers passed in do not conform to the restrictions of `StrictVersion`, a `ValueError` is raised:: >>> v = VersionPredicate('p1.p2.p3.p4(>=1.0, <=1.3a1, !=1.2zb3)') Traceback (most recent call last): ... ValueError: invalid version number '1.2zb3' It the module or package name given does not conform to what's allowed as a legal module or package name, `ValueError` is raised:: >>> v = VersionPredicate('foo-bar') Traceback (most recent call last): ... ValueError: expected parenthesized list: '-bar' >>> v = VersionPredicate('foo bar (12.21)') Traceback (most recent call last): ... ValueError: expected parenthesized list: 'bar (12.21)' cCs|j}|s!tdntj|}|sItd|n|j\|_}|j}|rtj|}|std|n|jd}dd|jdD|_|jstd|qn g|_d S) z*Parse a version predicate string. zempty package restrictionzbad package name in %rzexpected parenthesized list: %rrcSsg|]}t|qSr )r).0ZaPredr r r ts z-VersionPredicate.__init__..,zempty parenthesized list in %rN) striprre_validPackagerrnamere_parensplitr )selfZversionPredicateStrrZparenstrr r r __init__`s$   zVersionPredicate.__init__cCsF|jr;dd|jD}|jddj|dS|jSdS)NcSs*g|] \}}|dt|qS) )r)rcondverr r r r}s z,VersionPredicate.__str__..z (z, ))r rjoin)rseqr r r __str__{s zVersionPredicate.__str__cCs5x.|jD]#\}}t|||s dSq WdS)zTrue if version is compatible with all the predicates in self. The parameter version must be acceptable to the StrictVersion constructor. It may be either a string or StrictVersion. FT)r compmap)rrrrr r r satisfied_byszVersionPredicate.satisfied_byN)__name__ __module__ __qualname____doc__rr#r%r r r r rs ?  rcCstdkr$tjdtjan|j}tj|}|sXtd|n|jdpjd}|rtj j |}n|jd|fS)a9Return the name and optional version number of a provision. The version number, if given, will be returned as a `StrictVersion` instance, otherwise it will be `None`. >>> split_provision('mypkg') ('mypkg', None) >>> split_provision(' mypkg( 1.2 ) ') ('mypkg', StrictVersion ('1.2')) Nz=([a-zA-Z_]\w*(?:\.[a-zA-Z_]\w*)*)(?:\s*\(\s*([^)\s]+)\s*\))?$z"illegal provides specification: %r) _provision_rxrecompileASCIIrrrgrouprrr)valuemrr r r split_provisions  r3)r)r-Zdistutils.versionroperatorr.r/rrrrltleeqgtgener$rr,r3r r r r s      !!nPK!x==$__pycache__/ccompiler.cpython-34.pycnu[ i f@sdZddlZddlZddlZddlTddlmZddlmZddl m Z ddl m Z m Z ddlmZmZdd lmZGd d d Zd d fdd fddffZddddZidddfd 6dddfd6dddfd6dddfd6d d!d"fd#6Zd$d%Zdddddd&d'Zd(d)Zd*d+ZdS),zdistutils.ccompiler Contains CCompiler, an abstract base class that defines the interface for the Distutils compiler abstraction model.N)*)spawn) move_file)mkpath)newer_pairwise newer_group) split_quotedexecute)logc @seZdZdZdZdZdZdZdZdZ dZ dZ idd6dd6dd6dd6d d 6Z dd dgZ d d d d d ZddZddZddZddZdddZddZddZddZddZd d!Zd"d#Zd$d%Zd&d'Zd(d)Zd*d+Zd,d-Zd.d/Zd0d1Z d2d3Z!dd4d5Z"d6d7Z#d8d9Z$d:d;Z%d<d=Z&dddddd>d?Z'dddd dddd@dAZ(dBdCZ)dd ddDdEZ*dFZ+dGZ,dHZ-dddddd dddddIdJ Z.dddddd dddddKdL Z/dddddd dddddMdN Z0ddddd ddddOdPZ1dQdRZ2dSdTZ3dUdVZ4dddddWdXZ5d dYdZZ6d d[d\d]Z7d d[d^d_Z8d d[d`daZ9dbd d[dcddZ:dedfdgZ;dhdiZ<djdkZ=ddedldmZ>dndoZ?dpdqZ@drdsdtZAdS)u CCompileraAbstract base class to define the interface that must be implemented by real compiler classes. Also has some utility methods used by several compiler classes. The basic idea behind a compiler abstraction class is that each instance can be used for all the compile/link steps in building a single project. Thus, attributes common to all of those compile and link steps -- include directories, macros to define, libraries to link against, etc. -- are attributes of the compiler instance. To allow for variability in how individual files are treated, most of those attributes may be varied on a per-compilation or per-link basis. Ncz.czc++z.ccz.cppz.cxxZobjcz.mrcCs||_||_||_d|_g|_g|_g|_g|_g|_g|_ x.|j j D]}|j ||j |qjWdS)N) dry_runforceverbose output_dirmacros include_dirs libraries library_dirsruntime_library_dirsobjects executableskeysset_executable)selfrr rkeyr8/opt/alt/python34/lib64/python3.4/distutils/ccompiler.py__init__Us          zCCompiler.__init__cKsWxP|D]H}||jkr;td||jjfn|j|||qWdS)aDefine the executables (and options for them) that will be run to perform the various stages of compilation. The exact set of executables that may be specified here depends on the compiler class (via the 'executables' class attribute), but most will have: compiler the C/C++ compiler linker_so linker used to create shared objects and libraries linker_exe linker used to create binary executables archiver static library creator On platforms with a command-line (Unix, DOS/Windows), each of these is a string that will be split into executable name and (optional) list of arguments. (Splitting the string is done similarly to how Unix shells operate: words are delimited by spaces, but quotes and backslashes can override this. See 'distutils.util.split_quoted()'.) z$unknown executable '%s' for class %sN)r ValueError __class____name__r)rkwargsrrrrset_executablesys  zCCompiler.set_executablescCs<t|tr(t||t|nt|||dS)N) isinstancestrsetattrr)rrvaluerrrrszCCompiler.set_executablecCs<d}x/|jD]$}|d|kr*|S|d7}qWdS)Nr)r)rnameidefnrrr _find_macros zCCompiler._find_macrocCsx|D]x}t|toat|dkoat|dtsQ|ddkoat|dtstd|ddqqWdS) zEnsures that every element of 'definitions' is a valid macro definition, ie. either (name,value) 2-tuple or a (name,) tuple. Do nothing if all definitions are OK, raise TypeError otherwise. r(Nrzinvalid macro definition '%s': z.must be tuple (string,), (string, string), or z(string, None))r(r-)r$tuplelenr% TypeError)rZ definitionsr+rrr_check_macro_definitionss # z"CCompiler._check_macro_definitionscCsB|j|}|dk r(|j|=n|jj||fdS)a_Define a preprocessor macro for all compilations driven by this compiler object. The optional parameter 'value' should be a string; if it is not supplied, then the macro will be defined without an explicit value and the exact outcome depends on the compiler used (XXX true? does ANSI say anything about this?) N)r,rappend)rr)r'r*rrr define_macros   zCCompiler.define_macrocCsE|j|}|dk r(|j|=n|f}|jj|dS)aUndefine a preprocessor macro for all compilations driven by this compiler object. If the same macro is defined by 'define_macro()' and undefined by 'undefine_macro()' the last call takes precedence (including multiple redefinitions or undefinitions). If the macro is redefined/undefined on a per-compilation basis (ie. in the call to 'compile()'), then that takes precedence. N)r,rr2)rr)r*Zundefnrrrundefine_macros    zCCompiler.undefine_macrocCs|jj|dS)zAdd 'dir' to the list of directories that will be searched for header files. The compiler is instructed to search directories in the order in which they are supplied by successive calls to 'add_include_dir()'. N)rr2)rdirrrradd_include_dirszCCompiler.add_include_dircCs|dd|_dS)aySet the list of directories that will be searched to 'dirs' (a list of strings). Overrides any preceding calls to 'add_include_dir()'; subsequence calls to 'add_include_dir()' add to the list passed to 'set_include_dirs()'. This does not affect any list of standard include directories that the compiler may search by default. N)r)rdirsrrrset_include_dirsszCCompiler.set_include_dirscCs|jj|dS)aAdd 'libname' to the list of libraries that will be included in all links driven by this compiler object. Note that 'libname' should *not* be the name of a file containing a library, but the name of the library itself: the actual filename will be inferred by the linker, the compiler, or the compiler class (depending on the platform). The linker will be instructed to link against libraries in the order they were supplied to 'add_library()' and/or 'set_libraries()'. It is perfectly valid to duplicate library names; the linker will be instructed to link against libraries as many times as they are mentioned. N)rr2)rlibnamerrr add_libraryszCCompiler.add_librarycCs|dd|_dS)zSet the list of libraries to be included in all links driven by this compiler object to 'libnames' (a list of strings). This does not affect any standard system libraries that the linker may include by default. N)r)rZlibnamesrrr set_librariesszCCompiler.set_librariescCs|jj|dS)a'Add 'dir' to the list of directories that will be searched for libraries specified to 'add_library()' and 'set_libraries()'. The linker will be instructed to search for libraries in the order they are supplied to 'add_library_dir()' and/or 'set_library_dirs()'. N)rr2)rr5rrradd_library_dirszCCompiler.add_library_dircCs|dd|_dS)zSet the list of library search directories to 'dirs' (a list of strings). This does not affect any standard library search path that the linker may search by default. N)r)rr7rrrset_library_dirs szCCompiler.set_library_dirscCs|jj|dS)zlAdd 'dir' to the list of directories that will be searched for shared libraries at runtime. N)rr2)rr5rrradd_runtime_library_dirsz!CCompiler.add_runtime_library_dircCs|dd|_dS)zSet the list of directories to search for shared libraries at runtime to 'dirs' (a list of strings). This does not affect any standard search path that the runtime linker may search by default. N)r)rr7rrrset_runtime_library_dirssz"CCompiler.set_runtime_library_dirscCs|jj|dS)zAdd 'object' to the list of object files (or analogues, such as explicitly named library files or the output of "resource compilers") to be included in every link driven by this compiler object. N)rr2)robjectrrradd_link_object szCCompiler.add_link_objectcCs|dd|_dS)zSet the list of object files (or analogues) to be included in every link to 'objects'. This does not affect any standard object files that the linker may include by default (such as system libraries). N)r)rrrrrset_link_objects(szCCompiler.set_link_objectscCs|dkr|j}nt|ts6tdn|dkrN|j}n1t|trs||jplg}n td|dkr|j}n=t|ttfrt||jpg}n td|dkrg}n|j|ddd|}t |t |ks"t t ||}i} xmt t |D]Y} || } || } t jj| d} |jt jj| | | f| | 'runtime_library_dirs' (if supplied) must be a list of strings)rr$rDr.r0rr)rrrrrrr _fix_lib_argss&          zCCompiler._fix_lib_argscCsE|jr dS|jr.t||dd}nt||}|SdS)zjReturn true if we need to relink the files listed in 'objects' to recreate 'output_file'. TZmissingnewerN)rr r)rr output_filer\rrr _need_links   zCCompiler._need_linkc Cst|ts|g}nd}t|j}x~|D]v}tjj|\}}|jj|}y1|jj |}||kr|}|}nWq7t k rYq7Xq7W|S)z|Detect the language of a given file, or list of files. Uses language_map, and language_order to do the job. N) r$rDr/language_orderrIrJrK language_mapgetindexr) rrMZlangrbsourcebaserSZextlangZextindexrrrdetect_languages      zCCompiler.detect_languagecCsdS)aPreprocess a single C/C++ source file, named in 'source'. Output will be written to file named 'output_file', or stdout if 'output_file' not supplied. 'macros' is a list of macro definitions as for 'compile()', which will augment the macros set with 'define_macro()' and 'undefine_macro()'. 'include_dirs' is a list of directory names that will be added to the default list. Raises PreprocessError on failure. Nr)rrcr]rr extra_preargsextra_postargsrrr preprocesss zCCompiler.preprocessc Cs|j||||||\}} }} } |j| ||} xV| D]N} y| | \}}Wntk rzwIYnX|j| ||| || qIW| S)aK Compile one or more source files. 'sources' must be a list of filenames, most likely C/C++ files, but in reality anything that can be handled by a particular compiler and compiler class (eg. MSVCCompiler can handle resource files in 'sources'). Return a list of object filenames, one per source filename in 'sources'. Depending on the implementation, not all source files will necessarily be compiled, but all corresponding object filenames will be returned. If 'output_dir' is given, object files will be put under it, while retaining their original path component. That is, "foo/bar.c" normally compiles to "foo/bar.o" (for a Unix implementation); if 'output_dir' is "build", then it would compile to "build/foo/bar.o". 'macros', if given, must be a list of macro definitions. A macro definition is either a (name, value) 2-tuple or a (name,) 1-tuple. The former defines a macro; if the value is None, the macro is defined without an explicit value. The 1-tuple case undefines a macro. Later definitions/redefinitions/ undefinitions take precedence. 'include_dirs', if given, must be a list of strings, the directories to add to the default include file search path for this compilation only. 'debug' is a boolean; if true, the compiler will be instructed to output debug symbols in (or alongside) the object file(s). 'extra_preargs' and 'extra_postargs' are implementation- dependent. On platforms that have the notion of a command-line (e.g. Unix, DOS/Windows), they are most likely lists of strings: extra command-line arguments to prepand/append to the compiler command line. On other platforms, consult the implementation class documentation. In any event, they are intended as an escape hatch for those occasions when the abstract compiler framework doesn't cut the mustard. 'depends', if given, is a list of filenames that all targets depend on. If a source file is older than any file in depends, then the source file will be recompiled. This supports dependency tracking, but only at a coarse granularity. Raises CompileError on failure. )rTrWKeyError_compile)rrMrrrrUrfrgrNrrOrPrVrRrQrSrrrcompiles6   zCCompiler.compilecCsdS)zCompile 'src' to product 'obj'.Nr)rrRrQrSrVrgrOrrrrjCszCCompiler._compilecCsdS)a&Link a bunch of stuff together to create a static library file. The "bunch of stuff" consists of the list of object files supplied as 'objects', the extra object files supplied to 'add_link_object()' and/or 'set_link_objects()', the libraries supplied to 'add_library()' and/or 'set_libraries()', and the libraries supplied as 'libraries' (if any). 'output_libname' should be a library name, not a filename; the filename will be inferred from the library name. 'output_dir' is the directory where the library file will be put. 'debug' is a boolean; if true, debugging information will be included in the library (note that on most platforms, it is the compile step where this matters: the 'debug' flag is included here just for consistency). 'target_lang' is the target language for which the given objects are being compiled. This allows specific linkage time treatment of certain languages. Raises LibError on failure. Nr)rroutput_libnamerrU target_langrrrcreate_static_libIszCCompiler.create_static_libZ shared_objectZshared_library executablecCs tdS)auLink a bunch of stuff together to create an executable or shared library file. The "bunch of stuff" consists of the list of object files supplied as 'objects'. 'output_filename' should be a filename. If 'output_dir' is supplied, 'output_filename' is relative to it (i.e. 'output_filename' can provide directory components if needed). 'libraries' is a list of libraries to link against. These are library names, not filenames, since they're translated into filenames in a platform-specific way (eg. "foo" becomes "libfoo.a" on Unix and "foo.lib" on DOS/Windows). However, they can include a directory component, which means the linker will look in that specific directory rather than searching all the normal locations. 'library_dirs', if supplied, should be a list of directories to search for libraries that were specified as bare library names (ie. no directory component). These are on top of the system default and those supplied to 'add_library_dir()' and/or 'set_library_dirs()'. 'runtime_library_dirs' is a list of directories that will be embedded into the shared library and used to search for other shared libraries that *it* depends on at run-time. (This may only be relevant on Unix.) 'export_symbols' is a list of symbols that the shared library will export. (This appears to be relevant only on Windows.) 'debug' is as for 'compile()' and 'create_static_lib()', with the slight distinction that it actually matters on most platforms (as opposed to 'create_static_lib()', which includes a 'debug' flag mostly for form's sake). 'extra_preargs' and 'extra_postargs' are as for 'compile()' (except of course that they supply command-line arguments for the particular linker being used). 'target_lang' is the target language for which the given objects are being compiled. This allows specific linkage time treatment of certain languages. Raises LinkError on failure. N)NotImplementedError)rZ target_descroutput_filenamerrrrexport_symbolsrUrfrg build_temprmrrrlinkis9zCCompiler.linkc CsG|jtj||j|dd||||||| | | | dS)Nlib_typeshared)rtr SHARED_LIBRARYlibrary_filename) rrrlrrrrrrrUrfrgrsrmrrrlink_shared_libs  zCCompiler.link_shared_libc Cs8|jtj||||||||| | | | dS)N)rtr SHARED_OBJECT) rrrqrrrrrrrUrfrgrsrmrrrlink_shared_objects  zCCompiler.link_shared_objectc CsA|jtj||j|||||d||| d| dS)N)rtr EXECUTABLEexecutable_filename) rrZoutput_prognamerrrrrUrfrgrmrrrlink_executables  zCCompiler.link_executablecCs tdS)zkReturn the compiler option to add 'dir' to the list of directories searched for libraries. N)rp)rr5rrrlibrary_dir_optionszCCompiler.library_dir_optioncCs tdS)zsReturn the compiler option to add 'dir' to the list of directories searched for runtime libraries. N)rp)rr5rrrruntime_library_dir_optionsz$CCompiler.runtime_library_dir_optioncCs tdS)zReturn the compiler option to add 'lib' to the list of libraries linked into the shared library or executable. N)rp)rlibrrrlibrary_optionszCCompiler.library_optionc CsMddl}|dkr!g}n|dkr6g}n|dkrKg}n|dkr`g}n|jd|dd\}}tj|d} z7x|D]} | jd| qW| jd|Wd| jXy|j|gd |} Wntk r d SYnXy |j| d d |d |Wnt t fk rHd SYnXdS)zReturn a boolean indicating whether funcname is supported on the current platform. The optional arguments can be used to augment the compilation environment. rNz.ctextTwz#include "%s" z+main (int argc, char **argv) { %s(); } rFza.outrr) tempfileZmkstemprIfdopenwritecloserkZ CompileErrorr~Z LinkErrorr0) rZfuncnameZincludesrrrrfdZfnamefZinclrrrr has_functions8               zCCompiler.has_functioncCs tdS)aHSearch the specified list of directories for a static or shared library file 'lib' and return the full path to that file. If 'debug' true, look for a debugging version (if that makes sense on the current platform). Return None if 'lib' wasn't found in any of the specified directories. N)rp)rr7rrUrrrfind_library_file#szCCompiler.find_library_filecCs|dkrd}ng}x|D]}tjj|\}}tjj|d}|tjj|d}||jkrtd||fn|rtjj|}n|jtjj |||j q"W|S)Nrr(z"unknown file type '%s' (from '%s')) rIrJrK splitdriveisabssrc_extensionsZUnknownFileErrorbasenamer2join obj_extension)rZsource_filenamesrCrZ obj_namesZsrc_namerdrSrrrrENs   zCCompiler.object_filenamescCsG|dk st|r-tjj|}ntjj|||jS)N)rFrIrJrrshared_lib_extension)rrrCrrrrshared_object_filename_sz CCompiler.shared_object_filenamecCsM|dk st|r-tjj|}ntjj|||jpHdS)Nr)rFrIrJrr exe_extension)rrrCrrrrr}eszCCompiler.executable_filenamestaticc Cs|dk st|dkr-tdnt||d}t||d}tjj|\}}|||f} |rd}ntjj||| S) Nrrvdylibz0'lib_type' must be "static", "shared" or "dylib"Z _lib_formatZ_lib_extensionr)rzsharedr)rFrgetattrrIrJsplitr) rr9rurCrZfmtrSr5rdfilenamerrrrxks   zCCompiler.library_filenamer(cCstj|dS)N)r rU)rmsglevelrrrannounce~szCCompiler.announcecCs'ddlm}|r#t|ndS)Nr)DEBUG)Zdistutils.debugrprint)rrrrrr debug_printszCCompiler.debug_printcCstjjd|dS)Nz warning: %s )sysstderrr)rrrrrwarnszCCompiler.warncCst||||jdS)N)r r )rfuncargsrrrrrr szCCompiler.executecCst|d|jdS)Nr )rr )rcmdrrrrszCCompiler.spawncCst||d|jS)Nr )rr )rrQZdstrrrrszCCompiler.move_fileicCst||d|jdS)Nr )rr )rr)moderrrrszCCompiler.mkpath)Br! __module__ __qualname____doc__Z compiler_typerrZstatic_lib_extensionrZstatic_lib_formatZshared_lib_formatrr`r_rr#rr,r1r3r4r6r8r:r;r<r=r>r?rArBrTrWrXrYrZr[r^rerhrkrjrnrzrwr|rtryr{r~rrrrrrErr}rxrrrr rrrrrrrr s    $              +   "   B 4     *+    r zcygwin.*unixposixntZmsvccCs|dkrtj}n|dkr0tj}nxHtD]@\}}tj||dk sstj||dk r7|Sq7WdS)akDetermine the default compiler to use for the given platform. osname should be one of the standard Python OS names (i.e. the ones returned by os.name) and platform the common value returned by sys.platform for the platform in question. The default values are os.name and sys.platform in case the parameters are not given. Nr)rIr)rplatform_default_compilersrematch)osnamerpatterncompilerrrrget_default_compilers    rZ unixccompilerZ UnixCCompilerzstandard UNIX-style compilerZ msvccompilerZ MSVCCompilerzMicrosoft Visual C++ZcygwinccompilerZCygwinCCompilerz'Cygwin port of GNU C Compiler for Win32cygwinZMingw32CCompilerz(Mingw32 port of GNU C Compiler for Win32Zmingw32Z bcppcompilerZ BCPPCompilerzBorland C++ CompilerZbcppcCsvddlm}g}x6tjD](}|jd|dt|dfq#W|j||}|jddS)zyPrint list of available compilers (used by the "--help-compiler" options to "build", "build_ext", "build_clib"). r) FancyGetoptz compiler=Nr-zList of available compilers:)Zdistutils.fancy_getoptrcompiler_classrr2sortZ print_help)rZ compilersrZpretty_printerrrrshow_compilerss  rc Cs#|dkrtj}ny2|dkr6t|}nt|\}}}WnEtk rd|}|dk r|d|}nt|YnXy5d|}t|tj|} t | |} WnIt k rt d|Yn(tk rt d||fYnX| d||S)a[Generate an instance of some CCompiler subclass for the supplied platform/compiler combination. 'plat' defaults to 'os.name' (eg. 'posix', 'nt'), and 'compiler' defaults to the default compiler for that platform. Currently only 'posix' and 'nt' are supported, and the default compilers are "traditional Unix interface" (UnixCCompiler class) and Visual C++ (MSVCCompiler class). Note that it's perfectly possible to ask for a Unix compiler object under Windows, and a Microsoft compiler object under Unix -- if you supply a value for 'compiler', 'plat' is ignored. Nz5don't know how to compile C/C++ code on platform '%s'z with '%s' compilerz distutils.z4can't compile C/C++ code: unable to load module '%s'zBcan't compile C/C++ code: unable to find class '%s' in module '%s') rIr)rrriZDistutilsPlatformError __import__rmodulesvars ImportErrorZDistutilsModuleError) Zplatrrr rZ module_nameZ class_nameZlong_descriptionrmoduleklassrrr new_compilers2           rcCsg}x|D]}t|toAdt|ko?dknsWtd|nt|dkr|jd|dq t|dkr |ddkr|jd|dq|jd|q q Wx|D]}|jd |qW|S) aGenerate C pre-processor options (-D, -U, -I) as used by at least two types of compilers: the typical Unix compiler and Visual C++. 'macros' is the usual thing, a list of 1- or 2-tuples, where (name,) means undefine (-U) macro 'name', and (name,value) means define (-D) macro 'name' to 'value'. 'include_dirs' is just a list of directory names to be added to the header file search path (-I). Returns a list of command-line options suitable for either Unix compilers or Visual C++. r(r-zPbad macro definition '%s': each element of 'macros' list must be a 1- or 2-tuplez-U%srNz-D%sz-D%s=%sz-I%s)r$r.r/r0r2)rrrOZmacror5rrrrG s 1  rGc Csg}x$|D]}|j|j|q WxF|D]>}|j|}t|tre||}q4|j|q4Wx|D]y}tjj|\}} |r|j|g| } | r|j| q|j d|q}|j|j |q}W|S)acGenerate linker options for searching library directories and linking with specific libraries. 'libraries' and 'library_dirs' are, respectively, lists of library names (not filenames!) and search directories. Returns a list of command-line options suitable for use with some compiler (depending on the two format strings passed in). z6no library file corresponding to '%s' found (skipping)) r2rrr$rDrIrJrrrr) rrrrZlib_optsr5ZoptrZlib_dirZlib_nameZlib_filerrrgen_lib_options7s$      r)rrrIrZdistutils.errorsZdistutils.spawnrZdistutils.file_utilrZdistutils.dir_utilrZdistutils.dep_utilrrZdistutils.utilrr Z distutilsr r rrrrrrGrrrrrs<$          - -PK!''#__pycache__/filelist.cpython-34.pyonu[ i f1@sdZddlZddlZddlZddlmZddlmZmZddl m Z GdddZ ej dd Z d d Zd ddd dZdS)zsdistutils.filelist Provides the FileList class, used for poking about the filesystem and building lists of files. N) convert_path)DistutilsTemplateErrorDistutilsInternalError)logc@seZdZdZddddZddZejddZd d Z d d Z d dZ ddZ ddZ ddZddZdddddZdddddZdS)FileListaA list of files built by on exploring the filesystem and filtered by applying various patterns to what we find there. Instance attributes: dir directory from which files will be taken -- only used if 'allfiles' not supplied to constructor files list of filenames currently being built/filtered/manipulated allfiles complete list of files under consideration (ie. without any filtering applied) NcCsd|_g|_dS)N)allfilesfiles)selfwarn debug_printr 7/opt/alt/python34/lib64/python3.4/distutils/filelist.py__init__s zFileList.__init__cCs ||_dS)N)r)r rr r r set_allfiles"szFileList.set_allfilescCst||_dS)N)findallr)r dirr r r r%szFileList.findallcCs'ddlm}|r#t|ndS)z~Print 'msg' to stdout if the global DEBUG (taken from the DISTUTILS_DEBUG environment variable) flag is true. r)DEBUGN)Zdistutils.debugrprint)r msgrr r r r (szFileList.debug_printcCs|jj|dS)N)rappend)r itemr r r r2szFileList.appendcCs|jj|dS)N)rextend)r itemsr r r r5szFileList.extendcCsXtttjj|j}g|_x*|D]"}|jjtjj|q.WdS)N)sortedmapospathsplitrrjoin)r Zsortable_filesZ sort_tupler r r sort8s  z FileList.sortcCsYxRtt|jdddD]1}|j||j|dkr |j|=q q WdS)Nr)rangelenr)r ir r r remove_duplicatesBs&zFileList.remove_duplicatescCs:|j}|d}d}}}|dkrut|dkrUtd|ndd |d dD}n|dkrt|d krtd|nt|d }dd |ddD}nT|dkrt|dkrtd|nt|d }ntd|||||fS)Nrincludeexcludeglobal-includeglobal-excludez&'%s' expects ...cSsg|]}t|qSr )r).0wr r r Vs z1FileList._parse_template_line..r recursive-includerecursive-excludez,'%s' expects

...cSsg|]}t|qSr )r)r+r,r r r r-\s graftprunez#'%s' expects a single zunknown action '%s')zincluder'r(r))r.r/)r1r2)rr#rr)r lineZwordsactionpatternsr dir_patternr r r _parse_template_lineKs,       zFileList._parse_template_linecCs|j|\}}}}|dkr}|jddj|x|D].}|j|ddsHtjd|qHqHWn|dkr|jddj|xs|D].}|j|ddstjd |qqWn:|d krA|jd dj|x|D].}|j|dd s tjd |q q Wn|dkr|jddj|x|D].}|j|dd sntjd|qnqnWnv|dkr|jd|dj|fxG|D]1}|j|d|stjd||qqWn |dkry|jd|dj|fx|D]1}|j|d|sAtjd||qAqAWn|dkr|jd||jdd|stjd|qnX|dkr |jd||jdd|stjd|qntd|dS)Nr&zinclude  anchorr z%warning: no files found matching '%s'r'zexclude z9warning: no previously-included files found matching '%s'zglobal-includezglobal-include rz>warning: no files found matching '%s' anywhere in distributionzglobal-excludezglobal-exclude zRwarning: no previously-included files matching '%s' found anywhere in distributionzrecursive-includezrecursive-include %s %sprefixz:warning: no files found matching '%s' under directory '%s'zrecursive-excludezrecursive-exclude %s %szNwarning: no previously-included files matching '%s' found under directory '%s'r1zgraft z+warning: no directories found matching '%s'r2zprune z6no previously-included directories found matching '%s'z'this cannot happen: invalid action '%s')r7r rinclude_patternrr exclude_patternr)r r3r4r5rr6patternr r r process_template_linegsf                          zFileList.process_template_liner rcCsd}t||||}|jd|j|jdkrK|jnxJ|jD]?}|j|rU|jd||jj|d}qUqUW|S)aSelect strings (presumably filenames) from 'self.files' that match 'pattern', a Unix-style wildcard (glob) pattern. Patterns are not quite the same as implemented by the 'fnmatch' module: '*' and '?' match non-special characters, where "special" is platform- dependent: slash on Unix; colon, slash, and backslash on DOS/Windows; and colon on Mac OS. If 'anchor' is true (the default), then the pattern match is more stringent: "*.py" will match "foo.py" but not "foo/bar.py". If 'anchor' is false, both of these will match. If 'prefix' is supplied, then only filenames starting with 'prefix' (itself a pattern) and ending with 'pattern', with anything in between them, will match. 'anchor' is ignored in this case. If 'is_regex' is true, 'anchor' and 'prefix' are ignored, and 'pattern' is assumed to be either a string containing a regex or a regex object -- no translation is done, the regex is just compiled and used as-is. Selected strings will be added to self.files. Return True if files are found, False otherwise. Fz%include_pattern: applying regex r'%s'Nz adding T)translate_patternr r=rrsearchrr)r r=r9r:is_regex files_found pattern_renamer r r r;s    zFileList.include_patterncCsd}t||||}|jd|jxhtt|jdddD]G}|j|j|rO|jd|j||j|=d}qOqOW|S)aRemove strings (presumably filenames) from 'files' that match 'pattern'. Other parameters are the same as for 'include_pattern()', above. The list 'self.files' is modified in place. Return True if files are found, False otherwise. Fz%exclude_pattern: applying regex r'%s'r z removing Tr!r!)r?r r=r"r#rr@)r r=r9r:rArBrCr$r r r r<s  &  zFileList.exclude_pattern)__name__ __module__ __qualname____doc__rrrcurdirrr rrrr%r7r>r;r<r r r r r s      L,rcCsddlm}m}m}m}g}|g}|j}|j}x|r|}tj|} x| D]} |tj krtj j || } n| } tj| } | |} || r|j| qk|| rk||  rk|| qkqkWqFW|S)z^Find all files under 'dir' and return the list of full filenames (relative to 'dir'). r)ST_MODES_ISREGS_ISDIRS_ISLNK) statrJrKrLrMpoprrlistdirrIrr)rrJrKrLrMliststackrOpushnamesrDfullnamerNmoder r r rs&"        rcCsStj|}tj}tjdkr0d}nd|}tjd||}|S)zTranslate a shell-like glob pattern to a regular expression; return a string containing the regex. Differs from 'fnmatch.translate()' in that '*' does not match "special characters" (which are platform-specific). \z\\\\z\1[^%s]z((?t|}nd}|dk rtd}t|dt| }tj}tjdkrd}nd|j|d|f}n|rd|}ntj|S)aTranslate a shell-like wildcard pattern to a compiled regular expression. Return the compiled regex. If 'is_regex' true, then 'pattern' is directly compiled to a regex (if it's a string) or just returned as-is (assumes it's a regex object). NrWz\\^z.*) isinstancestrr[compiler]r#rrZr)r=r9r:rArCZ empty_patternZ prefix_rerZr r r r?+s"       r?)rHrr[rXZdistutils.utilrZdistutils.errorsrrZ distutilsrrrIrr]r?r r r r s  PK!c100$__pycache__/extension.cpython-34.pyonu[ i f_(@sMdZddlZddlZddlZGdddZddZdS)zmdistutils.extension Provides the Extension class, used to describe C/C++ extension modules in setup scripts.Nc@sLeZdZdZddddddddddddddddZdS) Extensiona Just a collection of attributes that describes an extension module and everything needed to build it (hopefully in a portable way, but there are hooks that let you be as unportable as you need). Instance attributes: name : string the full name of the extension, including any packages -- ie. *not* a filename or pathname, but Python dotted name sources : [string] list of source filenames, relative to the distribution root (where the setup script lives), in Unix form (slash-separated) for portability. Source files may be C, C++, SWIG (.i), platform-specific resource files, or whatever else is recognized by the "build_ext" command as source for a Python extension. include_dirs : [string] list of directories to search for C/C++ header files (in Unix form for portability) define_macros : [(name : string, value : string|None)] list of macros to define; each macro is defined using a 2-tuple, where 'value' is either the string to define it to or None to define it without a particular value (equivalent of "#define FOO" in source or -DFOO on Unix C compiler command line) undef_macros : [string] list of macros to undefine explicitly library_dirs : [string] list of directories to search for C/C++ libraries at link time libraries : [string] list of library names (not filenames or paths) to link against runtime_library_dirs : [string] list of directories to search for C/C++ libraries at run time (for shared extensions, this is when the extension is loaded) extra_objects : [string] list of extra files to link with (eg. object files not implied by 'sources', static library that must be explicitly specified, binary resource files, etc.) extra_compile_args : [string] any extra platform- and compiler-specific information to use when compiling the source files in 'sources'. For platforms and compilers where "command line" makes sense, this is typically a list of command-line arguments, but for other platforms it could be anything. extra_link_args : [string] any extra platform- and compiler-specific information to use when linking object files together to create the extension (or to create a new static Python interpreter). Similar interpretation as for 'extra_compile_args'. export_symbols : [string] list of symbols to be exported from a shared extension. Not used on all platforms, and not generally necessary for Python extensions, which typically export exactly one symbol: "init" + extension_name. swig_opts : [string] any extra options to pass to SWIG if a source file has the .i extension. depends : [string] list of files that the extension depends on language : string extension language (i.e. "c", "c++", "objc"). Will be detected from the source extensions if not provided. optional : boolean specifies that a build failure in the extension should not abort the build process, but simply not install the failing extension. NcKst|tstdnt|toCtdd|DsUtdn||_||_|ppg|_|pg|_|pg|_ |pg|_ |pg|_ |pg|_ | pg|_ | pg|_| pg|_| pg|_| pg|_|pg|_||_||_t|dkrdd|D}djt|}d |}tj|ndS) Nz'name' must be a stringcss|]}t|tVqdS)N) isinstancestr).0vr8/opt/alt/python34/lib64/python3.4/distutils/extension.py ksz%Extension.__init__..z#'sources' must be a list of stringsrcSsg|]}t|qSr)repr)rZoptionrrr s z&Extension.__init__..z, zUnknown Extension options: %s)rrAssertionErrorlistallnamesources include_dirs define_macros undef_macros library_dirs librariesruntime_library_dirs extra_objectsextra_compile_argsextra_link_argsexport_symbols swig_optsdependslanguageoptionallenjoinsortedwarningswarn)selfrrrrrrrrrrrrrrrrkwZoptionsmsgrrr__init__Ws4     zExtension.__init__)__name__ __module__ __qualname____doc__r'rrrrrs ?rcCsddlm}m}m}ddlm}ddlm}||}||ddddddd dd d}z-g}x |j} | d krPn|j | rq~n| d| d(kod knr|j d | q~n|| |} || } | d} t | g} d } xf| dd D]T}| d k r`| j |d } q5nt jj|d}|dd}|dd }|d)kr| jj |q5|dkr| jj |q5|dkrE|jd}|d*kr| jj |d fq| jj |d|||dd fq5|dkrd| jj |q5|dkr| jj |q5|dkr| jj |q5|dkr| jj |q5|dkr| jj |q5|dkr| j} q5|dkr| j} q5|d kr(| j} q5|d!krY| jj ||s| j} qq5|d+krx| jj |q5|j d'|q5W|j | q~WWd |jX|S),z3Reads a Setup file and returns Extension instances.r)parse_makefileexpand_makefile_vars _variable_rx)TextFile) split_quotedZstrip_commentsZ skip_blanksZ join_linesZ lstrip_wsZ rstrip_wsN*z'%s' lines not handled yet.c.cc.cpp.cxx.c++.m.mmz-Iz-D=z-Uz-Cz-lz-Lz-Rz-rpathz-Xlinkerz -Xcompilerz-u.a.so.sl.o.dylibzunrecognized argument '%s')r4r5r6r7r8r9r:rA)r<r=r>r?r@)Zdistutils.sysconfigr,r-r.Zdistutils.text_filer/Zdistutils.utilr0readlinematchr#rappendospathsplitextrrfindrrrrrrrrclose)filenamer,r-r.r/r0varsfile extensionslineZwordsmoduleZextZappend_next_wordZwordsuffixZswitchvalueZequalsrrrread_setup_files    $                      rR)r+rEsysr"rrRrrrrs    rPK!Ut $__pycache__/ccompiler.cpython-34.pyonu[ i f@sdZddlZddlZddlZddlTddlmZddlmZddl m Z ddl m Z m Z ddlmZmZdd lmZGd d d Zd d fdd fddffZddddZidddfd 6dddfd6dddfd6dddfd6d d!d"fd#6Zd$d%Zdddddd&d'Zd(d)Zd*d+ZdS),zdistutils.ccompiler Contains CCompiler, an abstract base class that defines the interface for the Distutils compiler abstraction model.N)*)spawn) move_file)mkpath)newer_pairwise newer_group) split_quotedexecute)logc @seZdZdZdZdZdZdZdZdZ dZ dZ idd6dd6dd6dd6d d 6Z dd dgZ d d d d d ZddZddZddZddZdddZddZddZddZddZd d!Zd"d#Zd$d%Zd&d'Zd(d)Zd*d+Zd,d-Zd.d/Zd0d1Z d2d3Z!dd4d5Z"d6d7Z#d8d9Z$d:d;Z%d<d=Z&dddddd>d?Z'dddd dddd@dAZ(dBdCZ)dd ddDdEZ*dFZ+dGZ,dHZ-dddddd dddddIdJ Z.dddddd dddddKdL Z/dddddd dddddMdN Z0ddddd ddddOdPZ1dQdRZ2dSdTZ3dUdVZ4dddddWdXZ5d dYdZZ6d d[d\d]Z7d d[d^d_Z8d d[d`daZ9dbd d[dcddZ:dedfdgZ;dhdiZ<djdkZ=ddedldmZ>dndoZ?dpdqZ@drdsdtZAdS)u CCompileraAbstract base class to define the interface that must be implemented by real compiler classes. Also has some utility methods used by several compiler classes. The basic idea behind a compiler abstraction class is that each instance can be used for all the compile/link steps in building a single project. Thus, attributes common to all of those compile and link steps -- include directories, macros to define, libraries to link against, etc. -- are attributes of the compiler instance. To allow for variability in how individual files are treated, most of those attributes may be varied on a per-compilation or per-link basis. Ncz.czc++z.ccz.cppz.cxxZobjcz.mrcCs||_||_||_d|_g|_g|_g|_g|_g|_g|_ x.|j j D]}|j ||j |qjWdS)N) dry_runforceverbose output_dirmacros include_dirs libraries library_dirsruntime_library_dirsobjects executableskeysset_executable)selfrr rkeyr8/opt/alt/python34/lib64/python3.4/distutils/ccompiler.py__init__Us          zCCompiler.__init__cKsWxP|D]H}||jkr;td||jjfn|j|||qWdS)aDefine the executables (and options for them) that will be run to perform the various stages of compilation. The exact set of executables that may be specified here depends on the compiler class (via the 'executables' class attribute), but most will have: compiler the C/C++ compiler linker_so linker used to create shared objects and libraries linker_exe linker used to create binary executables archiver static library creator On platforms with a command-line (Unix, DOS/Windows), each of these is a string that will be split into executable name and (optional) list of arguments. (Splitting the string is done similarly to how Unix shells operate: words are delimited by spaces, but quotes and backslashes can override this. See 'distutils.util.split_quoted()'.) z$unknown executable '%s' for class %sN)r ValueError __class____name__r)rkwargsrrrrset_executablesys  zCCompiler.set_executablescCs<t|tr(t||t|nt|||dS)N) isinstancestrsetattrr)rrvaluerrrrszCCompiler.set_executablecCs<d}x/|jD]$}|d|kr*|S|d7}qWdS)Nr)r)rnameidefnrrr _find_macros zCCompiler._find_macrocCsx|D]x}t|toat|dkoat|dtsQ|ddkoat|dtstd|ddqqWdS) zEnsures that every element of 'definitions' is a valid macro definition, ie. either (name,value) 2-tuple or a (name,) tuple. Do nothing if all definitions are OK, raise TypeError otherwise. r(Nrzinvalid macro definition '%s': z.must be tuple (string,), (string, string), or z(string, None))r(r-)r$tuplelenr% TypeError)rZ definitionsr+rrr_check_macro_definitionss # z"CCompiler._check_macro_definitionscCsB|j|}|dk r(|j|=n|jj||fdS)a_Define a preprocessor macro for all compilations driven by this compiler object. The optional parameter 'value' should be a string; if it is not supplied, then the macro will be defined without an explicit value and the exact outcome depends on the compiler used (XXX true? does ANSI say anything about this?) N)r,rappend)rr)r'r*rrr define_macros   zCCompiler.define_macrocCsE|j|}|dk r(|j|=n|f}|jj|dS)aUndefine a preprocessor macro for all compilations driven by this compiler object. If the same macro is defined by 'define_macro()' and undefined by 'undefine_macro()' the last call takes precedence (including multiple redefinitions or undefinitions). If the macro is redefined/undefined on a per-compilation basis (ie. in the call to 'compile()'), then that takes precedence. N)r,rr2)rr)r*Zundefnrrrundefine_macros    zCCompiler.undefine_macrocCs|jj|dS)zAdd 'dir' to the list of directories that will be searched for header files. The compiler is instructed to search directories in the order in which they are supplied by successive calls to 'add_include_dir()'. N)rr2)rdirrrradd_include_dirszCCompiler.add_include_dircCs|dd|_dS)aySet the list of directories that will be searched to 'dirs' (a list of strings). Overrides any preceding calls to 'add_include_dir()'; subsequence calls to 'add_include_dir()' add to the list passed to 'set_include_dirs()'. This does not affect any list of standard include directories that the compiler may search by default. N)r)rdirsrrrset_include_dirsszCCompiler.set_include_dirscCs|jj|dS)aAdd 'libname' to the list of libraries that will be included in all links driven by this compiler object. Note that 'libname' should *not* be the name of a file containing a library, but the name of the library itself: the actual filename will be inferred by the linker, the compiler, or the compiler class (depending on the platform). The linker will be instructed to link against libraries in the order they were supplied to 'add_library()' and/or 'set_libraries()'. It is perfectly valid to duplicate library names; the linker will be instructed to link against libraries as many times as they are mentioned. N)rr2)rlibnamerrr add_libraryszCCompiler.add_librarycCs|dd|_dS)zSet the list of libraries to be included in all links driven by this compiler object to 'libnames' (a list of strings). This does not affect any standard system libraries that the linker may include by default. N)r)rZlibnamesrrr set_librariesszCCompiler.set_librariescCs|jj|dS)a'Add 'dir' to the list of directories that will be searched for libraries specified to 'add_library()' and 'set_libraries()'. The linker will be instructed to search for libraries in the order they are supplied to 'add_library_dir()' and/or 'set_library_dirs()'. N)rr2)rr5rrradd_library_dirszCCompiler.add_library_dircCs|dd|_dS)zSet the list of library search directories to 'dirs' (a list of strings). This does not affect any standard library search path that the linker may search by default. N)r)rr7rrrset_library_dirs szCCompiler.set_library_dirscCs|jj|dS)zlAdd 'dir' to the list of directories that will be searched for shared libraries at runtime. N)rr2)rr5rrradd_runtime_library_dirsz!CCompiler.add_runtime_library_dircCs|dd|_dS)zSet the list of directories to search for shared libraries at runtime to 'dirs' (a list of strings). This does not affect any standard search path that the runtime linker may search by default. N)r)rr7rrrset_runtime_library_dirssz"CCompiler.set_runtime_library_dirscCs|jj|dS)zAdd 'object' to the list of object files (or analogues, such as explicitly named library files or the output of "resource compilers") to be included in every link driven by this compiler object. N)rr2)robjectrrradd_link_object szCCompiler.add_link_objectcCs|dd|_dS)zSet the list of object files (or analogues) to be included in every link to 'objects'. This does not affect any standard object files that the linker may include by default (such as system libraries). N)r)rrrrrset_link_objects(szCCompiler.set_link_objectscCs|dkr|j}nt|ts6tdn|dkrN|j}n1t|trs||jplg}n td|dkr|j}n=t|ttfrt||jpg}n td|dkrg}n|j|ddd|}t ||}i} xmt t |D]Y} || } || } t j j| d} |jt j j| | | f| | 'runtime_library_dirs' (if supplied) must be a list of strings)rr$rDr.r0rr)rrrrrrr _fix_lib_argss&          zCCompiler._fix_lib_argscCsE|jr dS|jr.t||dd}nt||}|SdS)zjReturn true if we need to relink the files listed in 'objects' to recreate 'output_file'. TZmissingnewerN)rr r)rr output_filer[rrr _need_links   zCCompiler._need_linkc Cst|ts|g}nd}t|j}x~|D]v}tjj|\}}|jj|}y1|jj |}||kr|}|}nWq7t k rYq7Xq7W|S)z|Detect the language of a given file, or list of files. Uses language_map, and language_order to do the job. N) r$rDr/language_orderrHrIrJ language_mapgetindexr) rrLZlangrasourcebaserRZextlangZextindexrrrdetect_languages      zCCompiler.detect_languagecCsdS)aPreprocess a single C/C++ source file, named in 'source'. Output will be written to file named 'output_file', or stdout if 'output_file' not supplied. 'macros' is a list of macro definitions as for 'compile()', which will augment the macros set with 'define_macro()' and 'undefine_macro()'. 'include_dirs' is a list of directory names that will be added to the default list. Raises PreprocessError on failure. Nr)rrbr\rr extra_preargsextra_postargsrrr preprocesss zCCompiler.preprocessc Cs|j||||||\}} }} } |j| ||} xV| D]N} y| | \}}Wntk rzwIYnX|j| ||| || qIW| S)aK Compile one or more source files. 'sources' must be a list of filenames, most likely C/C++ files, but in reality anything that can be handled by a particular compiler and compiler class (eg. MSVCCompiler can handle resource files in 'sources'). Return a list of object filenames, one per source filename in 'sources'. Depending on the implementation, not all source files will necessarily be compiled, but all corresponding object filenames will be returned. If 'output_dir' is given, object files will be put under it, while retaining their original path component. That is, "foo/bar.c" normally compiles to "foo/bar.o" (for a Unix implementation); if 'output_dir' is "build", then it would compile to "build/foo/bar.o". 'macros', if given, must be a list of macro definitions. A macro definition is either a (name, value) 2-tuple or a (name,) 1-tuple. The former defines a macro; if the value is None, the macro is defined without an explicit value. The 1-tuple case undefines a macro. Later definitions/redefinitions/ undefinitions take precedence. 'include_dirs', if given, must be a list of strings, the directories to add to the default include file search path for this compilation only. 'debug' is a boolean; if true, the compiler will be instructed to output debug symbols in (or alongside) the object file(s). 'extra_preargs' and 'extra_postargs' are implementation- dependent. On platforms that have the notion of a command-line (e.g. Unix, DOS/Windows), they are most likely lists of strings: extra command-line arguments to prepand/append to the compiler command line. On other platforms, consult the implementation class documentation. In any event, they are intended as an escape hatch for those occasions when the abstract compiler framework doesn't cut the mustard. 'depends', if given, is a list of filenames that all targets depend on. If a source file is older than any file in depends, then the source file will be recompiled. This supports dependency tracking, but only at a coarse granularity. Raises CompileError on failure. )rSrVKeyError_compile)rrLrrrrTrerfrMrrNrOrUrQrPrRrrrcompiles6   zCCompiler.compilecCsdS)zCompile 'src' to product 'obj'.Nr)rrQrPrRrUrfrNrrrriCszCCompiler._compilecCsdS)a&Link a bunch of stuff together to create a static library file. The "bunch of stuff" consists of the list of object files supplied as 'objects', the extra object files supplied to 'add_link_object()' and/or 'set_link_objects()', the libraries supplied to 'add_library()' and/or 'set_libraries()', and the libraries supplied as 'libraries' (if any). 'output_libname' should be a library name, not a filename; the filename will be inferred from the library name. 'output_dir' is the directory where the library file will be put. 'debug' is a boolean; if true, debugging information will be included in the library (note that on most platforms, it is the compile step where this matters: the 'debug' flag is included here just for consistency). 'target_lang' is the target language for which the given objects are being compiled. This allows specific linkage time treatment of certain languages. Raises LibError on failure. Nr)rroutput_libnamerrT target_langrrrcreate_static_libIszCCompiler.create_static_libZ shared_objectZshared_library executablecCs tdS)auLink a bunch of stuff together to create an executable or shared library file. The "bunch of stuff" consists of the list of object files supplied as 'objects'. 'output_filename' should be a filename. If 'output_dir' is supplied, 'output_filename' is relative to it (i.e. 'output_filename' can provide directory components if needed). 'libraries' is a list of libraries to link against. These are library names, not filenames, since they're translated into filenames in a platform-specific way (eg. "foo" becomes "libfoo.a" on Unix and "foo.lib" on DOS/Windows). However, they can include a directory component, which means the linker will look in that specific directory rather than searching all the normal locations. 'library_dirs', if supplied, should be a list of directories to search for libraries that were specified as bare library names (ie. no directory component). These are on top of the system default and those supplied to 'add_library_dir()' and/or 'set_library_dirs()'. 'runtime_library_dirs' is a list of directories that will be embedded into the shared library and used to search for other shared libraries that *it* depends on at run-time. (This may only be relevant on Unix.) 'export_symbols' is a list of symbols that the shared library will export. (This appears to be relevant only on Windows.) 'debug' is as for 'compile()' and 'create_static_lib()', with the slight distinction that it actually matters on most platforms (as opposed to 'create_static_lib()', which includes a 'debug' flag mostly for form's sake). 'extra_preargs' and 'extra_postargs' are as for 'compile()' (except of course that they supply command-line arguments for the particular linker being used). 'target_lang' is the target language for which the given objects are being compiled. This allows specific linkage time treatment of certain languages. Raises LinkError on failure. N)NotImplementedError)rZ target_descroutput_filenamerrrrexport_symbolsrTrerf build_temprlrrrlinkis9zCCompiler.linkc CsG|jtj||j|dd||||||| | | | dS)Nlib_typeshared)rsr SHARED_LIBRARYlibrary_filename) rrrkrrrrrqrTrerfrrrlrrrlink_shared_libs  zCCompiler.link_shared_libc Cs8|jtj||||||||| | | | dS)N)rsr SHARED_OBJECT) rrrprrrrrqrTrerfrrrlrrrlink_shared_objects  zCCompiler.link_shared_objectc CsA|jtj||j|||||d||| d| dS)N)rsr EXECUTABLEexecutable_filename) rrZoutput_prognamerrrrrTrerfrlrrrlink_executables  zCCompiler.link_executablecCs tdS)zkReturn the compiler option to add 'dir' to the list of directories searched for libraries. N)ro)rr5rrrlibrary_dir_optionszCCompiler.library_dir_optioncCs tdS)zsReturn the compiler option to add 'dir' to the list of directories searched for runtime libraries. N)ro)rr5rrrruntime_library_dir_optionsz$CCompiler.runtime_library_dir_optioncCs tdS)zReturn the compiler option to add 'lib' to the list of libraries linked into the shared library or executable. N)ro)rlibrrrlibrary_optionszCCompiler.library_optionc CsMddl}|dkr!g}n|dkr6g}n|dkrKg}n|dkr`g}n|jd|dd\}}tj|d} z7x|D]} | jd| qW| jd|Wd| jXy|j|gd |} Wntk r d SYnXy |j| d d |d |Wnt t fk rHd SYnXdS)zReturn a boolean indicating whether funcname is supported on the current platform. The optional arguments can be used to augment the compilation environment. rNz.ctextTwz#include "%s" z+main (int argc, char **argv) { %s(); } rFza.outrr) tempfileZmkstemprHfdopenwritecloserjZ CompileErrorr}Z LinkErrorr0) rZfuncnameZincludesrrrrfdZfnamefZinclrrrr has_functions8               zCCompiler.has_functioncCs tdS)aHSearch the specified list of directories for a static or shared library file 'lib' and return the full path to that file. If 'debug' true, look for a debugging version (if that makes sense on the current platform). Return None if 'lib' wasn't found in any of the specified directories. N)ro)rr7rrTrrrfind_library_file#szCCompiler.find_library_filecCs|dkrd}ng}x|D]}tjj|\}}tjj|d}|tjj|d}||jkrtd||fn|rtjj|}n|jtjj |||j q"W|S)Nrr(z"unknown file type '%s' (from '%s')) rHrIrJ splitdriveisabssrc_extensionsZUnknownFileErrorbasenamer2join obj_extension)rZsource_filenamesrCrZ obj_namesZsrc_namercrRrrrrENs   zCCompiler.object_filenamescCs5|rtjj|}ntjj|||jS)N)rHrIrrshared_lib_extension)rrrCrrrrshared_object_filename_sz CCompiler.shared_object_filenamecCs;|rtjj|}ntjj|||jp6dS)Nr)rHrIrr exe_extension)rrrCrrrrr|eszCCompiler.executable_filenamestaticc Cs|dkrtdnt||d}t||d}tjj|\}}|||f} |rxd}ntjj||| S) Nrrudylibz0'lib_type' must be "static", "shared" or "dylib"Z _lib_formatZ_lib_extensionr)rzsharedr)rgetattrrHrIsplitr) rr9rtrCrZfmtrRr5rcfilenamerrrrwks   zCCompiler.library_filenamer(cCstj|dS)N)r rT)rmsglevelrrrannounce~szCCompiler.announcecCs'ddlm}|r#t|ndS)Nr)DEBUG)Zdistutils.debugrprint)rrrrrr debug_printszCCompiler.debug_printcCstjjd|dS)Nz warning: %s )sysstderrr)rrrrrwarnszCCompiler.warncCst||||jdS)N)r r )rfuncargsrrrrrr szCCompiler.executecCst|d|jdS)Nr )rr )rcmdrrrrszCCompiler.spawncCst||d|jS)Nr )rr )rrPZdstrrrrszCCompiler.move_fileicCst||d|jdS)Nr )rr )rr)moderrrrszCCompiler.mkpath)Br! __module__ __qualname____doc__Z compiler_typerrZstatic_lib_extensionrZstatic_lib_formatZshared_lib_formatrr_r^rr#rr,r1r3r4r6r8r:r;r<r=r>r?rArBrSrVrWrXrYrZr]rdrgrjrirmryrvr{rsrxrzr}r~rrrrrErr|rwrrrr rrrrrrrr s    $              +   "   B 4     *+    r zcygwin.*unixposixntZmsvccCs|dkrtj}n|dkr0tj}nxHtD]@\}}tj||dk sstj||dk r7|Sq7WdS)akDetermine the default compiler to use for the given platform. osname should be one of the standard Python OS names (i.e. the ones returned by os.name) and platform the common value returned by sys.platform for the platform in question. The default values are os.name and sys.platform in case the parameters are not given. Nr)rHr)rplatform_default_compilersrematch)osnamerpatterncompilerrrrget_default_compilers    rZ unixccompilerZ UnixCCompilerzstandard UNIX-style compilerZ msvccompilerZ MSVCCompilerzMicrosoft Visual C++ZcygwinccompilerZCygwinCCompilerz'Cygwin port of GNU C Compiler for Win32cygwinZMingw32CCompilerz(Mingw32 port of GNU C Compiler for Win32Zmingw32Z bcppcompilerZ BCPPCompilerzBorland C++ CompilerZbcppcCsvddlm}g}x6tjD](}|jd|dt|dfq#W|j||}|jddS)zyPrint list of available compilers (used by the "--help-compiler" options to "build", "build_ext", "build_clib"). r) FancyGetoptz compiler=Nr-zList of available compilers:)Zdistutils.fancy_getoptrcompiler_classrr2sortZ print_help)rZ compilersrZpretty_printerrrrshow_compilerss  rc Cs#|dkrtj}ny2|dkr6t|}nt|\}}}WnEtk rd|}|dk r|d|}nt|YnXy5d|}t|tj|} t | |} WnIt k rt d|Yn(tk rt d||fYnX| d||S)a[Generate an instance of some CCompiler subclass for the supplied platform/compiler combination. 'plat' defaults to 'os.name' (eg. 'posix', 'nt'), and 'compiler' defaults to the default compiler for that platform. Currently only 'posix' and 'nt' are supported, and the default compilers are "traditional Unix interface" (UnixCCompiler class) and Visual C++ (MSVCCompiler class). Note that it's perfectly possible to ask for a Unix compiler object under Windows, and a Microsoft compiler object under Unix -- if you supply a value for 'compiler', 'plat' is ignored. Nz5don't know how to compile C/C++ code on platform '%s'z with '%s' compilerz distutils.z4can't compile C/C++ code: unable to load module '%s'zBcan't compile C/C++ code: unable to find class '%s' in module '%s') rHr)rrrhZDistutilsPlatformError __import__rmodulesvars ImportErrorZDistutilsModuleError) Zplatrrr rZ module_nameZ class_nameZlong_descriptionrmoduleklassrrr new_compilers2           rcCsg}x|D]}t|toAdt|ko?dknsWtd|nt|dkr|jd|dq t|dkr |ddkr|jd|dq|jd|q q Wx|D]}|jd |qW|S) aGenerate C pre-processor options (-D, -U, -I) as used by at least two types of compilers: the typical Unix compiler and Visual C++. 'macros' is the usual thing, a list of 1- or 2-tuples, where (name,) means undefine (-U) macro 'name', and (name,value) means define (-D) macro 'name' to 'value'. 'include_dirs' is just a list of directory names to be added to the header file search path (-I). Returns a list of command-line options suitable for either Unix compilers or Visual C++. r(r-zPbad macro definition '%s': each element of 'macros' list must be a 1- or 2-tuplez-U%srNz-D%sz-D%s=%sz-I%s)r$r.r/r0r2)rrrNZmacror5rrrrF s 1  rFc Csg}x$|D]}|j|j|q WxF|D]>}|j|}t|tre||}q4|j|q4Wx|D]y}tjj|\}} |r|j|g| } | r|j| q|j d|q}|j|j |q}W|S)acGenerate linker options for searching library directories and linking with specific libraries. 'libraries' and 'library_dirs' are, respectively, lists of library names (not filenames!) and search directories. Returns a list of command-line options suitable for use with some compiler (depending on the two format strings passed in). z6no library file corresponding to '%s' found (skipping)) r2r~rr$rDrHrIrrrr) rrrrZlib_optsr5ZoptrZlib_dirZlib_nameZlib_filerrrgen_lib_options7s$      r)rrrHrZdistutils.errorsZdistutils.spawnrZdistutils.file_utilrZdistutils.dir_utilrZdistutils.dep_utilrrZdistutils.utilrr Z distutilsr r rrrrrrFrrrrrs<$          - -PK!1 1 #__pycache__/dep_util.cpython-34.pyonu[ h f @sMdZddlZddlmZddZddZdd d ZdS) zdistutils.dep_util Utility functions for simple, timestamp-based dependency of files and groups of files; also, function based entirely on such timestamp dependency analysis.N)DistutilsFileErrorcCstjj|s1tdtjj|ntjj|sGdSddlm}tj||}tj||}||kS)aReturn true if 'source' exists and is more recently modified than 'target', or if 'source' exists and 'target' doesn't. Return false if both exist and 'target' is the same age or younger than 'source'. Raise DistutilsFileError if 'source' does not exist. zfile '%s' does not existr)ST_MTIME)ospathexistsrabspathstatr)sourcetargetrZmtime1Zmtime2r 7/opt/alt/python34/lib64/python3.4/distutils/dep_util.pynewer srcCst|t|kr'tdng}g}xVtt|D]B}t||||rF|j|||j||qFqFW||fS)zWalk two filename lists in parallel, testing if each source is newer than its corresponding target. Return a pair of lists (sources, targets) where source is newer than target, according to the semantics of 'newer()'. z+'sources' and 'targets' must be same length)len ValueErrorrangerappend)sourcesZtargetsZ n_sourcesZ n_targetsir r r newer_pairwise srerrorcCstjj|sdSddlm}tj||}x{|D]o}tjj|s|dkrgq|dkryq@q|dkrdSntj||}||kr@dSq@WdSdS)aReturn true if 'target' is out-of-date with respect to any file listed in 'sources'. In other words, if 'target' exists and is newer than every file in 'sources', return false; otherwise return true. 'missing' controls what we do when a source file is missing; the default ("error") is to blow up with an OSError from inside 'stat()'; if it is "ignore", we silently drop any missing source files; if it is "newer", any missing source files make us assume that 'target' is out-of-date (this is handy in "dry-run" mode: it'll make you pretend to carry out commands that wouldn't work because inputs are missing, but that doesn't matter because you're not actually going to run the commands). rr)rrignorerN)rrrr r)rr ZmissingrZ target_mtimer source_mtimer r r newer_group6s      r)__doc__rZdistutils.errorsrrrrr r r r s    PK!_\:""$__pycache__/text_file.cpython-34.pyonu[ i f0@sAdZddlZddlZddlZGdddZdS)ztext_file provides the TextFile class, which gives an interface to text files that (optionally) takes care of stripping comments, ignoring blank lines, and joining lines with backslashes.Nc@seZdZdZidd6dd6dd6dd6dd6dd 6d d 6Zd d d dZddZddZd ddZd ddZ d ddZ ddZ ddZ ddZ d S)TextFilea Provides a file-like object that takes care of all the things you commonly want to do when processing a text file that has some line-by-line syntax: strip comments (as long as "#" is your comment character), skip blank lines, join adjacent lines by escaping the newline (ie. backslash at end of line), strip leading and/or trailing whitespace. All of these are optional and independently controllable. Provides a 'warn()' method so you can generate warning messages that report physical line number, even if the logical line in question spans multiple physical lines. Also provides 'unreadline()' for implementing line-at-a-time lookahead. Constructor is called as: TextFile (filename=None, file=None, **options) It bombs (RuntimeError) if both 'filename' and 'file' are None; 'filename' should be a string, and 'file' a file object (or something that provides 'readline()' and 'close()' methods). It is recommended that you supply at least 'filename', so that TextFile can include it in warning messages. If 'file' is not supplied, TextFile creates its own using 'io.open()'. The options are all boolean, and affect the value returned by 'readline()': strip_comments [default: true] strip from "#" to end-of-line, as well as any whitespace leading up to the "#" -- unless it is escaped by a backslash lstrip_ws [default: false] strip leading whitespace from each line before returning it rstrip_ws [default: true] strip trailing whitespace (including line terminator!) from each line before returning it skip_blanks [default: true} skip lines that are empty *after* stripping comments and whitespace. (If both lstrip_ws and rstrip_ws are false, then some lines may consist of solely whitespace: these will *not* be skipped, even if 'skip_blanks' is true.) join_lines [default: false] if a backslash is the last non-newline character on a line after stripping comments and whitespace, join the following line to it to form one "logical line"; if N consecutive lines end with a backslash, then N+1 physical lines will be joined to form one logical line. collapse_join [default: false] strip leading whitespace from lines that are joined to their predecessor; only matters if (join_lines and not lstrip_ws) errors [default: 'strict'] error handler used to decode the file content Note that since 'rstrip_ws' can strip the trailing newline, the semantics of 'readline()' must differ from those of the builtin file object's 'readline()' method! In particular, 'readline()' returns None for end-of-file: an empty string might just be a blank line (or an all-whitespace line), if 'rstrip_ws' is true but 'skip_blanks' is not.strip_comments skip_blanksr lstrip_ws rstrip_ws join_lines collapse_joinstricterrorsNcKs|dkr'|dkr'tdnxQ|jjD]@}||kr`t||||q7t|||j|q7Wx6|jD](}||jkrtd|qqW|dkr|j|n||_||_d|_g|_ dS)zConstruct a new TextFile object. At least one of 'filename' (a string) and 'file' (a file-like object) must be supplied. They keyword argument options are described above and affect the values returned by 'readline()'.Nz7you must supply either or both of 'filename' and 'file'zinvalid TextFile option '%s'r) RuntimeErrordefault_optionskeyssetattrKeyErroropenfilenamefile current_linelinebuf)selfrrZoptionsZoptr8/opt/alt/python34/lib64/python3.4/distutils/text_file.py__init__Ns     zTextFile.__init__cCs7||_tj|jdd|j|_d|_dS)zyOpen a new file named 'filename'. This overrides both the 'filename' and 'file' arguments to the constructor.rr rN)riorr rr)rrrrrros !z TextFile.opencCs2|j}d|_d|_d|_|jdS)ziClose the current file and forget everything we know about it (filename, current line number).N)rrrclose)rrrrrrvs     zTextFile.closecCsg}|dkr|j}n|j|jdt|ttfra|jdt|n|jd||jt|dj|S)Nz, z lines %d-%d: z line %d: )rappendr isinstancelisttuplestrjoin)rmsglineZoutmsgrrr gen_errors  zTextFile.gen_errorcCs td|j||dS)Nzerror: ) ValueErrorr&)rr$r%rrrerrorszTextFile.errorcCs(tjjd|j||ddS)aPrint (to stderr) a warning message tied to the current logical line in the current file. If the current logical line in the file spans multiple physical lines, the warning refers to the whole range, eg. "lines 3-5". If 'line' supplied, it overrides the current line number; it may be a list or tuple to indicate a range of physical lines, or an integer for a single physical line.z warning:  N)sysstderrwriter&)rr$r%rrrwarnsz TextFile.warncCs|jr$|jd }|jd =|Sd}x|jj}|dkrQd}n|jr|r|jd}|dkr~q|dks||ddkr|ddkrdpd}|d||}|jdkrq-qq|jdd}n|jr|r|dkr*|jd |S|j rB|j }n||}t |j t ry|j dd|j ds$PK!RRR'__pycache__/archive_util.cpython-34.pyonu[ i f  @sdZddlZddlmZddlZyddlZWnek rXdZYnXddlmZddl m Z ddl m Z ddl mZyddlmZWnek rdZYnXydd lmZWnek rdZYnXd d Zd d ZdddddddZddddZied#gdfd6ed$gdfd6ed%gdfd6ed&gdfd6egdfd6Zdd Zddddddd!d"ZdS)'zodistutils.archive_util Utility functions for creating archive files (tarballs, zip files, that sort of thing).N)warn)DistutilsExecError)spawn)mkpath)log)getpwnam)getgrnamc Cs_tdks|dkrdSyt|}Wntk rFd}YnX|dk r[|dSdS)z"Returns a gid, given a group name.N)rKeyError)nameresultr ;/opt/alt/python34/lib64/python3.4/distutils/archive_util.py_get_gids   rc Cs_tdks|dkrdSyt|}Wntk rFd}YnX|dk r[|dSdS)z"Returns an uid, given a user name.Nr )rr )r r r r r_get_uid+s   rgzipc sidd6dd6dd6dd6}idd6d d6d d6}|dk rj||jkrjtd n|d } |dkr| |j|d7} nttjj| d |ddl} tj dt t fdd} |sI| j | d||} z| j |d| Wd| jXn|dkrtdt| ||} tjdkr|| | g}n|d| g}t|d || S| S)a-Create a (possibly compressed) tar file from all the files under 'base_dir'. 'compress' must be "gzip" (the default), "compress", "bzip2", or None. (compress will be deprecated in Python 3.2) 'owner' and 'group' can be used to define an owner and a group for the archive that is being built. If not provided, the current owner and group will be used. The output tar file will be named 'base_dir' + ".tar", possibly plus the appropriate compression extension (".gz", ".bz2" or ".Z"). Returns the output filename. Zgzrbz2bzip2Ncompressz.gzz.bz2z.ZzEbad value for 'compress': must be None, 'gzip', 'bzip2' or 'compress'z.tardry_runrzCreating tar archivecsFdk r!|_|_ndk rB|_|_n|S)N)gidZgnameuiduname)Ztarinfo)rgroupownerrr r _set_uid_gid_s      z"make_tarball.._set_uid_gidzw|%sfilterz'compress' will be deprecated.win32z-f)keys ValueErrorgetrospathdirnametarfilerinforropenaddcloserPendingDeprecationWarningsysplatformr) base_namebase_dirrverboserrrZtar_compressionZ compress_extZ archive_namer%rtarZcompressed_namecmdr )rrrrr make_tarball7s8"          r2c Cs|d}ttjj|d|tdkr|rAd}nd}y td|||gd|Wqtk rtd|YqXntjd|||sytj |d d tj }Wn-t k rtj |d d tj }YnXxtj |D]w\}}} xe| D]]} tjjtjj|| } tjj| r|j| | tjd | qqWqW|jn|S) avCreate a zip file from all the files under 'base_dir'. The output zip file will be named 'base_name' + ".zip". Uses either the "zipfile" Python module (if available) or the InfoZIP "zip" utility (if installed and found on the default search path). If neither tool is available, raises DistutilsExecError. Returns the name of the output zip file. z.ziprNz-rz-rqzipzkunable to create zip file '%s': could neither import the 'zipfile' module nor find a standalone zip utilityz#creating '%s' and adding '%s' to itwZ compressionz adding '%s')rr"r#r$zipfilerrrr&ZZipFileZ ZIP_DEFLATED RuntimeErrorZ ZIP_STOREDwalknormpathjoinisfilewriter)) r-r.r/rZ zip_filenameZ zipoptionsr3dirpathZdirnames filenamesr r#r r r make_zipfile}s:         ! r>rzgzip'ed tar-fileZgztarrzbzip2'ed tar-fileZbztarzcompressed tar fileZztarzuncompressed tar filer0zZIP filer3cCs%x|D]}|tkr|SqWdS)zqReturns the first format from the 'format' list that is unknown. If all formats are known, returns None N)ARCHIVE_FORMATS)Zformatsformatr r rcheck_archive_formatss  rAcCsGtj}|dk rStjd|tjj|}|sStj|qSn|dkrktj}ni|d6} yt|} Wn"t k rt d|YnX| d} x"| dD]\} } | | | r?rArMr r r rsB         E4 PK!!}$__pycache__/file_util.cpython-34.pycnu[ i f@sdZddlZddlmZddlmZidd6dd6dd 6Zdd d ZddddddddZddddZ ddZ dS)zFdistutils.file_util Utility functions for operating on single files. N)DistutilsFileError)logZcopyingz hard linkinghardzsymbolically linkingsymicNCsd}d}zyt|d}Wn>tk rb}ztd||jfWYdd}~XnXtjj|rytj|Wqtk r}ztd||jfWYdd}~XqXnyt|d}Wn>tk r}ztd||jfWYdd}~XnXxy|j|}Wn>tk rt}ztd||jfWYdd}~XnX|sPny|j |Wq!tk r}ztd||jfWYdd}~Xq!Xq!WWd|r|j n|r|j nXdS) a5Copy the file 'src' to 'dst'; both must be filenames. Any error opening either file, reading from 'src', or writing to 'dst', raises DistutilsFileError. Data is read/written in chunks of 'buffer_size' bytes (default 16k). No attempt is made to handle anything apart from regular files. Nrbzcould not open '%s': %szcould not delete '%s': %swbzcould not create '%s': %szcould not read from '%s': %szcould not write to '%s': %s) openOSErrorrstrerrorospathexistsunlinkreadwriteclose)srcdstZ buffer_sizeZfsrcZfdsteZbufr8/opt/alt/python34/lib64/python3.4/distutils/file_util.py_copy_file_contentssF ,,))1 rcCsddlm}ddlm} m} m} m} tjj |sWt d|ntjj |r|} tjj |tjj |}ntjj|} |r||| r|dkrtjd|n|dfSyt|}Wn"tk rtd|YnX|dkrytjj |tjj |kr`tjd||| qytjd|||n|r|dfS|d krtjj|otjj||sEytj|||dfSWqtk rYqXqEnP|d krEtjj|o%tjj||sEtj|||dfSnt|||s^|rtj|}|rtj||| || fn|rtj|| || qn|dfS) aCopy a file 'src' to 'dst'. If 'dst' is a directory, then 'src' is copied there with the same name; otherwise, it must be a filename. (If the file exists, it will be ruthlessly clobbered.) If 'preserve_mode' is true (the default), the file's mode (type and permission bits, or whatever is analogous on the current platform) is copied. If 'preserve_times' is true (the default), the last-modified and last-access times are copied as well. If 'update' is true, 'src' will only be copied if 'dst' does not exist, or if 'dst' does exist but is older than 'src'. 'link' allows you to make hard links (os.link) or symbolic links (os.symlink) instead of copying: set it to "hard" or "sym"; if it is None (the default), files are copied. Don't set 'link' on systems that don't support it: 'copy_file()' doesn't check if hard or symbolic linking is available. If hardlink fails, falls back to _copy_file_contents(). Under Mac OS, uses the native file copy function in macostools; on other systems, uses '_copy_file_contents()' to copy file contents. Return a tuple (dest_name, copied): 'dest_name' is the actual name of the output file, and 'copied' is true if the file was copied (or would have been copied, if 'dry_run' true). r)newer)ST_ATIMEST_MTIMEST_MODES_IMODEz4can't copy '%s': doesn't exist or not a regular filerz"not copying %s (output up-to-date)z&invalid value '%s' for 'link' argumentz %s %s -> %srr)Zdistutils.dep_utilrstatrrrrr r isfilerisdirjoinbasenamedirnamerdebug _copy_actionKeyError ValueErrorinforsamefilelinkr symlinkrutimechmod)rrZ preserve_modeZpreserve_timesupdater+verbosedry_runrrrrrdiractionstrrr copy_fileCsT!"$    $  '   '   ! r5c(Cs%ddlm}m}m}m}m}ddl} |dkrVtjd||n|r`|S||st d|n||rt j j |||}n%||rt d||fn|||st d||fnd } yt j ||Wnetk rz} zE| j\} } | | jkrOd } nt d ||| fWYdd} ~ XnX| r!t||d |yt j|Wq!tk r} zV| j\} } yt j|Wntk rYnXt d |||| fWYdd} ~ Xq!Xn|S)a%Move a file 'src' to 'dst'. If 'dst' is a directory, the file will be moved into it with the same name; otherwise, 'src' is just renamed to 'dst'. Return the new full name of the file. Handles cross-device moves on Unix using 'copy_file()'. What about other systems??? r)rr r!r#r$Nrzmoving %s -> %sz#can't move '%s': not a regular filez0can't move '%s': destination '%s' already existsz2can't move '%s': destination '%s' not a valid pathFTzcouldn't move '%s' to '%s': %sr0zAcouldn't move '%s' to '%s' by copy/delete: delete '%s' failed: %s)Zos.pathrr r!r#r$errnorr)rr r r"renamer argsZEXDEVr5r)rrr0r1rr r!r#r$r6Zcopy_itrZnummsgrrr move_filesR (      ) ,r:c CsGt|d}z&x|D]}|j|dqWWd|jXdS)z{Create a file with the specified name and write 'contents' (a sequence of strings without line terminators) to it. w N)r rr)filenamecontentsflinerrr write_files  rAi@) __doc__r Zdistutils.errorsrZ distutilsrr&rr5r:rArrrrs   3 c=PK!pp __pycache__/spawn.cpython-34.pyonu[ i fZ@sdZddlZddlZddlmZmZddlmZddlm Z dddddZ d d Z dddd d Z ej d krddlmZdadandddddZdddZdS)zdistutils.spawn Provides the 'spawn()' function, a front-end to various platform- specific functions for launching another program in a sub-process. Also provides the 'find_executable()' to search the path for a given executable name. N)DistutilsPlatformErrorDistutilsExecError)DEBUG)logcCsmt|}tjdkr1t||d|n8tjdkrVt||d|ntdtjdS)aRun another program, specified as a command list 'cmd', in a new process. 'cmd' is just the argument list for the new process, ie. cmd[0] is the program to run and cmd[1:] are the rest of its arguments. There is no way to run a program with a name different from that of its executable. If 'search_path' is true (the default), the system's executable search path will be used to find the program; otherwise, cmd[0] must be the exact path to the executable. If 'dry_run' is true, the command will not actually be run. Raise DistutilsExecError if running the program fails in any way; just return on success. posixdry_runntz1don't know how to spawn programs on platform '%s'N)listosname _spawn_posix _spawn_ntr)cmd search_pathverboserr4/opt/alt/python34/lib64/python3.4/distutils/spawn.pyspawns rcCs>x7t|D])\}}d|kr d|||ts|}ntjjd || jftjd WYdd} ~ XnXts|}ntjjd |tjd nkxhytj| d\} } Wnutk r} zUddl} | j| jkrcwntsr|}ntd|| jdfWYdd} ~ XnXtj| rts|}ntd|tj | fqtj!| r8tj"| }|dkrdSts|}ntd||fqtj#| rMqqts\|}ntd|| fqWdS)Nrrr%MACOSX_DEPLOYMENT_TARGETcSsg|]}t|qSr)int).0xrrr es z _spawn_posix...cSsg|]}t|qSr)r))r*r+rrrr,ks zF$MACOSX_DEPLOYMENT_TARGET mismatch: now "%s" but "%s" during configurezunable to execute %r: %s rz(unable to execute %r for unknown reasonszcommand %r failed: %sz"command %r terminated by signal %dz%command %r failed with exit status %dz1unknown error executing %r: termination status %dr)$rrrr execvpexecvsysplatform _cfg_targetr&get_config_varsplit_cfg_target_splitenvirongetrdictexecvpeexecveforkr!rstderrwritestrerror_exitwaitpiderrnoZEINTRrr WIFSIGNALEDWTERMSIG WIFEXITED WEXITSTATUS WIFSTOPPED)rrrrr"Zexec_fnenvZ cur_targetZmy_msgpideZstatusr$rAZ exit_statusrrrr Xs  ""            -    r cCs|dkrtjd}n|jtj}tjj|\}}tjdkrn|dkrn|d}ntjj|sx9|D]1}tjj ||}tjj|r|SqWdS|SdS)zTries to find 'executable' in the directories listed in 'path'. A string listing directories separated by 'os.pathsep'; defaults to os.environ['PATH']. Returns the complete filename or None if not found. NPATHwin32z.exe) r r6r4pathseppathsplitextr0r1isfiler)r"rMpathsbaseZextpfrrrrs   r)__doc__r0r Zdistutils.errorsrrZdistutils.debugrZ distutilsrrrrr1r&r2r5r rrrrrs    TPK!} __pycache__/log.cpython-34.pyonu[ i ft@sdZdZdZdZdZdZddlZGdd d ZeZej Z ej Z ej Z ej Z ej Z ejZd d Zd d ZdS)z,A simple log mechanism styled after PEP 282.Nc@sseZdZeddZddZddZddZd d Zd d Z d dZ ddZ dS)LogcCs ||_dS)N) threshold)selfrr 2/opt/alt/python34/lib64/python3.4/distutils/log.py__init__sz Log.__init__cCs|tttttfkr4tdt|n||jkr|rV||}n|tttfkrwtj }n tj }|j dkr|j }|j |dj|}n|jd||jndS)Nz%s wrong log levelstrictbackslashreplacez%s )DEBUGINFOWARNERRORFATAL ValueErrorstrrsysstderrstdouterrorsencodingencodedecodewriteflush)r levelmsgargsstreamrr r r _logs    zLog._logcGs|j|||dS)N)r#)r rr r!r r r log%szLog.logcGs|jt||dS)N)r#r)r r r!r r r debug(sz Log.debugcGs|jt||dS)N)r#r)r r r!r r r info+szLog.infocGs|jt||dS)N)r#r)r r r!r r r warn.szLog.warncGs|jt||dS)N)r#r)r r r!r r r error1sz Log.errorcGs|jt||dS)N)r#r)r r r!r r r fatal4sz Log.fatalN) __name__ __module__ __qualname__rr r#r$r%r&r'r(r)r r r r rs       rcCstj}|t_|S)N) _global_logr)roldr r r set_threshold?s  r/cCsO|dkrttn2|dkr2ttn|dkrKttndS)Nrrr)r/rrr)vr r r set_verbosityEs      r1)__doc__rrrrrrrr-r$r%r&r'r(r)r/r1r r r r s  )        PK!t#__pycache__/__init__.cpython-34.pyonu[ h f@s5dZddlZejdejjdZdS)zdistutils The main package for the Python Module Distribution Utilities. Normally used from a setup script as from distutils.core import setup setup (...) N )__doc__sysversionindex __version__rr7/opt/alt/python34/lib64/python3.4/distutils/__init__.py s PK!t#__pycache__/__init__.cpython-34.pycnu[ h f@s5dZddlZejdejjdZdS)zdistutils The main package for the Python Module Distribution Utilities. Normally used from a setup script as from distutils.core import setup setup (...) N )__doc__sysversionindex __version__rr7/opt/alt/python34/lib64/python3.4/distutils/__init__.py s PK!:sy||'__pycache__/bcppcompiler.cpython-34.pyonu[ h fW:@sdZddlZddlmZmZmZmZmZmZddl m Z m Z m Z ddl mZddlmZddlmZGdd d e ZdS) zdistutils.bcppcompiler Contains BorlandCCompiler, an implementation of the abstract CCompiler class for the Borland C++ compiler. N)DistutilsExecErrorDistutilsPlatformError CompileErrorLibError LinkErrorUnknownFileError) CCompilergen_preprocess_optionsgen_lib_options) write_file)newer)logc @seZdZdZdZiZdgZdddgZeeZdZ dZ d Z d Z Z d Zd d d d dZdddd dddddZdd dddZdddddd dddddd Zd ddZd dddZdddddddZdS) BCPPCompilerzConcrete class that implements an interface to the Borland C/C++ compiler, as defined by the CCompiler abstract class. Zbcppz.cz.ccz.cppz.cxxz.objz.libz.dllz%s%sz.exercCstj||||d|_d|_d|_d|_ddddg|_ddddg|_d d dd g|_d d dd g|_ g|_ d dd g|_ d dd d g|_ dS) Nz bcc32.exez ilink32.exeztlib.exez/tWMz/O2z/qz/g0z/Odz/Tpdz/Gnz/xz/r) r__init__cclinkerlibZpreprocess_optionscompile_optionscompile_options_debugldflags_sharedldflags_shared_debugZldflags_static ldflags_exeldflags_exe_debug)selfverboseZdry_runforcer;/opt/alt/python34/lib64/python3.4/distutils/bcppcompiler.pyr5s     zBCPPCompiler.__init__Nc Cs |j||||||\}} }} } |p6g} | jd|r_| j|jn| j|jx| D]} y| | \}}Wntk rwvYnXtjj|}tjj| } |j tjj | |dkrqvn|dkrZy|j dd| |gWqvt k rS}zt |WYdd}~XqvXqvn||jkrrd}n||jkrd}nd}d| }y4|j |jg| | ||g||gWqvt k r}zt |WYdd}~XqvXqvW| S) Nz-cz.resz.rcZbrcc32z-foz-Pz-o)Z_setup_compileappendextendrrKeyErrorospathnormpathmkpathdirnamespawnrr _c_extensions_cpp_extensionsr)rZsources output_dirmacros include_dirsdebug extra_preargsextra_postargsZdependsobjectspp_optsZbuildZ compile_optsobjsrcextmsgZ input_optZ output_optrrrcompileQsF         .#zBCPPCompiler.compilec Cs|j||\}}|j|d|}|j||r|dg|}|rXny|j|jg|Wqtk r}zt|WYdd}~XqXntjd|dS)Nr*z/uzskipping %s (up-to-date)) _fix_object_argslibrary_filename _need_linkr'rrrr r-) rr0Zoutput_libnamer*r- target_langoutput_filenameZlib_argsr5rrrcreate_static_libs"zBCPPCompiler.create_static_libc Cs|j||\}}|j|||\}}}|rUtjdt|n|dk rytjj||}n|j||r|t j krd}| r|j dd}q|j dd}n5d}| r|j dd}n|jdd}|dkrd}ntjj|\}}tjj|\}}tjj|d}tjj|d|}dg}x+|pgD]}|jd||fqW|jt||fd |ttjj|}|g}g}x[|D]S}tjjtjj|\}}|d kr@|j|q|j|qWx+|D]#}|jd tjj|qXW|jd |j||jd |g|jdxL|D]D}|j||| }|dkr|j|q|j|qW|jd|jd|jd |g|jd |j|| rh| |dds .PK!c100$__pycache__/extension.cpython-34.pycnu[ i f_(@sMdZddlZddlZddlZGdddZddZdS)zmdistutils.extension Provides the Extension class, used to describe C/C++ extension modules in setup scripts.Nc@sLeZdZdZddddddddddddddddZdS) Extensiona Just a collection of attributes that describes an extension module and everything needed to build it (hopefully in a portable way, but there are hooks that let you be as unportable as you need). Instance attributes: name : string the full name of the extension, including any packages -- ie. *not* a filename or pathname, but Python dotted name sources : [string] list of source filenames, relative to the distribution root (where the setup script lives), in Unix form (slash-separated) for portability. Source files may be C, C++, SWIG (.i), platform-specific resource files, or whatever else is recognized by the "build_ext" command as source for a Python extension. include_dirs : [string] list of directories to search for C/C++ header files (in Unix form for portability) define_macros : [(name : string, value : string|None)] list of macros to define; each macro is defined using a 2-tuple, where 'value' is either the string to define it to or None to define it without a particular value (equivalent of "#define FOO" in source or -DFOO on Unix C compiler command line) undef_macros : [string] list of macros to undefine explicitly library_dirs : [string] list of directories to search for C/C++ libraries at link time libraries : [string] list of library names (not filenames or paths) to link against runtime_library_dirs : [string] list of directories to search for C/C++ libraries at run time (for shared extensions, this is when the extension is loaded) extra_objects : [string] list of extra files to link with (eg. object files not implied by 'sources', static library that must be explicitly specified, binary resource files, etc.) extra_compile_args : [string] any extra platform- and compiler-specific information to use when compiling the source files in 'sources'. For platforms and compilers where "command line" makes sense, this is typically a list of command-line arguments, but for other platforms it could be anything. extra_link_args : [string] any extra platform- and compiler-specific information to use when linking object files together to create the extension (or to create a new static Python interpreter). Similar interpretation as for 'extra_compile_args'. export_symbols : [string] list of symbols to be exported from a shared extension. Not used on all platforms, and not generally necessary for Python extensions, which typically export exactly one symbol: "init" + extension_name. swig_opts : [string] any extra options to pass to SWIG if a source file has the .i extension. depends : [string] list of files that the extension depends on language : string extension language (i.e. "c", "c++", "objc"). Will be detected from the source extensions if not provided. optional : boolean specifies that a build failure in the extension should not abort the build process, but simply not install the failing extension. NcKst|tstdnt|toCtdd|DsUtdn||_||_|ppg|_|pg|_|pg|_ |pg|_ |pg|_ |pg|_ | pg|_ | pg|_| pg|_| pg|_| pg|_|pg|_||_||_t|dkrdd|D}djt|}d |}tj|ndS) Nz'name' must be a stringcss|]}t|tVqdS)N) isinstancestr).0vr8/opt/alt/python34/lib64/python3.4/distutils/extension.py ksz%Extension.__init__..z#'sources' must be a list of stringsrcSsg|]}t|qSr)repr)rZoptionrrr s z&Extension.__init__..z, zUnknown Extension options: %s)rrAssertionErrorlistallnamesources include_dirs define_macros undef_macros library_dirs librariesruntime_library_dirs extra_objectsextra_compile_argsextra_link_argsexport_symbols swig_optsdependslanguageoptionallenjoinsortedwarningswarn)selfrrrrrrrrrrrrrrrrkwZoptionsmsgrrr__init__Ws4     zExtension.__init__)__name__ __module__ __qualname____doc__r'rrrrrs ?rcCsddlm}m}m}ddlm}ddlm}||}||ddddddd dd d}z-g}x |j} | d krPn|j | rq~n| d| d(kod knr|j d | q~n|| |} || } | d} t | g} d } xf| dd D]T}| d k r`| j |d } q5nt jj|d}|dd}|dd }|d)kr| jj |q5|dkr| jj |q5|dkrE|jd}|d*kr| jj |d fq| jj |d|||dd fq5|dkrd| jj |q5|dkr| jj |q5|dkr| jj |q5|dkr| jj |q5|dkr| jj |q5|dkr| j} q5|dkr| j} q5|d kr(| j} q5|d!krY| jj ||s| j} qq5|d+krx| jj |q5|j d'|q5W|j | q~WWd |jX|S),z3Reads a Setup file and returns Extension instances.r)parse_makefileexpand_makefile_vars _variable_rx)TextFile) split_quotedZstrip_commentsZ skip_blanksZ join_linesZ lstrip_wsZ rstrip_wsN*z'%s' lines not handled yet.c.cc.cpp.cxx.c++.m.mmz-Iz-D=z-Uz-Cz-lz-Lz-Rz-rpathz-Xlinkerz -Xcompilerz-u.a.so.sl.o.dylibzunrecognized argument '%s')r4r5r6r7r8r9r:rA)r<r=r>r?r@)Zdistutils.sysconfigr,r-r.Zdistutils.text_filer/Zdistutils.utilr0readlinematchr#rappendospathsplitextrrfindrrrrrrrrclose)filenamer,r-r.r/r0varsfile extensionslineZwordsmoduleZextZappend_next_wordZwordsuffixZswitchvalueZequalsrrrread_setup_files    $                      rR)r+rEsysr"rrRrrrrs    rPK!} __pycache__/log.cpython-34.pycnu[ i ft@sdZdZdZdZdZdZddlZGdd d ZeZej Z ej Z ej Z ej Z ej Z ejZd d Zd d ZdS)z,A simple log mechanism styled after PEP 282.Nc@sseZdZeddZddZddZddZd d Zd d Z d dZ ddZ dS)LogcCs ||_dS)N) threshold)selfrr 2/opt/alt/python34/lib64/python3.4/distutils/log.py__init__sz Log.__init__cCs|tttttfkr4tdt|n||jkr|rV||}n|tttfkrwtj }n tj }|j dkr|j }|j |dj|}n|jd||jndS)Nz%s wrong log levelstrictbackslashreplacez%s )DEBUGINFOWARNERRORFATAL ValueErrorstrrsysstderrstdouterrorsencodingencodedecodewriteflush)r levelmsgargsstreamrr r r _logs    zLog._logcGs|j|||dS)N)r#)r rr r!r r r log%szLog.logcGs|jt||dS)N)r#r)r r r!r r r debug(sz Log.debugcGs|jt||dS)N)r#r)r r r!r r r info+szLog.infocGs|jt||dS)N)r#r)r r r!r r r warn.szLog.warncGs|jt||dS)N)r#r)r r r!r r r error1sz Log.errorcGs|jt||dS)N)r#r)r r r!r r r fatal4sz Log.fatalN) __name__ __module__ __qualname__rr r#r$r%r&r'r(r)r r r r rs       rcCstj}|t_|S)N) _global_logr)roldr r r set_threshold?s  r/cCsO|dkrttn2|dkr2ttn|dkrKttndS)Nrrr)r/rrr)vr r r set_verbosityEs      r1)__doc__rrrrrrrr-r$r%r&r'r(r)r/r1r r r r s  )        PK!~%,ZZ#__pycache__/dir_util.cpython-34.pycnu[ i fb@sdZddlZddlZddlmZmZddlmZiadddddZ dddd d Z ddddddd d Z d dZ ddddZ ddZdS)zWdistutils.dir_util Utility functions for manipulating directories and directory trees.N)DistutilsFileErrorDistutilsInternalError)logic Cst|ts%td|fntjj|}g}tjj|s[|dkr_|Stjtjj |r~|Stjj |\}}|g}xK|r|rtjj| rtjj |\}}|j d|qWx |D]}tjj ||}tjj |} tj| r6qn|dkrUt jd|n|sytj||Wnitk r} zI| jtjkotjj|std|| jdfnWYdd} ~ XnX|j|ndt|  "  $0r$cCsvt}x6|D].}|jtjj|tjj|qWx-t|D]}t||d|d|qOWdS)aCreate all the empty directories under 'base_dir' needed to put 'files' there. 'base_dir' is just the name of a directory which doesn't necessarily exist yet; 'files' is a list of filenames to be interpreted relative to 'base_dir'. 'base_dir' + the directory portion of every file in 'files' will be created if it doesn't already exist. 'mode', 'verbose' and 'dry_run' flags are as for 'mkpath()'. rrN)setaddr r rdirnamesortedr$)Zbase_dirfilesrrrZneed_dirfiledirr"r"r# create_treePs  ,r,cCsddlm}| r=tjj| r=td|nytj|} WnMtk r} z-|rtg} ntd|| jfWYdd} ~ XnX|st |d|ng} x1| D])} tjj || } tjj || }| j dr qn|r}tjj | r}tj | }|dkrTtjd ||n|smtj||n| j|qtjj| r| jt| |||||d|d |q|| ||||d|d || j|qW| S) aCopy an entire directory tree 'src' to a new location 'dst'. Both 'src' and 'dst' must be directory names. If 'src' is not a directory, raise DistutilsFileError. If 'dst' does not exist, it is created with 'mkpath()'. The end result of the copy is that every file in 'src' is copied to 'dst', and directories under 'src' are recursively copied to 'dst'. Return the list of files that were copied or might have been copied, using their output name. The return value is unaffected by 'update' or 'dry_run': it is simply the list of all files under 'src', with the names changed to be under 'dst'. 'preserve_mode' and 'preserve_times' are the same as for 'copy_file'; note that they only apply to regular files, not to directories. If 'preserve_symlinks' is true, symlinks will be copied as symlinks (on platforms that support them!); otherwise (the default), the destination of the symlink will be copied. 'update' and 'verbose' are the same as for 'copy_file'. r) copy_filez&cannot copy tree '%s': not a directoryzerror listing files in '%s': %sNrz.nfsrzlinking %s -> %sr)Zdistutils.file_utilr-r r r rlistdirrstrerrorr$r startswithislinkreadlinkrrsymlinkrextend copy_tree)srcZdstZ preserve_modeZpreserve_timesZpreserve_symlinksupdaterrr-nameseZoutputsnZsrc_nameZdst_nameZ link_destr"r"r#r5csH )     r5cCsxwtj|D]f}tjj||}tjj|r`tjj| r`t||q|jtj|fqW|jtj |fdS)zHelper for remove_tree().N) r r.r rr r1_build_cmdtuplerremovermdir)r cmdtuplesfZreal_fr"r"r#r;s %r;cCs|dkrtjd|n|r)dSg}t||x|D]}yB|d|dtjj|d}|tkrt|=nWqCtk r}ztjd||WYdd}~XqCXqCWdS)zRecursively remove an entire directory tree. Any errors are ignored (apart from being reported to stdout if 'verbose' is true). rz'removing '%s' (and everything under it)Nrzerror removing %s: %s) rrr;r r rrrwarn)Z directoryrrr>cmdrr!r"r"r# remove_trees    rBcCsLtjj|\}}|ddtjkrH||dd}n|S)zTake the full path 'path', and make it a relative path. This is useful to make 'path' the second argument to os.path.join(). rrN)r r splitdrivesep)r Zdriver"r"r#ensure_relativesrE)__doc__r rZdistutils.errorsrrZ distutilsrrr$r,r5r;rBrEr"r"r"r#s  ?D PK!r]JJ(__pycache__/msvc9compiler.cpython-34.pyonu[ i f3w@sdZddlZddlZddlZddlZddlmZmZmZm Z m Z ddl m Z m Z mZddlmZddlmZddlZejZejZejZejZejejejejfZ ej!dkoej"d'kZ#e#r!d Z$d Z%d Z&nd Z$dZ%dZ&idd6dd6dd6Z'GdddZ(GdddZ)ddZ*ddZ+ddZ,dd Z-dd!d"Z.e*Z/e/d#kred$e/nGd%d&d&e Z0dS)(a distutils.msvc9compiler Contains MSVCCompiler, an implementation of the abstract CCompiler class for the Microsoft Visual Studio 2008. The module is compatible with VS 2005 and VS 2008. You can find legacy support for older versions of VS in distutils.msvccompiler. N)DistutilsExecErrorDistutilsPlatformError CompileErrorLibError LinkError) CCompilergen_preprocess_optionsgen_lib_options)log) get_platformwin32 z1Software\Wow6432Node\Microsoft\VisualStudio\%0.1fz5Software\Wow6432Node\Microsoft\Microsoft SDKs\Windowsz,Software\Wow6432Node\Microsoft\.NETFrameworkz%Software\Microsoft\VisualStudio\%0.1fz)Software\Microsoft\Microsoft SDKs\Windowsz Software\Microsoft\.NETFrameworkx86amd64z win-amd64Zia64zwin-ia64c@sveZdZdZddZeeZddZeeZddZeeZdd Ze eZd S) Regz2Helper class to read values from the registry cCsMx:tD]2}|j||}|r||kr||SqWt|dS)N)HKEYS read_valuesKeyError)clspathkeybasedrz$(FrameworkVersion)) r@r;NET_BASErr WINSDK_BASErrrr rrr9)r=r>prhrrrrrr<s.       zMacroExpander.load_macroscCs6x/|jjD]\}}|j||}qW|S)N)r9itemsreplace)r=r1r%vrrrsubszMacroExpander.subN)r2r3r4r?r@r<rIrrrrr8{s    r8cCsd}tjj|}|d kr(dS|t|}tj|djdd\}}t|dd d}t|ddd}|dkrd }n|dkr||SdS) zReturn the version of MSVC that was used to build Python. For Python 2.3 and up, the version number is included in sys.version. For earlier versions, assume the compiler is MSVC 6. zMSC v.rN r g$@r)sysr>findlensplitint)prefixr$r1restZ majorVersionZ minorVersionrrrget_build_versions %   rVcCsIg}x<|D]4}tjj|}||kr |j|q q W|S)znReturn a list of normalized paths with duplicates removed. The current order of paths is maintained. )osrnormpathr!)pathsZ reduced_pathsrDZnprrrnormalize_and_reduce_pathss   rZcCs[|jtj}g}x*|D]"}||kr|j|qqWtjj|}|S)z8Remove duplicate values of an environment variable. )rRrWpathsepr!join)ZvariableZoldListZnewListr$Z newVariablerrrremoveDuplicatess  r]c Csat|}ytjd|d}Wn%tk rKtjdd}YnX| sftjj| rd|}tj j |d}|rtjj|rtjj |tj tj d}tjj |}tjj|s tjd|dSqtjd|n|s%tjd dStjj |d }tjj|rP|Stjd dS) zFind the vcvarsall.bat file At first it tries to find the productdir of VS 2008 in the registry. If that fails it falls back to the VS90COMNTOOLS env var. z %s\Setup\VCrAz%Unable to find productdir in registryNzVS%0.f0COMNTOOLSZVCz%s is not a valid directoryz Env var %s is not set or invalidzNo productdir foundz vcvarsall.batzUnable to find vcvarsall.bat)r:rrrr debugrWrisdirenvirongetr\pardirabspathisfile)r>r;rAZtoolskeyZtoolsdir vcvarsallrrrfind_vcvarsalls2       !  rfc Cst|}td}i}|dkr9tdntjd||tjd||fd tjd tj}z|j\}}|j d krt|j d n|j d }x|j d D]}t j |}d|krqn|j}|j dd\} } | j} | |kr| jtjr]| dd} nt| || ZarchreZ interestingresultpopenrjrklinerr+rrrquery_vcvarsalls<          !r}g @z(VC %0.1f is not supported by this modulec @seZdZdZdZiZdgZdddgZdgZdgZ eeee Z d Z d Z d Z d Zd ZZdZdddddZdddZddddZdddddddddZdddddZdddddddddddd ZddZd d!Zd"d#Zd$d%Zd&d'Zd(d)Zdd*d+Zd,d-ZdS). MSVCCompilerzwConcrete class that implements an interface to Microsoft Visual C++, as defined by the CCompiler abstract class.Zmsvcz.cz.ccz.cppz.cxxz.rcz.mcz.resz.objz.libz.dllz%s%sz.exercCsPtj||||t|_d|_g|_d|_d|_d|_dS)NzSoftware\Microsoft\VisualStudioF) rr?VERSION_MSVCCompiler__versionZ_MSVCCompiler__root_MSVCCompiler__paths plat_name_MSVCCompiler__arch initialized)r=verboseZdry_runZforcerrrr?Gs     zMSVCCompiler.__init__NcCs|dkrt}nd$}||kr@td|fndtjkrdtjkr|jdrd|_d|_d |_d |_d |_ n|tks|dkrt |}nt td t |}t t |}|d j tj|_|dtjd<|dtjd|)rz*\s*zI|)w) openreadrurerDOTALLrIsearchwriteOSError)r=Z manifest_fileZ manifest_fZ manifest_bufpatternrrrrs.      z!MSVCCompiler._remove_visual_c_refcCsd|S)Nz /LIBPATH:r)r=dirrrrlibrary_dir_optionszMSVCCompiler.library_dir_optioncCstddS)NzsP    (        >.   #)  PK!)44$__pycache__/sysconfig.cpython-34.pycnu[ i fZS @sdZddlZddlZddlZddlmZejjejZ ejjej Z ejjej Z ejjejZdejkrejjejdZn!ejjejjejZejdkr/ded1djkr/ejjejjeejjZnejdkrd ed2djkrejjejjeejjejjZnejdkrd ed3djkrejjejjeejjejjZnd dZeeddZerlejdkrlejjd4rlejjeZejdrlejjeZqlnddZeZdZyesej ZnWne!k rYnXddZ"ddddZ#dddddZ$ddZ%ddZ&ddZ'dd d!Z(ej)d"Z*ej)d#Z+ej)d$Z,dd%d&Z-d'd(Z.da/d)d*Z0d+d,Z1d-d.Z2d/d0Z3dS)5aProvide access to Python's configuration information. The specific configuration variables available depend heavily on the platform and configuration. The values may be retrieved using get_config_var(name), and the list of variables is available via get_config_vars().keys(). Additional convenience functions are also available. Written by: Fred L. Drake, Jr. Email: N)DistutilsPlatformErrorZ_PYTHON_PROJECT_BASEntpcbuildz\pc\v z\pcbuild\amd64cCs=x6dD].}tjjtjj|d|rdSqWdS)N Setup.dist Setup.localModulesTF)r r )ospathisfilejoin)dfnr8/opt/alt/python34/lib64/python3.4/distutils/sysconfig.py_is_python_source_dir0s $r_home pcbuild\amd64cCstrttSttS)N) _sys_homer project_baserrrr _python_build;s rcCstjddS)zReturn a string containing the major and minor Python version, leaving off the patchlevel. Sample return values could be '1.5' or '2.2'. N)sysversionrrrrget_python_versionMsrcCs|dkr!|rtpt}ntjdkrtrtp?t}|rL|Strptjjtt d}ntjjt dd}tjj |Sdt t }tjj|d|Stjdkrtjj|dSt d tjdS) aReturn the directory containing installed Python header files. If 'plat_specific' is false (the default), this is the path to the non-platform-specific header files, i.e. Python.h and so on; otherwise, this is the path to platform-specific header files (namely pyconfig.h). If 'prefix' is supplied, use it instead of sys.base_prefix or sys.base_exec_prefix -- i.e., ignore 'plat_specific'. Nposix AST_H_DIRsrcdirIncludepythonincluderzFI don't know where Python installs its C header files on platform '%s')BASE_EXEC_PREFIX BASE_PREFIXr name python_buildrrr rget_config_varnormpathr build_flagsr) plat_specificprefixbaseZincdirZ python_dirrrrget_python_incUs$  r/cCs|dkr<|r'|rtp!t}q<|r3tp6t}ntjdkr|sW|r`d}nd}tjj||dt}|r|Stjj|dSnTtjdkr|rtjj|dStjj|ddSnt d tjdS) aSReturn the directory containing the Python library (standard or site additions). If 'plat_specific' is true, return the directory containing platform-specific modules, i.e. any module from a non-pure-Python module distribution; otherwise, return the platform-shared library directory. If 'standard_lib' is true, return the directory containing standard Python library modules; otherwise, return the directory for site-specific modules. If 'prefix' is supplied, use it instead of sys.base_prefix or sys.base_exec_prefix -- i.e., ignore 'plat_specific'. Nrlib64libr#z site-packagesrZLibz?I don't know where Python installs its library on platform '%s') r%r& EXEC_PREFIXPREFIXr r'r rrr)r, standard_libr-r1Z libpythonrrrget_python_lib{s(    r5cCs|jdkrtjdkrStdsSddl}|jtdtdd|}t|drb|d|j}nt|WYdd}~XnXy/t}t|}t||WdQXWn^tk r}z>d|}t|dr|d|j}nt|WYdd}~XnXt r(|d|d|dkr.ddl}|jdtdntj|S)zReturn the value of a single variable using the dictionary returned by 'get_config_vars()'. Equivalent to get_config_vars().get(name) rrNz SO is deprecated, use EXT_SUFFIXrU)warningswarnDeprecationWarningrJr)r'rrrrr)1s  r)iii)rr)4__doc__r rVrrgrr r*r-r3rr2 base_prefixr&base_exec_prefixr%rKrrrrr'lowerrpardirrgetattrrendswithrr(r+abiflagsAttributeErrorrr/r5rHrQrTrerWrkrorqrrrIrrrJr)rrrr sf   !+*++     &+ I m  $  JPK!pp __pycache__/spawn.cpython-34.pycnu[ i fZ@sdZddlZddlZddlmZmZddlmZddlm Z dddddZ d d Z dddd d Z ej d krddlmZdadandddddZdddZdS)zdistutils.spawn Provides the 'spawn()' function, a front-end to various platform- specific functions for launching another program in a sub-process. Also provides the 'find_executable()' to search the path for a given executable name. N)DistutilsPlatformErrorDistutilsExecError)DEBUG)logcCsmt|}tjdkr1t||d|n8tjdkrVt||d|ntdtjdS)aRun another program, specified as a command list 'cmd', in a new process. 'cmd' is just the argument list for the new process, ie. cmd[0] is the program to run and cmd[1:] are the rest of its arguments. There is no way to run a program with a name different from that of its executable. If 'search_path' is true (the default), the system's executable search path will be used to find the program; otherwise, cmd[0] must be the exact path to the executable. If 'dry_run' is true, the command will not actually be run. Raise DistutilsExecError if running the program fails in any way; just return on success. posixdry_runntz1don't know how to spawn programs on platform '%s'N)listosname _spawn_posix _spawn_ntr)cmd search_pathverboserr4/opt/alt/python34/lib64/python3.4/distutils/spawn.pyspawns rcCs>x7t|D])\}}d|kr d|||ts|}ntjjd || jftjd WYdd} ~ XnXts|}ntjjd |tjd nkxhytj| d\} } Wnutk r} zUddl} | j| jkrcwntsr|}ntd|| jdfWYdd} ~ XnXtj| rts|}ntd|tj | fqtj!| r8tj"| }|dkrdSts|}ntd||fqtj#| rMqqts\|}ntd|| fqWdS)Nrrr%MACOSX_DEPLOYMENT_TARGETcSsg|]}t|qSr)int).0xrrr es z _spawn_posix...cSsg|]}t|qSr)r))r*r+rrrr,ks zF$MACOSX_DEPLOYMENT_TARGET mismatch: now "%s" but "%s" during configurezunable to execute %r: %s rz(unable to execute %r for unknown reasonszcommand %r failed: %sz"command %r terminated by signal %dz%command %r failed with exit status %dz1unknown error executing %r: termination status %dr)$rrrr execvpexecvsysplatform _cfg_targetr&get_config_varsplit_cfg_target_splitenvirongetrdictexecvpeexecveforkr!rstderrwritestrerror_exitwaitpiderrnoZEINTRrr WIFSIGNALEDWTERMSIG WIFEXITED WEXITSTATUS WIFSTOPPED)rrrrr"Zexec_fnenvZ cur_targetZmy_msgpideZstatusr$rAZ exit_statusrrrr Xs  ""            -    r cCs|dkrtjd}n|jtj}tjj|\}}tjdkrn|dkrn|d}ntjj|sx9|D]1}tjj ||}tjj|r|SqWdS|SdS)zTries to find 'executable' in the directories listed in 'path'. A string listing directories separated by 'os.pathsep'; defaults to os.environ['PATH']. Returns the complete filename or None if not found. NPATHwin32z.exe) r r6r4pathseppathsplitextr0r1isfiler)r"rMpathsbaseZextpfrrrrs   r)__doc__r0r Zdistutils.errorsrrZdistutils.debugrZ distutilsrrrrr1r&r2r5r rrrrrs    TPK!dau __pycache__/debug.cpython-34.pyonu[ h f@s"ddlZejjdZdS)NZDISTUTILS_DEBUG)osenvirongetDEBUGrr4/opt/alt/python34/lib64/python3.4/distutils/debug.pys PK!B+/K/K(__pycache__/msvc9compiler.cpython-34.pycnu[ i f3w@sdZddlZddlZddlZddlZddlmZmZmZm Z m Z ddl m Z m Z mZddlmZddlmZddlZejZejZejZejZejejejejfZ ej!dkoej"d'kZ#e#r!d Z$d Z%d Z&nd Z$dZ%dZ&idd6dd6dd6Z'GdddZ(GdddZ)ddZ*ddZ+ddZ,dd Z-dd!d"Z.e*Z/e/d#kred$e/nGd%d&d&e Z0dS)(a distutils.msvc9compiler Contains MSVCCompiler, an implementation of the abstract CCompiler class for the Microsoft Visual Studio 2008. The module is compatible with VS 2005 and VS 2008. You can find legacy support for older versions of VS in distutils.msvccompiler. N)DistutilsExecErrorDistutilsPlatformError CompileErrorLibError LinkError) CCompilergen_preprocess_optionsgen_lib_options)log) get_platformwin32 z1Software\Wow6432Node\Microsoft\VisualStudio\%0.1fz5Software\Wow6432Node\Microsoft\Microsoft SDKs\Windowsz,Software\Wow6432Node\Microsoft\.NETFrameworkz%Software\Microsoft\VisualStudio\%0.1fz)Software\Microsoft\Microsoft SDKs\Windowsz Software\Microsoft\.NETFrameworkx86amd64z win-amd64Zia64zwin-ia64c@sveZdZdZddZeeZddZeeZddZeeZdd Ze eZd S) Regz2Helper class to read values from the registry cCsMx:tD]2}|j||}|r||kr||SqWt|dS)N)HKEYS read_valuesKeyError)clspathkeybasedrz$(FrameworkVersion)) r@r;NET_BASErr WINSDK_BASErrrr rrr9)r=r>prhrrrrrr<s.       zMacroExpander.load_macroscCs6x/|jjD]\}}|j||}qW|S)N)r9itemsreplace)r=r1r%vrrrsubszMacroExpander.subN)r2r3r4r?r@r<rIrrrrr8{s    r8cCsd}tjj|}|d kr(dS|t|}tj|djdd\}}t|dd d}t|ddd}|dkrd }n|dkr||SdS) zReturn the version of MSVC that was used to build Python. For Python 2.3 and up, the version number is included in sys.version. For earlier versions, assume the compiler is MSVC 6. zMSC v.rN r g$@r)sysr>findlensplitint)prefixr$r1restZ majorVersionZ minorVersionrrrget_build_versions %   rVcCsIg}x<|D]4}tjj|}||kr |j|q q W|S)znReturn a list of normalized paths with duplicates removed. The current order of paths is maintained. )osrnormpathr!)pathsZ reduced_pathsrDZnprrrnormalize_and_reduce_pathss   rZcCs[|jtj}g}x*|D]"}||kr|j|qqWtjj|}|S)z8Remove duplicate values of an environment variable. )rRrWpathsepr!join)ZvariableZoldListZnewListr$Z newVariablerrrremoveDuplicatess  r]c Csat|}ytjd|d}Wn%tk rKtjdd}YnX| sftjj| rd|}tj j |d}|rtjj|rtjj |tj tj d}tjj |}tjj|s tjd|dSqtjd|n|s%tjd dStjj |d }tjj|rP|Stjd dS) zFind the vcvarsall.bat file At first it tries to find the productdir of VS 2008 in the registry. If that fails it falls back to the VS90COMNTOOLS env var. z %s\Setup\VCrAz%Unable to find productdir in registryNzVS%0.f0COMNTOOLSZVCz%s is not a valid directoryz Env var %s is not set or invalidzNo productdir foundz vcvarsall.batzUnable to find vcvarsall.bat)r:rrrr debugrWrisdirenvirongetr\pardirabspathisfile)r>r;rAZtoolskeyZtoolsdir vcvarsallrrrfind_vcvarsalls2       !  rfc Cst|}td}i}|dkr9tdntjd||tjd||fd tjd tj}z|j\}}|j d krt|j d n|j d }x|j d D]}t j |}d|krqn|j}|j dd\} } | j} | |kr| jtjr]| dd} nt| || ZarchreZ interestingresultpopenrjrklinerr+rrrquery_vcvarsalls<          !r}g @z(VC %0.1f is not supported by this modulec @seZdZdZdZiZdgZdddgZdgZdgZ eeee Z d Z d Z d Z d Zd ZZdZdddddZdddZddddZdddddddddZdddddZdddddddddddd ZddZd d!Zd"d#Zd$d%Zd&d'Zd(d)Zdd*d+Zd,d-ZdS). MSVCCompilerzwConcrete class that implements an interface to Microsoft Visual C++, as defined by the CCompiler abstract class.Zmsvcz.cz.ccz.cppz.cxxz.rcz.mcz.resz.objz.libz.dllz%s%sz.exercCsPtj||||t|_d|_g|_d|_d|_d|_dS)NzSoftware\Microsoft\VisualStudioF) rr?VERSION_MSVCCompiler__versionZ_MSVCCompiler__root_MSVCCompiler__paths plat_name_MSVCCompiler__arch initialized)r=verboseZdry_runZforcerrrr?Gs     zMSVCCompiler.__init__NcCs|j std|dkr.t}nd%}||krVtd|fndtjkrdtjkr|jdrd|_d |_d |_ d |_ d |_ n|tks|dkrt |}nt td t |}t t|}|djtj|_|dtjd<|dtjd|)rz*\s*zI|)w) openreadrurerDOTALLrIsearchwriteOSError)r=Z manifest_fileZ manifest_fZ manifest_bufpatternrrrrs.      z!MSVCCompiler._remove_visual_c_refcCsd|S)Nz /LIBPATH:r)r=dirrrrlibrary_dir_optionszMSVCCompiler.library_dir_optioncCstddS)NzsP    (        >.   #)  PK!|__pycache__/dist.cpython-34.pyonu[ i fz @sdZddlZddlZddlZddlmZyddlZWnek rddZYnXddlTddl m Z m Z ddl m Z mZmZddlmZddlmZejd ZGd d d ZGd d d ZddZdS)z}distutils.dist Provides the Distribution class, which represents the module distribution being built/installed/distributed. N)message_from_file)*) FancyGetopttranslate_longopt) check_environ strtobool rfc822_escape)log)DEBUGz^[a-zA-Z]([a-zA-Z0-9_]*)$c@s%eZdZdZd~ddddgZdZdddddddddddddddddddddgZd>d?eDZidd6Zdd@dAZ dBdCZ dddDdEdFZ dGdHZ ddIdJZ dKdLZdMdNZdOdPZdQdRZddgdSdTZdUdVZdWdXZdYdZZd[d\Zd]d^Zd_d`ZddadbZddcddZdedfdgZejdhdiZdjdkZdldmZ dndoZ!dpdqZ"drdsZ#dtduZ$dvdwZ%dxdyZ&dzd{Z'd|d}Z(dS) DistributionaThe core of the Distutils. Most of the work hiding behind 'setup' is really done within a Distribution instance, which farms the work out to the Distutils commands specified on the command line. Setup scripts will almost never instantiate Distribution directly, unless the 'setup()' function is totally inadequate to their needs. However, it is conceivable that a setup script might wish to subclass Distribution for some specialized purpose, and then pass the subclass to 'setup()' as the 'distclass' keyword argument. If so, it is necessary to respect the expectations that 'setup' has of Distribution. See the code for 'setup()', in core.py, for details. verbosevrun verbosely (default)quietq!run quietly (turns verbosity off)dry-runndon't actually do anythinghelphshow detailed help message no-user-cfgN-ignore pydistutils.cfg in your home directoryzCommon commands: (see '--help-commands' for more) setup.py build will build the package underneath 'build/' setup.py install will install the package help-commandslist all available commandsnameprint package nameversionVprint package versionfullnameprint -authorprint the author's name author-email print the author's email address maintainerprint the maintainer's namemaintainer-email$print the maintainer's email addresscontact7print the maintainer's name if known, else the author's contact-email@print the maintainer's email address if known, else the author'surlprint the URL for this packagelicense print the license of the packagelicencealias for --license descriptionprint the package descriptionlong-description"print the long package description platformsprint the list of platforms classifiersprint the list of classifierskeywordsprint the list of keywordsprovides+print the list of packages/modules providedrequires+print the list of packages/modules required obsoletes0print the list of packages/modules made obsoletecCs g|]}t|dqS)r)r).0xrH3/opt/alt/python34/lib64/python3.4/distutils/dist.py qs zDistribution.cCsid|_d|_d|_x!|jD]}t||dq%Wt|_x:|jjD],}d|}t||t|j|qXWi|_ d|_ d|_ d|_ i|_ g|_d|_i|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_i|_i|_|r|jd}|dk r|d=xY|jD]H\}}|j |}x*|jD]\} } d| f|| r:NcSsg|]}|jqSrH)strip)rFZelmrHrHrIrJ_s z1Distribution.finalize_options..,)zkeywordsz platforms)rVrTrstrrrR)rrrsrrHrHrIrqUs  zDistribution.finalize_optionsc Csvddlm}ddlm}|rr|r;|j}n |j}|j||j|jdt dn|r|j|j |jddt dnx|j D]}t |t rt||r|} n|j|} t| dr-t | jtr-|j| jt| jn|j| j|jd | jt dqWt ||jd S) abShow help for the setup script command-line in the form of several lists of command-line options. 'parser' should be a FancyGetopt instance; do not expect it to be returned in the same state, as its option table will be reset to make it generate the correct help text. If 'global_options' is true, lists the global options: --verbose, --dry-run, etc. If 'display_options' is true, lists the "display-only" options: --name, --version, etc. Finally, lists per-command help for every command name or command class in 'commands'. r) gen_usage)rz Global options:rLz*Information display options (just display z!information, ignore any commands)rzOptions for '%s' command:N)distutils.corerrrrrrZ print_help common_usageprintrrrtyperrrmrrrrrrY) rrrrrrrrrMruklassrHrHrIrbs6      zDistribution._show_helpc Csddlm}|jrD|jtdt||jdSd}i}x|jD]}d||dr:rr<r@rBrDrN)zkeywordsz platforms)z classifierszprovideszrequiresz obsoletes) rrZ help_commandsprint_commandsrrYrrerrVrTr) rrrrZany_display_optionsZis_display_optionoptionrwrxrrHrHrIrs,        z#Distribution.handle_display_optionscCst|dxw|D]o}|jj|}|sE|j|}ny |j}Wntk rld}YnXtd|||fqWdS)zZPrint a subset of the list of all commands -- used by 'print_commands()'. :z(no description available)z %-*s %sN)rrWrerr6AttributeError)rrrr max_lengthcmdrr6rHrHrIprint_command_lists    zDistribution.print_command_listcCsddl}|jj}i}x|D]}d||Get a list of (command, description) tuples. The list is divided into "standard commands" (listed in distutils.command.__all__) and "extra commands" (mentioned in self.cmdclass, but not a standard command). The descriptions come from the command class attribute 'description'. rNrz(no description available)) rrurrWrrerrr6r) rrrrrrrrvrr6rHrHrIget_command_lists(      zDistribution.get_command_listcCsx|j}t|tst|dkr-d}ndd|jdD}d|krh|jddn||_n|S)z9Return a list of packages from which commands are loaded.NrLcSs(g|]}|dkr|jqS)rL)r)rFZpkgrHrHrIrJs z5Distribution.get_command_packages..rzdistutils.commandr)rXrrrinsert)rrZpkgsrHrHrIget_command_packagess     z!Distribution.get_command_packagescCs|jj|}|r|Sx|jD]}d||f}|}yt|tj|}Wntk rww)YnXyt||}Wn+tk rt d|||fYnX||j|<|SWt d|dS)aoReturn the class that implements the Distutils command named by 'command'. First we check the 'cmdclass' dictionary; if the command is mentioned there, we fetch the class object from the dictionary and return it. Otherwise we load the command module ("distutils.command." + command) and fetch the command class from the module. The loaded class is also stored in 'cmdclass' to speed future calls to 'get_command_class()'. Raises DistutilsModuleError if the expected module could not be found, or if that module does not define the expected class. z%s.%sz3invalid command '%s' (no class '%s' in module '%s')zinvalid command '%s'N) rWrer __import__rjr ImportErrorrVrr)rrrurZpkgnameZ module_nameZ klass_namemodulerHrHrIrs(     zDistribution.get_command_classcCs|jj|}| r|rtr9|jd|n|j|}||}|j|.z1error in %s: command '%s' has no such option '%s')get_command_namergr rrfZboolean_optionsrrrrrRrrmrr) rrrcZ option_dict command_namersourcerZ bool_optsZneg_optZ is_stringryrHrHrIr]s>        z!Distribution._set_command_optionsrcCsddlm}t||s7|}|j|}n |j}|jsP|S|jd|_d|j|<|j||rx'|j D]}|j ||qWn|S)aReinitializes a command to the state it was in when first returned by 'get_command_obj()': ie., initialized but not yet finalized. This provides the opportunity to sneak option values in programmatically, overriding or supplementing user-supplied values from the config files and command line. You'll have to re-finalize the command object (by calling 'finalize_options()' or 'ensure_finalized()') before using it for real. 'command' should be a command name (string) or command object. If 'reinit_subcommands' is true, also reinitializes the command's sub-commands, as declared by the 'sub_commands' class attribute (if it has one). See the "install" command for an example. Only reinitializes the sub-commands that actually matter, ie. those whose test predicates return true. Returns the reinitialized command object. r)r) rrrrrZ finalizedZinitialize_optionsrdrZget_sub_commandsreinitialize_command)rrruZreinit_subcommandsrrsubrHrHrIrs      z!Distribution.reinitialize_commandcCstj||dS)N)r )rrrylevelrHrHrIrszDistribution.announcecCs%x|jD]}|j|q WdS)zRun each command that was seen on the setup script command line. Uses the list of commands found and cache of command objects created by 'get_command_obj()'. N)r run_command)rrrrHrHrI run_commandsszDistribution.run_commandscCsZ|jj|rdStjd||j|}|j|jd|j|Zd?d@ZdAdBZdCdDZdEdFZdGdHZdIdJZdKdLZ dMdNZ!dS)PrSz]Dummy class to hold the distribution meta-data: name, version, author, and so forth. rrr$ author_emailr(maintainer_emailr0r2r6long_descriptionr>r:r"r, contact_emailr< download_urlr@rBrDNcCs|dk r"|jt|nd|_d|_d|_d|_d|_d|_d|_d|_ d|_ d|_ d|_ d|_ d|_d|_d|_d|_d|_dS)N) read_pkg_fileopenrrr$rr(rr0r2r6r r>r:r<r r@rBrD)rrrrHrHrIr|s&                 zDistributionMetadata.__init__cst|fdd}fdd}d}|d|_|d|_|d|_|d |_d |_|d |_d |_|d |_|d |_ dkr|d|_ n d |_ |d|_ |d|_dkr!|dj d|_ n|d|_|d|_|dkr{|d|_|d|_|d|_nd |_d |_d |_d S)z-Reads the metadata values from a file object.cs|}|dkrdS|S)NUNKNOWNrH)rr)ryrHrI _read_fields  z7DistributionMetadata.read_pkg_file.._read_fieldcs&j|d}|gkr"dS|S)N)Zget_all)rvalues)ryrHrI _read_list%s z6DistributionMetadata.read_pkg_file.._read_listzmetadata-versionrrZsummaryr$Nz author-emailz home-pager2z download-urlr6r>rplatformZ classifierz1.1rBr@rD)rrrr6r$r(rrr0r2r r rr>r:r<rBr@rD)rrfilerrZmetadata_versionrH)ryrIr s:          z"DistributionMetadata.read_pkg_filec Cs>ttjj|dddd}|j|WdQXdS)z7Write the PKG-INFO file into the release tree. zPKG-INFOwencodingzUTF-8N)r rrrwrite_pkg_file)rrZbase_dirZpkg_inforHrHrIwrite_pkg_infoOs z#DistributionMetadata.write_pkg_infocCsd}|js3|js3|js3|js3|jr<d}n|jd||jd|j|jd|j|jd|j|jd|j |jd|j |jd |j |jd |j |jr|jd |jnt |j}|jd |d j|j}|r`|jd|n|j|d|j|j|d|j|j|d|j|j|d|j|j|d|jdS)z9Write the PKG-INFO format data to a file object. z1.0z1.1zMetadata-Version: %s z Name: %s z Version: %s z Summary: %s zHome-page: %s z Author: %s zAuthor-email: %s z License: %s zDownload-URL: %s zDescription: %s rz Keywords: %s ZPlatformZ ClassifierZRequiresZProvidesZ ObsoletesN)r@rBrDr<r rlget_name get_versionget_descriptionget_url get_contactget_contact_email get_licenserget_long_descriptionr get_keywords _write_list get_platformsget_classifiers get_requires get_provides get_obsoletes)rrrrZ long_descr>rHrHrIrVs0  z#DistributionMetadata.write_pkg_filecCs,x%|D]}|jd||fqWdS)Nz%s: %s )rl)rrrrrrrHrHrIr!xs z DistributionMetadata._write_listcCs |jp dS)Nr)r)rrrHrHrIr~szDistributionMetadata.get_namecCs |jp dS)Nz0.0.0)r)rrrHrHrIrsz DistributionMetadata.get_versioncCsd|j|jfS)Nz%s-%s)rr)rrrHrHrI get_fullnamesz!DistributionMetadata.get_fullnamecCs |jp dS)Nr)r$)rrrHrHrI get_authorszDistributionMetadata.get_authorcCs |jp dS)Nr)r)rrrHrHrIget_author_emailsz%DistributionMetadata.get_author_emailcCs |jp dS)Nr)r()rrrHrHrIget_maintainersz#DistributionMetadata.get_maintainercCs |jp dS)Nr)r)rrrHrHrIget_maintainer_emailsz)DistributionMetadata.get_maintainer_emailcCs|jp|jpdS)Nr)r(r$)rrrHrHrIrsz DistributionMetadata.get_contactcCs|jp|jpdS)Nr)rr)rrrHrHrIrsz&DistributionMetadata.get_contact_emailcCs |jp dS)Nr)r0)rrrHrHrIrszDistributionMetadata.get_urlcCs |jp dS)Nr)r2)rrrHrHrIrsz DistributionMetadata.get_licensecCs |jp dS)Nr)r6)rrrHrHrIrsz$DistributionMetadata.get_descriptioncCs |jp dS)Nr)r )rrrHrHrIrsz)DistributionMetadata.get_long_descriptioncCs |jp gS)N)r>)rrrHrHrIr sz!DistributionMetadata.get_keywordscCs|jpdgS)Nr)r:)rrrHrHrIr"sz"DistributionMetadata.get_platformscCs |jp gS)N)r<)rrrHrHrIr#sz$DistributionMetadata.get_classifierscCs |jp dS)Nr)r )rrrHrHrIget_download_urlsz%DistributionMetadata.get_download_urlcCs |jp gS)N)rB)rrrHrHrIr$sz!DistributionMetadata.get_requirescCs:ddl}x|D]}|jj|qW||_dS)Nr)distutils.versionpredicateversionpredicateVersionPredicaterB)rrrrr rHrHrI set_requiress  z!DistributionMetadata.set_requirescCs |jp gS)N)r@)rrrHrHrIr%sz!DistributionMetadata.get_providescCsMdd|D}x*|D]"}ddl}|jj|qW||_dS)NcSsg|]}|jqSrH)r)rFr rHrHrIrJs z5DistributionMetadata.set_provides..r)r-r.Zsplit_provisionr@)rrrr rrHrHrI set_providess   z!DistributionMetadata.set_providescCs |jp gS)N)rD)rrrHrHrIr&sz"DistributionMetadata.get_obsoletescCs:ddl}x|D]}|jj|qW||_dS)Nr)r-r.r/rD)rrrrr rHrHrI set_obsoletess  z"DistributionMetadata.set_obsoletes)znamezversionzauthorz author_emailz maintainerzmaintainer_emailzurllicensez descriptionzlong_descriptionzkeywordsz platformszfullnamezcontactr r3z classifiersz download_urlzprovideszrequiresz obsoletes)"rrrrrUr|r rrr!rrr'r(r)r*r+rrrrZ get_licencerrr r"r#r,r$r0r%r1r&r2rHrHrHrIrSsJ  4  "                       rScCs2g}x%|D]}|j|ddq W|S)zConvert a 4-tuple 'help_options' list as found in various command classes to the 3-tuple form required by FancyGetopt. r)r)rMZ new_optionsZ help_tuplerHrHrIrs r)rrjrreZemailrrhrZdistutils.errorsZdistutils.fancy_getoptrrZdistutils.utilrrrrr Zdistutils.debugr compilerr rSrrHrHrHrIs$$   PK!{ $$*__pycache__/cygwinccompiler.cpython-34.pyonu[ i fZ@@sgdZddlZddlZddlZddlmZmZmZddlZddl m Z m Z ddl m Z ddlmZddlmZmZmZmZddlmZdd lmZdd lmZd d ZGd dde ZGdddeZdZdZdZ ddZ!ej"dZ#ddZ$ddZ%ddZ&dS)adistutils.cygwinccompiler Provides the CygwinCCompiler class, a subclass of UnixCCompiler that handles the Cygwin port of the GNU C compiler to Windows. It also contains the Mingw32CCompiler class which handles the mingw32 port of GCC (same as cygwin in no-cygwin mode). N)PopenPIPE check_output)gen_preprocess_optionsgen_lib_options) UnixCCompiler) write_file)DistutilsExecErrorCCompilerError CompileErrorUnknownFileError)log) LooseVersion)find_executablecCstjjd}|dkrtj|d|d}|dkrLdgS|dkr_dgS|d krrd gS|d krd gS|d krdgStd|ndS)zaInclude the appropriate MSVC runtime library if Python was built with MSVC 7.0 or later. zMSC v. Z1300Zmsvcr70Z1310Zmsvcr71Z1400Zmsvcr80Z1500Zmsvcr90Z1600Zmsvcr100zUnknown MS Compiler version %s N)sysversionfind ValueError)Zmsc_posZmsc_verr>/opt/alt/python34/lib64/python3.4/distutils/cygwinccompiler.py get_msvcr?s      rc @seZdZdZdZdZdZdZdZdZ dZ d d d d d Z d d Z dddddd dddddd Z d dddZdS)CygwinCCompilerz? Handles the Cygwin port of the GNU C compiler to Windows. cygwinz.oz.az.dllzlib%s%sz%s%sz.exerc CsStj||||t\}}|jd||f|tk r\|jd|nt\|_|_|_ |j|j d|j|j|j f|jdkrd|_ n d|_ |jdkrd}nd }|j d d d d dddddd|j |f|jdkrCdg|_ |jdn t|_ dS)Nz%Python's GCC status: %s (details: %s)zPython's pyconfig.h doesn't seem to support your compiler. Reason: %s. Compiling may fail because of undefined preprocessor macros.z: gcc %s, ld %s, dllwrap %s z2.10.90gccdllwrapz2.13z-sharedz -mdll -staticcompilerzgcc -mcygwin -O -Wall compiler_sozgcc -mcygwin -mdll -O -Wall compiler_cxxzg++ -mcygwin -O -Wall linker_exez gcc -mcygwin linker_soz%s -mcygwin %sz2.91.57Zmsvcrtz,Consider upgrading to a newer version of gcc)r__init__check_config_hZ debug_print CONFIG_H_OKwarn get_versions gcc_version ld_versionZdllwrap_version compiler_type linker_dllset_executables dll_librariesr)selfverbosedry_runforceZstatusZdetails shared_optionrrrr$ds<        zCygwinCCompiler.__init__cCs|dks|dkroy |jdd|d|gWqtk rk}zt|WYdd}~XqXn]y)|j|j||d|g|Wn1tk r}zt|WYdd}~XnXdS)z:Compiles the source by spawning GCC and windres if needed.z.rcz.resZwindresz-iz-oN)Zspawnr r r )r/objsrcextZcc_argsextra_postargsZpp_optsmsgrrr_compiles " zCygwinCCompiler._compileNcCstj| pg} tj|p$g}tj|p9g}|j|j|dk r||jksy|jdkrtjj|d}tjjtjj |\}}tjj ||d}tjj |d|d}dtjj |dg}x|D]}|j |q W|j t ||fd ||jd krx| jd |g| jd |gq|j |n| s| j d ntj||||||||d| | | | | dS)zLink the objects.Nrrz.deflibz.az LIBRARY %sZEXPORTSz writing %srz --output-libz--defz-s)copyextendr.Z EXECUTABLEr,ospathdirnamesplitextbasenamejoinappendZexecuterrlink)r/Z target_descZobjectsZoutput_filename output_dirZ librariesZ library_dirsZruntime_library_dirsZexport_symbolsdebugZ extra_preargsr7Z build_tempZ target_langZtemp_dirZdll_nameZ dll_extensionZdef_fileZlib_filecontentsZsymrrrrDs:         zCygwinCCompiler.linkcCs|dkrd}ng}x|D]}tjjtjj|\}}||jddgkr~td||fn|rtjj|}n|dkr|jtjj||||j q"|jtjj|||j q"W|S)z#Adds supports for rc and res files.NrH.rc.resz"unknown file type '%s' (from '%s'))rJrI) r=r>r@normcaseZsrc_extensionsr rArCrB obj_extension)r/Zsource_filenamesZ strip_dirrEZ obj_namesZsrc_namebaser6rrrobject_filenamess    $ z CygwinCCompiler.object_filenames)__name__ __module__ __qualname____doc__r+rLZstatic_lib_extensionZshared_lib_extensionZstatic_lib_formatZshared_lib_formatZ exe_extensionr$r9rDrNrrrrrYs ;   Krc@s1eZdZdZdZdddddZdS)Mingw32CCompilerz@ Handles the Mingw32 port of the GNU C compiler to Windows. Zmingw32rcCstj|||||jdkr.d}nd}|jdkrLd}nd}trjtdn|jdd d d d d dddd|j||fg|_t |_dS)Nz2.13z-sharedz -mdll -staticz2.91.57z--entry _DllMain@12rHz1Cygwin gcc cannot be used with --compiler=mingw32rz gcc -O -Wallr zgcc -mdll -O -Wallr!z g++ -O -Wallr"rr#z%s %s %s) rr$r*r) is_cygwingccr r-r,r.r)r/r0r1r2r3Z entry_pointrrrr$s&       zMingw32CCompiler.__init__N)rOrPrQrRr+r$rrrrrSs rSokznot okZ uncertaincCsddlm}dtjkr)tdfS|j}yPt|}z2d|jkrgtd|fStd|fSWd|j XWn<t k r}zt d ||j ffSWYdd}~XnXdS) awCheck if the current Python installation appears amenable to building extensions with GCC. Returns a tuple (status, details), where 'status' is one of the following constants: - CONFIG_H_OK: all is well, go ahead and compile - CONFIG_H_NOTOK: doesn't look good - CONFIG_H_UNCERTAIN: not sure -- unable to read pyconfig.h 'details' is a human-readable string explaining the situation. Note there are two ways to conclude "OK": either 'sys.version' contains the string "GCC" (implying that this Python was built with GCC), or the installed "pyconfig.h" contains the string "__GNUC__". r) sysconfigZGCCzsys.version mentions 'GCC'Z__GNUC__z'%s' mentions '__GNUC__'z '%s' does not mention '__GNUC__'Nzcouldn't read '%s': %s) distutilsrVrrr&get_config_h_filenameopenreadCONFIG_H_NOTOKcloseOSErrorCONFIG_H_UNCERTAINstrerror)rVfnconfig_hexcrrrr%Hs   r%s(\d+\.\d+(\.\d+)*)c Cs|jd}t|dkr&dSt|dddtj}z|j}Wd|jXtj|}|dkr~dSt |j dj S)zFind the version of an executable by running `cmd` in the shell. If the command is not found, or the output does not match `RE_VERSION`, returns None. rNshellTstdoutr) splitrrrrdrZr\ RE_VERSIONsearchrgroupdecode)cmd executableout out_stringresultrrr_find_exe_versionus  rocCs&dddg}tdd|DS)zg Try to find out the versions of gcc, ld and dllwrap. If not possible it returns None for it. zgcc -dumpversionzld -vzdllwrap --versioncSsg|]}t|qSr)ro).0rjrrr s z get_versions..)tuple)Zcommandsrrrr(sr(cCs%tddg}|jjdS)z>Try to determine if the gcc that would be used is from cygwin.rz -dumpmachinescygwin)rstripendswith)rmrrrrTsrT)'rRr=rr; subprocessrrrreZdistutils.ccompilerrrZdistutils.unixccompilerrZdistutils.file_utilrZdistutils.errorsr r r r rWr Zdistutils.versionrZdistutils.spawnrrrrSr&r[r^r%compilerfror(rTrrrrs.)    " 1 +  PK!+__pycache__/versionpredicate.cpython-34.pycnu[ i f @sdZddlZddlZddlZejdejZejdZejdZ ddZ iej d6ej d 6ej d 6ejd 6ejd 6ejd 6ZGdddZdaddZdS)zBModule for parsing and testing package version predicate strings. Nz'(?i)^\s*([a-z_]\w*(?:\.[a-z_]\w*)*)(.*)z^\s*\((.*)\)\s*$z%^\s*(<=|>=|<|>|!=|==)\s*([^\s,]+)\s*$cCsPtj|}|s(td|n|j\}}|tjj|fS)zVParse a single version comparison. Return (comparison string, StrictVersion) z"bad package restriction syntax: %r)re_splitComparisonmatch ValueErrorgroups distutilsversion StrictVersion)predrescompZverStrr ?/opt/alt/python34/lib64/python3.4/distutils/versionpredicate.pysplitUps rz>=z!=c@s:eZdZdZddZddZddZdS) VersionPredicateaParse and test package version predicates. >>> v = VersionPredicate('pyepat.abc (>1.0, <3333.3a1, !=1555.1b3)') The `name` attribute provides the full dotted name that is given:: >>> v.name 'pyepat.abc' The str() of a `VersionPredicate` provides a normalized human-readable version of the expression:: >>> print(v) pyepat.abc (> 1.0, < 3333.3a1, != 1555.1b3) The `satisfied_by()` method can be used to determine with a given version number is included in the set described by the version restrictions:: >>> v.satisfied_by('1.1') True >>> v.satisfied_by('1.4') True >>> v.satisfied_by('1.0') False >>> v.satisfied_by('4444.4') False >>> v.satisfied_by('1555.1b3') False `VersionPredicate` is flexible in accepting extra whitespace:: >>> v = VersionPredicate(' pat( == 0.1 ) ') >>> v.name 'pat' >>> v.satisfied_by('0.1') True >>> v.satisfied_by('0.2') False If any version numbers passed in do not conform to the restrictions of `StrictVersion`, a `ValueError` is raised:: >>> v = VersionPredicate('p1.p2.p3.p4(>=1.0, <=1.3a1, !=1.2zb3)') Traceback (most recent call last): ... ValueError: invalid version number '1.2zb3' It the module or package name given does not conform to what's allowed as a legal module or package name, `ValueError` is raised:: >>> v = VersionPredicate('foo-bar') Traceback (most recent call last): ... ValueError: expected parenthesized list: '-bar' >>> v = VersionPredicate('foo bar (12.21)') Traceback (most recent call last): ... ValueError: expected parenthesized list: 'bar (12.21)' cCs|j}|s!tdntj|}|sItd|n|j\|_}|j}|rtj|}|std|n|jd}dd|jdD|_|jstd|qn g|_d S) z*Parse a version predicate string. zempty package restrictionzbad package name in %rzexpected parenthesized list: %rrcSsg|]}t|qSr )r).0ZaPredr r r ts z-VersionPredicate.__init__..,zempty parenthesized list in %rN) striprre_validPackagerrnamere_parensplitr )selfZversionPredicateStrrZparenstrr r r __init__`s$   zVersionPredicate.__init__cCsF|jr;dd|jD}|jddj|dS|jSdS)NcSs*g|] \}}|dt|qS) )r)rcondverr r r r}s z,VersionPredicate.__str__..z (z, ))r rjoin)rseqr r r __str__{s zVersionPredicate.__str__cCs5x.|jD]#\}}t|||s dSq WdS)zTrue if version is compatible with all the predicates in self. The parameter version must be acceptable to the StrictVersion constructor. It may be either a string or StrictVersion. FT)r compmap)rrrrr r r satisfied_byszVersionPredicate.satisfied_byN)__name__ __module__ __qualname____doc__rr#r%r r r r rs ?  rcCstdkr$tjdtjan|j}tj|}|sXtd|n|jdpjd}|rtj j |}n|jd|fS)a9Return the name and optional version number of a provision. The version number, if given, will be returned as a `StrictVersion` instance, otherwise it will be `None`. >>> split_provision('mypkg') ('mypkg', None) >>> split_provision(' mypkg( 1.2 ) ') ('mypkg', StrictVersion ('1.2')) Nz=([a-zA-Z_]\w*(?:\.[a-zA-Z_]\w*)*)(?:\s*\(\s*([^)\s]+)\s*\))?$z"illegal provides specification: %r) _provision_rxrecompileASCIIrrrgrouprrr)valuemrr r r split_provisions  r3)r)r-Zdistutils.versionroperatorr.r/rrrrltleeqgtgener$rr,r3r r r r s      !!nPK!sF%%"__pycache__/version.cpython-34.pycnu[ h f0@sUdZddlZGdddZGdddeZGdddeZdS) aProvides classes to represent module version numbers (one class for each style of version numbering). There are currently two such classes implemented: StrictVersion and LooseVersion. Every version number class implements the following interface: * the 'parse' method takes a string and parses it to some internal representation; if the string is an invalid version number, 'parse' raises a ValueError exception * the class constructor takes an optional string argument which, if supplied, is passed to 'parse' * __str__ reconstructs the string that was passed to 'parse' (or an equivalent string -- ie. one that will generate an equivalent version number instance) * __repr__ generates Python code to recreate the version number instance * _cmp compares the current instance with either another instance of the same class or a string (which will be parsed to an instance of the same class, thus must follow the same rules) Nc@syeZdZdZdddZddZddZd d Zd d Zd dZ ddZ ddZ dS)VersionzAbstract base class for version numbering classes. Just provides constructor (__init__) and reproducer (__repr__), because those seem to be the same for all version numbering classes; and route rich comparisons to _cmp. NcCs|r|j|ndS)N)parse)selfvstringr6/opt/alt/python34/lib64/python3.4/distutils/version.py__init__&szVersion.__init__cCsd|jjt|fS)Nz %s ('%s')) __class____name__str)rrrr__repr__*szVersion.__repr__cCs)|j|}|tkr|S|dkS)Nr)_cmpNotImplemented)rothercrrr__eq__-s zVersion.__eq__cCs)|j|}|tkr|S|dkS)Nr)r r)rrrrrr__ne__3s zVersion.__ne__cCs)|j|}|tkr|S|dkS)Nr)r r)rrrrrr__lt__9s zVersion.__lt__cCs)|j|}|tkr|S|dkS)Nr)r r)rrrrrr__le__?s zVersion.__le__cCs)|j|}|tkr|S|dkS)Nr)r r)rrrrrr__gt__Es zVersion.__gt__cCs)|j|}|tkr|S|dkS)Nr)r r)rrrrrr__ge__Ks zVersion.__ge__) r __module__ __qualname____doc__rr rrrrrrrrrrrs       rc@sVeZdZdZejdejejBZddZ ddZ ddZ d S) StrictVersiona?Version numbering for anal retentives and software idealists. Implements the standard interface for version number classes as described above. A version number consists of two or three dot-separated numeric components, with an optional "pre-release" tag on the end. The pre-release tag consists of the letter 'a' or 'b' followed by a number. If the numeric components of two version numbers are equal, then one with a pre-release tag will always be deemed earlier (lesser) than one without. The following are valid version numbers (shown in the order that would be obtained by sorting according to the supplied cmp function): 0.4 0.4.0 (these two are equivalent) 0.4.1 0.5a1 0.5b3 0.5 0.9.6 1.0 1.0.4a3 1.0.4b1 1.0.4 The following are examples of invalid version numbers: 1 2.7.2.2 1.3.a4 1.3pl1 1.3c4 The rationale for this version numbering system will be explained in the distutils documentation. z)^(\d+) \. (\d+) (\. (\d+))? ([ab](\d+))?$cCs|jj|}|s+td|n|jddddd\}}}}}|rttt|||g|_n"ttt||gd|_|r|dt|f|_n d|_dS) Nzinvalid version number '%s'r)r) version_rematch ValueErrorgrouptuplemapintversion prerelease)rrr!majorminorZpatchr(Zprerelease_numrrrrs*$"zStrictVersion.parsecCs|jddkr;djtt|jdd}ndjtt|j}|jr||jdt|jd}n|S)Nrr.r)r'joinr%r r()rrrrr__str__s ( %zStrictVersion.__str__cCst|trt|}n|j|jkrM|j|jkrFdSdSn|j re|j redS|jr||j r|dS|j r|jrdS|jr|jr|j|jkrdS|j|jkrdSdSndstddS)NrrFznever get herer.r.) isinstancer rr'r(AssertionError)rrrrrr s&zStrictVersion._cmpN) r rrrrecompileVERBOSEASCIIr rr-r rrrrrcs #   rc@sjeZdZdZejdejZdddZddZ dd Z d d Z d d Z dS) LooseVersionaVersion numbering for anarchists and software realists. Implements the standard interface for version number classes as described above. A version number consists of a series of numbers, separated by either periods or strings of letters. When comparing version numbers, the numeric components will be compared numerically, and the alphabetic components lexically. The following are all valid version numbers, in no particular order: 1.5.1 1.5.2b2 161 3.10a 8.02 3.4j 1996.07.12 3.2.pl0 3.1.1.6 2g6 11g 0.960923 2.2beta29 1.13++ 5.5.kw 2.0b1pl0 In fact, there is no such thing as an invalid version number under this scheme; the rules for comparison are simple and predictable, but may not always give the results you want (for some definition of "want"). z(\d+ | [a-z]+ | \.)NcCs|r|j|ndS)N)r)rrrrrr4szLooseVersion.__init__c Cs{||_dd|jj|D}xCt|D]5\}}yt|||>s z&LooseVersion.parse..)r component_resplit enumerater&r"r')rrZ componentsiobjrrrr9s   zLooseVersion.parsecCs|jS)N)r)rrrrr-IszLooseVersion.__str__cCsdt|S)NzLooseVersion ('%s'))r )rrrrr MszLooseVersion.__repr__cCsdt|trt|}n|j|jkr4dS|j|jkrJdS|j|jkr`dSdS)Nrrr.)r/r r5r')rrrrrr QszLooseVersion._cmp) r rrrr1r2r3r9rrr-r r rrrrr5s    r5)rr1rrr5rrrrs DPK!:====__pycache__/cmd.cpython-34.pyonu[ h fJ@sdZddlZddlZddlZddlmZddlmZmZm Z m Z m Z ddlm Z GdddZ Gdd d e ZdS) ztdistutils.cmd Provides the Command class, the base class for the command classes in the distutils.command package. N)DistutilsOptionError)utildir_util file_util archive_utildep_util)logc@seZdZdZgZddZddZddZdd Zd d Z d d ddZ ddZ dddZ ddZ d ddZd ddZddZd ddZdd Zd!d"Zd#d$Zd%d&Zdd'd(Zd)d*d+Zd,d-Zd.d/Zd0d1Zd dd2d3Zd4d5d6Zddd dd7d8Zddd)dd9d:Zdd;d<Zddd=d>Z d d d d d?d@Z!d d ddAdBZ"d S)CCommanda}Abstract base class for defining command classes, the "worker bees" of the Distutils. A useful analogy for command classes is to think of them as subroutines with local variables called "options". The options are "declared" in 'initialize_options()' and "defined" (given their final values, aka "finalized") in 'finalize_options()', both of which must be defined by every command class. The distinction between the two is necessary because option values might come from the outside world (command line, config file, ...), and any options dependent on other options must be computed *after* these outside influences have been processed -- hence 'finalize_options()'. The "body" of the subroutine, where it does all its work based on the values of its options, is the 'run()' method, which must also be implemented by every command class. cCsddlm}t||s.tdn|jtkrLtdn||_|jd|_ |j |_ d|_ d|_ d|_ dS)zCreate and initialize a new Command object. Most importantly, invokes the 'initialize_options()' method, which is the real initializer and depends on the actual command being instantiated. r) Distributionz$dist must be a Distribution instancezCommand is an abstract classN)Zdistutils.distr isinstance TypeError __class__r RuntimeError distributioninitialize_optionsZ_dry_runverboseforcehelp finalized)selfZdistr r2/opt/alt/python34/lib64/python3.4/distutils/cmd.py__init__/s     zCommand.__init__cCsR|dkrBt|d|}|dkr;t|j|S|Sn t|dS)Ndry_run_)getattrrAttributeError)rattrZmyvalrrr __getattr___s   zCommand.__getattr__cCs#|js|jnd|_dS)N)rfinalize_options)rrrrensure_finalizedis  zCommand.ensure_finalizedcCstd|jdS)aSet default values for all the options that this command supports. Note that these defaults may be overridden by other commands, by the setup script, by config files, or by the command-line. Thus, this is not the place to code dependencies between options; generally, 'initialize_options()' implementations are just a bunch of "self.foo = None" assignments. This method must be implemented by all command classes. z,abstract method -- subclass %s must overrideN)rr )rrrrr{s zCommand.initialize_optionscCstd|jdS)aSet final values for all the options that this command supports. This is always called as late as possible, ie. after any option assignments from the command-line or from other commands have been done. Thus, this is the place to code option dependencies: if 'foo' depends on 'bar', then it is safe to set 'foo' from 'bar' as long as 'foo' still has the same value it was assigned in 'initialize_options()'. This method must be implemented by all command classes. z,abstract method -- subclass %s must overrideN)rr )rrrrr s zCommand.finalize_optionsNcCsddlm}|dkr/d|j}n|j||dtj|d}x|jD]t\}}}|j|}|d dkr|dd }nt||}|j|d||fdtjq]WdS) Nr) longopt_xlatezcommand options for '%s':levelz r=z%s = %sr&) Zdistutils.fancy_getoptr#get_command_nameannouncerINFO user_options translater)rheaderindentr#optionrvaluerrr dump_optionss  zCommand.dump_optionscCstd|jdS)aA command's raison d'etre: carry out the action it exists to perform, controlled by the options initialized in 'initialize_options()', customized by other commands, the setup script, the command-line, and config files, and finalized in 'finalize_options()'. All terminal output and filesystem interaction should be done by 'run()'. This method must be implemented by all command classes. z,abstract method -- subclass %s must overrideN)rr )rrrrruns z Command.runrcCstj||dS)zmIf the current verbosity level is of greater than or equal to 'level' print 'msg' to stdout. N)r)rmsgr$rrrr(szCommand.announcecCs4ddlm}|r0t|tjjndS)z~Print 'msg' to stdout if the global DEBUG (taken from the DISTUTILS_DEBUG environment variable) flag is true. r)DEBUGN)Zdistutils.debugr3printsysstdoutflush)rr2r3rrr debug_prints zCommand.debug_printcCs^t||}|dkr/t||||St|tsZtd|||fn|S)Nz'%s' must be a %s (got `%s`))rsetattrr strr)rr.whatdefaultvalrrr_ensure_stringlikes zCommand._ensure_stringlikecCs|j|d|dS)zWEnsure that 'option' is a string; if not defined, set it to 'default'. stringN)r>)rr.r<rrr ensure_stringszCommand.ensure_stringcCst||}|dkrdSt|trMt||tjd|nPt|trxtdd|D}nd}|std||fndS)zEnsure that 'option' is a list of strings. If 'option' is currently a string, we split it either on /,\s*/ or /\s+/, so "foo bar baz", "foo,bar,baz", and "foo, bar baz" all become ["foo", "bar", "baz"]. Nz,\s*|\s+css|]}t|tVqdS)N)r r:).0vrrr sz-Command.ensure_string_list..Fz''%s' must be a list of strings (got %r)) rr r:r9resplitlistallr)rr.r=okrrrensure_string_lists zCommand.ensure_string_listcCsO|j|||}|dk rK|| rKtd|||fndS)Nzerror in '%s' option: )r>r)rr.Ztesterr;Z error_fmtr<r=rrr_ensure_tested_strings zCommand._ensure_tested_stringcCs |j|tjjdddS)z5Ensure that 'option' is the name of an existing file.filenamez$'%s' does not exist or is not a fileN)rJospathisfile)rr.rrrensure_filenameszCommand.ensure_filenamecCs |j|tjjdddS)Nzdirectory namez)'%s' does not exist or is not a directory)rJrLrMisdir)rr.rrrensure_dirnameszCommand.ensure_dirnamecCs$t|dr|jS|jjSdS)N command_name)hasattrrRr __name__)rrrrr' szCommand.get_command_namecGsh|jj|}|jxE|D]=\}}t||dkr#t||t||q#q#WdS)a>Set the values of any "undefined" options from corresponding option values in some other command object. "Undefined" here means "is None", which is the convention used to indicate that an option has not been changed between 'initialize_options()' and 'finalize_options()'. Usually called from 'finalize_options()' for options that depend on some other command rather than another option of the same command. 'src_cmd' is the other command from which option values will be taken (a command object will be created for it if necessary); the remaining arguments are '(src_option,dst_option)' tuples which mean "take the value of 'src_option' in the 'src_cmd' command object, and copy it to 'dst_option' in the current command object". N)rget_command_objr!rr9)rZsrc_cmdZ option_pairsZ src_cmd_objZ src_optionZ dst_optionrrrset_undefined_optionss  zCommand.set_undefined_optionscCs#|jj||}|j|S)zWrapper around Distribution's 'get_command_obj()' method: find (create if necessary and 'create' is true) the command object for 'command', call its 'ensure_finalized()' method, and return the finalized command object. )rrUr!)rcommandcreateZcmd_objrrrget_finalized_command$s zCommand.get_finalized_commandrcCs|jj||S)N)rreinitialize_command)rrWZreinit_subcommandsrrrrZ0s zCommand.reinitialize_commandcCs|jj|dS)zRun some other command: uses the 'run_command()' method of Distribution, which creates and finalizes the command object if necessary and then invokes its 'run()' method. N)r run_command)rrWrrrr[4szCommand.run_commandcCsLg}x?|jD]4\}}|dks4||r|j|qqW|S)akDetermine the sub-commands that are relevant in the current distribution (ie., that need to be run). This is based on the 'sub_commands' class attribute: each tuple in that list may include a method that we call to determine if the subcommand needs to be run for the current distribution. Return a list of command names. N) sub_commandsappend)rZcommandsZcmd_namemethodrrrget_sub_commands;s zCommand.get_sub_commandscCs!tjd|j|fdS)Nzwarning: %s: %s )rwarnr')rr2rrrr`Ks z Command.warncCs tj|||d|jdS)Nr)rexecuter)rfuncargsr2r$rrrraOszCommand.executeicCstj||d|jdS)Nr)rmkpathr)rnamemoderrrrdRszCommand.mkpathc Cs)tj|||||j |d|jS)zCopy a file respecting verbose, dry-run and force flags. (The former two default to whatever is in the Distribution object, and the latter defaults to false for commands that don't define it.)r)r copy_filerr)rinfileoutfile preserve_modepreserve_timeslinkr$rrrrgUszCommand.copy_filec Cs)tj||||||j d|jS)z\Copy an entire directory tree respecting verbose, dry-run, and force flags. r)r copy_treerr)rrhrirjrkZpreserve_symlinksr$rrrrm^szCommand.copy_treecCstj||d|jS)z$Move a file respecting dry-run flag.r)r move_filer)rsrcZdstr$rrrrngszCommand.move_filecCs*ddlm}|||d|jdS)z2Spawn an external command respecting dry-run flag.r)spawnrN)Zdistutils.spawnrpr)rcmdZ search_pathr$rprrrrpksz Command.spawnc Cs+tj||||d|jd|d|S)Nrownergroup)r make_archiver)rZ base_nameformatZroot_dirZbase_dirrrrsrrrrtps zCommand.make_archivecCs|dkrd|}nt|tr4|f}n$t|ttfsXtdn|dkrd|dj|f}n|jstj||r|j ||||n t j |dS)aSpecial case of 'execute()' for operations that process one or more input files and generate one output file. Works just like 'execute()', except the operation is skipped and a different message printed if 'outfile' already exists and is newer than all files listed in 'infiles'. If the command defined 'self.force', and it is true, then the command is unconditionally run -- does no timestamp checks. Nzskipping %s (inputs unchanged)z9'infiles' must be a string, or a list or tuple of stringszgenerating %s from %sz, ) r r:rFtupler joinrrZ newer_grouprardebug)rZinfilesrirbrcZexec_msgZskip_msgr$rrr make_filevs     zCommand.make_file)#rT __module__ __qualname____doc__r\rrr!rr r0r1r(r8r>r@rIrJrOrQr'rVrYrZr[r_r`rardrgrmrnrprtryrrrrr sF  0              r c@sOeZdZdZdgZddZddZd d Zd d Zd S) install_miscz{Common base class for installing some files in a subdirectory. Currently used by install_data and install_scripts. install-dir=d!directory to install the files tocCsd|_g|_dS)N) install_diroutfiles)rrrrrs zinstall_misc.initialize_optionscCs|jd|dfdS)NZinstallr)rV)rdirnamerrr_install_dir_fromszinstall_misc._install_dir_fromcCsmg|_|sdS|j|jxC|D];}|j||j|jjtjj|j|q*WdS)N)rrdrrgr]rLrMrw)rZfilelistfrrr _copy_filess  zinstall_misc._copy_filescCs|jS)N)r)rrrr get_outputsszinstall_misc.get_outputsN)r~rr) rTrzr{r|r*rrrrrrrrr}s     r})r|r5rLrDZdistutils.errorsrZ distutilsrrrrrrr r}rrrrs$(PK! __pycache__/core.cpython-34.pycnu[ i f"@sdZddlZddlZddlmZddlTddlmZddlm Z ddl m Z ddl m Z d Zd d Zdadad4Zd5Zd/d0Zdd1d2d3ZdS)6a#distutils.core The only module that needs to be imported to use the Distutils; provides the 'setup' function (which is to be called from the setup script). Also indirectly provides the Distribution and Command classes, although they are really defined in distutils.dist and distutils.cmd. N)DEBUG)*) Distribution)Command) PyPIRCCommand) Extensionzusage: %(script)s [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...] or: %(script)s --help [cmd1 cmd2 ...] or: %(script)s --help-commands or: %(script)s cmd --help cCstjj|}ttS)N)ospathbasenameUSAGEvars) script_nameZscriptr3/opt/alt/python34/lib64/python3.4/distutils/core.py gen_usage sr distclassr script_argsoptionsnameversionauthor author_email maintainermaintainer_emailurllicense descriptionlong_descriptionkeywords platforms classifiers download_urlrequiresprovides obsoletessources include_dirs define_macros undef_macros library_dirs librariesruntime_library_dirs extra_objectsextra_compile_argsextra_link_args swig_optsexport_symbolsdependslanguagec,Ks|jd}|r|d=nt}d|krQtjjtjd|dd|krt d|nt d |d|fWYdd}~XnXt d kr|S|j t r#t d |jnt d kr3|Sy|j}WnBtk r}z"t t|jd |WYdd}~XnXt rt d|jnt dkr|S|ry|jWqtk rt dYqtk rC}z;t rtjjd|fnt d|fWYdd}~Xqttfk r}z't rgnt dt|WYdd}~XqXn|S)aThe gateway to the Distutils: do everything your setup script needs to do, in a highly flexible and user-driven way. Briefly: create a Distribution instance; find and parse config files; parse the command line; run each Distutils command found there, customized by the options supplied to 'setup()' (as keyword arguments), in config files, and on the command line. The Distribution instance might be an instance of a class supplied via the 'distclass' keyword argument to 'setup'; if no such class is supplied, then the Distribution class (in dist.py) is instantiated. All other arguments to 'setup' (except for 'cmdclass') are used to set attributes of the Distribution instance. The 'cmdclass' argument, if supplied, is a dictionary mapping command names to command classes. Each command encountered on the command line will be turned into a command class, which is in turn instantiated; any class found in 'cmdclass' is used in place of the default, which is (for command 'foo_bar') class 'foo_bar' in module 'distutils.command.foo_bar'. The command class must provide a 'user_options' attribute which is a list of option specifiers for 'distutils.fancy_getopt'. Any command-line options between the current and the next command are used to set attributes of the current command object. When the entire command-line has been successfully parsed, calls the 'run()' method on each command object in turn. This method will be driven entirely by the Distribution object (which each command object has a reference to, thanks to its constructor), and the command-specific options that became attributes of each command object. rr rrNrzerror in setup command: %szerror in %s setup command: %sinitz%options (after parsing config files):configz error: %sz%options (after parsing command line): commandlineZ interruptedz error: %s z error: %szerror: )getrrr r sysargv_setup_distributionZDistutilsSetupError SystemExit_setup_stop_afterZparse_config_filesrprintZdump_option_dictsZparse_command_lineZDistutilsArgErrorrr Z run_commandsKeyboardInterruptOSErrorstderrwriteZDistutilsErrorZCCompilerErrorstr)attrsklassZdistmsgokexcrrrsetup9s`%     '     0    %,rHruncCs|d kr"td|fn|atj}i|d6}i}yxza|tjd<|dk ry|tjd ds2      qPK! 9UU!__pycache__/errors.cpython-34.pyonu[ h f @sdZGdddeZGdddeZGdddeZGdddeZGd d d eZGd d d eZGd ddeZGdddeZ GdddeZ GdddeZ GdddeZ GdddeZ GdddeZGdddeZGdddeZGdd d eZGd!d"d"eZGd#d$d$eZGd%d&d&eZd'S)(adistutils.errors Provides exceptions used by the Distutils modules. Note that Distutils modules may raise standard exceptions; in particular, SystemExit is usually raised for errors that are obviously the end-user's fault (eg. bad command-line arguments). This module is safe to use in "from ... import *" mode; it only exports symbols whose names start with "Distutils" and end with "Error".c@seZdZdZdS)DistutilsErrorzThe root of all Distutils evil.N)__name__ __module__ __qualname____doc__rr5/opt/alt/python34/lib64/python3.4/distutils/errors.pyr s rc@seZdZdZdS)DistutilsModuleErrorzUnable to load an expected module, or to find an expected class within some module (in particular, command modules and classes).N)rrrrrrrrrs rc@seZdZdZdS)DistutilsClassErrorzSome command class (or possibly distribution class, if anyone feels a need to subclass Distribution) is found not to be holding up its end of the bargain, ie. implementing some part of the "command "interface.N)rrrrrrrrr s r c@seZdZdZdS)DistutilsGetoptErrorz7The option table provided to 'fancy_getopt()' is bogus.N)rrrrrrrrr s r c@seZdZdZdS)DistutilsArgErrorzaRaised by fancy_getopt in response to getopt.error -- ie. an error in the command line usage.N)rrrrrrrrr s r c@seZdZdZdS)DistutilsFileErrorzAny problems in the filesystem: expected file not found, etc. Typically this is for problems that we detect before OSError could be raised.N)rrrrrrrrr $s r c@seZdZdZdS)DistutilsOptionErroraSyntactic/semantic errors in command options, such as use of mutually conflicting options, or inconsistent options, badly-spelled values, etc. No distinction is made between option values originating in the setup script, the command line, config files, or what-have-you -- but if we *know* something originated in the setup script, we'll raise DistutilsSetupError instead.N)rrrrrrrrr *s r c@seZdZdZdS)DistutilsSetupErrorzqFor errors that can be definitely blamed on the setup script, such as invalid keyword arguments to 'setup()'.N)rrrrrrrrr3s rc@seZdZdZdS)DistutilsPlatformErrorzWe don't know how to do something on the current platform (but we do know how to do it on some platform) -- eg. trying to compile C files on a platform not supported by a CCompiler subclass.N)rrrrrrrrr8s rc@seZdZdZdS)DistutilsExecErrorz`Any problems executing an external program (such as the C compiler, when compiling C files).N)rrrrrrrrr>s rc@seZdZdZdS)DistutilsInternalErrorzoInternal inconsistencies or impossibilities (obviously, this should never be seen if the code is working!).N)rrrrrrrrrCs rc@seZdZdZdS)DistutilsTemplateErrorz%Syntax error in a file list template.N)rrrrrrrrrHs rc@seZdZdZdS)DistutilsByteCompileErrorzByte compile error.N)rrrrrrrrrKs rc@seZdZdZdS)CCompilerErrorz#Some compile/link operation failed.N)rrrrrrrrrOs rc@seZdZdZdS)PreprocessErrorz.Failure to preprocess one or more C/C++ files.N)rrrrrrrrrRs rc@seZdZdZdS) CompileErrorz2Failure to compile one or more C/C++ source files.N)rrrrrrrrrUs rc@seZdZdZdS)LibErrorzKFailure to create a static library from one or more C/C++ object files.N)rrrrrrrrrXs rc@seZdZdZdS) LinkErrorz]Failure to link one or more C/C++ object files into an executable or shared library file.N)rrrrrrrrr\s rc@seZdZdZdS)UnknownFileErrorz(Attempt to process an unknown file type.N)rrrrrrrrr`s rN)r Exceptionrrr r r r r rrrrrrrrrrrrrrrr s& PK!dau __pycache__/debug.cpython-34.pycnu[ h f@s"ddlZejjdZdS)NZDISTUTILS_DEBUG)osenvirongetDEBUGrr4/opt/alt/python34/lib64/python3.4/distutils/debug.pys PK!!__pycache__/config.cpython-34.pycnu[ h f @sRdZddlZddlmZddlmZdZGdddeZdS)zdistutils.pypirc Provides the PyPIRCCommand class, the base class for the command classes that uses .pypirc in the distutils.command package. N) ConfigParser)CommandzE[distutils] index-servers = pypi [pypi] username:%s password:%s c@seZdZdZdZdZdZdZdddefdgZdgZ d d Z d d Z ddZ ddZ ddZddZdS) PyPIRCCommandz;Base command that knows how to handle the .pypirc file zhttps://upload.pypi.org/legacy/pypiNz repository=rzurl of repository [default: %s] show-response&display full response text from servercCstjjtjjddS)zReturns rc file path.~z.pypirc)ospathjoin expanduser)selfr5/opt/alt/python34/lib64/python3.4/distutils/config.py _get_rc_file&szPyPIRCCommand._get_rc_filec Cs[|j}tjtj|tjtjBdd}|jt||fWdQXdS)zCreates a default .pypirc file.iwN)rr fdopenopenO_CREATO_WRONLYwriteDEFAULT_PYPIRC)rusernamepasswordrcfrrr _store_pypirc*s .zPyPIRCCommand._store_pypircc CsY|j}tjj|rU|jd||jp>|j}|jpP|j}t }|j ||j }d|kr|j dd}dd|j dD}|gkrd|krdg}qiSnxu|D]}i|d6} |j |d | d >s z.PyPIRCCommand._read_pypirc.. rr!r repositoryrealmrNz server-login)zpasswordN)rr r existsZannouncer$DEFAULT_REPOSITORYr% DEFAULT_REALMrreadsectionsgetsplitZ has_option) rrr$r%configr*Z index_serversZ_serversr!Zcurrentkeydefaultrrr _read_pypirc0sX                  zPyPIRCCommand._read_pypirccCsPddl}|jdd}|j|djdd}|jj|S)z%Read and decode a PyPI HTTP response.rNz content-typez text/plaincharsetascii)cgiZ getheaderZ parse_headerr+r)decode)rZresponser4Z content_typeencodingrrr_read_pypi_responseqs z!PyPIRCCommand._read_pypi_responsecCsd|_d|_d|_dS)zInitialize options.Nr)r$r%Z show_response)rrrrinitialize_optionsxs  z PyPIRCCommand.initialize_optionscCs@|jdkr|j|_n|jdkr<|j|_ndS)zFinalizes options.N)r$r'r%r()rrrrfinalize_options~szPyPIRCCommand.finalize_options)rNr)__name__ __module__ __qualname____doc__r'r(r$r%Z user_optionsZboolean_optionsrrr0r7r8r9rrrrrs"      A  r)r=r Z configparserrZ distutils.cmdrrrrrrrs   PK!-,,'__pycache__/fancy_getopt.cpython-34.pyonu[ i fxE@sKdZddlZddlZddlZddlZddlTdZejdeZejdeefZ e j ddZ Gd d d Z d d Zd dejDZddZddZGdddZedkrGdZxKddddfD]7Zedeedjeeeeq WndS)a6distutils.fancy_getopt Wrapper around the standard getopt module that provides the following additional features: * short and long options are tied together * options have help strings, so fancy_getopt could potentially create a complete usage summary * options set attributes of a passed-in object N)*z[a-zA-Z](?:[a-zA-Z0-9-]*)z^%s$z ^(%s)=!(%s)$-_c@seZdZdZdddZddZddZddd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddddZddZdddZddddZdS) FancyGetoptaWrapper around the standard 'getopt()' module that provides some handy extra functionality: * short and long options are tied together * options have help strings, and help text can be assembled from them * options set attributes of a passed-in object * boolean options can have "negative aliases" -- eg. if --quiet is the "negative alias" of --verbose, then "--quiet" on the command line sets 'verbose' to false NcCst||_i|_|jr(|jni|_i|_g|_g|_i|_i|_i|_ g|_ dS)N) option_table option_index _build_indexaliasnegative_alias short_opts long_opts short2long attr_name takes_arg option_order)selfrr;/opt/alt/python34/lib64/python3.4/distutils/fancy_getopt.py__init__)s           zFancyGetopt.__init__cCs6|jjx"|jD]}||j|d= 2Nz:invalid short option '%s': must a single character or None=:z>invalid negative alias '%s': aliased option '%s' takes a valuezginvalid alias '%s': inconsistent with aliased option '%s' (one of them takes a value, the other doesn'tzEinvalid long option name '%s' (must be letters, numbers, hyphens onlyr,r,)r r r rrepeatrlen ValueError isinstancestrrrrr getr longopt_rematchrr)rrlongshorthelpr-Zalias_torrr_grok_option_tables^     "  !        zFancyGetopt._grok_option_tablec Cs|dkr"tjdd}n|dkr@t}d}nd}|jdj|j}y"tj|||j\}}Wn4tjk r}zt |WYdd}~XnXx"|D]\}}t |dkr|ddkr|j |d}n|dd}|j j |} | r5| }n|j|sr|jj |} | ri| }d}qrd}n|j|} |r|jj | dk rt|| dd}nt|| ||jj||fqW|r||fS|SdS) aParse command-line options in args. Store as attributes on object. If 'args' is None or not supplied, uses 'sys.argv[1:]'. If 'object' is None or not supplied, creates a new OptionDummy object, stores option values there, and returns a tuple (args, object). If 'object' is supplied, it is modified in place and 'getopt()' just returns 'args'; in both cases, the returned 'args' is a modified copy of the passed-in 'args' list, which is left untouched. Nr)TF r(rr)sysargv OptionDummyr8joinr getoptr errorZDistutilsArgErrorr.r r r2rr rr-getattrsetattrrr) rargsobjectZcreated_objectr Zoptsmsgr"valr attrrrrr>sB     ""      zFancyGetopt.getoptcCs)|jdkrtdn|jSdS)zReturns the list of (option, value) tuples processed by the previous run of 'getopt()'. Raises RuntimeError if 'getopt()' hasn't been called yet. Nz!'getopt()' hasn't been called yet)r RuntimeError)rrrrget_option_orderszFancyGetopt.get_option_ordercCsd}x||jD]q}|d}|d}t|}|ddkrS|d}n|dk rl|d}n||kr|}qqW|ddd}d}||} d|} |r|g} n d g} x|jD]}|dd \}}} t| | } |ddkr'|dd}n|dkrt| rZ| jd ||| dfq| jd ||fnHd ||f}| r| jd ||| dfn| jd|x)| ddD]}| j| |qWqW| S)zGenerate help text (a list of strings, one per suggested line of output) from the option table for this FancyGetopt object. rr)r*Nr(Nr9zOption summary:r&z --%-*s %sz --%-*s z%s (-%s)z --%-*sr,r,r,)rr. wrap_textr)rheaderZmax_optrr5r6lZ opt_widthZ line_widthZ text_widthZ big_indentlinesr7textZ opt_namesrrr generate_helpsF             ! zFancyGetopt.generate_helpcCsG|dkrtj}nx(|j|D]}|j|dq(WdS)N )r:stdoutrPwrite)rrLfilelinerrr print_helphs  zFancyGetopt.print_help)__name__ __module__ __qualname____doc__rrrrrrr#r$r%r8r>rHrPrVrrrrrs (       M= OrcCs)t|}|j||j||S)N)rr%r>)optionsZ negative_optrCrBparserrrr fancy_getoptos  r]cCsi|]}dt|qS)r9)ord).0Z_wscharrrr us r`cCs|dkrgSt||kr)|gS|j}|jt}tjd|}dd|D}g}x |r}g}d}xt|rt|d}|||kr|j|d|d=||}q|r|d ddkr|d =nPqW|rd|dkrC|j|dd||d|d|d [string] Split 'text' into multiple lines of no more than 'width' characters each, and return the list of strings that results. Nz( +|-+)cSsg|]}|r|qSrr)r_Zchrrr s zwrap_text..rr)r9r,r,)r. expandtabsrWS_TRANSresplitrr=)rOwidthZchunksrNZcur_lineZcur_lenrMrrrrKws:        rKcCs |jtS)zXConvert a long option name to a valid Python identifier by changing "-" to "_". )rr)r"rrrtranslate_longoptsrhc@s%eZdZdZgddZdS)r<z_Dummy class just used as a place to hold command-line option values as instance attributes.cCs%x|D]}t||dqWdS)zkCreate a new OptionDummy instance. The attributes listed in 'options' will be initialized to None.N)rA)rr[r"rrrrs zOptionDummy.__init__N)rWrXrYrZrrrrrr<s r<__main__zTra-la-la, supercalifragilisticexpialidocious. How *do* you spell that odd word, anyways? (Someone ask Mary -- she'll know [or she'll say, "How should I know?"].) (z width: %drQ)rZr:stringrer>Zdistutils.errorsZ longopt_patcompiler3Z neg_alias_rer1 maketransrrr]Z whitespacerdrKrhr<rWrOwprintr=rrrr s($  S  6  PK!!__pycache__/config.cpython-34.pyonu[ h f @sRdZddlZddlmZddlmZdZGdddeZdS)zdistutils.pypirc Provides the PyPIRCCommand class, the base class for the command classes that uses .pypirc in the distutils.command package. N) ConfigParser)CommandzE[distutils] index-servers = pypi [pypi] username:%s password:%s c@seZdZdZdZdZdZdZdddefdgZdgZ d d Z d d Z ddZ ddZ ddZddZdS) PyPIRCCommandz;Base command that knows how to handle the .pypirc file zhttps://upload.pypi.org/legacy/pypiNz repository=rzurl of repository [default: %s] show-response&display full response text from servercCstjjtjjddS)zReturns rc file path.~z.pypirc)ospathjoin expanduser)selfr5/opt/alt/python34/lib64/python3.4/distutils/config.py _get_rc_file&szPyPIRCCommand._get_rc_filec Cs[|j}tjtj|tjtjBdd}|jt||fWdQXdS)zCreates a default .pypirc file.iwN)rr fdopenopenO_CREATO_WRONLYwriteDEFAULT_PYPIRC)rusernamepasswordrcfrrr _store_pypirc*s .zPyPIRCCommand._store_pypircc CsY|j}tjj|rU|jd||jp>|j}|jpP|j}t }|j ||j }d|kr|j dd}dd|j dD}|gkrd|krdg}qiSnxu|D]}i|d6} |j |d | d >s z.PyPIRCCommand._read_pypirc.. rr!r repositoryrealmrNz server-login)zpasswordN)rr r existsZannouncer$DEFAULT_REPOSITORYr% DEFAULT_REALMrreadsectionsgetsplitZ has_option) rrr$r%configr*Z index_serversZ_serversr!Zcurrentkeydefaultrrr _read_pypirc0sX                  zPyPIRCCommand._read_pypirccCsPddl}|jdd}|j|djdd}|jj|S)z%Read and decode a PyPI HTTP response.rNz content-typez text/plaincharsetascii)cgiZ getheaderZ parse_headerr+r)decode)rZresponser4Z content_typeencodingrrr_read_pypi_responseqs z!PyPIRCCommand._read_pypi_responsecCsd|_d|_d|_dS)zInitialize options.Nr)r$r%Z show_response)rrrrinitialize_optionsxs  z PyPIRCCommand.initialize_optionscCs@|jdkr|j|_n|jdkr<|j|_ndS)zFinalizes options.N)r$r'r%r()rrrrfinalize_options~szPyPIRCCommand.finalize_options)rNr)__name__ __module__ __qualname____doc__r'r(r$r%Z user_optionsZboolean_optionsrrr0r7r8r9rrrrrs"      A  r)r=r Z configparserrZ distutils.cmdrrrrrrrs   PK!W)__pycache__/core.cpython-34.pyonu[ i f"@sdZddlZddlZddlmZddlTddlmZddlm Z ddl m Z ddl m Z d Zd d Zdadad4Zd5Zd/d0Zdd1d2d3ZdS)6a#distutils.core The only module that needs to be imported to use the Distutils; provides the 'setup' function (which is to be called from the setup script). Also indirectly provides the Distribution and Command classes, although they are really defined in distutils.dist and distutils.cmd. N)DEBUG)*) Distribution)Command) PyPIRCCommand) Extensionzusage: %(script)s [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...] or: %(script)s --help [cmd1 cmd2 ...] or: %(script)s --help-commands or: %(script)s cmd --help cCstjj|}ttS)N)ospathbasenameUSAGEvars) script_nameZscriptr3/opt/alt/python34/lib64/python3.4/distutils/core.py gen_usage sr distclassr script_argsoptionsnameversionauthor author_email maintainermaintainer_emailurllicense descriptionlong_descriptionkeywords platforms classifiers download_urlrequiresprovides obsoletessources include_dirs define_macros undef_macros library_dirs librariesruntime_library_dirs extra_objectsextra_compile_argsextra_link_args swig_optsexport_symbolsdependslanguagec,Ks|jd}|r|d=nt}d|krQtjjtjd|dd|krt d|nt d |d|fWYdd}~XnXt d kr|S|j t r#t d |jnt d kr3|Sy|j}WnBtk r}z"t t|jd |WYdd}~XnXt rt d|jnt dkr|S|ry|jWqtk rt dYqtk rC}z;t rtjjd|fnt d|fWYdd}~Xqttfk r}z't rgnt dt|WYdd}~XqXn|S)aThe gateway to the Distutils: do everything your setup script needs to do, in a highly flexible and user-driven way. Briefly: create a Distribution instance; find and parse config files; parse the command line; run each Distutils command found there, customized by the options supplied to 'setup()' (as keyword arguments), in config files, and on the command line. The Distribution instance might be an instance of a class supplied via the 'distclass' keyword argument to 'setup'; if no such class is supplied, then the Distribution class (in dist.py) is instantiated. All other arguments to 'setup' (except for 'cmdclass') are used to set attributes of the Distribution instance. The 'cmdclass' argument, if supplied, is a dictionary mapping command names to command classes. Each command encountered on the command line will be turned into a command class, which is in turn instantiated; any class found in 'cmdclass' is used in place of the default, which is (for command 'foo_bar') class 'foo_bar' in module 'distutils.command.foo_bar'. The command class must provide a 'user_options' attribute which is a list of option specifiers for 'distutils.fancy_getopt'. Any command-line options between the current and the next command are used to set attributes of the current command object. When the entire command-line has been successfully parsed, calls the 'run()' method on each command object in turn. This method will be driven entirely by the Distribution object (which each command object has a reference to, thanks to its constructor), and the command-specific options that became attributes of each command object. rr rrNrzerror in setup command: %szerror in %s setup command: %sinitz%options (after parsing config files):configz error: %sz%options (after parsing command line): commandlineZ interruptedz error: %s z error: %szerror: )getrrr r sysargv_setup_distributionZDistutilsSetupError SystemExit_setup_stop_afterZparse_config_filesrprintZdump_option_dictsZparse_command_lineZDistutilsArgErrorrr Z run_commandsKeyboardInterruptOSErrorstderrwriteZDistutilsErrorZCCompilerErrorstr)ZattrsklassZdistmsgokexcrrrsetup9s`%     '     0    %,rGruncCs|d kr"td|fn|atj}i|d6}i}yxza|tjd<|dk ry|tjd ds2      qPK!__pycache__/dist.cpython-34.pycnu[ i fz @sdZddlZddlZddlZddlmZyddlZWnek rddZYnXddlTddl m Z m Z ddl m Z mZmZddlmZddlmZejd ZGd d d ZGd d d ZddZdS)z}distutils.dist Provides the Distribution class, which represents the module distribution being built/installed/distributed. N)message_from_file)*) FancyGetopttranslate_longopt) check_environ strtobool rfc822_escape)log)DEBUGz^[a-zA-Z]([a-zA-Z0-9_]*)$c@s%eZdZdZd~ddddgZdZdddddddddddddddddddddgZd>d?eDZidd6Zdd@dAZ dBdCZ dddDdEdFZ dGdHZ ddIdJZ dKdLZdMdNZdOdPZdQdRZddgdSdTZdUdVZdWdXZdYdZZd[d\Zd]d^Zd_d`ZddadbZddcddZdedfdgZejdhdiZdjdkZdldmZ dndoZ!dpdqZ"drdsZ#dtduZ$dvdwZ%dxdyZ&dzd{Z'd|d}Z(dS) DistributionaThe core of the Distutils. Most of the work hiding behind 'setup' is really done within a Distribution instance, which farms the work out to the Distutils commands specified on the command line. Setup scripts will almost never instantiate Distribution directly, unless the 'setup()' function is totally inadequate to their needs. However, it is conceivable that a setup script might wish to subclass Distribution for some specialized purpose, and then pass the subclass to 'setup()' as the 'distclass' keyword argument. If so, it is necessary to respect the expectations that 'setup' has of Distribution. See the code for 'setup()', in core.py, for details. verbosevrun verbosely (default)quietq!run quietly (turns verbosity off)dry-runndon't actually do anythinghelphshow detailed help message no-user-cfgN-ignore pydistutils.cfg in your home directoryzCommon commands: (see '--help-commands' for more) setup.py build will build the package underneath 'build/' setup.py install will install the package help-commandslist all available commandsnameprint package nameversionVprint package versionfullnameprint -authorprint the author's name author-email print the author's email address maintainerprint the maintainer's namemaintainer-email$print the maintainer's email addresscontact7print the maintainer's name if known, else the author's contact-email@print the maintainer's email address if known, else the author'surlprint the URL for this packagelicense print the license of the packagelicencealias for --license descriptionprint the package descriptionlong-description"print the long package description platformsprint the list of platforms classifiersprint the list of classifierskeywordsprint the list of keywordsprovides+print the list of packages/modules providedrequires+print the list of packages/modules required obsoletes0print the list of packages/modules made obsoletecCs g|]}t|dqS)r)r).0xrH3/opt/alt/python34/lib64/python3.4/distutils/dist.py qs zDistribution.cCsid|_d|_d|_x!|jD]}t||dq%Wt|_x:|jjD],}d|}t||t|j|qXWi|_ d|_ d|_ d|_ i|_ g|_d|_i|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_i|_i|_|r|jd}|dk r|d=xY|jD]H\}}|j |}x*|jD]\} } d| f|| r:NcSsg|]}|jqSrH)strip)rFZelmrHrHrIrJ_s z1Distribution.finalize_options..,)zkeywordsz platforms)rVrTrstrrrR)rrrtrrHrHrIrqUs  zDistribution.finalize_optionsc Csvddlm}ddlm}|rr|r;|j}n |j}|j||j|jdt dn|r|j|j |jddt dnx|j D]}t |t rt||r|} n|j|} t| dr-t | jtr-|j| jt| jn|j| j|jd | jt dqWt ||jd S) abShow help for the setup script command-line in the form of several lists of command-line options. 'parser' should be a FancyGetopt instance; do not expect it to be returned in the same state, as its option table will be reset to make it generate the correct help text. If 'global_options' is true, lists the global options: --verbose, --dry-run, etc. If 'display_options' is true, lists the "display-only" options: --name, --version, etc. Finally, lists per-command help for every command name or command class in 'commands'. r) gen_usage)rz Global options:rLz*Information display options (just display z!information, ignore any commands)rzOptions for '%s' command:N)distutils.corerrrrrrZ print_help common_usageprintrrrtyperrrmrrrrrrY) rrrrrrrrrMrvklassrHrHrIrbs6      zDistribution._show_helpc Csddlm}|jrD|jtdt||jdSd}i}x|jD]}d||dr:rr<r@rBrDrN)zkeywordsz platforms)z classifierszprovideszrequiresz obsoletes) rrZ help_commandsprint_commandsrrYrrerrVrTr) rrrrZany_display_optionsZis_display_optionoptionrxryrrHrHrIrs,        z#Distribution.handle_display_optionscCst|dxw|D]o}|jj|}|sE|j|}ny |j}Wntk rld}YnXtd|||fqWdS)zZPrint a subset of the list of all commands -- used by 'print_commands()'. :z(no description available)z %-*s %sN)rrWrerr6AttributeError)rrrr max_lengthcmdrr6rHrHrIprint_command_lists    zDistribution.print_command_listcCsddl}|jj}i}x|D]}d||Get a list of (command, description) tuples. The list is divided into "standard commands" (listed in distutils.command.__all__) and "extra commands" (mentioned in self.cmdclass, but not a standard command). The descriptions come from the command class attribute 'description'. rNrz(no description available)) rrvrrWrrerrr6r) rrrrrrrrvrr6rHrHrIget_command_lists(      zDistribution.get_command_listcCsx|j}t|tst|dkr-d}ndd|jdD}d|krh|jddn||_n|S)z9Return a list of packages from which commands are loaded.NrLcSs(g|]}|dkr|jqS)rL)r)rFZpkgrHrHrIrJs z5Distribution.get_command_packages..rzdistutils.commandr)rXrrrinsert)rrZpkgsrHrHrIget_command_packagess     z!Distribution.get_command_packagescCs|jj|}|r|Sx|jD]}d||f}|}yt|tj|}Wntk rww)YnXyt||}Wn+tk rt d|||fYnX||j|<|SWt d|dS)aoReturn the class that implements the Distutils command named by 'command'. First we check the 'cmdclass' dictionary; if the command is mentioned there, we fetch the class object from the dictionary and return it. Otherwise we load the command module ("distutils.command." + command) and fetch the command class from the module. The loaded class is also stored in 'cmdclass' to speed future calls to 'get_command_class()'. Raises DistutilsModuleError if the expected module could not be found, or if that module does not define the expected class. z%s.%sz3invalid command '%s' (no class '%s' in module '%s')zinvalid command '%s'N) rWrer __import__rjr ImportErrorrVrr)rrrvrZpkgnameZ module_nameZ klass_namemodulerHrHrIrs(     zDistribution.get_command_classcCs|jj|}| r|rtr9|jd|n|j|}||}|j|.z1error in %s: command '%s' has no such option '%s')get_command_namergr rrfZboolean_optionsrrrrrRrrmrr) rrrcZ option_dict command_namersourcerZ bool_optsZneg_optZ is_stringrzrHrHrIr]s>        z!Distribution._set_command_optionsrcCsddlm}t||s7|}|j|}n |j}|jsP|S|jd|_d|j|<|j||rx'|j D]}|j ||qWn|S)aReinitializes a command to the state it was in when first returned by 'get_command_obj()': ie., initialized but not yet finalized. This provides the opportunity to sneak option values in programmatically, overriding or supplementing user-supplied values from the config files and command line. You'll have to re-finalize the command object (by calling 'finalize_options()' or 'ensure_finalized()') before using it for real. 'command' should be a command name (string) or command object. If 'reinit_subcommands' is true, also reinitializes the command's sub-commands, as declared by the 'sub_commands' class attribute (if it has one). See the "install" command for an example. Only reinitializes the sub-commands that actually matter, ie. those whose test predicates return true. Returns the reinitialized command object. r)r) rrrrrZ finalizedZinitialize_optionsrdrZget_sub_commandsreinitialize_command)rrrvZreinit_subcommandsrrsubrHrHrIrs      z!Distribution.reinitialize_commandcCstj||dS)N)r )rrrzlevelrHrHrIrszDistribution.announcecCs%x|jD]}|j|q WdS)zRun each command that was seen on the setup script command line. Uses the list of commands found and cache of command objects created by 'get_command_obj()'. N)r run_command)rrrrHrHrI run_commandsszDistribution.run_commandscCsZ|jj|rdStjd||j|}|j|jd|j|Zd?d@ZdAdBZdCdDZdEdFZdGdHZdIdJZdKdLZ dMdNZ!dS)PrSz]Dummy class to hold the distribution meta-data: name, version, author, and so forth. rrr$ author_emailr(maintainer_emailr0r2r6long_descriptionr>r:r"r, contact_emailr< download_urlr@rBrDNcCs|dk r"|jt|nd|_d|_d|_d|_d|_d|_d|_d|_ d|_ d|_ d|_ d|_ d|_d|_d|_d|_d|_dS)N) read_pkg_fileopenrrr$rr(r r0r2r6r r>r:r<r r@rBrD)rrrrHrHrIr}s&                 zDistributionMetadata.__init__cst|fdd}fdd}d}|d|_|d|_|d|_|d |_d |_|d |_d |_|d |_|d |_ dkr|d|_ n d |_ |d|_ |d|_dkr!|dj d|_ n|d|_|d|_|dkr{|d|_|d|_|d|_nd |_d |_d |_d S)z-Reads the metadata values from a file object.cs|}|dkrdS|S)NUNKNOWNrH)rr)rzrHrI _read_fields  z7DistributionMetadata.read_pkg_file.._read_fieldcs&j|d}|gkr"dS|S)N)Zget_all)rvalues)rzrHrI _read_list%s z6DistributionMetadata.read_pkg_file.._read_listzmetadata-versionrrZsummaryr$Nz author-emailz home-pager2z download-urlr6r>rplatformZ classifierz1.1rBr@rD)rrrr6r$r(rr r0r2r r rr>r:r<rBr@rD)rrfilerrZmetadata_versionrH)rzrIr s:          z"DistributionMetadata.read_pkg_filec Cs>ttjj|dddd}|j|WdQXdS)z7Write the PKG-INFO file into the release tree. zPKG-INFOwencodingzUTF-8N)rrrrwrite_pkg_file)rrZbase_dirZpkg_inforHrHrIwrite_pkg_infoOs z#DistributionMetadata.write_pkg_infocCsd}|js3|js3|js3|js3|jr<d}n|jd||jd|j|jd|j|jd|j|jd|j |jd|j |jd |j |jd |j |jr|jd |jnt |j}|jd |d j|j}|r`|jd|n|j|d|j|j|d|j|j|d|j|j|d|j|j|d|jdS)z9Write the PKG-INFO format data to a file object. z1.0z1.1zMetadata-Version: %s z Name: %s z Version: %s z Summary: %s zHome-page: %s z Author: %s zAuthor-email: %s z License: %s zDownload-URL: %s zDescription: %s rz Keywords: %s ZPlatformZ ClassifierZRequiresZProvidesZ ObsoletesN)r@rBrDr<r rlget_name get_versionget_descriptionget_url get_contactget_contact_email get_licenserget_long_descriptionr get_keywords _write_list get_platformsget_classifiers get_requires get_provides get_obsoletes)rrrrZ long_descr>rHrHrIrVs0  z#DistributionMetadata.write_pkg_filecCs,x%|D]}|jd||fqWdS)Nz%s: %s )rl)rrrrrrrHrHrIr"xs z DistributionMetadata._write_listcCs |jp dS)Nr)r)rrrHrHrIr~szDistributionMetadata.get_namecCs |jp dS)Nz0.0.0)r)rrrHrHrIrsz DistributionMetadata.get_versioncCsd|j|jfS)Nz%s-%s)rr)rrrHrHrI get_fullnamesz!DistributionMetadata.get_fullnamecCs |jp dS)Nr)r$)rrrHrHrI get_authorszDistributionMetadata.get_authorcCs |jp dS)Nr)r)rrrHrHrIget_author_emailsz%DistributionMetadata.get_author_emailcCs |jp dS)Nr)r()rrrHrHrIget_maintainersz#DistributionMetadata.get_maintainercCs |jp dS)Nr)r )rrrHrHrIget_maintainer_emailsz)DistributionMetadata.get_maintainer_emailcCs|jp|jpdS)Nr)r(r$)rrrHrHrIrsz DistributionMetadata.get_contactcCs|jp|jpdS)Nr)r r)rrrHrHrIrsz&DistributionMetadata.get_contact_emailcCs |jp dS)Nr)r0)rrrHrHrIrszDistributionMetadata.get_urlcCs |jp dS)Nr)r2)rrrHrHrIrsz DistributionMetadata.get_licensecCs |jp dS)Nr)r6)rrrHrHrIrsz$DistributionMetadata.get_descriptioncCs |jp dS)Nr)r )rrrHrHrIr sz)DistributionMetadata.get_long_descriptioncCs |jp gS)N)r>)rrrHrHrIr!sz!DistributionMetadata.get_keywordscCs|jpdgS)Nr)r:)rrrHrHrIr#sz"DistributionMetadata.get_platformscCs |jp gS)N)r<)rrrHrHrIr$sz$DistributionMetadata.get_classifierscCs |jp dS)Nr)r )rrrHrHrIget_download_urlsz%DistributionMetadata.get_download_urlcCs |jp gS)N)rB)rrrHrHrIr%sz!DistributionMetadata.get_requirescCs:ddl}x|D]}|jj|qW||_dS)Nr)distutils.versionpredicateversionpredicateVersionPredicaterB)rrrrr rHrHrI set_requiress  z!DistributionMetadata.set_requirescCs |jp gS)N)r@)rrrHrHrIr&sz!DistributionMetadata.get_providescCsMdd|D}x*|D]"}ddl}|jj|qW||_dS)NcSsg|]}|jqSrH)r)rFr rHrHrIrJs z5DistributionMetadata.set_provides..r)r.r/Zsplit_provisionr@)rrrr rrHrHrI set_providess   z!DistributionMetadata.set_providescCs |jp gS)N)rD)rrrHrHrIr'sz"DistributionMetadata.get_obsoletescCs:ddl}x|D]}|jj|qW||_dS)Nr)r.r/r0rD)rrrrr rHrHrI set_obsoletess  z"DistributionMetadata.set_obsoletes)znamezversionzauthorz author_emailz maintainerzmaintainer_emailzurllicensez descriptionzlong_descriptionzkeywordsz platformszfullnamezcontactr r4z classifiersz download_urlzprovideszrequiresz obsoletes)"rrrrrUr}r rrr"rrr(r)r*r+r,rrrrZ get_licencerr r!r#r$r-r%r1r&r2r'r3rHrHrHrIrSsJ  4  "                       rScCs2g}x%|D]}|j|ddq W|S)zConvert a 4-tuple 'help_options' list as found in various command classes to the 3-tuple form required by FancyGetopt. r)r)rMZ new_optionsZ help_tuplerHrHrIrs r)rrjrreZemailrrhrZdistutils.errorsZdistutils.fancy_getoptrrZdistutils.utilrrrrr Zdistutils.debugr compilerr rSrrHrHrHrIs$$   PK!`(__pycache__/unixccompiler.cpython-34.pyonu[ h fU5@sdZddlZddlZddlZddlmZddlmZddlm Z m Z m Z ddl m Z mZmZmZddlmZejdkrddlZnGd d d e ZdS) a9distutils.unixccompiler Contains the UnixCCompiler class, a subclass of CCompiler that handles the "typical" Unix-style command-line C compiler: * macros defined with -Dname[=value] * macros undefined with -Uname * include search directories specified with -Idir * libraries specified with -lllib * library search directories specified with -Ldir * compile handled by 'cc' (or similar) executable with -c option: compiles .c to .o * link static library handled by 'ar' command (possibly with 'ranlib') * link shared library handled by 'cc -shared' N) sysconfig)newer) CCompilergen_preprocess_optionsgen_lib_options)DistutilsExecError CompileErrorLibError LinkError)logdarwinc seZdZdZidd6dgd6dgd6dgd6ddgd 6dgd 6d d gd 6dd6Zejdddkrdgedr?r%r'r*rZ EXECUTABLErrrbasenamer4r5r6r7r+rr r r@)rZ target_descr?rBr;r r!r"Zexport_symbolsr@r-r.Z build_temprAr/Zlib_optsZld_argsZlinkerir2r#r#r$linksH     "zUnixCCompiler.linkcCsd|S)Nz-Lr#)rdirr#r#r$library_dir_optionsz UnixCCompiler.library_dir_optioncCsd|kpd|kS)Ngcczg++r#)rZ compiler_namer#r#r$_is_gccszUnixCCompiler._is_gcccCstjjtjd}tjdddkr<d|Stjdddkr|j|rrdd|gSdd|gStjdd d kstjddd krd |gS|j|rtjd dkrd|Sd|Snd|SdS)NCCrr z-Lzhp-uxz-Wl,+sz+sZirix646Zosf1V5z-rpathGNULDyesz-Wl,--enable-new-dtags,-Rz-Wl,-Rz-R)r(r)rLrrr4r5rR)rrOrr#r#r$runtime_library_dir_options2  z(UnixCCompiler.runtime_library_dir_optioncCsd|S)Nz-lr#)rlibr#r#r$library_optionszUnixCCompiler.library_optioncCs|j|dd}|j|dd}|j|dd}tjdkrtjd}tjd|}|dkrd} q|jd } nx5|D]-} tj j | |} tj j | |} tj j | |} tjdkr| j d s| j d r| j d  rtj j | | d d|} tj j | | d d|} tj j | | d d|} ntj j | r| Stj j | r| Stj j | r| SqWdS) NZlib_typeshareddylibstaticr CFLAGSz-isysroot\s+(\S+)/rEz/System/z/usr/z /usr/local/) r=r4r5rrresearchgroupr(r)rK startswithexists)rdirsrYr@Zshared_fZdylib_fZstatic_fZcflagsmZsysrootrOr[r\r]r#r#r$find_library_file s4   ""%zUnixCCompiler.find_library_file)__name__ __module__ __qualname__Z compiler_typeZ executablesr4r5Zsrc_extensionsZ obj_extensionZstatic_lib_extensionZshared_lib_extensionZdylib_lib_extensionZstatic_lib_formatZshared_lib_formatZdylib_lib_formatZ exe_extensionrr3r:rCrNrPrRrXrZrgr#r#)rr$r -sB             6   * r )__doc__r(r4r`Z distutilsrZdistutils.dep_utilrZdistutils.ccompilerrrrZdistutils.errorsrrr r r r5r6r r#r#r#r$s$"PK!:====__pycache__/cmd.cpython-34.pycnu[ h fJ@sdZddlZddlZddlZddlmZddlmZmZm Z m Z m Z ddlm Z GdddZ Gdd d e ZdS) ztdistutils.cmd Provides the Command class, the base class for the command classes in the distutils.command package. N)DistutilsOptionError)utildir_util file_util archive_utildep_util)logc@seZdZdZgZddZddZddZdd Zd d Z d d ddZ ddZ dddZ ddZ d ddZd ddZddZd ddZdd Zd!d"Zd#d$Zd%d&Zdd'd(Zd)d*d+Zd,d-Zd.d/Zd0d1Zd dd2d3Zd4d5d6Zddd dd7d8Zddd)dd9d:Zdd;d<Zddd=d>Z d d d d d?d@Z!d d ddAdBZ"d S)CCommanda}Abstract base class for defining command classes, the "worker bees" of the Distutils. A useful analogy for command classes is to think of them as subroutines with local variables called "options". The options are "declared" in 'initialize_options()' and "defined" (given their final values, aka "finalized") in 'finalize_options()', both of which must be defined by every command class. The distinction between the two is necessary because option values might come from the outside world (command line, config file, ...), and any options dependent on other options must be computed *after* these outside influences have been processed -- hence 'finalize_options()'. The "body" of the subroutine, where it does all its work based on the values of its options, is the 'run()' method, which must also be implemented by every command class. cCsddlm}t||s.tdn|jtkrLtdn||_|jd|_ |j |_ d|_ d|_ d|_ dS)zCreate and initialize a new Command object. Most importantly, invokes the 'initialize_options()' method, which is the real initializer and depends on the actual command being instantiated. r) Distributionz$dist must be a Distribution instancezCommand is an abstract classN)Zdistutils.distr isinstance TypeError __class__r RuntimeError distributioninitialize_optionsZ_dry_runverboseforcehelp finalized)selfZdistr r2/opt/alt/python34/lib64/python3.4/distutils/cmd.py__init__/s     zCommand.__init__cCsR|dkrBt|d|}|dkr;t|j|S|Sn t|dS)Ndry_run_)getattrrAttributeError)rattrZmyvalrrr __getattr___s   zCommand.__getattr__cCs#|js|jnd|_dS)N)rfinalize_options)rrrrensure_finalizedis  zCommand.ensure_finalizedcCstd|jdS)aSet default values for all the options that this command supports. Note that these defaults may be overridden by other commands, by the setup script, by config files, or by the command-line. Thus, this is not the place to code dependencies between options; generally, 'initialize_options()' implementations are just a bunch of "self.foo = None" assignments. This method must be implemented by all command classes. z,abstract method -- subclass %s must overrideN)rr )rrrrr{s zCommand.initialize_optionscCstd|jdS)aSet final values for all the options that this command supports. This is always called as late as possible, ie. after any option assignments from the command-line or from other commands have been done. Thus, this is the place to code option dependencies: if 'foo' depends on 'bar', then it is safe to set 'foo' from 'bar' as long as 'foo' still has the same value it was assigned in 'initialize_options()'. This method must be implemented by all command classes. z,abstract method -- subclass %s must overrideN)rr )rrrrr s zCommand.finalize_optionsNcCsddlm}|dkr/d|j}n|j||dtj|d}x|jD]t\}}}|j|}|d dkr|dd }nt||}|j|d||fdtjq]WdS) Nr) longopt_xlatezcommand options for '%s':levelz r=z%s = %sr&) Zdistutils.fancy_getoptr#get_command_nameannouncerINFO user_options translater)rheaderindentr#optionrvaluerrr dump_optionss  zCommand.dump_optionscCstd|jdS)aA command's raison d'etre: carry out the action it exists to perform, controlled by the options initialized in 'initialize_options()', customized by other commands, the setup script, the command-line, and config files, and finalized in 'finalize_options()'. All terminal output and filesystem interaction should be done by 'run()'. This method must be implemented by all command classes. z,abstract method -- subclass %s must overrideN)rr )rrrrruns z Command.runrcCstj||dS)zmIf the current verbosity level is of greater than or equal to 'level' print 'msg' to stdout. N)r)rmsgr$rrrr(szCommand.announcecCs4ddlm}|r0t|tjjndS)z~Print 'msg' to stdout if the global DEBUG (taken from the DISTUTILS_DEBUG environment variable) flag is true. r)DEBUGN)Zdistutils.debugr3printsysstdoutflush)rr2r3rrr debug_prints zCommand.debug_printcCs^t||}|dkr/t||||St|tsZtd|||fn|S)Nz'%s' must be a %s (got `%s`))rsetattrr strr)rr.whatdefaultvalrrr_ensure_stringlikes zCommand._ensure_stringlikecCs|j|d|dS)zWEnsure that 'option' is a string; if not defined, set it to 'default'. stringN)r>)rr.r<rrr ensure_stringszCommand.ensure_stringcCst||}|dkrdSt|trMt||tjd|nPt|trxtdd|D}nd}|std||fndS)zEnsure that 'option' is a list of strings. If 'option' is currently a string, we split it either on /,\s*/ or /\s+/, so "foo bar baz", "foo,bar,baz", and "foo, bar baz" all become ["foo", "bar", "baz"]. Nz,\s*|\s+css|]}t|tVqdS)N)r r:).0vrrr sz-Command.ensure_string_list..Fz''%s' must be a list of strings (got %r)) rr r:r9resplitlistallr)rr.r=okrrrensure_string_lists zCommand.ensure_string_listcCsO|j|||}|dk rK|| rKtd|||fndS)Nzerror in '%s' option: )r>r)rr.Ztesterr;Z error_fmtr<r=rrr_ensure_tested_strings zCommand._ensure_tested_stringcCs |j|tjjdddS)z5Ensure that 'option' is the name of an existing file.filenamez$'%s' does not exist or is not a fileN)rJospathisfile)rr.rrrensure_filenameszCommand.ensure_filenamecCs |j|tjjdddS)Nzdirectory namez)'%s' does not exist or is not a directory)rJrLrMisdir)rr.rrrensure_dirnameszCommand.ensure_dirnamecCs$t|dr|jS|jjSdS)N command_name)hasattrrRr __name__)rrrrr' szCommand.get_command_namecGsh|jj|}|jxE|D]=\}}t||dkr#t||t||q#q#WdS)a>Set the values of any "undefined" options from corresponding option values in some other command object. "Undefined" here means "is None", which is the convention used to indicate that an option has not been changed between 'initialize_options()' and 'finalize_options()'. Usually called from 'finalize_options()' for options that depend on some other command rather than another option of the same command. 'src_cmd' is the other command from which option values will be taken (a command object will be created for it if necessary); the remaining arguments are '(src_option,dst_option)' tuples which mean "take the value of 'src_option' in the 'src_cmd' command object, and copy it to 'dst_option' in the current command object". N)rget_command_objr!rr9)rZsrc_cmdZ option_pairsZ src_cmd_objZ src_optionZ dst_optionrrrset_undefined_optionss  zCommand.set_undefined_optionscCs#|jj||}|j|S)zWrapper around Distribution's 'get_command_obj()' method: find (create if necessary and 'create' is true) the command object for 'command', call its 'ensure_finalized()' method, and return the finalized command object. )rrUr!)rcommandcreateZcmd_objrrrget_finalized_command$s zCommand.get_finalized_commandrcCs|jj||S)N)rreinitialize_command)rrWZreinit_subcommandsrrrrZ0s zCommand.reinitialize_commandcCs|jj|dS)zRun some other command: uses the 'run_command()' method of Distribution, which creates and finalizes the command object if necessary and then invokes its 'run()' method. N)r run_command)rrWrrrr[4szCommand.run_commandcCsLg}x?|jD]4\}}|dks4||r|j|qqW|S)akDetermine the sub-commands that are relevant in the current distribution (ie., that need to be run). This is based on the 'sub_commands' class attribute: each tuple in that list may include a method that we call to determine if the subcommand needs to be run for the current distribution. Return a list of command names. N) sub_commandsappend)rZcommandsZcmd_namemethodrrrget_sub_commands;s zCommand.get_sub_commandscCs!tjd|j|fdS)Nzwarning: %s: %s )rwarnr')rr2rrrr`Ks z Command.warncCs tj|||d|jdS)Nr)rexecuter)rfuncargsr2r$rrrraOszCommand.executeicCstj||d|jdS)Nr)rmkpathr)rnamemoderrrrdRszCommand.mkpathc Cs)tj|||||j |d|jS)zCopy a file respecting verbose, dry-run and force flags. (The former two default to whatever is in the Distribution object, and the latter defaults to false for commands that don't define it.)r)r copy_filerr)rinfileoutfile preserve_modepreserve_timeslinkr$rrrrgUszCommand.copy_filec Cs)tj||||||j d|jS)z\Copy an entire directory tree respecting verbose, dry-run, and force flags. r)r copy_treerr)rrhrirjrkZpreserve_symlinksr$rrrrm^szCommand.copy_treecCstj||d|jS)z$Move a file respecting dry-run flag.r)r move_filer)rsrcZdstr$rrrrngszCommand.move_filecCs*ddlm}|||d|jdS)z2Spawn an external command respecting dry-run flag.r)spawnrN)Zdistutils.spawnrpr)rcmdZ search_pathr$rprrrrpksz Command.spawnc Cs+tj||||d|jd|d|S)Nrownergroup)r make_archiver)rZ base_nameformatZroot_dirZbase_dirrrrsrrrrtps zCommand.make_archivecCs|dkrd|}nt|tr4|f}n$t|ttfsXtdn|dkrd|dj|f}n|jstj||r|j ||||n t j |dS)aSpecial case of 'execute()' for operations that process one or more input files and generate one output file. Works just like 'execute()', except the operation is skipped and a different message printed if 'outfile' already exists and is newer than all files listed in 'infiles'. If the command defined 'self.force', and it is true, then the command is unconditionally run -- does no timestamp checks. Nzskipping %s (inputs unchanged)z9'infiles' must be a string, or a list or tuple of stringszgenerating %s from %sz, ) r r:rFtupler joinrrZ newer_grouprardebug)rZinfilesrirbrcZexec_msgZskip_msgr$rrr make_filevs     zCommand.make_file)#rT __module__ __qualname____doc__r\rrr!rr r0r1r(r8r>r@rIrJrOrQr'rVrYrZr[r_r`rardrgrmrnrprtryrrrrr sF  0              r c@sOeZdZdZdgZddZddZd d Zd d Zd S) install_miscz{Common base class for installing some files in a subdirectory. Currently used by install_data and install_scripts. install-dir=d!directory to install the files tocCsd|_g|_dS)N) install_diroutfiles)rrrrrs zinstall_misc.initialize_optionscCs|jd|dfdS)NZinstallr)rV)rdirnamerrr_install_dir_fromszinstall_misc._install_dir_fromcCsmg|_|sdS|j|jxC|D];}|j||j|jjtjj|j|q*WdS)N)rrdrrgr]rLrMrw)rZfilelistfrrr _copy_filess  zinstall_misc._copy_filescCs|jS)N)r)rrrr get_outputsszinstall_misc.get_outputsN)r~rr) rTrzr{r|r*rrrrrrrrr}s     r})r|r5rLrDZdistutils.errorsrZ distutilsrrrrrrr r}rrrrs$(PK!`(__pycache__/unixccompiler.cpython-34.pycnu[ h fU5@sdZddlZddlZddlZddlmZddlmZddlm Z m Z m Z ddl m Z mZmZmZddlmZejdkrddlZnGd d d e ZdS) a9distutils.unixccompiler Contains the UnixCCompiler class, a subclass of CCompiler that handles the "typical" Unix-style command-line C compiler: * macros defined with -Dname[=value] * macros undefined with -Uname * include search directories specified with -Idir * libraries specified with -lllib * library search directories specified with -Ldir * compile handled by 'cc' (or similar) executable with -c option: compiles .c to .o * link static library handled by 'ar' command (possibly with 'ranlib') * link shared library handled by 'cc -shared' N) sysconfig)newer) CCompilergen_preprocess_optionsgen_lib_options)DistutilsExecError CompileErrorLibError LinkError)logdarwinc seZdZdZidd6dgd6dgd6dgd6ddgd 6dgd 6d d gd 6dd6Zejdddkrdgedr?r%r'r*rZ EXECUTABLErrrbasenamer4r5r6r7r+rr r r@)rZ target_descr?rBr;r r!r"Zexport_symbolsr@r-r.Z build_temprAr/Zlib_optsZld_argsZlinkerir2r#r#r$linksH     "zUnixCCompiler.linkcCsd|S)Nz-Lr#)rdirr#r#r$library_dir_optionsz UnixCCompiler.library_dir_optioncCsd|kpd|kS)Ngcczg++r#)rZ compiler_namer#r#r$_is_gccszUnixCCompiler._is_gcccCstjjtjd}tjdddkr<d|Stjdddkr|j|rrdd|gSdd|gStjdd d kstjddd krd |gS|j|rtjd dkrd|Sd|Snd|SdS)NCCrr z-Lzhp-uxz-Wl,+sz+sZirix646Zosf1V5z-rpathGNULDyesz-Wl,--enable-new-dtags,-Rz-Wl,-Rz-R)r(r)rLrrr4r5rR)rrOrr#r#r$runtime_library_dir_options2  z(UnixCCompiler.runtime_library_dir_optioncCsd|S)Nz-lr#)rlibr#r#r$library_optionszUnixCCompiler.library_optioncCs|j|dd}|j|dd}|j|dd}tjdkrtjd}tjd|}|dkrd} q|jd } nx5|D]-} tj j | |} tj j | |} tj j | |} tjdkr| j d s| j d r| j d  rtj j | | d d|} tj j | | d d|} tj j | | d d|} ntj j | r| Stj j | r| Stj j | r| SqWdS) NZlib_typeshareddylibstaticr CFLAGSz-isysroot\s+(\S+)/rEz/System/z/usr/z /usr/local/) r=r4r5rrresearchgroupr(r)rK startswithexists)rdirsrYr@Zshared_fZdylib_fZstatic_fZcflagsmZsysrootrOr[r\r]r#r#r$find_library_file s4   ""%zUnixCCompiler.find_library_file)__name__ __module__ __qualname__Z compiler_typeZ executablesr4r5Zsrc_extensionsZ obj_extensionZstatic_lib_extensionZshared_lib_extensionZdylib_lib_extensionZstatic_lib_formatZshared_lib_formatZdylib_lib_formatZ exe_extensionrr3r:rCrNrPrRrXrZrgr#r#)rr$r -sB             6   * r )__doc__r(r4r`Z distutilsrZdistutils.dep_utilrZdistutils.ccompilerrrrZdistutils.errorsrrr r r r5r6r r#r#r#r$s$"PK!1-1-'__pycache__/fancy_getopt.cpython-34.pycnu[ i fxE@sKdZddlZddlZddlZddlZddlTdZejdeZejdeefZ e j ddZ Gd d d Z d d Zd dejDZddZddZGdddZedkrGdZxKddddfD]7Zedeedjeeeeq WndS)a6distutils.fancy_getopt Wrapper around the standard getopt module that provides the following additional features: * short and long options are tied together * options have help strings, so fancy_getopt could potentially create a complete usage summary * options set attributes of a passed-in object N)*z[a-zA-Z](?:[a-zA-Z0-9-]*)z^%s$z ^(%s)=!(%s)$-_c@seZdZdZdddZddZddZddd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddddZddZdddZddddZdS) FancyGetoptaWrapper around the standard 'getopt()' module that provides some handy extra functionality: * short and long options are tied together * options have help strings, and help text can be assembled from them * options set attributes of a passed-in object * boolean options can have "negative aliases" -- eg. if --quiet is the "negative alias" of --verbose, then "--quiet" on the command line sets 'verbose' to false NcCst||_i|_|jr(|jni|_i|_g|_g|_i|_i|_i|_ g|_ dS)N) option_table option_index _build_indexaliasnegative_alias short_opts long_opts short2long attr_name takes_arg option_order)selfrr;/opt/alt/python34/lib64/python3.4/distutils/fancy_getopt.py__init__)s           zFancyGetopt.__init__cCs6|jjx"|jD]}||j|d= 2Nz:invalid short option '%s': must a single character or None=:z>invalid negative alias '%s': aliased option '%s' takes a valuezginvalid alias '%s': inconsistent with aliased option '%s' (one of them takes a value, the other doesn'tzEinvalid long option name '%s' (must be letters, numbers, hyphens onlyr/r/)r r r rrepeatrlen ValueErrorr strrrrr getr longopt_rematchrr)rrlongshorthelpr0Zalias_torrr_grok_option_tables^     "  !        zFancyGetopt._grok_option_tablec Cs>|dkr"tjdd}n|dkr@t}d}nd}|jdj|j}y"tj|||j\}}Wn4tjk r}zt |WYdd}~XnXxh|D]`\}}t |dkr|ddkr|j |d}n>t |dkr,|ddd ks2t |dd}|j j|} | rc| }n|j|s|d kst d |jj|} | r| }d}qd}n|j|} |r|jj| dk rt|| dd}nt|| ||jj||fqW|r6||fS|SdS) aParse command-line options in args. Store as attributes on object. If 'args' is None or not supplied, uses 'sys.argv[1:]'. If 'object' is None or not supplied, creates a new OptionDummy object, stores option values there, and returns a tuple (args, object). If 'object' is supplied, it is modified in place and 'getopt()' just returns 'args'; in both cases, the returned 'args' is a modified copy of the passed-in 'args' list, which is left untouched. Nr,TF r+rrz--zboolean option can't have value)sysargv OptionDummyr:joinr getoptr errorZDistutilsArgErrorr1r r"r r4rr rr0getattrsetattrrr) rargsobjectZcreated_objectr Zoptsmsgr%valr attrrrrrAsF     "".      zFancyGetopt.getoptcCs)|jdkrtdn|jSdS)zReturns the list of (option, value) tuples processed by the previous run of 'getopt()'. Raises RuntimeError if 'getopt()' hasn't been called yet. Nz!'getopt()' hasn't been called yet)r RuntimeError)rrrrget_option_orderszFancyGetopt.get_option_ordercCsd}x||jD]q}|d}|d}t|}|ddkrS|d}n|dk rl|d}n||kr|}qqW|ddd}d}||} d|} |r|g} n d g} x|jD]}|dd \}}} t| | } |ddkr'|dd}n|dkrt| rZ| jd ||| dfq| jd ||fnHd ||f}| r| jd ||| dfn| jd|x)| ddD]}| j| |qWqW| S)zGenerate help text (a list of strings, one per suggested line of output) from the option table for this FancyGetopt object. rr,r-Nr+Nr;zOption summary:r)z --%-*s %sz --%-*s z%s (-%s)z --%-*sr/r/r/)rr1 wrap_textr)rheaderZmax_optrr7r8lZ opt_widthZ line_widthZ text_widthZ big_indentlinesr9textZ opt_namesrrr generate_helpsF             ! zFancyGetopt.generate_helpcCsG|dkrtj}nx(|j|D]}|j|dq(WdS)N )r=stdoutrSwrite)rrOfilelinerrr print_helphs  zFancyGetopt.print_help)__name__ __module__ __qualname____doc__rrrrrrr&r'r(r:rArKrSrYrrrrrs (       M= OrcCs)t|}|j||j||S)N)rr(rA)optionsZ negative_optrFrEparserrrr fancy_getoptos  r`cCsi|]}dt|qS)r;)ord).0Z_wscharrrr us rccCs|dkrgSt||kr)|gS|j}|jt}tjd|}dd|D}g}x |r}g}d}xt|rt|d}|||kr|j|d|d=||}q|r|d ddkr|d =nPqW|rd|dkrC|j|dd||d|d|d [string] Split 'text' into multiple lines of no more than 'width' characters each, and return the list of strings that results. Nz( +|-+)cSsg|]}|r|qSrr)rbZchrrr s zwrap_text..rr,r;r<r/r/)r1 expandtabsrWS_TRANSresplitrr@)rRwidthZchunksrQZcur_lineZcur_lenrPrrrrNws:        rNcCs |jtS)zXConvert a long option name to a valid Python identifier by changing "-" to "_". )rr)r%rrrtranslate_longoptsrjc@s%eZdZdZgddZdS)r?z_Dummy class just used as a place to hold command-line option values as instance attributes.cCs%x|D]}t||dqWdS)zkCreate a new OptionDummy instance. The attributes listed in 'options' will be initialized to None.N)rD)rr^r%rrrrs zOptionDummy.__init__N)rZr[r\r]rrrrrr?s r?__main__zTra-la-la, supercalifragilisticexpialidocious. How *do* you spell that odd word, anyways? (Someone ask Mary -- she'll know [or she'll say, "How should I know?"].) (z width: %drT)r]r=stringrgrAZdistutils.errorsZ longopt_patcompiler5Z neg_alias_rer3 maketransrrr`Z whitespacerfrNrjr?rZrRwprintr@rrrr s($  S  6  PK!p>p>'__pycache__/msvccompiler.cpython-34.pycnu[ i f[@sdZddlZddlZddlmZmZmZmZmZddl m Z m Z m Z ddl mZdZy@ddlZdZeZejZejZejZejZWnek r:yLddlZddlZdZeZejZejZejZejZWnek r5ejdYnXYnXerbejejej ej!fZ"nd d Z#d d Z$d dZ%GdddZ&ddZ'ddZ(ddZ)Gddde Z*e'dkrej+de*Z,ddl-m*Z*ddl-m&Z&ndS)zdistutils.msvccompiler Contains MSVCCompiler, an implementation of the abstract CCompiler class for the Microsoft Visual Studio. N)DistutilsExecErrorDistutilsPlatformError CompileErrorLibError LinkError) CCompilergen_preprocess_optionsgen_lib_options)logFTzWarning: Can't read registry to find the necessary compiler setting Make sure that Python modules winreg, win32api or win32con are installed.cCsyt||}Wntk r+dSYnXg}d}xDyt||}Wntk rcPYnX|j||d7}q;W|S)zReturn list of registry keys.Nr) RegOpenKeyExRegError RegEnumKeyappend)basekeyhandleLikr;/opt/alt/python34/lib64/python3.4/distutils/msvccompiler.py read_keys7s    rcCsyt||}Wntk r+dSYnXi}d}xbyt||\}}}Wntk rlPYnX|j}t||t|<|d7}q;W|S)zXReturn dict of registry keys and values. All names are converted to lowercase. Nrr )r r RegEnumValuelower convert_mbcs)rrrdrnamevaluetyperrr read_valuesHs    r c CsJt|dd}|dk rFy|d}WqFtk rBYqFXn|S)Ndecodembcs)getattr UnicodeError)sZdecrrrr]s  rc@s@eZdZddZddZddZddZd S) MacroExpandercCsi|_|j|dS)N)macros load_macros)selfversionrrr__init__gs zMacroExpander.__init__cCsCx<tD]4}t||}|r|||jd|)r@r*rArB)rErjrrrget_build_architectures  rKcCsIg}x<|D]4}tjj|}||kr |j|q q W|S)znReturn a list of normalized paths with duplicates removed. The current order of paths is maintained. )osr-normpathr)pathsZ reduced_pathsr1Znprrrnormalize_and_reduce_pathss   rOc @sseZdZdZdZiZdgZdddgZdgZdgZ eeee Z d Z d Z d Z d Zd ZZdZdddddZddZddddZdddddddddZdddddZdddddddddddd ZddZd d!Zd"d#Zdd$d%Zd&d'Zd(d)d*Zd+d,ZdS)- MSVCCompilerzwConcrete class that implements an interface to Microsoft Visual C++, as defined by the CCompiler abstract class.Zmsvcz.cz.ccz.cppz.cxxz.rcz.mcz.resz.objz.libz.dllz%s%sz.exercCstj||||t|_t|_|jdkr|jdkrjd|_t|j|_n d|_d|j|_ nd|jd|_ d|_ dS) NrHzSoftware\Microsoft\VisualStudiozSoftware\Microsoft\DevstudiozVisual Studio version %szMicrosoft SDK compiler %sr:F) rr+rG_MSVCCompiler__versionrK_MSVCCompiler__arch_MSVCCompiler__rootr&_MSVCCompiler__macros_MSVCCompiler__product initialized)r)verboseZdry_runZforcerrrr+s    zMSVCCompiler.__init__cCsg|_dtjkrfdtjkrf|jdrfd|_d|_d|_d|_d|_n|j d|_t |jd krt d |j n|jd|_|jd|_|jd|_|jd|_|jd|_|j d |j d y5x.tjdjd D]}|jj|q1WWntk r`YnXt|j|_d j|jtjdtD]3}t|d|jdk r|jd PqqWngS) zGet a list of devstudio directories (include, lib or path). Return a list of strings. The list will be empty if unable to access the registry or appropriate registry keys not found. z dirsrQz6%s\%0.1f\VC\VC_OBJECTS_PLATFORM_INFO\Win32\Directoriesz?%s\6.0\Build System\Components\Platforms\Win32 (%s)\Directoriesr[r:z%s\6.0NzIt seems you have Visual Studio 6 installed, but the expected registry settings are not present. You must at least run the Visual Studio GUI once so that these entries are created.) _can_read_regrRrTr,r rUr6rCr)r)r-platformrrrrrrrcHs(     zMSVCCompiler.get_msvc_pathscCsP|dkr|jd}n|j|}|rLdj|tj|sZ(                  -   PK!1 1 #__pycache__/dep_util.cpython-34.pycnu[ h f @sMdZddlZddlmZddZddZdd d ZdS) zdistutils.dep_util Utility functions for simple, timestamp-based dependency of files and groups of files; also, function based entirely on such timestamp dependency analysis.N)DistutilsFileErrorcCstjj|s1tdtjj|ntjj|sGdSddlm}tj||}tj||}||kS)aReturn true if 'source' exists and is more recently modified than 'target', or if 'source' exists and 'target' doesn't. Return false if both exist and 'target' is the same age or younger than 'source'. Raise DistutilsFileError if 'source' does not exist. zfile '%s' does not existr)ST_MTIME)ospathexistsrabspathstatr)sourcetargetrZmtime1Zmtime2r 7/opt/alt/python34/lib64/python3.4/distutils/dep_util.pynewer srcCst|t|kr'tdng}g}xVtt|D]B}t||||rF|j|||j||qFqFW||fS)zWalk two filename lists in parallel, testing if each source is newer than its corresponding target. Return a pair of lists (sources, targets) where source is newer than target, according to the semantics of 'newer()'. z+'sources' and 'targets' must be same length)len ValueErrorrangerappend)sourcesZtargetsZ n_sourcesZ n_targetsir r r newer_pairwise srerrorcCstjj|sdSddlm}tj||}x{|D]o}tjj|s|dkrgq|dkryq@q|dkrdSntj||}||kr@dSq@WdSdS)aReturn true if 'target' is out-of-date with respect to any file listed in 'sources'. In other words, if 'target' exists and is newer than every file in 'sources', return false; otherwise return true. 'missing' controls what we do when a source file is missing; the default ("error") is to blow up with an OSError from inside 'stat()'; if it is "ignore", we silently drop any missing source files; if it is "newer", any missing source files make us assume that 'target' is out-of-date (this is handy in "dry-run" mode: it'll make you pretend to carry out commands that wouldn't work because inputs are missing, but that doesn't matter because you're not actually going to run the commands). rr)rrignorerN)rrrr r)rr ZmissingrZ target_mtimer source_mtimer r r newer_group6s      r)__doc__rZdistutils.errorsrrrrr r r r s    PK!{ $$*__pycache__/cygwinccompiler.cpython-34.pycnu[ i fZ@@sgdZddlZddlZddlZddlmZmZmZddlZddl m Z m Z ddl m Z ddlmZddlmZmZmZmZddlmZdd lmZdd lmZd d ZGd dde ZGdddeZdZdZdZ ddZ!ej"dZ#ddZ$ddZ%ddZ&dS)adistutils.cygwinccompiler Provides the CygwinCCompiler class, a subclass of UnixCCompiler that handles the Cygwin port of the GNU C compiler to Windows. It also contains the Mingw32CCompiler class which handles the mingw32 port of GCC (same as cygwin in no-cygwin mode). N)PopenPIPE check_output)gen_preprocess_optionsgen_lib_options) UnixCCompiler) write_file)DistutilsExecErrorCCompilerError CompileErrorUnknownFileError)log) LooseVersion)find_executablecCstjjd}|dkrtj|d|d}|dkrLdgS|dkr_dgS|d krrd gS|d krd gS|d krdgStd|ndS)zaInclude the appropriate MSVC runtime library if Python was built with MSVC 7.0 or later. zMSC v. Z1300Zmsvcr70Z1310Zmsvcr71Z1400Zmsvcr80Z1500Zmsvcr90Z1600Zmsvcr100zUnknown MS Compiler version %s N)sysversionfind ValueError)Zmsc_posZmsc_verr>/opt/alt/python34/lib64/python3.4/distutils/cygwinccompiler.py get_msvcr?s      rc @seZdZdZdZdZdZdZdZdZ dZ d d d d d Z d d Z dddddd dddddd Z d dddZdS)CygwinCCompilerz? Handles the Cygwin port of the GNU C compiler to Windows. cygwinz.oz.az.dllzlib%s%sz%s%sz.exerc CsStj||||t\}}|jd||f|tk r\|jd|nt\|_|_|_ |j|j d|j|j|j f|jdkrd|_ n d|_ |jdkrd}nd }|j d d d d dddddd|j |f|jdkrCdg|_ |jdn t|_ dS)Nz%Python's GCC status: %s (details: %s)zPython's pyconfig.h doesn't seem to support your compiler. Reason: %s. Compiling may fail because of undefined preprocessor macros.z: gcc %s, ld %s, dllwrap %s z2.10.90gccdllwrapz2.13z-sharedz -mdll -staticcompilerzgcc -mcygwin -O -Wall compiler_sozgcc -mcygwin -mdll -O -Wall compiler_cxxzg++ -mcygwin -O -Wall linker_exez gcc -mcygwin linker_soz%s -mcygwin %sz2.91.57Zmsvcrtz,Consider upgrading to a newer version of gcc)r__init__check_config_hZ debug_print CONFIG_H_OKwarn get_versions gcc_version ld_versionZdllwrap_version compiler_type linker_dllset_executables dll_librariesr)selfverbosedry_runforceZstatusZdetails shared_optionrrrr$ds<        zCygwinCCompiler.__init__cCs|dks|dkroy |jdd|d|gWqtk rk}zt|WYdd}~XqXn]y)|j|j||d|g|Wn1tk r}zt|WYdd}~XnXdS)z:Compiles the source by spawning GCC and windres if needed.z.rcz.resZwindresz-iz-oN)Zspawnr r r )r/objsrcextZcc_argsextra_postargsZpp_optsmsgrrr_compiles " zCygwinCCompiler._compileNcCstj| pg} tj|p$g}tj|p9g}|j|j|dk r||jksy|jdkrtjj|d}tjjtjj |\}}tjj ||d}tjj |d|d}dtjj |dg}x|D]}|j |q W|j t ||fd ||jd krx| jd |g| jd |gq|j |n| s| j d ntj||||||||d| | | | | dS)zLink the objects.Nrrz.deflibz.az LIBRARY %sZEXPORTSz writing %srz --output-libz--defz-s)copyextendr.Z EXECUTABLEr,ospathdirnamesplitextbasenamejoinappendZexecuterrlink)r/Z target_descZobjectsZoutput_filename output_dirZ librariesZ library_dirsZruntime_library_dirsZexport_symbolsdebugZ extra_preargsr7Z build_tempZ target_langZtemp_dirZdll_nameZ dll_extensionZdef_fileZlib_filecontentsZsymrrrrDs:         zCygwinCCompiler.linkcCs|dkrd}ng}x|D]}tjjtjj|\}}||jddgkr~td||fn|rtjj|}n|dkr|jtjj||||j q"|jtjj|||j q"W|S)z#Adds supports for rc and res files.NrH.rc.resz"unknown file type '%s' (from '%s'))rJrI) r=r>r@normcaseZsrc_extensionsr rArCrB obj_extension)r/Zsource_filenamesZ strip_dirrEZ obj_namesZsrc_namebaser6rrrobject_filenamess    $ z CygwinCCompiler.object_filenames)__name__ __module__ __qualname____doc__r+rLZstatic_lib_extensionZshared_lib_extensionZstatic_lib_formatZshared_lib_formatZ exe_extensionr$r9rDrNrrrrrYs ;   Krc@s1eZdZdZdZdddddZdS)Mingw32CCompilerz@ Handles the Mingw32 port of the GNU C compiler to Windows. Zmingw32rcCstj|||||jdkr.d}nd}|jdkrLd}nd}trjtdn|jdd d d d d dddd|j||fg|_t |_dS)Nz2.13z-sharedz -mdll -staticz2.91.57z--entry _DllMain@12rHz1Cygwin gcc cannot be used with --compiler=mingw32rz gcc -O -Wallr zgcc -mdll -O -Wallr!z g++ -O -Wallr"rr#z%s %s %s) rr$r*r) is_cygwingccr r-r,r.r)r/r0r1r2r3Z entry_pointrrrr$s&       zMingw32CCompiler.__init__N)rOrPrQrRr+r$rrrrrSs rSokznot okZ uncertaincCsddlm}dtjkr)tdfS|j}yPt|}z2d|jkrgtd|fStd|fSWd|j XWn<t k r}zt d ||j ffSWYdd}~XnXdS) awCheck if the current Python installation appears amenable to building extensions with GCC. Returns a tuple (status, details), where 'status' is one of the following constants: - CONFIG_H_OK: all is well, go ahead and compile - CONFIG_H_NOTOK: doesn't look good - CONFIG_H_UNCERTAIN: not sure -- unable to read pyconfig.h 'details' is a human-readable string explaining the situation. Note there are two ways to conclude "OK": either 'sys.version' contains the string "GCC" (implying that this Python was built with GCC), or the installed "pyconfig.h" contains the string "__GNUC__". r) sysconfigZGCCzsys.version mentions 'GCC'Z__GNUC__z'%s' mentions '__GNUC__'z '%s' does not mention '__GNUC__'Nzcouldn't read '%s': %s) distutilsrVrrr&get_config_h_filenameopenreadCONFIG_H_NOTOKcloseOSErrorCONFIG_H_UNCERTAINstrerror)rVfnconfig_hexcrrrr%Hs   r%s(\d+\.\d+(\.\d+)*)c Cs|jd}t|dkr&dSt|dddtj}z|j}Wd|jXtj|}|dkr~dSt |j dj S)zFind the version of an executable by running `cmd` in the shell. If the command is not found, or the output does not match `RE_VERSION`, returns None. rNshellTstdoutr) splitrrrrdrZr\ RE_VERSIONsearchrgroupdecode)cmd executableout out_stringresultrrr_find_exe_versionus  rocCs&dddg}tdd|DS)zg Try to find out the versions of gcc, ld and dllwrap. If not possible it returns None for it. zgcc -dumpversionzld -vzdllwrap --versioncSsg|]}t|qSr)ro).0rjrrr s z get_versions..)tuple)Zcommandsrrrr(sr(cCs%tddg}|jjdS)z>Try to determine if the gcc that would be used is from cygwin.rz -dumpmachinescygwin)rstripendswith)rmrrrrTsrT)'rRr=rr; subprocessrrrreZdistutils.ccompilerrrZdistutils.unixccompilerrZdistutils.file_utilrZdistutils.errorsr r r r rWr Zdistutils.versionrZdistutils.spawnrrrrSr&r[r^r%compilerfror(rTrrrrs.)    " 1 +  PK!_\:""$__pycache__/text_file.cpython-34.pycnu[ i f0@sAdZddlZddlZddlZGdddZdS)ztext_file provides the TextFile class, which gives an interface to text files that (optionally) takes care of stripping comments, ignoring blank lines, and joining lines with backslashes.Nc@seZdZdZidd6dd6dd6dd6dd6dd 6d d 6Zd d d dZddZddZd ddZd ddZ d ddZ ddZ ddZ ddZ d S)TextFilea Provides a file-like object that takes care of all the things you commonly want to do when processing a text file that has some line-by-line syntax: strip comments (as long as "#" is your comment character), skip blank lines, join adjacent lines by escaping the newline (ie. backslash at end of line), strip leading and/or trailing whitespace. All of these are optional and independently controllable. Provides a 'warn()' method so you can generate warning messages that report physical line number, even if the logical line in question spans multiple physical lines. Also provides 'unreadline()' for implementing line-at-a-time lookahead. Constructor is called as: TextFile (filename=None, file=None, **options) It bombs (RuntimeError) if both 'filename' and 'file' are None; 'filename' should be a string, and 'file' a file object (or something that provides 'readline()' and 'close()' methods). It is recommended that you supply at least 'filename', so that TextFile can include it in warning messages. If 'file' is not supplied, TextFile creates its own using 'io.open()'. The options are all boolean, and affect the value returned by 'readline()': strip_comments [default: true] strip from "#" to end-of-line, as well as any whitespace leading up to the "#" -- unless it is escaped by a backslash lstrip_ws [default: false] strip leading whitespace from each line before returning it rstrip_ws [default: true] strip trailing whitespace (including line terminator!) from each line before returning it skip_blanks [default: true} skip lines that are empty *after* stripping comments and whitespace. (If both lstrip_ws and rstrip_ws are false, then some lines may consist of solely whitespace: these will *not* be skipped, even if 'skip_blanks' is true.) join_lines [default: false] if a backslash is the last non-newline character on a line after stripping comments and whitespace, join the following line to it to form one "logical line"; if N consecutive lines end with a backslash, then N+1 physical lines will be joined to form one logical line. collapse_join [default: false] strip leading whitespace from lines that are joined to their predecessor; only matters if (join_lines and not lstrip_ws) errors [default: 'strict'] error handler used to decode the file content Note that since 'rstrip_ws' can strip the trailing newline, the semantics of 'readline()' must differ from those of the builtin file object's 'readline()' method! In particular, 'readline()' returns None for end-of-file: an empty string might just be a blank line (or an all-whitespace line), if 'rstrip_ws' is true but 'skip_blanks' is not.strip_comments skip_blanksr lstrip_ws rstrip_ws join_lines collapse_joinstricterrorsNcKs|dkr'|dkr'tdnxQ|jjD]@}||kr`t||||q7t|||j|q7Wx6|jD](}||jkrtd|qqW|dkr|j|n||_||_d|_g|_ dS)zConstruct a new TextFile object. At least one of 'filename' (a string) and 'file' (a file-like object) must be supplied. They keyword argument options are described above and affect the values returned by 'readline()'.Nz7you must supply either or both of 'filename' and 'file'zinvalid TextFile option '%s'r) RuntimeErrordefault_optionskeyssetattrKeyErroropenfilenamefile current_linelinebuf)selfrrZoptionsZoptr8/opt/alt/python34/lib64/python3.4/distutils/text_file.py__init__Ns     zTextFile.__init__cCs7||_tj|jdd|j|_d|_dS)zyOpen a new file named 'filename'. This overrides both the 'filename' and 'file' arguments to the constructor.rr rN)riorr rr)rrrrrros !z TextFile.opencCs2|j}d|_d|_d|_|jdS)ziClose the current file and forget everything we know about it (filename, current line number).N)rrrclose)rrrrrrvs     zTextFile.closecCsg}|dkr|j}n|j|jdt|ttfra|jdt|n|jd||jt|dj|S)Nz, z lines %d-%d: z line %d: )rappendr isinstancelisttuplestrjoin)rmsglineZoutmsgrrr gen_errors  zTextFile.gen_errorcCs td|j||dS)Nzerror: ) ValueErrorr&)rr$r%rrrerrorszTextFile.errorcCs(tjjd|j||ddS)aPrint (to stderr) a warning message tied to the current logical line in the current file. If the current logical line in the file spans multiple physical lines, the warning refers to the whole range, eg. "lines 3-5". If 'line' supplied, it overrides the current line number; it may be a list or tuple to indicate a range of physical lines, or an integer for a single physical line.z warning:  N)sysstderrwriter&)rr$r%rrrwarnsz TextFile.warncCs|jr$|jd }|jd =|Sd}x|jj}|dkrQd}n|jr|r|jd}|dkr~q|dks||ddkr|ddkrdpd}|d||}|jdkrq-qq|jdd}n|jr|r|dkr*|jd |S|j rB|j }n||}t |j t ry|j dd|j ds$PK!~%,ZZ#__pycache__/dir_util.cpython-34.pyonu[ i fb@sdZddlZddlZddlmZmZddlmZiadddddZ dddd d Z ddddddd d Z d dZ ddddZ ddZdS)zWdistutils.dir_util Utility functions for manipulating directories and directory trees.N)DistutilsFileErrorDistutilsInternalError)logic Cst|ts%td|fntjj|}g}tjj|s[|dkr_|Stjtjj |r~|Stjj |\}}|g}xK|r|rtjj| rtjj |\}}|j d|qWx |D]}tjj ||}tjj |} tj| r6qn|dkrUt jd|n|sytj||Wnitk r} zI| jtjkotjj|std|| jdfnWYdd} ~ XnX|j|ndt|  "  $0r$cCsvt}x6|D].}|jtjj|tjj|qWx-t|D]}t||d|d|qOWdS)aCreate all the empty directories under 'base_dir' needed to put 'files' there. 'base_dir' is just the name of a directory which doesn't necessarily exist yet; 'files' is a list of filenames to be interpreted relative to 'base_dir'. 'base_dir' + the directory portion of every file in 'files' will be created if it doesn't already exist. 'mode', 'verbose' and 'dry_run' flags are as for 'mkpath()'. rrN)setaddr r rdirnamesortedr$)Zbase_dirfilesrrrZneed_dirfiledirr"r"r# create_treePs  ,r,cCsddlm}| r=tjj| r=td|nytj|} WnMtk r} z-|rtg} ntd|| jfWYdd} ~ XnX|st |d|ng} x1| D])} tjj || } tjj || }| j dr qn|r}tjj | r}tj | }|dkrTtjd ||n|smtj||n| j|qtjj| r| jt| |||||d|d |q|| ||||d|d || j|qW| S) aCopy an entire directory tree 'src' to a new location 'dst'. Both 'src' and 'dst' must be directory names. If 'src' is not a directory, raise DistutilsFileError. If 'dst' does not exist, it is created with 'mkpath()'. The end result of the copy is that every file in 'src' is copied to 'dst', and directories under 'src' are recursively copied to 'dst'. Return the list of files that were copied or might have been copied, using their output name. The return value is unaffected by 'update' or 'dry_run': it is simply the list of all files under 'src', with the names changed to be under 'dst'. 'preserve_mode' and 'preserve_times' are the same as for 'copy_file'; note that they only apply to regular files, not to directories. If 'preserve_symlinks' is true, symlinks will be copied as symlinks (on platforms that support them!); otherwise (the default), the destination of the symlink will be copied. 'update' and 'verbose' are the same as for 'copy_file'. r) copy_filez&cannot copy tree '%s': not a directoryzerror listing files in '%s': %sNrz.nfsrzlinking %s -> %sr)Zdistutils.file_utilr-r r r rlistdirrstrerrorr$r startswithislinkreadlinkrrsymlinkrextend copy_tree)srcZdstZ preserve_modeZpreserve_timesZpreserve_symlinksupdaterrr-nameseZoutputsnZsrc_nameZdst_nameZ link_destr"r"r#r5csH )     r5cCsxwtj|D]f}tjj||}tjj|r`tjj| r`t||q|jtj|fqW|jtj |fdS)zHelper for remove_tree().N) r r.r rr r1_build_cmdtuplerremovermdir)r cmdtuplesfZreal_fr"r"r#r;s %r;cCs|dkrtjd|n|r)dSg}t||x|D]}yB|d|dtjj|d}|tkrt|=nWqCtk r}ztjd||WYdd}~XqCXqCWdS)zRecursively remove an entire directory tree. Any errors are ignored (apart from being reported to stdout if 'verbose' is true). rz'removing '%s' (and everything under it)Nrzerror removing %s: %s) rrr;r r rrrwarn)Z directoryrrr>cmdrr!r"r"r# remove_trees    rBcCsLtjj|\}}|ddtjkrH||dd}n|S)zTake the full path 'path', and make it a relative path. This is useful to make 'path' the second argument to os.path.join(). rrN)r r splitdrivesep)r Zdriver"r"r#ensure_relativesrE)__doc__r rZdistutils.errorsrrZ distutilsrrr$r,r5r;rBrEr"r"r"r#s  ?D PK! -"__pycache__/version.cpython-34.pyonu[ h f0@sUdZddlZGdddZGdddeZGdddeZdS) aProvides classes to represent module version numbers (one class for each style of version numbering). There are currently two such classes implemented: StrictVersion and LooseVersion. Every version number class implements the following interface: * the 'parse' method takes a string and parses it to some internal representation; if the string is an invalid version number, 'parse' raises a ValueError exception * the class constructor takes an optional string argument which, if supplied, is passed to 'parse' * __str__ reconstructs the string that was passed to 'parse' (or an equivalent string -- ie. one that will generate an equivalent version number instance) * __repr__ generates Python code to recreate the version number instance * _cmp compares the current instance with either another instance of the same class or a string (which will be parsed to an instance of the same class, thus must follow the same rules) Nc@syeZdZdZdddZddZddZd d Zd d Zd dZ ddZ ddZ dS)VersionzAbstract base class for version numbering classes. Just provides constructor (__init__) and reproducer (__repr__), because those seem to be the same for all version numbering classes; and route rich comparisons to _cmp. NcCs|r|j|ndS)N)parse)selfvstringr6/opt/alt/python34/lib64/python3.4/distutils/version.py__init__&szVersion.__init__cCsd|jjt|fS)Nz %s ('%s')) __class____name__str)rrrr__repr__*szVersion.__repr__cCs)|j|}|tkr|S|dkS)Nr)_cmpNotImplemented)rothercrrr__eq__-s zVersion.__eq__cCs)|j|}|tkr|S|dkS)Nr)r r)rrrrrr__ne__3s zVersion.__ne__cCs)|j|}|tkr|S|dkS)Nr)r r)rrrrrr__lt__9s zVersion.__lt__cCs)|j|}|tkr|S|dkS)Nr)r r)rrrrrr__le__?s zVersion.__le__cCs)|j|}|tkr|S|dkS)Nr)r r)rrrrrr__gt__Es zVersion.__gt__cCs)|j|}|tkr|S|dkS)Nr)r r)rrrrrr__ge__Ks zVersion.__ge__) r __module__ __qualname____doc__rr rrrrrrrrrrrs       rc@sVeZdZdZejdejejBZddZ ddZ ddZ d S) StrictVersiona?Version numbering for anal retentives and software idealists. Implements the standard interface for version number classes as described above. A version number consists of two or three dot-separated numeric components, with an optional "pre-release" tag on the end. The pre-release tag consists of the letter 'a' or 'b' followed by a number. If the numeric components of two version numbers are equal, then one with a pre-release tag will always be deemed earlier (lesser) than one without. The following are valid version numbers (shown in the order that would be obtained by sorting according to the supplied cmp function): 0.4 0.4.0 (these two are equivalent) 0.4.1 0.5a1 0.5b3 0.5 0.9.6 1.0 1.0.4a3 1.0.4b1 1.0.4 The following are examples of invalid version numbers: 1 2.7.2.2 1.3.a4 1.3pl1 1.3c4 The rationale for this version numbering system will be explained in the distutils documentation. z)^(\d+) \. (\d+) (\. (\d+))? ([ab](\d+))?$cCs|jj|}|s+td|n|jddddd\}}}}}|rttt|||g|_n"ttt||gd|_|r|dt|f|_n d|_dS) Nzinvalid version number '%s'r)r) version_rematch ValueErrorgrouptuplemapintversion prerelease)rrr!majorminorZpatchr(Zprerelease_numrrrrs*$"zStrictVersion.parsecCs|jddkr;djtt|jdd}ndjtt|j}|jr||jdt|jd}n|S)Nrr.r)r'joinr%r r()rrrrr__str__s ( %zStrictVersion.__str__cCst|trt|}n|j|jkrM|j|jkrFdSdSn|j re|j redS|jr||j r|dS|j r|jrdS|jr|jr|j|jkrdS|j|jkrdSdSndS)Nrrr.r.) isinstancer rr'r()rrrrrr s&zStrictVersion._cmpN) r rrrrecompileVERBOSEASCIIr rr-r rrrrrcs #   rc@sjeZdZdZejdejZdddZddZ dd Z d d Z d d Z dS) LooseVersionaVersion numbering for anarchists and software realists. Implements the standard interface for version number classes as described above. A version number consists of a series of numbers, separated by either periods or strings of letters. When comparing version numbers, the numeric components will be compared numerically, and the alphabetic components lexically. The following are all valid version numbers, in no particular order: 1.5.1 1.5.2b2 161 3.10a 8.02 3.4j 1996.07.12 3.2.pl0 3.1.1.6 2g6 11g 0.960923 2.2beta29 1.13++ 5.5.kw 2.0b1pl0 In fact, there is no such thing as an invalid version number under this scheme; the rules for comparison are simple and predictable, but may not always give the results you want (for some definition of "want"). z(\d+ | [a-z]+ | \.)NcCs|r|j|ndS)N)r)rrrrrr4szLooseVersion.__init__c Cs{||_dd|jj|D}xCt|D]5\}}yt|||>s z&LooseVersion.parse..)r component_resplit enumerater&r"r')rrZ componentsiobjrrrr9s   zLooseVersion.parsecCs|jS)N)r)rrrrr-IszLooseVersion.__str__cCsdt|S)NzLooseVersion ('%s'))r )rrrrr MszLooseVersion.__repr__cCsdt|trt|}n|j|jkr4dS|j|jkrJdS|j|jkr`dSdS)Nrrr.)r/r r4r')rrrrrr QszLooseVersion._cmp) r rrrr0r1r2r8rrr-r r rrrrr4s    r4)rr0rrr4rrrrs DPK!''#__pycache__/filelist.cpython-34.pycnu[ i f1@sdZddlZddlZddlZddlmZddlmZmZddl m Z GdddZ ej dd Z d d Zd ddd dZdS)zsdistutils.filelist Provides the FileList class, used for poking about the filesystem and building lists of files. N) convert_path)DistutilsTemplateErrorDistutilsInternalError)logc@seZdZdZddddZddZejddZd d Z d d Z d dZ ddZ ddZ ddZddZdddddZdddddZdS)FileListaA list of files built by on exploring the filesystem and filtered by applying various patterns to what we find there. Instance attributes: dir directory from which files will be taken -- only used if 'allfiles' not supplied to constructor files list of filenames currently being built/filtered/manipulated allfiles complete list of files under consideration (ie. without any filtering applied) NcCsd|_g|_dS)N)allfilesfiles)selfwarn debug_printr 7/opt/alt/python34/lib64/python3.4/distutils/filelist.py__init__s zFileList.__init__cCs ||_dS)N)r)r rr r r set_allfiles"szFileList.set_allfilescCst||_dS)N)findallr)r dirr r r r%szFileList.findallcCs'ddlm}|r#t|ndS)z~Print 'msg' to stdout if the global DEBUG (taken from the DISTUTILS_DEBUG environment variable) flag is true. r)DEBUGN)Zdistutils.debugrprint)r msgrr r r r (szFileList.debug_printcCs|jj|dS)N)rappend)r itemr r r r2szFileList.appendcCs|jj|dS)N)rextend)r itemsr r r r5szFileList.extendcCsXtttjj|j}g|_x*|D]"}|jjtjj|q.WdS)N)sortedmapospathsplitrrjoin)r Zsortable_filesZ sort_tupler r r sort8s  z FileList.sortcCsYxRtt|jdddD]1}|j||j|dkr |j|=q q WdS)Nr)rangelenr)r ir r r remove_duplicatesBs&zFileList.remove_duplicatescCs:|j}|d}d}}}|dkrut|dkrUtd|ndd |d dD}n|dkrt|d krtd|nt|d }dd |ddD}nT|dkrt|dkrtd|nt|d }ntd|||||fS)Nrincludeexcludeglobal-includeglobal-excludez&'%s' expects ...cSsg|]}t|qSr )r).0wr r r Vs z1FileList._parse_template_line..r recursive-includerecursive-excludez,'%s' expects ...cSsg|]}t|qSr )r)r+r,r r r r-\s graftprunez#'%s' expects a single zunknown action '%s')zincluder'r(r))r.r/)r1r2)rr#rr)r lineZwordsactionpatternsr dir_patternr r r _parse_template_lineKs,       zFileList._parse_template_linecCs|j|\}}}}|dkr}|jddj|x|D].}|j|ddsHtjd|qHqHWn|dkr|jddj|xs|D].}|j|ddstjd |qqWn:|d krA|jd dj|x|D].}|j|dd s tjd |q q Wn|dkr|jddj|x|D].}|j|dd sntjd|qnqnWnv|dkr|jd|dj|fxG|D]1}|j|d|stjd||qqWn |dkry|jd|dj|fx|D]1}|j|d|sAtjd||qAqAWn|dkr|jd||jdd|stjd|qnX|dkr |jd||jdd|stjd|qntd|dS)Nr&zinclude  anchorr z%warning: no files found matching '%s'r'zexclude z9warning: no previously-included files found matching '%s'zglobal-includezglobal-include rz>warning: no files found matching '%s' anywhere in distributionzglobal-excludezglobal-exclude zRwarning: no previously-included files matching '%s' found anywhere in distributionzrecursive-includezrecursive-include %s %sprefixz:warning: no files found matching '%s' under directory '%s'zrecursive-excludezrecursive-exclude %s %szNwarning: no previously-included files matching '%s' found under directory '%s'r1zgraft z+warning: no directories found matching '%s'r2zprune z6no previously-included directories found matching '%s'z'this cannot happen: invalid action '%s')r7r rinclude_patternrr exclude_patternr)r r3r4r5rr6patternr r r process_template_linegsf                          zFileList.process_template_liner rcCsd}t||||}|jd|j|jdkrK|jnxJ|jD]?}|j|rU|jd||jj|d}qUqUW|S)aSelect strings (presumably filenames) from 'self.files' that match 'pattern', a Unix-style wildcard (glob) pattern. Patterns are not quite the same as implemented by the 'fnmatch' module: '*' and '?' match non-special characters, where "special" is platform- dependent: slash on Unix; colon, slash, and backslash on DOS/Windows; and colon on Mac OS. If 'anchor' is true (the default), then the pattern match is more stringent: "*.py" will match "foo.py" but not "foo/bar.py". If 'anchor' is false, both of these will match. If 'prefix' is supplied, then only filenames starting with 'prefix' (itself a pattern) and ending with 'pattern', with anything in between them, will match. 'anchor' is ignored in this case. If 'is_regex' is true, 'anchor' and 'prefix' are ignored, and 'pattern' is assumed to be either a string containing a regex or a regex object -- no translation is done, the regex is just compiled and used as-is. Selected strings will be added to self.files. Return True if files are found, False otherwise. Fz%include_pattern: applying regex r'%s'Nz adding T)translate_patternr r=rrsearchrr)r r=r9r:is_regex files_found pattern_renamer r r r;s    zFileList.include_patterncCsd}t||||}|jd|jxhtt|jdddD]G}|j|j|rO|jd|j||j|=d}qOqOW|S)aRemove strings (presumably filenames) from 'files' that match 'pattern'. Other parameters are the same as for 'include_pattern()', above. The list 'self.files' is modified in place. Return True if files are found, False otherwise. Fz%exclude_pattern: applying regex r'%s'r z removing Tr!r!)r?r r=r"r#rr@)r r=r9r:rArBrCr$r r r r<s  &  zFileList.exclude_pattern)__name__ __module__ __qualname____doc__rrrcurdirrr rrrr%r7r>r;r<r r r r r s      L,rcCsddlm}m}m}m}g}|g}|j}|j}x|r|}tj|} x| D]} |tj krtj j || } n| } tj| } | |} || r|j| qk|| rk||  rk|| qkqkWqFW|S)z^Find all files under 'dir' and return the list of full filenames (relative to 'dir'). r)ST_MODES_ISREGS_ISDIRS_ISLNK) statrJrKrLrMpoprrlistdirrIrr)rrJrKrLrMliststackrOpushnamesrDfullnamerNmoder r r rs&"        rcCsStj|}tj}tjdkr0d}nd|}tjd||}|S)zTranslate a shell-like glob pattern to a regular expression; return a string containing the regex. Differs from 'fnmatch.translate()' in that '*' does not match "special characters" (which are platform-specific). \z\\\\z\1[^%s]z((?t|}nd}|dk rtd}t|dt| }tj}tjdkrd}nd|j|d|f}n|rd|}ntj|S)aTranslate a shell-like wildcard pattern to a compiled regular expression. Return the compiled regex. If 'is_regex' true, then 'pattern' is directly compiled to a regex (if it's a string) or just returned as-is (assumes it's a regex object). NrWz\\^z.*) isinstancestrr[compiler]r#rrZr)r=r9r:rArCZ empty_patternZ prefix_rerZr r r r?+s"       r?)rHrr[rXZdistutils.utilrZdistutils.errorsrrZ distutilsrrrIrr]r?r r r r s  PK!9@@__pycache__/util.cpython-34.pycnu[ i fP @sdZddlZddlZddlZddlZddlZddlmZddl m Z ddl m Z ddl mZddlmZdd Zd d Zd d ZdaddZddZdddZdaaaddZddZdddddZddZdddddddddZd d!Zdddd"d#Z ddddd$d%Z!Gd&d'd'Z"dS)(zudistutils.util Miscellaneous utility functions -- anything that doesn't fit into one of the other *util.py modules. N)DistutilsPlatformError)newer)spawn)log)DistutilsByteCompileErrorcCstjdkrd}tjj|}|d*kr:tjStjjd|}tj|t||j}|dkrdS|dkrdStjSd tjkrtjd Stjd kst td  rtjStj \}}}}}|jj d d }|j dd}|j d d}|dddkrTd||fS|dddkr|ddkrd}dt |dd|ddf}idd6dd6} |d | tj 7}qn|dd!d"krd||fS|ddd#kr"d$|||fS|dd%d&krzd&}tjd'tj} | j|} | r| j}qn[|dd%d(krddl} ddl} | j| jj|||\}}}nd)|||fS)+aReturn a string that identifies the current platform. This is used mainly to distinguish platform-specific build directories and platform-specific built distributions. Typically includes the OS name and version and the architecture (as supplied by 'os.uname()'), although the exact information included depends on the OS; eg. for IRIX the architecture isn't particularly important (IRIX only runs on SGI hardware), but for Linux the kernel version isn't particularly important. Examples of returned values: linux-i586 linux-alpha (?) solaris-2.6-sun4u irix-5.3 irix64-6.2 Windows will return one of: win-amd64 (64bit Windows on AMD64 (aka x86_64, Intel64, EM64T, etc) win-ia64 (64bit Windows on Itanium) win32 (all others - specifically, sys.platform is returned) For other non-POSIX platforms, currently just returns 'sys.platform'. ntz bit ()amd64z win-amd64itaniumzwin-ia64_PYTHON_HOST_PLATFORMposixuname/ _-Nlinuxz%s-%ssunosr5solarisz%d.%s32biti64bitlz.%sirixaixz%s-%s.%scygwinz[\d.]+darwinz%s-%s-%s)osnamesysversionfindplatformlenlowerenvironhasattrrreplaceintmaxsizerecompileASCIImatchgroup _osx_supportZdistutils.sysconfigget_platform_osx sysconfigget_config_vars)prefixijlookosnamehostreleaser'machinebitnessrel_remr6 distutilsrF3/opt/alt/python34/lib64/python3.4/distutils/util.py get_platformsX #   ( rHcCstjdkr|S|s|S|ddkr@td|n|ddkrctd|n|jd}xd|kr|jdquW|stjStjj|S)aReturn 'pathname' as a name that will work on the native filesystem, i.e. split it on '/' and put it back together again using the current directory separator. Needed because filenames in the setup script are always supplied in Unix style, and have to be converted to the local convention before we can actually use them in the filesystem. Raises ValueError on non-Unix-ish systems if 'pathname' either starts or ends with a slash. rrzpath '%s' cannot be absoluterzpath '%s' cannot end with '/'.r#)r$sep ValueErrorsplitremovecurdirpathjoin)pathnamepathsrFrFrG convert_pathos rScCstjdkrTtjj|s4tjj||Stjj||ddSnptjdkrtjj|\}}|ddkr|dd}ntjj||StdtjdS)a Return 'pathname' with 'new_root' prepended. If 'pathname' is relative, this is equivalent to "os.path.join(new_root,pathname)". Otherwise, it requires making 'pathname' relative and then joining the two, which is tricky on DOS/Windows and Mac OS. r rNrr\z!nothing known about platform '%s')r$r%rOisabsrP splitdriver)Znew_rootrQZdriverOrFrFrG change_roots rWcCstr dStjdkrWdtjkrWddl}|jtjdtjd._substz\$([a-zA-Z_][a-zA-Z_0-9]*)zinvalid variable '$%s'N)r]r1subKeyErrorrK)sr_r`varrFrFrG subst_varss rezerror: cCs|t|S)N)r^)excr:rFrFrGgrok_environment_errorsrgcCs8tjdtjatjdatjdadS)Nz [^\\\'\"%s ]*z'(?:[^'\\]|\\.)*'z"(?:[^"\\]|\\.)*")r1r2string whitespace _wordchars_re _squote_re _dquote_rerFrFrFrG _init_regexsrmcCs tdkrtn|j}g}d}x|rtj||}|j}|t|kr|j|d|Pn||tjkr|j|d|||dj }d}n||dkr |d|||dd}|d}n||dkr/t j||}n9||dkrTt j||}nt d|||dkrt d||n|j\}}|d|||d|d||d}|jd }|t|kr1|j|Pq1q1W|S) aSplit a string up according to Unix shell-like rules for quotes and backslashes. In short: words are delimited by spaces, as long as those spaces are not escaped by a backslash, or inside a quoted string. Single and double quotes are equivalent, and the quote characters can be backslash-escaped. The backslash is stripped from any two-character escape sequence, leaving only the escaped character. The quote characters are stripped from any quoted string. Returns a list of words. NrrTr'"z!this can't happen (bad char '%c')z"bad string (mismatched %s quotes?)r)rjrmstripr4endr*appendrhrilstriprkrl RuntimeErrorrKspan)rcZwordsposrDrqZbegrFrFrG split_quoteds@     "  4 rwcCss|dkrOd|j|f}|dddkrO|ddd}qOntj||so||ndS) aPerform some action that affects the outside world (eg. by writing to the filesystem). Such actions are special because they are disabled by the 'dry_run' flag. This method takes care of all that bureaucracy for you; all you have to do is supply the function to call and an argument tuple for it (to embody the "external action" being performed), and an optional message to print. Nz%s%rrz,)rr rx)__name__rinfo)funcargsmsgverbosedry_runrFrFrGexecutes  rcCsC|j}|dkrdS|dkr,dStd|fdS)zConvert a string representation of truth to true (1) or false (0). True values are 'y', 'yes', 't', 'true', 'on', and '1'; false values are 'n', 'no', 'f', 'false', 'off', and '0'. Raises ValueError if 'val' is anything else. yyesttrueon1rnnoffalseoff0rzinvalid truth value %rN)rzyesrztruerr)rznorrrr)r+rK)valrFrFrG strtobool0s    rrcCs%tjrtdn|dkr9to3|dk}n|sy&ddlm}|d\} } Wn5tk rddlm} d| d} } YnXtj d| |s@| dk rt j | d} nt | d} | j d | j d jtt|d | j d |||||f| jntj| g} |d krn| jd dn|dkr| jd dnt| d|tt j| fd| d|naddlm}xN|D]F}|dddkrqn|dkr!tjj|d| }ntjj|}|}|r|dt||krttd||fn|t|d}n|rt jj||}nt jj|}|r|st ||rtj d|||s||||qqtj!d||qqWdS)aByte-compile a collection of Python source files to either .pyc or .pyo files in a __pycache__ subdirectory. 'py_files' is a list of files to compile; any files that don't end in ".py" are silently skipped. 'optimize' must be one of the following: 0 - don't optimize (generate .pyc) 1 - normal optimization (like "python -O") 2 - extra optimization (like "python -OO") If 'force' is true, all files are recompiled regardless of timestamps. The source filename encoded in each bytecode file defaults to the filenames listed in 'py_files'; you can modify these with 'prefix' and 'basedir'. 'prefix' is a string that will be stripped off of each source filename, and 'base_dir' is a directory name that will be prepended (after 'prefix' is stripped). You can supply either or both (or neither) of 'prefix' and 'base_dir', as you wish. If 'dry_run' is true, doesn't actually do anything that would affect the filesystem. Byte-compilation is either done directly in this interpreter process with the standard py_compile module, or indirectly by writing a temporary script and executing it. Normally, you should let 'byte_compile()' figure out to use direct compilation or not (see the source for details). The 'direct' flag is used by the script generated in indirect mode; unless you know what you're doing, leave it set to None. zbyte-compiling is disabled.Nr)mkstempz.py)mktempz$writing byte-compilation script '%s'wz2from distutils.util import byte_compile files = [ z, z] z byte_compile(files, optimize=%r, force=%r, prefix=%r, base_dir=%r, verbose=%r, dry_run=0, direct=1) rz-Orz-OOrz removing %s)r2rdebug_overridez1invalid prefix: filename %r doesn't start with %rzbyte-compiling %s to %sz%skipping byte-compilation of %s to %s)"r&dont_write_bytecoder __debug__Ztempfiler ImportErrorrrrzr$fdopenopenwriterPmapreprclose executableinsertrrrM py_compiler2 importlibutilcache_from_sourcer*rKrObasenamerdebug)Zpy_filesoptimizeZforcer:Zbase_dirr~rZdirectrZ script_fdZ script_namerZscriptcmdr2filecfiledfileZ cfile_baserFrFrG byte_compile@sl"    #        rcCs"|jd}d}|j|S)zReturn a version of the string escaped for inclusion in an RFC-822 header, by ensuring there are 8 spaces space after each newline.  rz z )rLrP)headerlinesrJrFrFrG rfc822_escapesrcCsz|s dSddlm}m}Gddd|}|dkrQ|d}n||d|}|j|dd dS) a Invoke 2to3 on a list of Python files. The files should all come from the build area, as the modification is done in-place. To reduce the build time, only files modified since the last invocation of this function should be passed in the files argument.Nr)RefactoringToolget_fixers_from_packagec@s4eZdZddZddZddZdS)z*run_2to3..DistutilsRefactoringToolc_stj||dS)N)rerror)selfr}r|kwrFrFrG log_errorsz4run_2to3..DistutilsRefactoringTool.log_errorcWstj||dS)N)rrz)rr}r|rFrFrG log_messagesz6run_2to3..DistutilsRefactoringTool.log_messagecWstj||dS)N)rr)rr}r|rFrFrG log_debugsz4run_2to3..DistutilsRefactoringTool.log_debugN)ry __module__ __qualname__rrrrFrFrFrGDistutilsRefactoringTools   rz lib2to3.fixesoptionsrT)Zlib2to3.refactorrrZrefactor)files fixer_namesrexplicitrrrrrFrFrGrun_2to3s rcCs|ddlm}ddlm}ddlm}|} tj} tj|z| j Wdtj| X| j | j dd<|rx<|j D]+} | j } | sqn| j| qWng} xz| j D]o} tjj|| }|tjj||tjj|| |dd}|dr| j|qqWtdd | Dd |d |d || S) zRecursively copy a directory, only copying new and changed files, running run_2to3 over all newly copied Python modules afterward. If you give a template string, it's parsed like a MANIFEST.in. r)mkpath) copy_file)FileListNupdatercSs+g|]!}|jjdr|qS)z.py)r+endswith).0fnrFrFrG s z$copydir_run_2to3..rrr)Zdistutils.dir_utilrZdistutils.file_utilrZdistutils.filelistrr$getcwdchdirfindallZallfilesr splitlinesrpZprocess_template_linerOrPdirnamerrr)srcdesttemplaterrrrrrZfilelistrNlineZcopiedfilenameZoutnameresrFrFrGcopydir_run_2to3s4    $ rc@s4eZdZdZdZdZdZddZdS) Mixin2to3zMixin class for commands that run 2to3. To configure 2to3, setup scripts may either change the class variables, or inherit from individual commands to override how 2to3 is invoked.NcCst||j|j|jS)N)rrrr)rrrFrFrGr(szMixin2to3.run_2to3)ryrr__doc__rrrrrFrFrFrGrs r)#rr$r1importlib.utilrr&rhZdistutils.errorsrZdistutils.dep_utilrZdistutils.spawnrrErrrHrSrWrYr]rergrjrkrlrmrwrrrrrrrrFrFrFrGs>      ]      =   PK!9@@__pycache__/util.cpython-34.pyonu[ i fP @sdZddlZddlZddlZddlZddlZddlmZddl m Z ddl m Z ddl mZddlmZdd Zd d Zd d ZdaddZddZdddZdaaaddZddZdddddZddZdddddddddZd d!Zdddd"d#Z ddddd$d%Z!Gd&d'd'Z"dS)(zudistutils.util Miscellaneous utility functions -- anything that doesn't fit into one of the other *util.py modules. N)DistutilsPlatformError)newer)spawn)log)DistutilsByteCompileErrorcCstjdkrd}tjj|}|d*kr:tjStjjd|}tj|t||j}|dkrdS|dkrdStjSd tjkrtjd Stjd kst td  rtjStj \}}}}}|jj d d }|j dd}|j d d}|dddkrTd||fS|dddkr|ddkrd}dt |dd|ddf}idd6dd6} |d | tj 7}qn|dd!d"krd||fS|ddd#kr"d$|||fS|dd%d&krzd&}tjd'tj} | j|} | r| j}qn[|dd%d(krddl} ddl} | j| jj|||\}}}nd)|||fS)+aReturn a string that identifies the current platform. This is used mainly to distinguish platform-specific build directories and platform-specific built distributions. Typically includes the OS name and version and the architecture (as supplied by 'os.uname()'), although the exact information included depends on the OS; eg. for IRIX the architecture isn't particularly important (IRIX only runs on SGI hardware), but for Linux the kernel version isn't particularly important. Examples of returned values: linux-i586 linux-alpha (?) solaris-2.6-sun4u irix-5.3 irix64-6.2 Windows will return one of: win-amd64 (64bit Windows on AMD64 (aka x86_64, Intel64, EM64T, etc) win-ia64 (64bit Windows on Itanium) win32 (all others - specifically, sys.platform is returned) For other non-POSIX platforms, currently just returns 'sys.platform'. ntz bit ()amd64z win-amd64itaniumzwin-ia64_PYTHON_HOST_PLATFORMposixuname/ _-Nlinuxz%s-%ssunosr5solarisz%d.%s32biti64bitlz.%sirixaixz%s-%s.%scygwinz[\d.]+darwinz%s-%s-%s)osnamesysversionfindplatformlenlowerenvironhasattrrreplaceintmaxsizerecompileASCIImatchgroup _osx_supportZdistutils.sysconfigget_platform_osx sysconfigget_config_vars)prefixijlookosnamehostreleaser'machinebitnessrel_remr6 distutilsrF3/opt/alt/python34/lib64/python3.4/distutils/util.py get_platformsX #   ( rHcCstjdkr|S|s|S|ddkr@td|n|ddkrctd|n|jd}xd|kr|jdquW|stjStjj|S)aReturn 'pathname' as a name that will work on the native filesystem, i.e. split it on '/' and put it back together again using the current directory separator. Needed because filenames in the setup script are always supplied in Unix style, and have to be converted to the local convention before we can actually use them in the filesystem. Raises ValueError on non-Unix-ish systems if 'pathname' either starts or ends with a slash. rrzpath '%s' cannot be absoluterzpath '%s' cannot end with '/'.r#)r$sep ValueErrorsplitremovecurdirpathjoin)pathnamepathsrFrFrG convert_pathos rScCstjdkrTtjj|s4tjj||Stjj||ddSnptjdkrtjj|\}}|ddkr|dd}ntjj||StdtjdS)a Return 'pathname' with 'new_root' prepended. If 'pathname' is relative, this is equivalent to "os.path.join(new_root,pathname)". Otherwise, it requires making 'pathname' relative and then joining the two, which is tricky on DOS/Windows and Mac OS. r rNrr\z!nothing known about platform '%s')r$r%rOisabsrP splitdriver)Znew_rootrQZdriverOrFrFrG change_roots rWcCstr dStjdkrWdtjkrWddl}|jtjdtjd._substz\$([a-zA-Z_][a-zA-Z_0-9]*)zinvalid variable '$%s'N)r]r1subKeyErrorrK)sr_r`varrFrFrG subst_varss rezerror: cCs|t|S)N)r^)excr:rFrFrGgrok_environment_errorsrgcCs8tjdtjatjdatjdadS)Nz [^\\\'\"%s ]*z'(?:[^'\\]|\\.)*'z"(?:[^"\\]|\\.)*")r1r2string whitespace _wordchars_re _squote_re _dquote_rerFrFrFrG _init_regexsrmcCs tdkrtn|j}g}d}x|rtj||}|j}|t|kr|j|d|Pn||tjkr|j|d|||dj }d}n||dkr |d|||dd}|d}n||dkr/t j||}n9||dkrTt j||}nt d|||dkrt d||n|j\}}|d|||d|d||d}|jd }|t|kr1|j|Pq1q1W|S) aSplit a string up according to Unix shell-like rules for quotes and backslashes. In short: words are delimited by spaces, as long as those spaces are not escaped by a backslash, or inside a quoted string. Single and double quotes are equivalent, and the quote characters can be backslash-escaped. The backslash is stripped from any two-character escape sequence, leaving only the escaped character. The quote characters are stripped from any quoted string. Returns a list of words. NrrTr'"z!this can't happen (bad char '%c')z"bad string (mismatched %s quotes?)r)rjrmstripr4endr*appendrhrilstriprkrl RuntimeErrorrKspan)rcZwordsposrDrqZbegrFrFrG split_quoteds@     "  4 rwcCss|dkrOd|j|f}|dddkrO|ddd}qOntj||so||ndS) aPerform some action that affects the outside world (eg. by writing to the filesystem). Such actions are special because they are disabled by the 'dry_run' flag. This method takes care of all that bureaucracy for you; all you have to do is supply the function to call and an argument tuple for it (to embody the "external action" being performed), and an optional message to print. Nz%s%rrz,)rr rx)__name__rinfo)funcargsmsgverbosedry_runrFrFrGexecutes  rcCsC|j}|dkrdS|dkr,dStd|fdS)zConvert a string representation of truth to true (1) or false (0). True values are 'y', 'yes', 't', 'true', 'on', and '1'; false values are 'n', 'no', 'f', 'false', 'off', and '0'. Raises ValueError if 'val' is anything else. yyesttrueon1rnnoffalseoff0rzinvalid truth value %rN)rzyesrztruerr)rznorrrr)r+rK)valrFrFrG strtobool0s    rrcCs%tjrtdn|dkr9to3|dk}n|sy&ddlm}|d\} } Wn5tk rddlm} d| d} } YnXtj d| |s@| dk rt j | d} nt | d} | j d | j d jtt|d | j d |||||f| jntj| g} |d krn| jd dn|dkr| jd dnt| d|tt j| fd| d|naddlm}xN|D]F}|dddkrqn|dkr!tjj|d| }ntjj|}|}|r|dt||krttd||fn|t|d}n|rt jj||}nt jj|}|r|st ||rtj d|||s||||qqtj!d||qqWdS)aByte-compile a collection of Python source files to either .pyc or .pyo files in a __pycache__ subdirectory. 'py_files' is a list of files to compile; any files that don't end in ".py" are silently skipped. 'optimize' must be one of the following: 0 - don't optimize (generate .pyc) 1 - normal optimization (like "python -O") 2 - extra optimization (like "python -OO") If 'force' is true, all files are recompiled regardless of timestamps. The source filename encoded in each bytecode file defaults to the filenames listed in 'py_files'; you can modify these with 'prefix' and 'basedir'. 'prefix' is a string that will be stripped off of each source filename, and 'base_dir' is a directory name that will be prepended (after 'prefix' is stripped). You can supply either or both (or neither) of 'prefix' and 'base_dir', as you wish. If 'dry_run' is true, doesn't actually do anything that would affect the filesystem. Byte-compilation is either done directly in this interpreter process with the standard py_compile module, or indirectly by writing a temporary script and executing it. Normally, you should let 'byte_compile()' figure out to use direct compilation or not (see the source for details). The 'direct' flag is used by the script generated in indirect mode; unless you know what you're doing, leave it set to None. zbyte-compiling is disabled.Nr)mkstempz.py)mktempz$writing byte-compilation script '%s'wz2from distutils.util import byte_compile files = [ z, z] z byte_compile(files, optimize=%r, force=%r, prefix=%r, base_dir=%r, verbose=%r, dry_run=0, direct=1) rz-Orz-OOrz removing %s)r2rdebug_overridez1invalid prefix: filename %r doesn't start with %rzbyte-compiling %s to %sz%skipping byte-compilation of %s to %s)"r&dont_write_bytecoder __debug__Ztempfiler ImportErrorrrrzr$fdopenopenwriterPmapreprclose executableinsertrrrM py_compiler2 importlibutilcache_from_sourcer*rKrObasenamerdebug)Zpy_filesoptimizeZforcer:Zbase_dirr~rZdirectrZ script_fdZ script_namerZscriptcmdr2filecfiledfileZ cfile_baserFrFrG byte_compile@sl"    #        rcCs"|jd}d}|j|S)zReturn a version of the string escaped for inclusion in an RFC-822 header, by ensuring there are 8 spaces space after each newline.  rz z )rLrP)headerlinesrJrFrFrG rfc822_escapesrcCsz|s dSddlm}m}Gddd|}|dkrQ|d}n||d|}|j|dd dS) a Invoke 2to3 on a list of Python files. The files should all come from the build area, as the modification is done in-place. To reduce the build time, only files modified since the last invocation of this function should be passed in the files argument.Nr)RefactoringToolget_fixers_from_packagec@s4eZdZddZddZddZdS)z*run_2to3..DistutilsRefactoringToolc_stj||dS)N)rerror)selfr}r|kwrFrFrG log_errorsz4run_2to3..DistutilsRefactoringTool.log_errorcWstj||dS)N)rrz)rr}r|rFrFrG log_messagesz6run_2to3..DistutilsRefactoringTool.log_messagecWstj||dS)N)rr)rr}r|rFrFrG log_debugsz4run_2to3..DistutilsRefactoringTool.log_debugN)ry __module__ __qualname__rrrrFrFrFrGDistutilsRefactoringTools   rz lib2to3.fixesoptionsrT)Zlib2to3.refactorrrZrefactor)files fixer_namesrexplicitrrrrrFrFrGrun_2to3s rcCs|ddlm}ddlm}ddlm}|} tj} tj|z| j Wdtj| X| j | j dd<|rx<|j D]+} | j } | sqn| j| qWng} xz| j D]o} tjj|| }|tjj||tjj|| |dd}|dr| j|qqWtdd | Dd |d |d || S) zRecursively copy a directory, only copying new and changed files, running run_2to3 over all newly copied Python modules afterward. If you give a template string, it's parsed like a MANIFEST.in. r)mkpath) copy_file)FileListNupdatercSs+g|]!}|jjdr|qS)z.py)r+endswith).0fnrFrFrG s z$copydir_run_2to3..rrr)Zdistutils.dir_utilrZdistutils.file_utilrZdistutils.filelistrr$getcwdchdirfindallZallfilesr splitlinesrpZprocess_template_linerOrPdirnamerrr)srcdesttemplaterrrrrrZfilelistrNlineZcopiedfilenameZoutnameresrFrFrGcopydir_run_2to3s4    $ rc@s4eZdZdZdZdZdZddZdS) Mixin2to3zMixin class for commands that run 2to3. To configure 2to3, setup scripts may either change the class variables, or inherit from individual commands to override how 2to3 is invoked.NcCst||j|j|jS)N)rrrr)rrrFrFrGr(szMixin2to3.run_2to3)ryrr__doc__rrrrrFrFrFrGrs r)#rr$r1importlib.utilrr&rhZdistutils.errorsrZdistutils.dep_utilrZdistutils.spawnrrErrrHrSrWrYr]rergrjrkrlrmrwrrrrrrrrFrFrFrGs>      ]      =   PK!)44$__pycache__/sysconfig.cpython-34.pyonu[ i fZS @sdZddlZddlZddlZddlmZejjejZ ejjej Z ejjej Z ejjejZdejkrejjejdZn!ejjejjejZejdkr/ded1djkr/ejjejjeejjZnejdkrd ed2djkrejjejjeejjejjZnejdkrd ed3djkrejjejjeejjejjZnd dZeeddZerlejdkrlejjd4rlejjeZejdrlejjeZqlnddZeZdZyesej ZnWne!k rYnXddZ"ddddZ#dddddZ$ddZ%ddZ&ddZ'dd d!Z(ej)d"Z*ej)d#Z+ej)d$Z,dd%d&Z-d'd(Z.da/d)d*Z0d+d,Z1d-d.Z2d/d0Z3dS)5aProvide access to Python's configuration information. The specific configuration variables available depend heavily on the platform and configuration. The values may be retrieved using get_config_var(name), and the list of variables is available via get_config_vars().keys(). Additional convenience functions are also available. Written by: Fred L. Drake, Jr. Email: N)DistutilsPlatformErrorZ_PYTHON_PROJECT_BASEntpcbuildz\pc\v z\pcbuild\amd64cCs=x6dD].}tjjtjj|d|rdSqWdS)N Setup.dist Setup.localModulesTF)r r )ospathisfilejoin)dfnr8/opt/alt/python34/lib64/python3.4/distutils/sysconfig.py_is_python_source_dir0s $r_home pcbuild\amd64cCstrttSttS)N) _sys_homer project_baserrrr _python_build;s rcCstjddS)zReturn a string containing the major and minor Python version, leaving off the patchlevel. Sample return values could be '1.5' or '2.2'. N)sysversionrrrrget_python_versionMsrcCs|dkr!|rtpt}ntjdkrtrtp?t}|rL|Strptjjtt d}ntjjt dd}tjj |Sdt t }tjj|d|Stjdkrtjj|dSt d tjdS) aReturn the directory containing installed Python header files. If 'plat_specific' is false (the default), this is the path to the non-platform-specific header files, i.e. Python.h and so on; otherwise, this is the path to platform-specific header files (namely pyconfig.h). If 'prefix' is supplied, use it instead of sys.base_prefix or sys.base_exec_prefix -- i.e., ignore 'plat_specific'. Nposix AST_H_DIRsrcdirIncludepythonincluderzFI don't know where Python installs its C header files on platform '%s')BASE_EXEC_PREFIX BASE_PREFIXr name python_buildrrr rget_config_varnormpathr build_flagsr) plat_specificprefixbaseZincdirZ python_dirrrrget_python_incUs$  r/cCs|dkr<|r'|rtp!t}q<|r3tp6t}ntjdkr|sW|r`d}nd}tjj||dt}|r|Stjj|dSnTtjdkr|rtjj|dStjj|ddSnt d tjdS) aSReturn the directory containing the Python library (standard or site additions). If 'plat_specific' is true, return the directory containing platform-specific modules, i.e. any module from a non-pure-Python module distribution; otherwise, return the platform-shared library directory. If 'standard_lib' is true, return the directory containing standard Python library modules; otherwise, return the directory for site-specific modules. If 'prefix' is supplied, use it instead of sys.base_prefix or sys.base_exec_prefix -- i.e., ignore 'plat_specific'. Nrlib64libr#z site-packagesrZLibz?I don't know where Python installs its library on platform '%s') r%r& EXEC_PREFIXPREFIXr r'r rrr)r, standard_libr-r1Z libpythonrrrget_python_lib{s(    r5cCs|jdkrtjdkrStdsSddl}|jtdtdd|}t|drb|d|j}nt|WYdd}~XnXy/t}t|}t||WdQXWn^tk r}z>d|}t|dr|d|j}nt|WYdd}~XnXt r(|d|d|dkr.ddl}|jdtdntj|S)zReturn the value of a single variable using the dictionary returned by 'get_config_vars()'. Equivalent to get_config_vars().get(name) rrNz SO is deprecated, use EXT_SUFFIXrU)warningswarnDeprecationWarningrJr)r'rrrrr)1s  r)iii)rr)4__doc__r rVrrgrr r*r-r3rr2 base_prefixr&base_exec_prefixr%rKrrrrr'lowerrpardirrgetattrrendswithrr(r+abiflagsAttributeErrorrr/r5rHrQrTrerWrkrorqrrrIrrrJr)rrrr sf   !+*++     &+ I m  $  JPK!p>p>'__pycache__/msvccompiler.cpython-34.pyonu[ i f[@sdZddlZddlZddlmZmZmZmZmZddl m Z m Z m Z ddl mZdZy@ddlZdZeZejZejZejZejZWnek r:yLddlZddlZdZeZejZejZejZejZWnek r5ejdYnXYnXerbejejej ej!fZ"nd d Z#d d Z$d dZ%GdddZ&ddZ'ddZ(ddZ)Gddde Z*e'dkrej+de*Z,ddl-m*Z*ddl-m&Z&ndS)zdistutils.msvccompiler Contains MSVCCompiler, an implementation of the abstract CCompiler class for the Microsoft Visual Studio. N)DistutilsExecErrorDistutilsPlatformError CompileErrorLibError LinkError) CCompilergen_preprocess_optionsgen_lib_options)logFTzWarning: Can't read registry to find the necessary compiler setting Make sure that Python modules winreg, win32api or win32con are installed.cCsyt||}Wntk r+dSYnXg}d}xDyt||}Wntk rcPYnX|j||d7}q;W|S)zReturn list of registry keys.Nr) RegOpenKeyExRegError RegEnumKeyappend)basekeyhandleLikr;/opt/alt/python34/lib64/python3.4/distutils/msvccompiler.py read_keys7s    rcCsyt||}Wntk r+dSYnXi}d}xbyt||\}}}Wntk rlPYnX|j}t||t|<|d7}q;W|S)zXReturn dict of registry keys and values. All names are converted to lowercase. Nrr )r r RegEnumValuelower convert_mbcs)rrrdrnamevaluetyperrr read_valuesHs    r c CsJt|dd}|dk rFy|d}WqFtk rBYqFXn|S)Ndecodembcs)getattr UnicodeError)sZdecrrrr]s  rc@s@eZdZddZddZddZddZd S) MacroExpandercCsi|_|j|dS)N)macros load_macros)selfversionrrr__init__gs zMacroExpander.__init__cCsCx<tD]4}t||}|r|||jd|)r@r*rArB)rErjrrrget_build_architectures  rKcCsIg}x<|D]4}tjj|}||kr |j|q q W|S)znReturn a list of normalized paths with duplicates removed. The current order of paths is maintained. )osr-normpathr)pathsZ reduced_pathsr1Znprrrnormalize_and_reduce_pathss   rOc @sseZdZdZdZiZdgZdddgZdgZdgZ eeee Z d Z d Z d Z d Zd ZZdZdddddZddZddddZdddddddddZdddddZdddddddddddd ZddZd d!Zd"d#Zdd$d%Zd&d'Zd(d)d*Zd+d,ZdS)- MSVCCompilerzwConcrete class that implements an interface to Microsoft Visual C++, as defined by the CCompiler abstract class.Zmsvcz.cz.ccz.cppz.cxxz.rcz.mcz.resz.objz.libz.dllz%s%sz.exercCstj||||t|_t|_|jdkr|jdkrjd|_t|j|_n d|_d|j|_ nd|jd|_ d|_ dS) NrHzSoftware\Microsoft\VisualStudiozSoftware\Microsoft\DevstudiozVisual Studio version %szMicrosoft SDK compiler %sr:F) rr+rG_MSVCCompiler__versionrK_MSVCCompiler__arch_MSVCCompiler__rootr&_MSVCCompiler__macros_MSVCCompiler__product initialized)r)verboseZdry_runZforcerrrr+s    zMSVCCompiler.__init__cCsg|_dtjkrfdtjkrf|jdrfd|_d|_d|_d|_d|_n|j d|_t |jd krt d |j n|jd|_|jd|_|jd|_|jd|_|jd|_|j d |j d y5x.tjdjd D]}|jj|q1WWntk r`YnXt|j|_d j|jtjdtD]3}t|d|jdk r|jd PqqWngS) zGet a list of devstudio directories (include, lib or path). Return a list of strings. The list will be empty if unable to access the registry or appropriate registry keys not found. z dirsrQz6%s\%0.1f\VC\VC_OBJECTS_PLATFORM_INFO\Win32\Directoriesz?%s\6.0\Build System\Components\Platforms\Win32 (%s)\Directoriesr[r:z%s\6.0NzIt seems you have Visual Studio 6 installed, but the expected registry settings are not present. You must at least run the Visual Studio GUI once so that these entries are created.) _can_read_regrRrTr,r rUr6rCr)r)r-platformrrrrrrrcHs(     zMSVCCompiler.get_msvc_pathscCsP|dkr|jd}n|j|}|rLdj|tj|sZ(                  -   PK!RRR'__pycache__/archive_util.cpython-34.pycnu[ i f  @sdZddlZddlmZddlZyddlZWnek rXdZYnXddlmZddl m Z ddl m Z ddl mZyddlmZWnek rdZYnXydd lmZWnek rdZYnXd d Zd d ZdddddddZddddZied#gdfd6ed$gdfd6ed%gdfd6ed&gdfd6egdfd6Zdd Zddddddd!d"ZdS)'zodistutils.archive_util Utility functions for creating archive files (tarballs, zip files, that sort of thing).N)warn)DistutilsExecError)spawn)mkpath)log)getpwnam)getgrnamc Cs_tdks|dkrdSyt|}Wntk rFd}YnX|dk r[|dSdS)z"Returns a gid, given a group name.N)rKeyError)nameresultr ;/opt/alt/python34/lib64/python3.4/distutils/archive_util.py_get_gids   rc Cs_tdks|dkrdSyt|}Wntk rFd}YnX|dk r[|dSdS)z"Returns an uid, given a user name.Nr )rr )r r r r r_get_uid+s   rgzipc sidd6dd6dd6dd6}idd6d d6d d6}|dk rj||jkrjtd n|d } |dkr| |j|d7} nttjj| d |ddl} tj dt t fdd} |sI| j | d||} z| j |d| Wd| jXn|dkrtdt| ||} tjdkr|| | g}n|d| g}t|d || S| S)a-Create a (possibly compressed) tar file from all the files under 'base_dir'. 'compress' must be "gzip" (the default), "compress", "bzip2", or None. (compress will be deprecated in Python 3.2) 'owner' and 'group' can be used to define an owner and a group for the archive that is being built. If not provided, the current owner and group will be used. The output tar file will be named 'base_dir' + ".tar", possibly plus the appropriate compression extension (".gz", ".bz2" or ".Z"). Returns the output filename. Zgzrbz2bzip2Ncompressz.gzz.bz2z.ZzEbad value for 'compress': must be None, 'gzip', 'bzip2' or 'compress'z.tardry_runrzCreating tar archivecsFdk r!|_|_ndk rB|_|_n|S)N)gidZgnameuiduname)Ztarinfo)rgroupownerrr r _set_uid_gid_s      z"make_tarball.._set_uid_gidzw|%sfilterz'compress' will be deprecated.win32z-f)keys ValueErrorgetrospathdirnametarfilerinforropenaddcloserPendingDeprecationWarningsysplatformr) base_namebase_dirrverboserrrZtar_compressionZ compress_extZ archive_namer%rtarZcompressed_namecmdr )rrrrr make_tarball7s8"          r2c Cs|d}ttjj|d|tdkr|rAd}nd}y td|||gd|Wqtk rtd|YqXntjd|||sytj |d d tj }Wn-t k rtj |d d tj }YnXxtj |D]w\}}} xe| D]]} tjjtjj|| } tjj| r|j| | tjd | qqWqW|jn|S) avCreate a zip file from all the files under 'base_dir'. The output zip file will be named 'base_name' + ".zip". Uses either the "zipfile" Python module (if available) or the InfoZIP "zip" utility (if installed and found on the default search path). If neither tool is available, raises DistutilsExecError. Returns the name of the output zip file. z.ziprNz-rz-rqzipzkunable to create zip file '%s': could neither import the 'zipfile' module nor find a standalone zip utilityz#creating '%s' and adding '%s' to itwZ compressionz adding '%s')rr"r#r$zipfilerrrr&ZZipFileZ ZIP_DEFLATED RuntimeErrorZ ZIP_STOREDwalknormpathjoinisfilewriter)) r-r.r/rZ zip_filenameZ zipoptionsr3dirpathZdirnames filenamesr r#r r r make_zipfile}s:         ! r>rzgzip'ed tar-fileZgztarrzbzip2'ed tar-fileZbztarzcompressed tar fileZztarzuncompressed tar filer0zZIP filer3cCs%x|D]}|tkr|SqWdS)zqReturns the first format from the 'format' list that is unknown. If all formats are known, returns None N)ARCHIVE_FORMATS)Zformatsformatr r rcheck_archive_formatss  rAcCsGtj}|dk rStjd|tjj|}|sStj|qSn|dkrktj}ni|d6} yt|} Wn"t k rt d|YnX| d} x"| dD]\} } | | | r?rArMr r r rsB         E4 PK!!}$__pycache__/file_util.cpython-34.pyonu[ i f@sdZddlZddlmZddlmZidd6dd6dd 6Zdd d ZddddddddZddddZ ddZ dS)zFdistutils.file_util Utility functions for operating on single files. N)DistutilsFileError)logZcopyingz hard linkinghardzsymbolically linkingsymicNCsd}d}zyt|d}Wn>tk rb}ztd||jfWYdd}~XnXtjj|rytj|Wqtk r}ztd||jfWYdd}~XqXnyt|d}Wn>tk r}ztd||jfWYdd}~XnXxy|j|}Wn>tk rt}ztd||jfWYdd}~XnX|sPny|j |Wq!tk r}ztd||jfWYdd}~Xq!Xq!WWd|r|j n|r|j nXdS) a5Copy the file 'src' to 'dst'; both must be filenames. Any error opening either file, reading from 'src', or writing to 'dst', raises DistutilsFileError. Data is read/written in chunks of 'buffer_size' bytes (default 16k). No attempt is made to handle anything apart from regular files. Nrbzcould not open '%s': %szcould not delete '%s': %swbzcould not create '%s': %szcould not read from '%s': %szcould not write to '%s': %s) openOSErrorrstrerrorospathexistsunlinkreadwriteclose)srcdstZ buffer_sizeZfsrcZfdsteZbufr8/opt/alt/python34/lib64/python3.4/distutils/file_util.py_copy_file_contentssF ,,))1 rcCsddlm}ddlm} m} m} m} tjj |sWt d|ntjj |r|} tjj |tjj |}ntjj|} |r||| r|dkrtjd|n|dfSyt|}Wn"tk rtd|YnX|dkrytjj |tjj |kr`tjd||| qytjd|||n|r|dfS|d krtjj|otjj||sEytj|||dfSWqtk rYqXqEnP|d krEtjj|o%tjj||sEtj|||dfSnt|||s^|rtj|}|rtj||| || fn|rtj|| || qn|dfS) aCopy a file 'src' to 'dst'. If 'dst' is a directory, then 'src' is copied there with the same name; otherwise, it must be a filename. (If the file exists, it will be ruthlessly clobbered.) If 'preserve_mode' is true (the default), the file's mode (type and permission bits, or whatever is analogous on the current platform) is copied. If 'preserve_times' is true (the default), the last-modified and last-access times are copied as well. If 'update' is true, 'src' will only be copied if 'dst' does not exist, or if 'dst' does exist but is older than 'src'. 'link' allows you to make hard links (os.link) or symbolic links (os.symlink) instead of copying: set it to "hard" or "sym"; if it is None (the default), files are copied. Don't set 'link' on systems that don't support it: 'copy_file()' doesn't check if hard or symbolic linking is available. If hardlink fails, falls back to _copy_file_contents(). Under Mac OS, uses the native file copy function in macostools; on other systems, uses '_copy_file_contents()' to copy file contents. Return a tuple (dest_name, copied): 'dest_name' is the actual name of the output file, and 'copied' is true if the file was copied (or would have been copied, if 'dry_run' true). r)newer)ST_ATIMEST_MTIMEST_MODES_IMODEz4can't copy '%s': doesn't exist or not a regular filerz"not copying %s (output up-to-date)z&invalid value '%s' for 'link' argumentz %s %s -> %srr)Zdistutils.dep_utilrstatrrrrr r isfilerisdirjoinbasenamedirnamerdebug _copy_actionKeyError ValueErrorinforsamefilelinkr symlinkrutimechmod)rrZ preserve_modeZpreserve_timesupdater+verbosedry_runrrrrrdiractionstrrr copy_fileCsT!"$    $  '   '   ! r5c(Cs%ddlm}m}m}m}m}ddl} |dkrVtjd||n|r`|S||st d|n||rt j j |||}n%||rt d||fn|||st d||fnd } yt j ||Wnetk rz} zE| j\} } | | jkrOd } nt d ||| fWYdd} ~ XnX| r!t||d |yt j|Wq!tk r} zV| j\} } yt j|Wntk rYnXt d |||| fWYdd} ~ Xq!Xn|S)a%Move a file 'src' to 'dst'. If 'dst' is a directory, the file will be moved into it with the same name; otherwise, 'src' is just renamed to 'dst'. Return the new full name of the file. Handles cross-device moves on Unix using 'copy_file()'. What about other systems??? r)rr r!r#r$Nrzmoving %s -> %sz#can't move '%s': not a regular filez0can't move '%s': destination '%s' already existsz2can't move '%s': destination '%s' not a valid pathFTzcouldn't move '%s' to '%s': %sr0zAcouldn't move '%s' to '%s' by copy/delete: delete '%s' failed: %s)Zos.pathrr r!r#r$errnorr)rr r r"renamer argsZEXDEVr5r)rrr0r1rr r!r#r$r6Zcopy_itrZnummsgrrr move_filesR (      ) ,r:c CsGt|d}z&x|D]}|j|dqWWd|jXdS)z{Create a file with the specified name and write 'contents' (a sequence of strings without line terminators) to it. w N)r rr)filenamecontentsflinerrr write_files  rAi@) __doc__r Zdistutils.errorsrZ distutilsrr&rr5r:rArrrrs   3 c=PK! 9UU!__pycache__/errors.cpython-34.pycnu[ h f @sdZGdddeZGdddeZGdddeZGdddeZGd d d eZGd d d eZGd ddeZGdddeZ GdddeZ GdddeZ GdddeZ GdddeZ GdddeZGdddeZGdddeZGdd d eZGd!d"d"eZGd#d$d$eZGd%d&d&eZd'S)(adistutils.errors Provides exceptions used by the Distutils modules. Note that Distutils modules may raise standard exceptions; in particular, SystemExit is usually raised for errors that are obviously the end-user's fault (eg. bad command-line arguments). This module is safe to use in "from ... import *" mode; it only exports symbols whose names start with "Distutils" and end with "Error".c@seZdZdZdS)DistutilsErrorzThe root of all Distutils evil.N)__name__ __module__ __qualname____doc__rr5/opt/alt/python34/lib64/python3.4/distutils/errors.pyr s rc@seZdZdZdS)DistutilsModuleErrorzUnable to load an expected module, or to find an expected class within some module (in particular, command modules and classes).N)rrrrrrrrrs rc@seZdZdZdS)DistutilsClassErrorzSome command class (or possibly distribution class, if anyone feels a need to subclass Distribution) is found not to be holding up its end of the bargain, ie. implementing some part of the "command "interface.N)rrrrrrrrr s r c@seZdZdZdS)DistutilsGetoptErrorz7The option table provided to 'fancy_getopt()' is bogus.N)rrrrrrrrr s r c@seZdZdZdS)DistutilsArgErrorzaRaised by fancy_getopt in response to getopt.error -- ie. an error in the command line usage.N)rrrrrrrrr s r c@seZdZdZdS)DistutilsFileErrorzAny problems in the filesystem: expected file not found, etc. Typically this is for problems that we detect before OSError could be raised.N)rrrrrrrrr $s r c@seZdZdZdS)DistutilsOptionErroraSyntactic/semantic errors in command options, such as use of mutually conflicting options, or inconsistent options, badly-spelled values, etc. No distinction is made between option values originating in the setup script, the command line, config files, or what-have-you -- but if we *know* something originated in the setup script, we'll raise DistutilsSetupError instead.N)rrrrrrrrr *s r c@seZdZdZdS)DistutilsSetupErrorzqFor errors that can be definitely blamed on the setup script, such as invalid keyword arguments to 'setup()'.N)rrrrrrrrr3s rc@seZdZdZdS)DistutilsPlatformErrorzWe don't know how to do something on the current platform (but we do know how to do it on some platform) -- eg. trying to compile C files on a platform not supported by a CCompiler subclass.N)rrrrrrrrr8s rc@seZdZdZdS)DistutilsExecErrorz`Any problems executing an external program (such as the C compiler, when compiling C files).N)rrrrrrrrr>s rc@seZdZdZdS)DistutilsInternalErrorzoInternal inconsistencies or impossibilities (obviously, this should never be seen if the code is working!).N)rrrrrrrrrCs rc@seZdZdZdS)DistutilsTemplateErrorz%Syntax error in a file list template.N)rrrrrrrrrHs rc@seZdZdZdS)DistutilsByteCompileErrorzByte compile error.N)rrrrrrrrrKs rc@seZdZdZdS)CCompilerErrorz#Some compile/link operation failed.N)rrrrrrrrrOs rc@seZdZdZdS)PreprocessErrorz.Failure to preprocess one or more C/C++ files.N)rrrrrrrrrRs rc@seZdZdZdS) CompileErrorz2Failure to compile one or more C/C++ source files.N)rrrrrrrrrUs rc@seZdZdZdS)LibErrorzKFailure to create a static library from one or more C/C++ object files.N)rrrrrrrrrXs rc@seZdZdZdS) LinkErrorz]Failure to link one or more C/C++ object files into an executable or shared library file.N)rrrrrrrrr\s rc@seZdZdZdS)UnknownFileErrorz(Attempt to process an unknown file type.N)rrrrrrrrr`s rN)r Exceptionrrr r r r r rrrrrrrrrrrrrrrr s& PK!:sy||'__pycache__/bcppcompiler.cpython-34.pycnu[ h fW:@sdZddlZddlmZmZmZmZmZmZddl m Z m Z m Z ddl mZddlmZddlmZGdd d e ZdS) zdistutils.bcppcompiler Contains BorlandCCompiler, an implementation of the abstract CCompiler class for the Borland C++ compiler. N)DistutilsExecErrorDistutilsPlatformError CompileErrorLibError LinkErrorUnknownFileError) CCompilergen_preprocess_optionsgen_lib_options) write_file)newer)logc @seZdZdZdZiZdgZdddgZeeZdZ dZ d Z d Z Z d Zd d d d dZdddd dddddZdd dddZdddddd dddddd Zd ddZd dddZdddddddZdS) BCPPCompilerzConcrete class that implements an interface to the Borland C/C++ compiler, as defined by the CCompiler abstract class. Zbcppz.cz.ccz.cppz.cxxz.objz.libz.dllz%s%sz.exercCstj||||d|_d|_d|_d|_ddddg|_ddddg|_d d dd g|_d d dd g|_ g|_ d dd g|_ d dd d g|_ dS) Nz bcc32.exez ilink32.exeztlib.exez/tWMz/O2z/qz/g0z/Odz/Tpdz/Gnz/xz/r) r__init__cclinkerlibZpreprocess_optionscompile_optionscompile_options_debugldflags_sharedldflags_shared_debugZldflags_static ldflags_exeldflags_exe_debug)selfverboseZdry_runforcer;/opt/alt/python34/lib64/python3.4/distutils/bcppcompiler.pyr5s     zBCPPCompiler.__init__Nc Cs |j||||||\}} }} } |p6g} | jd|r_| j|jn| j|jx| D]} y| | \}}Wntk rwvYnXtjj|}tjj| } |j tjj | |dkrqvn|dkrZy|j dd| |gWqvt k rS}zt |WYdd}~XqvXqvn||jkrrd}n||jkrd}nd}d| }y4|j |jg| | ||g||gWqvt k r}zt |WYdd}~XqvXqvW| S) Nz-cz.resz.rcZbrcc32z-foz-Pz-o)Z_setup_compileappendextendrrKeyErrorospathnormpathmkpathdirnamespawnrr _c_extensions_cpp_extensionsr)rZsources output_dirmacros include_dirsdebug extra_preargsextra_postargsZdependsobjectspp_optsZbuildZ compile_optsobjsrcextmsgZ input_optZ output_optrrrcompileQsF         .#zBCPPCompiler.compilec Cs|j||\}}|j|d|}|j||r|dg|}|rXny|j|jg|Wqtk r}zt|WYdd}~XqXntjd|dS)Nr*z/uzskipping %s (up-to-date)) _fix_object_argslibrary_filename _need_linkr'rrrr r-) rr0Zoutput_libnamer*r- target_langoutput_filenameZlib_argsr5rrrcreate_static_libs"zBCPPCompiler.create_static_libc Cs|j||\}}|j|||\}}}|rUtjdt|n|dk rytjj||}n|j||r|t j krd}| r|j dd}q|j dd}n5d}| r|j dd}n|jdd}|dkrd}ntjj|\}}tjj|\}}tjj|d}tjj|d|}dg}x+|pgD]}|jd||fqW|jt||fd |ttjj|}|g}g}x[|D]S}tjjtjj|\}}|d kr@|j|q|j|qWx+|D]#}|jd tjj|qXW|jd |j||jd |g|jdxL|D]D}|j||| }|dkr|j|q|j|qW|jd|jd|jd |g|jd |j|| rh| |dds .PK!R::.command/__pycache__/install_lib.cpython-34.pycnu[ h f @sjdZddlZddlZddlZddlmZddlmZdZ GdddeZ dS)zkdistutils.command.install_lib Implements the Distutils 'install_lib' command (install all Python modules).N)Command)DistutilsOptionErrorz.pyc @seZdZdZd*d+d,d-d.d/d0gZdd dgZid d6ZddZddZddZ ddZ ddZ d d!Z d"d#Z d$d%Zd&d'Zd(d)ZdS)1 install_libz7install all Python modules (extensions and pure Python) install-dir=ddirectory to install to build-dir=b'build directory (where to install from)forcef-force installation (overwrite existing files)compileccompile .py to .pyc [default] no-compileNdon't compile .py files optimize=Olalso compile with optimization: -O1 for "python -O", -O2 for "python -OO", and -O0 to disable [default: -O0] skip-buildskip the build stepscCs:d|_d|_d|_d|_d|_d|_dS)Nr) install_dir build_dirr roptimize skip_build)selfrB/opt/alt/python34/lib64/python3.4/distutils/command/install_lib.pyinitialize_options3s      zinstall_lib.initialize_optionsc Cs|jddddddd|jdkr:d |_n|jdkrUd |_nt|jtsy.t|j|_|jdkrtnWqttfk rtdYqXndS)Ninstall build_librrrr rrrTFrzoptimize must be 0, 1, or 2)r!z build_dir)z install_libz install_dir)forcer$)compiler%)optimizer&) skip_buildr')rr"r#)Zset_undefined_optionsrr isinstanceintAssertionError ValueErrorr)rrrrfinalize_options<s$    zinstall_lib.finalize_optionscCsE|j|j}|dk rA|jjrA|j|ndS)N)buildr distributionhas_pure_modules byte_compile)routfilesrrrrunVs  zinstall_lib.runcCsN|jsJ|jjr(|jdn|jjrJ|jdqJndS)Nbuild_py build_ext)rr.r/Z run_commandhas_ext_modules)rrrrr-fs  zinstall_lib.buildcCsLtjj|jr0|j|j|j}n|jd|jdS|S)Nz3'%s' does not exist -- no Python modules to install)ospathisdirrZ copy_treerwarn)rr1rrrr ms   zinstall_lib.installc Cstjr|jddSddlm}|jdj}|jrp||ddd|jd|d|j n|j dkr||d|j d|jd|d |j d|j ndS) Nz%byte-compiling is disabled, skipping.r)r0r rr prefixdry_runverbose) sysdont_write_bytecoder9Zdistutils.utilr0get_finalized_commandrootrr r;rr<)rfilesr0Z install_rootrrrr0vs    zinstall_lib.byte_compilec Cs|s gS|j|}|j}t||}t|ttj}g}x4|D],} |jtjj|| |dqZW|S)N) r? get_outputsgetattrlenr6sepappendr7join) rZhas_anyZ build_cmdZ cmd_optionZ output_dirZ build_filesrZ prefix_lenZoutputsfilerrr_mutate_outputss  *zinstall_lib._mutate_outputscCsg}x|D]}tjjtjj|d}|tkrGq n|jrr|jtjj |ddn|j dkr |jtjj |ddq q W|S)Nr"debug_overrideTrF) r6r7splitextnormcasePYTHON_SOURCE_EXTENSIONrrF importlibutilcache_from_sourcer)rZ py_filenamesZbytecode_filesZpy_fileZextrrr_bytecode_filenamess "  zinstall_lib._bytecode_filenamescCsu|j|jjdd|j}|jr?|j|}ng}|j|jjdd|j}|||S)zReturn the list of files that would be installed if this command were actually run. Not affected by the "dry-run" flag or whether modules have actually been built yet. r3r!r4)rIr.r/rrrQr5)rZ pure_outputsZbytecode_outputsZ ext_outputsrrrrBs   zinstall_lib.get_outputscCsrg}|jjr:|jd}|j|jn|jjrn|jd}|j|jn|S)zGet the list of files that are input to this command, ie. the files that get installed as they are named in the build tree. The files in this list correspond one-to-one to the output filenames returned by 'get_outputs()'. r3r4)r.r/r?extendrBr5)rZinputsr3r4rrr get_inputsszinstall_lib.get_inputs)rrr)rr r )zforcer r )zcompilerr)rNr)rrr)rNr)__name__ __module__ __qualname__Z descriptionZ user_optionsZboolean_optionsZ negative_optrr,r2r-r r0rIrQrBrSrrrrrs*          r) __doc__r6importlib.utilrNr=Zdistutils.corerZdistutils.errorsrrMrrrrrs   PK!K:;;2command/__pycache__/install_headers.cpython-34.pyonu[ i f@s0dZddlmZGdddeZdS)zdistutils.command.install_headers Implements the Distutils 'install_headers' command, to install C/C++ header files to the Python include directory.)Commandc@sgeZdZdZddgZdgZdd Zd d Zd d ZddZ ddZ dS)install_headerszinstall C/C++ header files install-dir=d$directory to install header files toforcef-force installation (overwrite existing files)cCsd|_d|_g|_dS)Nr) install_dirroutfiles)selfr F/opt/alt/python34/lib64/python3.4/distutils/command/install_headers.pyinitialize_optionss  z"install_headers.initialize_optionscCs|jddddS)NZinstallrr r)zinstall_headersz install_dir)forcer)Zset_undefined_options)r r r rfinalize_optionss z install_headers.finalize_optionscCsf|jj}|sdS|j|jx9|D]1}|j||j\}}|jj|q-WdS)N) distributionheadersZmkpathr Z copy_filer append)r rheaderout_r r rrun!s  zinstall_headers.runcCs|jjpgS)N)rr)r r r r get_inputs+szinstall_headers.get_inputscCs|jS)N)r )r r r r get_outputs.szinstall_headers.get_outputsN)rrr)zforcerr ) __name__ __module__ __qualname__Z descriptionZ user_optionsZboolean_optionsrrrrrr r r rr s      rN)__doc__Zdistutils.corerrr r r rsPK!9^lPUPU,command/__pycache__/bdist_msi.cpython-34.pycnu[ h f@sdZddlZddlZddlmZddlmZddlmZddl m Z ddl m Z ddl mZdd lmZddlZdd lmZmZmZdd lmZmZmZmZGd d d eZGdddeZdS)z# Implements the bdist_msi command. N)Command) remove_tree)get_python_version) StrictVersion)DistutilsOptionError) get_platform)log)schemasequencetext) DirectoryFeatureDialogadd_datac@speZdZdZddZddZdddd Zd dd d Zd dddZddZ dS)PyDialogzDialog class with a fixed layout: controls at the top, then a ruler, then a list of buttons: back, next, cancel. Optionally a bitmap at the left.cOsKtj|||jd}d|d}|jdd||jddS)zbDialog(database, name, x, y, w, h, attributes, title, first, default, cancel, bitmap=true)$iHZ BottomLinerN)r__init__hlinew)selfargskwZrulerZbmwidthr@/opt/alt/python34/lib64/python3.4/distutils/command/bdist_msi.pyrs zPyDialog.__init__c Cs'|jddddddd|dS) z,Set the title text of the dialog at the top.Title i@<iz{\VerdanaBold10}%sN)r )rtitlerrrr #szPyDialog.titleBackc Cs>|rd}nd}|j|d|jddd|||S)zAdd a back button with a given title, the tab-next button, its name in the Control table, possibly initially disabled. Return the button, so that events can be associatedr"8) pushbuttonr)rr nextnameactiveflagsrrrback*s z PyDialog.backCancelc Cs>|rd}nd}|j|d|jddd|||S)zAdd a cancel button with a given title, the tab-next button, its name in the Control table, possibly initially disabled. Return the button, so that events can be associatedr#r"i0r%r&r')r(r)rr r)r*r+r,rrrcancel5s zPyDialog.cancelNextc Cs>|rd}nd}|j|d|jddd|||S)zAdd a Next button with a given title, the tab-next button, its name in the Control table, possibly initially disabled. Return the button, so that events can be associatedr#r"r%r&r')r(r)rr r)r*r+r,rrrr)@s z PyDialog.nextc Cs:|j|t|j|d|jdddd||S)zAdd a button with a given title, the tab-next button, its name in the Control table, giving its x position; the y-position is aligned with the other buttons. Return the button, so that events can be associatedr%r&r'r#)r(intrr)rr*r r)ZxposrrrxbuttonKszPyDialog.xbuttonN) __name__ __module__ __qualname____doc__rr r-r/r)r4rrrrrs     rc@s]eZdZdZdddfdddefdd d d fd dd dfdddfdddfdddfdddfdddfdddfg ZddddgZddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1gZd2Zd3d4Z d5d6Z d7d8Z d9d:Z d;d<Z d=d>Zd?d@ZdAdBZdS)C bdist_msiz7create a Microsoft Installer (.msi) binary distributionz bdist-dir=Nz1temporary directory for creating the distributionz plat-name=pz;platform name to embed in generated filenames (default: %s)z keep-tempkz/keep the pseudo-installation tree around after z!creating the distribution archiveztarget-version=z!require a specific python versionz on the target systemzno-target-compilecz/do not compile .py to .pyc on the target systemzno-target-optimizeoz:do not compile .py to .pyo (optimized)on the target systemz dist-dir=dz-directory to put final built distributions inz skip-buildz2skip rebuilding everything (for testing/debugging)zinstall-script=zTbasename of installation script to be run afterinstallation or before deinstallationzpre-install-script=z{Fully qualified filename of a script to be run before any files are installed. This script need not be in the distributionz2.0z2.1z2.2z2.3z2.4z2.5z2.6z2.7z2.8z2.9z3.0z3.1z3.2z3.3z3.4z3.5z3.6z3.7z3.8z3.9XcCsgd|_d|_d|_d|_d|_d|_d|_d|_d|_d|_ d|_ dS)Nr) bdist_dir plat_name keep_tempZno_target_compileZno_target_optimizetarget_versiondist_dir skip_buildinstall_scriptpre_install_scriptversions)rrrrinitialize_options}s          zbdist_msi.initialize_optionscCsr|jdd |jdkrL|jdj}tjj|d|_nt}|j rz|j j rz||_n|jr|jg|_ |j r|j j r|j|krt d|fqnt|j|_ |jdd d |jrt dn|jrexI|j jD]%}|jtjj|kr&Pq&q&Wt d|jnd|_dS) NZbdistrEZmsizMtarget version can only be %s, or the '--skip-build' option must be specifiedrDrAz5the pre-install-script feature is not yet implementedz(install_script '%s' not found in scripts) skip_buildrJ)dist_dirrK) plat_namerL)Zset_undefined_optionsr@get_finalized_command bdist_baseospathjoinrrC distributionhas_ext_modulesrHrErlist all_versionsrGrFscriptsbasenameinstall_script_key)rrNZ short_versionZscriptrrrfinalize_optionss:       zbdist_msi.finalize_optionscCs|js|jdn|jddd}|j|_|j|_d|_|jd}d|_d|_|jj r|j }|s|jst dt j dd}nd |j|f}|jd}tjj|jd ||_ntjd |j|jt jjdtjj|jd |jt jd=|j|j|jj}|j|}tjj|}tjj|rtj |n|jj!}|j"} | s|j#} n| sd } n|j$} dt%| j } |jj}|j r8d|j |f} n d|} t&j'|t(| t&j)| | |_*t&j+|j*t,d| fg} |j-p|j.}|r| j/d|fn|j0r| j/d|j0fn| rt1|j*d| n|j2|j3|j4|j5|j*j6t7|jdrld|j pMd|f}|jj8j/|n|j9st:|jd|j;ndS)NbuildinstallZreinit_subcommandsr"r install_libz Should have already checked thisr#z.%s-%slibzinstalling to %sZPURELIBZUNKNOWNz%d.%d.%dz Python %s %sz Python %sZ DistVersionZ ARPCONTACTZARPURLINFOABOUTProperty dist_filesr9anydry_run)| jd?d9d@d;dAd=dB| j d2d6dCd2} | j dDdEt|dF||||||d2d2d2 } | jdG| jd4d2d5d| jd6d7d5d| jd8d9d:d;d<d=dH| jd?d9d@d;dAd=dB| j d2d6dCd2} | j dDdEt|dI||||||d2d2d2 } | jdJ| jd4d2d5d| jd6d7d5d| jdKd9dLd;dAd=dB| j d2d6dCd2} | j dDdMt|dN||||dO|dPdPdPdQdR }|jdSd9dTdUd9d=dV|jdKdAdWdXdAd=dY|jdZdAd[d\ddd]|j d^d_dAd`d\dadbdcddd |jdEdddCdE} | j dDdE|j dddPdCdd} | j dDdd|jdPdEdCdP} | j dDdPt |d ddd\dedf|dgdd }|jdgdddXdhddi|j djdkdldmdnddodj dDdp|j dqdrdldmdnddsdj dDdt|j duddldmdnddvdj dDdw|j dxdydldmdndd6dj dDdz|j d{dmdldmdnddddj dDd||j d}d~dldmdndddj dDd|j dddldmdnddPdj dDdt |dddddd|dododo }|jdZdhd9dddd|j dsdldddddsdo} | j dDdE|j doddddddods} | j dDdMt |ddddd||dMdMdM }|jdZdhd9dddd|j dMddddddMd} | j dDdEt|d!||||||d6d6d6 }|jdKd9d:d;dd=d|jd|jd/d9dd;dAd=d} | jd/dZ|jdd9dd;dd=d} | jddZ|jd7dd5d|j ddd5d|jd6d} | j ddt|d'||||||ddd6 }|jd|jdd9dddAdd|jj|jd4dd5d|j dd6} d}| j ddd|xF|j|jgD]1}|d7}| j dd|d|d|qW| j ddd|d| j dDdMd|d|jd6d} | j dd|j ddd9dddkddddd } | j dd|j}d|}d|}|jdd9dUdd9dd} | jd|| jd|| jd|| jd||j ddd9ddddd|ddd } | jd|| jd|| jd|| jd|t|d||||||ddddQdR }|jdSd9dTdUd9d=d|jdKdAdAdXdAd=d|jdZdAdd\ddd|j dddAdd\dddddd |jddddj dDdMt|d$||||||ddd6 }|jd|jdd9ddddddid }|jdddddAd|jdddddAd|jd7dd5d|j dd6} | j dddd| j dDdMdd|jd6d} | j ddt|d-||||||d6d6d6dQdR }|jdSdAd9dUd9d=d|jdZdddddd|jdddddAdd|jd/d:d|d:dAdd} | jd/dZ|j ddddkddddddd } | jdd|jd4dd5dR|j dd6d5dR|jd6d7j ddt|d*||||||ddd6 }|jd|jdd9dd\dydd|jdd9dd\ddddid }|jddddUdd|jddddUdd|jd4dd5dR|j d2d6} | j dddd| j ddddT| j ddddb| j dddd| j dddd| j dddd| j dddd| j dddd| j dDdMddA|jd6dj dddS(Nriri,z[ProductName] Setupr#r" r^ DefaultUIFontDlgFont8 ErrorDialogErrorDlg Progress1Install Progress2installsMaintenanceForm_ActionRepair WhichUsersALLZ TextStyleTahoma r DlgFontBold8 VerdanaBold10Verdanar VerdanaRed9r PrepareDlg(Not Privileged or Windows9x or Installed WhichUsersDlg.Privileged and not Windows9x and not InstalledSelectFeaturesDlg Not InstalledMaintenanceTypeDlg,Installed AND NOT RESUME AND NOT Preselected ProgressDlg ActionTextUITextZ FatalErrorZFinishz)[ProductName] Installer ended prematurelyz< Backr+r.r!Z Description1rFi@Piz[ProductName] setup ended prematurely because of an error. Your system has not been modified. To install this program at a later time, please run the installation again.Z Description2z.Click the Finish button to exit the Installer.r*Z EndDialogZExitZUserExitz'[ProductName] Installer was interruptedz[ProductName] setup was interrupted. Your system has not been modified. To install this program at a later time, please run the installation again.Z ExitDialogz&Completing the [ProductName] InstallerZ DescriptionZReturnZ FilesInUseZRetryZbitmapFrz{\DlgFontBold8}Files in Useiz8Some files that need to be updated are currently in use.ZText7iJzThe following applications are using files that need to be updated by this setup. Close these applications and then click Retry to continue the installation or Cancel to exit it.ZListZListBoxkZFileInUseProcessIgnoreeiZ ErrorText0rNxHQZNoZErrorNoYZYesZErrorYesAZAbortZ ErrorAbortC*Z ErrorCancelIZ ErrorIgnoreOZOkZErrorOkRZ ErrorRetryZ CancelDlgiUz;Are you sure you want to cancel [ProductName] installation?9r&r'ZWaitForCostingDlgzRPlease wait while the installer finishes determining your disk space requirements.f(zOPlease wait while the Installer prepares to guide you through the installation.z&Welcome to the [ProductName] Installernz Pondering...Z ActionDatar0Z SpawnDialogzSelect Python InstallationsZHintz9Select the Python locations where %s should be installed.zNext >z [TARGETDIR]z [SourceDir]Zorderingz [TARGETDIR%s]z FEATURE_SELECTED AND &Python%s=3ZSpawnWaitDialogrZFeaturesZ SelectionTreerZFEATUREZPathEditz[FEATURE_SELECTED]1z!FEATURE_SELECTED AND &Python%s<>3ZOtherz$Provide an alternate Python locationZEnableZShowZDisableZHiderr~Z DiskCostDlgZOKz&{\DlgFontBold8}Disk Space RequirementszFThe disk space required for the installation of the selected features.5aThe highlighted volumes (if any) do not have enough disk space available for the currently selected features. You can either remove some files from the highlighted volumes, or choose to install less features onto local drive(s), or select different destination drive(s).Z VolumeListZVolumeCostListdiz{120}{70}{70}{70}{70}g?Z AdminInstallzGSelect whether to install [ProductName] for all users of this computer.zInstall for all usersZJUSTMEzInstall just for mez [ALLUSERS]zWhichUsers="ALL"z({\DlgFontBold8}[Progress1] [ProductName]#AzYPlease wait while the Installer [Progress2] [ProductName]. This may take several minutes.Z StatusLabelzStatus:Z ProgressBariz Progress doneZ SetProgressZProgressz)Welcome to the [ProductName] Setup WizardZBodyText?z:Select whether you want to repair or remove [ProductName].ZRepairRadioGrouplrz&Repair [ProductName]ZRemoverzRe&move [ProductName]z [REINSTALL]zMaintenanceForm_Action="Repair"z [Progress1]Z Repairingz [Progress2]ZrepairsZ Reinstallz[REMOVE]zMaintenanceForm_Action="Remove" ZRemoving Zremoves z MaintenanceForm_Action<>"Change")rr)rr)rr)rr)rr)rr)rrrNr)rrrNr")rrrNr")rrrrr)rrr)rrr)rrr)rrr)rNr)rsrr rrrr r-r/r)ZeventZcontrolrr(mappingrRrkrHrZ conditionr4Z radiogroupadd)rrsxyrrr ZmodalZmodelessZtrack_disk_spaceZfatalr<Z user_exitZ exit_dialogZinuseerrorr/ZcostingZprepZseldlgZorderrgrZinstall_other_condZdont_install_other_condZcostZ whichusersgZprogressZmaintrrrrxs                .......$$$ !!        "  % zbdist_msi.add_uicCsT|jr%d||j|jf}nd||jf}tjj|j|}|S)Nz%s.%s-py%s.msiz %s.%s.msi)rCrArOrPrQrD)rr{Z base_namer|rrrrls   z bdist_msi.get_installer_filename)r5r6r7Z descriptionrZ user_optionsZboolean_optionsrUrrIrYrjrvrurwrxrlrrrrr9SsP      ( [ 6 6 & ?r9)r8rfrOZdistutils.corerZdistutils.dir_utilrZdistutils.sysconfigrZdistutils.versionrZdistutils.errorsrZdistutils.utilrZ distutilsrrrr r r r r rrrr9rrrrs ">PK!0command/__pycache__/build_scripts.cpython-34.pycnu[ h fW@sdZddlZddlZddlmZddlmZddlmZddl m Z ddl m Z m Z ddlmZddlZejd ZGd d d eZGd d d ee ZdS)zRdistutils.command.build_scripts Implements the Distutils 'build_scripts' command.N)ST_MODE) sysconfig)Command)newer) convert_path Mixin2to3)logs^#!.*python[0-9.]*([ ].*)?$c@sjeZdZdZdddgZdgZd d Zd dZddZddZ ddZ dS) build_scriptsz("build" scripts (copy and fixup #! line) build-dir=ddirectory to "build" (copy) toforcef1forcibly build everything (ignore file timestamps executable=e*specify final destination interpreter pathcCs1d|_d|_d|_d|_d|_dS)N) build_dirscriptsr executableoutfiles)selfrD/opt/alt/python34/lib64/python3.4/distutils/command/build_scripts.pyinitialize_optionss     z build_scripts.initialize_optionscCs)|jdddd|jj|_dS) NZbuildr rr r)z build_scriptsz build_dir)forcer) executabler)Zset_undefined_optionsZ distributionr)rrrrfinalize_options%s  zbuild_scripts.finalize_optionscCs|jS)N)r)rrrrget_source_files,szbuild_scripts.get_source_filescCs|js dS|jdS)N)r copy_scripts)rrrrrun/s zbuild_scripts.runc"Cs|j|jg}g}x|jD]}d}t|}tjj|jtjj|}|j||j rt || rt j d|q&nyt |d}Wn'tk r|jsnd}YnXtj|j\}}|jd|j} | s*|jd|q&ntj| } | r]d}| jdpWd } n|rt jd ||j|j||jstjs|j} n:tjjtjd d tjd tjdf} tj| } d| | d} y| jdWn'tk r9t dj!| YnXy| j|Wn*tk rwt dj!| |YnXt |d'}|j"| |j#|j$WdQXn|r|j%qq&|r|j%n|j||j&||q&Wtj'dkrx|D]|}|jr5t jd|qtj(|t)d@}|dBd@}||krt jd|||tj*||qqWn||fS)a"Copy each script listed in 'self.scripts'; if it's marked as a Python script in the Unix way (first line matches 'first_line_re', ie. starts with "\#!" and contains "python"), then adjust the first line to refer to the current Python interpreter as we copy. Fznot copying %s (up-to-date)rbNrz%s is an empty file (skipping)Tzcopying and adjusting %s -> %sBINDIRz python%s%sVERSIONEXEs#!s zutf-8z.The shebang ({!r}) is not decodable from utf-8zAThe shebang ({!r}) is not decodable from the script encoding ({})wbposixzchanging mode of %siimz!changing mode of %s from %o to %o)+Zmkpathrrrospathjoinbasenameappendr rrdebugopenOSErrordry_runtokenizedetect_encodingreadlineseekwarn first_line_rematchgroupinforZ python_buildrget_config_varfsencodedecodeUnicodeDecodeError ValueErrorformatwrite writelines readlinescloseZ copy_filenamestatrchmod)rr updated_filesZscriptZadjustZoutfilerencodinglinesZ first_liner8Z post_interprZshebangZoutffileZoldmodeZnewmoderrrr5s $                        zbuild_scripts.copy_scriptsN)r r r )zforcerr)rrr) __name__ __module__ __qualname__Z descriptionZ user_optionsZboolean_optionsrrrr rrrrrr s       r c@seZdZddZdS)build_scripts_2to3cCs8tj|\}}|js.|j|n||fS)N)r rr1Zrun_2to3)rrrHrrrrs zbuild_scripts_2to3.copy_scriptsN)rLrMrNrrrrrrOs rO)__doc__r)rerFrZ distutilsrZdistutils.corerZdistutils.dep_utilrZdistutils.utilrrrr2compiler7r rOrrrrs PK!BB,command/__pycache__/build_ext.cpython-34.pycnu[ h fy@s dZddlZddlZddlZddlmZddlTddlmZm Z ddlm Z ddl m Z ddl mZdd lmZdd lmZdd lmZejd krdd lmZeeZnejdZddZGdddeZdS)zdistutils.command.build_ext Implements the Distutils 'build_ext' command, for building extension modules (currently limited to C extensions, should accommodate C++ extensions ASAP).N)Command)*)customize_compilerget_python_version)get_config_h_filename) newer_group) Extension) get_platform)log) USER_BASEnt)get_build_versionz3^[a-zA-Z_][a-zA-Z_0-9]*(\.[a-zA-Z_][a-zA-Z_0-9]*)*$cCsddlm}|dS)Nr)show_compilers)distutils.ccompilerr)rr@/opt/alt/python34/lib64/python3.4/distutils/command/build_ext.pyrsrc@steZdZdZdejZdWdXd d d efd d ddfdddefdYdZd[dddefd\d]d^d_d`dadbdcddgZd d%d(d.d5gZ d7d/d8e fgZ d9d:Z d;d<Z d=d>Zd?d@ZdAdBZdCdDZdEdFZdGdHZdIdJZdKdLZdMdNZdOdPZdQdRZdSdTZdUdVZd/S)e build_extz8build C/C++ extensions (compile/link to build directory)z (separated by '%s') build-lib=b(directory for compiled extension modules build-temp=t1directory for temporary files (build by-products)z plat-name=pz>platform name to cross-compile for, if supported (default: %s)inplaceiz=ignore build-lib and put compiled extensions into the source z,directory alongside your pure Python modulesz include-dirs=Iz.list of directories to search for header filesdefine=DC preprocessor macros to defineundef=U!C preprocessor macros to undefine libraries=l!external C libraries to link withz library-dirs=Lz.directories to search for external C librariesrpath=R7directories to search for shared C libraries at runtime link-objects=O2extra explicit link objects to include in the linkdebugg'compile/link with debugging informationforcef2forcibly build everything (ignore file timestamps) compiler=cspecify the compiler typeswig-cppN)make SWIG create C++ files (default is C) swig-opts=!list of SWIG command line optionsswig=path to the SWIG executableuser#add user include, library and rpathz help-compilerzlist available compilerscCsd|_d|_d|_d|_d|_d|_d|_d|_d|_d|_ d|_ d|_ d|_ d|_ d|_d|_d|_d|_d|_d|_dS)Nr) extensions build_lib plat_name build_temprpackage include_dirsdefineundef libraries library_dirsrpath link_objectsr-r0compilerswigswig_cpp swig_optsr<)selfrrrinitialize_optionsis(                   zbuild_ext.initialize_optionsc Csddlm}|jdd,d-d.d/d0d1|jdkrP|jj|_n|jj|_|j}|jd d }|j dkr|jj pg|_ nt |j t r|j j t j|_ ntjtjkr|j jt jjtjd n|j j|||kr7|j j|n|jd |jdkr_g|_n|jdkrzg|_n-t |jt r|jj t j|_n|jdkrg|_n-t |jt r|jj t j|_nt jdkr|jjt jjtjdtjtjkrW|jjt jjtjdn|jr~t jj|jd|_nt jj|jd|_|j jt jjtttdd}|r|jj|nt dkrc|j!dkrd}n|j!dd}t jjtjd}|rPt jj||}n|jj|qt dkr|jjt jjtjddqt dkr|jjt jjtjddq|jjt jjtjddntj"dddks%tj"ddd krtj#j$t jjtjd!r{|jjt jjtjd"d#t%d$q|jjd%n|j&d&r|j's|jj|j&d'q|jjd%n|j(r |j(j d(}d)d*|D|_(n|j)r*|j)j d(|_)n|j*dkrEg|_*n|j*j d+|_*|j+rt jjt,d }t jjt,d"} t jj-|r|j j|nt jj-| r|jj| |jj| qndS)2Nr) sysconfigZbuildr?rArJr-r0r@Z plat_specificincluderFr ZlibsZDebugZRelease_home win32ZPCbuildPCzVS8.0zVS7.1ZVC6cygwinatheosbinlibpythonconfig.Py_ENABLE_SHAREDLIBDIR,cSsg|]}|dfqS)1r).0Zsymbolrrr s z.build_ext.finalize_options.. ) build_librj) build_temprk)compilerrl)debugrm)forcern) plat_namero). distutilsrPZset_undefined_optionsrB distributionZ ext_packageZ ext_modulesr>Zget_python_incrC isinstancestrsplitospathsepsys exec_prefixbase_exec_prefixappendpathjoinZensure_string_listrFrGrHnameprefixr-rAdirnamergetattr MSVC_VERSIONr@platform executable startswithrget_config_varZ python_buildrDrErMr<r isdir) rNrPZ py_includeZplat_py_include _sys_homesuffixZnew_libZdefinesZ user_includeZuser_librrrfinalize_optionss  %     "%     2$       zbuild_ext.finalize_optionsc Csddlm}|jsdS|jjrm|jd}|jj|jpSg|j j |j n|d|j d|j d|jd|j|_ t|j tjdkr|jtkr|j j|jn|jdk r|j j|jn|jdk rEx-|jD]\}}|j j||qWn|jdk r{x$|jD]}|j j|q^Wn|jdk r|j j|jn|j dk r|j j|j n|jdk r|j j|jn|j dk r|j j!|j n|j"dS) Nr) new_compiler build_clibrJverbosedry_runr0r )#rrr>rqZhas_c_librariesget_finalized_commandrFextendZget_library_namesrGrzrrJrrr0rrur}r@r Z initializerCZset_include_dirsrDZ define_macrorEZundefine_macroZ set_librariesZset_library_dirsrHZset_runtime_library_dirsrIZset_link_objectsbuild_extensions)rNrrr}valuemacrorrrruns>    !z build_ext.runc Cs0t|tstdnx t|D]\}}t|trLq+nt|t snt|dkr}tdn|\}}tjd|t|t ot j |stdnt|t stdnt||d}x<dD]4}|j |}|dk rt|||qqW|j d|_d|kretjdn|j d}|rg|_g|_x|D]} t| tot| dkstdnt| dkr|jj| dqt| dkr|jj| qqWn|||rextext_nameZ build_infokeyvalrrrrrcheck_extensions_listUsT  "           ! zbuild_ext.check_extensions_listcCs>|j|jg}x!|jD]}|j|jq W|S)N)rr>rr)rN filenamesrrrrget_source_filess zbuild_ext.get_source_filescCsG|j|jg}x*|jD]}|j|j|jq W|S)N)rr>rzget_ext_fullpathr})rNZoutputsrrrr get_outputss zbuild_ext.get_outputscCs|j|jx||jD]q}y|j|Wqtttfk r}z.|js^n|jd|j|fWYdd}~XqXqWdS)Nz"building extension "%s" failed: %s) rr>build_extensionZCCompilerErrorZDistutilsErrorZ CompileErrorZoptionalrr})rNrerrrrs  zbuild_ext.build_extensionsc Cs |j}|dks+t|ttf rAtd|jnt|}|j|j}||j}|jpt ||dst j d|jdSt j d|j|j ||}|jpg}|jdd}x!|jD]}|j|fqW|jj|d|jd|d|jd|j d |d |j}|dd|_|jrz|j|jn|jpg}|jp|jj|} |jj||d |j|d |jd |jd |d|j |d|j d|jd| dS)Nzjin 'ext_modules' option (extension '%s'), 'sources' must be present and must be a list of source filenamesZnewerz$skipping '%s' extension (up-to-date)zbuilding '%s' extensionZ output_dirrrCr-Zextra_postargsdependsrFrGrexport_symbolsrAZ target_lang)!rrrrrrr}rrr0rr r-info swig_sourcesrrrrzrJcompilerArCZ_built_objectsrrrlanguageZdetect_languageZlink_shared_object get_librariesrGrget_export_symbols) rNrrext_pathrZ extra_argsrrEZobjectsrrrrrsN "             zbuild_ext.build_extensioncCsg}g}i}|jr+tjdn|jsRd|jksRd|jkr[d}nd}xr|D]j}tjj|\}} | dkr|j|d||j||d ||          zbuild_ext.swig_sourcescCstjdkrdStjdkrixWd D]5}tjjd|d}tjj|r)|Sq)WdSntd tjd S) zReturn the name of the SWIG executable. On Unix, this is just "swig" -- it should be in the PATH. Tries a bit harder on Windows. posixrKr 1.31.21.1z c:\swig%szswig.exez>I don't know how to find (much less run) SWIG on platform '%s'N)rrr)rur}r{r|isfileZDistutilsPlatformError)rNZversfnrrrrOs zbuild_ext.find_swigcCs|j|}|jd}|j|d}|jsstjj|dd|g}tjj|j|Sdj|dd}|jd}tjj |j |}tjj||S) zReturns the path of the filename for a given extension. The file is located in `build_lib` or directly in the package (inplace option). rbrQNrbuild_pyrrr) get_ext_fullnamertget_ext_filenamerrur{r|r?rabspathZget_package_dir)rNrfullnameZmodpathfilenamerBrZ package_dirrrrrgs #zbuild_ext.get_ext_fullpathcCs&|jdkr|S|jd|SdS)zSReturns the fullname of a given extension name. Adds the `package.` prefixNrb)rB)rNrrrrrszbuild_ext.get_ext_fullnamecCsoddlm}|jd}|d}tjdkr[|jr[tjj|d|Stjj||S)zConvert the name of an extension (eg. "foo.bar") into the name of the file from which it will be loaded (eg. "foo/bar.so", or "foo\bar.pyd"). r)rrb EXT_SUFFIXr _d)distutils.sysconfigrrtrur}r-r{r|)rNrrrZ ext_suffixrrrrs  zbuild_ext.get_ext_filenamecCsCd|jjdd}||jkr<|jj|n|jS)aReturn the list of symbols that a shared extension has to export. This either uses 'ext.export_symbols' or, if it's not provided, "PyInit_" + module_name. Only relevant on Windows, where the .pyd file (DLL) must export the module "PyInit_" function. ZPyInit_rbrQr)r}rtrrz)rNrZ initfunc_namerrrrszbuild_ext.get_export_symbolscCs0tjdkrddlm}t|j|s}d}|jrM|d}n|tjd?tjd?d@f}|j|gS|jSntjd d d krd }|tjd?tjd?d@f}|j|gStjd d d krddl m }d }|tjd?tjd?d@f}g}xS|j dj D]<}|j drr|j|dd qC|j|qCW|j|dg|Stjdkr|jStjd ddkr|jSddl m }|j dr%djtjd?tjd?d@tj}|j|gS|jSd S)zReturn the list of libraries to link against when building a shared extension. On most platforms, this is just 'ext.libraries'; on Windows, we add the Python library (eg. python20.dll). rUr) MSVCCompilerz python%d%drNr[r\z python%d.%dr])rPSHLIBSz-lrmdarwinaixrcz python{}.{}{})rwrdistutils.msvccompilerrrrrJr- hexversionrFrprPrrtrrzformatabiflags)rNrrtemplateZ pythonlibrPZextrar_rrrrsJ     zbuild_ext.get_libraries)rrr)rrr)rrr)r r!r")r#r$r%)r'r(r))r*r+r,)zdebugr.r/)zforcer1r2)r3r4r5)r6Nr7)r8Nr9)r:Nr;)zuserNr=)__name__ __module__ __qualname__Z descriptionrurvZsep_byr Z user_optionsZboolean_optionsrZ help_optionsrOrrrrrrrrrrrrrrrrrrr"st        @ N  R 6   r)__doc__rwrureZdistutils.corerZdistutils.errorsrrrrZdistutils.dep_utilrZdistutils.extensionrZdistutils.utilr rpr Zsiter r}rr intrrrrrrrrrs"$   PK!h%mϫ)command/__pycache__/upload.cpython-34.pyonu[ i f@sdZddlZddlZddlZddlZddlZddlmZddlm Z m Z m Z ddl m Z ddlmZmZddlmZddlmZdd lmZejd krdd lmZndd lmZGd d d eZdS)z`distutils.command.upload Implements the Distutils 'upload' subcommand (upload package to PyPI).N)standard_b64encode)urlopenRequest HTTPError)urlparse)DistutilsErrorDistutilsOptionError) PyPIRCCommand)spawn)logz2.5)md5c@sieZdZdZejddgZejdgZdd Zd d Zd d Z ddZ dS)uploadzupload binary package to PyPIsignssign files to upload using gpg identity=iGPG identity used to sign filescCs>tj|d|_d|_d|_d|_d|_dS)NrF)r initialize_optionsusernamepassword show_responseridentity)selfr=/opt/alt/python34/lib64/python3.4/distutils/command/upload.pyr#s      zupload.initialize_optionscCstj||jr/|j r/tdn|j}|ikr~|d|_|d|_|d|_|d|_ n|j r|j jr|j j|_ndS)Nz.Must use --sign for --identity to have meaningrr repositoryrealm) r finalize_optionsrrrZ _read_pypircrrrr distribution)rconfigrrrr+s       zupload.finalize_optionscCsR|jjstdnx0|jjD]"\}}}|j|||q(WdS)Nz'No dist file created in earlier command)r Z dist_filesr upload_file)rcommand pyversionfilenamerrrrun=s z upload.runc$Cst|j\}}}}}} |s3|s3| rItd|jn|dIkrhtd|n|jrddd|g} |jrd|jg| d d 6t,t2|d?6|d@6}t3|jdA|dB|}y%t4|}|j5}|j6} Wnwt7k r}!z!|j/t,|!t0j8WYdd}!~!Xn7t9k rM}!z|!j:}|!j6} WYdd}!~!XnX|dCkrz|j/dD|| ft0j1n/dE|| f}"|j/|"t0j8t;|"|j<r|j=|}#dFj>dGdH|#dGdHf}"|j/|"t0j1ndS)KNzIncompatible url %shttphttpszunsupported schema Zgpgz --detach-signz-az --local-userdry_runrbZ file_uploadz:action1Zprotcol_versionnameversioncontentZfiletyper$Z md5_digestz1.0Zmetadata_versionZsummaryZ home_pageZauthorZ author_emaillicense descriptionkeywordsplatformZ classifiersZ download_urlZprovidesZrequiresZ obsoletesrZ bdist_rpmzbuilt for %s %sZ bdist_dumbz built for %sZtersecommentz.ascZ gpg_signature:asciizBasic z3--------------GHSKFJDLGDS7543FJKLFHRE75642756743254s --s-- z+ Content-Disposition: form-data; name="%s"z; filename="%s"rzutf-8s s s zSubmitting %s to %sz multipart/form-data; boundary=%sz Content-typezContent-lengthZ AuthorizationdataheaderszServer response (%s): %szUpload failed (%s): %s -K)r'r()?rrAssertionErrorrrr r*openreadcloser ZmetadataZget_nameZ get_versionospathbasenamer Z hexdigestZget_descriptionZget_urlZ get_contactZget_contact_emailZ get_licenceZget_long_descriptionZ get_keywordsZ get_platformsZget_classifiersZget_download_urlZ get_providesZ get_requiresZ get_obsoletesr3distrrencoderdecodeioBytesIOitemstypetuplestrwritegetvalueZannouncer INFOlenrrZgetcodemsgOSErrorZERRORrcoderrZ_read_pypi_responsejoin)$rr#r$r%ZschemaZnetlocZurlZparamsZqueryZ fragmentsZgpg_argsfr/metar8r5rFr.idZ user_passZauthboundaryZ sep_boundaryZ end_boundaryZbodykeyvaluetitler9ZrequestresultZstatusreasonerStextrrrr"Cs!                         #                        zupload.upload_fileN)zsignrr)rrr) __name__ __module__ __qualname__r1r Z user_optionsZboolean_optionsrrr&r"rrrrr s     r )__doc__sysrCrIZsocketr3base64rZurllib.requestrrrZ urllib.parserZdistutils.errorsrrZdistutils.corer Zdistutils.spawnr Z distutilsr r.r Zhashlibr rrrrs   PK!oEN N 2command/__pycache__/install_scripts.cpython-34.pyonu[ h f@s\dZddlZddlmZddlmZddlmZGdddeZdS)zudistutils.command.install_scripts Implements the Distutils 'install_scripts' command, for installing Python scripts.N)Command)log)ST_MODEc@speZdZdZddddgZdd gZddZddZddZddZ ddZ d S)install_scriptsz%install scripts (Python or otherwise) install-dir=ddirectory to install scripts to build-dir=b'build directory (where to install from)forcef-force installation (overwrite existing files) skip-buildNskip the build stepscCs(d|_d|_d|_d|_dS)Nr) install_dirr build_dir skip_build)selfrF/opt/alt/python34/lib64/python3.4/distutils/command/install_scripts.pyinitialize_optionss   z"install_scripts.initialize_optionscCs*|jdd |jdd d d dS) NZbuild build_scriptsrZinstallrrr r)rz build_dir)zinstall_scriptsz install_dir)forcer) skip_buildr)Zset_undefined_options)rrrrfinalize_options!s  z install_scripts.finalize_optionscCs|js|jdn|j|j|j|_tjdkrxq|jD]`}|j rrt j d|qPtj |t dBd@}t j d||tj||qPWndS)Nrposixzchanging mode of %simizchanging mode of %s to %o)rZ run_commandZ copy_treerroutfilesosname get_outputsZdry_runrinfostatrchmod)rfilemoderrrrun)s  zinstall_scripts.runcCs|jjpgS)N)Z distributionscripts)rrrr get_inputs8szinstall_scripts.get_inputscCs |jp gS)N)r)rrrrr ;szinstall_scripts.get_outputs)rrr)r r r )zforcer r)rNr) __name__ __module__ __qualname__Z descriptionZ user_optionsZboolean_optionsrrr&r(r rrrrrs       r) __doc__rZdistutils.corerZ distutilsrr"rrrrrrs  PK!7 /command/__pycache__/install_data.cpython-34.pycnu[ i f @sRdZddlZddlmZddlmZmZGdddeZdS)zdistutils.command.install_data Implements the Distutils 'install_data' command, for installing platform-independent data files.N)Command) change_root convert_pathc@sjeZdZdZdddgZdgZd d Zd dZddZddZ ddZ dS) install_datazinstall data files install-dir=dIbase directory for installing data files (default: installation base dir)root=Ns PK!0command/__pycache__/build_scripts.cpython-34.pyonu[ h fW@sdZddlZddlZddlmZddlmZddlmZddl m Z ddl m Z m Z ddlmZddlZejd ZGd d d eZGd d d ee ZdS)zRdistutils.command.build_scripts Implements the Distutils 'build_scripts' command.N)ST_MODE) sysconfig)Command)newer) convert_path Mixin2to3)logs^#!.*python[0-9.]*([ ].*)?$c@sjeZdZdZdddgZdgZd d Zd dZddZddZ ddZ dS) build_scriptsz("build" scripts (copy and fixup #! line) build-dir=ddirectory to "build" (copy) toforcef1forcibly build everything (ignore file timestamps executable=e*specify final destination interpreter pathcCs1d|_d|_d|_d|_d|_dS)N) build_dirscriptsr executableoutfiles)selfrD/opt/alt/python34/lib64/python3.4/distutils/command/build_scripts.pyinitialize_optionss     z build_scripts.initialize_optionscCs)|jdddd|jj|_dS) NZbuildr rr r)z build_scriptsz build_dir)forcer) executabler)Zset_undefined_optionsZ distributionr)rrrrfinalize_options%s  zbuild_scripts.finalize_optionscCs|jS)N)r)rrrrget_source_files,szbuild_scripts.get_source_filescCs|js dS|jdS)N)r copy_scripts)rrrrrun/s zbuild_scripts.runc"Cs|j|jg}g}x|jD]}d}t|}tjj|jtjj|}|j||j rt || rt j d|q&nyt |d}Wn'tk r|jsnd}YnXtj|j\}}|jd|j} | s*|jd|q&ntj| } | r]d}| jdpWd } n|rt jd ||j|j||jstjs|j} n:tjjtjd d tjd tjdf} tj| } d| | d} y| jdWn'tk r9t dj!| YnXy| j|Wn*tk rwt dj!| |YnXt |d'}|j"| |j#|j$WdQXn|r|j%qq&|r|j%n|j||j&||q&Wtj'dkrx|D]|}|jr5t jd|qtj(|t)d@}|dBd@}||krt jd|||tj*||qqWn||fS)a"Copy each script listed in 'self.scripts'; if it's marked as a Python script in the Unix way (first line matches 'first_line_re', ie. starts with "\#!" and contains "python"), then adjust the first line to refer to the current Python interpreter as we copy. Fznot copying %s (up-to-date)rbNrz%s is an empty file (skipping)Tzcopying and adjusting %s -> %sBINDIRz python%s%sVERSIONEXEs#!s zutf-8z.The shebang ({!r}) is not decodable from utf-8zAThe shebang ({!r}) is not decodable from the script encoding ({})wbposixzchanging mode of %siimz!changing mode of %s from %o to %o)+Zmkpathrrrospathjoinbasenameappendr rrdebugopenOSErrordry_runtokenizedetect_encodingreadlineseekwarn first_line_rematchgroupinforZ python_buildrget_config_varfsencodedecodeUnicodeDecodeError ValueErrorformatwrite writelines readlinescloseZ copy_filenamestatrchmod)rr updated_filesZscriptZadjustZoutfilerencodinglinesZ first_liner8Z post_interprZshebangZoutffileZoldmodeZnewmoderrrr5s $                        zbuild_scripts.copy_scriptsN)r r r )zforcerr)rrr) __name__ __module__ __qualname__Z descriptionZ user_optionsZboolean_optionsrrrr rrrrrr s       r c@seZdZddZdS)build_scripts_2to3cCs8tj|\}}|js.|j|n||fS)N)r rr1Zrun_2to3)rrrHrrrrs zbuild_scripts_2to3.copy_scriptsN)rLrMrNrrrrrrOs rO)__doc__r)rerFrZ distutilsrZdistutils.corerZdistutils.dep_utilrZdistutils.utilrrrr2compiler7r rOrrrrs PK!hk77,command/__pycache__/bdist_rpm.cpython-34.pyonu[ h fT@sdZddlZddlZddlZddlmZddlmZddlm Z ddl m Z ddl Tddl mZdd lmZGd d d eZdS) zwdistutils.command.bdist_rpm Implements the Distutils 'bdist_rpm' command (create RPM source and binary distributions).N)Command)DEBUG) get_platform) write_file)*)get_python_version)logc+@seZdZdZdfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|d}d~ddddddddddddddddg)Zd4d9d=d2dUgZid4d76d9d;6d=d?6ZdXdYZdZd[Zd\d]Z d^d_Z d`daZ dbdcZ dddeZ dS) bdist_rpmzcreate an RPM distribution bdist-base=N/base directory for creating built distributions rpm-base=dbase directory for creating RPMs (defaults to "rpm" under --bdist-base; must be specified for RPM 2) dist-dir=dDdirectory to put final RPM files in (and .spec files if --spec-only)python=Mpath to Python interpreter to hard-code in the .spec file (default: "python") fix-pythonLhard-code the exact path to the current Python interpreter in the .spec file spec-onlyonly regenerate spec file source-onlyonly generate source RPM binary-onlyonly generate binary RPM use-bzip27use bzip2 instead of gzip to create source distributiondistribution-name=gname of the (Linux) distribution to which this RPM applies (*not* the name of the module distribution!)group=9package classification [default: "Development/Libraries"]release=RPM release numberserial=RPM serial numbervendor=aRPM "vendor" (eg. "Joe Blow ") [default: maintainer or author from setup script] packager=ARPM packager (eg. "Jane Doe ")[default: vendor] doc-files=6list of documentation files (space or comma-separated) changelog= RPM changelogicon=name of icon file provides=%capabilities provided by this package requires=%capabilities required by this package conflicts=-capabilities which conflict with this packagebuild-requires=+capabilities required to build this package obsoletes=*capabilities made obsolete by this package no-autoreq+do not automatically calculate dependencies keep-tempk"don't clean up RPM build directory no-keep-temp&clean up RPM build directory [default]use-rpm-opt-flags8compile with RPM_OPT_FLAGS when building from source RPMno-rpm-opt-flags&do not pass any RPM CFLAGS to compiler rpm3-mode"RPM 3 compatibility mode (default) rpm2-modeRPM 2 compatibility mode prep-script=3Specify a script for the PREP phase of RPM building build-script=4Specify a script for the BUILD phase of RPM building pre-install=:Specify a script for the pre-INSTALL phase of RPM buildinginstall-script=6Specify a script for the INSTALL phase of RPM building post-install=;Specify a script for the post-INSTALL phase of RPM buildingpre-uninstall=rnroREADME README.txtrk1rlrirprqrrrsrtrurvrwrxryrzr|r}r~rrr)rr)Z ensure_stringrZ get_contactZget_contact_emailZensure_string_list isinstancerolistrrexistsappend_format_changelogrpZensure_filename)rZreadmerrrrs>    !                  zbdist_rpm.finalize_package_datac Cs%trStdtd|jtd|jtd|jtd|jn|jru|j}|j|nNi}x;d(D]3}t j j |j |||<|j||qW|d}t j j |d |j j}|jt||jfd ||jrdS|j jdd}|jd }|jrRdg|_n dg|_|jd ||j _|jd}|d}|j|||jrt j j|jr|j|j|qtd|jntjddg} t j jds%t j jdr1dg} n|jrJ| jdn&|j rc| jdn | jd| j!dd|j"g|j#r| j!ddt j j$|j gn|j%s| jdn|j&r| jdn| j|d} | d } d!| d"} d#| | |f} t j'| }zg}d}xV|j(}|scPn|j)j*}|j|d$|dkrM|d}qMqMW|j+}|rt,d%t-| nWd|j+X|j.| |j/s!|j j0rt1}nd&}|j st j j |d |}|j2||jt j j |j|}|j jjd'||fn|js!x|D]}t j j |d |}t j j|r|j2||jt j j |jt j j3|}|j jjd'||fqqWq!ndS))Nzbefore _get_package_data():zvendor =z packager =z doc_files =z changelog =SOURCESSPECSBUILDRPMSSRPMSz%s.specz writing '%s'sdistZbztarZgztarrzicon file '%s' does not existz building RPMsrz/usr/bin/rpmbuildz /bin/rpmbuildZrpmbuildz-bsz-bbz-baz--definez __python %sz _topdir %sz--cleanz--quietz%{name}-%{version}-%{release}z.src.rpmz%{arch}/z .%{arch}.rpmz%rpm -q --qf '%s %s\n' --specfile '%s'r_zFailed to execute: %sanyr )rrrrr)4rprintrmrnrorprerbZmkpathrrrrarget_nameZexecuter_make_spec_fileZ dist_filesZreinitialize_commandrhZformatsZ run_commandZget_archive_filesZ copy_filerqrZDistutilsFileErrorrinforgrrfextendrcrabspathrr\popenreadlinestripsplitcloseZDistutilsExecErrorreprZspawnZdry_runrrZ move_filebasename)rZspec_dirZrpm_dirrZ spec_pathZsaved_dist_filesrsourceZ source_dirZrpm_cmdZ nvr_stringZsrc_rpmZ non_src_rpmZq_cmdoutZ binary_rpmsZ source_rpmlinelZstatusZ pyversionZsrpmfilenamerrrrruns                                         z bdist_rpm.runcCs"tjj|jtjj|S)N)rrrrbr)rrrrr _dist_pathszbdist_rpm._dist_pathc Csod|jjd|jjjddd|jjd|jjdddd|jjg}tjd }d jd d |j D}d }d}|j||}||kr|j d|j d|d n|j dddg|j r|j dn |j d|j d|jj d|jddg|js|jjs|j dqn|j d|jx{dKD]s}t||j}t|tr|j d"|d#j|fq|d$k r|j d"||fqqW|jjd%krC|j d&|jjn|jrc|j d'|jn|jr|j d(d#j|jn|jr|j d)tjj|jn|jr|j d*n|j dd+|jjgd,|jtjjtj d-f}d.|} |j!r6d/| } nd0|} dLd4d5| fd6d7| fdMdNdOdPdQdRg } x| D]\} } }t|| }|s|rz|j ddE| g|r|j t"|dFj#j$d q|j |qzqzW|j ddGdHg|j%r<|j dId#j|j%n|j&rk|j ddJg|j |j&n|S)SziGenerate the text of an RPM spec file and return it as a list of strings (one per line). z %define name z%define version -_z%define unmangled_version z%define release z Summary: zrpm --eval %{__os_install_post} cSs g|]}d|jqS)z %s \)r).0rrrr s z-bdist_rpm._make_spec_file..zbrp-python-bytecompile \ z%brp-python-bytecompile %{__python} \ z2# Workaround for http://bugs.python.org/issue14443z%define __os_install_post z Name: %{name}zVersion: %{version}zRelease: %{release}z-Source0: %{name}-%{unmangled_version}.tar.bz2z,Source0: %{name}-%{unmangled_version}.tar.gzz License: zGroup: z>BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildrootzPrefix: %{_prefix}zBuildArch: noarchz BuildArch: %sVendorPackagerProvidesRequires Conflicts Obsoletesz%s: %s NZUNKNOWNzUrl: zDistribution: zBuildRequires: zIcon: z AutoReq: 0z %descriptionz%s %srz%s buildzenv CFLAGS="$RPM_OPT_FLAGS" z>%s install -O1 --root=$RPM_BUILD_ROOT --record=INSTALLED_FILESr{rr&%setup -n %{name}-%{unmangled_version}ZbuildrsZinstallrtcleanrurm -rf $RPM_BUILD_ROOT verifyscriptrvprerwpostrxpreunrypostunrz%rz%files -f INSTALLED_FILESz%defattr(-,root,root)z%doc z %changelog)rrrrrr)zprepz prep_scriptr)rz clean_scriptr)rz verify_scriptN)rz pre_installN)rz post_installN)rz pre_uninstallN)rzpost_uninstallN)'rrZ get_versionreplacerkZget_description subprocessZ getoutputr splitlinesrrrhZ get_licenserjrrgetattrlowerrrZget_urlrirrqrrrrZget_long_descriptionrcrargvropenreadrrorp)rZ spec_fileZ vendor_hookZproblemZfixedZ fixed_hookZfieldvalZdef_setup_callZ def_buildZ install_cmdZscript_optionsZrpm_optattrdefaultrrrrs          #     # &       (     zbdist_rpm._make_spec_filecCs|s |Sg}x|jjdD]i}|j}|ddkr^|jd|gq&|ddkr~|j|q&|jd|q&W|ds|d=n|S)zKFormat the changelog correctly and convert it to a list of strings rrrrrz )rrrr)rrpZ new_changelogrrrrr3s   zbdist_rpm._format_changelog)r Nr )r Nr )rrr)rNr)rNr)rNr)rNr)rNr)rNr)rNr)rNr )r!Nr")r#Nr$)r%Nr&)r'Nr()r)Nr*)r+Nr,)r-Nr.)r/Nr0)r1Nr2)r3Nr4)r5Nr6)r7Nr8)r9Nr:)r;r<r=)r>Nr?)r@NrA)rBNrC)rDNrE)rFNrG)rHNrI)rJNrK)rLNrM)rNNrO)rPNrQ)rRNrS)rTNrU)rVNrW)rXNrY)rZNr[)zquietr]r^)__name__ __module__ __qualname__Z descriptionZ user_optionsZboolean_optionsZ negative_optrrrrrrrrrrrr s       -  -  r )__doc__rrrZdistutils.corerZdistutils.debugrZdistutils.utilrZdistutils.file_utilrZdistutils.errorsZdistutils.sysconfigrZ distutilsrr rrrrs$ PK!z;;+command/__pycache__/__init__.cpython-34.pyonu[ h f@sIdZddddddddd d d d d ddddddgZdS)z\distutils.command Package containing implementation of all the standard Distutils commands.ZbuildZbuild_pyZ build_extZ build_clibZ build_scriptsZcleanZinstallZ install_libZinstall_headersZinstall_scriptsZ install_dataZsdistregisterZbdistZ bdist_dumbZ bdist_rpmZ bdist_wininstZcheckZuploadN)__doc____all__rr?/opt/alt/python34/lib64/python3.4/distutils/command/__init__.pys&PK!z;;+command/__pycache__/__init__.cpython-34.pycnu[ h f@sIdZddddddddd d d d d ddddddgZdS)z\distutils.command Package containing implementation of all the standard Distutils commands.ZbuildZbuild_pyZ build_extZ build_clibZ build_scriptsZcleanZinstallZ install_libZinstall_headersZinstall_scriptsZ install_dataZsdistregisterZbdistZ bdist_dumbZ bdist_rpmZ bdist_wininstZcheckZuploadN)__doc____all__rr?/opt/alt/python34/lib64/python3.4/distutils/command/__init__.pys&PK!ƭE E (command/__pycache__/clean.cpython-34.pycnu[ i f @s\dZddlZddlmZddlmZddlmZGdddeZdS)zBdistutils.command.clean Implements the Distutils 'clean' command.N)Command) remove_tree)logc@s[eZdZdZddddddgZdgZddZddZddZdS)cleanz-clean up temporary files from 'build' command build-base=b2base build directory (default: 'build.build-base') build-lib=N}tjj|rt|d|jqctj d|qcWn|jsy'tj |jtjd|jWqtk rYqXndS)Ndry_runz%'%s' does not exist -- can't clean itz removing '%s')ospathexistsrrr$rdebugrrrrwarnrmdirrinfoOSError)rZ directoryrrrrun1s$       z clean.run)rrr)r Nr )r r r )rNr)rNr)zallrr) __name__ __module__ __qualname__Z descriptionZ user_optionsZboolean_optionsrr#r-rrrrr s"     r) __doc__r%Zdistutils.corerZdistutils.dir_utilrZ distutilsrrrrrrs  PK!k .%EE-command/__pycache__/build_clib.cpython-34.pycnu[ h fV@srdZddlZddlmZddlTddlmZddlmZddZ Gd d d eZ dS) zdistutils.command.build_clib Implements the Distutils 'build_clib' command, to build a C/C++ library that is included in the module distribution and needed by an extension module.N)Command)*)customize_compiler)logcCsddlm}|dS)Nr)show_compilers)distutils.ccompilerr)rrA/opt/alt/python34/lib64/python3.4/distutils/command/build_clib.pyrsrc@seZdZdZd"d#d$d%d&gZdd gZdddefgZddZddZ ddZ ddZ ddZ ddZ d d!ZdS)' build_clibz/build C/C++ libraries used by Python extensions build-clib=b%directory to build C/C++ libraries to build-temp=t,directory to put temporary build by-productsdebugg"compile with debugging informationforcef2forcibly build everything (ignore file timestamps) compiler=cspecify the compiler typez help-compilerNzlist available compilerscCsUd|_d|_d|_d|_d|_d|_d|_d|_d|_dS)Nr) r build_temp libraries include_dirsdefineundefrrcompiler)selfrrr initialize_options4s        zbuild_clib.initialize_optionscCs|jdddd d d |jj|_|jrG|j|jn|jdkrn|jjpeg|_nt|jtr|jjtj |_ndS) NZbuildrr rrr) build_tempz build_clib)r"r")compilerr#)debugr$)forcer%) Zset_undefined_optionsZ distributionrcheck_library_listr isinstancestrsplitospathsep)r rrr finalize_optionsDs  zbuild_clib.finalize_optionscCs|js dSddlm}|d|jd|jd|j|_t|j|jdk rv|jj|jn|j dk rx-|j D]\}}|jj ||qWn|j dk rx$|j D]}|jj |qWn|j |jdS)Nr) new_compilerrdry_runr)rrr-rr.rrrZset_include_dirsrZ define_macrorZundefine_macrobuild_libraries)r r-namevalueZmacrorrr run^s    zbuild_clib.runcCst|tstdnx|D]}t|t r\t|dkr\tdn|\}}t|tstdnd|kstjdkrtj|krtd|dnt|ts%tdq%q%Wd S) a`Ensure that the list of libraries is valid. `library` is presumably provided as a command option 'libraries'. This method checks that it is a list of 2-tuples, where the tuples are (library_name, build_info_dict). Raise DistutilsSetupError if the structure is invalid anywhere; just returns otherwise. z+'libraries' option must be a list of tuplesz*each element of 'libraries' must a 2-tuplezNfirst element of each tuple in 'libraries' must be a string (the library name)/z;bad library name '%s': may not contain directory separatorsrzMsecond element of each tuple in 'libraries' must be a dictionary (build info)N) r'listDistutilsSetupErrortuplelenr(r*sepdict)r rlibr0 build_inforrr r&vs"   "   *zbuild_clib.check_library_listcCs>|js dSg}x$|jD]\}}|j|qW|S)N)rappend)r Z lib_nameslib_namer<rrr get_library_namess  zbuild_clib.get_library_namescCs|j|jg}xh|jD]]\}}|jd}|dks]t|ttf rptd|n|j|q W|S)Nsourceszfin 'libraries' option (library '%s'), 'sources' must be present and must be a list of source filenames)r&rgetr'r5r7r6extend)r filenamesr>r<r@rrr get_source_filess" zbuild_clib.get_source_filesc Csx|D]\}}|jd}|dksDt|ttf rWtd|nt|}tjd||jd}|jd}|jj|d|j d|d|d|j }|jj ||d|j d|j qWdS)Nr@zfin 'libraries' option (library '%s'), 'sources' must be present and must be a list of source filenameszbuilding '%s' librarymacrosrZ output_dirr) rAr'r5r7r6rinforcompilerrZcreate_static_libr )r rr>r<r@rErZobjectsrrr r/s$"     zbuild_clib.build_libraries)r r r )rrr)zdebugrr)zforcerr)rrr)__name__ __module__ __qualname__Z descriptionZ user_optionsZboolean_optionsrZ help_optionsr!r,r2r&r?rDr/rrrr r s*       $ r ) __doc__r*Zdistutils.corerZdistutils.errorsZdistutils.sysconfigrZ distutilsrrr rrrr s   PK!oEN N 2command/__pycache__/install_scripts.cpython-34.pycnu[ h f@s\dZddlZddlmZddlmZddlmZGdddeZdS)zudistutils.command.install_scripts Implements the Distutils 'install_scripts' command, for installing Python scripts.N)Command)log)ST_MODEc@speZdZdZddddgZdd gZddZddZddZddZ ddZ d S)install_scriptsz%install scripts (Python or otherwise) install-dir=ddirectory to install scripts to build-dir=b'build directory (where to install from)forcef-force installation (overwrite existing files) skip-buildNskip the build stepscCs(d|_d|_d|_d|_dS)Nr) install_dirr build_dir skip_build)selfrF/opt/alt/python34/lib64/python3.4/distutils/command/install_scripts.pyinitialize_optionss   z"install_scripts.initialize_optionscCs*|jdd |jdd d d dS) NZbuild build_scriptsrZinstallrrr r)rz build_dir)zinstall_scriptsz install_dir)forcer) skip_buildr)Zset_undefined_options)rrrrfinalize_options!s  z install_scripts.finalize_optionscCs|js|jdn|j|j|j|_tjdkrxq|jD]`}|j rrt j d|qPtj |t dBd@}t j d||tj||qPWndS)Nrposixzchanging mode of %simizchanging mode of %s to %o)rZ run_commandZ copy_treerroutfilesosname get_outputsZdry_runrinfostatrchmod)rfilemoderrrrun)s  zinstall_scripts.runcCs|jjpgS)N)Z distributionscripts)rrrr get_inputs8szinstall_scripts.get_inputscCs |jp gS)N)r)rrrrr ;szinstall_scripts.get_outputs)rrr)r r r )zforcer r)rNr) __name__ __module__ __qualname__Z descriptionZ user_optionsZboolean_optionsrrr&r(r rrrrrs       r) __doc__rZdistutils.corerZ distutilsrr"rrrrrrs  PK!6)b{ { 3command/__pycache__/install_egg_info.cpython-34.pycnu[ h f" @sdZddlmZddlmZmZddlZddlZddlZGdddeZ ddZ d d Z d d Z dS) zdistutils.command.install_egg_info Implements the Distutils 'install_egg_info' command, for installing a package's PKG-INFO metadata.)Command)logdir_utilNc@sUeZdZdZdZdgZddZdd Zd d Zd d Z dS)install_egg_infoz)Install an .egg-info file for the packagez8Install package's PKG-INFO metadata as an .egg-info file install-dir=ddirectory to install tocCs d|_dS)N) install_dir)selfr G/opt/alt/python34/lib64/python3.4/distutils/command/install_egg_info.pyinitialize_optionssz#install_egg_info.initialize_optionscCs|jdddtt|jjtt|jjtjddf}t j j |j ||_ |j g|_dS)NZ install_libr z%s-%s-py%s.egg-info) install_dirr)Zset_undefined_options to_filename safe_name distributionZget_name safe_versionZ get_versionsysversionospathjoinr targetoutputs)r basenamer r r finalize_optionssz!install_egg_info.finalize_optionsc Cs|j}tjj|rGtjj| rGtj|d|jnptjj|r||j tj |jfd|n;tjj|j s|j tj |j fd|j nt jd||jst|ddd}|jjj|WdQXndS)Ndry_runz Removing z Creating z Writing %swencodingzUTF-8)rrrisdirislinkrZ remove_treerexistsZexecuteunlinkr makedirsrinfoopenrZmetadataZwrite_pkg_file)r rfr r r run s %# zinstall_egg_info.runcCs|jS)N)r)r r r r get_outputs.szinstall_egg_info.get_outputsN)rrr) __name__ __module__ __qualname____doc__Z descriptionZ user_optionsr rr(r)r r r r r s    rcCstjdd|S)zConvert an arbitrary string to a standard distribution name Any runs of non-alphanumeric/. characters are replaced with a single '-'. z[^A-Za-z0-9.]+-)resub)namer r r r6srcCs%|jdd}tjdd|S)zConvert an arbitrary string to a standard version string Spaces become dots, and all other non-alphanumeric characters become dashes, with runs of multiple dashes condensed to a single dash.  .z[^A-Za-z0-9.]+r.)replacer/r0)rr r r r>srcCs|jddS)z|Convert a project or version name to its filename-escaped form Any '-' characters are currently replaced with '_'. r._)r4)r1r r r rHsr) r-Z distutils.cmdrZ distutilsrrrrr/rrrrr r r r s$+  PK!z -command/__pycache__/bdist_dumb.cpython-34.pyonu[ h f @sdZddlZddlmZddlmZddlmZmZddl Tddl m Z ddl m Z Gd d d eZdS) zdistutils.command.bdist_dumb Implements the Distutils 'bdist_dumb' command (create a "dumb" built distribution -- i.e., just an archive to be unpacked under $prefix or $exec_prefix).N)Command) get_platform) remove_treeensure_relative)*)get_python_version)logc @seZdZdZd&dddefd'd d d dfd(d)d*d+d,g Zd ddgZidd6dd6Zd d!Zd"d#Z d$d%Z dS)- bdist_dumbz"create a "dumb" built distribution bdist-dir=d1temporary directory for creating the distributionz plat-name=pz;platform name to embed in generated filenames (default: %s)format=f0archive format to create (tar, ztar, gztar, zip)z keep-tempkz/keep the pseudo-installation tree around after z!creating the distribution archive dist-dir=-directory to put final built distributions in skip-buildN2skip rebuilding everything (for testing/debugging)relative6build the archive using relative paths(default: false)owner=u@Owner name used when creating a tar file [default: current user]group=gAGroup name used when creating a tar file [default: current group]ZgztarposixzipntcCsUd|_d|_d|_d|_d|_d|_d|_d|_d|_dS)Nr) bdist_dir plat_nameformat keep_tempdist_dir skip_buildrownergroup)selfr*A/opt/alt/python34/lib64/python3.4/distutils/command/bdist_dumb.pyinitialize_options1s        zbdist_dumb.initialize_optionscCs|jdkr<|jdj}tjj|d|_n|jdkry|jtj|_Wqt k rt dtjYqXn|j dddd dS) NZbdistZdumbz@don't know how to create dumb built distributions on platform %sr%r"r&)dist_dirr-) plat_namer.) skip_buildr/) r!Zget_finalized_command bdist_baseospathjoinr#default_formatnameKeyErrorDistutilsPlatformErrorZset_undefined_options)r)r0r*r*r+finalize_options<s  zbdist_dumb.finalize_optionsc Cs|js|jdn|jddd}|j|_|j|_d|_tjd|j|jdd|jj |j f}t j j |j|}|js|j}nm|jjr|j|jkrtdt|jt|jfn!t j j |jt|j}|j||jd |d |jd |j}|jjrnt}nd }|jjjd ||f|jst|jd|jndS)NZbuildinstallZreinit_subcommandsrzinstalling to %sz%s.%szScan't make a dumb built distribution where base and platbase are different (%s, %s)Zroot_dirr'r(anyr dry_run) r&Z run_commandZreinitialize_commandr!rootZwarn_dirrinfoZ distributionZ get_fullnamer"r1r2r3r%rZhas_ext_modulesZ install_baseZinstall_platbaser7reprrZ make_archiver#r'r(rZ dist_filesappendr$rr<)r)r9Zarchive_basenameZpseudoinstall_rootZ archive_rootfilenameZ pyversionr*r*r+runNs>             zbdist_dumb.run)r r r )rrr)rr r)rNr)zrelativeNr)rrr)rrr) __name__ __module__ __qualname__Z descriptionrZ user_optionsZboolean_optionsr4r,r8rBr*r*r*r+r s6      r )__doc__r1Zdistutils.corerZdistutils.utilrZdistutils.dir_utilrrZdistutils.errorsZdistutils.sysconfigrZ distutilsrr r*r*r*r+s  PK!@TT,command/__pycache__/bdist_msi.cpython-34.pyonu[ h f@sdZddlZddlZddlmZddlmZddlmZddl m Z ddl m Z ddl mZdd lmZddlZdd lmZmZmZdd lmZmZmZmZGd d d eZGdddeZdS)z# Implements the bdist_msi command. N)Command) remove_tree)get_python_version) StrictVersion)DistutilsOptionError) get_platform)log)schemasequencetext) DirectoryFeatureDialogadd_datac@speZdZdZddZddZdddd Zd dd d Zd dddZddZ dS)PyDialogzDialog class with a fixed layout: controls at the top, then a ruler, then a list of buttons: back, next, cancel. Optionally a bitmap at the left.cOsKtj|||jd}d|d}|jdd||jddS)zbDialog(database, name, x, y, w, h, attributes, title, first, default, cancel, bitmap=true)$iHZ BottomLinerN)r__init__hlinew)selfargskwZrulerZbmwidthr@/opt/alt/python34/lib64/python3.4/distutils/command/bdist_msi.pyrs zPyDialog.__init__c Cs'|jddddddd|dS) z,Set the title text of the dialog at the top.Title i@<iz{\VerdanaBold10}%sN)r )rtitlerrrr #szPyDialog.titleBackc Cs>|rd}nd}|j|d|jddd|||S)zAdd a back button with a given title, the tab-next button, its name in the Control table, possibly initially disabled. Return the button, so that events can be associatedr"8) pushbuttonr)rr nextnameactiveflagsrrrback*s z PyDialog.backCancelc Cs>|rd}nd}|j|d|jddd|||S)zAdd a cancel button with a given title, the tab-next button, its name in the Control table, possibly initially disabled. Return the button, so that events can be associatedr#r"i0r%r&r')r(r)rr r)r*r+r,rrrcancel5s zPyDialog.cancelNextc Cs>|rd}nd}|j|d|jddd|||S)zAdd a Next button with a given title, the tab-next button, its name in the Control table, possibly initially disabled. Return the button, so that events can be associatedr#r"r%r&r')r(r)rr r)r*r+r,rrrr)@s z PyDialog.nextc Cs:|j|t|j|d|jdddd||S)zAdd a button with a given title, the tab-next button, its name in the Control table, giving its x position; the y-position is aligned with the other buttons. Return the button, so that events can be associatedr%r&r'r#)r(intrr)rr*r r)ZxposrrrxbuttonKszPyDialog.xbuttonN) __name__ __module__ __qualname____doc__rr r-r/r)r4rrrrrs     rc@s]eZdZdZdddfdddefdd d d fd dd dfdddfdddfdddfdddfdddfdddfg ZddddgZddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1gZd2Zd3d4Z d5d6Z d7d8Z d9d:Z d;d<Z d=d>Zd?d@ZdAdBZdS)C bdist_msiz7create a Microsoft Installer (.msi) binary distributionz bdist-dir=Nz1temporary directory for creating the distributionz plat-name=pz;platform name to embed in generated filenames (default: %s)z keep-tempkz/keep the pseudo-installation tree around after z!creating the distribution archiveztarget-version=z!require a specific python versionz on the target systemzno-target-compilecz/do not compile .py to .pyc on the target systemzno-target-optimizeoz:do not compile .py to .pyo (optimized)on the target systemz dist-dir=dz-directory to put final built distributions inz skip-buildz2skip rebuilding everything (for testing/debugging)zinstall-script=zTbasename of installation script to be run afterinstallation or before deinstallationzpre-install-script=z{Fully qualified filename of a script to be run before any files are installed. This script need not be in the distributionz2.0z2.1z2.2z2.3z2.4z2.5z2.6z2.7z2.8z2.9z3.0z3.1z3.2z3.3z3.4z3.5z3.6z3.7z3.8z3.9XcCsgd|_d|_d|_d|_d|_d|_d|_d|_d|_d|_ d|_ dS)Nr) bdist_dir plat_name keep_tempZno_target_compileZno_target_optimizetarget_versiondist_dir skip_buildinstall_scriptpre_install_scriptversions)rrrrinitialize_options}s          zbdist_msi.initialize_optionscCsr|jdd |jdkrL|jdj}tjj|d|_nt}|j rz|j j rz||_n|jr|jg|_ |j r|j j r|j|krt d|fqnt|j|_ |jdd d |jrt dn|jrexI|j jD]%}|jtjj|kr&Pq&q&Wt d|jnd|_dS) NZbdistrEZmsizMtarget version can only be %s, or the '--skip-build' option must be specifiedrDrAz5the pre-install-script feature is not yet implementedz(install_script '%s' not found in scripts) skip_buildrJ)dist_dirrK) plat_namerL)Zset_undefined_optionsr@get_finalized_command bdist_baseospathjoinrrC distributionhas_ext_modulesrHrErlist all_versionsrGrFscriptsbasenameinstall_script_key)rrNZ short_versionZscriptrrrfinalize_optionss:       zbdist_msi.finalize_optionscCs}|js|jdn|jddd}|j|_|j|_d|_|jd}d|_d|_|jj r|j }|st j dd}nd|j |f}|jd}tjj|jd ||_ntjd |j|jt jjdtjj|jd |jt jd=|j|j|jj}|j|}tjj|}tjj|rtj|n|jj }|j!} | s|j"} n| sd } n|j#} d t$| j } |jj}|j r#d|j |f} n d|} t%j&|t'| t%j(| | |_)t%j*|j)t+d| fg} |j,p|j-}|r| j.d|fn|j/r| j.d|j/fn| rt0|j)d| n|j1|j2|j3|j4|j)j5t6|jdrWd|j p8d|f}|jj7j.|n|j8syt9|jd|j:ndS)NbuildinstallZreinit_subcommandsr"r install_libr#z.%s-%slibzinstalling to %sZPURELIBZUNKNOWNz%d.%d.%dz Python %s %sz Python %sZ DistVersionZ ARPCONTACTZARPURLINFOABOUTProperty dist_filesr9anydry_run);rEZ run_commandZreinitialize_commandr@prefixZwarn_dircompileoptimizerRrSrCsysversionrArMrOrPrQZ build_baseZ build_librinfoZensure_finalizedinsertrunZmkpathrD get_fullnameget_installer_filenameabspathexistsunlinkmetadataauthorZ maintainerZ get_versionrmsilibZ init_databaser Zgen_uuiddbZ add_tablesr Z author_emailZmaintainer_emailappendZurlradd_find_python add_files add_scriptsadd_uiCommithasattrr_rBrra)rr[r\rCZplat_specifierrZfullnameinstaller_namerorprfZsversionZ product_nameZpropsZemailtuprrrris|        %                  z bdist_msi.runc Cs|j}tjd}tjj|j}t||d|dd}t|ddddddd}||d fg}x|j |j gD]}d|}d|} } d} ||j krd } d } nd |} d} t|| | | d| d|}t|||||| }|j |||fqW|j i}x|D]\}}}|g}xg|r|j }xNtj|jD]:}tjj|j|}tjj|r d |j||f}||} t||||| |}|j |q|js.|j|j|dn||kr|j|}||<||jkr|jr|td|nd||_qq||}t|jd|||j|d|jfgqWqiW|j qNW|j|dS)NZ distfiles TARGETDIRZ SourceDirPythonZ Everythingrr"Z directoryzPython from another locationzPython %s from registryz%s|%szMultiple files with name %sz[#%s]Z DuplicateFile)rrrqZCABrOrPrlr@r r rH other_versionrsrxpoplistdirZabsoluterQisdirZ make_shortZ componentZstart_componentZlogicalZadd_filerFrXrrZcommit)rrrZcabZrootdirrootfitemsrftargetr*defaultZdescr leveldirseenZfeatureZtodofileZafileZshortZnewdirkeyrrrru s\    !          +zbdist_msi.add_filesc Csd}x|jD]}d|}d|}d|}d|}d|}d|}d|} d |} d |} d |} tjrd} nd } t|jd|d |d| f|d|d| fgt|jd||f||fgt|jd|d | d|df| d!| d|df| d"| d| dfgt|jd|||f| ||df| d|d fgt|jd|||f| ||df| d|d fgt|jdd|dd|fg|d7}qWdS)#asAdds code to the installer to compute the location of Python. Properties PYTHON.MACHINE.X.Y and PYTHON.USER.X.Y will be set from the registry for each version of Python. Properties TARGETDIRX.Y will be set from PYTHON.USER.X.Y if defined, else from PYTHON.MACHINE.X.Y. Properties PYTHONX.Y will be set to TARGETDIRX.Y\python.exeiz)SOFTWARE\Python\PythonCore\%s\InstallPathzpython.machine.z python.user.zPYTHON.MACHINE.z PYTHON.USER.ZPythonFromMachineZPythonFromUserZ PythonExer}PYTHONrZ RegLocatorNr"Z AppSearch CustomAction3[]z ]\python.exeInstallExecuteSequenceInstallUISequenceZ Conditionr~rz NOT TARGETDIRi3i3i3)rHrqZWin64rrr)rstartverZ install_pathZ machine_regZuser_regZ machine_propZ user_propZmachine_actionZ user_actionZ exe_actionZtarget_dir_propexe_propZTyperrrrtCsJ                       zbdist_msi.add_find_pythoncCsQ|jrd}x|j|jgD]l}d|}d|}t|jd|d||jfgt|jd|d||fg|d7}q#Wn|jrMtjj |j d }t |d }|j d |j t |jj |jt|jd d tj|fgt|jddgt|jddgndS)Nizinstall_script.rr2rz &Python%s=3r"zpreinstall.batrzrem =""" %1 %0 exit """ Binary PreInstallr NOT Installed)rrrN)rrr)rFrHrrrrrXrGrOrPrQr@openwritereadcloserqr)rrrZinstall_actionrZscriptfnrrrrrvys,            zbdist_msi.add_scriptscCsG|j}d}}d}d}d}d}d}d} t|dddddddgt|dddddgt|d dddddgt|d/tjt|d0tjt|d1||||||d2d2d2 } | jd3| jd4d2d5d| jd6d7d5d| jd8d9d:d;d<d=d>| jd?d9d@d;dAd=dB| j d2d6dCd2} | j dDdEt|dF||||||d2d2d2 } | jdG| jd4d2d5d| jd6d7d5d| jd8d9d:d;d<d=dH| jd?d9d@d;dAd=dB| j d2d6dCd2} | j dDdEt|dI||||||d2d2d2 } | jdJ| jd4d2d5d| jd6d7d5d| jdKd9dLd;dAd=dB| j d2d6dCd2} | j dDdMt|dN||||dO|dPdPdPdQdR }|jdSd9dTdUd9d=dV|jdKdAdWdXdAd=dY|jdZdAd[d\ddd]|j d^d_dAd`d\dadbdcddd |jdEdddCdE} | j dDdE|j dddPdCdd} | j dDdd|jdPdEdCdP} | j dDdPt |d ddd\dedf|dgdd }|jdgdddXdhddi|j djdkdldmdnddodj dDdp|j dqdrdldmdnddsdj dDdt|j duddldmdnddvdj dDdw|j dxdydldmdndd6dj dDdz|j d{dmdldmdnddddj dDd||j d}d~dldmdndddj dDd|j dddldmdnddPdj dDdt |dddddd|dododo }|jdZdhd9dddd|j dsdldddddsdo} | j dDdE|j doddddddods} | j dDdMt |ddddd||dMdMdM }|jdZdhd9dddd|j dMddddddMd} | j dDdEt|d!||||||d6d6d6 }|jdKd9d:d;dd=d|jd|jd/d9dd;dAd=d} | jd/dZ|jdd9dd;dd=d} | jddZ|jd7dd5d|j ddd5d|jd6d} | j ddt|d'||||||ddd6 }|jd|jdd9dddAdd|jj|jd4dd5d|j dd6} d}| j ddd|xF|j|jgD]1}|d7}| j dd|d|d|qW| j ddd|d| j dDdMd|d|jd6d} | j dd|j ddd9dddkddddd } | j dd|j}d|}d|}|jdd9dUdd9dd} | jd|| jd|| jd|| jd||j ddd9ddddd|ddd } | jd|| jd|| jd|| jd|t|d||||||ddddQdR }|jdSd9dTdUd9d=d|jdKdAdAdXdAd=d|jdZdAdd\ddd|j dddAdd\dddddd |jddddj dDdMt|d$||||||ddd6 }|jd|jdd9ddddddid }|jdddddAd|jdddddAd|jd7dd5d|j dd6} | j dddd| j dDdMdd|jd6d} | j ddt|d-||||||d6d6d6dQdR }|jdSdAd9dUd9d=d|jdZdddddd|jdddddAdd|jd/d:d|d:dAdd} | jd/dZ|j ddddkddddddd } | jdd|jd4dd5dR|j dd6d5dR|jd6d7j ddt|d*||||||ddd6 }|jd|jdd9dd\dydd|jdd9dd\ddddid }|jddddUdd|jddddUdd|jd4dd5dR|j d2d6} | j dddd| j ddddT| j ddddb| j dddd| j dddd| j dddd| j dddd| j dddd| j dDdMddA|jd6dj dddS(Nriri,z[ProductName] Setupr#r" r^ DefaultUIFontDlgFont8 ErrorDialogErrorDlg Progress1Install Progress2installsMaintenanceForm_ActionRepair WhichUsersALLZ TextStyleTahoma r DlgFontBold8 VerdanaBold10Verdanar VerdanaRed9r PrepareDlg(Not Privileged or Windows9x or Installed WhichUsersDlg.Privileged and not Windows9x and not InstalledSelectFeaturesDlg Not InstalledMaintenanceTypeDlg,Installed AND NOT RESUME AND NOT Preselected ProgressDlg ActionTextUITextZ FatalErrorZFinishz)[ProductName] Installer ended prematurelyz< Backr+r.r!Z Description1rFi@Piz[ProductName] setup ended prematurely because of an error. Your system has not been modified. To install this program at a later time, please run the installation again.Z Description2z.Click the Finish button to exit the Installer.r*Z EndDialogZExitZUserExitz'[ProductName] Installer was interruptedz[ProductName] setup was interrupted. Your system has not been modified. To install this program at a later time, please run the installation again.Z ExitDialogz&Completing the [ProductName] InstallerZ DescriptionZReturnZ FilesInUseZRetryZbitmapFrz{\DlgFontBold8}Files in Useiz8Some files that need to be updated are currently in use.ZText7iJzThe following applications are using files that need to be updated by this setup. Close these applications and then click Retry to continue the installation or Cancel to exit it.ZListZListBoxkZFileInUseProcessIgnoreeiZ ErrorText0rNxHQZNoZErrorNoYZYesZErrorYesAZAbortZ ErrorAbortC*Z ErrorCancelIZ ErrorIgnoreOZOkZErrorOkRZ ErrorRetryZ CancelDlgiUz;Are you sure you want to cancel [ProductName] installation?9r&r'ZWaitForCostingDlgzRPlease wait while the installer finishes determining your disk space requirements.f(zOPlease wait while the Installer prepares to guide you through the installation.z&Welcome to the [ProductName] Installernz Pondering...Z ActionDatar0Z SpawnDialogzSelect Python InstallationsZHintz9Select the Python locations where %s should be installed.zNext >z [TARGETDIR]z [SourceDir]Zorderingz [TARGETDIR%s]z FEATURE_SELECTED AND &Python%s=3ZSpawnWaitDialogrZFeaturesZ SelectionTreerZFEATUREZPathEditz[FEATURE_SELECTED]1z!FEATURE_SELECTED AND &Python%s<>3ZOtherz$Provide an alternate Python locationZEnableZShowZDisableZHiderr}Z DiskCostDlgZOKz&{\DlgFontBold8}Disk Space RequirementszFThe disk space required for the installation of the selected features.5aThe highlighted volumes (if any) do not have enough disk space available for the currently selected features. You can either remove some files from the highlighted volumes, or choose to install less features onto local drive(s), or select different destination drive(s).Z VolumeListZVolumeCostListdiz{120}{70}{70}{70}{70}g?Z AdminInstallzGSelect whether to install [ProductName] for all users of this computer.zInstall for all usersZJUSTMEzInstall just for mez [ALLUSERS]zWhichUsers="ALL"z({\DlgFontBold8}[Progress1] [ProductName]#AzYPlease wait while the Installer [Progress2] [ProductName]. This may take several minutes.Z StatusLabelzStatus:Z ProgressBariz Progress doneZ SetProgressZProgressz)Welcome to the [ProductName] Setup WizardZBodyText?z:Select whether you want to repair or remove [ProductName].ZRepairRadioGrouplrz&Repair [ProductName]ZRemoverzRe&move [ProductName]z [REINSTALL]zMaintenanceForm_Action="Repair"z [Progress1]Z Repairingz [Progress2]ZrepairsZ Reinstallz[REMOVE]zMaintenanceForm_Action="Remove" ZRemoving Zremoves z MaintenanceForm_Action<>"Change")rr)rr)rr)rr)rr)rr)rrrNr)rrrNr")rrrNr")rrrrr)rrr)rrr)rrr)rrr)rNr)rrrr rrrr r-r/r)ZeventZcontrolrr(mappingrRrjrHrZ conditionr4Z radiogroupadd)rrrxyrrr ZmodalZmodelessZtrack_disk_spaceZfatalr<Z user_exitZ exit_dialogZinuseerrorr/ZcostingZprepZseldlgZorderrfrZinstall_other_condZdont_install_other_condZcostZ whichusersgZprogressZmaintrrrrws                .......$$$ !!        "  % zbdist_msi.add_uicCsT|jr%d||j|jf}nd||jf}tjj|j|}|S)Nz%s.%s-py%s.msiz %s.%s.msi)rCrArOrPrQrD)rrzZ base_namer{rrrrks   z bdist_msi.get_installer_filename)r5r6r7Z descriptionrZ user_optionsZboolean_optionsrUrrIrYrirurtrvrwrkrrrrr9SsP      ( [ 6 6 & ?r9)r8rerOZdistutils.corerZdistutils.dir_utilrZdistutils.sysconfigrZdistutils.versionrZdistutils.errorsrZdistutils.utilrZ distutilsrrqr r r r r rrrr9rrrrs ">PK!7 /command/__pycache__/install_data.cpython-34.pyonu[ i f @sRdZddlZddlmZddlmZmZGdddeZdS)zdistutils.command.install_data Implements the Distutils 'install_data' command, for installing platform-independent data files.N)Command) change_root convert_pathc@sjeZdZdZdddgZdgZd d Zd dZddZddZ ddZ dS) install_datazinstall data files install-dir=dIbase directory for installing data files (default: installation base dir)root=Ns PK!`;;*command/__pycache__/install.cpython-34.pycnu[ h fg@sdZddlZddlZddlmZddlmZddlmZddl m Z ddl m Z ddl mZdd lmZmZmZdd lmZdd l mZdd lmZdd lmZdZidd6dd6dd6dd6dd6Ziidd6dd6dd6dd6dd6d6idd6dd6dd6dd6dd6d 6ed!6Zerid"d6d"d6d#d6d$d6d%d6ed&d?Zd@dAZdBdCZdDdEZdFdGZdHdIZdJdKZdLdMZdNdOZdPdQZdRdSZdTdUZdVdWZdXefdYefdZefd[efd\d]d^fgZdS)oinstallz'install everything from build directoryprefix=Ninstallation prefix exec-prefix=.(Unix only) prefix for platform-specific fileshome=+(Unix only) home directory to install under install-base=;base installation directory (instead of --prefix or --home)zinstall-platbase=z8base installation directory for platform-specific files z$(instead of --exec-prefix or --home)root=/opt/alt/python34/lib64/python3.4/distutils/command/install.pyinitialize_optionss2                       zinstall.initialize_optionscCs|js|js|jr@|js-|jr@tddn|jrj|js[|jrjtdn|jr|js|js|js|js|jrtdntjdkr|jr|j dd|_qn|j dtjdkr |j n |j |j d t jjd }td d \}}y t j}Wntk rrd }YnXi |jjd6|jjd6|jjd6|d6|d dd6|d |dd6|d6|d 6|d6|d 6|d6|_tr#|j|jd<|j|jd=z %s: %sr) rZdistutils.fancy_getoptrrdebug user_options negative_opt translategetattr)rUmsgrZoptZopt_namevalrVrVrWrlss  zinstall.dump_dirscCs|jdk s|jdk r|jdkrK|jdkrK|jdksx|jdksx|jdksx|jdkrtdndS|j r|j dkrt dn|j |_|_|j dn|j dk r|j |_|_|j dn|jdkrg|jdk r4tdntjjtj|_tjjtj|_n|jdkr|j|_n|j|_|j|_|j ddS)z&Finalizes options for posix platforms.NzPinstall-base or install-platbase supplied, but installation scheme is incompletez$User base directory is not specifiedrrz*must not supply exec-prefix without prefixr)rBrCrHrErFrGrIrJr r=rKr select_schemerAr?r@rir}normpathro)rUrVrVrWrms<      zinstall.finalize_unixc Cs|jrQ|jdkr'tdn|j|_|_|jtjdn|jdk r|j|_|_|jdny|j dkrtj j t j |_ n|j |_|_y|jtjWn%t k rtdtjYnXdS)z)Finalizes options for non-posix platformsNz$User base directory is not specifiedZ_userrz)I don't know how to install stuff on '%s')r=rKrrBrCrrirjrAr?r}rroKeyError)rUrVrVrWrns"   zinstall.finalize_othercCsUt|}xDtD]<}d|}t||dkrt||||qqWdS)z=Sets the install directories by applying the install schemes.install_N)INSTALL_SCHEMES SCHEME_KEYSrsetattr)rUrjschemekeyZattrnamerVrVrWrs    zinstall.select_schemecCsx|D]y}t||}|dk rtjdksFtjdkr[tjj|}nt||j}t|||qqWdS)NrYr)rrirjr} expanduserr rtr)rUattrsattrrrVrVrW _expand_attrss  zinstall._expand_attrscCs|jdddgdS)zNCalls `os.path.expanduser` on install_base, install_platbase and root.rBrCrDN)r)rUrVrVrWrvszinstall.expand_basedirscCs#|jddddddgdS)z+Calls `os.path.expanduser` on install dirs.rErFrHrGrIrJN)r)rUrVrVrWrxs zinstall.expand_dirscGs>x7|D]/}d|}t||tt||qWdS)z!Call `convert_path` over `names`.rN)rrr)rUnamesrjrrVrVrWrzs  zinstall.convert_pathscCs|jdkr!|jj|_n|jdk rt|jtrZ|jjd|_nt|jdkr|jd}}n3t|jdkr|j\}}n tdt|}n d}d}||_||_ dS)z4Set `path_file` and `extra_dirs` using `extra_path`.N,r>rr^zY'extra_path' option must be a list, tuple, or comma-separated string with 1 or 2 elementsrZ) rNrs isinstancestrrqlenr r path_filer)rUrrrVrVrWr{s   zinstall.handle_extra_pathc GsDx=|D]5}d|}t||t|jt||qWdS)z:Change the install directories pointed by name using root.rN)rr rDr)rUrrjrrVrVrWrs  zinstall.change_rootscCs|js dSttjjd}xc|jjD]R\}}|j|r5tjj| r5|j d|tj |dq5q5WdS)zCreate directories under ~.N~zos.makedirs('%s', 0o700)i) r=rrir}rrtitems startswithisdirZ debug_printmakedirs)rUrArjr}rVrVrWry s "zinstall.create_home_pathcCs|jsU|jd|jjdj}|jrU|tkrUtdqUnx!|jD]}|j|qbW|j r|j n|j r|j }|j rt|j }x5tt|D]}|||d||szinstall.)rNr)rNr)rNr)r Nr!)r"Nr#)r$Nr%)r&Nr')r(Nr))r*Nr+)r,Nr-)zcompiler/r0)r1Nr2)r3r4r5)zforcer7r8)r9Nr:)r;Nr<) __name__ __module__ __qualname__Z descriptionrZboolean_optionsrurrrrXrrlrmrnrrrvrxrzr{rryrrrrrrrrZ sub_commandsrVrVrVrWrIs     M  (       ,          r)zpurelibzplatlibzheaderszscriptszdata)__doc__roriZ distutilsrZdistutils.corerZdistutils.debugrZdistutils.sysconfigrZdistutils.errorsrZdistutils.file_utilrZdistutils.utilrr r r r Zsiter rruZWINDOWS_SCHEMErrrrVrVrVrWsb      PK! ;;*command/__pycache__/install.cpython-34.pyonu[ h fg@sdZddlZddlZddlmZddlmZddlmZddl m Z ddl m Z ddl mZdd lmZmZmZdd lmZdd l mZdd lmZdd lmZdZidd6dd6dd6dd6dd6Ziidd6dd6dd6dd6dd6d6idd6dd6dd6dd6dd6d 6ed!6Zerid"d6d"d6d#d6d$d6d%d6ed&d?Zd@dAZdBdCZdDdEZdFdGZdHdIZdJdKZdLdMZdNdOZdPdQZdRdSZdTdUZdVdWZdXefdYefdZefd[efd\d]d^fgZdS)oinstallz'install everything from build directoryprefix=Ninstallation prefix exec-prefix=.(Unix only) prefix for platform-specific fileshome=+(Unix only) home directory to install under install-base=;base installation directory (instead of --prefix or --home)zinstall-platbase=z8base installation directory for platform-specific files z$(instead of --exec-prefix or --home)root=/opt/alt/python34/lib64/python3.4/distutils/command/install.pyinitialize_optionss2                       zinstall.initialize_optionscCs|js|js|jr@|js-|jr@tddn|jrj|js[|jrjtdn|jr|js|js|js|js|jrtdntjdkr|jr|j dd|_qn|j dtjdkr |j n |j |j d t jjd }td d \}}y t j}Wntk rrd }YnXi |jjd6|jjd6|jjd6|d6|d dd6|d |dd6|d6|d 6|d6|d 6|d6|_tr#|j|jd<|j|jd=z %s: %sr) rZdistutils.fancy_getoptrrdebug user_options negative_opt translategetattr)rUmsgrZoptZopt_namevalrVrVrWrlss  zinstall.dump_dirscCs|jdk s|jdk r|jdkrK|jdkrK|jdksx|jdksx|jdksx|jdkrtdndS|j r|j dkrt dn|j |_|_|j dn|j dk r|j |_|_|j dn|jdkrg|jdk r4tdntjjtj|_tjjtj|_n|jdkr|j|_n|j|_|j|_|j ddS)z&Finalizes options for posix platforms.NzPinstall-base or install-platbase supplied, but installation scheme is incompletez$User base directory is not specifiedrrz*must not supply exec-prefix without prefixr)rBrCrHrErFrGrIrJr r=rKr select_schemerAr?r@rir}normpathro)rUrVrVrWrms<      zinstall.finalize_unixc Cs|jrQ|jdkr'tdn|j|_|_|jtjdn|jdk r|j|_|_|jdny|j dkrtj j t j |_ n|j |_|_y|jtjWn%t k rtdtjYnXdS)z)Finalizes options for non-posix platformsNz$User base directory is not specifiedZ_userrz)I don't know how to install stuff on '%s')r=rKrrBrCrrirjrAr?r}rroKeyError)rUrVrVrWrns"   zinstall.finalize_othercCsUt|}xDtD]<}d|}t||dkrt||||qqWdS)z=Sets the install directories by applying the install schemes.install_N)INSTALL_SCHEMES SCHEME_KEYSrsetattr)rUrjschemekeyZattrnamerVrVrWrs    zinstall.select_schemecCsx|D]y}t||}|dk rtjdksFtjdkr[tjj|}nt||j}t|||qqWdS)NrYr)rrirjr} expanduserr rtr)rUZattrsattrrrVrVrW _expand_attrss  zinstall._expand_attrscCs|jdddgdS)zNCalls `os.path.expanduser` on install_base, install_platbase and root.rBrCrDN)r)rUrVrVrWrvszinstall.expand_basedirscCs#|jddddddgdS)z+Calls `os.path.expanduser` on install dirs.rErFrHrGrIrJN)r)rUrVrVrWrxs zinstall.expand_dirscGs>x7|D]/}d|}t||tt||qWdS)z!Call `convert_path` over `names`.rN)rrr)rUnamesrjrrVrVrWrzs  zinstall.convert_pathscCs|jdkr!|jj|_n|jdk rt|jtrZ|jjd|_nt|jdkr|jd}}n3t|jdkr|j\}}n tdt|}n d}d}||_||_ dS)z4Set `path_file` and `extra_dirs` using `extra_path`.N,r>rr^zY'extra_path' option must be a list, tuple, or comma-separated string with 1 or 2 elementsrZ) rNrs isinstancestrrqlenr r path_filer)rUrrrVrVrWr{s   zinstall.handle_extra_pathc GsDx=|D]5}d|}t||t|jt||qWdS)z:Change the install directories pointed by name using root.rN)rr rDr)rUrrjrrVrVrWrs  zinstall.change_rootscCs|js dSttjjd}xc|jjD]R\}}|j|r5tjj| r5|j d|tj |dq5q5WdS)zCreate directories under ~.N~zos.makedirs('%s', 0o700)i) r=rrir}rrtitems startswithisdirZ debug_printmakedirs)rUrArjr}rVrVrWry s "zinstall.create_home_pathcCs|jsU|jd|jjdj}|jrU|tkrUtdqUnx!|jD]}|j|qbW|j r|j n|j r|j }|j rt|j }x5tt|D]}|||d||szinstall.)rNr)rNr)rNr)r Nr!)r"Nr#)r$Nr%)r&Nr')r(Nr))r*Nr+)r,Nr-)zcompiler/r0)r1Nr2)r3r4r5)zforcer7r8)r9Nr:)r;Nr<) __name__ __module__ __qualname__Z descriptionrZboolean_optionsrurrrrXrrlrmrnrrrvrxrzr{rryrrrrrrrrZ sub_commandsrVrVrVrWrIs     M  (       ,          r)zpurelibzplatlibzheaderszscriptszdata)__doc__roriZ distutilsrZdistutils.corerZdistutils.debugrZdistutils.sysconfigrZdistutils.errorsrZdistutils.file_utilrZdistutils.utilrr r r r Zsiter rruZWINDOWS_SCHEMErrrrVrVrVrWsb      PK!ƭE E (command/__pycache__/clean.cpython-34.pyonu[ i f @s\dZddlZddlmZddlmZddlmZGdddeZdS)zBdistutils.command.clean Implements the Distutils 'clean' command.N)Command) remove_tree)logc@s[eZdZdZddddddgZdgZddZddZddZdS)cleanz-clean up temporary files from 'build' command build-base=b2base build directory (default: 'build.build-base') build-lib=N}tjj|rt|d|jqctj d|qcWn|jsy'tj |jtjd|jWqtk rYqXndS)Ndry_runz%'%s' does not exist -- can't clean itz removing '%s')ospathexistsrrr$rdebugrrrrwarnrmdirrinfoOSError)rZ directoryrrrrun1s$       z clean.run)rrr)r Nr )r r r )rNr)rNr)zallrr) __name__ __module__ __qualname__Z descriptionZ user_optionsZboolean_optionsrr#r-rrrrr s"     r) __doc__r%Zdistutils.corerZdistutils.dir_utilrZ distutilsrrrrrrs  PK!K:;;2command/__pycache__/install_headers.cpython-34.pycnu[ i f@s0dZddlmZGdddeZdS)zdistutils.command.install_headers Implements the Distutils 'install_headers' command, to install C/C++ header files to the Python include directory.)Commandc@sgeZdZdZddgZdgZdd Zd d Zd d ZddZ ddZ dS)install_headerszinstall C/C++ header files install-dir=d$directory to install header files toforcef-force installation (overwrite existing files)cCsd|_d|_g|_dS)Nr) install_dirroutfiles)selfr F/opt/alt/python34/lib64/python3.4/distutils/command/install_headers.pyinitialize_optionss  z"install_headers.initialize_optionscCs|jddddS)NZinstallrr r)zinstall_headersz install_dir)forcer)Zset_undefined_options)r r r rfinalize_optionss z install_headers.finalize_optionscCsf|jj}|sdS|j|jx9|D]1}|j||j\}}|jj|q-WdS)N) distributionheadersZmkpathr Z copy_filer append)r rheaderout_r r rrun!s  zinstall_headers.runcCs|jjpgS)N)rr)r r r r get_inputs+szinstall_headers.get_inputscCs|jS)N)r )r r r r get_outputs.szinstall_headers.get_outputsN)rrr)zforcerr ) __name__ __module__ __qualname__Z descriptionZ user_optionsZboolean_optionsrrrrrr r r rr s      rN)__doc__Zdistutils.corerrr r r rsPK!F_7+7+)command/__pycache__/config.cpython-34.pycnu[ h f$3@sdZddlZddlZddlZddlmZddlmZddlm Z ddl m Z idd6d d 6Z Gd d d eZ dd dZdS)adistutils.command.config Implements the Distutils 'config' command, a (mostly) empty command class that exists mainly to be sub-classed by specific module distributions and applications. The idea is that while every "config" command is different, at least they're all named the same, and users always see "config" in the list of standard commands. Also, this is a good place to put common configure-like tasks: "try to compile this C code", or "figure out where this header file lives". N)Command)DistutilsExecError)customize_compiler)logz.ccz.cxxzc++c @sieZdZdZd>d?d@dAdBdCdDdEdFg ZddZddZddZd d!Zd"d#Z d$d%Z d&d'Z d(d)Z d*d+Z dddd,d-d.Zdddd,d/d0Zddd,d1d2Zddddd,d3d4Zddddd,d5d6Zddddd7d7d8d9Zdddgd:d;Zddd,d<d=ZdS)Gconfigzprepare to build compiler=Nspecify the compiler typecc=specify the compiler executable include-dirs=I.list of directories to search for header filesdefine=DC preprocessor macros to defineundef=U!C preprocessor macros to undefine libraries=l!external C libraries to link with library-dirs=L.directories to search for external C librariesnoisy1show every action (compile, link, run, ...) taken dump-source=dump generated source files before attempting to compile themcCsLd|_d|_d|_d|_d|_d|_d|_g|_dS)N)compilerZcc include_dirs libraries library_dirsr dump_source temp_files)selfr'=/opt/alt/python34/lib64/python3.4/distutils/command/config.pyinitialize_options3s       zconfig.initialize_optionscCs|jdkr'|jjpg|_n-t|jtrT|jjtj|_n|jdkrog|_n$t|jtr|jg|_n|jdkrg|_n-t|jtr|jjtj|_ndS)N) r!Z distribution isinstancestrsplitospathsepr"r#)r&r'r'r(finalize_optionsBs  zconfig.finalize_optionscCsdS)Nr')r&r'r'r(runRsz config.runcCsddlm}m}t|j|s|d|jd|jdd|_t|j|jrx|jj|jn|j r|jj |j n|j r|jj |j qndS)z^Check that 'self.compiler' really is a CCompiler object; if not, make it one. r) CCompiler new_compilerr dry_runZforcerN) distutils.ccompilerr1r2r*r r3rr!Zset_include_dirsr"Z set_librariesr#Zset_library_dirs)r&r1r2r'r'r(_check_compilerYs    zconfig._check_compilercCsdt|}t|d}|rUx|D]}|jd|q*W|jdn|j||ddkr|jdn|j|S)NZ _configtestwz#include <%s>  r)LANG_EXTopenwriteclose)r&bodyheaderslangfilenamefileheaderr'r'r(_gen_temp_sourcefileks   zconfig._gen_temp_sourcefilecCsT|j|||}d}|jj||g|jj||d|||fS)Nz _configtest.ir!)rCr%extendr Z preprocess)r&r=r>r!r?srcoutr'r'r( _preprocessxs zconfig._preprocesscCs|j|||}|jr2t|d|n|jj|g\}|jj||g|jj|gd|||fS)Nzcompiling '%s':r!)rCr$ dump_filer Zobject_filenamesr%rDcompile)r&r=r>r!r?rEobjr'r'r(_compiles zconfig._compilec Cs|j||||\}}tjjtjj|d} |jj|g| d|d|d||jjdk r| |jj} n|jj | ||| fS)Nrr"r#Z target_lang) rKr-pathsplitextbasenamer Zlink_executableZ exe_extensionr%append) r&r=r>r!r"r#r?rErJprogr'r'r(_links"z config._linkc Gso|s|j}g|_ntjddj|x4|D],}ytj|Wq;tk rfYq;Xq;WdS)Nz removing: %s )r%rinfojoinr-removeOSError)r& filenamesr@r'r'r(_cleans    z config._cleanrc Cscddlm}|jd}y|j||||Wn|k rTd}YnX|j|S)aQConstruct a source file from 'body' (a string containing lines of C/C++ code) and 'headers' (a list of header files to include) and run it through the preprocessor. Return true if the preprocessor succeeded, false if there were any errors. ('body' probably isn't of much use, but what the heck.) r) CompileErrorTF)r4rYr5rGrX)r&r=r>r!r?rYokr'r'r(try_cpps    zconfig.try_cppc Cs|j|j||||\}}t|trItj|}nt|}d} x9|j} | dkrzPn|j| r^d} Pq^q^W|j |j | S)aConstruct a source file (just like 'try_cpp()'), run it through the preprocessor, and return true if any line of the output matches 'pattern'. 'pattern' should either be a compiled regex object or a string containing a regex. If both 'body' and 'headers' are None, preprocesses an empty file -- which can be useful to determine the symbols the preprocessor and compiler set by default. FT) r5rGr*r+rerIr:readlinesearchr<rX) r&patternr=r>r!r?rErFrAmatchliner'r'r( search_cpps      zconfig.search_cppc Cs|ddlm}|jy |j||||d}Wn|k rTd}YnXtj|rgdpjd|j|S)zwTry to compile a source file built from 'body' and 'headers'. Return true on success, false otherwise. r)rYTFzsuccess!zfailure.)r4rYr5rKrrSrX)r&r=r>r!r?rYrZr'r'r( try_compiles     zconfig.try_compilec Csddlm}m}|jy&|j||||||d} Wn||fk rfd} YnXtj| rydp|d|j| S)zTry to compile and link a source file, built from 'body' and 'headers', to executable form. Return true on success, false otherwise. r)rY LinkErrorTFzsuccess!zfailure.)r4rYrer5rQrrSrX) r&r=r>r!r"r#r?rYrerZr'r'r(try_links     zconfig.try_linkc Csddlm}m}|jyA|j||||||\} } } |j| gd} Wn!||tfk rd} YnXtj| rdpd|j | S)zTry to compile, link to an executable, and run a program built from 'body' and 'headers'. Return true on success, false otherwise. r)rYreTFzsuccess!zfailure.) r4rYrer5rQZspawnrrrSrX) r&r=r>r!r"r#r?rYrerErJZexerZr'r'r(try_runs    zconfig.try_runrc Cs|jg}|r*|jd|n|jd|rQ|jd|n|jd||jddj|d}|j|||||S)aDetermine if function 'func' is available by constructing a source file that refers to 'func', and compiles and links it. If everything succeeds, returns true; otherwise returns false. The constructed source file starts out by including the header files listed in 'headers'. If 'decl' is true, it then declares 'func' (as "int func()"); you probably shouldn't supply 'headers' and set 'decl' true in the same call, or you might get errors about a conflicting declarations for 'func'. Finally, the constructed 'main()' function either references 'func' or (if 'call' is true) calls it. 'libraries' and 'library_dirs' are used when linking. z int %s ();z int main () {z %s();z %s;}r7)r5rOrTrf) r&funcr>r!r"r#Zdeclcallr=r'r'r( check_funcs   zconfig.check_funccCs*|j|jd|||g||S)aDetermine if 'library' is available to be linked against, without actually checking that any particular symbols are provided by it. 'headers' will be used in constructing the source file to be compiled, but the only effect of this is to check if all the header files listed are available. Any libraries listed in 'other_libraries' will be included in the link, in case 'library' has symbols that depend on other libraries. zint main (void) { })r5rf)r&Zlibraryr#r>r!Zother_librariesr'r'r( check_lib6s zconfig.check_libcCs|jddd|gd|S)zDetermine if the system header file named by 'header_file' exists and can be found by the preprocessor; return true if so, false otherwise. r=z /* No body */r>r!)r[)r&rBr!r#r?r'r'r( check_headerDszconfig.check_header)rNr )r Nr )r r r)rrr)rrr)rrr)rrr)znoisyNr)rNr)__name__ __module__ __qualname__Z descriptionZ user_optionsr)r/r0r5rCrGrKrQrXr[rcrdrfrgrkrlrmr'r'r'r(rsT             rc Csb|dkr tjd|n tj|t|}ztj|jWd|jXdS)zjDumps a file content into log.info. If head is not None, will be dumped before the file content. Nz%s)rrSr:readr<)r@headrAr'r'r(rHNs   rH)__doc__sysr-r]Zdistutils.corerZdistutils.errorsrZdistutils.sysconfigrZ distutilsrr9rrHr'r'r'r( s$:PK!/6(command/__pycache__/bdist.cpython-34.pyonu[ i fp@sbdZddlZddlmZddlTddlmZddZGdd d eZdS) zidistutils.command.bdist Implements the Distutils 'bdist' command (create a built [binary] distribution).N)Command)*) get_platformcCslddlm}g}x6tjD]+}|jd|dtj|dfq W||}|jddS)zFPrint list of available formats (arguments to "--format" option). r) FancyGetoptzformats=Nz'List of available distribution formats:)Zdistutils.fancy_getoptrbdistformat_commandsappendformat_commandZ print_help)rformatsformatZpretty_printerr d6d?d 6d@d!6dAd6dBd"6Z d.d/Z d0d1Zd2d3Zd S)Crz$create a built (binary) distribution bdist-base=b4temporary directory for creating built distributionsz plat-name=pz;platform name to embed in generated filenames (default: %s)formats=N/formats for distribution (comma-separated list) dist-dir=d=directory to put final built distributions in [default: dist] skip-build2skip rebuilding everything (for testing/debugging)owner=u@Owner name used when creating a tar file [default: current user]group=gAGroup name used when creating a tar file [default: current group]z help-formatsz$lists available distribution formats bdist_rpmZgztarposixzipntZrpmZbztarZztarZtarZwininstZmsiRPM distribution bdist_dumbgzip'ed tar filebzip2'ed tar filecompressed tar filetar file bdist_wininstWindows executable installerZIP file bdist_msiMicrosoft InstallercCsCd|_d|_d|_d|_d|_d|_d|_dS)Nr) bdist_base plat_namer dist_dir skip_buildgroupowner)selfr r rinitialize_optionsPs      zbdist.initialize_optionsc Cs|jdkr?|jr't|_q?|jdj|_n|jdkr|jdj}tjj|d|j|_n|j d|j dkry|j tj g|_ Wqt k rtdtj YqXn|jdkrd|_ndS)NZbuildzbdist.r z;don't know how to create built distributions on platform %sZdist)r1r3rZget_finalized_commandr0 build_baseospathjoinZensure_string_listr default_formatnameKeyErrorZDistutilsPlatformErrorr2)r6r8r r rfinalize_optionsYs$    zbdist.finalize_optionsc Csg}xR|jD]G}y|j|j|dWqtk rVtd|YqXqWxtt|jD]}||}|j|}||jkr|j||_ n|dkr|j |_ |j |_ n|||ddkrd|_ n|j |qqWdS)Nrzinvalid format '%s'r&r)r r r r>ZDistutilsOptionErrorrangelenZreinitialize_commandno_format_optionr r5r4Z keep_tempZ run_command)r6Zcommandsr iZcmd_nameZsub_cmdr r rrunus"     z bdist.run)rrr)rNr)rrr)rNr)rrr)rrr )r!)r!r%) bdist_dumbr')rEr()rEr))rEr*)r+r,)rEr-)r.r/)__name__ __module__ __qualname__Z descriptionrZ user_optionsZboolean_optionsrZ help_optionsrBr<rr r7r?rDr r r rrsH         r) __doc__r9Zdistutils.corerZdistutils.errorsZdistutils.utilrrrr r r rs    PK!eC"C"0command/__pycache__/bdist_wininst.cpython-34.pyonu[ i f0:@sdZddlZddlZddlmZddlmZddlmZm Z ddl Tddl m Z ddl mZGd d d eZdS) zzdistutils.command.bdist_wininst Implements the Distutils 'bdist_wininst' command: create a windows installer exe-program.N)Command) get_platform) create_tree remove_tree)*)get_python_version)logc@seZdZdZd4dddefdd d d fd dd dfd5d6d7d8d9d:d;d<d=g ZddddgZd&d'Zd(d)Zd*d+Z d,d-Z dd.d/Z d0d1Z d2d3Z dS)> bdist_wininstz-create an executable installer for MS Windows bdist-dir=N1temporary directory for creating the distributionz plat-name=pz;platform name to embed in generated filenames (default: %s)z keep-tempkz/keep the pseudo-installation tree around after z!creating the distribution archiveztarget-version=z!require a specific python versionz on the target systemno-target-compilec/do not compile .py to .pyc on the target systemno-target-optimizeo:do not compile .py to .pyo (optimized)on the target system dist-dir=d-directory to put final built distributions inbitmap=b>bitmap to use for the installer instead of python-powered logotitle=t?title to display on the installer background instead of default skip-build2skip rebuilding everything (for testing/debugging)install-script=Tbasename of installation script to be run afterinstallation or before deinstallationpre-install-script={Fully qualified filename of a script to be run before any files are installed. This script need not be in the distributionuser-access-control=specify Vista's UAC handling - 'none'/default=no handling, 'auto'=use UAC if target Python installed for all users, 'force'=always use UACcCsyd|_d|_d|_d|_d|_d|_d|_d|_d|_d|_ d|_ d|_ d|_ dS)Nr) bdist_dir plat_name keep_tempno_target_compileno_target_optimizetarget_versiondist_dirbitmaptitle skip_buildinstall_scriptpre_install_scriptuser_access_control)selfr3D/opt/alt/python34/lib64/python3.4/distutils/command/bdist_wininst.pyinitialize_options:s            z bdist_wininst.initialize_optionscCs\|jdd |jdkr|jrR|jrR|jjd}|j|_n|jdj}tj j |d|_n|j sd|_ n|j r|jj rt }|j r|j |krtd|fn||_ n|jdd d |jrXxI|jjD]%}|jtj j|krPqqWtd|jndS) Nbdistr.ZwininstzMtarget version can only be %s, or the '--skip-build' option must be specifiedr+r&z(install_script '%s' not found in scripts) skip_buildr8)dist_dirr9) plat_namer:)Zset_undefined_optionsr%r.r& distributionZget_command_objget_finalized_command bdist_baseospathjoinr*has_ext_modulesrZDistutilsOptionErrorr/scriptsbasename)r2r6r=Z short_versionscriptr3r3r4finalize_optionsJs4      zbdist_wininst.finalize_optionsc Cstjdkr<|jjs-|jjr<tdn|jsU|jdn|jddd}|j |_ |j|_d|_ |j |_ |jd}d|_ d|_|jjr0|j}|stjdd }nd |j |f}|jd}tjj|jd ||_nxGdD]?}|j}|dkrb|d}nt|d||q7Wtjd|j |jtjjdtjj|j d|jtjd=ddlm}|} |jj } |j!| dd|j } |j"| | |j#|jjrDt$} nd} |jj%j&d| |j'| ftj(d| tj)| |j*st+|j d|j,ndS)Nwin32z^distribution contains extensions and/or C libraries; must be compiled on a Windows 32 platformbuildinstallZreinit_subcommandsr install_libz.%s-%slibpurelibplatlibheadersrBdataz/Include/$dist_nameZinstall_zinstalling to %sZPURELIB)mktempzipZroot_diranyr zremoving temporary file '%s'dry_run)zpurelibzplatlibrOzscriptszdata)-sysplatformr;rAZhas_c_librariesZDistutilsPlatformErrorr.Z run_commandZreinitialize_commandr%rootZwarn_dirr&compileoptimizer*versionr<r>r?r@Z build_baseZ build_libuppersetattrrinfoZensure_finalizedinsertrunZtempfilerQ get_fullnameZ make_archive create_exer,rZ dist_filesappendget_installer_filenamedebugremover'rrT) r2rHrJr*Zplat_specifierrGkeyvaluerQZarchive_basenamefullnamearcnameZ pyversionr3r3r4r_psd               %       zbdist_wininst.runc Csg}|jj}|jd|jp+dd}dd}x~dddd d d d d gD]^}t||d}|r]|d|j||f}|jd|||fq]q]W|jd|jr|jd|jn|jd|||jd|j |jd|j |j rM|jd|j n|j rm|jd|j n|j p|jj }|jd||ddl }ddl} d|j|j | jf} |jd| dj|S)Nz [metadata]r7 cSs|jddS)Nrjz\n)replace)sr3r3r4escapesz)bdist_wininst.get_inidata..escapeZauthorZ author_email descriptionZ maintainerZmaintainer_emailnameZurlrZz %s: %sz%s=%sz [Setup]zinstall_script=%szinfo=%sztarget_compile=%dztarget_optimize=%dztarget_version=%szuser_access_control=%sztitle=%srzBuilt %s with distutils-%sz build_info=%s)r;metadatarbZlong_descriptiongetattr capitalizer/r(r)r*r1r-r`time distutilsZctime __version__r@) r2linesrpr]rmrorPr-rsrtZ build_infor3r3r4 get_inidatas<   $      zbdist_wininst.get_inidatac Csddl}|j|j|j}|j|}|jd||rrt|dj}t|}nd}t|d} | j |j |r| j |nt |t r|j d}n|d}|jr+t|jddd } | jj d } WdQX|| d }n |d}| j ||jd d t||} | j | | j t|djdS) Nrz creating %srbwbmbcssrencodingzlatin-1s zr?r@r+r&)r2rhrr3r3r4rc$s z$bdist_wininst.get_installer_filenamec Csddlm}t}|jrm|j|krm|j|krL|}qv|jdkrdd}qvd}n |}tjjt}|jdkr|jdddkr|jdd}nd }tjj |d ||f}t |d }z|j SWd|j XdS) Nr)get_build_versionz2.4g@gffffff@rFrKwinr7zwininst-%.1f%s.exerx) Zdistutils.msvccompilerrrr*r>r?dirname__file__r&r@r~rclose)r2rZ cur_versionZbvZ directoryZsfixfilenamefr3r3r4r1s$     (zbdist_wininst.get_exe_bytes)r Nr )rrr)rrr)rrr)rrr)rrr)rNr)rNr )r!Nr")r#Nr$)__name__ __module__ __qualname__rnrZ user_optionsZboolean_optionsr5rEr_rwrarcrr3r3r3r4r sN       & Q .5 r )__doc__rUr>Zdistutils.corerZdistutils.utilrZdistutils.dir_utilrrZdistutils.errorsZdistutils.sysconfigrrtrr r3r3r3r4s PK!F_7+7+)command/__pycache__/config.cpython-34.pyonu[ h f$3@sdZddlZddlZddlZddlmZddlmZddlm Z ddl m Z idd6d d 6Z Gd d d eZ dd dZdS)adistutils.command.config Implements the Distutils 'config' command, a (mostly) empty command class that exists mainly to be sub-classed by specific module distributions and applications. The idea is that while every "config" command is different, at least they're all named the same, and users always see "config" in the list of standard commands. Also, this is a good place to put common configure-like tasks: "try to compile this C code", or "figure out where this header file lives". N)Command)DistutilsExecError)customize_compiler)logz.ccz.cxxzc++c @sieZdZdZd>d?d@dAdBdCdDdEdFg ZddZddZddZd d!Zd"d#Z d$d%Z d&d'Z d(d)Z d*d+Z dddd,d-d.Zdddd,d/d0Zddd,d1d2Zddddd,d3d4Zddddd,d5d6Zddddd7d7d8d9Zdddgd:d;Zddd,d<d=ZdS)Gconfigzprepare to build compiler=Nspecify the compiler typecc=specify the compiler executable include-dirs=I.list of directories to search for header filesdefine=DC preprocessor macros to defineundef=U!C preprocessor macros to undefine libraries=l!external C libraries to link with library-dirs=L.directories to search for external C librariesnoisy1show every action (compile, link, run, ...) taken dump-source=dump generated source files before attempting to compile themcCsLd|_d|_d|_d|_d|_d|_d|_g|_dS)N)compilerZcc include_dirs libraries library_dirsr dump_source temp_files)selfr'=/opt/alt/python34/lib64/python3.4/distutils/command/config.pyinitialize_options3s       zconfig.initialize_optionscCs|jdkr'|jjpg|_n-t|jtrT|jjtj|_n|jdkrog|_n$t|jtr|jg|_n|jdkrg|_n-t|jtr|jjtj|_ndS)N) r!Z distribution isinstancestrsplitospathsepr"r#)r&r'r'r(finalize_optionsBs  zconfig.finalize_optionscCsdS)Nr')r&r'r'r(runRsz config.runcCsddlm}m}t|j|s|d|jd|jdd|_t|j|jrx|jj|jn|j r|jj |j n|j r|jj |j qndS)z^Check that 'self.compiler' really is a CCompiler object; if not, make it one. r) CCompiler new_compilerr dry_runZforcerN) distutils.ccompilerr1r2r*r r3rr!Zset_include_dirsr"Z set_librariesr#Zset_library_dirs)r&r1r2r'r'r(_check_compilerYs    zconfig._check_compilercCsdt|}t|d}|rUx|D]}|jd|q*W|jdn|j||ddkr|jdn|j|S)NZ _configtestwz#include <%s>  r)LANG_EXTopenwriteclose)r&bodyheaderslangfilenamefileheaderr'r'r(_gen_temp_sourcefileks   zconfig._gen_temp_sourcefilecCsT|j|||}d}|jj||g|jj||d|||fS)Nz _configtest.ir!)rCr%extendr Z preprocess)r&r=r>r!r?srcoutr'r'r( _preprocessxs zconfig._preprocesscCs|j|||}|jr2t|d|n|jj|g\}|jj||g|jj|gd|||fS)Nzcompiling '%s':r!)rCr$ dump_filer Zobject_filenamesr%rDcompile)r&r=r>r!r?rEobjr'r'r(_compiles zconfig._compilec Cs|j||||\}}tjjtjj|d} |jj|g| d|d|d||jjdk r| |jj} n|jj | ||| fS)Nrr"r#Z target_lang) rKr-pathsplitextbasenamer Zlink_executableZ exe_extensionr%append) r&r=r>r!r"r#r?rErJprogr'r'r(_links"z config._linkc Gso|s|j}g|_ntjddj|x4|D],}ytj|Wq;tk rfYq;Xq;WdS)Nz removing: %s )r%rinfojoinr-removeOSError)r& filenamesr@r'r'r(_cleans    z config._cleanrc Cscddlm}|jd}y|j||||Wn|k rTd}YnX|j|S)aQConstruct a source file from 'body' (a string containing lines of C/C++ code) and 'headers' (a list of header files to include) and run it through the preprocessor. Return true if the preprocessor succeeded, false if there were any errors. ('body' probably isn't of much use, but what the heck.) r) CompileErrorTF)r4rYr5rGrX)r&r=r>r!r?rYokr'r'r(try_cpps    zconfig.try_cppc Cs|j|j||||\}}t|trItj|}nt|}d} x9|j} | dkrzPn|j| r^d} Pq^q^W|j |j | S)aConstruct a source file (just like 'try_cpp()'), run it through the preprocessor, and return true if any line of the output matches 'pattern'. 'pattern' should either be a compiled regex object or a string containing a regex. If both 'body' and 'headers' are None, preprocesses an empty file -- which can be useful to determine the symbols the preprocessor and compiler set by default. FT) r5rGr*r+rerIr:readlinesearchr<rX) r&patternr=r>r!r?rErFrAmatchliner'r'r( search_cpps      zconfig.search_cppc Cs|ddlm}|jy |j||||d}Wn|k rTd}YnXtj|rgdpjd|j|S)zwTry to compile a source file built from 'body' and 'headers'. Return true on success, false otherwise. r)rYTFzsuccess!zfailure.)r4rYr5rKrrSrX)r&r=r>r!r?rYrZr'r'r( try_compiles     zconfig.try_compilec Csddlm}m}|jy&|j||||||d} Wn||fk rfd} YnXtj| rydp|d|j| S)zTry to compile and link a source file, built from 'body' and 'headers', to executable form. Return true on success, false otherwise. r)rY LinkErrorTFzsuccess!zfailure.)r4rYrer5rQrrSrX) r&r=r>r!r"r#r?rYrerZr'r'r(try_links     zconfig.try_linkc Csddlm}m}|jyA|j||||||\} } } |j| gd} Wn!||tfk rd} YnXtj| rdpd|j | S)zTry to compile, link to an executable, and run a program built from 'body' and 'headers'. Return true on success, false otherwise. r)rYreTFzsuccess!zfailure.) r4rYrer5rQZspawnrrrSrX) r&r=r>r!r"r#r?rYrerErJZexerZr'r'r(try_runs    zconfig.try_runrc Cs|jg}|r*|jd|n|jd|rQ|jd|n|jd||jddj|d}|j|||||S)aDetermine if function 'func' is available by constructing a source file that refers to 'func', and compiles and links it. If everything succeeds, returns true; otherwise returns false. The constructed source file starts out by including the header files listed in 'headers'. If 'decl' is true, it then declares 'func' (as "int func()"); you probably shouldn't supply 'headers' and set 'decl' true in the same call, or you might get errors about a conflicting declarations for 'func'. Finally, the constructed 'main()' function either references 'func' or (if 'call' is true) calls it. 'libraries' and 'library_dirs' are used when linking. z int %s ();z int main () {z %s();z %s;}r7)r5rOrTrf) r&funcr>r!r"r#Zdeclcallr=r'r'r( check_funcs   zconfig.check_funccCs*|j|jd|||g||S)aDetermine if 'library' is available to be linked against, without actually checking that any particular symbols are provided by it. 'headers' will be used in constructing the source file to be compiled, but the only effect of this is to check if all the header files listed are available. Any libraries listed in 'other_libraries' will be included in the link, in case 'library' has symbols that depend on other libraries. zint main (void) { })r5rf)r&Zlibraryr#r>r!Zother_librariesr'r'r( check_lib6s zconfig.check_libcCs|jddd|gd|S)zDetermine if the system header file named by 'header_file' exists and can be found by the preprocessor; return true if so, false otherwise. r=z /* No body */r>r!)r[)r&rBr!r#r?r'r'r( check_headerDszconfig.check_header)rNr )r Nr )r r r)rrr)rrr)rrr)rrr)znoisyNr)rNr)__name__ __module__ __qualname__Z descriptionZ user_optionsr)r/r0r5rCrGrKrQrXr[rcrdrfrgrkrlrmr'r'r'r(rsT             rc Csb|dkr tjd|n tj|t|}ztj|jWd|jXdS)zjDumps a file content into log.info. If head is not None, will be dumped before the file content. Nz%s)rrSr:readr<)r@headrAr'r'r(rHNs   rH)__doc__sysr-r]Zdistutils.corerZdistutils.errorsrZdistutils.sysconfigrZ distutilsrr9rrHr'r'r'r( s$:PK!77,command/__pycache__/bdist_rpm.cpython-34.pycnu[ h fT@sdZddlZddlZddlZddlmZddlmZddlm Z ddl m Z ddl Tddl mZdd lmZGd d d eZdS) zwdistutils.command.bdist_rpm Implements the Distutils 'bdist_rpm' command (create RPM source and binary distributions).N)Command)DEBUG) get_platform) write_file)*)get_python_version)logc+@seZdZdZdfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|d}d~ddddddddddddddddg)Zd4d9d=d2dUgZid4d76d9d;6d=d?6ZdXdYZdZd[Zd\d]Z d^d_Z d`daZ dbdcZ dddeZ dS) bdist_rpmzcreate an RPM distribution bdist-base=N/base directory for creating built distributions rpm-base=dbase directory for creating RPMs (defaults to "rpm" under --bdist-base; must be specified for RPM 2) dist-dir=dDdirectory to put final RPM files in (and .spec files if --spec-only)python=Mpath to Python interpreter to hard-code in the .spec file (default: "python") fix-pythonLhard-code the exact path to the current Python interpreter in the .spec file spec-onlyonly regenerate spec file source-onlyonly generate source RPM binary-onlyonly generate binary RPM use-bzip27use bzip2 instead of gzip to create source distributiondistribution-name=gname of the (Linux) distribution to which this RPM applies (*not* the name of the module distribution!)group=9package classification [default: "Development/Libraries"]release=RPM release numberserial=RPM serial numbervendor=aRPM "vendor" (eg. "Joe Blow ") [default: maintainer or author from setup script] packager=ARPM packager (eg. "Jane Doe ")[default: vendor] doc-files=6list of documentation files (space or comma-separated) changelog= RPM changelogicon=name of icon file provides=%capabilities provided by this package requires=%capabilities required by this package conflicts=-capabilities which conflict with this packagebuild-requires=+capabilities required to build this package obsoletes=*capabilities made obsolete by this package no-autoreq+do not automatically calculate dependencies keep-tempk"don't clean up RPM build directory no-keep-temp&clean up RPM build directory [default]use-rpm-opt-flags8compile with RPM_OPT_FLAGS when building from source RPMno-rpm-opt-flags&do not pass any RPM CFLAGS to compiler rpm3-mode"RPM 3 compatibility mode (default) rpm2-modeRPM 2 compatibility mode prep-script=3Specify a script for the PREP phase of RPM building build-script=4Specify a script for the BUILD phase of RPM building pre-install=:Specify a script for the pre-INSTALL phase of RPM buildinginstall-script=6Specify a script for the INSTALL phase of RPM building post-install=;Specify a script for the post-INSTALL phase of RPM buildingpre-uninstall=rnroREADME README.txtrk1rlrirprqrrrsrtrurvrwrxryrzr|r}r~rrr)rr)Z ensure_stringrZ get_contactZget_contact_emailZensure_string_list isinstancerolistrrexistsappend_format_changelogrpZensure_filename)rZreadmerrrrs>    !                  zbdist_rpm.finalize_package_datac CsUtrStdtd|jtd|jtd|jtd|jn|jru|j}|j|nNi}x;d)D]3}t j j |j |||<|j||qW|d}t j j |d |j j}|jt||jfd ||jrdS|j jdd}|jd }|jrRdg|_n dg|_|jd ||j _|jd}|d}|j|||jrt j j|jr|j|j|qtd|jntjddg} t j jds%t j jdr1dg} n|jrJ| jdn&|j rc| jdn | jd| j!dd|j"g|j#r| j!ddt j j$|j gn|j%s| jdn|j&r| jdn| j|d} | d } d!| d"} d#| | |f} t j'| }zg}d}xn|j(}|scPn|j)j*}t+|d$kst,|j|d%|dkrM|d}qMqMW|j-}|rt.d&t/| nWd|j-X|j0| |j1sQ|j j2r&t3}nd'}|j st j j |d |}t j j|sft,|j4||jt j j |j|}|j jjd(||fn|jsQx|D]}t j j |d |}t j j|r|j4||jt j j |jt j j5|}|j jjd(||fqqWqQndS)*Nzbefore _get_package_data():zvendor =z packager =z doc_files =z changelog =SOURCESSPECSBUILDRPMSSRPMSz%s.specz writing '%s'sdistZbztarZgztarrzicon file '%s' does not existz building RPMsrz/usr/bin/rpmbuildz /bin/rpmbuildZrpmbuildz-bsz-bbz-baz--definez __python %sz _topdir %sz--cleanz--quietz%{name}-%{version}-%{release}z.src.rpmz%{arch}/z .%{arch}.rpmz%rpm -q --qf '%s %s\n' --specfile '%s'r_zFailed to execute: %sanyr )rrrrr)6rprintrmrnrorprerbZmkpathrrrrarget_nameZexecuter_make_spec_fileZ dist_filesZreinitialize_commandrhZformatsZ run_commandZget_archive_filesZ copy_filerqrZDistutilsFileErrorrinforgrrfextendrcrabspathrr\popenreadlinestripsplitlenAssertionErrorcloseZDistutilsExecErrorreprZspawnZdry_runrrZ move_filebasename)rZspec_dirZrpm_dirrZ spec_pathZsaved_dist_filesrsourceZ source_dirZrpm_cmdZ nvr_stringZsrc_rpmZ non_src_rpmZq_cmdoutZ binary_rpmsZ source_rpmlinelZstatusZ pyversionZsrpmfilenamerrrrruns                                         z bdist_rpm.runcCs"tjj|jtjj|S)N)rrrrbr)rrrrr _dist_pathszbdist_rpm._dist_pathc Csod|jjd|jjjddd|jjd|jjdddd|jjg}tjd }d jd d |j D}d }d}|j||}||kr|j d|j d|d n|j dddg|j r|j dn |j d|j d|jj d|jddg|js|jjs|j dqn|j d|jx{dKD]s}t||j}t|tr|j d"|d#j|fq|d$k r|j d"||fqqW|jjd%krC|j d&|jjn|jrc|j d'|jn|jr|j d(d#j|jn|jr|j d)tjj|jn|jr|j d*n|j dd+|jjgd,|jtjjtj d-f}d.|} |j!r6d/| } nd0|} dLd4d5| fd6d7| fdMdNdOdPdQdRg } x| D]\} } }t|| }|s|rz|j ddE| g|r|j t"|dFj#j$d q|j |qzqzW|j ddGdHg|j%r<|j dId#j|j%n|j&rk|j ddJg|j |j&n|S)SziGenerate the text of an RPM spec file and return it as a list of strings (one per line). z %define name z%define version -_z%define unmangled_version z%define release z Summary: zrpm --eval %{__os_install_post} cSs g|]}d|jqS)z %s \)r).0rrrr s z-bdist_rpm._make_spec_file..zbrp-python-bytecompile \ z%brp-python-bytecompile %{__python} \ z2# Workaround for http://bugs.python.org/issue14443z%define __os_install_post z Name: %{name}zVersion: %{version}zRelease: %{release}z-Source0: %{name}-%{unmangled_version}.tar.bz2z,Source0: %{name}-%{unmangled_version}.tar.gzz License: zGroup: z>BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildrootzPrefix: %{_prefix}zBuildArch: noarchz BuildArch: %sVendorPackagerProvidesRequires Conflicts Obsoletesz%s: %s NZUNKNOWNzUrl: zDistribution: zBuildRequires: zIcon: z AutoReq: 0z %descriptionz%s %srz%s buildzenv CFLAGS="$RPM_OPT_FLAGS" z>%s install -O1 --root=$RPM_BUILD_ROOT --record=INSTALLED_FILESr{rr&%setup -n %{name}-%{unmangled_version}ZbuildrsZinstallrtcleanrurm -rf $RPM_BUILD_ROOT verifyscriptrvprerwpostrxpreunrypostunrz%rz%files -f INSTALLED_FILESz%defattr(-,root,root)z%doc z %changelog)rrrrrr)zprepz prep_scriptr)rz clean_scriptr)rz verify_scriptN)rz pre_installN)rz post_installN)rz pre_uninstallN)rzpost_uninstallN)'rrZ get_versionreplacerkZget_description subprocessZ getoutputr splitlinesrrrhZ get_licenserjrrgetattrlowerrrZget_urlrirrqrrrrZget_long_descriptionrcrargvropenreadrrorp)rZ spec_fileZ vendor_hookZproblemZfixedZ fixed_hookZfieldvalZdef_setup_callZ def_buildZ install_cmdZscript_optionsZrpm_optattrdefaultrrrrs          #     # &       (     zbdist_rpm._make_spec_filecCs|s |Sg}x|jjdD]i}|j}|ddkr^|jd|gq&|ddkr~|j|q&|jd|q&W|ds|d=n|S)zKFormat the changelog correctly and convert it to a list of strings rrrrrz )rrrr)rrpZ new_changelogrrrrr3s   zbdist_rpm._format_changelog)r Nr )r Nr )rrr)rNr)rNr)rNr)rNr)rNr)rNr)rNr)rNr )r!Nr")r#Nr$)r%Nr&)r'Nr()r)Nr*)r+Nr,)r-Nr.)r/Nr0)r1Nr2)r3Nr4)r5Nr6)r7Nr8)r9Nr:)r;r<r=)r>Nr?)r@NrA)rBNrC)rDNrE)rFNrG)rHNrI)rJNrK)rLNrM)rNNrO)rPNrQ)rRNrS)rTNrU)rVNrW)rXNrY)rZNr[)zquietr]r^)__name__ __module__ __qualname__Z descriptionZ user_optionsZboolean_optionsZ negative_optrrrrrrrrrrrr s       -  -  r )__doc__rrrZdistutils.corerZdistutils.debugrZdistutils.utilrZdistutils.file_utilrZdistutils.errorsZdistutils.sysconfigrZ distutilsrr rrrrs$ PK!B""0command/__pycache__/bdist_wininst.cpython-34.pycnu[ i f0:@sdZddlZddlZddlmZddlmZddlmZm Z ddl Tddl m Z ddl mZGd d d eZdS) zzdistutils.command.bdist_wininst Implements the Distutils 'bdist_wininst' command: create a windows installer exe-program.N)Command) get_platform) create_tree remove_tree)*)get_python_version)logc@seZdZdZd4dddefdd d d fd dd dfd5d6d7d8d9d:d;d<d=g ZddddgZd&d'Zd(d)Zd*d+Z d,d-Z dd.d/Z d0d1Z d2d3Z dS)> bdist_wininstz-create an executable installer for MS Windows bdist-dir=N1temporary directory for creating the distributionz plat-name=pz;platform name to embed in generated filenames (default: %s)z keep-tempkz/keep the pseudo-installation tree around after z!creating the distribution archiveztarget-version=z!require a specific python versionz on the target systemno-target-compilec/do not compile .py to .pyc on the target systemno-target-optimizeo:do not compile .py to .pyo (optimized)on the target system dist-dir=d-directory to put final built distributions inbitmap=b>bitmap to use for the installer instead of python-powered logotitle=t?title to display on the installer background instead of default skip-build2skip rebuilding everything (for testing/debugging)install-script=Tbasename of installation script to be run afterinstallation or before deinstallationpre-install-script={Fully qualified filename of a script to be run before any files are installed. This script need not be in the distributionuser-access-control=specify Vista's UAC handling - 'none'/default=no handling, 'auto'=use UAC if target Python installed for all users, 'force'=always use UACcCsyd|_d|_d|_d|_d|_d|_d|_d|_d|_d|_ d|_ d|_ d|_ dS)Nr) bdist_dir plat_name keep_tempno_target_compileno_target_optimizetarget_versiondist_dirbitmaptitle skip_buildinstall_scriptpre_install_scriptuser_access_control)selfr3D/opt/alt/python34/lib64/python3.4/distutils/command/bdist_wininst.pyinitialize_options:s            z bdist_wininst.initialize_optionscCs\|jdd |jdkr|jrR|jrR|jjd}|j|_n|jdj}tj j |d|_n|j sd|_ n|j r|jj rt }|j r|j |krtd|fn||_ n|jdd d |jrXxI|jjD]%}|jtj j|krPqqWtd|jndS) Nbdistr.ZwininstzMtarget version can only be %s, or the '--skip-build' option must be specifiedr+r&z(install_script '%s' not found in scripts) skip_buildr8)dist_dirr9) plat_namer:)Zset_undefined_optionsr%r.r& distributionZget_command_objget_finalized_command bdist_baseospathjoinr*has_ext_modulesrZDistutilsOptionErrorr/scriptsbasename)r2r6r=Z short_versionscriptr3r3r4finalize_optionsJs4      zbdist_wininst.finalize_optionsc Cstjdkr<|jjs-|jjr<tdn|jsU|jdn|jddd}|j |_ |j|_d|_ |j |_ |jd}d|_ d|_|jjrE|j}|s|jstd tjdd }nd |j |f}|jd}tjj|jd ||_nxGdD]?}|j}|dkrw|d}nt|d||qLWtjd|j |jtjjdtjj|j d|jtjd=ddlm }|} |jj!} |j"| dd|j } |j#| | |j$|jjrYt%} nd} |jj&j'd| |j(| ftj)d| tj*| |j+st,|j d|j-ndS)Nwin32z^distribution contains extensions and/or C libraries; must be compiled on a Windows 32 platformbuildinstallZreinit_subcommandsr install_libz Should have already checked thisz.%s-%slibpurelibplatlibheadersrBdataz/Include/$dist_nameZinstall_zinstalling to %sZPURELIB)mktempzipZroot_diranyr zremoving temporary file '%s'dry_run)zpurelibzplatlibrOzscriptszdata).sysplatformr;rAZhas_c_librariesZDistutilsPlatformErrorr.Z run_commandZreinitialize_commandr%rootZwarn_dirr&compileoptimizer*AssertionErrorversionr<r>r?r@Z build_baseZ build_libuppersetattrrinfoZensure_finalizedinsertrunZtempfilerQ get_fullnameZ make_archive create_exer,rZ dist_filesappendget_installer_filenamedebugremover'rrT) r2rHrJr*Zplat_specifierrGkeyvaluerQZarchive_basenamefullnamearcnameZ pyversionr3r3r4r`psf               %       zbdist_wininst.runc Csg}|jj}|jd|jp+dd}dd}x~dddd d d d d gD]^}t||d}|r]|d|j||f}|jd|||fq]q]W|jd|jr|jd|jn|jd|||jd|j |jd|j |j rM|jd|j n|j rm|jd|j n|j p|jj }|jd||ddl }ddl} d|j|j | jf} |jd| dj|S)Nz [metadata]r7 cSs|jddS)Nrkz\n)replace)sr3r3r4escapesz)bdist_wininst.get_inidata..escapeZauthorZ author_email descriptionZ maintainerZmaintainer_emailnameZurlr[z %s: %sz%s=%sz [Setup]zinstall_script=%szinfo=%sztarget_compile=%dztarget_optimize=%dztarget_version=%szuser_access_control=%sztitle=%srzBuilt %s with distutils-%sz build_info=%s)r;metadatarcZlong_descriptiongetattr capitalizer/r(r)r*r1r-ratime distutilsZctime __version__r@) r2linesrqr^rnrprPr-rtruZ build_infor3r3r4 get_inidatas<   $      zbdist_wininst.get_inidatac Csddl}|j|j|j}|j|}|jd||rrt|dj}t|}nd}t|d} | j |j |r| j |nt |t r|j d}n|d}|jr+t|jddd } | jj d } WdQX|| d }n |d}| j ||jd d t||} | j | | j t|djdS) Nrz creating %srbwbmbcssrencodingzlatin-1s zr?r@r+r&)r2rirr3r3r4rd$s z$bdist_wininst.get_installer_filenamec Csddlm}t}|jrm|j|krm|j|krL|}qv|jdkrdd}qvd}n |}tjjt}|jdkr|jdddkr|jdd}nd }tjj |d ||f}t |d }z|j SWd|j XdS) Nr)get_build_versionz2.4g@gffffff@rFrKwinr7zwininst-%.1f%s.exery) Zdistutils.msvccompilerrrr*r>r?dirname__file__r&r@rrclose)r2rZ cur_versionZbvZ directoryZsfixfilenamefr3r3r4r1s$     (zbdist_wininst.get_exe_bytes)r Nr )rrr)rrr)rrr)rrr)rrr)rNr)rNr )r!Nr")r#Nr$)__name__ __module__ __qualname__rorZ user_optionsZboolean_optionsr5rEr`rxrbrdrr3r3r3r4r sN       & Q .5 r )__doc__rUr>Zdistutils.corerZdistutils.utilrZdistutils.dir_utilrrZdistutils.errorsZdistutils.sysconfigrrurr r3r3r3r4s PK!vur7r7(command/__pycache__/sdist.cpython-34.pycnu[ h f-G@sdZddlZddlZddlZddlTddlmZddlmZddlm Z ddl m Z m Z m Z mZddlmZddlTdd lmZdd l mZdd lmZd d ZGddde ZdS)zadistutils.command.sdist Implements the Distutils 'sdist' command (create a source distribution).N)*)glob)warn)Command)dir_utildep_util file_util archive_util)TextFile)FileList)log) convert_pathcCsddlm}ddlm}g}x6|jD](}|jd|d||dfq3W|j||jddS)zoPrint all possible values for the 'formats' option (used by the "--help-formats" command-line option). r) FancyGetopt)ARCHIVE_FORMATSzformats=Nz.List of available source distribution formats:)Zdistutils.fancy_getoptrZdistutils.archive_utilrkeysappendsortZ print_help)rrformatsformatrZd?d@ZdAdBZdCdDZdEdFZdGdHZdIdJZdKdLZd S)Zsdistz6create a source distribution (tarball, zip file, etc.)cCs|jS)zYCallable used for the check sub-command. Placed here so user_options can view it)metadata_check)selfrrrchecking_metadata&szsdist.checking_metadata template=t5name of manifest template file [default: MANIFEST.in] manifest=m)name of manifest file [default: MANIFEST] use-defaultsNRinclude the default file set in the manifest [default; disable with --no-defaults] no-defaults"don't include the default file setprunespecifically exclude files/directories that should not be distributed (build tree, RCS/CVS dirs, etc.) [default; disable with --no-prune]no-prune$don't automatically exclude anything manifest-onlyoEjust regenerate the manifest and then stop (implies --force-manifest)force-manifestfkforcibly regenerate the manifest and carry on as usual. Deprecated: now the manifest is always regenerated.formats=6formats for source distribution (comma-separated list)z keep-tempkz1keep the distribution tree around after creating zarchive file(s) dist-dir=dFdirectory to put the source distribution archive(s) in [default: dist]metadata-check[Ensure that all required elements of meta-data are supplied. Warn if any missing. [default]owner=u@Owner name used when creating a tar file [default: current user]group=gAGroup name used when creating a tar file [default: current group]z help-formatsz#list available distribution formatsZgztarposixzipntcheckcCsyd|_d|_d|_d|_d|_d|_d|_d|_d|_d|_ d|_ d|_ d|_ dS)Nr) templatemanifest use_defaultsr' manifest_onlyZforce_manifestr keep_tempdist_dir archive_filesrownergroup)rrrrinitialize_optionsds            zsdist.initialize_optionsc Cs|jdkrd|_n|jdkr6d|_n|jd|jdkry|jtjg|_Wqtk rtdtjYqXnt j |j}|rt d|n|j dkrd|_ ndS)NZMANIFESTz MANIFEST.inrz}|j}|jds)| rWq)n|jj|q)W|jdS)zRead the manifest file (named by 'self.manifest') and use it to fill in 'self.filelist', the list of files to include in the source distribution. zreading manifest file '%s'#N) r rxrErstrip startswithrSrr{)rrEr|rrrr]xs  zsdist.read_manifestcCs|j|tj||d|jttdrHd}d|}nd}d|}|sntjdn tj|x_|D]W}tj j |stjd|qtj j ||}|j ||d|qW|j jj|dS) aCreate the directory tree that will become the source distribution archive. All directories implied by the filenames in 'files' are created under 'base_dir', and then we hard link or copy (if hard linking is unavailable) those files into place. Essentially, this duplicates the developer's source tree, but in a directory named after the distribution, containing only the files to be distributed. dry_runlinkZhardzmaking hard links in %s...Nzcopying files to %s...z)no files to distribute -- empty manifest?z#'%s' not a regular file -- skipping)ZmkpathrZ create_treerhasattrrOr rrxrZr[rlZ copy_filerXZmetadataZwrite_pkg_info)rrrsrr}filedestrrrmake_release_trees      zsdist.make_release_treec Cs|jj}tjj|j|}|j||jjg}d|j kr}|j j |j j |j j dnxd|j D]Y}|j ||d|d|jd|j}|j ||jjj dd|fqW||_|jstj|d|jndS) aCreate the source distribution(s). First, we create the release tree with 'make_release_tree()'; then, we create all required archive files (according to 'self.formats') from the release tree. Finally, we clean up by blowing away the release tree (unless 'self.keep_temp' is true). The list of archive files created is stored so it can be retrieved later by 'get_archive_files()'. ZtarrrKrLrrN)rXrrOrZrlrIrrSrsrrpopindexZ make_archiverKrLZ dist_filesrJrHrZ remove_treer)rrZ base_namerJZfmtrrrrrUs +    zsdist.make_distributioncCs|jS)zzReturn the list of archive files created when the command was run, or None if the command hasn't run yet. )rJ)rrrrget_archive_filesszsdist.get_archive_files)rrr)r r!r")r#Nr$)r%Nr&)zpruneNr()r)Nr*)r+r,r-)r.r/r0)r1Nr2)r4r5r6)r7Nr8)r9r:r;)r<r=r>)__name__ __module__ __qualname__Z descriptionrZ user_optionsZboolean_optionsrZ help_optionsZ negative_optrNZ sub_commandsrMrRrVrYrTr_r`rarbr\r]rrUrrrrrr"sn             ( P     * r)__doc__rOstringrtypesrwarningsrZdistutils.corerZ distutilsrrrr Zdistutils.text_filer Zdistutils.errorsZdistutils.filelistr r Zdistutils.utilr rrrrrrs    "  PK!z -command/__pycache__/bdist_dumb.cpython-34.pycnu[ h f @sdZddlZddlmZddlmZddlmZmZddl Tddl m Z ddl m Z Gd d d eZdS) zdistutils.command.bdist_dumb Implements the Distutils 'bdist_dumb' command (create a "dumb" built distribution -- i.e., just an archive to be unpacked under $prefix or $exec_prefix).N)Command) get_platform) remove_treeensure_relative)*)get_python_version)logc @seZdZdZd&dddefd'd d d dfd(d)d*d+d,g Zd ddgZidd6dd6Zd d!Zd"d#Z d$d%Z dS)- bdist_dumbz"create a "dumb" built distribution bdist-dir=d1temporary directory for creating the distributionz plat-name=pz;platform name to embed in generated filenames (default: %s)format=f0archive format to create (tar, ztar, gztar, zip)z keep-tempkz/keep the pseudo-installation tree around after z!creating the distribution archive dist-dir=-directory to put final built distributions in skip-buildN2skip rebuilding everything (for testing/debugging)relative6build the archive using relative paths(default: false)owner=u@Owner name used when creating a tar file [default: current user]group=gAGroup name used when creating a tar file [default: current group]ZgztarposixzipntcCsUd|_d|_d|_d|_d|_d|_d|_d|_d|_dS)Nr) bdist_dir plat_nameformat keep_tempdist_dir skip_buildrownergroup)selfr*A/opt/alt/python34/lib64/python3.4/distutils/command/bdist_dumb.pyinitialize_options1s        zbdist_dumb.initialize_optionscCs|jdkr<|jdj}tjj|d|_n|jdkry|jtj|_Wqt k rt dtjYqXn|j dddd dS) NZbdistZdumbz@don't know how to create dumb built distributions on platform %sr%r"r&)dist_dirr-) plat_namer.) skip_buildr/) r!Zget_finalized_command bdist_baseospathjoinr#default_formatnameKeyErrorDistutilsPlatformErrorZset_undefined_options)r)r0r*r*r+finalize_options<s  zbdist_dumb.finalize_optionsc Cs|js|jdn|jddd}|j|_|j|_d|_tjd|j|jdd|jj |j f}t j j |j|}|js|j}nm|jjr|j|jkrtdt|jt|jfn!t j j |jt|j}|j||jd |d |jd |j}|jjrnt}nd }|jjjd ||f|jst|jd|jndS)NZbuildinstallZreinit_subcommandsrzinstalling to %sz%s.%szScan't make a dumb built distribution where base and platbase are different (%s, %s)Zroot_dirr'r(anyr dry_run) r&Z run_commandZreinitialize_commandr!rootZwarn_dirrinfoZ distributionZ get_fullnamer"r1r2r3r%rZhas_ext_modulesZ install_baseZinstall_platbaser7reprrZ make_archiver#r'r(rZ dist_filesappendr$rr<)r)r9Zarchive_basenameZpseudoinstall_rootZ archive_rootfilenameZ pyversionr*r*r+runNs>             zbdist_dumb.run)r r r )rrr)rr r)rNr)zrelativeNr)rrr)rrr) __name__ __module__ __qualname__Z descriptionrZ user_optionsZboolean_optionsr4r,r8rBr*r*r*r+r s6      r )__doc__r1Zdistutils.corerZdistutils.utilrZdistutils.dir_utilrrZdistutils.errorsZdistutils.sysconfigrZ distutilsrr r*r*r*r+s  PK!6)b{ { 3command/__pycache__/install_egg_info.cpython-34.pyonu[ h f" @sdZddlmZddlmZmZddlZddlZddlZGdddeZ ddZ d d Z d d Z dS) zdistutils.command.install_egg_info Implements the Distutils 'install_egg_info' command, for installing a package's PKG-INFO metadata.)Command)logdir_utilNc@sUeZdZdZdZdgZddZdd Zd d Zd d Z dS)install_egg_infoz)Install an .egg-info file for the packagez8Install package's PKG-INFO metadata as an .egg-info file install-dir=ddirectory to install tocCs d|_dS)N) install_dir)selfr G/opt/alt/python34/lib64/python3.4/distutils/command/install_egg_info.pyinitialize_optionssz#install_egg_info.initialize_optionscCs|jdddtt|jjtt|jjtjddf}t j j |j ||_ |j g|_dS)NZ install_libr z%s-%s-py%s.egg-info) install_dirr)Zset_undefined_options to_filename safe_name distributionZget_name safe_versionZ get_versionsysversionospathjoinr targetoutputs)r basenamer r r finalize_optionssz!install_egg_info.finalize_optionsc Cs|j}tjj|rGtjj| rGtj|d|jnptjj|r||j tj |jfd|n;tjj|j s|j tj |j fd|j nt jd||jst|ddd}|jjj|WdQXndS)Ndry_runz Removing z Creating z Writing %swencodingzUTF-8)rrrisdirislinkrZ remove_treerexistsZexecuteunlinkr makedirsrinfoopenrZmetadataZwrite_pkg_file)r rfr r r run s %# zinstall_egg_info.runcCs|jS)N)r)r r r r get_outputs.szinstall_egg_info.get_outputsN)rrr) __name__ __module__ __qualname____doc__Z descriptionZ user_optionsr rr(r)r r r r r s    rcCstjdd|S)zConvert an arbitrary string to a standard distribution name Any runs of non-alphanumeric/. characters are replaced with a single '-'. z[^A-Za-z0-9.]+-)resub)namer r r r6srcCs%|jdd}tjdd|S)zConvert an arbitrary string to a standard version string Spaces become dots, and all other non-alphanumeric characters become dashes, with runs of multiple dashes condensed to a single dash.  .z[^A-Za-z0-9.]+r.)replacer/r0)rr r r r>srcCs|jddS)z|Convert a project or version name to its filename-escaped form Any '-' characters are currently replaced with '_'. r._)r4)r1r r r rHsr) r-Z distutils.cmdrZ distutilsrrrrr/rrrrr r r r s$+  PK!.l,(command/__pycache__/build.cpython-34.pyonu[ h f%@stdZddlZddlZddlmZddlmZddlmZddZ Gdd d eZ dS) zBdistutils.command.build Implements the Distutils 'build' command.N)Command)DistutilsOptionError) get_platformcCsddlm}|dS)Nr)show_compilers)Zdistutils.ccompilerr)rrbuildz"build everything needed to install build-base=b base directory for build librarybuild-purelib=N2build directory for platform-neutral distributionsbuild-platlib=3build directory for platform-specific distributionsz build-lib=z9build directory for all distribution (defaults to either zbuild-purelib or build-platlibbuild-scripts=build directory for scripts build-temp=ttemporary build directoryz plat-name=pz6platform name to build for, if supported (default: %s) compiler=cspecify the compiler typedebugg;compile extensions and libraries with debugging informationforcef2forcibly build everything (ignore file timestamps) executable=e5specify final destination interpreter path (build.py)z help-compilerzlist available compilerscCsgd|_d|_d|_d|_d|_d|_d|_d|_d|_d|_ d|_ dS)Nrr) build_base build_purelib build_platlib build_lib build_temp build_scriptsZcompiler plat_namerr executable)selfrrrinitialize_options6s          zbuild.initialize_optionscCs|jdkrt|_ntjdkr<tdnd|jtjddf}ttdrx|d7}n|jdkrtj j |j d|_n|j dkrtj j |j d||_ n|j dkr|jjr|j |_ q|j|_ n|jdkr@tj j |j d ||_n|jdkr~tj j |j d tjdd|_n|jdkrtj jtj|_ndS) NntzW--plat-name only supported on Windows (try using './configure --help' on your platform)z.%s-%srgettotalrefcountz-pydebuglibZtempzscripts-)r(rosnamersysversionhasattrr#pathjoinr"r$r% distributionZ ext_modulesr&r'r)normpath)r*Zplat_specifierrrrfinalize_optionsEs2     zbuild.finalize_optionscCs(x!|jD]}|j|q WdS)N)Zget_sub_commandsZ run_command)r*Zcmd_namerrrrunwsz build.runcCs |jjS)N)r7has_pure_modules)r*rrrr;szbuild.has_pure_modulescCs |jjS)N)r7has_c_libraries)r*rrrr<szbuild.has_c_librariescCs |jjS)N)r7has_ext_modules)r*rrrr=szbuild.has_ext_modulescCs |jjS)N)r7 has_scripts)r*rrrr>szbuild.has_scriptsZbuild_pyZ build_clibZ build_extr')r r r )r Nr )rNr)rNr)rrr)rrr)zdebugrr)zforcerr)rr r!)__name__ __module__ __qualname__Z descriptionrZ user_optionsZboolean_optionsrZ help_optionsr+r9r:r;r<r=r>Z sub_commandsrrrrrsN      2       r) __doc__r2r0Zdistutils.corerZdistutils.errorsrZdistutils.utilrrrrrrrs  PK!R::.command/__pycache__/install_lib.cpython-34.pyonu[ h f @sjdZddlZddlZddlZddlmZddlmZdZ GdddeZ dS)zkdistutils.command.install_lib Implements the Distutils 'install_lib' command (install all Python modules).N)Command)DistutilsOptionErrorz.pyc @seZdZdZd*d+d,d-d.d/d0gZdd dgZid d6ZddZddZddZ ddZ ddZ d d!Z d"d#Z d$d%Zd&d'Zd(d)ZdS)1 install_libz7install all Python modules (extensions and pure Python) install-dir=ddirectory to install to build-dir=b'build directory (where to install from)forcef-force installation (overwrite existing files)compileccompile .py to .pyc [default] no-compileNdon't compile .py files optimize=Olalso compile with optimization: -O1 for "python -O", -O2 for "python -OO", and -O0 to disable [default: -O0] skip-buildskip the build stepscCs:d|_d|_d|_d|_d|_d|_dS)Nr) install_dir build_dirr roptimize skip_build)selfrB/opt/alt/python34/lib64/python3.4/distutils/command/install_lib.pyinitialize_options3s      zinstall_lib.initialize_optionsc Cs|jddddddd|jdkr:d |_n|jdkrUd |_nt|jtsy.t|j|_|jdkrtnWqttfk rtdYqXndS)Ninstall build_librrrr rrrTFrzoptimize must be 0, 1, or 2)r!z build_dir)z install_libz install_dir)forcer$)compiler%)optimizer&) skip_buildr')rr"r#)Zset_undefined_optionsrr isinstanceintAssertionError ValueErrorr)rrrrfinalize_options<s$    zinstall_lib.finalize_optionscCsE|j|j}|dk rA|jjrA|j|ndS)N)buildr distributionhas_pure_modules byte_compile)routfilesrrrrunVs  zinstall_lib.runcCsN|jsJ|jjr(|jdn|jjrJ|jdqJndS)Nbuild_py build_ext)rr.r/Z run_commandhas_ext_modules)rrrrr-fs  zinstall_lib.buildcCsLtjj|jr0|j|j|j}n|jd|jdS|S)Nz3'%s' does not exist -- no Python modules to install)ospathisdirrZ copy_treerwarn)rr1rrrr ms   zinstall_lib.installc Cstjr|jddSddlm}|jdj}|jrp||ddd|jd|d|j n|j dkr||d|j d|jd|d |j d|j ndS) Nz%byte-compiling is disabled, skipping.r)r0r rr prefixdry_runverbose) sysdont_write_bytecoder9Zdistutils.utilr0get_finalized_commandrootrr r;rr<)rfilesr0Z install_rootrrrr0vs    zinstall_lib.byte_compilec Cs|s gS|j|}|j}t||}t|ttj}g}x4|D],} |jtjj|| |dqZW|S)N) r? get_outputsgetattrlenr6sepappendr7join) rZhas_anyZ build_cmdZ cmd_optionZ output_dirZ build_filesrZ prefix_lenZoutputsfilerrr_mutate_outputss  *zinstall_lib._mutate_outputscCsg}x|D]}tjjtjj|d}|tkrGq n|jrr|jtjj |ddn|j dkr |jtjj |ddq q W|S)Nr"debug_overrideTrF) r6r7splitextnormcasePYTHON_SOURCE_EXTENSIONrrF importlibutilcache_from_sourcer)rZ py_filenamesZbytecode_filesZpy_fileZextrrr_bytecode_filenamess "  zinstall_lib._bytecode_filenamescCsu|j|jjdd|j}|jr?|j|}ng}|j|jjdd|j}|||S)zReturn the list of files that would be installed if this command were actually run. Not affected by the "dry-run" flag or whether modules have actually been built yet. r3r!r4)rIr.r/rrrQr5)rZ pure_outputsZbytecode_outputsZ ext_outputsrrrrBs   zinstall_lib.get_outputscCsrg}|jjr:|jd}|j|jn|jjrn|jd}|j|jn|S)zGet the list of files that are input to this command, ie. the files that get installed as they are named in the build tree. The files in this list correspond one-to-one to the output filenames returned by 'get_outputs()'. r3r4)r.r/r?extendrBr5)rZinputsr3r4rrr get_inputsszinstall_lib.get_inputs)rrr)rr r )zforcer r )zcompilerr)rNr)rrr)rNr)__name__ __module__ __qualname__Z descriptionZ user_optionsZboolean_optionsZ negative_optrr,r2r-r r0rIrQrBrSrrrrrs*          r) __doc__r6importlib.utilrNr=Zdistutils.corerZdistutils.errorsrrMrrrrrs   PK!vur7r7(command/__pycache__/sdist.cpython-34.pyonu[ h f-G@sdZddlZddlZddlZddlTddlmZddlmZddlm Z ddl m Z m Z m Z mZddlmZddlTdd lmZdd l mZdd lmZd d ZGddde ZdS)zadistutils.command.sdist Implements the Distutils 'sdist' command (create a source distribution).N)*)glob)warn)Command)dir_utildep_util file_util archive_util)TextFile)FileList)log) convert_pathcCsddlm}ddlm}g}x6|jD](}|jd|d||dfq3W|j||jddS)zoPrint all possible values for the 'formats' option (used by the "--help-formats" command-line option). r) FancyGetopt)ARCHIVE_FORMATSzformats=Nz.List of available source distribution formats:)Zdistutils.fancy_getoptrZdistutils.archive_utilrkeysappendsortZ print_help)rrformatsformatrZd?d@ZdAdBZdCdDZdEdFZdGdHZdIdJZdKdLZd S)Zsdistz6create a source distribution (tarball, zip file, etc.)cCs|jS)zYCallable used for the check sub-command. Placed here so user_options can view it)metadata_check)selfrrrchecking_metadata&szsdist.checking_metadata template=t5name of manifest template file [default: MANIFEST.in] manifest=m)name of manifest file [default: MANIFEST] use-defaultsNRinclude the default file set in the manifest [default; disable with --no-defaults] no-defaults"don't include the default file setprunespecifically exclude files/directories that should not be distributed (build tree, RCS/CVS dirs, etc.) [default; disable with --no-prune]no-prune$don't automatically exclude anything manifest-onlyoEjust regenerate the manifest and then stop (implies --force-manifest)force-manifestfkforcibly regenerate the manifest and carry on as usual. Deprecated: now the manifest is always regenerated.formats=6formats for source distribution (comma-separated list)z keep-tempkz1keep the distribution tree around after creating zarchive file(s) dist-dir=dFdirectory to put the source distribution archive(s) in [default: dist]metadata-check[Ensure that all required elements of meta-data are supplied. Warn if any missing. [default]owner=u@Owner name used when creating a tar file [default: current user]group=gAGroup name used when creating a tar file [default: current group]z help-formatsz#list available distribution formatsZgztarposixzipntcheckcCsyd|_d|_d|_d|_d|_d|_d|_d|_d|_d|_ d|_ d|_ d|_ dS)Nr) templatemanifest use_defaultsr' manifest_onlyZforce_manifestr keep_tempdist_dir archive_filesrownergroup)rrrrinitialize_optionsds            zsdist.initialize_optionsc Cs|jdkrd|_n|jdkr6d|_n|jd|jdkry|jtjg|_Wqtk rtdtjYqXnt j |j}|rt d|n|j dkrd|_ ndS)NZMANIFESTz MANIFEST.inrz}|j}|jds)| rWq)n|jj|q)W|jdS)zRead the manifest file (named by 'self.manifest') and use it to fill in 'self.filelist', the list of files to include in the source distribution. zreading manifest file '%s'#N) r rxrErstrip startswithrSrr{)rrEr|rrrr]xs  zsdist.read_manifestcCs|j|tj||d|jttdrHd}d|}nd}d|}|sntjdn tj|x_|D]W}tj j |stjd|qtj j ||}|j ||d|qW|j jj|dS) aCreate the directory tree that will become the source distribution archive. All directories implied by the filenames in 'files' are created under 'base_dir', and then we hard link or copy (if hard linking is unavailable) those files into place. Essentially, this duplicates the developer's source tree, but in a directory named after the distribution, containing only the files to be distributed. dry_runlinkZhardzmaking hard links in %s...Nzcopying files to %s...z)no files to distribute -- empty manifest?z#'%s' not a regular file -- skipping)ZmkpathrZ create_treerhasattrrOr rrxrZr[rlZ copy_filerXZmetadataZwrite_pkg_info)rrrsrr}filedestrrrmake_release_trees      zsdist.make_release_treec Cs|jj}tjj|j|}|j||jjg}d|j kr}|j j |j j |j j dnxd|j D]Y}|j ||d|d|jd|j}|j ||jjj dd|fqW||_|jstj|d|jndS) aCreate the source distribution(s). First, we create the release tree with 'make_release_tree()'; then, we create all required archive files (according to 'self.formats') from the release tree. Finally, we clean up by blowing away the release tree (unless 'self.keep_temp' is true). The list of archive files created is stored so it can be retrieved later by 'get_archive_files()'. ZtarrrKrLrrN)rXrrOrZrlrIrrSrsrrpopindexZ make_archiverKrLZ dist_filesrJrHrZ remove_treer)rrZ base_namerJZfmtrrrrrUs +    zsdist.make_distributioncCs|jS)zzReturn the list of archive files created when the command was run, or None if the command hasn't run yet. )rJ)rrrrget_archive_filesszsdist.get_archive_files)rrr)r r!r")r#Nr$)r%Nr&)zpruneNr()r)Nr*)r+r,r-)r.r/r0)r1Nr2)r4r5r6)r7Nr8)r9r:r;)r<r=r>)__name__ __module__ __qualname__Z descriptionrZ user_optionsZboolean_optionsrZ help_optionsZ negative_optrNZ sub_commandsrMrRrVrYrTr_r`rarbr\r]rrUrrrrrr"sn             ( P     * r)__doc__rOstringrtypesrwarningsrZdistutils.corerZ distutilsrrrr Zdistutils.text_filer Zdistutils.errorsZdistutils.filelistr r Zdistutils.utilr rrrrrrs    "  PK!6'$'$+command/__pycache__/register.cpython-34.pycnu[ h f-@sdZddlZddlZddlZddlZddlZddlZddlm Z ddl m Z ddl Tddl mZGddde ZdS) zhdistutils.command.register Implements the Distutils 'register' command (register with the repository). N)warn) PyPIRCCommand)*)logc@seZdZdZejdd gZejdddgZdd d fgZd d Zd dZ ddZ ddZ ddZ ddZ ddZddZddZdddZdS)!registerz7register the distribution with the Python package indexlist-classifiersN list the valid Trove classifiersstrictBWill stop the registering if the meta-data are not fully compliantverifycheckcCsdS)NT)selfr r ?/opt/alt/python34/lib64/python3.4/distutils/command/register.pyszregister.cCs#tj|d|_d|_dS)Nr)rinitialize_optionslist_classifiersr )rr r rrs  zregister.initialize_optionscCs>tj|id|jfd6dd6}||jjds$  PK!R(command/__pycache__/check.cpython-34.pycnu[ h fx @sdZddlmZddlmZypddlmZddlmZddl m Z ddl m Z ddl m Z Gd d d eZd ZWnek rd ZYnXGd ddeZdS)zCdistutils.command.check Implements the Distutils 'check' command. )Command)DistutilsSetupError)Reporter)Parser)frontend)nodes)StringIOc@s4eZdZddddddZddZdS) SilentReporterNrasciireplacec Cs/g|_tj||||||||dS)N)messagesr__init__)selfsource report_level halt_levelstreamdebugencoding error_handlerr|j r|j s|jdd qn|jd d d d S)zEnsures that all required elements of meta-data are supplied. name, version, URL, (author and author_email) or (maintainer and maintainer_email)). Warns if any are missing. nameversionurlzmissing required meta-data: %sz, z)missing meta-data: if 'author' supplied, z#'author_email' must be supplied tooz-missing meta-data: if 'maintainer' supplied, z''maintainer_email' must be supplied tooz4missing meta-data: either (author and author_email) z%or (maintainer and maintainer_email) zmust be suppliedN)znamezversionr7) distributionr"hasattrgetattrrr/joinZauthorZ author_emailZ maintainerZmaintainer_email)rr"Zmissingattrrrrr1Ps$        zcheck.check_metadatacCsz|jj}xd|j|D]S}|djd}|dkrQ|d}nd|d|f}|j|qWdS)z4Checks if the long string fields are reST-compliant.r+lineNz %s (line %s))r8Zget_long_description_check_rst_datagetr/)rdataZwarningr=rrrr3ns  zcheck.check_restructuredtextcCst}t}tjdtfj}d|_d|_d|_t||j |j d|j d|j d|j d|j}tj||d|}|j|d y|j||WnEtk r}z%|jjd d |d ifWYdd}~XnX|jS)z8Returns warnings when the provided data doesn't compile.Z componentsNrrrrrr+z!Could not finish the parsing: %s.r>r>)rrrZ OptionParserZget_default_valuesZ tab_widthZpep_referencesZrfc_referencesr rrZwarning_streamrZerror_encodingZerror_encoding_error_handlerrdocumentZ note_sourceparseAttributeErrorr r)rrA source_pathparserZsettingsZreporterrDerrrr?ys*           *zcheck._check_rst_dataN)zmetadatar#r$)zrestructuredtextr&r')zstrictr)r*)rrr __doc__Z descriptionZ user_optionsZboolean_optionsr-r.r/r4r1r3r?rrrrr!$s        r!N)rJZdistutils.corerZdistutils.errorsrZdocutils.utilsrZdocutils.parsers.rstrZdocutilsrriorr r2 Exceptionr!rrrrs   PK!BB,command/__pycache__/build_ext.cpython-34.pyonu[ h fy@s dZddlZddlZddlZddlmZddlTddlmZm Z ddlm Z ddl m Z ddl mZdd lmZdd lmZdd lmZejd krdd lmZeeZnejdZddZGdddeZdS)zdistutils.command.build_ext Implements the Distutils 'build_ext' command, for building extension modules (currently limited to C extensions, should accommodate C++ extensions ASAP).N)Command)*)customize_compilerget_python_version)get_config_h_filename) newer_group) Extension) get_platform)log) USER_BASEnt)get_build_versionz3^[a-zA-Z_][a-zA-Z_0-9]*(\.[a-zA-Z_][a-zA-Z_0-9]*)*$cCsddlm}|dS)Nr)show_compilers)distutils.ccompilerr)rr@/opt/alt/python34/lib64/python3.4/distutils/command/build_ext.pyrsrc@steZdZdZdejZdWdXd d d efd d ddfdddefdYdZd[dddefd\d]d^d_d`dadbdcddgZd d%d(d.d5gZ d7d/d8e fgZ d9d:Z d;d<Z d=d>Zd?d@ZdAdBZdCdDZdEdFZdGdHZdIdJZdKdLZdMdNZdOdPZdQdRZdSdTZdUdVZd/S)e build_extz8build C/C++ extensions (compile/link to build directory)z (separated by '%s') build-lib=b(directory for compiled extension modules build-temp=t1directory for temporary files (build by-products)z plat-name=pz>platform name to cross-compile for, if supported (default: %s)inplaceiz=ignore build-lib and put compiled extensions into the source z,directory alongside your pure Python modulesz include-dirs=Iz.list of directories to search for header filesdefine=DC preprocessor macros to defineundef=U!C preprocessor macros to undefine libraries=l!external C libraries to link withz library-dirs=Lz.directories to search for external C librariesrpath=R7directories to search for shared C libraries at runtime link-objects=O2extra explicit link objects to include in the linkdebugg'compile/link with debugging informationforcef2forcibly build everything (ignore file timestamps) compiler=cspecify the compiler typeswig-cppN)make SWIG create C++ files (default is C) swig-opts=!list of SWIG command line optionsswig=path to the SWIG executableuser#add user include, library and rpathz help-compilerzlist available compilerscCsd|_d|_d|_d|_d|_d|_d|_d|_d|_d|_ d|_ d|_ d|_ d|_ d|_d|_d|_d|_d|_d|_dS)Nr) extensions build_lib plat_name build_temprpackage include_dirsdefineundef libraries library_dirsrpath link_objectsr-r0compilerswigswig_cpp swig_optsr<)selfrrrinitialize_optionsis(                   zbuild_ext.initialize_optionsc Csddlm}|jdd,d-d.d/d0d1|jdkrP|jj|_n|jj|_|j}|jd d }|j dkr|jj pg|_ nt |j t r|j j t j|_ ntjtjkr|j jt jjtjd n|j j|||kr7|j j|n|jd |jdkr_g|_n|jdkrzg|_n-t |jt r|jj t j|_n|jdkrg|_n-t |jt r|jj t j|_nt jdkr|jjt jjtjdtjtjkrW|jjt jjtjdn|jr~t jj|jd|_nt jj|jd|_|j jt jjtttdd}|r|jj|nt dkrc|j!dkrd}n|j!dd}t jjtjd}|rPt jj||}n|jj|qt dkr|jjt jjtjddqt dkr|jjt jjtjddq|jjt jjtjddntj"dddks%tj"ddd krtj#j$t jjtjd!r{|jjt jjtjd"d#t%d$q|jjd%n|j&d&r|j's|jj|j&d'q|jjd%n|j(r |j(j d(}d)d*|D|_(n|j)r*|j)j d(|_)n|j*dkrEg|_*n|j*j d+|_*|j+rt jjt,d }t jjt,d"} t jj-|r|j j|nt jj-| r|jj| |jj| qndS)2Nr) sysconfigZbuildr?rArJr-r0r@Z plat_specificincluderFr ZlibsZDebugZRelease_home win32ZPCbuildPCzVS8.0zVS7.1ZVC6cygwinatheosbinlibpythonconfig.Py_ENABLE_SHAREDLIBDIR,cSsg|]}|dfqS)1r).0Zsymbolrrr s z.build_ext.finalize_options.. ) build_librj) build_temprk)compilerrl)debugrm)forcern) plat_namero). distutilsrPZset_undefined_optionsrB distributionZ ext_packageZ ext_modulesr>Zget_python_incrC isinstancestrsplitospathsepsys exec_prefixbase_exec_prefixappendpathjoinZensure_string_listrFrGrHnameprefixr-rAdirnamergetattr MSVC_VERSIONr@platform executable startswithrget_config_varZ python_buildrDrErMr<r isdir) rNrPZ py_includeZplat_py_include _sys_homesuffixZnew_libZdefinesZ user_includeZuser_librrrfinalize_optionss  %     "%     2$       zbuild_ext.finalize_optionsc Csddlm}|jsdS|jjrm|jd}|jj|jpSg|j j |j n|d|j d|j d|jd|j|_ t|j tjdkr|jtkr|j j|jn|jdk r|j j|jn|jdk rEx-|jD]\}}|j j||qWn|jdk r{x$|jD]}|j j|q^Wn|jdk r|j j|jn|j dk r|j j|j n|jdk r|j j|jn|j dk r|j j!|j n|j"dS) Nr) new_compiler build_clibrJverbosedry_runr0r )#rrr>rqZhas_c_librariesget_finalized_commandrFextendZget_library_namesrGrzrrJrrr0rrur}r@r Z initializerCZset_include_dirsrDZ define_macrorEZundefine_macroZ set_librariesZset_library_dirsrHZset_runtime_library_dirsrIZset_link_objectsbuild_extensions)rNrrr}valuemacrorrrruns>    !z build_ext.runc Cs0t|tstdnx t|D]\}}t|trLq+nt|t snt|dkr}tdn|\}}tjd|t|t ot j |stdnt|t stdnt||d}x<dD]4}|j |}|dk rt|||qqW|j d|_d|kretjdn|j d}|rg|_g|_x|D]} t| tot| dkstdnt| dkr|jj| dqt| dkr|jj| qqWn|||rextext_nameZ build_infokeyvalrrrrrcheck_extensions_listUsT  "           ! zbuild_ext.check_extensions_listcCs>|j|jg}x!|jD]}|j|jq W|S)N)rr>rr)rN filenamesrrrrget_source_filess zbuild_ext.get_source_filescCsG|j|jg}x*|jD]}|j|j|jq W|S)N)rr>rzget_ext_fullpathr})rNZoutputsrrrr get_outputss zbuild_ext.get_outputscCs|j|jx||jD]q}y|j|Wqtttfk r}z.|js^n|jd|j|fWYdd}~XqXqWdS)Nz"building extension "%s" failed: %s) rr>build_extensionZCCompilerErrorZDistutilsErrorZ CompileErrorZoptionalrr})rNrerrrrs  zbuild_ext.build_extensionsc Cs |j}|dks+t|ttf rAtd|jnt|}|j|j}||j}|jpt ||dst j d|jdSt j d|j|j ||}|jpg}|jdd}x!|jD]}|j|fqW|jj|d|jd|d|jd|j d |d |j}|dd|_|jrz|j|jn|jpg}|jp|jj|} |jj||d |j|d |jd |jd |d|j |d|j d|jd| dS)Nzjin 'ext_modules' option (extension '%s'), 'sources' must be present and must be a list of source filenamesZnewerz$skipping '%s' extension (up-to-date)zbuilding '%s' extensionZ output_dirrrCr-Zextra_postargsdependsrFrGrexport_symbolsrAZ target_lang)!rrrrrrr}rrr0rr r-info swig_sourcesrrrrzrJcompilerArCZ_built_objectsrrrlanguageZdetect_languageZlink_shared_object get_librariesrGrget_export_symbols) rNrrext_pathrZ extra_argsrrEZobjectsrrrrrsN "             zbuild_ext.build_extensioncCsg}g}i}|jr+tjdn|jsRd|jksRd|jkr[d}nd}xr|D]j}tjj|\}} | dkr|j|d||j||d ||          zbuild_ext.swig_sourcescCstjdkrdStjdkrixWd D]5}tjjd|d}tjj|r)|Sq)WdSntd tjd S) zReturn the name of the SWIG executable. On Unix, this is just "swig" -- it should be in the PATH. Tries a bit harder on Windows. posixrKr 1.31.21.1z c:\swig%szswig.exez>I don't know how to find (much less run) SWIG on platform '%s'N)rrr)rur}r{r|isfileZDistutilsPlatformError)rNZversfnrrrrOs zbuild_ext.find_swigcCs|j|}|jd}|j|d}|jsstjj|dd|g}tjj|j|Sdj|dd}|jd}tjj |j |}tjj||S) zReturns the path of the filename for a given extension. The file is located in `build_lib` or directly in the package (inplace option). rbrQNrbuild_pyrrr) get_ext_fullnamertget_ext_filenamerrur{r|r?rabspathZget_package_dir)rNrfullnameZmodpathfilenamerBrZ package_dirrrrrgs #zbuild_ext.get_ext_fullpathcCs&|jdkr|S|jd|SdS)zSReturns the fullname of a given extension name. Adds the `package.` prefixNrb)rB)rNrrrrrszbuild_ext.get_ext_fullnamecCsoddlm}|jd}|d}tjdkr[|jr[tjj|d|Stjj||S)zConvert the name of an extension (eg. "foo.bar") into the name of the file from which it will be loaded (eg. "foo/bar.so", or "foo\bar.pyd"). r)rrb EXT_SUFFIXr _d)distutils.sysconfigrrtrur}r-r{r|)rNrrrZ ext_suffixrrrrs  zbuild_ext.get_ext_filenamecCsCd|jjdd}||jkr<|jj|n|jS)aReturn the list of symbols that a shared extension has to export. This either uses 'ext.export_symbols' or, if it's not provided, "PyInit_" + module_name. Only relevant on Windows, where the .pyd file (DLL) must export the module "PyInit_" function. ZPyInit_rbrQr)r}rtrrz)rNrZ initfunc_namerrrrszbuild_ext.get_export_symbolscCs0tjdkrddlm}t|j|s}d}|jrM|d}n|tjd?tjd?d@f}|j|gS|jSntjd d d krd }|tjd?tjd?d@f}|j|gStjd d d krddl m }d }|tjd?tjd?d@f}g}xS|j dj D]<}|j drr|j|dd qC|j|qCW|j|dg|Stjdkr|jStjd ddkr|jSddl m }|j dr%djtjd?tjd?d@tj}|j|gS|jSd S)zReturn the list of libraries to link against when building a shared extension. On most platforms, this is just 'ext.libraries'; on Windows, we add the Python library (eg. python20.dll). rUr) MSVCCompilerz python%d%drNr[r\z python%d.%dr])rPSHLIBSz-lrmdarwinaixrcz python{}.{}{})rwrdistutils.msvccompilerrrrrJr- hexversionrFrprPrrtrrzformatabiflags)rNrrtemplateZ pythonlibrPZextrar_rrrrsJ     zbuild_ext.get_libraries)rrr)rrr)rrr)r r!r")r#r$r%)r'r(r))r*r+r,)zdebugr.r/)zforcer1r2)r3r4r5)r6Nr7)r8Nr9)r:Nr;)zuserNr=)__name__ __module__ __qualname__Z descriptionrurvZsep_byr Z user_optionsZboolean_optionsrZ help_optionsrOrrrrrrrrrrrrrrrrrrr"st        @ N  R 6   r)__doc__rwrureZdistutils.corerZdistutils.errorsrrrrZdistutils.dep_utilrZdistutils.extensionrZdistutils.utilr rpr Zsiter r}rr intrrrrrrrrrs"$   PK!R(command/__pycache__/check.cpython-34.pyonu[ h fx @sdZddlmZddlmZypddlmZddlmZddl m Z ddl m Z ddl m Z Gd d d eZd ZWnek rd ZYnXGd ddeZdS)zCdistutils.command.check Implements the Distutils 'check' command. )Command)DistutilsSetupError)Reporter)Parser)frontend)nodes)StringIOc@s4eZdZddddddZddZdS) SilentReporterNrasciireplacec Cs/g|_tj||||||||dS)N)messagesr__init__)selfsource report_level halt_levelstreamdebugencoding error_handlerr|j r|j s|jdd qn|jd d d d S)zEnsures that all required elements of meta-data are supplied. name, version, URL, (author and author_email) or (maintainer and maintainer_email)). Warns if any are missing. nameversionurlzmissing required meta-data: %sz, z)missing meta-data: if 'author' supplied, z#'author_email' must be supplied tooz-missing meta-data: if 'maintainer' supplied, z''maintainer_email' must be supplied tooz4missing meta-data: either (author and author_email) z%or (maintainer and maintainer_email) zmust be suppliedN)znamezversionr7) distributionr"hasattrgetattrrr/joinZauthorZ author_emailZ maintainerZmaintainer_email)rr"Zmissingattrrrrr1Ps$        zcheck.check_metadatacCsz|jj}xd|j|D]S}|djd}|dkrQ|d}nd|d|f}|j|qWdS)z4Checks if the long string fields are reST-compliant.r+lineNz %s (line %s))r8Zget_long_description_check_rst_datagetr/)rdataZwarningr=rrrr3ns  zcheck.check_restructuredtextcCst}t}tjdtfj}d|_d|_d|_t||j |j d|j d|j d|j d|j}tj||d|}|j|d y|j||WnEtk r}z%|jjd d |d ifWYdd}~XnX|jS)z8Returns warnings when the provided data doesn't compile.Z componentsNrrrrrr+z!Could not finish the parsing: %s.r>r>)rrrZ OptionParserZget_default_valuesZ tab_widthZpep_referencesZrfc_referencesr rrZwarning_streamrZerror_encodingZerror_encoding_error_handlerrdocumentZ note_sourceparseAttributeErrorr r)rrA source_pathparserZsettingsZreporterrDerrrr?ys*           *zcheck._check_rst_dataN)zmetadatar#r$)zrestructuredtextr&r')zstrictr)r*)rrr __doc__Z descriptionZ user_optionsZboolean_optionsr-r.r/r4r1r3r?rrrrr!$s        r!N)rJZdistutils.corerZdistutils.errorsrZdocutils.utilsrZdocutils.parsers.rstrZdocutilsrriorr r2 Exceptionr!rrrrs   PK!.l,(command/__pycache__/build.cpython-34.pycnu[ h f%@stdZddlZddlZddlmZddlmZddlmZddZ Gdd d eZ dS) zBdistutils.command.build Implements the Distutils 'build' command.N)Command)DistutilsOptionError) get_platformcCsddlm}|dS)Nr)show_compilers)Zdistutils.ccompilerr)rrbuildz"build everything needed to install build-base=b base directory for build librarybuild-purelib=N2build directory for platform-neutral distributionsbuild-platlib=3build directory for platform-specific distributionsz build-lib=z9build directory for all distribution (defaults to either zbuild-purelib or build-platlibbuild-scripts=build directory for scripts build-temp=ttemporary build directoryz plat-name=pz6platform name to build for, if supported (default: %s) compiler=cspecify the compiler typedebugg;compile extensions and libraries with debugging informationforcef2forcibly build everything (ignore file timestamps) executable=e5specify final destination interpreter path (build.py)z help-compilerzlist available compilerscCsgd|_d|_d|_d|_d|_d|_d|_d|_d|_d|_ d|_ dS)Nrr) build_base build_purelib build_platlib build_lib build_temp build_scriptsZcompiler plat_namerr executable)selfrrrinitialize_options6s          zbuild.initialize_optionscCs|jdkrt|_ntjdkr<tdnd|jtjddf}ttdrx|d7}n|jdkrtj j |j d|_n|j dkrtj j |j d||_ n|j dkr|jjr|j |_ q|j|_ n|jdkr@tj j |j d ||_n|jdkr~tj j |j d tjdd|_n|jdkrtj jtj|_ndS) NntzW--plat-name only supported on Windows (try using './configure --help' on your platform)z.%s-%srgettotalrefcountz-pydebuglibZtempzscripts-)r(rosnamersysversionhasattrr#pathjoinr"r$r% distributionZ ext_modulesr&r'r)normpath)r*Zplat_specifierrrrfinalize_optionsEs2     zbuild.finalize_optionscCs(x!|jD]}|j|q WdS)N)Zget_sub_commandsZ run_command)r*Zcmd_namerrrrunwsz build.runcCs |jjS)N)r7has_pure_modules)r*rrrr;szbuild.has_pure_modulescCs |jjS)N)r7has_c_libraries)r*rrrr<szbuild.has_c_librariescCs |jjS)N)r7has_ext_modules)r*rrrr=szbuild.has_ext_modulescCs |jjS)N)r7 has_scripts)r*rrrr>szbuild.has_scriptsZbuild_pyZ build_clibZ build_extr')r r r )r Nr )rNr)rNr)rrr)rrr)zdebugrr)zforcerr)rr r!)__name__ __module__ __qualname__Z descriptionrZ user_optionsZboolean_optionsrZ help_optionsr+r9r:r;r<r=r>Z sub_commandsrrrrrsN      2       r) __doc__r2r0Zdistutils.corerZdistutils.errorsrZdistutils.utilrrrrrrrs  PK!6'$'$+command/__pycache__/register.cpython-34.pyonu[ h f-@sdZddlZddlZddlZddlZddlZddlZddlm Z ddl m Z ddl Tddl mZGddde ZdS) zhdistutils.command.register Implements the Distutils 'register' command (register with the repository). N)warn) PyPIRCCommand)*)logc@seZdZdZejdd gZejdddgZdd d fgZd d Zd dZ ddZ ddZ ddZ ddZ ddZddZddZdddZdS)!registerz7register the distribution with the Python package indexlist-classifiersN list the valid Trove classifiersstrictBWill stop the registering if the meta-data are not fully compliantverifycheckcCsdS)NT)selfr r ?/opt/alt/python34/lib64/python3.4/distutils/command/register.pyszregister.cCs#tj|d|_d|_dS)Nr)rinitialize_optionslist_classifiersr )rr r rrs  zregister.initialize_optionscCs>tj|id|jfd6dd6}||jjds$  PK!/6(command/__pycache__/bdist.cpython-34.pycnu[ i fp@sbdZddlZddlmZddlTddlmZddZGdd d eZdS) zidistutils.command.bdist Implements the Distutils 'bdist' command (create a built [binary] distribution).N)Command)*) get_platformcCslddlm}g}x6tjD]+}|jd|dtj|dfq W||}|jddS)zFPrint list of available formats (arguments to "--format" option). r) FancyGetoptzformats=Nz'List of available distribution formats:)Zdistutils.fancy_getoptrbdistformat_commandsappendformat_commandZ print_help)rformatsformatZpretty_printerr d6d?d 6d@d!6dAd6dBd"6Z d.d/Z d0d1Zd2d3Zd S)Crz$create a built (binary) distribution bdist-base=b4temporary directory for creating built distributionsz plat-name=pz;platform name to embed in generated filenames (default: %s)formats=N/formats for distribution (comma-separated list) dist-dir=d=directory to put final built distributions in [default: dist] skip-build2skip rebuilding everything (for testing/debugging)owner=u@Owner name used when creating a tar file [default: current user]group=gAGroup name used when creating a tar file [default: current group]z help-formatsz$lists available distribution formats bdist_rpmZgztarposixzipntZrpmZbztarZztarZtarZwininstZmsiRPM distribution bdist_dumbgzip'ed tar filebzip2'ed tar filecompressed tar filetar file bdist_wininstWindows executable installerZIP file bdist_msiMicrosoft InstallercCsCd|_d|_d|_d|_d|_d|_d|_dS)Nr) bdist_base plat_namer dist_dir skip_buildgroupowner)selfr r rinitialize_optionsPs      zbdist.initialize_optionsc Cs|jdkr?|jr't|_q?|jdj|_n|jdkr|jdj}tjj|d|j|_n|j d|j dkry|j tj g|_ Wqt k rtdtj YqXn|jdkrd|_ndS)NZbuildzbdist.r z;don't know how to create built distributions on platform %sZdist)r1r3rZget_finalized_commandr0 build_baseospathjoinZensure_string_listr default_formatnameKeyErrorZDistutilsPlatformErrorr2)r6r8r r rfinalize_optionsYs$    zbdist.finalize_optionsc Csg}xR|jD]G}y|j|j|dWqtk rVtd|YqXqWxtt|jD]}||}|j|}||jkr|j||_ n|dkr|j |_ |j |_ n|||ddkrd|_ n|j |qqWdS)Nrzinvalid format '%s'r&r)r r r r>ZDistutilsOptionErrorrangelenZreinitialize_commandno_format_optionr r5r4Z keep_tempZ run_command)r6Zcommandsr iZcmd_nameZsub_cmdr r rrunus"     z bdist.run)rrr)rNr)rrr)rNr)rrr)rrr )r!)r!r%) bdist_dumbr')rEr()rEr))rEr*)r+r,)rEr-)r.r/)__name__ __module__ __qualname__Z descriptionrZ user_optionsZboolean_optionsrZ help_optionsrBr<rr r7r?rDr r r rrsH         r) __doc__r9Zdistutils.corerZdistutils.errorsZdistutils.utilrrrr r r rs    PK!> z,,+command/__pycache__/build_py.cpython-34.pyonu[ i f C@sdZddlZddlZddlZddlmZddlmZddlTddl m Z m Z ddl m Z Gdd d eZGd d d ee ZdS) zHdistutils.command.build_py Implements the Distutils 'build_py' command.N)glob)Command)*) convert_path Mixin2to3)logc@s+eZdZdZd8d9d:d;d<gZddgZidd6ZddZddZddZ ddZ ddZ ddZ ddZ dd Zd!d"Zd#d$Zd%d&Zd'd(Zd)d*Zd+d,Zd-d.d/Zd0d1Zd2d3Zd4d5Zd6d7Zd S)=build_pyz5"build" pure Python modules (copy to build directory) build-lib=ddirectory to "build" (copy) tocompileccompile .py to .pyc no-compileN!don't compile .py files [default] optimize=Olalso compile with optimization: -O1 for "python -O", -O2 for "python -OO", and -O0 to disable [default: -O0]forcef2forcibly build everything (ignore file timestamps)cCsLd|_d|_d|_d|_d|_d|_d|_d|_dS)Nr) build_lib py_modulespackage package_data package_dirr optimizer)selfr?/opt/alt/python34/lib64/python3.4/distutils/command/build_py.pyinitialize_options s       zbuild_py.initialize_optionsc Cs|jddd|jj|_|jj|_|jj|_i|_|jjrx6|jjjD]\}}t||j|ts z+build_py.get_data_files..) r$get_package_dirosr-joinrsplitlenfind_data_filesappend)rdatarsrc_dir build_dir filenamesr)r:rr&as %%zbuild_py.get_data_filescs|jjdg|jj|g}gxO|D]G}ttjj|t|}jfdd|Dq5WS)z6Return filenames for package's data files in 'src_dir'cs4g|]*}|krtjj|r|qSr)r=r-isfile)r8fn)filesrrr;s z,build_py.find_data_files..)rgetrr=r-r>rextend)rrrDZglobspatternZfilelistr)rJrrAys !$zbuild_py.find_data_filescCsd}x|jD]v\}}}}xa|D]Y}tjj||}|jtjj||jtjj|||ddq)WqWdS)z$Copy data files into build directoryN preserve_modeF)r'r=r-r>mkpathdirname copy_file)rZlastdirrrDrErFfilenametargetrrrr2s zbuild_py.build_package_datac Cs|jd}|js5|r.tjj|SdSng}x|ry|jdj|}Wn-tk r|jd|d|d=Yq>X|jd|tjj|Sq>W|jjd}|dk r|jd|n|rtjj|SdSdS)zReturn the directory, relative to the top of the source distribution, where package 'package' should be found (at least according to the 'package_dir' option, if any).r6rGrr7NrT)r?rr=r-r>KeyErrorinsertrK)rrr-tailZpdirrrrr<s(      zbuild_py.get_package_dircCs|dkrYtjj|s1td|ntjj|sYtd|qYn|rtjj|d}tjj|r|Stjdd|ndS)NrGz%package directory '%s' does not existz>supposed package directory '%s' exists, but is not a directoryz __init__.pyz!package init file '%s' not found z(or not a regular file)) r=r-existsZDistutilsFileErrorisdirr>rHrwarn)rrrinit_pyrrr check_packages  zbuild_py.check_packagecCs1tjj|s)tjd||dSdSdS)Nz!file %s (for module %s) not foundFT)r=r-rHrrZ)rmodule module_filerrr check_moduleszbuild_py.check_modulec Cs|j||ttjj|d}g}tjj|jj}xx|D]p}tjj|}||krtjjtjj |d}|j |||fqP|j d|qPW|S)Nz*.pyrz excluding %s) r\rr=r-r>abspathr#Z script_namesplitextbasenamerBZ debug_print) rrrZ module_filesmodulesZ setup_scriptrZabs_fr]rrrfind_package_moduless  "zbuild_py.find_package_modulesc Cs%i}g}x|jD]}|jd}dj|dd}|d}y||\}}Wn'tk r|j|}d}YnX|s|j||} |df||<| r|j|d| fqntjj||d} |j || sqn|j||| fqW|S)aFinds individually-specified Python modules, ie. those listed by module name in 'self.py_modules'. Returns a list of tuples (package, module_base, filename): 'package' is a tuple of the path through package-space to the module; 'module_base' is the bare (no packages, no dots) module name, and 'filename' is the path to the ".py" file (relative to the distribution root) that implements the module. r6rr7__init__z.pyrTrT) rr?r>rUr<r\rBr=r-r_) rr$rcr]r-rZ module_baserZcheckedr[r^rrr find_moduless*   zbuild_py.find_modulescCswg}|jr%|j|jn|jrsxB|jD]4}|j|}|j||}|j|q8Wn|S)a4Compute the list of all modules that will be built, whether they are specified one-module-at-a-time ('self.py_modules') or by whole packages ('self.packages'). Return a list of tuples (package, module, module_file), just like 'find_modules()' and 'find_package_modules()' do.)rrLrfr$r<rd)rrcrrmrrrfind_all_moduless  zbuild_py.find_all_modulescCsdd|jDS)NcSsg|]}|dqS)r7rTr)r8r]rrrr;-s z-build_py.get_source_files..)rh)rrrrget_source_files,szbuild_py.get_source_filescCs.|gt||dg}tjj|S)Nz.py)listr=r-r>)rrErr]Z outfile_pathrrrget_module_outfile/szbuild_py.get_module_outfiler7cCs|j}g}x|D]\}}}|jd}|j|j||}|j||r|jr|jtjj|ddn|j dkr|jtjj|ddqqqW|dd|j D7}|S)Nr6debug_overrideTrFcSs>g|]4\}}}}|D]}tjj||qqSr)r=r-r>)r8rrDrErFrRrrrr;Cs z(build_py.get_outputs..) rhr?rkrrBr importlibutilcache_from_sourcerr')rr/rcZoutputsrr]r^rRrrrr43s"    zbuild_py.get_outputscCst|tr!|jd}n$t|ttfsEtdn|j|j||}tj j |}|j ||j ||ddS)Nr6z:'package' must be a string (dot-separated), list, or tuplerNr) r(strr?rjtuple TypeErrorrkrr=r-rPrOrQ)rr]r^rZoutfiledirrrr build_moduleJs  zbuild_py.build_modulecCs=|j}x*|D]"\}}}|j|||qWdS)N)rfrt)rrcrr]r^rrrr0Ys zbuild_py.build_modulescCsfx_|jD]T}|j|}|j||}x*|D]"\}}}|j|||q8Wq WdS)N)r$r<rdrt)rrrrcZpackage_r]r^rrrr1bs  zbuild_py.build_packagesc Cstjr|jddSddlm}|j}|d tjkrV|tj}n|jr||ddd|j d|d|j n|j dkr||d|j d|j d|d|j ndS) Nz%byte-compiling is disabled, skipping.r)r3r7rrprefixdry_runrT) sysdont_write_bytecoderZdistutils.utilr3rr=sepr rrvr)rrJr3rurrrr3vs    zbuild_py.byte_compile)r r r )zcompiler r)rNr)rrr)zforcerr)__name__ __module__ __qualname__Z descriptionZ user_optionsZboolean_optionsZ negative_optr r.r5r&rAr2r<r\r_rdrfrhrirkr4rtr0r1r3rrrrrs8        '    4     rc@s(eZdZddZddZdS) build_py_2to3cCslg|_|jr|jn|jr?|j|jn|j|j|j|jdddS)Nr/r) updated_filesrr0r$r1r2Zrun_2to3r3r4)rrrrr5s      zbuild_py_2to3.runcCs=tj||||}|dr9|jj|dn|S)Nr7r)rrtrrB)rr]r^rresrrrrts zbuild_py_2to3.build_moduleN)r{r|r}r5rtrrrrr~s  r~)__doc__r=importlib.utilrmrwrZdistutils.corerZdistutils.errorsryrrZ distutilsrrr~rrrrs    |PK!k .%EE-command/__pycache__/build_clib.cpython-34.pyonu[ h fV@srdZddlZddlmZddlTddlmZddlmZddZ Gd d d eZ dS) zdistutils.command.build_clib Implements the Distutils 'build_clib' command, to build a C/C++ library that is included in the module distribution and needed by an extension module.N)Command)*)customize_compiler)logcCsddlm}|dS)Nr)show_compilers)distutils.ccompilerr)rrA/opt/alt/python34/lib64/python3.4/distutils/command/build_clib.pyrsrc@seZdZdZd"d#d$d%d&gZdd gZdddefgZddZddZ ddZ ddZ ddZ ddZ d d!ZdS)' build_clibz/build C/C++ libraries used by Python extensions build-clib=b%directory to build C/C++ libraries to build-temp=t,directory to put temporary build by-productsdebugg"compile with debugging informationforcef2forcibly build everything (ignore file timestamps) compiler=cspecify the compiler typez help-compilerNzlist available compilerscCsUd|_d|_d|_d|_d|_d|_d|_d|_d|_dS)Nr) r build_temp libraries include_dirsdefineundefrrcompiler)selfrrr initialize_options4s        zbuild_clib.initialize_optionscCs|jdddd d d |jj|_|jrG|j|jn|jdkrn|jjpeg|_nt|jtr|jjtj |_ndS) NZbuildrr rrr) build_tempz build_clib)r"r")compilerr#)debugr$)forcer%) Zset_undefined_optionsZ distributionrcheck_library_listr isinstancestrsplitospathsep)r rrr finalize_optionsDs  zbuild_clib.finalize_optionscCs|js dSddlm}|d|jd|jd|j|_t|j|jdk rv|jj|jn|j dk rx-|j D]\}}|jj ||qWn|j dk rx$|j D]}|jj |qWn|j |jdS)Nr) new_compilerrdry_runr)rrr-rr.rrrZset_include_dirsrZ define_macrorZundefine_macrobuild_libraries)r r-namevalueZmacrorrr run^s    zbuild_clib.runcCst|tstdnx|D]}t|t r\t|dkr\tdn|\}}t|tstdnd|kstjdkrtj|krtd|dnt|ts%tdq%q%Wd S) a`Ensure that the list of libraries is valid. `library` is presumably provided as a command option 'libraries'. This method checks that it is a list of 2-tuples, where the tuples are (library_name, build_info_dict). Raise DistutilsSetupError if the structure is invalid anywhere; just returns otherwise. z+'libraries' option must be a list of tuplesz*each element of 'libraries' must a 2-tuplezNfirst element of each tuple in 'libraries' must be a string (the library name)/z;bad library name '%s': may not contain directory separatorsrzMsecond element of each tuple in 'libraries' must be a dictionary (build info)N) r'listDistutilsSetupErrortuplelenr(r*sepdict)r rlibr0 build_inforrr r&vs"   "   *zbuild_clib.check_library_listcCs>|js dSg}x$|jD]\}}|j|qW|S)N)rappend)r Z lib_nameslib_namer<rrr get_library_namess  zbuild_clib.get_library_namescCs|j|jg}xh|jD]]\}}|jd}|dks]t|ttf rptd|n|j|q W|S)Nsourceszfin 'libraries' option (library '%s'), 'sources' must be present and must be a list of source filenames)r&rgetr'r5r7r6extend)r filenamesr>r<r@rrr get_source_filess" zbuild_clib.get_source_filesc Csx|D]\}}|jd}|dksDt|ttf rWtd|nt|}tjd||jd}|jd}|jj|d|j d|d|d|j }|jj ||d|j d|j qWdS)Nr@zfin 'libraries' option (library '%s'), 'sources' must be present and must be a list of source filenameszbuilding '%s' librarymacrosrZ output_dirr) rAr'r5r7r6rinforcompilerrZcreate_static_libr )r rr>r<r@rErZobjectsrrr r/s$"     zbuild_clib.build_libraries)r r r )rrr)zdebugrr)zforcerr)rrr)__name__ __module__ __qualname__Z descriptionZ user_optionsZboolean_optionsrZ help_optionsr!r,r2r&r?rDr/rrrr r s*       $ r ) __doc__r*Zdistutils.corerZdistutils.errorsZdistutils.sysconfigrZ distutilsrrr rrrr s   PK!}s - -+command/__pycache__/build_py.cpython-34.pycnu[ i f C@sdZddlZddlZddlZddlmZddlmZddlTddl m Z m Z ddl m Z Gdd d eZGd d d ee ZdS) zHdistutils.command.build_py Implements the Distutils 'build_py' command.N)glob)Command)*) convert_path Mixin2to3)logc@s+eZdZdZd8d9d:d;d<gZddgZidd6ZddZddZddZ ddZ ddZ ddZ ddZ dd Zd!d"Zd#d$Zd%d&Zd'd(Zd)d*Zd+d,Zd-d.d/Zd0d1Zd2d3Zd4d5Zd6d7Zd S)=build_pyz5"build" pure Python modules (copy to build directory) build-lib=ddirectory to "build" (copy) tocompileccompile .py to .pyc no-compileN!don't compile .py files [default] optimize=Olalso compile with optimization: -O1 for "python -O", -O2 for "python -OO", and -O0 to disable [default: -O0]forcef2forcibly build everything (ignore file timestamps)cCsLd|_d|_d|_d|_d|_d|_d|_d|_dS)Nr) build_lib py_modulespackage package_data package_dirr optimizer)selfr?/opt/alt/python34/lib64/python3.4/distutils/command/build_py.pyinitialize_options s       zbuild_py.initialize_optionsc Cs|jddd|jj|_|jj|_|jj|_i|_|jjrx6|jjjD]\}}t||j|ts z+build_py.get_data_files..) r%get_package_dirosr.joinrsplitlenfind_data_filesappend)rdatarsrc_dir build_dir filenamesr)r;rr'as %%zbuild_py.get_data_filescs|jjdg|jj|g}gxO|D]G}ttjj|t|}jfdd|Dq5WS)z6Return filenames for package's data files in 'src_dir'cs4g|]*}|krtjj|r|qSr)r>r.isfile)r9fn)filesrrr<s z,build_py.find_data_files..)rgetrr>r.r?rextend)rrrEZglobspatternZfilelistr)rKrrBys !$zbuild_py.find_data_filescCsd}x|jD]v\}}}}xa|D]Y}tjj||}|jtjj||jtjj|||ddq)WqWdS)z$Copy data files into build directoryN preserve_modeF)r(r>r.r?mkpathdirname copy_file)rZlastdirrrErFrGfilenametargetrrrr3s zbuild_py.build_package_datac Cs|jd}|js5|r.tjj|SdSng}x|ry|jdj|}Wn-tk r|jd|d|d=Yq>X|jd|tjj|Sq>W|jjd}|dk r|jd|n|rtjj|SdSdS)zReturn the directory, relative to the top of the source distribution, where package 'package' should be found (at least according to the 'package_dir' option, if any).r7rHrr8NrU)r@rr>r.r?KeyErrorinsertrL)rrr.tailZpdirrrrr=s(      zbuild_py.get_package_dircCs|dkrYtjj|s1td|ntjj|sYtd|qYn|rtjj|d}tjj|r|Stjdd|ndS)NrHz%package directory '%s' does not existz>supposed package directory '%s' exists, but is not a directoryz __init__.pyz!package init file '%s' not found z(or not a regular file)) r>r.existsZDistutilsFileErrorisdirr?rIrwarn)rrrinit_pyrrr check_packages  zbuild_py.check_packagecCs1tjj|s)tjd||dSdSdS)Nz!file %s (for module %s) not foundFT)r>r.rIrr[)rmodule module_filerrr check_moduleszbuild_py.check_modulec Cs|j||ttjj|d}g}tjj|jj}xx|D]p}tjj|}||krtjjtjj |d}|j |||fqP|j d|qPW|S)Nz*.pyrz excluding %s) r]rr>r.r?abspathr$Z script_namesplitextbasenamerCZ debug_print) rrrZ module_filesmodulesZ setup_scriptrZabs_fr^rrrfind_package_moduless  "zbuild_py.find_package_modulesc Cs%i}g}x|jD]}|jd}dj|dd}|d}y||\}}Wn'tk r|j|}d}YnX|s|j||} |df||<| r|j|d| fqntjj||d} |j || sqn|j||| fqW|S)aFinds individually-specified Python modules, ie. those listed by module name in 'self.py_modules'. Returns a list of tuples (package, module_base, filename): 'package' is a tuple of the path through package-space to the module; 'module_base' is the bare (no packages, no dots) module name, and 'filename' is the path to the ".py" file (relative to the distribution root) that implements the module. r7rr8__init__z.pyrUrU) rr@r?rVr=r]rCr>r.r`) rr%rdr^r.rZ module_baserZcheckedr\r_rrr find_moduless*   zbuild_py.find_modulescCswg}|jr%|j|jn|jrsxB|jD]4}|j|}|j||}|j|q8Wn|S)a4Compute the list of all modules that will be built, whether they are specified one-module-at-a-time ('self.py_modules') or by whole packages ('self.packages'). Return a list of tuples (package, module, module_file), just like 'find_modules()' and 'find_package_modules()' do.)rrMrgr%r=re)rrdrrmrrrfind_all_moduless  zbuild_py.find_all_modulescCsdd|jDS)NcSsg|]}|dqS)r8rUr)r9r^rrrr<-s z-build_py.get_source_files..)ri)rrrrget_source_files,szbuild_py.get_source_filescCs.|gt||dg}tjj|S)Nz.py)listr>r.r?)rrFrr^Z outfile_pathrrrget_module_outfile/szbuild_py.get_module_outfiler8cCs|j}g}x|D]\}}}|jd}|j|j||}|j||r|jr|jtjj|ddn|j dkr|jtjj|ddqqqW|dd|j D7}|S)Nr7debug_overrideTrFcSs>g|]4\}}}}|D]}tjj||qqSr)r>r.r?)r9rrErFrGrSrrrr<Cs z(build_py.get_outputs..) rir@rlrrCr importlibutilcache_from_sourcerr()rr0rdZoutputsrr^r_rSrrrr53s"    zbuild_py.get_outputscCst|tr!|jd}n$t|ttfsEtdn|j|j||}tj j |}|j ||j ||ddS)Nr7z:'package' must be a string (dot-separated), list, or tuplerOr) r)strr@rktuple TypeErrorrlrr>r.rQrPrR)rr^r_rZoutfiledirrrr build_moduleJs  zbuild_py.build_modulecCs=|j}x*|D]"\}}}|j|||qWdS)N)rgru)rrdrr^r_rrrr1Ys zbuild_py.build_modulescCsxxq|jD]f}|j|}|j||}x<|D]4\}}}||ksYt|j|||q8Wq WdS)N)r%r=rer+ru)rrrrdZpackage_r^r_rrrr2bs  zbuild_py.build_packagesc Cstjr|jddSddlm}|j}|d tjkrV|tj}n|jr||ddd|j d|d|j n|j dkr||d|j d|j d|d|j ndS) Nz%byte-compiling is disabled, skipping.r)r4r8rrprefixdry_runrU) sysdont_write_bytecoder[distutils.utilr4rr>sepr rrwr)rrKr4rvrrrr4vs    zbuild_py.byte_compile)r r r )zcompiler r)rNr)rrr)zforcerr)__name__ __module__ __qualname__Z descriptionZ user_optionsZboolean_optionsZ negative_optr r/r6r'rBr3r=r]r`rergrirjrlr5rur1r2r4rrrrrs8        '    4     rc@s(eZdZddZddZdS) build_py_2to3cCslg|_|jr|jn|jr?|j|jn|j|j|j|jdddS)Nr0r) updated_filesrr1r%r2r3Zrun_2to3r4r5)rrrrr6s      zbuild_py_2to3.runcCs=tj||||}|dr9|jj|dn|S)Nr8r)rrurrC)rr^r_rresrrrrus zbuild_py_2to3.build_moduleN)r|r}r~r6rurrrrrs  r)__doc__r>importlib.utilrnrxrZdistutils.corerZdistutils.errorsrzrrZ distutilsrrrrrrrs    |PK!h%mϫ)command/__pycache__/upload.cpython-34.pycnu[ i f@sdZddlZddlZddlZddlZddlZddlmZddlm Z m Z m Z ddl m Z ddlmZmZddlmZddlmZdd lmZejd krdd lmZndd lmZGd d d eZdS)z`distutils.command.upload Implements the Distutils 'upload' subcommand (upload package to PyPI).N)standard_b64encode)urlopenRequest HTTPError)urlparse)DistutilsErrorDistutilsOptionError) PyPIRCCommand)spawn)logz2.5)md5c@sieZdZdZejddgZejdgZdd Zd d Zd d Z ddZ dS)uploadzupload binary package to PyPIsignssign files to upload using gpg identity=iGPG identity used to sign filescCs>tj|d|_d|_d|_d|_d|_dS)NrF)r initialize_optionsusernamepassword show_responseridentity)selfr=/opt/alt/python34/lib64/python3.4/distutils/command/upload.pyr#s      zupload.initialize_optionscCstj||jr/|j r/tdn|j}|ikr~|d|_|d|_|d|_|d|_ n|j r|j jr|j j|_ndS)Nz.Must use --sign for --identity to have meaningrr repositoryrealm) r finalize_optionsrrrZ _read_pypircrrrr distribution)rconfigrrrr+s       zupload.finalize_optionscCsR|jjstdnx0|jjD]"\}}}|j|||q(WdS)Nz'No dist file created in earlier command)r Z dist_filesr upload_file)rcommand pyversionfilenamerrrrun=s z upload.runc$Cst|j\}}}}}} |s3|s3| rItd|jn|dIkrhtd|n|jrddd|g} |jrd|jg| d d 6t,t2|d?6|d@6}t3|jdA|dB|}y%t4|}|j5}|j6} Wnwt7k r}!z!|j/t,|!t0j8WYdd}!~!Xn7t9k rM}!z|!j:}|!j6} WYdd}!~!XnX|dCkrz|j/dD|| ft0j1n/dE|| f}"|j/|"t0j8t;|"|j<r|j=|}#dFj>dGdH|#dGdHf}"|j/|"t0j1ndS)KNzIncompatible url %shttphttpszunsupported schema Zgpgz --detach-signz-az --local-userdry_runrbZ file_uploadz:action1Zprotcol_versionnameversioncontentZfiletyper$Z md5_digestz1.0Zmetadata_versionZsummaryZ home_pageZauthorZ author_emaillicense descriptionkeywordsplatformZ classifiersZ download_urlZprovidesZrequiresZ obsoletesrZ bdist_rpmzbuilt for %s %sZ bdist_dumbz built for %sZtersecommentz.ascZ gpg_signature:asciizBasic z3--------------GHSKFJDLGDS7543FJKLFHRE75642756743254s --s-- z+ Content-Disposition: form-data; name="%s"z; filename="%s"rzutf-8s s s zSubmitting %s to %sz multipart/form-data; boundary=%sz Content-typezContent-lengthZ AuthorizationdataheaderszServer response (%s): %szUpload failed (%s): %s -K)r'r()?rrAssertionErrorrrr r*openreadcloser ZmetadataZget_nameZ get_versionospathbasenamer Z hexdigestZget_descriptionZget_urlZ get_contactZget_contact_emailZ get_licenceZget_long_descriptionZ get_keywordsZ get_platformsZget_classifiersZget_download_urlZ get_providesZ get_requiresZ get_obsoletesr3distrrencoderdecodeioBytesIOitemstypetuplestrwritegetvalueZannouncer INFOlenrrZgetcodemsgOSErrorZERRORrcoderrZ_read_pypi_responsejoin)$rr#r$r%ZschemaZnetlocZurlZparamsZqueryZ fragmentsZgpg_argsfr/metar8r5rFr.idZ user_passZauthboundaryZ sep_boundaryZ end_boundaryZbodykeyvaluetitler9ZrequestresultZstatusreasonerStextrrrr"Cs!                         #                        zupload.upload_fileN)zsignrr)rrr) __name__ __module__ __qualname__r1r Z user_optionsZboolean_optionsrrr&r"rrrrr s     r )__doc__sysrCrIZsocketr3base64rZurllib.requestrrrZ urllib.parserZdistutils.errorsrrZdistutils.corer Zdistutils.spawnr Z distutilsr r.r Zhashlibr rrrrs   PK!U].].emxccompiler.pynu["""distutils.emxccompiler Provides the EMXCCompiler class, a subclass of UnixCCompiler that handles the EMX port of the GNU C compiler to OS/2. """ # issues: # # * OS/2 insists that DLLs can have names no longer than 8 characters # We put export_symbols in a def-file, as though the DLL can have # an arbitrary length name, but truncate the output filename. # # * only use OMF objects and use LINK386 as the linker (-Zomf) # # * always build for multithreading (-Zmt) as the accompanying OS/2 port # of Python is only distributed with threads enabled. # # tested configurations: # # * EMX gcc 2.81/EMX 0.9d fix03 import os,sys,copy from distutils.ccompiler import gen_preprocess_options, gen_lib_options from distutils.unixccompiler import UnixCCompiler from distutils.file_util import write_file from distutils.errors import DistutilsExecError, CompileError, UnknownFileError from distutils import log class EMXCCompiler (UnixCCompiler): compiler_type = 'emx' obj_extension = ".obj" static_lib_extension = ".lib" shared_lib_extension = ".dll" static_lib_format = "%s%s" shared_lib_format = "%s%s" res_extension = ".res" # compiled resource file exe_extension = ".exe" def __init__ (self, verbose=0, dry_run=0, force=0): UnixCCompiler.__init__ (self, verbose, dry_run, force) (status, details) = check_config_h() self.debug_print("Python's GCC status: %s (details: %s)" % (status, details)) if status is not CONFIG_H_OK: self.warn( "Python's pyconfig.h doesn't seem to support your compiler. " + ("Reason: %s." % details) + "Compiling may fail because of undefined preprocessor macros.") (self.gcc_version, self.ld_version) = \ get_versions() self.debug_print(self.compiler_type + ": gcc %s, ld %s\n" % (self.gcc_version, self.ld_version) ) # Hard-code GCC because that's what this is all about. # XXX optimization, warnings etc. should be customizable. self.set_executables(compiler='gcc -Zomf -Zmt -O3 -fomit-frame-pointer -mprobe -Wall', compiler_so='gcc -Zomf -Zmt -O3 -fomit-frame-pointer -mprobe -Wall', linker_exe='gcc -Zomf -Zmt -Zcrtdll', linker_so='gcc -Zomf -Zmt -Zcrtdll -Zdll') # want the gcc library statically linked (so that we don't have # to distribute a version dependent on the compiler we have) self.dll_libraries=["gcc"] # __init__ () def _compile(self, obj, src, ext, cc_args, extra_postargs, pp_opts): if ext == '.rc': # gcc requires '.rc' compiled to binary ('.res') files !!! try: self.spawn(["rc", "-r", src]) except DistutilsExecError as msg: raise CompileError(msg) else: # for other files use the C-compiler try: self.spawn(self.compiler_so + cc_args + [src, '-o', obj] + extra_postargs) except DistutilsExecError as msg: raise CompileError(msg) def link (self, target_desc, objects, output_filename, output_dir=None, libraries=None, library_dirs=None, runtime_library_dirs=None, export_symbols=None, debug=0, extra_preargs=None, extra_postargs=None, build_temp=None, target_lang=None): # use separate copies, so we can modify the lists extra_preargs = copy.copy(extra_preargs or []) libraries = copy.copy(libraries or []) objects = copy.copy(objects or []) # Additional libraries libraries.extend(self.dll_libraries) # handle export symbols by creating a def-file # with executables this only works with gcc/ld as linker if ((export_symbols is not None) and (target_desc != self.EXECUTABLE)): # (The linker doesn't do anything if output is up-to-date. # So it would probably better to check if we really need this, # but for this we had to insert some unchanged parts of # UnixCCompiler, and this is not what we want.) # we want to put some files in the same directory as the # object files are, build_temp doesn't help much # where are the object files temp_dir = os.path.dirname(objects[0]) # name of dll to give the helper files the same base name (dll_name, dll_extension) = os.path.splitext( os.path.basename(output_filename)) # generate the filenames for these files def_file = os.path.join(temp_dir, dll_name + ".def") # Generate .def file contents = [ "LIBRARY %s INITINSTANCE TERMINSTANCE" % \ os.path.splitext(os.path.basename(output_filename))[0], "DATA MULTIPLE NONSHARED", "EXPORTS"] for sym in export_symbols: contents.append(' "%s"' % sym) self.execute(write_file, (def_file, contents), "writing %s" % def_file) # next add options for def-file and to creating import libraries # for gcc/ld the def-file is specified as any other object files objects.append(def_file) #end: if ((export_symbols is not None) and # (target_desc != self.EXECUTABLE or self.linker_dll == "gcc")): # who wants symbols and a many times larger output file # should explicitly switch the debug mode on # otherwise we let dllwrap/ld strip the output file # (On my machine: 10KB < stripped_file < ??100KB # unstripped_file = stripped_file + XXX KB # ( XXX=254 for a typical python extension)) if not debug: extra_preargs.append("-s") UnixCCompiler.link(self, target_desc, objects, output_filename, output_dir, libraries, library_dirs, runtime_library_dirs, None, # export_symbols, we do this in our def-file debug, extra_preargs, extra_postargs, build_temp, target_lang) # link () # -- Miscellaneous methods ----------------------------------------- # override the object_filenames method from CCompiler to # support rc and res-files def object_filenames (self, source_filenames, strip_dir=0, output_dir=''): if output_dir is None: output_dir = '' obj_names = [] for src_name in source_filenames: # use normcase to make sure '.rc' is really '.rc' and not '.RC' (base, ext) = os.path.splitext (os.path.normcase(src_name)) if ext not in (self.src_extensions + ['.rc']): raise UnknownFileError("unknown file type '%s' (from '%s')" % \ (ext, src_name)) if strip_dir: base = os.path.basename (base) if ext == '.rc': # these need to be compiled to object files obj_names.append (os.path.join (output_dir, base + self.res_extension)) else: obj_names.append (os.path.join (output_dir, base + self.obj_extension)) return obj_names # object_filenames () # override the find_library_file method from UnixCCompiler # to deal with file naming/searching differences def find_library_file(self, dirs, lib, debug=0): shortlib = '%s.lib' % lib longlib = 'lib%s.lib' % lib # this form very rare # get EMX's default library directory search path try: emx_dirs = os.environ['LIBRARY_PATH'].split(';') except KeyError: emx_dirs = [] for dir in dirs + emx_dirs: shortlibp = os.path.join(dir, shortlib) longlibp = os.path.join(dir, longlib) if os.path.exists(shortlibp): return shortlibp elif os.path.exists(longlibp): return longlibp # Oops, didn't find it in *any* of 'dirs' return None # class EMXCCompiler # Because these compilers aren't configured in Python's pyconfig.h file by # default, we should at least warn the user if he is using a unmodified # version. CONFIG_H_OK = "ok" CONFIG_H_NOTOK = "not ok" CONFIG_H_UNCERTAIN = "uncertain" def check_config_h(): """Check if the current Python installation (specifically, pyconfig.h) appears amenable to building extensions with GCC. Returns a tuple (status, details), where 'status' is one of the following constants: CONFIG_H_OK all is well, go ahead and compile CONFIG_H_NOTOK doesn't look good CONFIG_H_UNCERTAIN not sure -- unable to read pyconfig.h 'details' is a human-readable string explaining the situation. Note there are two ways to conclude "OK": either 'sys.version' contains the string "GCC" (implying that this Python was built with GCC), or the installed "pyconfig.h" contains the string "__GNUC__". """ # XXX since this function also checks sys.version, it's not strictly a # "pyconfig.h" check -- should probably be renamed... from distutils import sysconfig # if sys.version contains GCC then python was compiled with # GCC, and the pyconfig.h file should be OK if sys.version.find("GCC") >= 0: return (CONFIG_H_OK, "sys.version mentions 'GCC'") fn = sysconfig.get_config_h_filename() try: # It would probably better to read single lines to search. # But we do this only once, and it is fast enough f = open(fn) try: s = f.read() finally: f.close() except IOError as exc: # if we can't read this file, we cannot say it is wrong # the compiler will complain later about this file as missing return (CONFIG_H_UNCERTAIN, "couldn't read '%s': %s" % (fn, exc.strerror)) else: # "pyconfig.h" contains an "#ifdef __GNUC__" or something similar if s.find("__GNUC__") >= 0: return (CONFIG_H_OK, "'%s' mentions '__GNUC__'" % fn) else: return (CONFIG_H_NOTOK, "'%s' does not mention '__GNUC__'" % fn) def get_versions(): """ Try to find out the versions of gcc and ld. If not possible it returns None for it. """ from distutils.version import StrictVersion from distutils.spawn import find_executable import re gcc_exe = find_executable('gcc') if gcc_exe: out = os.popen(gcc_exe + ' -dumpversion','r') try: out_string = out.read() finally: out.close() result = re.search('(\d+\.\d+\.\d+)', out_string, re.ASCII) if result: gcc_version = StrictVersion(result.group(1)) else: gcc_version = None else: gcc_version = None # EMX ld has no way of reporting version number, and we use GCC # anyway - so we can link OMF DLLs ld_version = None return (gcc_version, ld_version) PK!TϤii#__pycache__/dir_util.cpython-33.pycnu[ fc@sdZddlZddlZddlmZmZddlmZiadddddZ dddd d Z ddddddd d Z d dZ ddddZ ddZdS(uWdistutils.dir_util Utility functions for manipulating directories and directory trees.iN(uDistutilsFileErroruDistutilsInternalError(ulogiic Cst|ts%td|fntjj|}g}tjj|s[|dkr_|Stjtjj |r~|Stjj |\}}|g}xK|r|rtjj| rtjj |\}}|j d|qWx |D]}tjj ||}tjj |} tj| r6qn|dkrUt jd|n|sytj||Wnitk r} zI| jtjkotjj|std|| jdfnWYdd} ~ XnX|j|ndt|  "  $0umkpathcCsvt}x6|D].}|jtjj|tjj|qWx-t|D]}t||d|d|qOWdS(uCreate all the empty directories under 'base_dir' needed to put 'files' there. 'base_dir' is just the a name of a directory which doesn't necessarily exist yet; 'files' is a list of filenames to be interpreted relative to 'base_dir'. 'base_dir' + the directory portion of every file in 'files' will be created if it doesn't already exist. 'mode', 'verbose' and 'dry_run' flags are as for 'mkpath()'. uverboseudry_runN(usetuadduosupathujoinudirnameusortedumkpath(ubase_dirufilesumodeuverboseudry_rununeed_dirufileudir((u7/opt/alt/python33/lib64/python3.3/distutils/dir_util.pyu create_treePs  ,u create_treecCsddlm}| r=tjj| r=td|nytj|} WnYtjk r} z6| \} } |rg} ntd|| fWYdd} ~ XnX|st|d|ng} x1| D])}tjj ||}tjj ||}|j drqn|rtjj |rtj |}|dkr`t jd ||n|sytj||n| j|qtjj|r| jt||||||d|d |q||||||d|d || j|qW| S( uCopy an entire directory tree 'src' to a new location 'dst'. Both 'src' and 'dst' must be directory names. If 'src' is not a directory, raise DistutilsFileError. If 'dst' does not exist, it is created with 'mkpath()'. The end result of the copy is that every file in 'src' is copied to 'dst', and directories under 'src' are recursively copied to 'dst'. Return the list of files that were copied or might have been copied, using their output name. The return value is unaffected by 'update' or 'dry_run': it is simply the list of all files under 'src', with the names changed to be under 'dst'. 'preserve_mode' and 'preserve_times' are the same as for 'copy_file'; note that they only apply to regular files, not to directories. If 'preserve_symlinks' is true, symlinks will be copied as symlinks (on platforms that support them!); otherwise (the default), the destination of the symlink will be copied. 'update' and 'verbose' are the same as for 'copy_file'. i(u copy_fileu&cannot copy tree '%s': not a directoryuerror listing files in '%s': %sNuverboseu.nfsiulinking %s -> %sudry_run(udistutils.file_utilu copy_fileuosupathuisdiruDistutilsFileErrorulistdiruerrorumkpathujoinu startswithuislinkureadlinkuloguinfousymlinkuappenduextendu copy_tree(usrcudstu preserve_modeupreserve_timesupreserve_symlinksuupdateuverboseudry_runu copy_fileunamesueuerrnouerrstruoutputsunusrc_nameudst_nameu link_dest((u7/opt/alt/python33/lib64/python3.3/distutils/dir_util.pyu copy_treecsJ  &     u copy_treecCsxwtj|D]f}tjj||}tjj|r`tjj| r`t||q|jtj|fqW|jtj |fdS(uHelper for remove_tree().N( uosulistdirupathujoinuisdiruislinku_build_cmdtupleuappenduremoveurmdir(upathu cmdtuplesufureal_f((u7/opt/alt/python33/lib64/python3.3/distutils/dir_util.pyu_build_cmdtuples %u_build_cmdtuplecCs|dkrtjd|n|r)dSg}t||x|D]}yB|d|dtjj|d}|tkrt|=nWqCttfk r}ztj d||WYdd}~XqCXqCWdS(uRecursively remove an entire directory tree. Any errors are ignored (apart from being reported to stdout if 'verbose' is true). iu'removing '%s' (and everything under it)Niuerror removing %s: %s( uloguinfou_build_cmdtupleuosupathuabspathu _path_createduIOErroruOSErroruwarn(u directoryuverboseudry_runu cmdtuplesucmduabspathuexc((u7/opt/alt/python33/lib64/python3.3/distutils/dir_util.pyu remove_trees    u remove_treecCsLtjj|\}}|ddtjkrH||dd}n|S(uTake the full path 'path', and make it a relative path. This is useful to make 'path' the second argument to os.path.join(). iiN(uosupathu splitdriveusep(upathudrive((u7/opt/alt/python33/lib64/python3.3/distutils/dir_util.pyuensure_relativesuensure_relative(u__doc__uosuerrnoudistutils.errorsuDistutilsFileErroruDistutilsInternalErroru distutilsulogu _path_createdumkpathu create_treeu copy_treeu_build_cmdtupleu remove_treeuensure_relative(((u7/opt/alt/python33/lib64/python3.3/distutils/dir_util.pyus  ?E PK!FF$__pycache__/sysconfig.cpython-33.pycnu[ f"Xc@sdZddlZddlZddlZddlmZejjejZ ejjej Z ejjej Z ejjejZdejkrejjejdZn!ejjejjejZejdkr/ded3djkr/ejjejjeejjZnejdkrd ed4djkrejjejjeejjejjZnejdkrd ed5djkrejjejjeejjejjZnd dZeeddZerlejdkrlejjd6rlejjeZejdrlejjeZqlnddZeZdZ yesej!Z nWne"k rYnXddZ#ddddZ$dddddZ%ddZ&ddZ'ddZ(dd d!Z)ej*d"Z+ej*d#Z,ej*d$Z-dd%d&Z.d'd(Z/da0d)d*Z1d+d,Z2d-d.Z3d/d0Z4d1d2Z5dS(7uProvide access to Python's configuration information. The specific configuration variables available depend heavily on the platform and configuration. The values may be retrieved using get_config_var(name), and the list of variables is available via get_config_vars().keys(). Additional convenience functions are also available. Written by: Fred L. Drake, Jr. Email: iNi(uDistutilsPlatformErroru_PYTHON_PROJECT_BASEuntupcbuildiu\pc\vi u\pcbuild\amd64icCs=x6dD].}tjjtjj|d|rdSqWdS(Nu Setup.distu Setup.localuModules(u Setup.distu Setup.localTF(uosupathuisfileujoinuTrueuFalse(udufn((u8/opt/alt/python33/lib64/python3.3/distutils/sysconfig.pyu_is_python_source_dir0s $u_is_python_source_diru_homeu pcbuild\amd64cCstrttSttS(N(u _sys_homeu_is_python_source_diru project_base(((u8/opt/alt/python33/lib64/python3.3/distutils/sysconfig.pyu _python_build;s u _python_builducCstjddS(uReturn a string containing the major and minor Python version, leaving off the patchlevel. Sample return values could be '1.5' or '2.2'. Ni(usysuversion(((u8/opt/alt/python33/lib64/python3.3/distutils/sysconfig.pyuget_python_versionMsuget_python_versioncCs|d kr!|rtpt}ntjdkrtrtp?t}|rL|Strptjj tt d}ntjj t dd}tjj |Sdt t }tjj |d|Stjdkrtjj |dStjdkrtjj |dStd tjd S( uReturn the directory containing installed Python header files. If 'plat_specific' is false (the default), this is the path to the non-platform-specific header files, i.e. Python.h and so on; otherwise, this is the path to platform-specific header files (namely pyconfig.h). If 'prefix' is supplied, use it instead of sys.base_prefix or sys.base_exec_prefix -- i.e., ignore 'plat_specific'. uposixu AST_H_DIRusrcdiruIncludeupythonuincludeuntuos2uFI don't know where Python installs its C header files on platform '%s'N(uNoneuBASE_EXEC_PREFIXu BASE_PREFIXuosunameu python_buildu _sys_homeu project_baseupathujoinuget_config_varunormpathuget_python_versionu build_flagsuDistutilsPlatformError(u plat_specificuprefixubaseuincdiru python_dir((u8/opt/alt/python33/lib64/python3.3/distutils/sysconfig.pyuget_python_incUs(  uget_python_inccCsQ|d kr<|r'|rtp!t}q<|r3tp6t}ntjdkr|sW|r`d}nd}tjj||dt }|r|Stjj|dSntjdkr|rtjj|dSt dkr|Stjj|ddSnTtjd kr:|r!tjj|dStjj|ddSnt d tjd S( uSReturn the directory containing the Python library (standard or site additions). If 'plat_specific' is true, return the directory containing platform-specific modules, i.e. any module from a non-pure-Python module distribution; otherwise, return the platform-shared library directory. If 'standard_lib' is true, return the directory containing standard Python library modules; otherwise, return the directory for site-specific modules. If 'prefix' is supplied, use it instead of sys.base_prefix or sys.base_exec_prefix -- i.e., ignore 'plat_specific'. uposixulib64ulibupythonu site-packagesuntuLibu2.2uos2u?I don't know where Python installs its library on platform '%s'N( uNoneuBASE_EXEC_PREFIXu BASE_PREFIXu EXEC_PREFIXuPREFIXuosunameupathujoinuget_python_versionuDistutilsPlatformError(u plat_specificu standard_libuprefixulibu libpython((u8/opt/alt/python33/lib64/python3.3/distutils/sysconfig.pyuget_python_lib}s4    uget_python_libcCs|jdkrtjdkrYtjddsYddl}|jtdtdd|}t|drb|d|j}nt|WYdd}~XnXy/t}t|}t||WdQXWn^tk r}z>d|}t|dr|d|j}nt|WYdd}~XnXt r(|d|d sh   !+*++     (3 H  m  /   EPK!C$__pycache__/ccompiler.cpython-33.pycnu[ f¹c@sdZddlZddlZddlZddlTddlmZddlmZddl m Z ddl m Z m Z ddlmZmZdd lmZGd d d Zd d fddfdd fddffZeeddZidddfd 6dddfd6dddfd6ddd fd!6d"d#d$fd%6d&d'd(fd6Zd)d*Zeedddd+d,Zd-d.Zd/d0ZdS(1udistutils.ccompiler Contains CCompiler, an abstract base class that defines the interface for the Distutils compiler abstraction model.iN(u*(uspawn(u move_file(umkpath(unewer_pairwiseu newer_group(u split_quoteduexecute(ulogc Bs|EeZdZdZdtZdtZdtZdtZdtZ dtZ dtZ dtZ idd6dd6dd6dd6dd 6Z dddgZd d d d d Zd dZddZddZddZdtddZddZddZddZddZdd Zd!d"Zd#d$Zd%d&Zd'd(Zd)d*Zd+d,Zd-d.Z d/d0Z!d1d2Z"dtd3d4Z#d5d6Z$d7d8Z%d9d:Z&d;d<Z'dtdtdtdtdtd=d>Z(dtdtdtd dtdtdtd?d@Z)dAdBZ*dtd dtdCdDZ+dEZ,dFZ-dGZ.dtdtdtdtdtd dtdtdtdtdHdI Z/dtdtdtdtdtd dtdtdtdtdJdK Z0dtdtdtdtdtd dtdtdtdtdLdM Z1dtdtdtdtd dtdtdtdNdOZ2dPdQZ3dRdSZ4dTdUZ5dtdtdtdtdVdWZ6d dXdYZ7d dZd[d\Z8d dZd]d^Z9d dZd_d`Z:dad dZdbdcZ;dddedfZ<dgdhZ=didjZ>dtdddkdlZ?dmdnZ@dodpZAdqdrdsZBdtS(uu CCompileruAbstract base class to define the interface that must be implemented by real compiler classes. Also has some utility methods used by several compiler classes. The basic idea behind a compiler abstraction class is that each instance can be used for all the compile/link steps in building a single project. Thus, attributes common to all of those compile and link steps -- include directories, macros to define, libraries to link against, etc. -- are attributes of the compiler instance. To allow for variability in how individual files are treated, most of those attributes may be varied on a per-compilation or per-link basis. ucu.cuc++u.ccu.cppu.cxxuobjcu.micCs||_||_||_d|_g|_g|_g|_g|_g|_ g|_ x.|j j D]}|j ||j |qjWdS(N(udry_runuforceuverboseuNoneu output_dirumacrosu include_dirsu librariesu library_dirsuruntime_library_dirsuobjectsu executablesukeysuset_executable(uselfuverboseudry_runuforceukey((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyu__init__Us          uCCompiler.__init__cKsWxP|D]H}||jkr;td||jjfn|j|||qWdS(uDefine the executables (and options for them) that will be run to perform the various stages of compilation. The exact set of executables that may be specified here depends on the compiler class (via the 'executables' class attribute), but most will have: compiler the C/C++ compiler linker_so linker used to create shared objects and libraries linker_exe linker used to create binary executables archiver static library creator On platforms with a command-line (Unix, DOS/Windows), each of these is a string that will be split into executable name and (optional) list of arguments. (Splitting the string is done similarly to how Unix shells operate: words are delimited by spaces, but quotes and backslashes can override this. See 'distutils.util.split_quoted()'.) u$unknown executable '%s' for class %sN(u executablesu ValueErroru __class__u__name__uset_executable(uselfukwargsukey((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyuset_executablesys  uCCompiler.set_executablescCs<t|tr(t||t|nt|||dS(N(u isinstanceustrusetattru split_quoted(uselfukeyuvalue((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyuset_executablesuCCompiler.set_executablecCs<d}x/|jD]$}|d|kr*|S|d7}qWdS(Nii(umacrosuNone(uselfunameuiudefn((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyu _find_macros uCCompiler._find_macrocCsx|D]x}t|toat|dkoat|dtsQ|ddkoat|dtstd|ddqqWdS( uEnsures that every element of 'definitions' is a valid macro definition, ie. either (name,value) 2-tuple or a (name,) tuple. Do nothing if all definitions are OK, raise TypeError otherwise. iiiuinvalid macro definition '%s': u.must be tuple (string,), (string, string), or u(string, None)N(ii(u isinstanceutupleulenustruNoneu TypeError(uselfu definitionsudefn((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyu_check_macro_definitionss # u"CCompiler._check_macro_definitionscCsB|j|}|dk r(|j|=n|jj||fdS(u_Define a preprocessor macro for all compilations driven by this compiler object. The optional parameter 'value' should be a string; if it is not supplied, then the macro will be defined without an explicit value and the exact outcome depends on the compiler used (XXX true? does ANSI say anything about this?) N(u _find_macrouNoneumacrosuappend(uselfunameuvalueui((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyu define_macros   uCCompiler.define_macrocCsE|j|}|dk r(|j|=n|f}|jj|dS(uUndefine a preprocessor macro for all compilations driven by this compiler object. If the same macro is defined by 'define_macro()' and undefined by 'undefine_macro()' the last call takes precedence (including multiple redefinitions or undefinitions). If the macro is redefined/undefined on a per-compilation basis (ie. in the call to 'compile()'), then that takes precedence. N(u _find_macrouNoneumacrosuappend(uselfunameuiuundefn((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyuundefine_macros    uCCompiler.undefine_macrocCs|jj|dS(uAdd 'dir' to the list of directories that will be searched for header files. The compiler is instructed to search directories in the order in which they are supplied by successive calls to 'add_include_dir()'. N(u include_dirsuappend(uselfudir((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyuadd_include_dirsuCCompiler.add_include_dircCs|dd|_dS(uySet the list of directories that will be searched to 'dirs' (a list of strings). Overrides any preceding calls to 'add_include_dir()'; subsequence calls to 'add_include_dir()' add to the list passed to 'set_include_dirs()'. This does not affect any list of standard include directories that the compiler may search by default. N(u include_dirs(uselfudirs((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyuset_include_dirssuCCompiler.set_include_dirscCs|jj|dS(uAdd 'libname' to the list of libraries that will be included in all links driven by this compiler object. Note that 'libname' should *not* be the name of a file containing a library, but the name of the library itself: the actual filename will be inferred by the linker, the compiler, or the compiler class (depending on the platform). The linker will be instructed to link against libraries in the order they were supplied to 'add_library()' and/or 'set_libraries()'. It is perfectly valid to duplicate library names; the linker will be instructed to link against libraries as many times as they are mentioned. N(u librariesuappend(uselfulibname((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyu add_librarysuCCompiler.add_librarycCs|dd|_dS(uSet the list of libraries to be included in all links driven by this compiler object to 'libnames' (a list of strings). This does not affect any standard system libraries that the linker may include by default. N(u libraries(uselfulibnames((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyu set_librariessuCCompiler.set_librariescCs|jj|dS(u'Add 'dir' to the list of directories that will be searched for libraries specified to 'add_library()' and 'set_libraries()'. The linker will be instructed to search for libraries in the order they are supplied to 'add_library_dir()' and/or 'set_library_dirs()'. N(u library_dirsuappend(uselfudir((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyuadd_library_dirsuCCompiler.add_library_dircCs|dd|_dS(uSet the list of library search directories to 'dirs' (a list of strings). This does not affect any standard library search path that the linker may search by default. N(u library_dirs(uselfudirs((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyuset_library_dirs suCCompiler.set_library_dirscCs|jj|dS(ulAdd 'dir' to the list of directories that will be searched for shared libraries at runtime. N(uruntime_library_dirsuappend(uselfudir((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyuadd_runtime_library_dirsu!CCompiler.add_runtime_library_dircCs|dd|_dS(uSet the list of directories to search for shared libraries at runtime to 'dirs' (a list of strings). This does not affect any standard search path that the runtime linker may search by default. N(uruntime_library_dirs(uselfudirs((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyuset_runtime_library_dirssu"CCompiler.set_runtime_library_dirscCs|jj|dS(uAdd 'object' to the list of object files (or analogues, such as explicitly named library files or the output of "resource compilers") to be included in every link driven by this compiler object. N(uobjectsuappend(uselfuobject((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyuadd_link_object suCCompiler.add_link_objectcCs|dd|_dS(uSet the list of object files (or analogues) to be included in every link to 'objects'. This does not affect any standard object files that the linker may include by default (such as system libraries). N(uobjects(uselfuobjects((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyuset_link_objects(suCCompiler.set_link_objectscCs|dkr|j}nt|ts6tdn|dkrN|j}n1t|trs||jplg}n td|dkr|j}n=t|ttfrt||jpg}n td|dkrg}n|j |ddd|}t |t |ks"t t ||}i} xmt t |D]Y} || } || } tjj| d} |jtjj| | | f| | 'runtime_library_dirs' (if supplied) must be a list of stringsN(uNoneu librariesu isinstanceulistutupleu TypeErroru library_dirsuruntime_library_dirs(uselfu librariesu library_dirsuruntime_library_dirs((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyu _fix_lib_argss&          uCCompiler._fix_lib_argscCsE|jr dS|jr.t||dd}nt||}|SdS(ujReturn true if we need to relink the files listed in 'objects' to recreate 'output_file'. umissingunewerNT(uforceuTrueudry_runu newer_group(uselfuobjectsu output_fileunewer((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyu _need_links   uCCompiler._need_linkc Cst|ts|g}nd}t|j}x~|D]v}tjj|\}}|jj |}y1|jj |}||kr|}|}nWq7t k rYq7Xq7W|S(u|Detect the language of a given file, or list of files. Uses language_map, and language_order to do the job. N( u isinstanceulistuNoneulenulanguage_orderuosupathusplitextu language_mapugetuindexu ValueError( uselfusourcesulanguindexusourceubaseuextuextlanguextindex((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyudetect_languages      uCCompiler.detect_languagecCsdS(uPreprocess a single C/C++ source file, named in 'source'. Output will be written to file named 'output_file', or stdout if 'output_file' not supplied. 'macros' is a list of macro definitions as for 'compile()', which will augment the macros set with 'define_macro()' and 'undefine_macro()'. 'include_dirs' is a list of directory names that will be added to the default list. Raises PreprocessError on failure. N((uselfusourceu output_fileumacrosu include_dirsu extra_preargsuextra_postargs((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyu preprocesss uCCompiler.preprocessc Cs|j||||||\}} }} } |j| ||} xV| D]N} y| | \}}Wntk rzwIYnX|j| ||| || qIW| S(uK Compile one or more source files. 'sources' must be a list of filenames, most likely C/C++ files, but in reality anything that can be handled by a particular compiler and compiler class (eg. MSVCCompiler can handle resource files in 'sources'). Return a list of object filenames, one per source filename in 'sources'. Depending on the implementation, not all source files will necessarily be compiled, but all corresponding object filenames will be returned. If 'output_dir' is given, object files will be put under it, while retaining their original path component. That is, "foo/bar.c" normally compiles to "foo/bar.o" (for a Unix implementation); if 'output_dir' is "build", then it would compile to "build/foo/bar.o". 'macros', if given, must be a list of macro definitions. A macro definition is either a (name, value) 2-tuple or a (name,) 1-tuple. The former defines a macro; if the value is None, the macro is defined without an explicit value. The 1-tuple case undefines a macro. Later definitions/redefinitions/ undefinitions take precedence. 'include_dirs', if given, must be a list of strings, the directories to add to the default include file search path for this compilation only. 'debug' is a boolean; if true, the compiler will be instructed to output debug symbols in (or alongside) the object file(s). 'extra_preargs' and 'extra_postargs' are implementation- dependent. On platforms that have the notion of a command-line (e.g. Unix, DOS/Windows), they are most likely lists of strings: extra command-line arguments to prepand/append to the compiler command line. On other platforms, consult the implementation class documentation. In any event, they are intended as an escape hatch for those occasions when the abstract compiler framework doesn't cut the mustard. 'depends', if given, is a list of filenames that all targets depend on. If a source file is older than any file in depends, then the source file will be recompiled. This supports dependency tracking, but only at a coarse granularity. Raises CompileError on failure. (u_setup_compileu _get_cc_argsuKeyErroru_compile(uselfusourcesu output_dirumacrosu include_dirsudebugu extra_preargsuextra_postargsudependsuobjectsupp_optsubuilducc_argsuobjusrcuext((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyucompiles6   uCCompiler.compilecCsdS(uCompile 'src' to product 'obj'.N((uselfuobjusrcuextucc_argsuextra_postargsupp_opts((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyu_compileCsuCCompiler._compilecCsdS(u&Link a bunch of stuff together to create a static library file. The "bunch of stuff" consists of the list of object files supplied as 'objects', the extra object files supplied to 'add_link_object()' and/or 'set_link_objects()', the libraries supplied to 'add_library()' and/or 'set_libraries()', and the libraries supplied as 'libraries' (if any). 'output_libname' should be a library name, not a filename; the filename will be inferred from the library name. 'output_dir' is the directory where the library file will be put. 'debug' is a boolean; if true, debugging information will be included in the library (note that on most platforms, it is the compile step where this matters: the 'debug' flag is included here just for consistency). 'target_lang' is the target language for which the given objects are being compiled. This allows specific linkage time treatment of certain languages. Raises LibError on failure. N((uselfuobjectsuoutput_libnameu output_dirudebugu target_lang((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyucreate_static_libIsuCCompiler.create_static_libu shared_objectushared_libraryu executablecCs tdS(uuLink a bunch of stuff together to create an executable or shared library file. The "bunch of stuff" consists of the list of object files supplied as 'objects'. 'output_filename' should be a filename. If 'output_dir' is supplied, 'output_filename' is relative to it (i.e. 'output_filename' can provide directory components if needed). 'libraries' is a list of libraries to link against. These are library names, not filenames, since they're translated into filenames in a platform-specific way (eg. "foo" becomes "libfoo.a" on Unix and "foo.lib" on DOS/Windows). However, they can include a directory component, which means the linker will look in that specific directory rather than searching all the normal locations. 'library_dirs', if supplied, should be a list of directories to search for libraries that were specified as bare library names (ie. no directory component). These are on top of the system default and those supplied to 'add_library_dir()' and/or 'set_library_dirs()'. 'runtime_library_dirs' is a list of directories that will be embedded into the shared library and used to search for other shared libraries that *it* depends on at run-time. (This may only be relevant on Unix.) 'export_symbols' is a list of symbols that the shared library will export. (This appears to be relevant only on Windows.) 'debug' is as for 'compile()' and 'create_static_lib()', with the slight distinction that it actually matters on most platforms (as opposed to 'create_static_lib()', which includes a 'debug' flag mostly for form's sake). 'extra_preargs' and 'extra_postargs' are as for 'compile()' (except of course that they supply command-line arguments for the particular linker being used). 'target_lang' is the target language for which the given objects are being compiled. This allows specific linkage time treatment of certain languages. Raises LinkError on failure. N(uNotImplementedError(uselfu target_descuobjectsuoutput_filenameu output_diru librariesu library_dirsuruntime_library_dirsuexport_symbolsudebugu extra_preargsuextra_postargsu build_tempu target_lang((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyulinkis9uCCompiler.linkc CsG|jtj||j|dd||||||| | | | dS(Nulib_typeushared(ulinku CCompileruSHARED_LIBRARYulibrary_filename( uselfuobjectsuoutput_libnameu output_diru librariesu library_dirsuruntime_library_dirsuexport_symbolsudebugu extra_preargsuextra_postargsu build_tempu target_lang((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyulink_shared_libs  uCCompiler.link_shared_libc Cs8|jtj||||||||| | | | dS(N(ulinku CCompileru SHARED_OBJECT( uselfuobjectsuoutput_filenameu output_diru librariesu library_dirsuruntime_library_dirsuexport_symbolsudebugu extra_preargsuextra_postargsu build_tempu target_lang((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyulink_shared_objects  uCCompiler.link_shared_objectc CsA|jtj||j|||||d||| d| dS(N(ulinku CCompileru EXECUTABLEuexecutable_filenameuNone( uselfuobjectsuoutput_prognameu output_diru librariesu library_dirsuruntime_library_dirsudebugu extra_preargsuextra_postargsu target_lang((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyulink_executables  uCCompiler.link_executablecCs tdS(ukReturn the compiler option to add 'dir' to the list of directories searched for libraries. N(uNotImplementedError(uselfudir((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyulibrary_dir_optionsuCCompiler.library_dir_optioncCs tdS(usReturn the compiler option to add 'dir' to the list of directories searched for runtime libraries. N(uNotImplementedError(uselfudir((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyuruntime_library_dir_optionsu$CCompiler.runtime_library_dir_optioncCs tdS(uReturn the compiler option to add 'dir' to the list of libraries linked into the shared library or executable. N(uNotImplementedError(uselfulib((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyulibrary_optionsuCCompiler.library_optionc CsMddl}|dkr!g}n|dkr6g}n|dkrKg}n|dkr`g}n|jd|dd \}}tj|d} z7x|D]} | jd| qW| jd|Wd| jXy|j|gd|} Wnt k r d SYnXy |j | d d |d |Wnt t fk rHd SYnXd S(uReturn a boolean indicating whether funcname is supported on the current platform. The optional arguments can be used to augment the compilation environment. iNu.cutextuwu#include "%s" u+main (int argc, char **argv) { %s(); } u include_dirsua.outu librariesu library_dirsTF(utempfileuNoneumkstempuTrueuosufdopenuwriteucloseucompileu CompileErroruFalseulink_executableu LinkErroru TypeError( uselfufuncnameuincludesu include_dirsu librariesu library_dirsutempfileufdufnameufuincluobjects((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyu has_functions8               uCCompiler.has_functioncCs tdS(uHSearch the specified list of directories for a static or shared library file 'lib' and return the full path to that file. If 'debug' true, look for a debugging version (if that makes sense on the current platform). Return None if 'lib' wasn't found in any of the specified directories. N(uNotImplementedError(uselfudirsulibudebug((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyufind_library_file#suCCompiler.find_library_fileucCs|dkrd}ng}x|D]}tjj|\}}tjj|d}|tjj|d}||jkrtd||fn|rtjj|}n|j tjj |||j q"W|S(Nuiu"unknown file type '%s' (from '%s')( uNoneuosupathusplitextu splitdriveuisabsusrc_extensionsuUnknownFileErrorubasenameuappendujoinu obj_extension(uselfusource_filenamesu strip_diru output_diru obj_namesusrc_nameubaseuext((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyuobject_filenamesNs   uCCompiler.object_filenamescCsG|dk st|r-tjj|}ntjj|||jS(N(uNoneuAssertionErroruosupathubasenameujoinushared_lib_extension(uselfubasenameu strip_diru output_dir((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyushared_object_filename_su CCompiler.shared_object_filenamecCsM|dk st|r-tjj|}ntjj|||jpHdS(Nu(uNoneuAssertionErroruosupathubasenameujoinu exe_extension(uselfubasenameu strip_diru output_dir((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyuexecutable_filenameesuCCompiler.executable_filenameustaticc Cs|dk st|dkr-tdnt||d}t||d}tjj|\}}|||f} |rd}ntjj||| S( Nustaticusharedudylibu0'lib_type' must be "static", "shared" or "dylib"u _lib_formatu_lib_extensionu(ustaticusharedudylib(uNoneuAssertionErroru ValueErrorugetattruosupathusplitujoin( uselfulibnameulib_typeu strip_diru output_dirufmtuextudirubaseufilename((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyulibrary_filenameks   uCCompiler.library_filenameicCstj|dS(N(ulogudebug(uselfumsgulevel((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyuannounce~suCCompiler.announcecCs'ddlm}|r#t|ndS(Ni(uDEBUG(udistutils.debuguDEBUGuprint(uselfumsguDEBUG((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyu debug_printsuCCompiler.debug_printcCstjjd|dS(Nu warning: %s (usysustderruwrite(uselfumsg((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyuwarnsuCCompiler.warncCst||||jdS(N(uexecuteudry_run(uselfufuncuargsumsgulevel((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyuexecutesuCCompiler.executecCst|d|jdS(Nudry_run(uspawnudry_run(uselfucmd((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyuspawnsuCCompiler.spawncCst||d|jS(Nudry_run(u move_fileudry_run(uselfusrcudst((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyu move_filesuCCompiler.move_fileicCst||d|jdS(Nudry_run(umkpathudry_run(uselfunameumode((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyumkpathsuCCompiler.mkpathN(Cu__name__u __module__u __qualname__u__doc__uNoneu compiler_typeusrc_extensionsu obj_extensionustatic_lib_extensionushared_lib_extensionustatic_lib_formatushared_lib_formatu exe_extensionu language_mapulanguage_orderu__init__uset_executablesuset_executableu _find_macrou_check_macro_definitionsu define_macrouundefine_macrouadd_include_diruset_include_dirsu add_libraryu set_librariesuadd_library_diruset_library_dirsuadd_runtime_library_diruset_runtime_library_dirsuadd_link_objectuset_link_objectsu_setup_compileu _get_cc_argsu_fix_compile_argsu _prep_compileu_fix_object_argsu _fix_lib_argsu _need_linkudetect_languageu preprocessucompileu_compileucreate_static_libu SHARED_OBJECTuSHARED_LIBRARYu EXECUTABLEulinkulink_shared_libulink_shared_objectulink_executableulibrary_dir_optionuruntime_library_dir_optionulibrary_optionu has_functionufind_library_fileuobject_filenamesushared_object_filenameuexecutable_filenameulibrary_filenameuannounceu debug_printuwarnuexecuteuspawnu move_fileumkpath(u __locals__((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyu CCompilers    $              +   "   B 4     *+    u CCompilerucygwin.*uunixuos2emxuemxuposixuntumsvccCs|dkrtj}n|dkr0tj}nxHtD]@\}}tj||dk sstj||dk r7|Sq7WdS(ukDetermine the default compiler to use for the given platform. osname should be one of the standard Python OS names (i.e. the ones returned by os.name) and platform the common value returned by sys.platform for the platform in question. The default values are os.name and sys.platform in case the parameters are not given. uunixN(uNoneuosunameusysuplatformu_default_compilersureumatch(uosnameuplatformupatternucompiler((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyuget_default_compilers    uget_default_compileru unixccompileru UnixCCompilerustandard UNIX-style compileru msvccompileru MSVCCompileruMicrosoft Visual C++ucygwinccompileruCygwinCCompileru'Cygwin port of GNU C Compiler for Win32ucygwinuMingw32CCompileru(Mingw32 port of GNU C Compiler for Win32umingw32u bcppcompileru BCPPCompileruBorland C++ Compilerubcppu emxccompileru EMXCCompileru#EMX port of GNU C Compiler for OS/2cCsvddlm}g}x6tjD](}|jd|dt|dfq#W|j||}|jddS(uyPrint list of available compilers (used by the "--help-compiler" options to "build", "build_ext", "build_clib"). i(u FancyGetoptu compiler=iuList of available compilers:N(udistutils.fancy_getoptu FancyGetoptucompiler_classukeysuappenduNoneusortu print_help(u FancyGetoptu compilersucompilerupretty_printer((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyushow_compilerss  ushow_compilersc Cs#|dkrtj}ny2|dkr6t|}nt|\}}}WnEtk rd|}|dk r|d|}nt|YnXy5d|}t|tj |} t | |} WnIt k rt d|Yn(tk rt d||fYnX| d||S(u[Generate an instance of some CCompiler subclass for the supplied platform/compiler combination. 'plat' defaults to 'os.name' (eg. 'posix', 'nt'), and 'compiler' defaults to the default compiler for that platform. Currently only 'posix' and 'nt' are supported, and the default compilers are "traditional Unix interface" (UnixCCompiler class) and Visual C++ (MSVCCompiler class). Note that it's perfectly possible to ask for a Unix compiler object under Windows, and a Microsoft compiler object under Unix -- if you supply a value for 'compiler', 'plat' is ignored. u5don't know how to compile C/C++ code on platform '%s'u with '%s' compileru distutils.u4can't compile C/C++ code: unable to load module '%s'uBcan't compile C/C++ code: unable to find class '%s' in module '%s'N( uNoneuosunameuget_default_compilerucompiler_classuKeyErroruDistutilsPlatformErroru __import__usysumodulesuvarsu ImportErroruDistutilsModuleError( uplatucompileruverboseudry_runuforceu module_nameu class_nameulong_descriptionumsgumoduleuklass((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyu new_compilers2           u new_compilercCsg}x|D]}t|toAdt|ko?dknsWtd|nt|dkr|jd|dq t|dkr |dd kr|jd|dq|jd|q q Wx|D]}|jd|qW|S( uGenerate C pre-processor options (-D, -U, -I) as used by at least two types of compilers: the typical Unix compiler and Visual C++. 'macros' is the usual thing, a list of 1- or 2-tuples, where (name,) means undefine (-U) macro 'name', and (name,value) means define (-D) macro 'name' to 'value'. 'include_dirs' is just a list of directory names to be added to the header file search path (-I). Returns a list of command-line options suitable for either Unix compilers or Visual C++. iiuPbad macro definition '%s': each element of 'macros' list must be a 1- or 2-tupleu-U%siu-D%su-D%s=%su-I%sN(u isinstanceutupleulenu TypeErroruappenduNone(umacrosu include_dirsupp_optsumacroudir((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyugen_preprocess_options s 1  ugen_preprocess_optionsc Csg}x$|D]}|j|j|q WxF|D]>}|j|}t|tre||}q4|j|q4Wx|D]y}tjj|\}} |r|j|g| } | r|j| q|j d|q}|j|j |q}W|S(ucGenerate linker options for searching library directories and linking with specific libraries. 'libraries' and 'library_dirs' are, respectively, lists of library names (not filenames!) and search directories. Returns a list of command-line options suitable for use with some compiler (depending on the two format strings passed in). u6no library file corresponding to '%s' found (skipping)( uappendulibrary_dir_optionuruntime_library_dir_optionu isinstanceulistuosupathusplitufind_library_fileuwarnulibrary_option( ucompileru library_dirsuruntime_library_dirsu librariesulib_optsudiruoptulibulib_dirulib_nameulib_file((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyugen_lib_options:s$      ugen_lib_options(u__doc__usysuosureudistutils.errorsudistutils.spawnuspawnudistutils.file_utilu move_fileudistutils.dir_utilumkpathudistutils.dep_utilunewer_pairwiseu newer_groupudistutils.utilu split_quoteduexecuteu distutilsulogu CCompileru_default_compilersuNoneuget_default_compilerucompiler_classushow_compilersu new_compilerugen_preprocess_optionsugen_lib_options(((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyusB$            - -PK! __pycache__/debug.cpython-33.pyonu[ fc@s"ddlZejjdZdS(iNuDISTUTILS_DEBUG(uosuenvironugetuDEBUG(((u4/opt/alt/python33/lib64/python3.3/distutils/debug.pyus PK!CPP__pycache__/util.cpython-33.pyonu[ f:Qc @sdZddlZddlZddlZddlZddlZddlmZddlm Z ddl m Z ddl m Z ddlmZdd Zd d Zd d ZdaddZddZdddZdaaaddZddZdddddZddZdddddddddZd d!Zdddd"d#Z ddddd$d%Z!Gd&d'd'Z"dS((uudistutils.util Miscellaneous utility functions -- anything that doesn't fit into one of the other *util.py modules. iN(uDistutilsPlatformError(unewer(uspawn(ulog(uDistutilsByteCompileErrorcCstjdkrd}tjj|}|d*kr:tjStjjd|}tj|t||j}|dkrdS|dkrdStjSd tjkrtjd Stjd kst td  rtjStj \}}}}}|jj d d }|j dd}|j d d}|dddkrTd||fS|dddkr|ddkrd}dt |dd|ddf}idd6dd6} |d | tj 7}qn|dd!d"krd||fS|ddd#kr"d$|||fS|dd%d&krzd&}tjd'tj} | j|} | r| j}qn[|dd%d(krddl} ddl} | j| jj|||\}}}nd)|||fS(+uReturn a string that identifies the current platform. This is used mainly to distinguish platform-specific build directories and platform-specific built distributions. Typically includes the OS name and version and the architecture (as supplied by 'os.uname()'), although the exact information included depends on the OS; eg. for IRIX the architecture isn't particularly important (IRIX only runs on SGI hardware), but for Linux the kernel version isn't particularly important. Examples of returned values: linux-i586 linux-alpha (?) solaris-2.6-sun4u irix-5.3 irix64-6.2 Windows will return one of: win-amd64 (64bit Windows on AMD64 (aka x86_64, Intel64, EM64T, etc) win-ia64 (64bit Windows on Itanium) win32 (all others - specifically, sys.platform is returned) For other non-POSIX platforms, currently just returns 'sys.platform'. untu bit (iu)uamd64u win-amd64uitaniumuwin-ia64u_PYTHON_HOST_PLATFORMuposixuunameu/uu u_u-Niulinuxu%s-%susunosiu5usolarisu%d.%siiu32bitiu64bitlu.%siuirixuaixu%s-%s.%siucygwinu[\d.]+udarwinu%s-%s-%si(uosunameusysuversionufinduplatformulenuloweruenvironuhasattruunameureplaceuintumaxsizeureucompileuASCIIumatchugroupu _osx_supportudistutils.sysconfiguget_platform_osxu sysconfiguget_config_vars(uprefixuiujulookuosnameuhostureleaseuversionumachineubitnessurel_reumu _osx_supportu distutils((u3/opt/alt/python33/lib64/python3.3/distutils/util.pyu get_platformsX #   ( u get_platformcCstjdkr|S|s|S|ddkr@td|n|ddkrctd|n|jd}xd|kr|jdquW|stjStjj|S(uReturn 'pathname' as a name that will work on the native filesystem, i.e. split it on '/' and put it back together again using the current directory separator. Needed because filenames in the setup script are always supplied in Unix style, and have to be converted to the local convention before we can actually use them in the filesystem. Raises ValueError on non-Unix-ish systems if 'pathname' either starts or ends with a slash. u/iupath '%s' cannot be absoluteiupath '%s' cannot end with '/'u.i(uosusepu ValueErrorusplituremoveucurdirupathujoin(upathnameupaths((u3/opt/alt/python33/lib64/python3.3/distutils/util.pyu convert_pathos u convert_pathcCs(tjdkrTtjj|s4tjj||Stjj||ddSntjdkrtjj|\}}|ddkr|dd}ntjj||Stjdkrtjj|\}}|dtjkr|dd}ntjj||StdtjdS( u Return 'pathname' with 'new_root' prepended. If 'pathname' is relative, this is equivalent to "os.path.join(new_root,pathname)". Otherwise, it requires making 'pathname' relative and then joining the two, which is tricky on DOS/Windows and Mac OS. uposixiNuntiu\uos2u!nothing known about platform '%s'(uosunameupathuisabsujoinu splitdriveusepuDistutilsPlatformError(unew_rootupathnameudriveupath((u3/opt/alt/python33/lib64/python3.3/distutils/util.pyu change_roots u change_rootcCstr dStjdkrWdtjkrWddl}|jtjdtjd._substu\$([a-zA-Z_][a-zA-Z_0-9]*)uinvalid variable '$%s'N(u check_environureusubuKeyErroru ValueError(usu local_varsu_substuvar((u3/opt/alt/python33/lib64/python3.3/distutils/util.pyu subst_varss u subst_varsuerror: cCs|t|S(N(ustr(uexcuprefix((u3/opt/alt/python33/lib64/python3.3/distutils/util.pyugrok_environment_errorsugrok_environment_errorcCs8tjdtjatjdatjdadS(Nu [^\\\'\"%s ]*u'(?:[^'\\]|\\.)*'u"(?:[^"\\]|\\.)*"(ureucompileustringu whitespaceu _wordchars_reu _squote_reu _dquote_re(((u3/opt/alt/python33/lib64/python3.3/distutils/util.pyu _init_regexsu _init_regexcCs tdkrtn|j}g}d}x|rtj||}|j}|t|kr|j|d|Pn||tj kr|j|d|||dj }d}n||dkr |d|||dd}|d}n||dkr/t j||}n9||dkrTt j||}nt d|||dkrtd||n|j\}}|d|||d|d||d}|jd }|t|kr1|j|Pq1q1W|S( uSplit a string up according to Unix shell-like rules for quotes and backslashes. In short: words are delimited by spaces, as long as those spaces are not escaped by a backslash, or inside a quoted string. Single and double quotes are equivalent, and the quote characters can be backslash-escaped. The backslash is stripped from any two-character escape sequence, leaving only the escaped character. The quote characters are stripped from any quoted string. Returns a list of words. iNu\iu'u"u!this can't happen (bad char '%c')u"bad string (mismatched %s quotes?)i(u _wordchars_reuNoneu _init_regexustripumatchuendulenuappendustringu whitespaceulstripu _squote_reu _dquote_reu RuntimeErroru ValueErroruspan(usuwordsuposumuendubeg((u3/opt/alt/python33/lib64/python3.3/distutils/util.pyu split_quoteds@     "  4 u split_quotedcCss|dkrOd|j|f}|dddkrO|ddd}qOntj||so||ndS( uPerform some action that affects the outside world (eg. by writing to the filesystem). Such actions are special because they are disabled by the 'dry_run' flag. This method takes care of all that bureaucracy for you; all you have to do is supply the function to call and an argument tuple for it (to embody the "external action" being performed), and an optional message to print. u%s%riNu,)iu)ii(uNoneu__name__uloguinfo(ufuncuargsumsguverboseudry_run((u3/opt/alt/python33/lib64/python3.3/distutils/util.pyuexecute#s  uexecutecCsC|j}|dkrdS|dkr,dStd|fdS(uConvert a string representation of truth to true (1) or false (0). True values are 'y', 'yes', 't', 'true', 'on', and '1'; false values are 'n', 'no', 'f', 'false', 'off', and '0'. Raises ValueError if 'val' is anything else. uyuyesututrueuonu1iununoufufalseuoffu0iuinvalid truth value %rN(uyuyesututrueuonu1(ununoufufalseuoffu0(uloweru ValueError(uval((u3/opt/alt/python33/lib64/python3.3/distutils/util.pyu strtobool6s    u strtoboolicCstjrtdn|dkr9to3|dk}n|sy&ddlm}|d\} } Wn5tk rddlm} d| d} } YnXt j d| |s@| dk rt j | d} nt | d} | jd| jd jtt|d | jd |||||f| jntj| g} |d krn| jd d n|dkr| jd dnt| d|tt j| fd| d|n[ddlm}xH|D]@}|dddkrqn|dkrtj|d| }ntj|}|}|r|dt||krntd||fn|t|d}n|rt jj||}nt jj|}|r|st ||rt j d|||s||||qqt j!d||qqWdS(uByte-compile a collection of Python source files to either .pyc or .pyo files in a __pycache__ subdirectory. 'py_files' is a list of files to compile; any files that don't end in ".py" are silently skipped. 'optimize' must be one of the following: 0 - don't optimize (generate .pyc) 1 - normal optimization (like "python -O") 2 - extra optimization (like "python -OO") If 'force' is true, all files are recompiled regardless of timestamps. The source filename encoded in each bytecode file defaults to the filenames listed in 'py_files'; you can modify these with 'prefix' and 'basedir'. 'prefix' is a string that will be stripped off of each source filename, and 'base_dir' is a directory name that will be prepended (after 'prefix' is stripped). You can supply either or both (or neither) of 'prefix' and 'base_dir', as you wish. If 'dry_run' is true, doesn't actually do anything that would affect the filesystem. Byte-compilation is either done directly in this interpreter process with the standard py_compile module, or indirectly by writing a temporary script and executing it. Normally, you should let 'byte_compile()' figure out to use direct compilation or not (see the source for details). The 'direct' flag is used by the script generated in indirect mode; unless you know what you're doing, leave it set to None. ubyte-compiling is disabled.i(umkstempu.py(umktempu$writing byte-compilation script '%s'uwu2from distutils.util import byte_compile files = [ u, u] u byte_compile(files, optimize=%r, force=%r, prefix=%r, base_dir=%r, verbose=%r, dry_run=0, direct=1) iu-Oiu-OOudry_runu removing %s(ucompileiNudebug_overrideu1invalid prefix: filename %r doesn't start with %rubyte-compiling %s to %su%skipping byte-compilation of %s to %si("usysudont_write_bytecodeuDistutilsByteCompileErroruNoneu __debug__utempfileumkstempu ImportErrorumktempuloguinfouosufdopenuopenuwriteujoinumapureprucloseu executableuinsertuspawnuexecuteuremoveu py_compileucompileuimpucache_from_sourceulenu ValueErrorupathubasenameunewerudebug(upy_filesuoptimizeuforceuprefixubase_diruverboseudry_runudirectumkstempu script_fdu script_nameumktempuscriptucmducompileufileucfileudfileu cfile_base((u3/opt/alt/python33/lib64/python3.3/distutils/util.pyu byte_compileFsj"    #       u byte_compilecCs"|jd}d}|j|S(uReturn a version of the string escaped for inclusion in an RFC-822 header, by ensuring there are 8 spaces space after each newline. u iu u u (usplitujoin(uheaderulinesusep((u3/opt/alt/python33/lib64/python3.3/distutils/util.pyu rfc822_escapesu rfc822_escapecCsz|s dSddlm}m}Gddd|}|dkrQ|d}n||d|}|j|dd dS( u Invoke 2to3 on a list of Python files. The files should all come from the build area, as the modification is done in-place. To reduce the build time, only files modified since the last invocation of this function should be passed in the files argument.Ni(uRefactoringTooluget_fixers_from_packagecBs8|EeZdZddZddZddZdS(u*run_2to3..DistutilsRefactoringToolc_stj||dS(N(uloguerror(uselfumsguargsukw((u3/opt/alt/python33/lib64/python3.3/distutils/util.pyu log_errorsu4run_2to3..DistutilsRefactoringTool.log_errorcWstj||dS(N(uloguinfo(uselfumsguargs((u3/opt/alt/python33/lib64/python3.3/distutils/util.pyu log_messagesu6run_2to3..DistutilsRefactoringTool.log_messagecWstj||dS(N(ulogudebug(uselfumsguargs((u3/opt/alt/python33/lib64/python3.3/distutils/util.pyu log_debugsu4run_2to3..DistutilsRefactoringTool.log_debugN(u__name__u __module__u __qualname__u log_erroru log_messageu log_debug(u __locals__((u3/opt/alt/python33/lib64/python3.3/distutils/util.pyuDistutilsRefactoringTools  uDistutilsRefactoringToolu lib2to3.fixesuoptionsuwriteT(ulib2to3.refactoruRefactoringTooluget_fixers_from_packageuNoneurefactoruTrue(ufilesu fixer_namesuoptionsuexplicituRefactoringTooluget_fixers_from_packageuDistutilsRefactoringToolur((u3/opt/alt/python33/lib64/python3.3/distutils/util.pyurun_2to3s urun_2to3cCs|ddlm}ddlm}ddlm}|} tj} tj|z| j Wdtj| X| j | j dd<|rx<|j D]+} | j } | sqn| j| qWng} xz| j D]o} tjj|| }|tjj||tjj|| |dd}|dr| j|qqWtdd | Dd |d |d || S( uRecursively copy a directory, only copying new and changed files, running run_2to3 over all newly copied Python modules afterward. If you give a template string, it's parsed like a MANIFEST.in. i(umkpath(u copy_file(uFileListNuupdateicSs+g|]!}|jjdr|qS(u.py(uloweruendswith(u.0ufn((u3/opt/alt/python33/lib64/python3.3/distutils/util.pyu s u$copydir_run_2to3..u fixer_namesuoptionsuexplicit(udistutils.dir_utilumkpathudistutils.file_utilu copy_fileudistutils.filelistuFileListuosugetcwduchdirufindalluallfilesufilesu splitlinesustripuprocess_template_lineupathujoinudirnameuappendurun_2to3(usrcudestutemplateu fixer_namesuoptionsuexplicitumkpathu copy_fileuFileListufilelistucurdirulineucopiedufilenameuoutnameures((u3/opt/alt/python33/lib64/python3.3/distutils/util.pyucopydir_run_2to3s4    $ ucopydir_run_2to3cBs8|EeZdZdZdZdZdZddZdS(u Mixin2to3uMixin class for commands that run 2to3. To configure 2to3, setup scripts may either change the class variables, or inherit from individual commands to override how 2to3 is invoked.cCst||j|j|jS(N(urun_2to3u fixer_namesuoptionsuexplicit(uselfufiles((u3/opt/alt/python33/lib64/python3.3/distutils/util.pyurun_2to3-suMixin2to3.run_2to3N( u__name__u __module__u __qualname__u__doc__uNoneu fixer_namesuoptionsuexpliciturun_2to3(u __locals__((u3/opt/alt/python33/lib64/python3.3/distutils/util.pyu Mixin2to3s u Mixin2to3(#u__doc__uosureuimpusysustringudistutils.errorsuDistutilsPlatformErrorudistutils.dep_utilunewerudistutils.spawnuspawnu distutilsuloguDistutilsByteCompileErroru get_platformu convert_pathu change_rootu_environ_checkedu check_environu subst_varsugrok_environment_erroruNoneu _wordchars_reu _squote_reu _dquote_reu _init_regexu split_quoteduexecuteu strtoboolu byte_compileu rfc822_escapeurun_2to3ucopydir_run_2to3u Mixin2to3(((u3/opt/alt/python33/lib64/python3.3/distutils/util.pyus>      ]      =   PK!%e __pycache__/dist.cpython-33.pycnu[ fc @sdZddlZddlZddlZddlmZyddlZWnek rdeZYnXddl Tddl m Z m Z ddl mZmZmZddlmZddlmZejd ZGd d d ZGd d d ZddZdS(u}distutils.dist Provides the Distribution class, which represents the module distribution being built/installed/distributed. iN(umessage_from_file(u*(u FancyGetoptutranslate_longopt(u check_environu strtoboolu rfc822_escape(ulog(uDEBUGu^[a-zA-Z]([a-zA-Z0-9_]*)$cBs&|EeZdZdZd|d}d~dgZdZdddddddddddddddddddddgZd;d<eDZidd6Z d{d=d>Z d?d@Z d{d{dAdBdCZ dDdEZ d{dFdGZdHdIZdJdKZdLdMZdNdOZddgdPdQZdRdSZdTdUZdVdWZdXdYZdZd[Zd\d]Zdd^d_Zd{d`daZdbdcddZejdedfZdgdhZ didjZ!dkdlZ"dmdnZ#dodpZ$dqdrZ%dsdtZ&dudvZ'dwdxZ(dydzZ)d{S(u DistributionuThe core of the Distutils. Most of the work hiding behind 'setup' is really done within a Distribution instance, which farms the work out to the Distutils commands specified on the command line. Setup scripts will almost never instantiate Distribution directly, unless the 'setup()' function is totally inadequate to their needs. However, it is conceivable that a setup script might wish to subclass Distribution for some specialized purpose, and then pass the subclass to 'setup()' as the 'distclass' keyword argument. If so, it is necessary to respect the expectations that 'setup' has of Distribution. See the code for 'setup()', in core.py, for details. uverboseuvurun verbosely (default)iuquietuqu!run quietly (turns verbosity off)udry-rununudon't actually do anythinguhelpuhushow detailed help messageuCommon commands: (see '--help-commands' for more) setup.py build will build the package underneath 'build/' setup.py install will install the package u help-commandsulist all available commandsunameuprint package nameuversionuVuprint package versionufullnameuprint -uauthoruprint the author's nameu author-emailu print the author's email addressu maintaineruprint the maintainer's nameumaintainer-emailu$print the maintainer's email addressucontactu7print the maintainer's name if known, else the author'su contact-emailu@print the maintainer's email address if known, else the author'suurluprint the URL for this packageulicenseu print the license of the packageulicenceualias for --licenseu descriptionuprint the package descriptionulong-descriptionu"print the long package descriptionu platformsuprint the list of platformsu classifiersuprint the list of classifiersukeywordsuprint the list of keywordsuprovidesu+print the list of packages/modules providedurequiresu+print the list of packages/modules requiredu obsoletesu0print the list of packages/modules made obsoletecCs g|]}t|dqS(i(utranslate_longopt(u.0ux((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyu os uDistribution.c Csd|_d|_d|_x!|jD]}t||dq%Wt|_x:|jjD],}d|}t||t|j|qXWi|_ d |_ d |_ d |_ i|_g|_d |_i|_d |_d |_d |_d |_d |_d |_d |_d |_d |_d |_d|_i|_i|_|r|jd}|d k r|d=xY|j D]H\}}|j!|}x*|j D]\} } d| f|| Fs u1Distribution.finalize_options..u,N(ukeywordsu platforms(ugetattrumetadatauNoneu isinstanceustrusplitusetattr(uselfuattruvalue((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyufinalize_options<s  uDistribution.finalize_optionsc Csvddlm}ddlm}|rr|r;|j}n |j}|j||j|jdt dn|r|j|j |jddt dnx|j D]}t |t rt||r|} n|j|} t| dr-t | jtr-|j| jt| jn|j| j|jd | jt dqWt ||jd S( ubShow help for the setup script command-line in the form of several lists of command-line options. 'parser' should be a FancyGetopt instance; do not expect it to be returned in the same state, as its option table will be reset to make it generate the correct help text. If 'global_options' is true, lists the global options: --verbose, --dry-run, etc. If 'display_options' is true, lists the "display-only" options: --name, --version, etc. Finally, lists per-command help for every command name or command class in 'commands'. i(u gen_usage(uCommandu Global options:uu*Information display options (just display u!information, ignore any commands)u help_optionsuOptions for '%s' command:N(udistutils.coreu gen_usageu distutils.cmduCommandu_get_toplevel_optionsuglobal_optionsuset_option_tableu print_helpu common_usageuprintudisplay_optionsucommandsu isinstanceutypeu issubclassuget_command_classuhasattru help_optionsulistu user_optionsufix_help_optionsu__name__u script_name( uselfuparseruglobal_optionsudisplay_optionsucommandsu gen_usageuCommanduoptionsucommanduklass((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyu _show_helpIs6      uDistribution._show_helpc Csddlm}|jrD|jtdt||jdSd}i}x|jD]}d||dGet a list of (command, description) tuples. The list is divided into "standard commands" (listed in distutils.command.__all__) and "extra commands" (mentioned in self.cmdclass, but not a standard command). The descriptions come from the command class attribute 'description'. iNiu(no description available)( udistutils.commanducommandu__all__ucmdclassukeysugetuappenduget_command_classu descriptionuAttributeError( uselfu distutilsu std_commandsuis_stducmduextra_commandsurvuklassu description((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyuget_command_lists(      uDistribution.get_command_listcCsx|j}t|tst|dkr-d}ndd|jdD}d|krh|jddn||_n|S(u9Return a list of packages from which commands are loaded.ucSs(g|]}|dkr|jqS(u(ustrip(u.0upkg((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyu s u5Distribution.get_command_packages..u,udistutils.commandiN(ucommand_packagesu isinstanceulistuNoneusplituinsert(uselfupkgs((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyuget_command_packagess     u!Distribution.get_command_packagescCs|jj|}|r|Sx|jD]}d||f}|}yt|tj|}Wntk rww)YnXyt||}Wn+tk rt d|||fYnX||j|<|SWt d|dS(uoReturn the class that implements the Distutils command named by 'command'. First we check the 'cmdclass' dictionary; if the command is mentioned there, we fetch the class object from the dictionary and return it. Otherwise we load the command module ("distutils.command." + command) and fetch the command class from the module. The loaded class is also stored in 'cmdclass' to speed future calls to 'get_command_class()'. Raises DistutilsModuleError if the expected module could not be found, or if that module does not define the expected class. u%s.%su3invalid command '%s' (no class '%s' in module '%s')uinvalid command '%s'N( ucmdclassugetuget_command_packagesu __import__usysumodulesu ImportErrorugetattruAttributeErroruDistutilsModuleError(uselfucommanduklassupkgnameu module_nameu klass_nameumodule((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyuget_command_classs(     uDistribution.get_command_classcCs|jj|}| r|rtr9|jd|n|j|}||}|j|Xs u5Distribution._set_command_options..u1error in %s: command '%s' has no such option '%s'N(uget_command_nameuNoneuget_option_dictuDEBUGuannounceuitemsuboolean_optionsuAttributeErroru negative_optu isinstanceustrusetattru strtobooluhasattruDistutilsOptionErroru ValueError( uselfu command_obju option_dictu command_nameuoptionusourceuvalueu bool_optsuneg_optu is_stringumsg((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyu_set_command_optionsDs>        u!Distribution._set_command_optionsicCsddlm}t||s7|}|j|}n |j}|jsP|S|jd|_d|j|<|j||rx'|j D]}|j ||qWn|S(uReinitializes a command to the state it was in when first returned by 'get_command_obj()': ie., initialized but not yet finalized. This provides the opportunity to sneak option values in programmatically, overriding or supplementing user-supplied values from the config files and command line. You'll have to re-finalize the command object (by calling 'finalize_options()' or 'ensure_finalized()') before using it for real. 'command' should be a command name (string) or command object. If 'reinit_subcommands' is true, also reinitializes the command's sub-commands, as declared by the 'sub_commands' class attribute (if it has one). See the "install" command for an example. Only reinitializes the sub-commands that actually matter, ie. those whose test predicates return true. Returns the reinitialized command object. i(uCommand( u distutils.cmduCommandu isinstanceuget_command_objuget_command_nameu finalizeduinitialize_optionsuhave_runu_set_command_optionsuget_sub_commandsureinitialize_command(uselfucommandureinit_subcommandsuCommandu command_nameusub((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyureinitialize_commandps      u!Distribution.reinitialize_commandcCstj||dS(N(ulog(uselfumsgulevel((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyuannouncesuDistribution.announcecCs%x|jD]}|j|q WdS(uRun each command that was seen on the setup script command line. Uses the list of commands found and cache of command objects created by 'get_command_obj()'. N(ucommandsu run_command(uselfucmd((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyu run_commandssuDistribution.run_commandscCsZ|jj|rdStjd||j|}|j|jd|j|-(uauthorNuprint the author's name(u author-emailNu print the author's email address(u maintainerNuprint the maintainer's name(umaintainer-emailNu$print the maintainer's email address(ucontactNu7print the maintainer's name if known, else the author's(u contact-emailNu@print the maintainer's email address if known, else the author's(uurlNuprint the URL for this package(ulicenseNu print the license of the package(ulicenceNualias for --license(u descriptionNuprint the package description(ulong-descriptionNu"print the long package description(u platformsNuprint the list of platforms(u classifiersNuprint the list of classifiers(ukeywordsNuprint the list of keywords(uprovidesNu+print the list of packages/modules provided(urequiresNu+print the list of packages/modules required(u obsoletesNu0print the list of packages/modules made obsolete(*u__name__u __module__u __qualname__u__doc__uglobal_optionsu common_usageuNoneudisplay_optionsudisplay_option_namesu negative_optu__init__uget_option_dictudump_option_dictsufind_config_filesuparse_config_filesuparse_command_lineu_get_toplevel_optionsu_parse_command_optsufinalize_optionsu _show_helpuhandle_display_optionsuprint_command_listuprint_commandsuget_command_listuget_command_packagesuget_command_classuget_command_obju_set_command_optionsureinitialize_commanduloguINFOuannounceu run_commandsu run_commanduhas_pure_modulesuhas_ext_modulesuhas_c_librariesu has_modulesu has_headersu has_scriptsuhas_data_filesuis_pure(u __locals__((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyu Distributions       ): C \ 1 (  ! " &,)        u DistributioncBsy|EeZdZdZdOZdNddZddZddZddZ ddZ d d!Z d"d#Z d$d%Z d&d'Zd(d)Zd*d+Zd,d-Zd.d/Zd0d1Zd2d3Zd4d5ZeZd6d7Zd8d9Zd:d;Zd<d=Zd>d?Zd@dAZdBdCZdDdEZdFdGZdHdIZ dJdKZ!dLdMZ"dNS(PuDistributionMetadatau]Dummy class to hold the distribution meta-data: name, version, author, and so forth. unameuversionuauthoru author_emailu maintainerumaintainer_emailuurlulicenseu descriptionulong_descriptionukeywordsu platformsufullnameucontactu contact_emailu classifiersu download_urluprovidesurequiresu obsoletescCs|dk r"|jt|nd|_d|_d|_d|_d|_d|_d|_ d|_ d|_ d|_ d|_ d|_d|_d|_d|_d|_d|_dS(N(uNoneu read_pkg_fileuopenunameuversionuauthoru author_emailu maintainerumaintainer_emailuurlulicenseu descriptionulong_descriptionukeywordsu platformsu classifiersu download_urluprovidesurequiresu obsoletes(uselfupath((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyu__init__s&                 uDistributionMetadata.__init__cst|fdd}fdd}d}|d|_|d|_|d|_|d |_d|_|d |_d|_|d |_ |d |_ d kr|d |_ n d|_ |d|_ |d|_dkr!|dj d|_n|d|_|d|_|dkr{|d|_|d|_|d|_nd|_d|_d|_dS(u-Reads the metadata values from a file object.cs|}|dkrdS|S(NuUNKNOWN(uNone(unameuvalue(umsg(u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyu _read_fields  u7DistributionMetadata.read_pkg_file.._read_fieldcs&j|d}|gkr"dS|S(N(uget_alluNone(unameuvalues(umsg(u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyu _read_list s u6DistributionMetadata.read_pkg_file.._read_listumetadata-versionunameuversionusummaryuauthoru author-emailu home-pageulicenseu download-urlu descriptionukeywordsu,uplatformu classifieru1.1urequiresuprovidesu obsoletesN(umessage_from_fileunameuversionu descriptionuauthoruNoneu maintaineru author_emailumaintainer_emailuurlulicenseu download_urlulong_descriptionusplitukeywordsu platformsu classifiersurequiresuprovidesu obsoletes(uselfufileu _read_fieldu _read_listumetadata_version((umsgu3/opt/alt/python33/lib64/python3.3/distutils/dist.pyu read_pkg_files:          u"DistributionMetadata.read_pkg_filec Cs>ttjj|dddd}|j|WdQXdS(u7Write the PKG-INFO file into the release tree. uPKG-INFOuwuencodinguUTF-8N(uopenuosupathujoinuwrite_pkg_file(uselfubase_dirupkg_info((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyuwrite_pkg_info6s u#DistributionMetadata.write_pkg_infocCsd}|js3|js3|js3|js3|jr<d}n|jd||jd|j|jd|j|jd|j|jd|j |jd|j |jd |j |jd |j |jr|jd |jnt |j}|jd |d j|j}|r`|jd|n|j|d|j|j|d|j|j|d|j|j|d|j|j|d|jdS(u9Write the PKG-INFO format data to a file object. u1.0u1.1uMetadata-Version: %s u Name: %s u Version: %s u Summary: %s uHome-page: %s u Author: %s uAuthor-email: %s u License: %s uDownload-URL: %s uDescription: %s u,u Keywords: %s uPlatformu ClassifieruRequiresuProvidesu ObsoletesN(uprovidesurequiresu obsoletesu classifiersu download_urluwriteuget_nameu get_versionuget_descriptionuget_urlu get_contactuget_contact_emailu get_licenseu rfc822_escapeuget_long_descriptionujoinu get_keywordsu _write_listu get_platformsuget_classifiersu get_requiresu get_providesu get_obsoletes(uselfufileuversionu long_descukeywords((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyuwrite_pkg_file=s0  u#DistributionMetadata.write_pkg_filecCs,x%|D]}|jd||fqWdS(Nu%s: %s (uwrite(uselfufileunameuvaluesuvalue((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyu _write_list_s u DistributionMetadata._write_listcCs |jp dS(NuUNKNOWN(uname(uself((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyuget_nameesuDistributionMetadata.get_namecCs |jp dS(Nu0.0.0(uversion(uself((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyu get_versionhsu DistributionMetadata.get_versioncCsd|j|jfS(Nu%s-%s(uget_nameu get_version(uself((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyu get_fullnameksu!DistributionMetadata.get_fullnamecCs |jp dS(NuUNKNOWN(uauthor(uself((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyu get_authornsuDistributionMetadata.get_authorcCs |jp dS(NuUNKNOWN(u author_email(uself((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyuget_author_emailqsu%DistributionMetadata.get_author_emailcCs |jp dS(NuUNKNOWN(u maintainer(uself((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyuget_maintainertsu#DistributionMetadata.get_maintainercCs |jp dS(NuUNKNOWN(umaintainer_email(uself((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyuget_maintainer_emailwsu)DistributionMetadata.get_maintainer_emailcCs|jp|jpdS(NuUNKNOWN(u maintaineruauthor(uself((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyu get_contactzsu DistributionMetadata.get_contactcCs|jp|jpdS(NuUNKNOWN(umaintainer_emailu author_email(uself((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyuget_contact_email}su&DistributionMetadata.get_contact_emailcCs |jp dS(NuUNKNOWN(uurl(uself((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyuget_urlsuDistributionMetadata.get_urlcCs |jp dS(NuUNKNOWN(ulicense(uself((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyu get_licensesu DistributionMetadata.get_licensecCs |jp dS(NuUNKNOWN(u description(uself((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyuget_descriptionsu$DistributionMetadata.get_descriptioncCs |jp dS(NuUNKNOWN(ulong_description(uself((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyuget_long_descriptionsu)DistributionMetadata.get_long_descriptioncCs |jp gS(N(ukeywords(uself((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyu get_keywordssu!DistributionMetadata.get_keywordscCs|jpdgS(NuUNKNOWN(u platforms(uself((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyu get_platformssu"DistributionMetadata.get_platformscCs |jp gS(N(u classifiers(uself((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyuget_classifierssu$DistributionMetadata.get_classifierscCs |jp dS(NuUNKNOWN(u download_url(uself((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyuget_download_urlsu%DistributionMetadata.get_download_urlcCs |jp gS(N(urequires(uself((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyu get_requiressu!DistributionMetadata.get_requirescCs:ddl}x|D]}|jj|qW||_dS(Ni(udistutils.versionpredicateuversionpredicateuVersionPredicateurequires(uselfuvalueu distutilsuv((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyu set_requiress  u!DistributionMetadata.set_requirescCs |jp gS(N(uprovides(uself((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyu get_providessu!DistributionMetadata.get_providescCsMdd|D}x*|D]"}ddl}|jj|qW||_dS(NcSsg|]}|jqS((ustrip(u.0uv((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyu s u5DistributionMetadata.set_provides..i(udistutils.versionpredicateuversionpredicateusplit_provisionuprovides(uselfuvalueuvu distutils((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyu set_providess   u!DistributionMetadata.set_providescCs |jp gS(N(u obsoletes(uself((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyu get_obsoletessu"DistributionMetadata.get_obsoletescCs:ddl}x|D]}|jj|qW||_dS(Ni(udistutils.versionpredicateuversionpredicateuVersionPredicateu obsoletes(uselfuvalueu distutilsuv((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyu set_obsoletess  u"DistributionMetadata.set_obsoletesN(unameuversionuauthoru author_emailu maintainerumaintainer_emailuurlulicenseu descriptionulong_descriptionukeywordsu platformsufullnameucontactu contact_emailulicenseu classifiersu download_urluprovidesurequiresu obsoletes(#u__name__u __module__u __qualname__u__doc__u_METHOD_BASENAMESuNoneu__init__u read_pkg_fileuwrite_pkg_infouwrite_pkg_fileu _write_listuget_nameu get_versionu get_fullnameu get_authoruget_author_emailuget_maintaineruget_maintainer_emailu get_contactuget_contact_emailuget_urlu get_licenseu get_licenceuget_descriptionuget_long_descriptionu get_keywordsu get_platformsuget_classifiersuget_download_urlu get_requiresu set_requiresu get_providesu set_providesu get_obsoletesu set_obsoletes(u __locals__((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyuDistributionMetadatasJ 4  "                       uDistributionMetadatacCs2g}x%|D]}|j|ddq W|S(uConvert a 4-tuple 'help_options' list as found in various command classes to the 3-tuple form required by FancyGetopt. ii(uappend(uoptionsu new_optionsu help_tuple((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyufix_help_optionss ufix_help_options(u__doc__usysuosureuemailumessage_from_fileuwarningsu ImportErroruNoneudistutils.errorsudistutils.fancy_getoptu FancyGetoptutranslate_longoptudistutils.utilu check_environu strtoboolu rfc822_escapeu distutilsulogudistutils.debuguDEBUGucompileu command_reu DistributionuDistributionMetadataufix_help_options(((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyus$$   PK!FF$__pycache__/sysconfig.cpython-33.pyonu[ f"Xc@sdZddlZddlZddlZddlmZejjejZ ejjej Z ejjej Z ejjejZdejkrejjejdZn!ejjejjejZejdkr/ded3djkr/ejjejjeejjZnejdkrd ed4djkrejjejjeejjejjZnejdkrd ed5djkrejjejjeejjejjZnd dZeeddZerlejdkrlejjd6rlejjeZejdrlejjeZqlnddZeZdZ yesej!Z nWne"k rYnXddZ#ddddZ$dddddZ%ddZ&ddZ'ddZ(dd d!Z)ej*d"Z+ej*d#Z,ej*d$Z-dd%d&Z.d'd(Z/da0d)d*Z1d+d,Z2d-d.Z3d/d0Z4d1d2Z5dS(7uProvide access to Python's configuration information. The specific configuration variables available depend heavily on the platform and configuration. The values may be retrieved using get_config_var(name), and the list of variables is available via get_config_vars().keys(). Additional convenience functions are also available. Written by: Fred L. Drake, Jr. Email: iNi(uDistutilsPlatformErroru_PYTHON_PROJECT_BASEuntupcbuildiu\pc\vi u\pcbuild\amd64icCs=x6dD].}tjjtjj|d|rdSqWdS(Nu Setup.distu Setup.localuModules(u Setup.distu Setup.localTF(uosupathuisfileujoinuTrueuFalse(udufn((u8/opt/alt/python33/lib64/python3.3/distutils/sysconfig.pyu_is_python_source_dir0s $u_is_python_source_diru_homeu pcbuild\amd64cCstrttSttS(N(u _sys_homeu_is_python_source_diru project_base(((u8/opt/alt/python33/lib64/python3.3/distutils/sysconfig.pyu _python_build;s u _python_builducCstjddS(uReturn a string containing the major and minor Python version, leaving off the patchlevel. Sample return values could be '1.5' or '2.2'. Ni(usysuversion(((u8/opt/alt/python33/lib64/python3.3/distutils/sysconfig.pyuget_python_versionMsuget_python_versioncCs|d kr!|rtpt}ntjdkrtrtp?t}|rL|Strptjj tt d}ntjj t dd}tjj |Sdt t }tjj |d|Stjdkrtjj |dStjdkrtjj |dStd tjd S( uReturn the directory containing installed Python header files. If 'plat_specific' is false (the default), this is the path to the non-platform-specific header files, i.e. Python.h and so on; otherwise, this is the path to platform-specific header files (namely pyconfig.h). If 'prefix' is supplied, use it instead of sys.base_prefix or sys.base_exec_prefix -- i.e., ignore 'plat_specific'. uposixu AST_H_DIRusrcdiruIncludeupythonuincludeuntuos2uFI don't know where Python installs its C header files on platform '%s'N(uNoneuBASE_EXEC_PREFIXu BASE_PREFIXuosunameu python_buildu _sys_homeu project_baseupathujoinuget_config_varunormpathuget_python_versionu build_flagsuDistutilsPlatformError(u plat_specificuprefixubaseuincdiru python_dir((u8/opt/alt/python33/lib64/python3.3/distutils/sysconfig.pyuget_python_incUs(  uget_python_inccCsQ|d kr<|r'|rtp!t}q<|r3tp6t}ntjdkr|sW|r`d}nd}tjj||dt }|r|Stjj|dSntjdkr|rtjj|dSt dkr|Stjj|ddSnTtjd kr:|r!tjj|dStjj|ddSnt d tjd S( uSReturn the directory containing the Python library (standard or site additions). If 'plat_specific' is true, return the directory containing platform-specific modules, i.e. any module from a non-pure-Python module distribution; otherwise, return the platform-shared library directory. If 'standard_lib' is true, return the directory containing standard Python library modules; otherwise, return the directory for site-specific modules. If 'prefix' is supplied, use it instead of sys.base_prefix or sys.base_exec_prefix -- i.e., ignore 'plat_specific'. uposixulib64ulibupythonu site-packagesuntuLibu2.2uos2u?I don't know where Python installs its library on platform '%s'N( uNoneuBASE_EXEC_PREFIXu BASE_PREFIXu EXEC_PREFIXuPREFIXuosunameupathujoinuget_python_versionuDistutilsPlatformError(u plat_specificu standard_libuprefixulibu libpython((u8/opt/alt/python33/lib64/python3.3/distutils/sysconfig.pyuget_python_lib}s4    uget_python_libcCs|jdkrtjdkrYtjddsYddl}|jtdtdd|}t|drb|d|j}nt|WYdd}~XnXy/t}t|}t||WdQXWn^tk r}z>d|}t|dr|d|j}nt|WYdd}~XnXt r(|d|d sh   !+*++     (3 H  m  /   EPK!L 3 3#__pycache__/filelist.cpython-33.pyonu[ f1c@sdZddlZddlZddlZddlmZddlmZmZddl m Z GdddZ ej dd Z d d Zd ddd dZdS(usdistutils.filelist Provides the FileList class, used for poking about the filesystem and building lists of files. iN(u convert_path(uDistutilsTemplateErroruDistutilsInternalError(ulogcBs|EeZdZdZddddZddZejddZ dd Z d d Z d d Z ddZ ddZddZddZdddddZdddddZdS(uFileListuA list of files built by on exploring the filesystem and filtered by applying various patterns to what we find there. Instance attributes: dir directory from which files will be taken -- only used if 'allfiles' not supplied to constructor files list of filenames currently being built/filtered/manipulated allfiles complete list of files under consideration (ie. without any filtering applied) cCsd|_g|_dS(N(uNoneuallfilesufiles(uselfuwarnu debug_print((u7/opt/alt/python33/lib64/python3.3/distutils/filelist.pyu__init__s uFileList.__init__cCs ||_dS(N(uallfiles(uselfuallfiles((u7/opt/alt/python33/lib64/python3.3/distutils/filelist.pyu set_allfiles"suFileList.set_allfilescCst||_dS(N(ufindalluallfiles(uselfudir((u7/opt/alt/python33/lib64/python3.3/distutils/filelist.pyufindall%suFileList.findallcCs'ddlm}|r#t|ndS(u~Print 'msg' to stdout if the global DEBUG (taken from the DISTUTILS_DEBUG environment variable) flag is true. i(uDEBUGN(udistutils.debuguDEBUGuprint(uselfumsguDEBUG((u7/opt/alt/python33/lib64/python3.3/distutils/filelist.pyu debug_print(suFileList.debug_printcCs|jj|dS(N(ufilesuappend(uselfuitem((u7/opt/alt/python33/lib64/python3.3/distutils/filelist.pyuappend2suFileList.appendcCs|jj|dS(N(ufilesuextend(uselfuitems((u7/opt/alt/python33/lib64/python3.3/distutils/filelist.pyuextend5suFileList.extendcCsXtttjj|j}g|_x*|D]"}|jjtjj|q.WdS(N(usortedumapuosupathusplitufilesuappendujoin(uselfusortable_filesu sort_tuple((u7/opt/alt/python33/lib64/python3.3/distutils/filelist.pyusort8s  u FileList.sortcCsYxRtt|jdddD]1}|j||j|dkr |j|=q q WdS(Niii(urangeulenufiles(uselfui((u7/opt/alt/python33/lib64/python3.3/distutils/filelist.pyuremove_duplicatesBs&uFileList.remove_duplicatescCs:|j}|d}d}}}|dkrut|dkrUtd|ndd |d dD}n|dkrt|d krtd|nt|d }dd |ddD}nT|dkrt|dkrtd|nt|d }ntd|||||fS(Niuincludeuexcludeuglobal-includeuglobal-excludeiu&'%s' expects ...cSsg|]}t|qS((u convert_path(u.0uw((u7/opt/alt/python33/lib64/python3.3/distutils/filelist.pyu Vs u1FileList._parse_template_line..iurecursive-includeurecursive-excludeiu,'%s' expects ...cSsg|]}t|qS((u convert_path(u.0uw((u7/opt/alt/python33/lib64/python3.3/distutils/filelist.pyu \s ugraftupruneu#'%s' expects a single uunknown action '%s'(uincludeuexcludeuglobal-includeuglobal-exclude(urecursive-includeurecursive-exclude(ugraftuprune(usplituNoneulenuDistutilsTemplateErroru convert_path(uselfulineuwordsuactionupatternsudiru dir_pattern((u7/opt/alt/python33/lib64/python3.3/distutils/filelist.pyu_parse_template_lineKs,       uFileList._parse_template_linecCs|j|\}}}}|dkr}|jddj|x|D].}|j|ddsHtjd|qHqHWn|dkr|jddj|xs|D].}|j|ddstjd |qqWn:|d krA|jd dj|x|D].}|j|dd s tjd |q q Wn|dkr|jddj|x|D].}|j|dd sntjd|qnqnWnv|dkr|jd|dj|fxG|D]1}|j|d|stjd||qqWn |dkry|jd|dj|fx|D]1}|j|d|sAtjd||qAqAWn|dkr|jd||jdd|stjd|qnX|dkr |jd||jdd|stjd|qntd|dS(Nuincludeuinclude u uanchoriu%warning: no files found matching '%s'uexcludeuexclude u9warning: no previously-included files found matching '%s'uglobal-includeuglobal-include iu>warning: no files found matching '%s' anywhere in distributionuglobal-excludeuglobal-exclude uRwarning: no previously-included files matching '%s' found anywhere in distributionurecursive-includeurecursive-include %s %suprefixu:warning: no files found matching '%s' under directory '%s'urecursive-excludeurecursive-exclude %s %suNwarning: no previously-included files matching '%s' found under directory '%s'ugraftugraft u+warning: no directories found matching '%s'upruneuprune u6no previously-included directories found matching '%s'u'this cannot happen: invalid action '%s'( u_parse_template_lineu debug_printujoinuinclude_patternuloguwarnuexclude_patternuNoneuDistutilsInternalError(uselfulineuactionupatternsudiru dir_patternupattern((u7/opt/alt/python33/lib64/python3.3/distutils/filelist.pyuprocess_template_linegsf                          uFileList.process_template_lineiicCsd}t||||}|jd|j|jdkrK|jnxJ|jD]?}|j|rU|jd||jj |d}qUqUW|S(uSelect strings (presumably filenames) from 'self.files' that match 'pattern', a Unix-style wildcard (glob) pattern. Patterns are not quite the same as implemented by the 'fnmatch' module: '*' and '?' match non-special characters, where "special" is platform- dependent: slash on Unix; colon, slash, and backslash on DOS/Windows; and colon on Mac OS. If 'anchor' is true (the default), then the pattern match is more stringent: "*.py" will match "foo.py" but not "foo/bar.py". If 'anchor' is false, both of these will match. If 'prefix' is supplied, then only filenames starting with 'prefix' (itself a pattern) and ending with 'pattern', with anything in between them, will match. 'anchor' is ignored in this case. If 'is_regex' is true, 'anchor' and 'prefix' are ignored, and 'pattern' is assumed to be either a string containing a regex or a regex object -- no translation is done, the regex is just compiled and used as-is. Selected strings will be added to self.files. Return True if files are found, False otherwise. u%include_pattern: applying regex r'%s'u adding FNT( uFalseutranslate_patternu debug_printupatternuallfilesuNoneufindallusearchufilesuappenduTrue(uselfupatternuanchoruprefixuis_regexu files_foundu pattern_reuname((u7/opt/alt/python33/lib64/python3.3/distutils/filelist.pyuinclude_patterns    uFileList.include_patterncCsd}t||||}|jd|jxhtt|jdddD]G}|j|j|rO|jd|j||j|=d}qOqOW|S(uRemove strings (presumably filenames) from 'files' that match 'pattern'. Other parameters are the same as for 'include_pattern()', above. The list 'self.files' is modified in place. Return True if files are found, False otherwise. u%exclude_pattern: applying regex r'%s'iu removing FiiT( uFalseutranslate_patternu debug_printupatternurangeulenufilesusearchuTrue(uselfupatternuanchoruprefixuis_regexu files_foundu pattern_reui((u7/opt/alt/python33/lib64/python3.3/distutils/filelist.pyuexclude_patterns  &  uFileList.exclude_patternN(u__name__u __module__u __qualname__u__doc__uNoneu__init__u set_allfilesuosucurdirufindallu debug_printuappenduextendusorturemove_duplicatesu_parse_template_lineuprocess_template_lineuinclude_patternuexclude_pattern(u __locals__((u7/opt/alt/python33/lib64/python3.3/distutils/filelist.pyuFileList s      L,uFileListcCsddlm}m}m}m}g}|g}|j}|j}x|r|}tj|} x| D]} |tj krtj j || } n| } tj| } | |} || r|j| qk|| rk||  rk|| qkqkWqFW|S(u^Find all files under 'dir' and return the list of full filenames (relative to 'dir'). i(uST_MODEuS_ISREGuS_ISDIRuS_ISLNK( ustatuST_MODEuS_ISREGuS_ISDIRuS_ISLNKupopuappenduosulistdirucurdirupathujoin(udiruST_MODEuS_ISREGuS_ISDIRuS_ISLNKulistustackupopupushunamesunameufullnameustatumode((u7/opt/alt/python33/lib64/python3.3/distutils/filelist.pyufindalls&"        ufindallcCsStj|}tj}tjdkr0d}nd|}tjd||}|S(uTranslate a shell-like glob pattern to a regular expression; return a string containing the regex. Differs from 'fnmatch.translate()' in that '*' does not match "special characters" (which are platform-specific). u\u\\\\u\1[^%s]u((?t|}nd}|dk rtd}t|dt| }tj}tjdkrd}nd|j |d|f}n|rd|}ntj|S(uTranslate a shell-like wildcard pattern to a compiled regular expression. Return the compiled regex. If 'is_regex' true, then 'pattern' is directly compiled to a regex (if it's a string) or just returned as-is (assumes it's a regex object). uNu\u\\u^u.*( u isinstanceustrureucompileu glob_to_reuNoneulenuosusepujoin(upatternuanchoruprefixuis_regexu pattern_reu empty_patternu prefix_reusep((u7/opt/alt/python33/lib64/python3.3/distutils/filelist.pyutranslate_pattern+s"       utranslate_pattern(u__doc__uosureufnmatchudistutils.utilu convert_pathudistutils.errorsuDistutilsTemplateErroruDistutilsInternalErroru distutilsuloguFileListucurdirufindallu glob_to_reuNoneutranslate_pattern(((u7/opt/alt/python33/lib64/python3.3/distutils/filelist.pyus  PK!ug-&&(__pycache__/unixccompiler.cpython-33.pycnu[ fU5c@sdZddlZddlZddlZddlmZddlmZddlm Z m Z m Z ddl m Z mZmZmZddlmZejdkrddlZnGd d d e ZdS( u9distutils.unixccompiler Contains the UnixCCompiler class, a subclass of CCompiler that handles the "typical" Unix-style command-line C compiler: * macros defined with -Dname[=value] * macros undefined with -Uname * include search directories specified with -Idir * libraries specified with -lllib * library search directories specified with -Ldir * compile handled by 'cc' (or similar) executable with -c option: compiles .c to .o * link static library handled by 'ar' command (possibly with 'ranlib') * link shared library handled by 'cc -shared' iN(u sysconfig(unewer(u CCompilerugen_preprocess_optionsugen_lib_options(uDistutilsExecErroru CompileErroruLibErroru LinkError(ulogudarwinc s|EeZdZdZidd6dgd6dgd6dgd6ddgd6dgd 6d d gd 6dd 6Zejdddkrd ged s$"PK!A#+__pycache__/versionpredicate.cpython-33.pyonu[ f c@sdZddlZddlZddlZejdejZejdZejdZ ddZ iej d6ej d 6ej d 6ejd 6ejd 6ejd 6ZGdddZdaddZdS(uBModule for parsing and testing package version predicate strings. iNu'(?i)^\s*([a-z_]\w*(?:\.[a-z_]\w*)*)(.*)u^\s*\((.*)\)\s*$u%^\s*(<=|>=|<|>|!=|==)\s*([^\s,]+)\s*$cCsPtj|}|s(td|n|j\}}|tjj|fS(uVParse a single version comparison. Return (comparison string, StrictVersion) u"bad package restriction syntax: %r(ure_splitComparisonumatchu ValueErrorugroupsu distutilsuversionu StrictVersion(upreduresucompuverStr((u?/opt/alt/python33/lib64/python3.3/distutils/versionpredicate.pyusplitUps usplitUpuu>=u!=cBs>|EeZdZdZddZddZddZdS( uVersionPredicateuParse and test package version predicates. >>> v = VersionPredicate('pyepat.abc (>1.0, <3333.3a1, !=1555.1b3)') The `name` attribute provides the full dotted name that is given:: >>> v.name 'pyepat.abc' The str() of a `VersionPredicate` provides a normalized human-readable version of the expression:: >>> print(v) pyepat.abc (> 1.0, < 3333.3a1, != 1555.1b3) The `satisfied_by()` method can be used to determine with a given version number is included in the set described by the version restrictions:: >>> v.satisfied_by('1.1') True >>> v.satisfied_by('1.4') True >>> v.satisfied_by('1.0') False >>> v.satisfied_by('4444.4') False >>> v.satisfied_by('1555.1b3') False `VersionPredicate` is flexible in accepting extra whitespace:: >>> v = VersionPredicate(' pat( == 0.1 ) ') >>> v.name 'pat' >>> v.satisfied_by('0.1') True >>> v.satisfied_by('0.2') False If any version numbers passed in do not conform to the restrictions of `StrictVersion`, a `ValueError` is raised:: >>> v = VersionPredicate('p1.p2.p3.p4(>=1.0, <=1.3a1, !=1.2zb3)') Traceback (most recent call last): ... ValueError: invalid version number '1.2zb3' It the module or package name given does not conform to what's allowed as a legal module or package name, `ValueError` is raised:: >>> v = VersionPredicate('foo-bar') Traceback (most recent call last): ... ValueError: expected parenthesized list: '-bar' >>> v = VersionPredicate('foo bar (12.21)') Traceback (most recent call last): ... ValueError: expected parenthesized list: 'bar (12.21)' cCs|j}|s!tdntj|}|sItd|n|j\|_}|j}|rtj|}|std|n|jd}dd|jdD|_|jstd|qn g|_d S( u*Parse a version predicate string. uempty package restrictionubad package name in %ruexpected parenthesized list: %ricSsg|]}t|qS((usplitUp(u.0uaPred((u?/opt/alt/python33/lib64/python3.3/distutils/versionpredicate.pyu ts u-VersionPredicate.__init__..u,uempty parenthesized list in %rN( ustripu ValueErrorure_validPackageumatchugroupsunameure_parenusplitupred(uselfuversionPredicateStrumatchuparenustr((u?/opt/alt/python33/lib64/python3.3/distutils/versionpredicate.pyu__init__`s$   uVersionPredicate.__init__cCsF|jr;dd|jD}|jddj|dS|jSdS(NcSs*g|] \}}|dt|qS(u (ustr(u.0uconduver((u?/opt/alt/python33/lib64/python3.3/distutils/versionpredicate.pyu }s u,VersionPredicate.__str__..u (u, u)(upredunameujoin(uselfuseq((u?/opt/alt/python33/lib64/python3.3/distutils/versionpredicate.pyu__str__{s uVersionPredicate.__str__cCs5x.|jD]#\}}t|||s dSq WdS(uTrue if version is compatible with all the predicates in self. The parameter version must be acceptable to the StrictVersion constructor. It may be either a string or StrictVersion. FT(upreducompmapuFalseuTrue(uselfuversionuconduver((u?/opt/alt/python33/lib64/python3.3/distutils/versionpredicate.pyu satisfied_bysuVersionPredicate.satisfied_byN(u__name__u __module__u __qualname__u__doc__u__init__u__str__u satisfied_by(u __locals__((u?/opt/alt/python33/lib64/python3.3/distutils/versionpredicate.pyuVersionPredicates?  uVersionPredicatecCstdkr$tjdtjan|j}tj|}|sXtd|n|jdpjd}|rt j j |}n|jd|fS(u9Return the name and optional version number of a provision. The version number, if given, will be returned as a `StrictVersion` instance, otherwise it will be `None`. >>> split_provision('mypkg') ('mypkg', None) >>> split_provision(' mypkg( 1.2 ) ') ('mypkg', StrictVersion ('1.2')) u=([a-zA-Z_]\w*(?:\.[a-zA-Z_]\w*)*)(?:\s*\(\s*([^)\s]+)\s*\))?$u"illegal provides specification: %riiN( u _provision_rxuNoneureucompileuASCIIustripumatchu ValueErrorugroupu distutilsuversionu StrictVersion(uvalueumuver((u?/opt/alt/python33/lib64/python3.3/distutils/versionpredicate.pyusplit_provisions  usplit_provision(u__doc__ureudistutils.versionu distutilsuoperatorucompileuASCIIure_validPackageure_parenure_splitComparisonusplitUpultuleuequgtugeuneucompmapuVersionPredicateuNoneu _provision_rxusplit_provision(((u?/opt/alt/python33/lib64/python3.3/distutils/versionpredicate.pyus      !!nPK!RR'__pycache__/msvccompiler.cpython-33.pyonu[ f[c@sdZddlZddlZddlmZmZmZmZmZddl m Z m Z m Z ddl mZeZy@ddlZeZeZejZejZejZejZWnek r:yLddlZddlZeZeZejZejZejZejZWnek r5ejdYnXYnXerbej ej!ej"ej#fZ$nddZ%d d Z&d d Z'Gd ddZ(ddZ)ddZ*ddZ+Gddde Z,e)dkrej-de,Z.ddl/m,Z,ddl/m(Z(ndS(udistutils.msvccompiler Contains MSVCCompiler, an implementation of the abstract CCompiler class for the Microsoft Visual Studio. iN(uDistutilsExecErroruDistutilsPlatformErroru CompileErroruLibErroru LinkError(u CCompilerugen_preprocess_optionsugen_lib_options(uloguWarning: Can't read registry to find the necessary compiler setting Make sure that Python modules winreg, win32api or win32con are installed.cCsyt||}Wntk r+dSYnXg}d}xCyt||}Wntk rcPYnX|j||d7}q;|S(uReturn list of registry keys.iiN(u RegOpenKeyExuRegErroruNoneu RegEnumKeyuappend(ubaseukeyuhandleuLuiuk((u;/opt/alt/python33/lib64/python3.3/distutils/msvccompiler.pyu read_keys7s     u read_keyscCsyt||}Wntk r+dSYnXi}d}xayt||\}}}Wntk rlPYnX|j}t||t|<|d7}q;|S(uXReturn dict of registry keys and values. All names are converted to lowercase. iiN(u RegOpenKeyExuRegErroruNoneu RegEnumValueuloweru convert_mbcs(ubaseukeyuhandleuduiunameuvalueutype((u;/opt/alt/python33/lib64/python3.3/distutils/msvccompiler.pyu read_valuesHs     u read_valuesc CsJt|dd}|dk rFy|d}WqFtk rBYqFXn|S(Nudecodeumbcs(ugetattruNoneu UnicodeError(usudec((u;/opt/alt/python33/lib64/python3.3/distutils/msvccompiler.pyu convert_mbcs]s  u convert_mbcscBsD|EeZdZddZddZddZddZd S( u MacroExpandercCsi|_|j|dS(N(umacrosu load_macros(uselfuversion((u;/opt/alt/python33/lib64/python3.3/distutils/msvccompiler.pyu__init__gs uMacroExpander.__init__cCsCx<tD]4}t||}|r|||jd|tD]3}t|d|jd k r|j dPqqWngS( uGet a list of devstudio directories (include, lib or path). Return a list of strings. The list will be empty if unable to access the registry or appropriate registry keys not found. u dirsiu6%s\%0.1f\VC\VC_OBJECTS_PLATFORM_INFO\Win32\Directoriesu?%s\6.0\Build System\Components\Platforms\Win32 (%s)\Directoriesu;iu%s\6.0uIt seems you have Visual Studio 6 installed, but the expected registry settings are not present. You must at least run the Visual Studio GUI once so that these entries are created.N( u _can_read_regu_MSVCCompiler__versionu_MSVCCompiler__rootuHKEYSu read_valuesu_MSVCCompiler__macrosusubusplituNoneuwarn(uselfupathuplatformukeyubaseud((u;/opt/alt/python33/lib64/python3.3/distutils/msvccompiler.pyuget_msvc_pathsHs(     uMSVCCompiler.get_msvc_pathscCsP|dkr|jd}n|j|}|rLdj|tj|sZ(                  -   PK! __pycache__/debug.cpython-33.pycnu[ fc@s"ddlZejjdZdS(iNuDISTUTILS_DEBUG(uosuenvironugetuDEBUG(((u4/opt/alt/python33/lib64/python3.3/distutils/debug.pyus PK!~ں#__pycache__/__init__.cpython-33.pyonu[ fc@s5dZddlZejdejjdZdS(udistutils The main package for the Python Module Distribution Utilities. Normally used from a setup script as from distutils.core import setup setup (...) iNu (u__doc__usysuversionuindexu __version__(((u7/opt/alt/python33/lib64/python3.3/distutils/__init__.pyu s PK!Z T9!!'__pycache__/emxccompiler.cpython-33.pyonu[ f].c@sdZddlZddlZddlZddlmZmZddlmZddl m Z ddl m Z m Z mZddlmZGdd d eZd Zd Zd Zd dZddZdS(udistutils.emxccompiler Provides the EMXCCompiler class, a subclass of UnixCCompiler that handles the EMX port of the GNU C compiler to OS/2. iN(ugen_preprocess_optionsugen_lib_options(u UnixCCompiler(u write_file(uDistutilsExecErroru CompileErroruUnknownFileError(ulogc Bs|EeZdZdZdZdZdZdZdZdZ dZ dddd d Z d d Z ddddddddddd d ZddddZdddZdS(u EMXCCompileruemxu.obju.libu.dllu%s%su.resu.exeic Cstj||||t\}}|jd||f|tk rd|jdd|dnt\|_|_|j|j d|j|jf|j ddddd d d d d g|_ dS(Nu%Python's GCC status: %s (details: %s)u<Python's pyconfig.h doesn't seem to support your compiler. u Reason: %s.u<Compiling may fail because of undefined preprocessor macros.u: gcc %s, ld %s ucompileru5gcc -Zomf -Zmt -O3 -fomit-frame-pointer -mprobe -Wallu compiler_sou linker_exeugcc -Zomf -Zmt -Zcrtdllu linker_sougcc -Zomf -Zmt -Zcrtdll -Zdllugcc( u UnixCCompileru__init__ucheck_config_hu debug_printu CONFIG_H_OKuwarnu get_versionsu gcc_versionu ld_versionu compiler_typeuset_executablesu dll_libraries(uselfuverboseudry_runuforceustatusudetails((u;/opt/alt/python33/lib64/python3.3/distutils/emxccompiler.pyu__init__(s"    uEMXCCompiler.__init__cCs|dkr]y|jdd|gWqtk rY}zt|WYdd}~XqXn]y)|j|j||d|g|Wn1tk r}zt|WYdd}~XnXdS(Nu.rcurcu-ru-o(uspawnuDistutilsExecErroru CompileErroru compiler_so(uselfuobjusrcuextucc_argsuextra_postargsupp_optsumsg((u;/opt/alt/python33/lib64/python3.3/distutils/emxccompiler.pyu_compileKs " uEMXCCompiler._compilecCstj| pg} tj|p$g}tj|p9g}|j|j|dk r;||jkr;tjj|d}tjjtjj |\}}tjj ||d}dtjjtjj |dddg}x|D]}|j d|qW|j t ||fd||j |n| sQ| j dntj||||||||d| | | | | dS( Niu.defu$LIBRARY %s INITINSTANCE TERMINSTANCEuDATA MULTIPLE NONSHAREDuEXPORTSu "%s"u writing %su-s(ucopyuextendu dll_librariesuNoneu EXECUTABLEuosupathudirnameusplitextubasenameujoinuappenduexecuteu write_fileu UnixCCompilerulink(uselfu target_descuobjectsuoutput_filenameu output_diru librariesu library_dirsuruntime_library_dirsuexport_symbolsudebugu extra_preargsuextra_postargsu build_tempu target_langutemp_dirudll_nameu dll_extensionudef_fileucontentsusym((u;/opt/alt/python33/lib64/python3.3/distutils/emxccompiler.pyulinkYsF         uEMXCCompiler.linkucCs|dkrd}ng}x|D]}tjjtjj|\}}||jdgkr{td||fn|rtjj|}n|dkr|jtjj |||j q"|jtjj |||j q"W|S(Nuu.rcu"unknown file type '%s' (from '%s')( uNoneuosupathusplitextunormcaseusrc_extensionsuUnknownFileErrorubasenameuappendujoinu res_extensionu obj_extension(uselfusource_filenamesu strip_diru output_diru obj_namesusrc_nameubaseuext((u;/opt/alt/python33/lib64/python3.3/distutils/emxccompiler.pyuobject_filenamess   $ uEMXCCompiler.object_filenamesc Csd|}d|}ytjdjd}Wntk rHg}YnXxh||D]\}tjj||}tjj||} tjj|r|Stjj| rT| SqTWdS(Nu%s.libu lib%s.libu LIBRARY_PATHu;(uosuenvironusplituKeyErrorupathujoinuexistsuNone( uselfudirsulibudebugushortlibulonglibuemx_dirsudiru shortlibpulonglibp((u;/opt/alt/python33/lib64/python3.3/distutils/emxccompiler.pyufind_library_files    uEMXCCompiler.find_library_fileN(u__name__u __module__u __qualname__u compiler_typeu obj_extensionustatic_lib_extensionushared_lib_extensionustatic_lib_formatushared_lib_formatu res_extensionu exe_extensionu__init__u_compileuNoneulinkuobject_filenamesufind_library_file(u __locals__((u;/opt/alt/python33/lib64/python3.3/distutils/emxccompiler.pyu EMXCCompilers2 Pu EMXCCompileruokunot oku uncertaincCsddlm}tjjddkr2tdfS|j}y.t|}z|j}Wd|j XWn<t k r}zt d||j ffSWYdd}~Xn2X|jddkrtd|fSt d |fSdS( uCheck if the current Python installation (specifically, pyconfig.h) appears amenable to building extensions with GCC. Returns a tuple (status, details), where 'status' is one of the following constants: CONFIG_H_OK all is well, go ahead and compile CONFIG_H_NOTOK doesn't look good CONFIG_H_UNCERTAIN not sure -- unable to read pyconfig.h 'details' is a human-readable string explaining the situation. Note there are two ways to conclude "OK": either 'sys.version' contains the string "GCC" (implying that this Python was built with GCC), or the installed "pyconfig.h" contains the string "__GNUC__". i(u sysconfiguGCCusys.version mentions 'GCC'Nucouldn't read '%s': %su__GNUC__u'%s' mentions '__GNUC__'u '%s' does not mention '__GNUC__'(u distutilsu sysconfigusysuversionufindu CONFIG_H_OKuget_config_h_filenameuopenureaducloseuIOErroruCONFIG_H_UNCERTAINustrerroruCONFIG_H_NOTOK(u sysconfigufnufusuexc((u;/opt/alt/python33/lib64/python3.3/distutils/emxccompiler.pyucheck_config_hs   'ucheck_config_hc Csddlm}ddlm}ddl}|d}|rtj|dd}z|j}Wd|jX|j d||j }|r||j d }qd}nd}d}||fS( ua Try to find out the versions of gcc and ld. If not possible it returns None for it. i(u StrictVersion(ufind_executableNugccu -dumpversionuru(\d+\.\d+\.\d+)i( udistutils.versionu StrictVersionudistutils.spawnufind_executableureuosupopenureaducloseusearchuASCIIugroupuNone( u StrictVersionufind_executableureugcc_exeuoutu out_stringuresultu gcc_versionu ld_version((u;/opt/alt/python33/lib64/python3.3/distutils/emxccompiler.pyu get_versions"s     u get_versions(u__doc__uosusysucopyudistutils.ccompilerugen_preprocess_optionsugen_lib_optionsudistutils.unixccompileru UnixCCompilerudistutils.file_utilu write_fileudistutils.errorsuDistutilsExecErroru CompileErroruUnknownFileErroru distutilsulogu EMXCCompileru CONFIG_H_OKuCONFIG_H_NOTOKuCONFIG_H_UNCERTAINucheck_config_hu get_versions(((u;/opt/alt/python33/lib64/python3.3/distutils/emxccompiler.pyus$ 3PK!A#+__pycache__/versionpredicate.cpython-33.pycnu[ f c@sdZddlZddlZddlZejdejZejdZejdZ ddZ iej d6ej d 6ej d 6ejd 6ejd 6ejd 6ZGdddZdaddZdS(uBModule for parsing and testing package version predicate strings. iNu'(?i)^\s*([a-z_]\w*(?:\.[a-z_]\w*)*)(.*)u^\s*\((.*)\)\s*$u%^\s*(<=|>=|<|>|!=|==)\s*([^\s,]+)\s*$cCsPtj|}|s(td|n|j\}}|tjj|fS(uVParse a single version comparison. Return (comparison string, StrictVersion) u"bad package restriction syntax: %r(ure_splitComparisonumatchu ValueErrorugroupsu distutilsuversionu StrictVersion(upreduresucompuverStr((u?/opt/alt/python33/lib64/python3.3/distutils/versionpredicate.pyusplitUps usplitUpuu>=u!=cBs>|EeZdZdZddZddZddZdS( uVersionPredicateuParse and test package version predicates. >>> v = VersionPredicate('pyepat.abc (>1.0, <3333.3a1, !=1555.1b3)') The `name` attribute provides the full dotted name that is given:: >>> v.name 'pyepat.abc' The str() of a `VersionPredicate` provides a normalized human-readable version of the expression:: >>> print(v) pyepat.abc (> 1.0, < 3333.3a1, != 1555.1b3) The `satisfied_by()` method can be used to determine with a given version number is included in the set described by the version restrictions:: >>> v.satisfied_by('1.1') True >>> v.satisfied_by('1.4') True >>> v.satisfied_by('1.0') False >>> v.satisfied_by('4444.4') False >>> v.satisfied_by('1555.1b3') False `VersionPredicate` is flexible in accepting extra whitespace:: >>> v = VersionPredicate(' pat( == 0.1 ) ') >>> v.name 'pat' >>> v.satisfied_by('0.1') True >>> v.satisfied_by('0.2') False If any version numbers passed in do not conform to the restrictions of `StrictVersion`, a `ValueError` is raised:: >>> v = VersionPredicate('p1.p2.p3.p4(>=1.0, <=1.3a1, !=1.2zb3)') Traceback (most recent call last): ... ValueError: invalid version number '1.2zb3' It the module or package name given does not conform to what's allowed as a legal module or package name, `ValueError` is raised:: >>> v = VersionPredicate('foo-bar') Traceback (most recent call last): ... ValueError: expected parenthesized list: '-bar' >>> v = VersionPredicate('foo bar (12.21)') Traceback (most recent call last): ... ValueError: expected parenthesized list: 'bar (12.21)' cCs|j}|s!tdntj|}|sItd|n|j\|_}|j}|rtj|}|std|n|jd}dd|jdD|_|jstd|qn g|_d S( u*Parse a version predicate string. uempty package restrictionubad package name in %ruexpected parenthesized list: %ricSsg|]}t|qS((usplitUp(u.0uaPred((u?/opt/alt/python33/lib64/python3.3/distutils/versionpredicate.pyu ts u-VersionPredicate.__init__..u,uempty parenthesized list in %rN( ustripu ValueErrorure_validPackageumatchugroupsunameure_parenusplitupred(uselfuversionPredicateStrumatchuparenustr((u?/opt/alt/python33/lib64/python3.3/distutils/versionpredicate.pyu__init__`s$   uVersionPredicate.__init__cCsF|jr;dd|jD}|jddj|dS|jSdS(NcSs*g|] \}}|dt|qS(u (ustr(u.0uconduver((u?/opt/alt/python33/lib64/python3.3/distutils/versionpredicate.pyu }s u,VersionPredicate.__str__..u (u, u)(upredunameujoin(uselfuseq((u?/opt/alt/python33/lib64/python3.3/distutils/versionpredicate.pyu__str__{s uVersionPredicate.__str__cCs5x.|jD]#\}}t|||s dSq WdS(uTrue if version is compatible with all the predicates in self. The parameter version must be acceptable to the StrictVersion constructor. It may be either a string or StrictVersion. FT(upreducompmapuFalseuTrue(uselfuversionuconduver((u?/opt/alt/python33/lib64/python3.3/distutils/versionpredicate.pyu satisfied_bysuVersionPredicate.satisfied_byN(u__name__u __module__u __qualname__u__doc__u__init__u__str__u satisfied_by(u __locals__((u?/opt/alt/python33/lib64/python3.3/distutils/versionpredicate.pyuVersionPredicates?  uVersionPredicatecCstdkr$tjdtjan|j}tj|}|sXtd|n|jdpjd}|rt j j |}n|jd|fS(u9Return the name and optional version number of a provision. The version number, if given, will be returned as a `StrictVersion` instance, otherwise it will be `None`. >>> split_provision('mypkg') ('mypkg', None) >>> split_provision(' mypkg( 1.2 ) ') ('mypkg', StrictVersion ('1.2')) u=([a-zA-Z_]\w*(?:\.[a-zA-Z_]\w*)*)(?:\s*\(\s*([^)\s]+)\s*\))?$u"illegal provides specification: %riiN( u _provision_rxuNoneureucompileuASCIIustripumatchu ValueErrorugroupu distutilsuversionu StrictVersion(uvalueumuver((u?/opt/alt/python33/lib64/python3.3/distutils/versionpredicate.pyusplit_provisions  usplit_provision(u__doc__ureudistutils.versionu distutilsuoperatorucompileuASCIIure_validPackageure_parenure_splitComparisonusplitUpultuleuequgtugeuneucompmapuVersionPredicateuNoneu _provision_rxusplit_provision(((u?/opt/alt/python33/lib64/python3.3/distutils/versionpredicate.pyus      !!nPK!t+f+ + #__pycache__/dep_util.cpython-33.pycnu[ f c@sMdZddlZddlmZddZddZdd d ZdS( udistutils.dep_util Utility functions for simple, timestamp-based dependency of files and groups of files; also, function based entirely on such timestamp dependency analysis.iN(uDistutilsFileErrorcCstjj|s1tdtjj|ntjj|sGdSddlm}tj||}tj||}||kS(uReturn true if 'source' exists and is more recently modified than 'target', or if 'source' exists and 'target' doesn't. Return false if both exist and 'target' is the same age or younger than 'source'. Raise DistutilsFileError if 'source' does not exist. ufile '%s' does not existii(uST_MTIME(uosupathuexistsuDistutilsFileErroruabspathustatuST_MTIME(usourceutargetuST_MTIMEumtime1umtime2((u7/opt/alt/python33/lib64/python3.3/distutils/dep_util.pyunewer sunewercCst|t|kr'tdng}g}xVtt|D]B}t||||rF|j|||j||qFqFW||fS(uWalk two filename lists in parallel, testing if each source is newer than its corresponding target. Return a pair of lists (sources, targets) where source is newer than target, according to the semantics of 'newer()'. u+'sources' and 'targets' must be same length(ulenu ValueErrorurangeuneweruappend(usourcesutargetsu n_sourcesu n_targetsui((u7/opt/alt/python33/lib64/python3.3/distutils/dep_util.pyunewer_pairwise sunewer_pairwiseuerrorcCstjj|sdSddlm}tj||}x{|D]o}tjj|s|dkrgq|dkryq@q|dkrdSntj||}||kr@dSq@WdSdS(uReturn true if 'target' is out-of-date with respect to any file listed in 'sources'. In other words, if 'target' exists and is newer than every file in 'sources', return false; otherwise return true. 'missing' controls what we do when a source file is missing; the default ("error") is to blow up with an OSError from inside 'stat()'; if it is "ignore", we silently drop any missing source files; if it is "newer", any missing source files make us assume that 'target' is out-of-date (this is handy in "dry-run" mode: it'll make you pretend to carry out commands that wouldn't work because inputs are missing, but that doesn't matter because you're not actually going to run the commands). ii(uST_MTIMEuerroruignoreunewerN(uosupathuexistsustatuST_MTIME(usourcesutargetumissinguST_MTIMEu target_mtimeusourceu source_mtime((u7/opt/alt/python33/lib64/python3.3/distutils/dep_util.pyu newer_group6s      u newer_group(u__doc__uosudistutils.errorsuDistutilsFileErrorunewerunewer_pairwiseu newer_group(((u7/opt/alt/python33/lib64/python3.3/distutils/dep_util.pyus    PK!u~Z!Z!$__pycache__/extension.cpython-33.pycnu[ f_(c@sMdZddlZddlZddlZGdddZddZdS(umdistutils.extension Provides the Extension class, used to describe C/C++ extension modules in setup scripts.iNcBsP|EeZdZdZddddddddddddddddZdS(u Extensionu Just a collection of attributes that describes an extension module and everything needed to build it (hopefully in a portable way, but there are hooks that let you be as unportable as you need). Instance attributes: name : string the full name of the extension, including any packages -- ie. *not* a filename or pathname, but Python dotted name sources : [string] list of source filenames, relative to the distribution root (where the setup script lives), in Unix form (slash-separated) for portability. Source files may be C, C++, SWIG (.i), platform-specific resource files, or whatever else is recognized by the "build_ext" command as source for a Python extension. include_dirs : [string] list of directories to search for C/C++ header files (in Unix form for portability) define_macros : [(name : string, value : string|None)] list of macros to define; each macro is defined using a 2-tuple, where 'value' is either the string to define it to or None to define it without a particular value (equivalent of "#define FOO" in source or -DFOO on Unix C compiler command line) undef_macros : [string] list of macros to undefine explicitly library_dirs : [string] list of directories to search for C/C++ libraries at link time libraries : [string] list of library names (not filenames or paths) to link against runtime_library_dirs : [string] list of directories to search for C/C++ libraries at run time (for shared extensions, this is when the extension is loaded) extra_objects : [string] list of extra files to link with (eg. object files not implied by 'sources', static library that must be explicitly specified, binary resource files, etc.) extra_compile_args : [string] any extra platform- and compiler-specific information to use when compiling the source files in 'sources'. For platforms and compilers where "command line" makes sense, this is typically a list of command-line arguments, but for other platforms it could be anything. extra_link_args : [string] any extra platform- and compiler-specific information to use when linking object files together to create the extension (or to create a new static Python interpreter). Similar interpretation as for 'extra_compile_args'. export_symbols : [string] list of symbols to be exported from a shared extension. Not used on all platforms, and not generally necessary for Python extensions, which typically export exactly one symbol: "init" + extension_name. swig_opts : [string] any extra options to pass to SWIG if a source file has the .i extension. depends : [string] list of files that the extension depends on language : string extension language (i.e. "c", "c++", "objc"). Will be detected from the source extensions if not provided. optional : boolean specifies that a build failure in the extension should not abort the build process, but simply not install the failing extension. cKst|tstdnt|toCtdd|DsUtdn||_||_|ppg|_|pg|_|pg|_ |pg|_ |pg|_ |pg|_ | pg|_ | pg|_| pg|_| pg|_| pg|_|pg|_||_||_t|dkrdd|D}djt|}d |}tj|ndS( Nu'name' must be a stringcss|]}t|tVqdS(N(u isinstanceustr(u.0uv((u8/opt/alt/python33/lib64/python3.3/distutils/extension.pyu ksu%Extension.__init__..u#'sources' must be a list of stringsicSsg|]}t|qS((urepr(u.0uoption((u8/opt/alt/python33/lib64/python3.3/distutils/extension.pyu s u&Extension.__init__..u, uUnknown Extension options: %s(u isinstanceustruAssertionErrorulistuallunameusourcesu include_dirsu define_macrosu undef_macrosu library_dirsu librariesuruntime_library_dirsu extra_objectsuextra_compile_argsuextra_link_argsuexport_symbolsu swig_optsudependsulanguageuoptionalulenujoinusorteduwarningsuwarn(uselfunameusourcesu include_dirsu define_macrosu undef_macrosu library_dirsu librariesuruntime_library_dirsu extra_objectsuextra_compile_argsuextra_link_argsuexport_symbolsu swig_optsudependsulanguageuoptionalukwuoptionsumsg((u8/opt/alt/python33/lib64/python3.3/distutils/extension.pyu__init__Ws4     uExtension.__init__N(u__name__u __module__u __qualname__u__doc__uNoneu__init__(u __locals__((u8/opt/alt/python33/lib64/python3.3/distutils/extension.pyu Extensions?u ExtensioncCsddlm}m}m}ddlm}ddlm}||}||ddddddd dd d}z,g}x|j} | d krPn|j | rq~n| d| d(kod knr|j d | q~n|| |} || } | d} t | g} d } xf| dd D]T}| d k r`| j |d } q5ntjj|d}|dd}|dd }|d)kr| jj |q5|dkr| jj |q5|dkrE|jd}|d*kr| jj |d fq| jj |d|||dd fq5|dkrd| jj |q5|dkr| jj |q5|dkr| jj |q5|dkr| jj |q5|dkr| jj |q5|dkr| j} q5|dkr| j} q5|d kr(| j} q5|d!krY| jj ||s| j} qq5|d+krx| jj |q5|j d'|q5W|j | q~Wd |jX|S(,u3Reads a Setup file and returns Extension instances.i(uparse_makefileuexpand_makefile_varsu _variable_rx(uTextFile(u split_quotedustrip_commentsiu skip_blanksu join_linesu lstrip_wsu rstrip_wsu*u'%s' lines not handled yetNiu.cu.ccu.cppu.cxxu.c++u.mu.mmu-Iu-Du=u-Uu-Cu-lu-Lu-Ru-rpathu-Xlinkeru -Xcompileru-uu.au.sou.slu.ou.dylibuunrecognized argument '%s'i(u.cu.ccu.cppu.cxxu.c++u.mu.mmi(u.au.sou.slu.ou.dylib(udistutils.sysconfiguparse_makefileuexpand_makefile_varsu _variable_rxudistutils.text_fileuTextFileudistutils.utilu split_quotedureadlineuNoneumatchuwarnu Extensionuappenduosupathusplitextusourcesu include_dirsufindu define_macrosu undef_macrosuextra_compile_argsu librariesu library_dirsuruntime_library_dirsuextra_link_argsu extra_objectsuclose(ufilenameuparse_makefileuexpand_makefile_varsu _variable_rxuTextFileu split_quoteduvarsufileu extensionsulineuwordsumoduleuextuappend_next_worduwordusuffixuswitchuvalueuequals((u8/opt/alt/python33/lib64/python3.3/distutils/extension.pyuread_setup_files    $                      uread_setup_file(u__doc__uosusysuwarningsu Extensionuread_setup_file(((u8/opt/alt/python33/lib64/python3.3/distutils/extension.pyus    rPK!%e __pycache__/dist.cpython-33.pyonu[ fc @sdZddlZddlZddlZddlmZyddlZWnek rdeZYnXddl Tddl m Z m Z ddl mZmZmZddlmZddlmZejd ZGd d d ZGd d d ZddZdS(u}distutils.dist Provides the Distribution class, which represents the module distribution being built/installed/distributed. iN(umessage_from_file(u*(u FancyGetoptutranslate_longopt(u check_environu strtoboolu rfc822_escape(ulog(uDEBUGu^[a-zA-Z]([a-zA-Z0-9_]*)$cBs&|EeZdZdZd|d}d~dgZdZdddddddddddddddddddddgZd;d<eDZidd6Z d{d=d>Z d?d@Z d{d{dAdBdCZ dDdEZ d{dFdGZdHdIZdJdKZdLdMZdNdOZddgdPdQZdRdSZdTdUZdVdWZdXdYZdZd[Zd\d]Zdd^d_Zd{d`daZdbdcddZejdedfZdgdhZ didjZ!dkdlZ"dmdnZ#dodpZ$dqdrZ%dsdtZ&dudvZ'dwdxZ(dydzZ)d{S(u DistributionuThe core of the Distutils. Most of the work hiding behind 'setup' is really done within a Distribution instance, which farms the work out to the Distutils commands specified on the command line. Setup scripts will almost never instantiate Distribution directly, unless the 'setup()' function is totally inadequate to their needs. However, it is conceivable that a setup script might wish to subclass Distribution for some specialized purpose, and then pass the subclass to 'setup()' as the 'distclass' keyword argument. If so, it is necessary to respect the expectations that 'setup' has of Distribution. See the code for 'setup()', in core.py, for details. uverboseuvurun verbosely (default)iuquietuqu!run quietly (turns verbosity off)udry-rununudon't actually do anythinguhelpuhushow detailed help messageuCommon commands: (see '--help-commands' for more) setup.py build will build the package underneath 'build/' setup.py install will install the package u help-commandsulist all available commandsunameuprint package nameuversionuVuprint package versionufullnameuprint -uauthoruprint the author's nameu author-emailu print the author's email addressu maintaineruprint the maintainer's nameumaintainer-emailu$print the maintainer's email addressucontactu7print the maintainer's name if known, else the author'su contact-emailu@print the maintainer's email address if known, else the author'suurluprint the URL for this packageulicenseu print the license of the packageulicenceualias for --licenseu descriptionuprint the package descriptionulong-descriptionu"print the long package descriptionu platformsuprint the list of platformsu classifiersuprint the list of classifiersukeywordsuprint the list of keywordsuprovidesu+print the list of packages/modules providedurequiresu+print the list of packages/modules requiredu obsoletesu0print the list of packages/modules made obsoletecCs g|]}t|dqS(i(utranslate_longopt(u.0ux((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyu os uDistribution.c Csd|_d|_d|_x!|jD]}t||dq%Wt|_x:|jjD],}d|}t||t|j|qXWi|_ d |_ d |_ d |_ i|_g|_d |_i|_d |_d |_d |_d |_d |_d |_d |_d |_d |_d |_d|_i|_i|_|r|jd}|d k r|d=xY|j D]H\}}|j!|}x*|j D]\} } d| f|| Fs u1Distribution.finalize_options..u,N(ukeywordsu platforms(ugetattrumetadatauNoneu isinstanceustrusplitusetattr(uselfuattruvalue((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyufinalize_options<s  uDistribution.finalize_optionsc Csvddlm}ddlm}|rr|r;|j}n |j}|j||j|jdt dn|r|j|j |jddt dnx|j D]}t |t rt||r|} n|j|} t| dr-t | jtr-|j| jt| jn|j| j|jd | jt dqWt ||jd S( ubShow help for the setup script command-line in the form of several lists of command-line options. 'parser' should be a FancyGetopt instance; do not expect it to be returned in the same state, as its option table will be reset to make it generate the correct help text. If 'global_options' is true, lists the global options: --verbose, --dry-run, etc. If 'display_options' is true, lists the "display-only" options: --name, --version, etc. Finally, lists per-command help for every command name or command class in 'commands'. i(u gen_usage(uCommandu Global options:uu*Information display options (just display u!information, ignore any commands)u help_optionsuOptions for '%s' command:N(udistutils.coreu gen_usageu distutils.cmduCommandu_get_toplevel_optionsuglobal_optionsuset_option_tableu print_helpu common_usageuprintudisplay_optionsucommandsu isinstanceutypeu issubclassuget_command_classuhasattru help_optionsulistu user_optionsufix_help_optionsu__name__u script_name( uselfuparseruglobal_optionsudisplay_optionsucommandsu gen_usageuCommanduoptionsucommanduklass((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyu _show_helpIs6      uDistribution._show_helpc Csddlm}|jrD|jtdt||jdSd}i}x|jD]}d||dGet a list of (command, description) tuples. The list is divided into "standard commands" (listed in distutils.command.__all__) and "extra commands" (mentioned in self.cmdclass, but not a standard command). The descriptions come from the command class attribute 'description'. iNiu(no description available)( udistutils.commanducommandu__all__ucmdclassukeysugetuappenduget_command_classu descriptionuAttributeError( uselfu distutilsu std_commandsuis_stducmduextra_commandsurvuklassu description((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyuget_command_lists(      uDistribution.get_command_listcCsx|j}t|tst|dkr-d}ndd|jdD}d|krh|jddn||_n|S(u9Return a list of packages from which commands are loaded.ucSs(g|]}|dkr|jqS(u(ustrip(u.0upkg((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyu s u5Distribution.get_command_packages..u,udistutils.commandiN(ucommand_packagesu isinstanceulistuNoneusplituinsert(uselfupkgs((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyuget_command_packagess     u!Distribution.get_command_packagescCs|jj|}|r|Sx|jD]}d||f}|}yt|tj|}Wntk rww)YnXyt||}Wn+tk rt d|||fYnX||j|<|SWt d|dS(uoReturn the class that implements the Distutils command named by 'command'. First we check the 'cmdclass' dictionary; if the command is mentioned there, we fetch the class object from the dictionary and return it. Otherwise we load the command module ("distutils.command." + command) and fetch the command class from the module. The loaded class is also stored in 'cmdclass' to speed future calls to 'get_command_class()'. Raises DistutilsModuleError if the expected module could not be found, or if that module does not define the expected class. u%s.%su3invalid command '%s' (no class '%s' in module '%s')uinvalid command '%s'N( ucmdclassugetuget_command_packagesu __import__usysumodulesu ImportErrorugetattruAttributeErroruDistutilsModuleError(uselfucommanduklassupkgnameu module_nameu klass_nameumodule((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyuget_command_classs(     uDistribution.get_command_classcCs|jj|}| r|rtr9|jd|n|j|}||}|j|Xs u5Distribution._set_command_options..u1error in %s: command '%s' has no such option '%s'N(uget_command_nameuNoneuget_option_dictuDEBUGuannounceuitemsuboolean_optionsuAttributeErroru negative_optu isinstanceustrusetattru strtobooluhasattruDistutilsOptionErroru ValueError( uselfu command_obju option_dictu command_nameuoptionusourceuvalueu bool_optsuneg_optu is_stringumsg((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyu_set_command_optionsDs>        u!Distribution._set_command_optionsicCsddlm}t||s7|}|j|}n |j}|jsP|S|jd|_d|j|<|j||rx'|j D]}|j ||qWn|S(uReinitializes a command to the state it was in when first returned by 'get_command_obj()': ie., initialized but not yet finalized. This provides the opportunity to sneak option values in programmatically, overriding or supplementing user-supplied values from the config files and command line. You'll have to re-finalize the command object (by calling 'finalize_options()' or 'ensure_finalized()') before using it for real. 'command' should be a command name (string) or command object. If 'reinit_subcommands' is true, also reinitializes the command's sub-commands, as declared by the 'sub_commands' class attribute (if it has one). See the "install" command for an example. Only reinitializes the sub-commands that actually matter, ie. those whose test predicates return true. Returns the reinitialized command object. i(uCommand( u distutils.cmduCommandu isinstanceuget_command_objuget_command_nameu finalizeduinitialize_optionsuhave_runu_set_command_optionsuget_sub_commandsureinitialize_command(uselfucommandureinit_subcommandsuCommandu command_nameusub((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyureinitialize_commandps      u!Distribution.reinitialize_commandcCstj||dS(N(ulog(uselfumsgulevel((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyuannouncesuDistribution.announcecCs%x|jD]}|j|q WdS(uRun each command that was seen on the setup script command line. Uses the list of commands found and cache of command objects created by 'get_command_obj()'. N(ucommandsu run_command(uselfucmd((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyu run_commandssuDistribution.run_commandscCsZ|jj|rdStjd||j|}|j|jd|j|-(uauthorNuprint the author's name(u author-emailNu print the author's email address(u maintainerNuprint the maintainer's name(umaintainer-emailNu$print the maintainer's email address(ucontactNu7print the maintainer's name if known, else the author's(u contact-emailNu@print the maintainer's email address if known, else the author's(uurlNuprint the URL for this package(ulicenseNu print the license of the package(ulicenceNualias for --license(u descriptionNuprint the package description(ulong-descriptionNu"print the long package description(u platformsNuprint the list of platforms(u classifiersNuprint the list of classifiers(ukeywordsNuprint the list of keywords(uprovidesNu+print the list of packages/modules provided(urequiresNu+print the list of packages/modules required(u obsoletesNu0print the list of packages/modules made obsolete(*u__name__u __module__u __qualname__u__doc__uglobal_optionsu common_usageuNoneudisplay_optionsudisplay_option_namesu negative_optu__init__uget_option_dictudump_option_dictsufind_config_filesuparse_config_filesuparse_command_lineu_get_toplevel_optionsu_parse_command_optsufinalize_optionsu _show_helpuhandle_display_optionsuprint_command_listuprint_commandsuget_command_listuget_command_packagesuget_command_classuget_command_obju_set_command_optionsureinitialize_commanduloguINFOuannounceu run_commandsu run_commanduhas_pure_modulesuhas_ext_modulesuhas_c_librariesu has_modulesu has_headersu has_scriptsuhas_data_filesuis_pure(u __locals__((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyu Distributions       ): C \ 1 (  ! " &,)        u DistributioncBsy|EeZdZdZdOZdNddZddZddZddZ ddZ d d!Z d"d#Z d$d%Z d&d'Zd(d)Zd*d+Zd,d-Zd.d/Zd0d1Zd2d3Zd4d5ZeZd6d7Zd8d9Zd:d;Zd<d=Zd>d?Zd@dAZdBdCZdDdEZdFdGZdHdIZ dJdKZ!dLdMZ"dNS(PuDistributionMetadatau]Dummy class to hold the distribution meta-data: name, version, author, and so forth. unameuversionuauthoru author_emailu maintainerumaintainer_emailuurlulicenseu descriptionulong_descriptionukeywordsu platformsufullnameucontactu contact_emailu classifiersu download_urluprovidesurequiresu obsoletescCs|dk r"|jt|nd|_d|_d|_d|_d|_d|_d|_ d|_ d|_ d|_ d|_ d|_d|_d|_d|_d|_d|_dS(N(uNoneu read_pkg_fileuopenunameuversionuauthoru author_emailu maintainerumaintainer_emailuurlulicenseu descriptionulong_descriptionukeywordsu platformsu classifiersu download_urluprovidesurequiresu obsoletes(uselfupath((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyu__init__s&                 uDistributionMetadata.__init__cst|fdd}fdd}d}|d|_|d|_|d|_|d |_d|_|d |_d|_|d |_ |d |_ d kr|d |_ n d|_ |d|_ |d|_dkr!|dj d|_n|d|_|d|_|dkr{|d|_|d|_|d|_nd|_d|_d|_dS(u-Reads the metadata values from a file object.cs|}|dkrdS|S(NuUNKNOWN(uNone(unameuvalue(umsg(u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyu _read_fields  u7DistributionMetadata.read_pkg_file.._read_fieldcs&j|d}|gkr"dS|S(N(uget_alluNone(unameuvalues(umsg(u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyu _read_list s u6DistributionMetadata.read_pkg_file.._read_listumetadata-versionunameuversionusummaryuauthoru author-emailu home-pageulicenseu download-urlu descriptionukeywordsu,uplatformu classifieru1.1urequiresuprovidesu obsoletesN(umessage_from_fileunameuversionu descriptionuauthoruNoneu maintaineru author_emailumaintainer_emailuurlulicenseu download_urlulong_descriptionusplitukeywordsu platformsu classifiersurequiresuprovidesu obsoletes(uselfufileu _read_fieldu _read_listumetadata_version((umsgu3/opt/alt/python33/lib64/python3.3/distutils/dist.pyu read_pkg_files:          u"DistributionMetadata.read_pkg_filec Cs>ttjj|dddd}|j|WdQXdS(u7Write the PKG-INFO file into the release tree. uPKG-INFOuwuencodinguUTF-8N(uopenuosupathujoinuwrite_pkg_file(uselfubase_dirupkg_info((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyuwrite_pkg_info6s u#DistributionMetadata.write_pkg_infocCsd}|js3|js3|js3|js3|jr<d}n|jd||jd|j|jd|j|jd|j|jd|j |jd|j |jd |j |jd |j |jr|jd |jnt |j}|jd |d j|j}|r`|jd|n|j|d|j|j|d|j|j|d|j|j|d|j|j|d|jdS(u9Write the PKG-INFO format data to a file object. u1.0u1.1uMetadata-Version: %s u Name: %s u Version: %s u Summary: %s uHome-page: %s u Author: %s uAuthor-email: %s u License: %s uDownload-URL: %s uDescription: %s u,u Keywords: %s uPlatformu ClassifieruRequiresuProvidesu ObsoletesN(uprovidesurequiresu obsoletesu classifiersu download_urluwriteuget_nameu get_versionuget_descriptionuget_urlu get_contactuget_contact_emailu get_licenseu rfc822_escapeuget_long_descriptionujoinu get_keywordsu _write_listu get_platformsuget_classifiersu get_requiresu get_providesu get_obsoletes(uselfufileuversionu long_descukeywords((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyuwrite_pkg_file=s0  u#DistributionMetadata.write_pkg_filecCs,x%|D]}|jd||fqWdS(Nu%s: %s (uwrite(uselfufileunameuvaluesuvalue((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyu _write_list_s u DistributionMetadata._write_listcCs |jp dS(NuUNKNOWN(uname(uself((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyuget_nameesuDistributionMetadata.get_namecCs |jp dS(Nu0.0.0(uversion(uself((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyu get_versionhsu DistributionMetadata.get_versioncCsd|j|jfS(Nu%s-%s(uget_nameu get_version(uself((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyu get_fullnameksu!DistributionMetadata.get_fullnamecCs |jp dS(NuUNKNOWN(uauthor(uself((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyu get_authornsuDistributionMetadata.get_authorcCs |jp dS(NuUNKNOWN(u author_email(uself((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyuget_author_emailqsu%DistributionMetadata.get_author_emailcCs |jp dS(NuUNKNOWN(u maintainer(uself((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyuget_maintainertsu#DistributionMetadata.get_maintainercCs |jp dS(NuUNKNOWN(umaintainer_email(uself((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyuget_maintainer_emailwsu)DistributionMetadata.get_maintainer_emailcCs|jp|jpdS(NuUNKNOWN(u maintaineruauthor(uself((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyu get_contactzsu DistributionMetadata.get_contactcCs|jp|jpdS(NuUNKNOWN(umaintainer_emailu author_email(uself((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyuget_contact_email}su&DistributionMetadata.get_contact_emailcCs |jp dS(NuUNKNOWN(uurl(uself((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyuget_urlsuDistributionMetadata.get_urlcCs |jp dS(NuUNKNOWN(ulicense(uself((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyu get_licensesu DistributionMetadata.get_licensecCs |jp dS(NuUNKNOWN(u description(uself((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyuget_descriptionsu$DistributionMetadata.get_descriptioncCs |jp dS(NuUNKNOWN(ulong_description(uself((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyuget_long_descriptionsu)DistributionMetadata.get_long_descriptioncCs |jp gS(N(ukeywords(uself((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyu get_keywordssu!DistributionMetadata.get_keywordscCs|jpdgS(NuUNKNOWN(u platforms(uself((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyu get_platformssu"DistributionMetadata.get_platformscCs |jp gS(N(u classifiers(uself((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyuget_classifierssu$DistributionMetadata.get_classifierscCs |jp dS(NuUNKNOWN(u download_url(uself((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyuget_download_urlsu%DistributionMetadata.get_download_urlcCs |jp gS(N(urequires(uself((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyu get_requiressu!DistributionMetadata.get_requirescCs:ddl}x|D]}|jj|qW||_dS(Ni(udistutils.versionpredicateuversionpredicateuVersionPredicateurequires(uselfuvalueu distutilsuv((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyu set_requiress  u!DistributionMetadata.set_requirescCs |jp gS(N(uprovides(uself((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyu get_providessu!DistributionMetadata.get_providescCsMdd|D}x*|D]"}ddl}|jj|qW||_dS(NcSsg|]}|jqS((ustrip(u.0uv((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyu s u5DistributionMetadata.set_provides..i(udistutils.versionpredicateuversionpredicateusplit_provisionuprovides(uselfuvalueuvu distutils((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyu set_providess   u!DistributionMetadata.set_providescCs |jp gS(N(u obsoletes(uself((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyu get_obsoletessu"DistributionMetadata.get_obsoletescCs:ddl}x|D]}|jj|qW||_dS(Ni(udistutils.versionpredicateuversionpredicateuVersionPredicateu obsoletes(uselfuvalueu distutilsuv((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyu set_obsoletess  u"DistributionMetadata.set_obsoletesN(unameuversionuauthoru author_emailu maintainerumaintainer_emailuurlulicenseu descriptionulong_descriptionukeywordsu platformsufullnameucontactu contact_emailulicenseu classifiersu download_urluprovidesurequiresu obsoletes(#u__name__u __module__u __qualname__u__doc__u_METHOD_BASENAMESuNoneu__init__u read_pkg_fileuwrite_pkg_infouwrite_pkg_fileu _write_listuget_nameu get_versionu get_fullnameu get_authoruget_author_emailuget_maintaineruget_maintainer_emailu get_contactuget_contact_emailuget_urlu get_licenseu get_licenceuget_descriptionuget_long_descriptionu get_keywordsu get_platformsuget_classifiersuget_download_urlu get_requiresu set_requiresu get_providesu set_providesu get_obsoletesu set_obsoletes(u __locals__((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyuDistributionMetadatasJ 4  "                       uDistributionMetadatacCs2g}x%|D]}|j|ddq W|S(uConvert a 4-tuple 'help_options' list as found in various command classes to the 3-tuple form required by FancyGetopt. ii(uappend(uoptionsu new_optionsu help_tuple((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyufix_help_optionss ufix_help_options(u__doc__usysuosureuemailumessage_from_fileuwarningsu ImportErroruNoneudistutils.errorsudistutils.fancy_getoptu FancyGetoptutranslate_longoptudistutils.utilu check_environu strtoboolu rfc822_escapeu distutilsulogudistutils.debuguDEBUGucompileu command_reu DistributionuDistributionMetadataufix_help_options(((u3/opt/alt/python33/lib64/python3.3/distutils/dist.pyus$$   PK!~$__pycache__/ccompiler.cpython-33.pyonu[ f¹c@sdZddlZddlZddlZddlTddlmZddlmZddl m Z ddl m Z m Z ddlmZmZdd lmZGd d d Zd d fddfdd fddffZeeddZidddfd 6dddfd6dddfd6ddd fd!6d"d#d$fd%6d&d'd(fd6Zd)d*Zeedddd+d,Zd-d.Zd/d0ZdS(1udistutils.ccompiler Contains CCompiler, an abstract base class that defines the interface for the Distutils compiler abstraction model.iN(u*(uspawn(u move_file(umkpath(unewer_pairwiseu newer_group(u split_quoteduexecute(ulogc Bs|EeZdZdZdtZdtZdtZdtZdtZ dtZ dtZ dtZ idd6dd6dd6dd6dd 6Z dddgZd d d d d Zd dZddZddZddZdtddZddZddZddZddZdd Zd!d"Zd#d$Zd%d&Zd'd(Zd)d*Zd+d,Zd-d.Z d/d0Z!d1d2Z"dtd3d4Z#d5d6Z$d7d8Z%d9d:Z&d;d<Z'dtdtdtdtdtd=d>Z(dtdtdtd dtdtdtd?d@Z)dAdBZ*dtd dtdCdDZ+dEZ,dFZ-dGZ.dtdtdtdtdtd dtdtdtdtdHdI Z/dtdtdtdtdtd dtdtdtdtdJdK Z0dtdtdtdtdtd dtdtdtdtdLdM Z1dtdtdtdtd dtdtdtdNdOZ2dPdQZ3dRdSZ4dTdUZ5dtdtdtdtdVdWZ6d dXdYZ7d dZd[d\Z8d dZd]d^Z9d dZd_d`Z:dad dZdbdcZ;dddedfZ<dgdhZ=didjZ>dtdddkdlZ?dmdnZ@dodpZAdqdrdsZBdtS(uu CCompileruAbstract base class to define the interface that must be implemented by real compiler classes. Also has some utility methods used by several compiler classes. The basic idea behind a compiler abstraction class is that each instance can be used for all the compile/link steps in building a single project. Thus, attributes common to all of those compile and link steps -- include directories, macros to define, libraries to link against, etc. -- are attributes of the compiler instance. To allow for variability in how individual files are treated, most of those attributes may be varied on a per-compilation or per-link basis. ucu.cuc++u.ccu.cppu.cxxuobjcu.micCs||_||_||_d|_g|_g|_g|_g|_g|_ g|_ x.|j j D]}|j ||j |qjWdS(N(udry_runuforceuverboseuNoneu output_dirumacrosu include_dirsu librariesu library_dirsuruntime_library_dirsuobjectsu executablesukeysuset_executable(uselfuverboseudry_runuforceukey((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyu__init__Us          uCCompiler.__init__cKsWxP|D]H}||jkr;td||jjfn|j|||qWdS(uDefine the executables (and options for them) that will be run to perform the various stages of compilation. The exact set of executables that may be specified here depends on the compiler class (via the 'executables' class attribute), but most will have: compiler the C/C++ compiler linker_so linker used to create shared objects and libraries linker_exe linker used to create binary executables archiver static library creator On platforms with a command-line (Unix, DOS/Windows), each of these is a string that will be split into executable name and (optional) list of arguments. (Splitting the string is done similarly to how Unix shells operate: words are delimited by spaces, but quotes and backslashes can override this. See 'distutils.util.split_quoted()'.) u$unknown executable '%s' for class %sN(u executablesu ValueErroru __class__u__name__uset_executable(uselfukwargsukey((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyuset_executablesys  uCCompiler.set_executablescCs<t|tr(t||t|nt|||dS(N(u isinstanceustrusetattru split_quoted(uselfukeyuvalue((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyuset_executablesuCCompiler.set_executablecCs<d}x/|jD]$}|d|kr*|S|d7}qWdS(Nii(umacrosuNone(uselfunameuiudefn((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyu _find_macros uCCompiler._find_macrocCsx|D]x}t|toat|dkoat|dtsQ|ddkoat|dtstd|ddqqWdS( uEnsures that every element of 'definitions' is a valid macro definition, ie. either (name,value) 2-tuple or a (name,) tuple. Do nothing if all definitions are OK, raise TypeError otherwise. iiiuinvalid macro definition '%s': u.must be tuple (string,), (string, string), or u(string, None)N(ii(u isinstanceutupleulenustruNoneu TypeError(uselfu definitionsudefn((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyu_check_macro_definitionss # u"CCompiler._check_macro_definitionscCsB|j|}|dk r(|j|=n|jj||fdS(u_Define a preprocessor macro for all compilations driven by this compiler object. The optional parameter 'value' should be a string; if it is not supplied, then the macro will be defined without an explicit value and the exact outcome depends on the compiler used (XXX true? does ANSI say anything about this?) N(u _find_macrouNoneumacrosuappend(uselfunameuvalueui((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyu define_macros   uCCompiler.define_macrocCsE|j|}|dk r(|j|=n|f}|jj|dS(uUndefine a preprocessor macro for all compilations driven by this compiler object. If the same macro is defined by 'define_macro()' and undefined by 'undefine_macro()' the last call takes precedence (including multiple redefinitions or undefinitions). If the macro is redefined/undefined on a per-compilation basis (ie. in the call to 'compile()'), then that takes precedence. N(u _find_macrouNoneumacrosuappend(uselfunameuiuundefn((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyuundefine_macros    uCCompiler.undefine_macrocCs|jj|dS(uAdd 'dir' to the list of directories that will be searched for header files. The compiler is instructed to search directories in the order in which they are supplied by successive calls to 'add_include_dir()'. N(u include_dirsuappend(uselfudir((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyuadd_include_dirsuCCompiler.add_include_dircCs|dd|_dS(uySet the list of directories that will be searched to 'dirs' (a list of strings). Overrides any preceding calls to 'add_include_dir()'; subsequence calls to 'add_include_dir()' add to the list passed to 'set_include_dirs()'. This does not affect any list of standard include directories that the compiler may search by default. N(u include_dirs(uselfudirs((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyuset_include_dirssuCCompiler.set_include_dirscCs|jj|dS(uAdd 'libname' to the list of libraries that will be included in all links driven by this compiler object. Note that 'libname' should *not* be the name of a file containing a library, but the name of the library itself: the actual filename will be inferred by the linker, the compiler, or the compiler class (depending on the platform). The linker will be instructed to link against libraries in the order they were supplied to 'add_library()' and/or 'set_libraries()'. It is perfectly valid to duplicate library names; the linker will be instructed to link against libraries as many times as they are mentioned. N(u librariesuappend(uselfulibname((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyu add_librarysuCCompiler.add_librarycCs|dd|_dS(uSet the list of libraries to be included in all links driven by this compiler object to 'libnames' (a list of strings). This does not affect any standard system libraries that the linker may include by default. N(u libraries(uselfulibnames((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyu set_librariessuCCompiler.set_librariescCs|jj|dS(u'Add 'dir' to the list of directories that will be searched for libraries specified to 'add_library()' and 'set_libraries()'. The linker will be instructed to search for libraries in the order they are supplied to 'add_library_dir()' and/or 'set_library_dirs()'. N(u library_dirsuappend(uselfudir((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyuadd_library_dirsuCCompiler.add_library_dircCs|dd|_dS(uSet the list of library search directories to 'dirs' (a list of strings). This does not affect any standard library search path that the linker may search by default. N(u library_dirs(uselfudirs((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyuset_library_dirs suCCompiler.set_library_dirscCs|jj|dS(ulAdd 'dir' to the list of directories that will be searched for shared libraries at runtime. N(uruntime_library_dirsuappend(uselfudir((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyuadd_runtime_library_dirsu!CCompiler.add_runtime_library_dircCs|dd|_dS(uSet the list of directories to search for shared libraries at runtime to 'dirs' (a list of strings). This does not affect any standard search path that the runtime linker may search by default. N(uruntime_library_dirs(uselfudirs((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyuset_runtime_library_dirssu"CCompiler.set_runtime_library_dirscCs|jj|dS(uAdd 'object' to the list of object files (or analogues, such as explicitly named library files or the output of "resource compilers") to be included in every link driven by this compiler object. N(uobjectsuappend(uselfuobject((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyuadd_link_object suCCompiler.add_link_objectcCs|dd|_dS(uSet the list of object files (or analogues) to be included in every link to 'objects'. This does not affect any standard object files that the linker may include by default (such as system libraries). N(uobjects(uselfuobjects((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyuset_link_objects(suCCompiler.set_link_objectscCs|dkr|j}nt|ts6tdn|dkrN|j}n1t|trs||jplg}n td|dkr|j}n=t|ttfrt||jpg}n td|dkrg}n|j |ddd|}t ||}i} xmt t |D]Y} || } || } t jj| d} |jt jj| | | f| | 'runtime_library_dirs' (if supplied) must be a list of stringsN(uNoneu librariesu isinstanceulistutupleu TypeErroru library_dirsuruntime_library_dirs(uselfu librariesu library_dirsuruntime_library_dirs((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyu _fix_lib_argss&          uCCompiler._fix_lib_argscCsE|jr dS|jr.t||dd}nt||}|SdS(ujReturn true if we need to relink the files listed in 'objects' to recreate 'output_file'. umissingunewerNT(uforceuTrueudry_runu newer_group(uselfuobjectsu output_fileunewer((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyu _need_links   uCCompiler._need_linkc Cst|ts|g}nd}t|j}x~|D]v}tjj|\}}|jj |}y1|jj |}||kr|}|}nWq7t k rYq7Xq7W|S(u|Detect the language of a given file, or list of files. Uses language_map, and language_order to do the job. N( u isinstanceulistuNoneulenulanguage_orderuosupathusplitextu language_mapugetuindexu ValueError( uselfusourcesulanguindexusourceubaseuextuextlanguextindex((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyudetect_languages      uCCompiler.detect_languagecCsdS(uPreprocess a single C/C++ source file, named in 'source'. Output will be written to file named 'output_file', or stdout if 'output_file' not supplied. 'macros' is a list of macro definitions as for 'compile()', which will augment the macros set with 'define_macro()' and 'undefine_macro()'. 'include_dirs' is a list of directory names that will be added to the default list. Raises PreprocessError on failure. N((uselfusourceu output_fileumacrosu include_dirsu extra_preargsuextra_postargs((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyu preprocesss uCCompiler.preprocessc Cs|j||||||\}} }} } |j| ||} xV| D]N} y| | \}}Wntk rzwIYnX|j| ||| || qIW| S(uK Compile one or more source files. 'sources' must be a list of filenames, most likely C/C++ files, but in reality anything that can be handled by a particular compiler and compiler class (eg. MSVCCompiler can handle resource files in 'sources'). Return a list of object filenames, one per source filename in 'sources'. Depending on the implementation, not all source files will necessarily be compiled, but all corresponding object filenames will be returned. If 'output_dir' is given, object files will be put under it, while retaining their original path component. That is, "foo/bar.c" normally compiles to "foo/bar.o" (for a Unix implementation); if 'output_dir' is "build", then it would compile to "build/foo/bar.o". 'macros', if given, must be a list of macro definitions. A macro definition is either a (name, value) 2-tuple or a (name,) 1-tuple. The former defines a macro; if the value is None, the macro is defined without an explicit value. The 1-tuple case undefines a macro. Later definitions/redefinitions/ undefinitions take precedence. 'include_dirs', if given, must be a list of strings, the directories to add to the default include file search path for this compilation only. 'debug' is a boolean; if true, the compiler will be instructed to output debug symbols in (or alongside) the object file(s). 'extra_preargs' and 'extra_postargs' are implementation- dependent. On platforms that have the notion of a command-line (e.g. Unix, DOS/Windows), they are most likely lists of strings: extra command-line arguments to prepand/append to the compiler command line. On other platforms, consult the implementation class documentation. In any event, they are intended as an escape hatch for those occasions when the abstract compiler framework doesn't cut the mustard. 'depends', if given, is a list of filenames that all targets depend on. If a source file is older than any file in depends, then the source file will be recompiled. This supports dependency tracking, but only at a coarse granularity. Raises CompileError on failure. (u_setup_compileu _get_cc_argsuKeyErroru_compile(uselfusourcesu output_dirumacrosu include_dirsudebugu extra_preargsuextra_postargsudependsuobjectsupp_optsubuilducc_argsuobjusrcuext((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyucompiles6   uCCompiler.compilecCsdS(uCompile 'src' to product 'obj'.N((uselfuobjusrcuextucc_argsuextra_postargsupp_opts((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyu_compileCsuCCompiler._compilecCsdS(u&Link a bunch of stuff together to create a static library file. The "bunch of stuff" consists of the list of object files supplied as 'objects', the extra object files supplied to 'add_link_object()' and/or 'set_link_objects()', the libraries supplied to 'add_library()' and/or 'set_libraries()', and the libraries supplied as 'libraries' (if any). 'output_libname' should be a library name, not a filename; the filename will be inferred from the library name. 'output_dir' is the directory where the library file will be put. 'debug' is a boolean; if true, debugging information will be included in the library (note that on most platforms, it is the compile step where this matters: the 'debug' flag is included here just for consistency). 'target_lang' is the target language for which the given objects are being compiled. This allows specific linkage time treatment of certain languages. Raises LibError on failure. N((uselfuobjectsuoutput_libnameu output_dirudebugu target_lang((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyucreate_static_libIsuCCompiler.create_static_libu shared_objectushared_libraryu executablecCs tdS(uuLink a bunch of stuff together to create an executable or shared library file. The "bunch of stuff" consists of the list of object files supplied as 'objects'. 'output_filename' should be a filename. If 'output_dir' is supplied, 'output_filename' is relative to it (i.e. 'output_filename' can provide directory components if needed). 'libraries' is a list of libraries to link against. These are library names, not filenames, since they're translated into filenames in a platform-specific way (eg. "foo" becomes "libfoo.a" on Unix and "foo.lib" on DOS/Windows). However, they can include a directory component, which means the linker will look in that specific directory rather than searching all the normal locations. 'library_dirs', if supplied, should be a list of directories to search for libraries that were specified as bare library names (ie. no directory component). These are on top of the system default and those supplied to 'add_library_dir()' and/or 'set_library_dirs()'. 'runtime_library_dirs' is a list of directories that will be embedded into the shared library and used to search for other shared libraries that *it* depends on at run-time. (This may only be relevant on Unix.) 'export_symbols' is a list of symbols that the shared library will export. (This appears to be relevant only on Windows.) 'debug' is as for 'compile()' and 'create_static_lib()', with the slight distinction that it actually matters on most platforms (as opposed to 'create_static_lib()', which includes a 'debug' flag mostly for form's sake). 'extra_preargs' and 'extra_postargs' are as for 'compile()' (except of course that they supply command-line arguments for the particular linker being used). 'target_lang' is the target language for which the given objects are being compiled. This allows specific linkage time treatment of certain languages. Raises LinkError on failure. N(uNotImplementedError(uselfu target_descuobjectsuoutput_filenameu output_diru librariesu library_dirsuruntime_library_dirsuexport_symbolsudebugu extra_preargsuextra_postargsu build_tempu target_lang((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyulinkis9uCCompiler.linkc CsG|jtj||j|dd||||||| | | | dS(Nulib_typeushared(ulinku CCompileruSHARED_LIBRARYulibrary_filename( uselfuobjectsuoutput_libnameu output_diru librariesu library_dirsuruntime_library_dirsuexport_symbolsudebugu extra_preargsuextra_postargsu build_tempu target_lang((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyulink_shared_libs  uCCompiler.link_shared_libc Cs8|jtj||||||||| | | | dS(N(ulinku CCompileru SHARED_OBJECT( uselfuobjectsuoutput_filenameu output_diru librariesu library_dirsuruntime_library_dirsuexport_symbolsudebugu extra_preargsuextra_postargsu build_tempu target_lang((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyulink_shared_objects  uCCompiler.link_shared_objectc CsA|jtj||j|||||d||| d| dS(N(ulinku CCompileru EXECUTABLEuexecutable_filenameuNone( uselfuobjectsuoutput_prognameu output_diru librariesu library_dirsuruntime_library_dirsudebugu extra_preargsuextra_postargsu target_lang((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyulink_executables  uCCompiler.link_executablecCs tdS(ukReturn the compiler option to add 'dir' to the list of directories searched for libraries. N(uNotImplementedError(uselfudir((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyulibrary_dir_optionsuCCompiler.library_dir_optioncCs tdS(usReturn the compiler option to add 'dir' to the list of directories searched for runtime libraries. N(uNotImplementedError(uselfudir((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyuruntime_library_dir_optionsu$CCompiler.runtime_library_dir_optioncCs tdS(uReturn the compiler option to add 'dir' to the list of libraries linked into the shared library or executable. N(uNotImplementedError(uselfulib((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyulibrary_optionsuCCompiler.library_optionc CsMddl}|dkr!g}n|dkr6g}n|dkrKg}n|dkr`g}n|jd|dd \}}tj|d} z7x|D]} | jd| qW| jd|Wd| jXy|j|gd|} Wnt k r d SYnXy |j | d d |d |Wnt t fk rHd SYnXd S(uReturn a boolean indicating whether funcname is supported on the current platform. The optional arguments can be used to augment the compilation environment. iNu.cutextuwu#include "%s" u+main (int argc, char **argv) { %s(); } u include_dirsua.outu librariesu library_dirsTF(utempfileuNoneumkstempuTrueuosufdopenuwriteucloseucompileu CompileErroruFalseulink_executableu LinkErroru TypeError( uselfufuncnameuincludesu include_dirsu librariesu library_dirsutempfileufdufnameufuincluobjects((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyu has_functions8               uCCompiler.has_functioncCs tdS(uHSearch the specified list of directories for a static or shared library file 'lib' and return the full path to that file. If 'debug' true, look for a debugging version (if that makes sense on the current platform). Return None if 'lib' wasn't found in any of the specified directories. N(uNotImplementedError(uselfudirsulibudebug((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyufind_library_file#suCCompiler.find_library_fileucCs|dkrd}ng}x|D]}tjj|\}}tjj|d}|tjj|d}||jkrtd||fn|rtjj|}n|j tjj |||j q"W|S(Nuiu"unknown file type '%s' (from '%s')( uNoneuosupathusplitextu splitdriveuisabsusrc_extensionsuUnknownFileErrorubasenameuappendujoinu obj_extension(uselfusource_filenamesu strip_diru output_diru obj_namesusrc_nameubaseuext((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyuobject_filenamesNs   uCCompiler.object_filenamescCs5|rtjj|}ntjj|||jS(N(uosupathubasenameujoinushared_lib_extension(uselfubasenameu strip_diru output_dir((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyushared_object_filename_su CCompiler.shared_object_filenamecCs;|rtjj|}ntjj|||jp6dS(Nu(uosupathubasenameujoinu exe_extension(uselfubasenameu strip_diru output_dir((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyuexecutable_filenameesuCCompiler.executable_filenameustaticc Cs|dkrtdnt||d}t||d}tjj|\}}|||f} |rxd}ntjj||| S( Nustaticusharedudylibu0'lib_type' must be "static", "shared" or "dylib"u _lib_formatu_lib_extensionu(ustaticusharedudylib(u ValueErrorugetattruosupathusplitujoin( uselfulibnameulib_typeu strip_diru output_dirufmtuextudirubaseufilename((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyulibrary_filenameks   uCCompiler.library_filenameicCstj|dS(N(ulogudebug(uselfumsgulevel((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyuannounce~suCCompiler.announcecCs'ddlm}|r#t|ndS(Ni(uDEBUG(udistutils.debuguDEBUGuprint(uselfumsguDEBUG((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyu debug_printsuCCompiler.debug_printcCstjjd|dS(Nu warning: %s (usysustderruwrite(uselfumsg((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyuwarnsuCCompiler.warncCst||||jdS(N(uexecuteudry_run(uselfufuncuargsumsgulevel((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyuexecutesuCCompiler.executecCst|d|jdS(Nudry_run(uspawnudry_run(uselfucmd((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyuspawnsuCCompiler.spawncCst||d|jS(Nudry_run(u move_fileudry_run(uselfusrcudst((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyu move_filesuCCompiler.move_fileicCst||d|jdS(Nudry_run(umkpathudry_run(uselfunameumode((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyumkpathsuCCompiler.mkpathN(Cu__name__u __module__u __qualname__u__doc__uNoneu compiler_typeusrc_extensionsu obj_extensionustatic_lib_extensionushared_lib_extensionustatic_lib_formatushared_lib_formatu exe_extensionu language_mapulanguage_orderu__init__uset_executablesuset_executableu _find_macrou_check_macro_definitionsu define_macrouundefine_macrouadd_include_diruset_include_dirsu add_libraryu set_librariesuadd_library_diruset_library_dirsuadd_runtime_library_diruset_runtime_library_dirsuadd_link_objectuset_link_objectsu_setup_compileu _get_cc_argsu_fix_compile_argsu _prep_compileu_fix_object_argsu _fix_lib_argsu _need_linkudetect_languageu preprocessucompileu_compileucreate_static_libu SHARED_OBJECTuSHARED_LIBRARYu EXECUTABLEulinkulink_shared_libulink_shared_objectulink_executableulibrary_dir_optionuruntime_library_dir_optionulibrary_optionu has_functionufind_library_fileuobject_filenamesushared_object_filenameuexecutable_filenameulibrary_filenameuannounceu debug_printuwarnuexecuteuspawnu move_fileumkpath(u __locals__((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyu CCompilers    $              +   "   B 4     *+    u CCompilerucygwin.*uunixuos2emxuemxuposixuntumsvccCs|dkrtj}n|dkr0tj}nxHtD]@\}}tj||dk sstj||dk r7|Sq7WdS(ukDetermine the default compiler to use for the given platform. osname should be one of the standard Python OS names (i.e. the ones returned by os.name) and platform the common value returned by sys.platform for the platform in question. The default values are os.name and sys.platform in case the parameters are not given. uunixN(uNoneuosunameusysuplatformu_default_compilersureumatch(uosnameuplatformupatternucompiler((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyuget_default_compilers    uget_default_compileru unixccompileru UnixCCompilerustandard UNIX-style compileru msvccompileru MSVCCompileruMicrosoft Visual C++ucygwinccompileruCygwinCCompileru'Cygwin port of GNU C Compiler for Win32ucygwinuMingw32CCompileru(Mingw32 port of GNU C Compiler for Win32umingw32u bcppcompileru BCPPCompileruBorland C++ Compilerubcppu emxccompileru EMXCCompileru#EMX port of GNU C Compiler for OS/2cCsvddlm}g}x6tjD](}|jd|dt|dfq#W|j||}|jddS(uyPrint list of available compilers (used by the "--help-compiler" options to "build", "build_ext", "build_clib"). i(u FancyGetoptu compiler=iuList of available compilers:N(udistutils.fancy_getoptu FancyGetoptucompiler_classukeysuappenduNoneusortu print_help(u FancyGetoptu compilersucompilerupretty_printer((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyushow_compilerss  ushow_compilersc Cs#|dkrtj}ny2|dkr6t|}nt|\}}}WnEtk rd|}|dk r|d|}nt|YnXy5d|}t|tj |} t | |} WnIt k rt d|Yn(tk rt d||fYnX| d||S(u[Generate an instance of some CCompiler subclass for the supplied platform/compiler combination. 'plat' defaults to 'os.name' (eg. 'posix', 'nt'), and 'compiler' defaults to the default compiler for that platform. Currently only 'posix' and 'nt' are supported, and the default compilers are "traditional Unix interface" (UnixCCompiler class) and Visual C++ (MSVCCompiler class). Note that it's perfectly possible to ask for a Unix compiler object under Windows, and a Microsoft compiler object under Unix -- if you supply a value for 'compiler', 'plat' is ignored. u5don't know how to compile C/C++ code on platform '%s'u with '%s' compileru distutils.u4can't compile C/C++ code: unable to load module '%s'uBcan't compile C/C++ code: unable to find class '%s' in module '%s'N( uNoneuosunameuget_default_compilerucompiler_classuKeyErroruDistutilsPlatformErroru __import__usysumodulesuvarsu ImportErroruDistutilsModuleError( uplatucompileruverboseudry_runuforceu module_nameu class_nameulong_descriptionumsgumoduleuklass((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyu new_compilers2           u new_compilercCsg}x|D]}t|toAdt|ko?dknsWtd|nt|dkr|jd|dq t|dkr |dd kr|jd|dq|jd|q q Wx|D]}|jd|qW|S( uGenerate C pre-processor options (-D, -U, -I) as used by at least two types of compilers: the typical Unix compiler and Visual C++. 'macros' is the usual thing, a list of 1- or 2-tuples, where (name,) means undefine (-U) macro 'name', and (name,value) means define (-D) macro 'name' to 'value'. 'include_dirs' is just a list of directory names to be added to the header file search path (-I). Returns a list of command-line options suitable for either Unix compilers or Visual C++. iiuPbad macro definition '%s': each element of 'macros' list must be a 1- or 2-tupleu-U%siu-D%su-D%s=%su-I%sN(u isinstanceutupleulenu TypeErroruappenduNone(umacrosu include_dirsupp_optsumacroudir((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyugen_preprocess_options s 1  ugen_preprocess_optionsc Csg}x$|D]}|j|j|q WxF|D]>}|j|}t|tre||}q4|j|q4Wx|D]y}tjj|\}} |r|j|g| } | r|j| q|j d|q}|j|j |q}W|S(ucGenerate linker options for searching library directories and linking with specific libraries. 'libraries' and 'library_dirs' are, respectively, lists of library names (not filenames!) and search directories. Returns a list of command-line options suitable for use with some compiler (depending on the two format strings passed in). u6no library file corresponding to '%s' found (skipping)( uappendulibrary_dir_optionuruntime_library_dir_optionu isinstanceulistuosupathusplitufind_library_fileuwarnulibrary_option( ucompileru library_dirsuruntime_library_dirsu librariesulib_optsudiruoptulibulib_dirulib_nameulib_file((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyugen_lib_options:s$      ugen_lib_options(u__doc__usysuosureudistutils.errorsudistutils.spawnuspawnudistutils.file_utilu move_fileudistutils.dir_utilumkpathudistutils.dep_utilunewer_pairwiseu newer_groupudistutils.utilu split_quoteduexecuteu distutilsulogu CCompileru_default_compilersuNoneuget_default_compilerucompiler_classushow_compilersu new_compilerugen_preprocess_optionsugen_lib_options(((u8/opt/alt/python33/lib64/python3.3/distutils/ccompiler.pyusB$            - -PK!t '__pycache__/archive_util.cpython-33.pycnu[ fc@sJdZddlZddlmZddlZyddlZWnek rXdZYnXddlm Z ddl m Z ddl m Z ddlmZdddd d Zddd d Ziedgdfd6edgdfd6edgdfd6ed gdfd6egdfd6ZddZddddddZdS(!uodistutils.archive_util Utility functions for creating archive files (tarballs, zip files, that sort of thing).iN(uwarn(uDistutilsExecError(uspawn(umkpath(ulogugzipc Csidd6dd6dd6dd6}idd6dd6d d6}|dk rj||jkrjtd n|d }|dkr||j|d7}nttjj|d |d dl}t j d|s|j |d||} z| j |Wd| j Xn|dkr{tdt|||} tjdkrX||| g} n|d|g} t| d || S|S(uCreate a (possibly compressed) tar file from all the files under 'base_dir'. 'compress' must be "gzip" (the default), "compress", "bzip2", or None. Both "tar" and the compression utility named by 'compress' must be on the default program search path, so this is probably Unix-specific. The output tar file will be named 'base_dir' + ".tar", possibly plus the appropriate compression extension (".gz", ".bz2" or ".Z"). Returns the output filename. ugzugzipubz2ubzip2uucompressu.gzu.bz2u.ZuEbad value for 'compress': must be None, 'gzip', 'bzip2' or 'compress'u.tarudry_runiNuCreating tar archiveuw|%su'compress' will be deprecated.uwin32u-f(uNoneukeysu ValueErrorugetumkpathuosupathudirnameutarfileuloguinfouopenuadducloseuwarnuPendingDeprecationWarningusysuplatformuspawn( u base_nameubase_dirucompressuverboseudry_runutar_compressionu compress_extu archive_nameutarfileutarucompressed_nameucmd((u;/opt/alt/python33/lib64/python3.3/distutils/archive_util.pyu make_tarballs2 "       u make_tarballc Cs|d}ttjj|d|td kr|rAd}nd}y td|||gd|Wqtk rtd|YqXntj d|||sytj |dd tj }Wn-t k rtj |dd tj }YnXxtj|D]w\}}} xe| D]]} tjjtjj|| } tjj| r|j| | tj d | qqWqW|jn|S( uvCreate a zip file from all the files under 'base_dir'. The output zip file will be named 'base_name' + ".zip". Uses either the "zipfile" Python module (if available) or the InfoZIP "zip" utility (if installed and found on the default search path). If neither tool is available, raises DistutilsExecError. Returns the name of the output zip file. u.zipudry_runu-ru-rquzipukunable to create zip file '%s': could neither import the 'zipfile' module nor find a standalone zip utilityu#creating '%s' and adding '%s' to ituwu compressionu adding '%s'N(umkpathuosupathudirnameuzipfileuNoneuspawnuDistutilsExecErroruloguinfouZipFileu ZIP_DEFLATEDu RuntimeErroru ZIP_STOREDuwalkunormpathujoinuisfileuwriteuclose( u base_nameubase_diruverboseudry_runu zip_filenameu zipoptionsuzipudirpathudirnamesu filenamesunameupath((u;/opt/alt/python33/lib64/python3.3/distutils/archive_util.pyu make_zipfileHs:         ! u make_zipfileucompressugzip'ed tar-fileugztarubzip2ubzip2'ed tar-fileubztarucompressed tar fileuztaruuncompressed tar fileutaruZIP fileuzipcCs%x|D]}|tkr|SqWdS(uqReturns the first format from the 'format' list that is unknown. If all formats are known, returns None N(uARCHIVE_FORMATSuNone(uformatsuformat((u;/opt/alt/python33/lib64/python3.3/distutils/archive_util.pyucheck_archive_formatss  ucheck_archive_formatsc Cs$tj}|dk rStjd|tjj|}|sStj|qSn|dkrktj}ni|d6}yt |}Wn"t k rt d|YnX|d} x"|dD]\} } | || s,    34 PK!Z T9!!'__pycache__/emxccompiler.cpython-33.pycnu[ f].c@sdZddlZddlZddlZddlmZmZddlmZddl m Z ddl m Z m Z mZddlmZGdd d eZd Zd Zd Zd dZddZdS(udistutils.emxccompiler Provides the EMXCCompiler class, a subclass of UnixCCompiler that handles the EMX port of the GNU C compiler to OS/2. iN(ugen_preprocess_optionsugen_lib_options(u UnixCCompiler(u write_file(uDistutilsExecErroru CompileErroruUnknownFileError(ulogc Bs|EeZdZdZdZdZdZdZdZdZ dZ dddd d Z d d Z ddddddddddd d ZddddZdddZdS(u EMXCCompileruemxu.obju.libu.dllu%s%su.resu.exeic Cstj||||t\}}|jd||f|tk rd|jdd|dnt\|_|_|j|j d|j|jf|j ddddd d d d d g|_ dS(Nu%Python's GCC status: %s (details: %s)u<Python's pyconfig.h doesn't seem to support your compiler. u Reason: %s.u<Compiling may fail because of undefined preprocessor macros.u: gcc %s, ld %s ucompileru5gcc -Zomf -Zmt -O3 -fomit-frame-pointer -mprobe -Wallu compiler_sou linker_exeugcc -Zomf -Zmt -Zcrtdllu linker_sougcc -Zomf -Zmt -Zcrtdll -Zdllugcc( u UnixCCompileru__init__ucheck_config_hu debug_printu CONFIG_H_OKuwarnu get_versionsu gcc_versionu ld_versionu compiler_typeuset_executablesu dll_libraries(uselfuverboseudry_runuforceustatusudetails((u;/opt/alt/python33/lib64/python3.3/distutils/emxccompiler.pyu__init__(s"    uEMXCCompiler.__init__cCs|dkr]y|jdd|gWqtk rY}zt|WYdd}~XqXn]y)|j|j||d|g|Wn1tk r}zt|WYdd}~XnXdS(Nu.rcurcu-ru-o(uspawnuDistutilsExecErroru CompileErroru compiler_so(uselfuobjusrcuextucc_argsuextra_postargsupp_optsumsg((u;/opt/alt/python33/lib64/python3.3/distutils/emxccompiler.pyu_compileKs " uEMXCCompiler._compilecCstj| pg} tj|p$g}tj|p9g}|j|j|dk r;||jkr;tjj|d}tjjtjj |\}}tjj ||d}dtjjtjj |dddg}x|D]}|j d|qW|j t ||fd||j |n| sQ| j dntj||||||||d| | | | | dS( Niu.defu$LIBRARY %s INITINSTANCE TERMINSTANCEuDATA MULTIPLE NONSHAREDuEXPORTSu "%s"u writing %su-s(ucopyuextendu dll_librariesuNoneu EXECUTABLEuosupathudirnameusplitextubasenameujoinuappenduexecuteu write_fileu UnixCCompilerulink(uselfu target_descuobjectsuoutput_filenameu output_diru librariesu library_dirsuruntime_library_dirsuexport_symbolsudebugu extra_preargsuextra_postargsu build_tempu target_langutemp_dirudll_nameu dll_extensionudef_fileucontentsusym((u;/opt/alt/python33/lib64/python3.3/distutils/emxccompiler.pyulinkYsF         uEMXCCompiler.linkucCs|dkrd}ng}x|D]}tjjtjj|\}}||jdgkr{td||fn|rtjj|}n|dkr|jtjj |||j q"|jtjj |||j q"W|S(Nuu.rcu"unknown file type '%s' (from '%s')( uNoneuosupathusplitextunormcaseusrc_extensionsuUnknownFileErrorubasenameuappendujoinu res_extensionu obj_extension(uselfusource_filenamesu strip_diru output_diru obj_namesusrc_nameubaseuext((u;/opt/alt/python33/lib64/python3.3/distutils/emxccompiler.pyuobject_filenamess   $ uEMXCCompiler.object_filenamesc Csd|}d|}ytjdjd}Wntk rHg}YnXxh||D]\}tjj||}tjj||} tjj|r|Stjj| rT| SqTWdS(Nu%s.libu lib%s.libu LIBRARY_PATHu;(uosuenvironusplituKeyErrorupathujoinuexistsuNone( uselfudirsulibudebugushortlibulonglibuemx_dirsudiru shortlibpulonglibp((u;/opt/alt/python33/lib64/python3.3/distutils/emxccompiler.pyufind_library_files    uEMXCCompiler.find_library_fileN(u__name__u __module__u __qualname__u compiler_typeu obj_extensionustatic_lib_extensionushared_lib_extensionustatic_lib_formatushared_lib_formatu res_extensionu exe_extensionu__init__u_compileuNoneulinkuobject_filenamesufind_library_file(u __locals__((u;/opt/alt/python33/lib64/python3.3/distutils/emxccompiler.pyu EMXCCompilers2 Pu EMXCCompileruokunot oku uncertaincCsddlm}tjjddkr2tdfS|j}y.t|}z|j}Wd|j XWn<t k r}zt d||j ffSWYdd}~Xn2X|jddkrtd|fSt d |fSdS( uCheck if the current Python installation (specifically, pyconfig.h) appears amenable to building extensions with GCC. Returns a tuple (status, details), where 'status' is one of the following constants: CONFIG_H_OK all is well, go ahead and compile CONFIG_H_NOTOK doesn't look good CONFIG_H_UNCERTAIN not sure -- unable to read pyconfig.h 'details' is a human-readable string explaining the situation. Note there are two ways to conclude "OK": either 'sys.version' contains the string "GCC" (implying that this Python was built with GCC), or the installed "pyconfig.h" contains the string "__GNUC__". i(u sysconfiguGCCusys.version mentions 'GCC'Nucouldn't read '%s': %su__GNUC__u'%s' mentions '__GNUC__'u '%s' does not mention '__GNUC__'(u distutilsu sysconfigusysuversionufindu CONFIG_H_OKuget_config_h_filenameuopenureaducloseuIOErroruCONFIG_H_UNCERTAINustrerroruCONFIG_H_NOTOK(u sysconfigufnufusuexc((u;/opt/alt/python33/lib64/python3.3/distutils/emxccompiler.pyucheck_config_hs   'ucheck_config_hc Csddlm}ddlm}ddl}|d}|rtj|dd}z|j}Wd|jX|j d||j }|r||j d }qd}nd}d}||fS( ua Try to find out the versions of gcc and ld. If not possible it returns None for it. i(u StrictVersion(ufind_executableNugccu -dumpversionuru(\d+\.\d+\.\d+)i( udistutils.versionu StrictVersionudistutils.spawnufind_executableureuosupopenureaducloseusearchuASCIIugroupuNone( u StrictVersionufind_executableureugcc_exeuoutu out_stringuresultu gcc_versionu ld_version((u;/opt/alt/python33/lib64/python3.3/distutils/emxccompiler.pyu get_versions"s     u get_versions(u__doc__uosusysucopyudistutils.ccompilerugen_preprocess_optionsugen_lib_optionsudistutils.unixccompileru UnixCCompilerudistutils.file_utilu write_fileudistutils.errorsuDistutilsExecErroru CompileErroruUnknownFileErroru distutilsulogu EMXCCompileru CONFIG_H_OKuCONFIG_H_NOTOKuCONFIG_H_UNCERTAINucheck_config_hu get_versions(((u;/opt/alt/python33/lib64/python3.3/distutils/emxccompiler.pyus$ 3PK!k''"__pycache__/version.cpython-33.pyonu[ f0c@sUdZddlZGdddZGdddeZGdddeZdS( uProvides classes to represent module version numbers (one class for each style of version numbering). There are currently two such classes implemented: StrictVersion and LooseVersion. Every version number class implements the following interface: * the 'parse' method takes a string and parses it to some internal representation; if the string is an invalid version number, 'parse' raises a ValueError exception * the class constructor takes an optional string argument which, if supplied, is passed to 'parse' * __str__ reconstructs the string that was passed to 'parse' (or an equivalent string -- ie. one that will generate an equivalent version number instance) * __repr__ generates Python code to recreate the version number instance * _cmp compares the current instance with either another instance of the same class or a string (which will be parsed to an instance of the same class, thus must follow the same rules) iNcBs}|EeZdZdZdddZddZddZdd Zd d Z d d Z ddZ ddZ dS(uVersionuAbstract base class for version numbering classes. Just provides constructor (__init__) and reproducer (__repr__), because those seem to be the same for all version numbering classes; and route rich comparisons to _cmp. cCs|r|j|ndS(N(uparse(uselfuvstring((u6/opt/alt/python33/lib64/python3.3/distutils/version.pyu__init__&suVersion.__init__cCsd|jjt|fS(Nu %s ('%s')(u __class__u__name__ustr(uself((u6/opt/alt/python33/lib64/python3.3/distutils/version.pyu__repr__*suVersion.__repr__cCs)|j|}|tkr|S|dkS(Ni(u_cmpuNotImplemented(uselfuotheruc((u6/opt/alt/python33/lib64/python3.3/distutils/version.pyu__eq__-s uVersion.__eq__cCs)|j|}|tkr|S|dkS(Ni(u_cmpuNotImplemented(uselfuotheruc((u6/opt/alt/python33/lib64/python3.3/distutils/version.pyu__ne__3s uVersion.__ne__cCs)|j|}|tkr|S|dkS(Ni(u_cmpuNotImplemented(uselfuotheruc((u6/opt/alt/python33/lib64/python3.3/distutils/version.pyu__lt__9s uVersion.__lt__cCs)|j|}|tkr|S|dkS(Ni(u_cmpuNotImplemented(uselfuotheruc((u6/opt/alt/python33/lib64/python3.3/distutils/version.pyu__le__?s uVersion.__le__cCs)|j|}|tkr|S|dkS(Ni(u_cmpuNotImplemented(uselfuotheruc((u6/opt/alt/python33/lib64/python3.3/distutils/version.pyu__gt__Es uVersion.__gt__cCs)|j|}|tkr|S|dkS(Ni(u_cmpuNotImplemented(uselfuotheruc((u6/opt/alt/python33/lib64/python3.3/distutils/version.pyu__ge__Ks uVersion.__ge__N( u__name__u __module__u __qualname__u__doc__uNoneu__init__u__repr__u__eq__u__ne__u__lt__u__le__u__gt__u__ge__(u __locals__((u6/opt/alt/python33/lib64/python3.3/distutils/version.pyuVersions      uVersioncBsZ|EeZdZdZejdejejBZddZ ddZ ddZ d S( u StrictVersionu?Version numbering for anal retentives and software idealists. Implements the standard interface for version number classes as described above. A version number consists of two or three dot-separated numeric components, with an optional "pre-release" tag on the end. The pre-release tag consists of the letter 'a' or 'b' followed by a number. If the numeric components of two version numbers are equal, then one with a pre-release tag will always be deemed earlier (lesser) than one without. The following are valid version numbers (shown in the order that would be obtained by sorting according to the supplied cmp function): 0.4 0.4.0 (these two are equivalent) 0.4.1 0.5a1 0.5b3 0.5 0.9.6 1.0 1.0.4a3 1.0.4b1 1.0.4 The following are examples of invalid version numbers: 1 2.7.2.2 1.3.a4 1.3pl1 1.3c4 The rationale for this version numbering system will be explained in the distutils documentation. u)^(\d+) \. (\d+) (\. (\d+))? ([ab](\d+))?$cCs|jj|}|s+td|n|jddddd\}}}}}|rttt|||g|_n"ttt||gd|_|r|dt|f|_n d|_dS( Nuinvalid version number '%s'iiiiii(i( u version_reumatchu ValueErrorugrouputupleumapuintuversionu prereleaseuNone(uselfuvstringumatchumajoruminorupatchu prereleaseuprerelease_num((u6/opt/alt/python33/lib64/python3.3/distutils/version.pyuparses*$"uStrictVersion.parsecCs|jddkr;djtt|jdd}ndjtt|j}|jr||jdt|jd}n|S(Niiu.i(uversionujoinumapustru prerelease(uselfuvstring((u6/opt/alt/python33/lib64/python3.3/distutils/version.pyu__str__s ( %uStrictVersion.__str__cCst|trt|}n|j|jkrM|j|jkrFdSdSn|j re|j redS|jr||j r|dS|j r|jrdS|jr|jr|j|jkrdS|j|jkrdSdSndS(Niiiii(u isinstanceustru StrictVersionuversionu prerelease(uselfuother((u6/opt/alt/python33/lib64/python3.3/distutils/version.pyu_cmps&uStrictVersion._cmpN( u__name__u __module__u __qualname__u__doc__ureucompileuVERBOSEuASCIIu version_reuparseu__str__u_cmp(u __locals__((u6/opt/alt/python33/lib64/python3.3/distutils/version.pyu StrictVersioncs #   u StrictVersioncBsn|EeZdZdZejdejZd ddZ ddZ ddZ d d Z d d Z d S(u LooseVersionuVersion numbering for anarchists and software realists. Implements the standard interface for version number classes as described above. A version number consists of a series of numbers, separated by either periods or strings of letters. When comparing version numbers, the numeric components will be compared numerically, and the alphabetic components lexically. The following are all valid version numbers, in no particular order: 1.5.1 1.5.2b2 161 3.10a 8.02 3.4j 1996.07.12 3.2.pl0 3.1.1.6 2g6 11g 0.960923 2.2beta29 1.13++ 5.5.kw 2.0b1pl0 In fact, there is no such thing as an invalid version number under this scheme; the rules for comparison are simple and predictable, but may not always give the results you want (for some definition of "want"). u(\d+ | [a-z]+ | \.)cCs|r|j|ndS(N(uparse(uselfuvstring((u6/opt/alt/python33/lib64/python3.3/distutils/version.pyu__init__4suLooseVersion.__init__c Cs{||_dd|jj|D}xCt|D]5\}}yt|||>s u&LooseVersion.parse..(uvstringu component_reusplitu enumerateuintu ValueErroruversion(uselfuvstringu componentsuiuobj((u6/opt/alt/python33/lib64/python3.3/distutils/version.pyuparse9s   uLooseVersion.parsecCs|jS(N(uvstring(uself((u6/opt/alt/python33/lib64/python3.3/distutils/version.pyu__str__IsuLooseVersion.__str__cCsdt|S(NuLooseVersion ('%s')(ustr(uself((u6/opt/alt/python33/lib64/python3.3/distutils/version.pyu__repr__MsuLooseVersion.__repr__cCsdt|trt|}n|j|jkr4dS|j|jkrJdS|j|jkr`dSdS(Niii(u isinstanceustru LooseVersionuversion(uselfuother((u6/opt/alt/python33/lib64/python3.3/distutils/version.pyu_cmpQsuLooseVersion._cmpN(u__name__u __module__u __qualname__u__doc__ureucompileuVERBOSEu component_reuNoneu__init__uparseu__str__u__repr__u_cmp(u __locals__((u6/opt/alt/python33/lib64/python3.3/distutils/version.pyu LooseVersions   u LooseVersion(u__doc__ureuVersionu StrictVersionu LooseVersion(((u6/opt/alt/python33/lib64/python3.3/distutils/version.pyus DPK!!__pycache__/config.cpython-33.pycnu[ fjc@sRdZddlZddlmZddlmZdZGdddeZdS(udistutils.pypirc Provides the PyPIRCCommand class, the base class for the command classes that uses .pypirc in the distutils.command package. iN(u ConfigParser(uCommanduE[distutils] index-servers = pypi [pypi] username:%s password:%s cBs|EeZdZdZdZdZdZdZdddefdgZ dgZ d d Z d d Z d dZ ddZddZddZdS(u PyPIRCCommandu;Base command that knows how to handle the .pypirc file uhttps://upload.pypi.org/legacy/upypiu repository=uruurl of repository [default: %s]u show-responseu&display full response text from servercCstjjtjjddS(uReturns rc file path.u~u.pypirc(uosupathujoinu expanduser(uself((u5/opt/alt/python33/lib64/python3.3/distutils/config.pyu _get_rc_file&suPyPIRCCommand._get_rc_filec Cs[|j}tjtj|tjtjBdd}|jt||fWdQXdS(uCreates a default .pypirc file.iuwN(u _get_rc_fileuosufdopenuopenuO_CREATuO_WRONLYuwriteuDEFAULT_PYPIRC(uselfuusernameupasswordurcuf((u5/opt/alt/python33/lib64/python3.3/distutils/config.pyu _store_pypirc*s .uPyPIRCCommand._store_pypircc Cs'|j}tjj|r#|jd||jp>|j}|jpP|j}t }|j ||j }d|kr|j dd}dd|j dD}|gkrd|krdg}qiSnxC|D]}i|d6} |j |d | d >s u.PyPIRCCommand._read_pypirc..u upypiuserveruusernameu repositoryurealmupasswordu server-loginN(upasswordN(u _get_rc_fileuosupathuexistsuannounceu repositoryuDEFAULT_REPOSITORYurealmu DEFAULT_REALMu ConfigParserureadusectionsugetusplituNoneu has_option( uselfurcu repositoryurealmuconfigusectionsu index_serversu_serversuserverucurrentukeyudefault((u5/opt/alt/python33/lib64/python3.3/distutils/config.pyu _read_pypirc0sP                uPyPIRCCommand._read_pypirccCsPddl}|jdd}|j|djdd}|jj|S(u%Read and decode a PyPI HTTP response.iNu content-typeu text/plainiucharsetuascii(ucgiu getheaderu parse_headerugetureadudecode(uselfuresponseucgiu content_typeuencoding((u5/opt/alt/python33/lib64/python3.3/distutils/config.pyu_read_pypi_responsehs u!PyPIRCCommand._read_pypi_responsecCsd|_d|_d|_dS(uInitialize options.iN(uNoneu repositoryurealmu show_response(uself((u5/opt/alt/python33/lib64/python3.3/distutils/config.pyuinitialize_optionsos  u PyPIRCCommand.initialize_optionscCs@|jdkr|j|_n|jdkr<|j|_ndS(uFinalizes options.N(u repositoryuNoneuDEFAULT_REPOSITORYurealmu DEFAULT_REALM(uself((u5/opt/alt/python33/lib64/python3.3/distutils/config.pyufinalize_optionsusuPyPIRCCommand.finalize_optionsN(u show-responseNu&display full response text from server(u__name__u __module__u __qualname__u__doc__uDEFAULT_REPOSITORYu DEFAULT_REALMuNoneu repositoryurealmu user_optionsuboolean_optionsu _get_rc_fileu _store_pypircu _read_pypircu_read_pypi_responseuinitialize_optionsufinalize_options(u __locals__((u5/opt/alt/python33/lib64/python3.3/distutils/config.pyu PyPIRCCommands"     8  u PyPIRCCommand(u__doc__uosu configparseru ConfigParseru distutils.cmduCommanduDEFAULT_PYPIRCu PyPIRCCommand(((u5/opt/alt/python33/lib64/python3.3/distutils/config.pyus   PK!ȑ __pycache__/core.cpython-33.pyonu[ f"c@sdZddlZddlZddlmZddlTddlmZddlm Z ddl m Z ddl m Z d Zd d Zdadad4Zd5Zd/d0Zdd1d2d3ZdS(6u#distutils.core The only module that needs to be imported to use the Distutils; provides the 'setup' function (which is to be called from the setup script). Also indirectly provides the Distribution and Command classes, although they are really defined in distutils.dist and distutils.cmd. iN(uDEBUG(u*(u Distribution(uCommand(u PyPIRCCommand(u Extensionuusage: %(script)s [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...] or: %(script)s --help [cmd1 cmd2 ...] or: %(script)s --help-commands or: %(script)s cmd --help cCstjj|}ttS(N(uosupathubasenameuUSAGEuvars(u script_nameuscript((u3/opt/alt/python33/lib64/python3.3/distutils/core.pyu gen_usage su gen_usageu distclassu script_nameu script_argsuoptionsunameuversionuauthoru author_emailu maintainerumaintainer_emailuurlulicenseu descriptionulong_descriptionukeywordsu platformsu classifiersu download_urlurequiresuprovidesu obsoletesusourcesu include_dirsu define_macrosu undef_macrosu library_dirsu librariesuruntime_library_dirsu extra_objectsuextra_compile_argsuextra_link_argsu swig_optsuexport_symbolsudependsulanguagec,Ks|jd}|r|d=nt}d|krQtjjtjd|dd|krt d|nt d |d|fWYdd}~XnXt d kr|S|j t r#t d |jnt d kr3|Sy|j}WnBtk r}z"t t|jd |WYdd}~XnXt rt d|jnt dkr|S|ry|jWqtk rt dYqttjfk rL}z;t r'tjjd|fnt d|fWYdd}~Xqttfk r}z't rpnt dt|WYdd}~XqXn|S(uThe gateway to the Distutils: do everything your setup script needs to do, in a highly flexible and user-driven way. Briefly: create a Distribution instance; find and parse config files; parse the command line; run each Distutils command found there, customized by the options supplied to 'setup()' (as keyword arguments), in config files, and on the command line. The Distribution instance might be an instance of a class supplied via the 'distclass' keyword argument to 'setup'; if no such class is supplied, then the Distribution class (in dist.py) is instantiated. All other arguments to 'setup' (except for 'cmdclass') are used to set attributes of the Distribution instance. The 'cmdclass' argument, if supplied, is a dictionary mapping command names to command classes. Each command encountered on the command line will be turned into a command class, which is in turn instantiated; any class found in 'cmdclass' is used in place of the default, which is (for command 'foo_bar') class 'foo_bar' in module 'distutils.command.foo_bar'. The command class must provide a 'user_options' attribute which is a list of option specifiers for 'distutils.fancy_getopt'. Any command-line options between the current and the next command are used to set attributes of the current command object. When the entire command-line has been successfully parsed, calls the 'run()' method on each command object in turn. This method will be driven entirely by the Distribution object (which each command object has a reference to, thanks to its constructor), and the command-specific options that became attributes of each command object. u distclassu script_nameiu script_argsiNunameuerror in setup command: %suerror in %s setup command: %suinitu%options (after parsing config files):uconfigu error: %su%options (after parsing command line):u commandlineu interruptedu error: %s u error: %suerror: (ugetu Distributionuosupathubasenameusysuargvu_setup_distributionuDistutilsSetupErroru SystemExitu_setup_stop_afteruparse_config_filesuDEBUGuprintudump_option_dictsuparse_command_lineuDistutilsArgErroru gen_usageu script_nameu run_commandsuKeyboardInterruptuIOErroruerrorustderruwriteuDistutilsErroruCCompilerErrorustr(uattrsuklassudistumsguokuexc((u3/opt/alt/python33/lib64/python3.3/distutils/core.pyusetup9s`%     '     0    %,usetupuruncCs|d kr"td|fn|atj}i|d6}i}yxza|tjd<|d k ry|tjdd s2      pPK!"$__pycache__/file_util.cpython-33.pyonu[ fc@sdZddlZddlmZddlmZidd6dd6dd 6Zdd d ZddddddddZ ddddZ ddZ dS(uFdistutils.file_util Utility functions for operating on single files. iN(uDistutilsFileError(ulogucopyingu hard linkinguhardusymbolically linkingusymiicNCsd}d}zyt|d}WnAtjk re}ztd||jfWYdd}~XnXtjj|rytj|Wqtjk r}ztd||jfWYdd}~XqXnyt|d}WnAtjk r&}ztd||jfWYdd}~XnXxy|j |}WnAtjk r}ztd||jfWYdd}~XnX|sPny|j |Wq*tjk r}ztd||jfWYdd}~Xq*Xq*Wd|r|j n|r |j nXdS( u5Copy the file 'src' to 'dst'; both must be filenames. Any error opening either file, reading from 'src', or writing to 'dst', raises DistutilsFileError. Data is read/written in chunks of 'buffer_size' bytes (default 16k). No attempt is made to handle anything apart from regular files. urbucould not open '%s': %sNucould not delete '%s': %suwbucould not create '%s': %sucould not read from '%s': %sucould not write to '%s': %s( uNoneuopenuosuerroruDistutilsFileErrorustrerrorupathuexistsuunlinkureaduwriteuclose(usrcudstu buffer_sizeufsrcufdstueubuf((u8/opt/alt/python33/lib64/python3.3/distutils/file_util.pyu_copy_file_contentssF ,,))0 u_copy_file_contentsicCsddlm}ddlm} m} m} m} tjj |sWt d|ntjj |r|} tjj |tjj |}ntjj|} |r||| r|dkrtjd|n|dfSyt|}Wn"tk rtd|YnX|dkrytjj |tjj |kr`tjd||| qytjd|||n|r|dfS|d krtjj|otjj||stj||qn|d krtjj|otjj||stj||qnut|||s4|rtj|}|rjtj||| || fn|rtj|| || qn|dfS( uCopy a file 'src' to 'dst'. If 'dst' is a directory, then 'src' is copied there with the same name; otherwise, it must be a filename. (If the file exists, it will be ruthlessly clobbered.) If 'preserve_mode' is true (the default), the file's mode (type and permission bits, or whatever is analogous on the current platform) is copied. If 'preserve_times' is true (the default), the last-modified and last-access times are copied as well. If 'update' is true, 'src' will only be copied if 'dst' does not exist, or if 'dst' does exist but is older than 'src'. 'link' allows you to make hard links (os.link) or symbolic links (os.symlink) instead of copying: set it to "hard" or "sym"; if it is None (the default), files are copied. Don't set 'link' on systems that don't support it: 'copy_file()' doesn't check if hard or symbolic linking is available. Under Mac OS, uses the native file copy function in macostools; on other systems, uses '_copy_file_contents()' to copy file contents. Return a tuple (dest_name, copied): 'dest_name' is the actual name of the output file, and 'copied' is true if the file was copied (or would have been copied, if 'dry_run' true). i(unewer(uST_ATIMEuST_MTIMEuST_MODEuS_IMODEu4can't copy '%s': doesn't exist or not a regular fileiu"not copying %s (output up-to-date)u&invalid value '%s' for 'link' argumentu %s %s -> %suhardusym(udistutils.dep_utilunewerustatuST_ATIMEuST_MTIMEuST_MODEuS_IMODEuosupathuisfileuDistutilsFileErroruisdirujoinubasenameudirnameulogudebugu _copy_actionuKeyErroru ValueErroruinfouexistsusamefileulinkusymlinku_copy_file_contentsuutimeuchmod(usrcudstu preserve_modeupreserve_timesuupdateulinkuverboseudry_rununeweruST_ATIMEuST_MTIMEuST_MODEuS_IMODEudiruactionust((u8/opt/alt/python33/lib64/python3.3/distutils/file_util.pyu copy_fileCsJ "$    $  ' '  ! u copy_filec(Cs(ddlm}m}m}m}m}ddl} |dkrVtjd||n|r`|S||st d|n||rt j j |||}n%||rt d||fn|||st d||fnd } yt j||Wnet jk rz} zB| \} } | | jkrOd } nt d ||| fWYdd} ~ XnX| r$t||d |yt j|Wq$t jk r } zV| \} } yt j|Wnt jk rYnXt d |||| fWYdd} ~ Xq$Xn|S(u%Move a file 'src' to 'dst'. If 'dst' is a directory, the file will be moved into it with the same name; otherwise, 'src' is just renamed to 'dst'. Return the new full name of the file. Handles cross-device moves on Unix using 'copy_file()'. What about other systems??? i(uexistsuisfileuisdirubasenameudirnameNiumoving %s -> %su#can't move '%s': not a regular fileu0can't move '%s': destination '%s' already existsu2can't move '%s': destination '%s' not a valid pathucouldn't move '%s' to '%s': %suverboseuAcouldn't move '%s' to '%s' by copy/delete: delete '%s' failed: %sFT(uos.pathuexistsuisfileuisdirubasenameudirnameuerrnouloguinfouDistutilsFileErroruosupathujoinuFalseurenameuerroruEXDEVuTrueu copy_fileuunlink(usrcudstuverboseudry_runuexistsuisfileuisdirubasenameudirnameuerrnoucopy_itueunumumsg((u8/opt/alt/python33/lib64/python3.3/distutils/file_util.pyu move_filesR (       ) ,u move_filec CsGt|d}z&x|D]}|j|dqWWd|jXdS(u{Create a file with the specified name and write 'contents' (a sequence of strings without line terminators) to it. uwu N(uopenuwriteuclose(ufilenameucontentsufuline((u8/opt/alt/python33/lib64/python3.3/distutils/file_util.pyu write_files  u write_filei@( u__doc__uosudistutils.errorsuDistutilsFileErroru distutilsuloguNoneu _copy_actionu_copy_file_contentsu copy_fileu move_fileu write_file(((u8/opt/alt/python33/lib64/python3.3/distutils/file_util.pyus   3 [=PK!-=## __pycache__/spawn.cpython-33.pyonu[ f!c@sdZddlZddlZddlmZmZddlmZddlm Z dddddZ d d Z dddd d Z dddd dZ ejdkrddlmZdadandddddZdddZdS(udistutils.spawn Provides the 'spawn()' function, a front-end to various platform- specific functions for launching another program in a sub-process. Also provides the 'find_executable()' to search the path for a given executable name. iN(uDistutilsPlatformErroruDistutilsExecError(uDEBUG(ulogicCst|}tjdkr1t||d|n]tjdkrVt||d|n8tjdkr{t||d|ntdtjdS(uRun another program, specified as a command list 'cmd', in a new process. 'cmd' is just the argument list for the new process, ie. cmd[0] is the program to run and cmd[1:] are the rest of its arguments. There is no way to run a program with a name different from that of its executable. If 'search_path' is true (the default), the system's executable search path will be used to find the program; otherwise, cmd[0] must be the exact path to the executable. If 'dry_run' is true, the command will not actually be run. Raise DistutilsExecError if running the program fails in any way; just return on success. uposixudry_rununtuos2u1don't know how to spawn programs on platform '%s'N(ulistuosunameu _spawn_posixu _spawn_ntu _spawn_os2uDistutilsPlatformError(ucmdu search_pathuverboseudry_run((u4/opt/alt/python33/lib64/python3.3/distutils/spawn.pyuspawns uspawncCs>x7t|D])\}}d|kr d|||ts|}ntjjd || jftjd WYdd} ~ XnXts|}ntjjd |tjd njxgytj| d\} } Wnutk r} zUddl} | j| jkrcwntsr|}ntd|| jdfWYdd} ~ XnXtj | rts|}ntd|tj!| fqtj"| r8tj#| }|dkrdSts|}ntd||fqtj$| rMqqts\|}ntd|| fqdS(Nu iudarwinuMACOSX_DEPLOYMENT_TARGETucSsg|]}t|qS((uint(u.0ux((u4/opt/alt/python33/lib64/python3.3/distutils/spawn.pyu s u _spawn_posix..u.cSsg|]}t|qS((uint(u.0ux((u4/opt/alt/python33/lib64/python3.3/distutils/spawn.pyu s uF$MACOSX_DEPLOYMENT_TARGET mismatch: now "%s" but "%s" during configureuunable to execute %r: %s iu(unable to execute %r for unknown reasonsucommand %r failed: %su"command %r terminated by signal %du%command %r failed with exit status %du1unknown error executing %r: termination status %di(%uloguinfoujoinuosuexecvpuexecvuNoneusysuplatformu _cfg_targetu sysconfiguget_config_varusplitu_cfg_target_splituenvironugetuDistutilsPlatformErrorudictuexecvpeuexecveuforkuOSErroruDEBUGustderruwriteustrerroru_exituwaitpiduerrnouEINTRuDistutilsExecErroruargsu WIFSIGNALEDuWTERMSIGu WIFEXITEDu WEXITSTATUSu WIFSTOPPED(ucmdu search_pathuverboseudry_runu executableuexec_fnuenvu cur_targetumy_msgupidueustatusuexcuerrnou exit_status((u4/opt/alt/python33/lib64/python3.3/distutils/spawn.pyu _spawn_posixrs  ""            -    u _spawn_posixcCs|dkrtjd}n|jtj}tjj|\}}tjdksdtj dkr}|dkr}|d}ntjj |sx9|D]1}tjj ||}tjj |r|SqWdS|SdS(uTries to find 'executable' in the directories listed in 'path'. A string listing directories separated by 'os.pathsep'; defaults to os.environ['PATH']. Returns the complete filename or None if not found. uPATHuwin32uos2u.exeN( uNoneuosuenvironusplitupathsepupathusplitextusysuplatformunameuisfileujoin(u executableupathupathsubaseuextupuf((u4/opt/alt/python33/lib64/python3.3/distutils/spawn.pyufind_executables *  ufind_executable(u__doc__usysuosudistutils.errorsuDistutilsPlatformErroruDistutilsExecErrorudistutils.debuguDEBUGu distutilsuloguspawnu_nt_quote_argsu _spawn_ntu _spawn_os2uplatformu sysconfiguNoneu _cfg_targetu_cfg_target_splitu _spawn_posixufind_executable(((u4/opt/alt/python33/lib64/python3.3/distutils/spawn.pyus    TPK!99'__pycache__/fancy_getopt.cpython-33.pyonu[ fxEc@sKdZddlZddlZddlZddlZddlTdZejdeZejdeefZ e j ddZ Gd d d Z d d Zd dejDZddZddZGdddZedkrGdZxKddddfD]7Zedeedjeeeeq WndS(u6distutils.fancy_getopt Wrapper around the standard getopt module that provides the following additional features: * short and long options are tied together * options have help strings, so fancy_getopt could potentially create a complete usage summary * options set attributes of a passed-in object iN(u*u[a-zA-Z](?:[a-zA-Z0-9-]*)u^%s$u ^(%s)=!(%s)$u-u_cBs|EeZdZdZdddZddZddZdddd Zd d Z d d Z ddZ ddZ ddZ ddZddddZddZdddZddddZdS(u FancyGetoptuWrapper around the standard 'getopt()' module that provides some handy extra functionality: * short and long options are tied together * options have help strings, and help text can be assembled from them * options set attributes of a passed-in object * boolean options can have "negative aliases" -- eg. if --quiet is the "negative alias" of --verbose, then "--quiet" on the command line sets 'verbose' to false cCst||_i|_|jr(|jni|_i|_g|_g|_i|_i|_i|_ g|_ dS(N( u option_tableu option_indexu _build_indexualiasunegative_aliasu short_optsu long_optsu short2longu attr_nameu takes_argu option_order(uselfu option_table((u;/opt/alt/python33/lib64/python3.3/distutils/fancy_getopt.pyu__init__)s           uFancyGetopt.__init__cCs6|jjx"|jD]}||j|d= 2iu:invalid short option '%s': must a single character or Noneu=u:u>invalid negative alias '%s': aliased option '%s' takes a valueuginvalid alias '%s': inconsistent with aliased option '%s' (one of them takes a value, the other doesn'tuEinvalid long option name '%s' (must be letters, numbers, hyphens onlyNiii(u long_optsu short_optsu short2longuclearurepeatu option_tableulenu ValueErroru isinstanceustruDistutilsGetoptErroruNoneuappendu takes_argunegative_aliasugetualiasu longopt_reumatchu get_attr_nameu attr_name(uselfuoptionulongushortuhelpurepeatualias_to((u;/opt/alt/python33/lib64/python3.3/distutils/fancy_getopt.pyu_grok_option_tables^     "  !        uFancyGetopt._grok_option_tablec Cs|dkr"tjdd}n|dkr@t}d}nd}|jdj|j}y"t j |||j \}}Wn4t j k r}zt |WYdd}~XnXx"|D]\}}t |dkr|ddkr|j|d}n|dd}|jj|} | r5| }n|j|sr|jj|} | ri| }d}qrd}n|j|} |r|jj| dk rt|| dd}nt|| ||jj||fqW|r||fS|SdS( uParse command-line options in args. Store as attributes on object. If 'args' is None or not supplied, uses 'sys.argv[1:]'. If 'object' is None or not supplied, creates a new OptionDummy object, stores option values there, and returns a tuple (args, object). If 'object' is supplied, it is modified in place and 'getopt()' just returns 'args'; in both cases, the returned 'args' is a modified copy of the passed-in 'args' list, which is left untouched. iNu iiu-TF(uNoneusysuargvu OptionDummyuTrueuFalseu_grok_option_tableujoinu short_optsugetoptu long_optsuerroruDistutilsArgErrorulenu short2longualiasugetu takes_argunegative_aliasu attr_nameurepeatugetattrusetattru option_orderuappend( uselfuargsuobjectucreated_objectu short_optsuoptsumsguoptuvalualiasuattr((u;/opt/alt/python33/lib64/python3.3/distutils/fancy_getopt.pyugetoptsB     ""      uFancyGetopt.getoptcCs)|jdkrtdn|jSdS(uReturns the list of (option, value) tuples processed by the previous run of 'getopt()'. Raises RuntimeError if 'getopt()' hasn't been called yet. u!'getopt()' hasn't been called yetN(u option_orderuNoneu RuntimeError(uself((u;/opt/alt/python33/lib64/python3.3/distutils/fancy_getopt.pyuget_option_ordersuFancyGetopt.get_option_ordercCsd}x||jD]q}|d}|d}t|}|ddkrS|d}n|d k rl|d}n||kr|}qqW|ddd}d}||} d|} |r|g} n dg} x|jD]}|d d \}}} t| | } |ddkr'|dd}n|d krt| rZ| jd ||| dfq| jd ||fnHd ||f}| r| jd ||| dfn| jd|x)| dd D]}| j| |qWqW| S(uGenerate help text (a list of strings, one per suggested line of output) from the option table for this FancyGetopt object. iiu=iiiNu uOption summary:Niu --%-*s %su --%-*s u%s (-%s)u --%-*siii(u option_tableulenuNoneu wrap_textuappend(uselfuheaderumax_optuoptionulongushortulu opt_widthu line_widthu text_widthu big_indentulinesuhelputextu opt_names((u;/opt/alt/python33/lib64/python3.3/distutils/fancy_getopt.pyu generate_helpsF             ! uFancyGetopt.generate_helpcCsG|dkrtj}nx(|j|D]}|j|dq(WdS(Nu (uNoneusysustdoutu generate_helpuwrite(uselfuheaderufileuline((u;/opt/alt/python33/lib64/python3.3/distutils/fancy_getopt.pyu print_helphs  uFancyGetopt.print_helpN(u__name__u __module__u __qualname__u__doc__uNoneu__init__u _build_indexuset_option_tableu add_optionu has_optionu get_attr_nameu_check_alias_dictu set_aliasesuset_negative_aliasesu_grok_option_tableugetoptuget_option_orderu generate_helpu print_help(u __locals__((u;/opt/alt/python33/lib64/python3.3/distutils/fancy_getopt.pyu FancyGetopts (       M= Ou FancyGetoptcCs)t|}|j||j||S(N(u FancyGetoptuset_negative_aliasesugetopt(uoptionsu negative_optuobjectuargsuparser((u;/opt/alt/python33/lib64/python3.3/distutils/fancy_getopt.pyu fancy_getoptos  u fancy_getoptcCsi|]}dt|qS(u (uord(u.0u_wschar((u;/opt/alt/python33/lib64/python3.3/distutils/fancy_getopt.pyu us u cCs|dkrgSt||kr)|gS|j}|jt}tjd|}dd|D}g}x |r}g}d}xt|rt|d}|||kr|j|d|d=||}q|r|d ddkr|d =nPqW|rd|dkrC|j|dd||d|d|d [string] Split 'text' into multiple lines of no more than 'width' characters each, and return the list of strings that results. u( +|-+)cSsg|]}|r|qS(((u.0uch((u;/opt/alt/python33/lib64/python3.3/distutils/fancy_getopt.pyu s uwrap_text..iiu Nuii( uNoneulenu expandtabsu translateuWS_TRANSureusplituappendujoin(utextuwidthuchunksulinesucur_lineucur_lenul((u;/opt/alt/python33/lib64/python3.3/distutils/fancy_getopt.pyu wrap_textws:        u wrap_textcCs |jtS(uXConvert a long option name to a valid Python identifier by changing "-" to "_". (u translateu longopt_xlate(uopt((u;/opt/alt/python33/lib64/python3.3/distutils/fancy_getopt.pyutranslate_longoptsutranslate_longoptcBs)|EeZdZdZgddZdS(u OptionDummyu_Dummy class just used as a place to hold command-line option values as instance attributes.cCs%x|D]}t||dqWdS(ukCreate a new OptionDummy instance. The attributes listed in 'options' will be initialized to None.N(usetattruNone(uselfuoptionsuopt((u;/opt/alt/python33/lib64/python3.3/distutils/fancy_getopt.pyu__init__s uOptionDummy.__init__N(u__name__u __module__u __qualname__u__doc__u__init__(u __locals__((u;/opt/alt/python33/lib64/python3.3/distutils/fancy_getopt.pyu OptionDummysu OptionDummyu__main__uTra-la-la, supercalifragilisticexpialidocious. How *do* you spell that odd word, anyways? (Someone ask Mary -- she'll know [or she'll say, "How should I know?"].)i iii(u width: %du (u__doc__usysustringureugetoptudistutils.errorsu longopt_patucompileu longopt_reu neg_alias_reustru maketransu longopt_xlateu FancyGetoptu fancy_getoptu whitespaceuWS_TRANSu wrap_textutranslate_longoptu OptionDummyu__name__utextuwuprintujoin(((u;/opt/alt/python33/lib64/python3.3/distutils/fancy_getopt.pyu s($  S  6  PK!RR'__pycache__/msvccompiler.cpython-33.pycnu[ f[c@sdZddlZddlZddlmZmZmZmZmZddl m Z m Z m Z ddl mZeZy@ddlZeZeZejZejZejZejZWnek r:yLddlZddlZeZeZejZejZejZejZWnek r5ejdYnXYnXerbej ej!ej"ej#fZ$nddZ%d d Z&d d Z'Gd ddZ(ddZ)ddZ*ddZ+Gddde Z,e)dkrej-de,Z.ddl/m,Z,ddl/m(Z(ndS(udistutils.msvccompiler Contains MSVCCompiler, an implementation of the abstract CCompiler class for the Microsoft Visual Studio. iN(uDistutilsExecErroruDistutilsPlatformErroru CompileErroruLibErroru LinkError(u CCompilerugen_preprocess_optionsugen_lib_options(uloguWarning: Can't read registry to find the necessary compiler setting Make sure that Python modules winreg, win32api or win32con are installed.cCsyt||}Wntk r+dSYnXg}d}xCyt||}Wntk rcPYnX|j||d7}q;|S(uReturn list of registry keys.iiN(u RegOpenKeyExuRegErroruNoneu RegEnumKeyuappend(ubaseukeyuhandleuLuiuk((u;/opt/alt/python33/lib64/python3.3/distutils/msvccompiler.pyu read_keys7s     u read_keyscCsyt||}Wntk r+dSYnXi}d}xayt||\}}}Wntk rlPYnX|j}t||t|<|d7}q;|S(uXReturn dict of registry keys and values. All names are converted to lowercase. iiN(u RegOpenKeyExuRegErroruNoneu RegEnumValueuloweru convert_mbcs(ubaseukeyuhandleuduiunameuvalueutype((u;/opt/alt/python33/lib64/python3.3/distutils/msvccompiler.pyu read_valuesHs     u read_valuesc CsJt|dd}|dk rFy|d}WqFtk rBYqFXn|S(Nudecodeumbcs(ugetattruNoneu UnicodeError(usudec((u;/opt/alt/python33/lib64/python3.3/distutils/msvccompiler.pyu convert_mbcs]s  u convert_mbcscBsD|EeZdZddZddZddZddZd S( u MacroExpandercCsi|_|j|dS(N(umacrosu load_macros(uselfuversion((u;/opt/alt/python33/lib64/python3.3/distutils/msvccompiler.pyu__init__gs uMacroExpander.__init__cCsCx<tD]4}t||}|r|||jd|tD]3}t|d|jd k r|j dPqqWngS( uGet a list of devstudio directories (include, lib or path). Return a list of strings. The list will be empty if unable to access the registry or appropriate registry keys not found. u dirsiu6%s\%0.1f\VC\VC_OBJECTS_PLATFORM_INFO\Win32\Directoriesu?%s\6.0\Build System\Components\Platforms\Win32 (%s)\Directoriesu;iu%s\6.0uIt seems you have Visual Studio 6 installed, but the expected registry settings are not present. You must at least run the Visual Studio GUI once so that these entries are created.N( u _can_read_regu_MSVCCompiler__versionu_MSVCCompiler__rootuHKEYSu read_valuesu_MSVCCompiler__macrosusubusplituNoneuwarn(uselfupathuplatformukeyubaseud((u;/opt/alt/python33/lib64/python3.3/distutils/msvccompiler.pyuget_msvc_pathsHs(     uMSVCCompiler.get_msvc_pathscCsP|dkr|jd}n|j|}|rLdj|tj|sZ(                  -   PK!ȑ __pycache__/core.cpython-33.pycnu[ f"c@sdZddlZddlZddlmZddlTddlmZddlm Z ddl m Z ddl m Z d Zd d Zdadad4Zd5Zd/d0Zdd1d2d3ZdS(6u#distutils.core The only module that needs to be imported to use the Distutils; provides the 'setup' function (which is to be called from the setup script). Also indirectly provides the Distribution and Command classes, although they are really defined in distutils.dist and distutils.cmd. iN(uDEBUG(u*(u Distribution(uCommand(u PyPIRCCommand(u Extensionuusage: %(script)s [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...] or: %(script)s --help [cmd1 cmd2 ...] or: %(script)s --help-commands or: %(script)s cmd --help cCstjj|}ttS(N(uosupathubasenameuUSAGEuvars(u script_nameuscript((u3/opt/alt/python33/lib64/python3.3/distutils/core.pyu gen_usage su gen_usageu distclassu script_nameu script_argsuoptionsunameuversionuauthoru author_emailu maintainerumaintainer_emailuurlulicenseu descriptionulong_descriptionukeywordsu platformsu classifiersu download_urlurequiresuprovidesu obsoletesusourcesu include_dirsu define_macrosu undef_macrosu library_dirsu librariesuruntime_library_dirsu extra_objectsuextra_compile_argsuextra_link_argsu swig_optsuexport_symbolsudependsulanguagec,Ks|jd}|r|d=nt}d|krQtjjtjd|dd|krt d|nt d |d|fWYdd}~XnXt d kr|S|j t r#t d |jnt d kr3|Sy|j}WnBtk r}z"t t|jd |WYdd}~XnXt rt d|jnt dkr|S|ry|jWqtk rt dYqttjfk rL}z;t r'tjjd|fnt d|fWYdd}~Xqttfk r}z't rpnt dt|WYdd}~XqXn|S(uThe gateway to the Distutils: do everything your setup script needs to do, in a highly flexible and user-driven way. Briefly: create a Distribution instance; find and parse config files; parse the command line; run each Distutils command found there, customized by the options supplied to 'setup()' (as keyword arguments), in config files, and on the command line. The Distribution instance might be an instance of a class supplied via the 'distclass' keyword argument to 'setup'; if no such class is supplied, then the Distribution class (in dist.py) is instantiated. All other arguments to 'setup' (except for 'cmdclass') are used to set attributes of the Distribution instance. The 'cmdclass' argument, if supplied, is a dictionary mapping command names to command classes. Each command encountered on the command line will be turned into a command class, which is in turn instantiated; any class found in 'cmdclass' is used in place of the default, which is (for command 'foo_bar') class 'foo_bar' in module 'distutils.command.foo_bar'. The command class must provide a 'user_options' attribute which is a list of option specifiers for 'distutils.fancy_getopt'. Any command-line options between the current and the next command are used to set attributes of the current command object. When the entire command-line has been successfully parsed, calls the 'run()' method on each command object in turn. This method will be driven entirely by the Distribution object (which each command object has a reference to, thanks to its constructor), and the command-specific options that became attributes of each command object. u distclassu script_nameiu script_argsiNunameuerror in setup command: %suerror in %s setup command: %suinitu%options (after parsing config files):uconfigu error: %su%options (after parsing command line):u commandlineu interruptedu error: %s u error: %suerror: (ugetu Distributionuosupathubasenameusysuargvu_setup_distributionuDistutilsSetupErroru SystemExitu_setup_stop_afteruparse_config_filesuDEBUGuprintudump_option_dictsuparse_command_lineuDistutilsArgErroru gen_usageu script_nameu run_commandsuKeyboardInterruptuIOErroruerrorustderruwriteuDistutilsErroruCCompilerErrorustr(uattrsuklassudistumsguokuexc((u3/opt/alt/python33/lib64/python3.3/distutils/core.pyusetup9s`%     '     0    %,usetupuruncCs|d kr"td|fn|atj}i|d6}i}yxza|tjd<|d k ry|tjdd s2      pPK!~ں#__pycache__/__init__.cpython-33.pycnu[ fc@s5dZddlZejdejjdZdS(udistutils The main package for the Python Module Distribution Utilities. Normally used from a setup script as from distutils.core import setup setup (...) iNu (u__doc__usysuversionuindexu __version__(((u7/opt/alt/python33/lib64/python3.3/distutils/__init__.pyu s PK!qff__pycache__/log.cpython-33.pycnu[ ftc@sdZdZdZdZdZdZddlZGdd d ZeZej Z ej Z ej Z ej Z ej Z ejZd d Zd d ZdS(u,A simple log mechanism styled after PEP 282.iiiiiiNcBsw|EeZdZeddZddZddZddZd d Zd d Z d dZ ddZ dS(uLogcCs ||_dS(N(u threshold(uselfu threshold((u2/opt/alt/python33/lib64/python3.3/distutils/log.pyu__init__su Log.__init__cCs|tttttfkr4tdt|n||jkr|rV||}n|tttfkrwtj }n tj }|j dkr|j }|j |dj|}n|jd||jndS(Nu%s wrong log levelustrictubackslashreplaceu%s (uDEBUGuINFOuWARNuERRORuFATALu ValueErrorustru thresholdusysustderrustdoutuerrorsuencodinguencodeudecodeuwriteuflush(uselfulevelumsguargsustreamuencoding((u2/opt/alt/python33/lib64/python3.3/distutils/log.pyu_logs    uLog._logcGs|j|||dS(N(u_log(uselfulevelumsguargs((u2/opt/alt/python33/lib64/python3.3/distutils/log.pyulog%suLog.logcGs|jt||dS(N(u_loguDEBUG(uselfumsguargs((u2/opt/alt/python33/lib64/python3.3/distutils/log.pyudebug(su Log.debugcGs|jt||dS(N(u_loguINFO(uselfumsguargs((u2/opt/alt/python33/lib64/python3.3/distutils/log.pyuinfo+suLog.infocGs|jt||dS(N(u_loguWARN(uselfumsguargs((u2/opt/alt/python33/lib64/python3.3/distutils/log.pyuwarn.suLog.warncGs|jt||dS(N(u_loguERROR(uselfumsguargs((u2/opt/alt/python33/lib64/python3.3/distutils/log.pyuerror1su Log.errorcGs|jt||dS(N(u_loguFATAL(uselfumsguargs((u2/opt/alt/python33/lib64/python3.3/distutils/log.pyufatal4su Log.fatalN( u__name__u __module__u __qualname__uWARNu__init__u_logulogudebuguinfouwarnuerrorufatal(u __locals__((u2/opt/alt/python33/lib64/python3.3/distutils/log.pyuLogs      uLogcCstj}|t_|S(N(u _global_logu threshold(uleveluold((u2/opt/alt/python33/lib64/python3.3/distutils/log.pyu set_threshold?s  u set_thresholdcCsO|dkrttn2|dkr2ttn|dkrKttndS(Niii(u set_thresholduWARNuINFOuDEBUG(uv((u2/opt/alt/python33/lib64/python3.3/distutils/log.pyu set_verbosityEs      u set_verbosity(u__doc__uDEBUGuINFOuWARNuERRORuFATALusysuLogu _global_logulogudebuguinfouwarnuerrorufatalu set_thresholdu set_verbosity(((u2/opt/alt/python33/lib64/python3.3/distutils/log.pyus  )        PK!?//*__pycache__/cygwinccompiler.cpython-33.pyonu[ f}@c@sadZddlZddlZddlZddlmZmZmZddlZddl m Z m Z ddl m Z ddlmZddlmZmZmZddlmZdd lmZdd lmZd d ZGd dde ZGdddeZdZdZdZddZ ej!dZ"ddZ#ddZ$ddZ%dS(udistutils.cygwinccompiler Provides the CygwinCCompiler class, a subclass of UnixCCompiler that handles the Cygwin port of the GNU C compiler to Windows. It also contains the Mingw32CCompiler class which handles the mingw32 port of GCC (same as cygwin in no-cygwin mode). iN(uPopenuPIPEu check_output(ugen_preprocess_optionsugen_lib_options(u UnixCCompiler(u write_file(uDistutilsExecErroru CompileErroruUnknownFileError(ulog(u LooseVersion(ufind_executablecCstjjd}|dkrtj|d|d}|dkrLdgS|dkr_dgS|d krrd gS|d krd gS|d krdgStd|ndS(uaInclude the appropriate MSVC runtime library if Python was built with MSVC 7.0 or later. uMSC v.iii u1300umsvcr70u1310umsvcr71u1400umsvcr80u1500umsvcr90u1600umsvcr100uUnknown MS Compiler version %s Ni(usysuversionufindu ValueError(umsc_posumsc_ver((u>/opt/alt/python33/lib64/python3.3/distutils/cygwinccompiler.pyu get_msvcr>s      u get_msvcrc Bs|EeZdZdZdZdZdZdZdZdZ dZ d d d d d Z d d Z dddddd dddddd Zd dddZdS(uCygwinCCompileru? Handles the Cygwin port of the GNU C compiler to Windows. ucygwinu.ou.au.dllulib%s%su%s%su.exeic CsStj||||t\}}|jd||f|tk r\|jd|nt\|_|_|_ |j|j d|j|j|j f|jdkrd|_ n d|_ |jdkrd}nd }|j d d d d dddddd|j |f|jdkrCdg|_ |jdn t|_ dS(Nu%Python's GCC status: %s (details: %s)uPython's pyconfig.h doesn't seem to support your compiler. Reason: %s. Compiling may fail because of undefined preprocessor macros.u: gcc %s, ld %s, dllwrap %s u2.10.90ugccudllwrapu2.13u-sharedu -mdll -staticucompilerugcc -mcygwin -O -Wallu compiler_sougcc -mcygwin -mdll -O -Wallu compiler_cxxug++ -mcygwin -O -Wallu linker_exeu gcc -mcygwinu linker_sou%s -mcygwin %su2.91.57umsvcrtu,Consider upgrading to a newer version of gcc(u UnixCCompileru__init__ucheck_config_hu debug_printu CONFIG_H_OKuwarnu get_versionsu gcc_versionu ld_versionudllwrap_versionu compiler_typeu linker_dlluset_executablesu dll_librariesu get_msvcr(uselfuverboseudry_runuforceustatusudetailsu shared_option((u>/opt/alt/python33/lib64/python3.3/distutils/cygwinccompiler.pyu__init__cs<        uCygwinCCompiler.__init__cCs|dks|dkroy |jdd|d|gWqtk rk}zt|WYdd}~XqXn]y)|j|j||d|g|Wn1tk r}zt|WYdd}~XnXdS(u:Compiles the source by spawning GCC and windres if needed.u.rcu.resuwindresu-iu-oN(uspawnuDistutilsExecErroru CompileErroru compiler_so(uselfuobjusrcuextucc_argsuextra_postargsupp_optsumsg((u>/opt/alt/python33/lib64/python3.3/distutils/cygwinccompiler.pyu_compiles " uCygwinCCompiler._compilecCstj| pg} tj|p$g}tj|p9g}|j|j|d k r||jksy|jdkrtjj|d}tjj tjj |\}}tjj ||d}tjj |d|d}dtjj |dg}x|D]}|j |q W|j t||fd||jd krx| jd |g| jd |gq|j |n| s| j d ntj||||||||d | | | | | d S(uLink the objects.ugcciu.defulibu.au LIBRARY %suEXPORTSu writing %sudllwrapu --output-libu--defu-sN(ucopyuextendu dll_librariesuNoneu EXECUTABLEu linker_dlluosupathudirnameusplitextubasenameujoinuappenduexecuteu write_fileu UnixCCompilerulink(uselfu target_descuobjectsuoutput_filenameu output_diru librariesu library_dirsuruntime_library_dirsuexport_symbolsudebugu extra_preargsuextra_postargsu build_tempu target_langutemp_dirudll_nameu dll_extensionudef_fileulib_fileucontentsusym((u>/opt/alt/python33/lib64/python3.3/distutils/cygwinccompiler.pyulinks:         uCygwinCCompiler.linkucCs|dkrd}ng}x|D]}tjjtjj|\}}||jddgkr~td||fn|rtjj|}n|dkr|jtjj ||||j q"|jtjj |||j q"W|S(u#Adds supports for rc and res files.uu.rcu.resu"unknown file type '%s' (from '%s')N(u.resu.rc( uNoneuosupathusplitextunormcaseusrc_extensionsuUnknownFileErrorubasenameuappendujoinu obj_extension(uselfusource_filenamesu strip_diru output_diru obj_namesusrc_nameubaseuext((u>/opt/alt/python33/lib64/python3.3/distutils/cygwinccompiler.pyuobject_filenamess    $ u CygwinCCompiler.object_filenamesN(u__name__u __module__u __qualname__u__doc__u compiler_typeu obj_extensionustatic_lib_extensionushared_lib_extensionustatic_lib_formatushared_lib_formatu exe_extensionu__init__u_compileuNoneulinkuobject_filenames(u __locals__((u>/opt/alt/python33/lib64/python3.3/distutils/cygwinccompiler.pyuCygwinCCompilerXs;   KuCygwinCCompilercBs5|EeZdZdZdZdddddZdS(uMingw32CCompileru@ Handles the Mingw32 port of the GNU C compiler to Windows. umingw32icCstj|||||jdkr.d}nd}|jdkrLd}nd}|jdksjtrsd}nd}|jd d |d d |d d|dd|dd|j|||fg|_t|_dS(Nu2.13u-sharedu -mdll -staticu2.91.57u--entry _DllMain@12uu4u -mno-cygwinucompilerugcc%s -O -Wallu compiler_sougcc%s -mdll -O -Wallu compiler_cxxug++%s -O -Wallu linker_exeugcc%su linker_sou %s%s %s %s( uCygwinCCompileru__init__u ld_versionu gcc_versionu is_cygwingccuset_executablesu linker_dllu dll_librariesu get_msvcr(uselfuverboseudry_runuforceu shared_optionu entry_pointu no_cygwin((u>/opt/alt/python33/lib64/python3.3/distutils/cygwinccompiler.pyu__init__s&        uMingw32CCompiler.__init__N(u__name__u __module__u __qualname__u__doc__u compiler_typeu__init__(u __locals__((u>/opt/alt/python33/lib64/python3.3/distutils/cygwinccompiler.pyuMingw32CCompilersuMingw32CCompileruokunot oku uncertaincCsddlm}dtjkr)tdfS|j}yPt|}z2d|jkrgtd|fStd|fSWd|j XWn<t k r}zt d ||j ffSWYdd}~XnXdS( uwCheck if the current Python installation appears amenable to building extensions with GCC. Returns a tuple (status, details), where 'status' is one of the following constants: - CONFIG_H_OK: all is well, go ahead and compile - CONFIG_H_NOTOK: doesn't look good - CONFIG_H_UNCERTAIN: not sure -- unable to read pyconfig.h 'details' is a human-readable string explaining the situation. Note there are two ways to conclude "OK": either 'sys.version' contains the string "GCC" (implying that this Python was built with GCC), or the installed "pyconfig.h" contains the string "__GNUC__". i(u sysconfiguGCCusys.version mentions 'GCC'u__GNUC__u'%s' mentions '__GNUC__'u '%s' does not mention '__GNUC__'Nucouldn't read '%s': %s( u distutilsu sysconfigusysuversionu CONFIG_H_OKuget_config_h_filenameuopenureaduCONFIG_H_NOTOKucloseuIOErroruCONFIG_H_UNCERTAINustrerror(u sysconfigufnuconfig_huexc((u>/opt/alt/python33/lib64/python3.3/distutils/cygwinccompiler.pyucheck_config_hHs   ucheck_config_hs(\d+\.\d+(\.\d+)*)c Cs|jd}t|dkr&dSt|dddtj}z|j}Wd|jXt j |}|dkr~dSt |j dj S(uFind the version of an executable by running `cmd` in the shell. If the command is not found, or the output does not match `RE_VERSION`, returns None. iushellustdoutNiT(usplitufind_executableuNoneuPopenuTrueuPIPEustdoutureaducloseu RE_VERSIONusearchu LooseVersionugroupudecode(ucmdu executableuoutu out_stringuresult((u>/opt/alt/python33/lib64/python3.3/distutils/cygwinccompiler.pyu_find_exe_versionus  u_find_exe_versioncCs&dddg}tdd|DS(ug Try to find out the versions of gcc, ld and dllwrap. If not possible it returns None for it. ugcc -dumpversionuld -vudllwrap --versioncSsg|]}t|qS((u_find_exe_version(u.0ucmd((u>/opt/alt/python33/lib64/python3.3/distutils/cygwinccompiler.pyu s u get_versions..(utuple(ucommands((u>/opt/alt/python33/lib64/python3.3/distutils/cygwinccompiler.pyu get_versionssu get_versionscCs%tddg}|jjdS(u>Try to determine if the gcc that would be used is from cygwin.ugccu -dumpmachinescygwin(u check_outputustripuendswith(u out_string((u>/opt/alt/python33/lib64/python3.3/distutils/cygwinccompiler.pyu is_cygwingccsu is_cygwingcc(&u__doc__uosusysucopyu subprocessuPopenuPIPEu check_outputureudistutils.ccompilerugen_preprocess_optionsugen_lib_optionsudistutils.unixccompileru UnixCCompilerudistutils.file_utilu write_fileudistutils.errorsuDistutilsExecErroru CompileErroruUnknownFileErroru distutilsulogudistutils.versionu LooseVersionudistutils.spawnufind_executableu get_msvcruCygwinCCompileruMingw32CCompileru CONFIG_H_OKuCONFIG_H_NOTOKuCONFIG_H_UNCERTAINucheck_config_hucompileu RE_VERSIONu_find_exe_versionu get_versionsu is_cygwingcc(((u>/opt/alt/python33/lib64/python3.3/distutils/cygwinccompiler.pyus.)     2 +  PK!6 ^cc(__pycache__/msvc9compiler.cpython-33.pyonu[ f@wc@sdZddlZddlZddlZddlZddlmZmZmZm Z m Z ddl m Z m Z mZddlmZddlmZddlZejZejZejZejZejejejejfZ ej!dkoej"d'kZ#e#r!d Z$d Z%d Z&nd Z$dZ%dZ&idd6dd6dd6Z'GdddZ(GdddZ)ddZ*ddZ+ddZ,dd Z-dd!d"Z.e*Z/e/d#kred$e/nGd%d&d&e Z0dS((u distutils.msvc9compiler Contains MSVCCompiler, an implementation of the abstract CCompiler class for the Microsoft Visual Studio 2008. The module is compatible with VS 2005 and VS 2008. You can find legacy support for older versions of VS in distutils.msvccompiler. iN(uDistutilsExecErroruDistutilsPlatformErroru CompileErroruLibErroru LinkError(u CCompilerugen_preprocess_optionsugen_lib_options(ulog(u get_platformuwin32ii u1Software\Wow6432Node\Microsoft\VisualStudio\%0.1fu5Software\Wow6432Node\Microsoft\Microsoft SDKs\Windowsu,Software\Wow6432Node\Microsoft\.NETFrameworku%Software\Microsoft\VisualStudio\%0.1fu)Software\Microsoft\Microsoft SDKs\Windowsu Software\Microsoft\.NETFrameworkux86uamd64u win-amd64uia64uwin-ia64cBsz|EeZdZdZddZeeZddZeeZddZeeZdd Ze eZd S( uRegu2Helper class to read values from the registry cCsMx:tD]2}|j||}|r||kr||SqWt|dS(N(uHKEYSu read_valuesuKeyError(uclsupathukeyubaseud((u</opt/alt/python33/lib64/python3.3/distutils/msvc9compiler.pyu get_valueAs   u Reg.get_valuecCsyt||}Wntk r+dSYnXg}d}xCyt||}Wntk rcPYnX|j||d7}q;|S(uReturn list of registry keys.iiN(u RegOpenKeyExuRegErroruNoneu RegEnumKeyuappend(uclsubaseukeyuhandleuLuiuk((u</opt/alt/python33/lib64/python3.3/distutils/msvc9compiler.pyu read_keysIs     u Reg.read_keysc Csyt||}Wntk r+dSYnXi}d}xgyt||\}}}Wntk rlPYnX|j}|j|||j|<|d7}q;|S(u`Return dict of registry keys and values. All names are converted to lowercase. iiN(u RegOpenKeyExuRegErroruNoneu RegEnumValueuloweru convert_mbcs( uclsubaseukeyuhandleuduiunameuvalueutype((u</opt/alt/python33/lib64/python3.3/distutils/msvc9compiler.pyu read_values[s     uReg.read_valuesc CsJt|dd}|dk rFy|d}WqFtk rBYqFXn|S(Nudecodeumbcs(ugetattruNoneu UnicodeError(usudec((u</opt/alt/python33/lib64/python3.3/distutils/msvc9compiler.pyu convert_mbcsqs  uReg.convert_mbcsN( u__name__u __module__u __qualname__u__doc__u get_valueu classmethodu read_keysu read_valuesu convert_mbcsu staticmethod(u __locals__((u</opt/alt/python33/lib64/python3.3/distutils/msvc9compiler.pyuReg=s       uRegcBsD|EeZdZddZddZddZddZd S( u MacroExpandercCs'i|_t||_|j|dS(N(umacrosuVS_BASEuvsbaseu load_macros(uselfuversion((u</opt/alt/python33/lib64/python3.3/distutils/msvc9compiler.pyu__init__}s  uMacroExpander.__init__cCs!tj|||jd||)uu*\s*uI|)uw( uopenureaducloseureucompileuDOTALLusubusearchuNoneuwriteuIOError(uselfu manifest_fileu manifest_fu manifest_bufupattern((u</opt/alt/python33/lib64/python3.3/distutils/msvc9compiler.pyu_remove_visual_c_refs.      u!MSVCCompiler._remove_visual_c_refcCsd|S(Nu /LIBPATH:((uselfudir((u</opt/alt/python33/lib64/python3.3/distutils/msvc9compiler.pyulibrary_dir_optionsuMSVCCompiler.library_dir_optioncCstddS(Nu<don't know how to set runtime library search path for MSVC++(uDistutilsPlatformError(uselfudir((u</opt/alt/python33/lib64/python3.3/distutils/msvc9compiler.pyuruntime_library_dir_optionsu'MSVCCompiler.runtime_library_dir_optioncCs |j|S(N(ulibrary_filename(uselfulib((u</opt/alt/python33/lib64/python3.3/distutils/msvc9compiler.pyulibrary_optionsuMSVCCompiler.library_optioncCs|r|d|g}n |g}xW|D]K}xB|D]:}tjj||j|}tjj|r6|Sq6Wq)WdSdS(Nu_d(uosupathujoinulibrary_filenameuexistsuNone(uselfudirsulibudebugu try_namesudirunameulibfile((u</opt/alt/python33/lib64/python3.3/distutils/msvc9compiler.pyufind_library_files    uMSVCCompiler.find_library_filecCsxH|jD]=}tjjtjj||}tjj|r |Sq WxUtjdjdD]=}tjjtjj||}tjj|rb|SqbW|S(uReturn path to an MSVC executable program. Tries to find the program in several places: first, one of the MSVC program search paths from the registry; next, the directories in the PATH environment variable. If any of those work, return an absolute path that is known to exist. If none of them work, just return the original program name, 'exe'. uPathu;(u_MSVCCompiler__pathsuosupathujoinuabspathuisfileuenvironusplit(uselfuexeupufn((u</opt/alt/python33/lib64/python3.3/distutils/msvc9compiler.pyufind_exes !!uMSVCCompiler.find_exeN(!u__name__u __module__u __qualname__u__doc__u compiler_typeu executablesu _c_extensionsu_cpp_extensionsu_rc_extensionsu_mc_extensionsusrc_extensionsu res_extensionu obj_extensionustatic_lib_extensionushared_lib_extensionustatic_lib_formatushared_lib_formatu exe_extensionu__init__uNoneu initializeuobject_filenamesucompileucreate_static_libulinkumanifest_setup_ldargsumanifest_get_embed_infou_remove_visual_c_refulibrary_dir_optionuruntime_library_dir_optionulibrary_optionufind_library_fileufind_exe(u __locals__((u</opt/alt/python33/lib64/python3.3/distutils/msvc9compiler.pyu MSVCCompiler)sR     X VR  +   u MSVCCompilerl(1u__doc__uosu subprocessusysureudistutils.errorsuDistutilsExecErroruDistutilsPlatformErroru CompileErroruLibErroru LinkErrorudistutils.ccompileru CCompilerugen_preprocess_optionsugen_lib_optionsu distutilsulogudistutils.utilu get_platformuwinregu OpenKeyExu RegOpenKeyExuEnumKeyu RegEnumKeyu EnumValueu RegEnumValueuerroruRegErroru HKEY_USERSuHKEY_CURRENT_USERuHKEY_LOCAL_MACHINEuHKEY_CLASSES_ROOTuHKEYSuplatformumaxsizeu NATIVE_WIN64uVS_BASEu WINSDK_BASEuNET_BASEuPLAT_TO_VCVARSuRegu MacroExpanderuget_build_versionunormalize_and_reduce_pathsuremoveDuplicatesufind_vcvarsalluquery_vcvarsalluVERSIONu MSVCCompiler(((u</opt/alt/python33/lib64/python3.3/distutils/msvc9compiler.pyusP    (        >.   #)  PK!X%%'__pycache__/bcppcompiler.cpython-33.pyonu[ fW:c@sdZddlZddlmZmZmZmZmZmZddl m Z m Z m Z ddl mZddlmZddlmZGdd d e ZdS( udistutils.bcppcompiler Contains BorlandCCompiler, an implementation of the abstract CCompiler class for the Borland C++ compiler. iN(uDistutilsExecErroruDistutilsPlatformErroru CompileErroruLibErroru LinkErroruUnknownFileError(u CCompilerugen_preprocess_optionsugen_lib_options(u write_file(unewer(ulogc Bs|EeZdZdZdZiZdgZdddgZeeZdZ dZ d Z d Z Z d Zd d d d dZdddd dddddZdd dddZdddddd dddddd Zd ddZd dddZdddddddZdS(u BCPPCompileruConcrete class that implements an interface to the Borland C/C++ compiler, as defined by the CCompiler abstract class. ubcppu.cu.ccu.cppu.cxxu.obju.libu.dllu%s%su.exeicCstj||||d|_d|_d|_d|_ddddg|_ddddg|_d d dd g|_ d d dd g|_ g|_ d dd g|_ d dd d g|_ dS( Nu bcc32.exeu ilink32.exeutlib.exeu/tWMu/O2u/qu/g0u/Odu/Tpdu/Gnu/xu/r(u CCompileru__init__ucculinkerulibuNoneupreprocess_optionsucompile_optionsucompile_options_debuguldflags_shareduldflags_shared_debuguldflags_staticu ldflags_exeuldflags_exe_debug(uselfuverboseudry_runuforce((u;/opt/alt/python33/lib64/python3.3/distutils/bcppcompiler.pyu__init__5s     uBCPPCompiler.__init__c Cs |j||||||\}} }} } |p6g} | jd|r_| j|jn| j|jx| D]} y| | \}}Wntk rwvYnXtjj|}tjj| } |j tjj | |dkrqvn|dkrZy|j dd| |gWqvt k rS}zt |WYdd}~XqvXqvn||jkrrd}n||jkrd}nd}d| }y4|j |jg| | ||g||gWqvt k r}zt |WYdd}~XqvXqvW| S( Nu-cu.resu.rcubrcc32u-fouu-Pu-o(u_setup_compileuappenduextenducompile_options_debugucompile_optionsuKeyErroruosupathunormpathumkpathudirnameuspawnuDistutilsExecErroru CompileErroru _c_extensionsu_cpp_extensionsucc(uselfusourcesu output_dirumacrosu include_dirsudebugu extra_preargsuextra_postargsudependsuobjectsupp_optsubuildu compile_optsuobjusrcuextumsgu input_optu output_opt((u;/opt/alt/python33/lib64/python3.3/distutils/bcppcompiler.pyucompileQsF         .#uBCPPCompiler.compilec Cs|j||\}}|j|d|}|j||r|dg|}|rXny|j|jg|Wqtk r}zt|WYdd}~XqXntjd|dS(Nu output_diru/uuskipping %s (up-to-date)( u_fix_object_argsulibrary_filenameu _need_linkuspawnulibuDistutilsExecErroruLibErrorulogudebug( uselfuobjectsuoutput_libnameu output_dirudebugu target_languoutput_filenameulib_argsumsg((u;/opt/alt/python33/lib64/python3.3/distutils/bcppcompiler.pyucreate_static_libs"uBCPPCompiler.create_static_libc Cs|j||\}}|j|||\}}}|rUtjdt|n|dk rytjj||}n|j ||r|t j krd}| r|j dd}q|j dd}n5d}| r|jdd}n|jdd}|dkrd}ntjj|\}}tjj|\}}tjj|d}tjj|d|}dg}x+|pgD]}|jd||fqW|jt||fd |ttjj|}|g}g}x[|D]S}tjjtjj|\}}|d kr@|j|q|j|qWx+|D]#}|jd tjj|qXW|jd |j||jd |g|jdxL|D]D}|j||| }|dkr|j|q|j|qW|jd|jd|jd |g|jd |j|| rh| |dds .PK!N'^e|(|($__pycache__/text_file.cpython-33.pyonu[ f0c@sAdZddlZddlZddlZGdddZdS(utext_file provides the TextFile class, which gives an interface to text files that (optionally) takes care of stripping comments, ignoring blank lines, and joining lines with backslashes.iNcBs|EeZdZdZidd6dd6dd6dd6dd6dd 6d d 6Zddd d ZddZddZdddZ dddZ dddZ ddZ ddZ ddZdS(uTextFileu Provides a file-like object that takes care of all the things you commonly want to do when processing a text file that has some line-by-line syntax: strip comments (as long as "#" is your comment character), skip blank lines, join adjacent lines by escaping the newline (ie. backslash at end of line), strip leading and/or trailing whitespace. All of these are optional and independently controllable. Provides a 'warn()' method so you can generate warning messages that report physical line number, even if the logical line in question spans multiple physical lines. Also provides 'unreadline()' for implementing line-at-a-time lookahead. Constructor is called as: TextFile (filename=None, file=None, **options) It bombs (RuntimeError) if both 'filename' and 'file' are None; 'filename' should be a string, and 'file' a file object (or something that provides 'readline()' and 'close()' methods). It is recommended that you supply at least 'filename', so that TextFile can include it in warning messages. If 'file' is not supplied, TextFile creates its own using 'io.open()'. The options are all boolean, and affect the value returned by 'readline()': strip_comments [default: true] strip from "#" to end-of-line, as well as any whitespace leading up to the "#" -- unless it is escaped by a backslash lstrip_ws [default: false] strip leading whitespace from each line before returning it rstrip_ws [default: true] strip trailing whitespace (including line terminator!) from each line before returning it skip_blanks [default: true} skip lines that are empty *after* stripping comments and whitespace. (If both lstrip_ws and rstrip_ws are false, then some lines may consist of solely whitespace: these will *not* be skipped, even if 'skip_blanks' is true.) join_lines [default: false] if a backslash is the last non-newline character on a line after stripping comments and whitespace, join the following line to it to form one "logical line"; if N consecutive lines end with a backslash, then N+1 physical lines will be joined to form one logical line. collapse_join [default: false] strip leading whitespace from lines that are joined to their predecessor; only matters if (join_lines and not lstrip_ws) errors [default: 'strict'] error handler used to decode the file content Note that since 'rstrip_ws' can strip the trailing newline, the semantics of 'readline()' must differ from those of the builtin file object's 'readline()' method! In particular, 'readline()' returns None for end-of-file: an empty string might just be a blank line (or an all-whitespace line), if 'rstrip_ws' is true but 'skip_blanks' is not.iustrip_commentsu skip_blanksiu lstrip_wsu rstrip_wsu join_linesu collapse_joinustrictuerrorscKs|dkr'|dkr'tdnxQ|jjD]@}||kr`t||||q7t|||j|q7Wx6|jD](}||jkrtd|qqW|dkr|j|n||_||_d|_ g|_ dS(uConstruct a new TextFile object. At least one of 'filename' (a string) and 'file' (a file-like object) must be supplied. They keyword argument options are described above and affect the values returned by 'readline()'.u7you must supply either or both of 'filename' and 'file'uinvalid TextFile option '%s'iN( uNoneu RuntimeErrorudefault_optionsukeysusetattruKeyErroruopenufilenameufileu current_lineulinebuf(uselfufilenameufileuoptionsuopt((u8/opt/alt/python33/lib64/python3.3/distutils/text_file.pyu__init__Ns     uTextFile.__init__cCs7||_tj|jdd|j|_d|_dS(uyOpen a new file named 'filename'. This overrides both the 'filename' and 'file' arguments to the constructor.uruerrorsiN(ufilenameuiouopenuerrorsufileu current_line(uselfufilename((u8/opt/alt/python33/lib64/python3.3/distutils/text_file.pyuopenos !u TextFile.opencCs,|jjd|_d|_d|_dS(uiClose the current file and forget everything we know about it (filename, current line number).N(ufileucloseuNoneufilenameu current_line(uself((u8/opt/alt/python33/lib64/python3.3/distutils/text_file.pyuclosevs   uTextFile.closecCsg}|dkr|j}n|j|jdt|ttfra|jdt|n|jd||jt|dj|S(Nu, u lines %d-%d: u line %d: u( uNoneu current_lineuappendufilenameu isinstanceulistutupleustrujoin(uselfumsgulineuoutmsg((u8/opt/alt/python33/lib64/python3.3/distutils/text_file.pyu gen_error~s  uTextFile.gen_errorcCs td|j||dS(Nuerror: (u ValueErroru gen_error(uselfumsguline((u8/opt/alt/python33/lib64/python3.3/distutils/text_file.pyuerrorsuTextFile.errorcCs(tjjd|j||ddS(uPrint (to stderr) a warning message tied to the current logical line in the current file. If the current logical line in the file spans multiple physical lines, the warning refers to the whole range, eg. "lines 3-5". If 'line' supplied, it overrides the current line number; it may be a list or tuple to indicate a range of physical lines, or an integer for a single physical line.u warning: u N(usysustderruwriteu gen_error(uselfumsguline((u8/opt/alt/python33/lib64/python3.3/distutils/text_file.pyuwarnsu TextFile.warnc Cs|jr$|jd }|jd =|Sd}x|jj}|dkrQd }n|jr|r|jd}|dkr~q|dks||ddkr|ddkrdpd}|d||}|jdkrq-qq|jdd}n|jr|r|d kr*|j d|S|j rB|j }n||}t |j try|j dd|j ds$PK!CPP__pycache__/util.cpython-33.pycnu[ f:Qc @sdZddlZddlZddlZddlZddlZddlmZddlm Z ddl m Z ddl m Z ddlmZdd Zd d Zd d ZdaddZddZdddZdaaaddZddZdddddZddZdddddddddZd d!Zdddd"d#Z ddddd$d%Z!Gd&d'd'Z"dS((uudistutils.util Miscellaneous utility functions -- anything that doesn't fit into one of the other *util.py modules. iN(uDistutilsPlatformError(unewer(uspawn(ulog(uDistutilsByteCompileErrorcCstjdkrd}tjj|}|d*kr:tjStjjd|}tj|t||j}|dkrdS|dkrdStjSd tjkrtjd Stjd kst td  rtjStj \}}}}}|jj d d }|j dd}|j d d}|dddkrTd||fS|dddkr|ddkrd}dt |dd|ddf}idd6dd6} |d | tj 7}qn|dd!d"krd||fS|ddd#kr"d$|||fS|dd%d&krzd&}tjd'tj} | j|} | r| j}qn[|dd%d(krddl} ddl} | j| jj|||\}}}nd)|||fS(+uReturn a string that identifies the current platform. This is used mainly to distinguish platform-specific build directories and platform-specific built distributions. Typically includes the OS name and version and the architecture (as supplied by 'os.uname()'), although the exact information included depends on the OS; eg. for IRIX the architecture isn't particularly important (IRIX only runs on SGI hardware), but for Linux the kernel version isn't particularly important. Examples of returned values: linux-i586 linux-alpha (?) solaris-2.6-sun4u irix-5.3 irix64-6.2 Windows will return one of: win-amd64 (64bit Windows on AMD64 (aka x86_64, Intel64, EM64T, etc) win-ia64 (64bit Windows on Itanium) win32 (all others - specifically, sys.platform is returned) For other non-POSIX platforms, currently just returns 'sys.platform'. untu bit (iu)uamd64u win-amd64uitaniumuwin-ia64u_PYTHON_HOST_PLATFORMuposixuunameu/uu u_u-Niulinuxu%s-%susunosiu5usolarisu%d.%siiu32bitiu64bitlu.%siuirixuaixu%s-%s.%siucygwinu[\d.]+udarwinu%s-%s-%si(uosunameusysuversionufinduplatformulenuloweruenvironuhasattruunameureplaceuintumaxsizeureucompileuASCIIumatchugroupu _osx_supportudistutils.sysconfiguget_platform_osxu sysconfiguget_config_vars(uprefixuiujulookuosnameuhostureleaseuversionumachineubitnessurel_reumu _osx_supportu distutils((u3/opt/alt/python33/lib64/python3.3/distutils/util.pyu get_platformsX #   ( u get_platformcCstjdkr|S|s|S|ddkr@td|n|ddkrctd|n|jd}xd|kr|jdquW|stjStjj|S(uReturn 'pathname' as a name that will work on the native filesystem, i.e. split it on '/' and put it back together again using the current directory separator. Needed because filenames in the setup script are always supplied in Unix style, and have to be converted to the local convention before we can actually use them in the filesystem. Raises ValueError on non-Unix-ish systems if 'pathname' either starts or ends with a slash. u/iupath '%s' cannot be absoluteiupath '%s' cannot end with '/'u.i(uosusepu ValueErrorusplituremoveucurdirupathujoin(upathnameupaths((u3/opt/alt/python33/lib64/python3.3/distutils/util.pyu convert_pathos u convert_pathcCs(tjdkrTtjj|s4tjj||Stjj||ddSntjdkrtjj|\}}|ddkr|dd}ntjj||Stjdkrtjj|\}}|dtjkr|dd}ntjj||StdtjdS( u Return 'pathname' with 'new_root' prepended. If 'pathname' is relative, this is equivalent to "os.path.join(new_root,pathname)". Otherwise, it requires making 'pathname' relative and then joining the two, which is tricky on DOS/Windows and Mac OS. uposixiNuntiu\uos2u!nothing known about platform '%s'(uosunameupathuisabsujoinu splitdriveusepuDistutilsPlatformError(unew_rootupathnameudriveupath((u3/opt/alt/python33/lib64/python3.3/distutils/util.pyu change_roots u change_rootcCstr dStjdkrWdtjkrWddl}|jtjdtjd._substu\$([a-zA-Z_][a-zA-Z_0-9]*)uinvalid variable '$%s'N(u check_environureusubuKeyErroru ValueError(usu local_varsu_substuvar((u3/opt/alt/python33/lib64/python3.3/distutils/util.pyu subst_varss u subst_varsuerror: cCs|t|S(N(ustr(uexcuprefix((u3/opt/alt/python33/lib64/python3.3/distutils/util.pyugrok_environment_errorsugrok_environment_errorcCs8tjdtjatjdatjdadS(Nu [^\\\'\"%s ]*u'(?:[^'\\]|\\.)*'u"(?:[^"\\]|\\.)*"(ureucompileustringu whitespaceu _wordchars_reu _squote_reu _dquote_re(((u3/opt/alt/python33/lib64/python3.3/distutils/util.pyu _init_regexsu _init_regexcCs tdkrtn|j}g}d}x|rtj||}|j}|t|kr|j|d|Pn||tj kr|j|d|||dj }d}n||dkr |d|||dd}|d}n||dkr/t j||}n9||dkrTt j||}nt d|||dkrtd||n|j\}}|d|||d|d||d}|jd }|t|kr1|j|Pq1q1W|S( uSplit a string up according to Unix shell-like rules for quotes and backslashes. In short: words are delimited by spaces, as long as those spaces are not escaped by a backslash, or inside a quoted string. Single and double quotes are equivalent, and the quote characters can be backslash-escaped. The backslash is stripped from any two-character escape sequence, leaving only the escaped character. The quote characters are stripped from any quoted string. Returns a list of words. iNu\iu'u"u!this can't happen (bad char '%c')u"bad string (mismatched %s quotes?)i(u _wordchars_reuNoneu _init_regexustripumatchuendulenuappendustringu whitespaceulstripu _squote_reu _dquote_reu RuntimeErroru ValueErroruspan(usuwordsuposumuendubeg((u3/opt/alt/python33/lib64/python3.3/distutils/util.pyu split_quoteds@     "  4 u split_quotedcCss|dkrOd|j|f}|dddkrO|ddd}qOntj||so||ndS( uPerform some action that affects the outside world (eg. by writing to the filesystem). Such actions are special because they are disabled by the 'dry_run' flag. This method takes care of all that bureaucracy for you; all you have to do is supply the function to call and an argument tuple for it (to embody the "external action" being performed), and an optional message to print. u%s%riNu,)iu)ii(uNoneu__name__uloguinfo(ufuncuargsumsguverboseudry_run((u3/opt/alt/python33/lib64/python3.3/distutils/util.pyuexecute#s  uexecutecCsC|j}|dkrdS|dkr,dStd|fdS(uConvert a string representation of truth to true (1) or false (0). True values are 'y', 'yes', 't', 'true', 'on', and '1'; false values are 'n', 'no', 'f', 'false', 'off', and '0'. Raises ValueError if 'val' is anything else. uyuyesututrueuonu1iununoufufalseuoffu0iuinvalid truth value %rN(uyuyesututrueuonu1(ununoufufalseuoffu0(uloweru ValueError(uval((u3/opt/alt/python33/lib64/python3.3/distutils/util.pyu strtobool6s    u strtoboolicCstjrtdn|dkr9to3|dk}n|sy&ddlm}|d\} } Wn5tk rddlm} d| d} } YnXt j d| |s@| dk rt j | d} nt | d} | jd| jd jtt|d | jd |||||f| jntj| g} |d krn| jd d n|dkr| jd dnt| d|tt j| fd| d|n[ddlm}xH|D]@}|dddkrqn|dkrtj|d| }ntj|}|}|r|dt||krntd||fn|t|d}n|rt jj||}nt jj|}|r|st ||rt j d|||s||||qqt j!d||qqWdS(uByte-compile a collection of Python source files to either .pyc or .pyo files in a __pycache__ subdirectory. 'py_files' is a list of files to compile; any files that don't end in ".py" are silently skipped. 'optimize' must be one of the following: 0 - don't optimize (generate .pyc) 1 - normal optimization (like "python -O") 2 - extra optimization (like "python -OO") If 'force' is true, all files are recompiled regardless of timestamps. The source filename encoded in each bytecode file defaults to the filenames listed in 'py_files'; you can modify these with 'prefix' and 'basedir'. 'prefix' is a string that will be stripped off of each source filename, and 'base_dir' is a directory name that will be prepended (after 'prefix' is stripped). You can supply either or both (or neither) of 'prefix' and 'base_dir', as you wish. If 'dry_run' is true, doesn't actually do anything that would affect the filesystem. Byte-compilation is either done directly in this interpreter process with the standard py_compile module, or indirectly by writing a temporary script and executing it. Normally, you should let 'byte_compile()' figure out to use direct compilation or not (see the source for details). The 'direct' flag is used by the script generated in indirect mode; unless you know what you're doing, leave it set to None. ubyte-compiling is disabled.i(umkstempu.py(umktempu$writing byte-compilation script '%s'uwu2from distutils.util import byte_compile files = [ u, u] u byte_compile(files, optimize=%r, force=%r, prefix=%r, base_dir=%r, verbose=%r, dry_run=0, direct=1) iu-Oiu-OOudry_runu removing %s(ucompileiNudebug_overrideu1invalid prefix: filename %r doesn't start with %rubyte-compiling %s to %su%skipping byte-compilation of %s to %si("usysudont_write_bytecodeuDistutilsByteCompileErroruNoneu __debug__utempfileumkstempu ImportErrorumktempuloguinfouosufdopenuopenuwriteujoinumapureprucloseu executableuinsertuspawnuexecuteuremoveu py_compileucompileuimpucache_from_sourceulenu ValueErrorupathubasenameunewerudebug(upy_filesuoptimizeuforceuprefixubase_diruverboseudry_runudirectumkstempu script_fdu script_nameumktempuscriptucmducompileufileucfileudfileu cfile_base((u3/opt/alt/python33/lib64/python3.3/distutils/util.pyu byte_compileFsj"    #       u byte_compilecCs"|jd}d}|j|S(uReturn a version of the string escaped for inclusion in an RFC-822 header, by ensuring there are 8 spaces space after each newline. u iu u u (usplitujoin(uheaderulinesusep((u3/opt/alt/python33/lib64/python3.3/distutils/util.pyu rfc822_escapesu rfc822_escapecCsz|s dSddlm}m}Gddd|}|dkrQ|d}n||d|}|j|dd dS( u Invoke 2to3 on a list of Python files. The files should all come from the build area, as the modification is done in-place. To reduce the build time, only files modified since the last invocation of this function should be passed in the files argument.Ni(uRefactoringTooluget_fixers_from_packagecBs8|EeZdZddZddZddZdS(u*run_2to3..DistutilsRefactoringToolc_stj||dS(N(uloguerror(uselfumsguargsukw((u3/opt/alt/python33/lib64/python3.3/distutils/util.pyu log_errorsu4run_2to3..DistutilsRefactoringTool.log_errorcWstj||dS(N(uloguinfo(uselfumsguargs((u3/opt/alt/python33/lib64/python3.3/distutils/util.pyu log_messagesu6run_2to3..DistutilsRefactoringTool.log_messagecWstj||dS(N(ulogudebug(uselfumsguargs((u3/opt/alt/python33/lib64/python3.3/distutils/util.pyu log_debugsu4run_2to3..DistutilsRefactoringTool.log_debugN(u__name__u __module__u __qualname__u log_erroru log_messageu log_debug(u __locals__((u3/opt/alt/python33/lib64/python3.3/distutils/util.pyuDistutilsRefactoringTools  uDistutilsRefactoringToolu lib2to3.fixesuoptionsuwriteT(ulib2to3.refactoruRefactoringTooluget_fixers_from_packageuNoneurefactoruTrue(ufilesu fixer_namesuoptionsuexplicituRefactoringTooluget_fixers_from_packageuDistutilsRefactoringToolur((u3/opt/alt/python33/lib64/python3.3/distutils/util.pyurun_2to3s urun_2to3cCs|ddlm}ddlm}ddlm}|} tj} tj|z| j Wdtj| X| j | j dd<|rx<|j D]+} | j } | sqn| j| qWng} xz| j D]o} tjj|| }|tjj||tjj|| |dd}|dr| j|qqWtdd | Dd |d |d || S( uRecursively copy a directory, only copying new and changed files, running run_2to3 over all newly copied Python modules afterward. If you give a template string, it's parsed like a MANIFEST.in. i(umkpath(u copy_file(uFileListNuupdateicSs+g|]!}|jjdr|qS(u.py(uloweruendswith(u.0ufn((u3/opt/alt/python33/lib64/python3.3/distutils/util.pyu s u$copydir_run_2to3..u fixer_namesuoptionsuexplicit(udistutils.dir_utilumkpathudistutils.file_utilu copy_fileudistutils.filelistuFileListuosugetcwduchdirufindalluallfilesufilesu splitlinesustripuprocess_template_lineupathujoinudirnameuappendurun_2to3(usrcudestutemplateu fixer_namesuoptionsuexplicitumkpathu copy_fileuFileListufilelistucurdirulineucopiedufilenameuoutnameures((u3/opt/alt/python33/lib64/python3.3/distutils/util.pyucopydir_run_2to3s4    $ ucopydir_run_2to3cBs8|EeZdZdZdZdZdZddZdS(u Mixin2to3uMixin class for commands that run 2to3. To configure 2to3, setup scripts may either change the class variables, or inherit from individual commands to override how 2to3 is invoked.cCst||j|j|jS(N(urun_2to3u fixer_namesuoptionsuexplicit(uselfufiles((u3/opt/alt/python33/lib64/python3.3/distutils/util.pyurun_2to3-suMixin2to3.run_2to3N( u__name__u __module__u __qualname__u__doc__uNoneu fixer_namesuoptionsuexpliciturun_2to3(u __locals__((u3/opt/alt/python33/lib64/python3.3/distutils/util.pyu Mixin2to3s u Mixin2to3(#u__doc__uosureuimpusysustringudistutils.errorsuDistutilsPlatformErrorudistutils.dep_utilunewerudistutils.spawnuspawnu distutilsuloguDistutilsByteCompileErroru get_platformu convert_pathu change_rootu_environ_checkedu check_environu subst_varsugrok_environment_erroruNoneu _wordchars_reu _squote_reu _dquote_reu _init_regexu split_quoteduexecuteu strtoboolu byte_compileu rfc822_escapeurun_2to3ucopydir_run_2to3u Mixin2to3(((u3/opt/alt/python33/lib64/python3.3/distutils/util.pyus>      ]      =   PK!Åg!PP__pycache__/cmd.cpython-33.pyonu[ f[Jc@sdZddlZddlZddlZddlmZddlmZmZm Z m Z m Z ddlm Z GdddZ Gdd d e ZdS( utdistutils.cmd Provides the Command class, the base class for the command classes in the distutils.command package. iN(uDistutilsOptionError(uutiludir_utilu file_utilu archive_utiludep_util(ulogcBs|EeZdZdZgZddZddZddZdd Zd d Z dBd d dZ ddZ dddZ ddZdBddZdBddZddZdBddZddZd d!Zd"d#Zd$d%Zdd&d'Zd(d)d*Zd+d,Zd-d.Zd/d0ZdBdd1d2Zd3d4d5ZdddBdd6d7Zddd(dd8d9Zdd:d;Z ddd<d=Z!dBdBd>d?Z"dBdBdd@dAZ#dBS(CuCommandu}Abstract base class for defining command classes, the "worker bees" of the Distutils. A useful analogy for command classes is to think of them as subroutines with local variables called "options". The options are "declared" in 'initialize_options()' and "defined" (given their final values, aka "finalized") in 'finalize_options()', both of which must be defined by every command class. The distinction between the two is necessary because option values might come from the outside world (command line, config file, ...), and any options dependent on other options must be computed *after* these outside influences have been processed -- hence 'finalize_options()'. The "body" of the subroutine, where it does all its work based on the values of its options, is the 'run()' method, which must also be implemented by every command class. cCsddlm}t||s.tdn|jtkrLtdn||_|jd|_ |j |_ d|_ d|_ d|_dS(uCreate and initialize a new Command object. Most importantly, invokes the 'initialize_options()' method, which is the real initializer and depends on the actual command being instantiated. i(u Distributionu$dist must be a Distribution instanceuCommand is an abstract classN(udistutils.distu Distributionu isinstanceu TypeErroru __class__uCommandu RuntimeErroru distributionuinitialize_optionsuNoneu_dry_runuverboseuforceuhelpu finalized(uselfudistu Distribution((u2/opt/alt/python33/lib64/python3.3/distutils/cmd.pyu__init__/s     uCommand.__init__cCsR|dkrBt|d|}|dkr;t|j|S|Sn t|dS(Nudry_runu_(ugetattruNoneu distributionuAttributeError(uselfuattrumyval((u2/opt/alt/python33/lib64/python3.3/distutils/cmd.pyu __getattr___s   uCommand.__getattr__cCs#|js|jnd|_dS(Ni(u finalizedufinalize_options(uself((u2/opt/alt/python33/lib64/python3.3/distutils/cmd.pyuensure_finalizedis  uCommand.ensure_finalizedcCstd|jdS(uSet default values for all the options that this command supports. Note that these defaults may be overridden by other commands, by the setup script, by config files, or by the command-line. Thus, this is not the place to code dependencies between options; generally, 'initialize_options()' implementations are just a bunch of "self.foo = None" assignments. This method must be implemented by all command classes. u,abstract method -- subclass %s must overrideN(u RuntimeErroru __class__(uself((u2/opt/alt/python33/lib64/python3.3/distutils/cmd.pyuinitialize_options{s uCommand.initialize_optionscCstd|jdS(uSet final values for all the options that this command supports. This is always called as late as possible, ie. after any option assignments from the command-line or from other commands have been done. Thus, this is the place to code option dependencies: if 'foo' depends on 'bar', then it is safe to set 'foo' from 'bar' as long as 'foo' still has the same value it was assigned in 'initialize_options()'. This method must be implemented by all command classes. u,abstract method -- subclass %s must overrideN(u RuntimeErroru __class__(uself((u2/opt/alt/python33/lib64/python3.3/distutils/cmd.pyufinalize_optionss uCommand.finalize_optionsucCsddlm}|dkr/d|j}n|j||dtj|d}x|jD]t\}}}|j|}|d dkr|dd }nt ||}|j|d||fdtjq]WdS( Ni(u longopt_xlateucommand options for '%s':ulevelu iu=u%s = %sii( udistutils.fancy_getoptu longopt_xlateuNoneuget_command_nameuannounceuloguINFOu user_optionsu translateugetattr(uselfuheaderuindentu longopt_xlateuoptionu_uvalue((u2/opt/alt/python33/lib64/python3.3/distutils/cmd.pyu dump_optionss  uCommand.dump_optionscCstd|jdS(uA command's raison d'etre: carry out the action it exists to perform, controlled by the options initialized in 'initialize_options()', customized by other commands, the setup script, the command-line, and config files, and finalized in 'finalize_options()'. All terminal output and filesystem interaction should be done by 'run()'. This method must be implemented by all command classes. u,abstract method -- subclass %s must overrideN(u RuntimeErroru __class__(uself((u2/opt/alt/python33/lib64/python3.3/distutils/cmd.pyuruns u Command.runicCstj||dS(umIf the current verbosity level is of greater than or equal to 'level' print 'msg' to stdout. N(ulog(uselfumsgulevel((u2/opt/alt/python33/lib64/python3.3/distutils/cmd.pyuannouncesuCommand.announcecCs4ddlm}|r0t|tjjndS(u~Print 'msg' to stdout if the global DEBUG (taken from the DISTUTILS_DEBUG environment variable) flag is true. i(uDEBUGN(udistutils.debuguDEBUGuprintusysustdoutuflush(uselfumsguDEBUG((u2/opt/alt/python33/lib64/python3.3/distutils/cmd.pyu debug_prints uCommand.debug_printcCs^t||}|dkr/t||||St|tsZtd|||fn|S(Nu'%s' must be a %s (got `%s`)(ugetattruNoneusetattru isinstanceustruDistutilsOptionError(uselfuoptionuwhatudefaultuval((u2/opt/alt/python33/lib64/python3.3/distutils/cmd.pyu_ensure_stringlikes uCommand._ensure_stringlikecCs|j|d|dS(uWEnsure that 'option' is a string; if not defined, set it to 'default'. ustringN(u_ensure_stringlike(uselfuoptionudefault((u2/opt/alt/python33/lib64/python3.3/distutils/cmd.pyu ensure_stringsuCommand.ensure_stringcCst||}|dkrdSt|trMt||tjd|nPt|trxtdd|D}nd}|st d||fndS(uEnsure that 'option' is a list of strings. If 'option' is currently a string, we split it either on /,\s*/ or /\s+/, so "foo bar baz", "foo,bar,baz", and "foo, bar baz" all become ["foo", "bar", "baz"]. Nu,\s*|\s+css|]}t|tVqdS(N(u isinstanceustr(u.0uv((u2/opt/alt/python33/lib64/python3.3/distutils/cmd.pyu su-Command.ensure_string_list..u''%s' must be a list of strings (got %r)F( ugetattruNoneu isinstanceustrusetattrureusplitulistualluFalseuDistutilsOptionError(uselfuoptionuvaluok((u2/opt/alt/python33/lib64/python3.3/distutils/cmd.pyuensure_string_lists uCommand.ensure_string_listcCsO|j|||}|dk rK|| rKtd|||fndS(Nuerror in '%s' option: (u_ensure_stringlikeuNoneuDistutilsOptionError(uselfuoptionutesteruwhatu error_fmtudefaultuval((u2/opt/alt/python33/lib64/python3.3/distutils/cmd.pyu_ensure_tested_strings uCommand._ensure_tested_stringcCs |j|tjjdddS(u5Ensure that 'option' is the name of an existing file.ufilenameu$'%s' does not exist or is not a fileN(u_ensure_tested_stringuosupathuisfile(uselfuoption((u2/opt/alt/python33/lib64/python3.3/distutils/cmd.pyuensure_filenamesuCommand.ensure_filenamecCs |j|tjjdddS(Nudirectory nameu)'%s' does not exist or is not a directory(u_ensure_tested_stringuosupathuisdir(uselfuoption((u2/opt/alt/python33/lib64/python3.3/distutils/cmd.pyuensure_dirnamesuCommand.ensure_dirnamecCs$t|dr|jS|jjSdS(Nu command_name(uhasattru command_nameu __class__u__name__(uself((u2/opt/alt/python33/lib64/python3.3/distutils/cmd.pyuget_command_name suCommand.get_command_namecGsh|jj|}|jxE|D]=\}}t||dkr#t||t||q#q#WdS(u>Set the values of any "undefined" options from corresponding option values in some other command object. "Undefined" here means "is None", which is the convention used to indicate that an option has not been changed between 'initialize_options()' and 'finalize_options()'. Usually called from 'finalize_options()' for options that depend on some other command rather than another option of the same command. 'src_cmd' is the other command from which option values will be taken (a command object will be created for it if necessary); the remaining arguments are '(src_option,dst_option)' tuples which mean "take the value of 'src_option' in the 'src_cmd' command object, and copy it to 'dst_option' in the current command object". N(u distributionuget_command_objuensure_finalizedugetattruNoneusetattr(uselfusrc_cmdu option_pairsu src_cmd_obju src_optionu dst_option((u2/opt/alt/python33/lib64/python3.3/distutils/cmd.pyuset_undefined_optionss  uCommand.set_undefined_optionscCs#|jj||}|j|S(uWrapper around Distribution's 'get_command_obj()' method: find (create if necessary and 'create' is true) the command object for 'command', call its 'ensure_finalized()' method, and return the finalized command object. (u distributionuget_command_objuensure_finalized(uselfucommanducreateucmd_obj((u2/opt/alt/python33/lib64/python3.3/distutils/cmd.pyuget_finalized_command$s uCommand.get_finalized_commandicCs|jj||S(N(u distributionureinitialize_command(uselfucommandureinit_subcommands((u2/opt/alt/python33/lib64/python3.3/distutils/cmd.pyureinitialize_command0s uCommand.reinitialize_commandcCs|jj|dS(uRun some other command: uses the 'run_command()' method of Distribution, which creates and finalizes the command object if necessary and then invokes its 'run()' method. N(u distributionu run_command(uselfucommand((u2/opt/alt/python33/lib64/python3.3/distutils/cmd.pyu run_command4suCommand.run_commandcCsLg}x?|jD]4\}}|dks4||r|j|qqW|S(ukDetermine the sub-commands that are relevant in the current distribution (ie., that need to be run). This is based on the 'sub_commands' class attribute: each tuple in that list may include a method that we call to determine if the subcommand needs to be run for the current distribution. Return a list of command names. N(u sub_commandsuNoneuappend(uselfucommandsucmd_nameumethod((u2/opt/alt/python33/lib64/python3.3/distutils/cmd.pyuget_sub_commands;s uCommand.get_sub_commandscCs!tjd|j|fdS(Nuwarning: %s: %s (uloguwarnuget_command_name(uselfumsg((u2/opt/alt/python33/lib64/python3.3/distutils/cmd.pyuwarnKs u Command.warncCs tj|||d|jdS(Nudry_run(uutiluexecuteudry_run(uselfufuncuargsumsgulevel((u2/opt/alt/python33/lib64/python3.3/distutils/cmd.pyuexecuteOsuCommand.executeicCstj||d|jdS(Nudry_run(udir_utilumkpathudry_run(uselfunameumode((u2/opt/alt/python33/lib64/python3.3/distutils/cmd.pyumkpathRsuCommand.mkpathc Cs)tj|||||j |d|jS(uCopy a file respecting verbose, dry-run and force flags. (The former two default to whatever is in the Distribution object, and the latter defaults to false for commands that don't define it.)udry_run(u file_utilu copy_fileuforceudry_run(uselfuinfileuoutfileu preserve_modeupreserve_timesulinkulevel((u2/opt/alt/python33/lib64/python3.3/distutils/cmd.pyu copy_fileUsuCommand.copy_filec Cs)tj||||||j d|jS(u\Copy an entire directory tree respecting verbose, dry-run, and force flags. udry_run(udir_utilu copy_treeuforceudry_run(uselfuinfileuoutfileu preserve_modeupreserve_timesupreserve_symlinksulevel((u2/opt/alt/python33/lib64/python3.3/distutils/cmd.pyu copy_tree^suCommand.copy_treecCstj||d|jS(u$Move a file respecting dry-run flag.udry_run(u file_utilu move_fileudry_run(uselfusrcudstulevel((u2/opt/alt/python33/lib64/python3.3/distutils/cmd.pyu move_filegsuCommand.move_filecCs*ddlm}|||d|jdS(u2Spawn an external command respecting dry-run flag.i(uspawnudry_runN(udistutils.spawnuspawnudry_run(uselfucmdu search_pathuleveluspawn((u2/opt/alt/python33/lib64/python3.3/distutils/cmd.pyuspawnksu Command.spawncCstj||||d|jS(Nudry_run(u archive_utilu make_archiveudry_run(uselfu base_nameuformaturoot_dirubase_dir((u2/opt/alt/python33/lib64/python3.3/distutils/cmd.pyu make_archivepsuCommand.make_archivecCs|dkrd|}nt|tr4|f}n$t|ttfsXtdn|dkrd|dj|f}n|jstj ||r|j ||||n t j |dS(uSpecial case of 'execute()' for operations that process one or more input files and generate one output file. Works just like 'execute()', except the operation is skipped and a different message printed if 'outfile' already exists and is newer than all files listed in 'infiles'. If the command defined 'self.force', and it is true, then the command is unconditionally run -- does no timestamp checks. uskipping %s (inputs unchanged)u9'infiles' must be a string, or a list or tuple of stringsugenerating %s from %su, N( uNoneu isinstanceustrulistutupleu TypeErrorujoinuforceudep_utilu newer_groupuexecuteulogudebug(uselfuinfilesuoutfileufuncuargsuexec_msguskip_msgulevel((u2/opt/alt/python33/lib64/python3.3/distutils/cmd.pyu make_filets     uCommand.make_fileN($u__name__u __module__u __qualname__u__doc__u sub_commandsu__init__u __getattr__uensure_finalizeduinitialize_optionsufinalize_optionsuNoneu dump_optionsurunuannounceu debug_printu_ensure_stringlikeu ensure_stringuensure_string_listu_ensure_tested_stringuensure_filenameuensure_dirnameuget_command_nameuset_undefined_optionsuget_finalized_commandureinitialize_commandu run_commanduget_sub_commandsuwarnuexecuteumkpathu copy_fileu copy_treeu move_fileuspawnu make_archiveu make_file(u __locals__((u2/opt/alt/python33/lib64/python3.3/distutils/cmd.pyuCommand sD 0              uCommandcBsS|EeZdZdZdgZddZddZd d Zd d Zd S(u install_miscu{Common base class for installing some files in a subdirectory. Currently used by install_data and install_scripts. u install-dir=udu!directory to install the files tocCsd|_g|_dS(N(uNoneu install_diruoutfiles(uself((u2/opt/alt/python33/lib64/python3.3/distutils/cmd.pyuinitialize_optionss uinstall_misc.initialize_optionscCs|jd|dfdS(Nuinstallu install_dir(uset_undefined_options(uselfudirname((u2/opt/alt/python33/lib64/python3.3/distutils/cmd.pyu_install_dir_fromsuinstall_misc._install_dir_fromcCsmg|_|sdS|j|jxC|D];}|j||j|jjtjj|j|q*WdS(N(uoutfilesumkpathu install_diru copy_fileuappenduosupathujoin(uselfufilelistuf((u2/opt/alt/python33/lib64/python3.3/distutils/cmd.pyu _copy_filess  uinstall_misc._copy_filescCs|jS(N(uoutfiles(uself((u2/opt/alt/python33/lib64/python3.3/distutils/cmd.pyu get_outputssuinstall_misc.get_outputsN(u install-dir=udu!directory to install the files to( u__name__u __module__u __qualname__u__doc__u user_optionsuinitialize_optionsu_install_dir_fromu _copy_filesu get_outputs(u __locals__((u2/opt/alt/python33/lib64/python3.3/distutils/cmd.pyu install_miscs     u install_misc(u__doc__usysuosureudistutils.errorsuDistutilsOptionErroru distutilsuutiludir_utilu file_utilu archive_utiludep_utiluloguCommandu install_misc(((u2/opt/alt/python33/lib64/python3.3/distutils/cmd.pyus$(PK!"$__pycache__/file_util.cpython-33.pycnu[ fc@sdZddlZddlmZddlmZidd6dd6dd 6Zdd d ZddddddddZ ddddZ ddZ dS(uFdistutils.file_util Utility functions for operating on single files. iN(uDistutilsFileError(ulogucopyingu hard linkinguhardusymbolically linkingusymiicNCsd}d}zyt|d}WnAtjk re}ztd||jfWYdd}~XnXtjj|rytj|Wqtjk r}ztd||jfWYdd}~XqXnyt|d}WnAtjk r&}ztd||jfWYdd}~XnXxy|j |}WnAtjk r}ztd||jfWYdd}~XnX|sPny|j |Wq*tjk r}ztd||jfWYdd}~Xq*Xq*Wd|r|j n|r |j nXdS( u5Copy the file 'src' to 'dst'; both must be filenames. Any error opening either file, reading from 'src', or writing to 'dst', raises DistutilsFileError. Data is read/written in chunks of 'buffer_size' bytes (default 16k). No attempt is made to handle anything apart from regular files. urbucould not open '%s': %sNucould not delete '%s': %suwbucould not create '%s': %sucould not read from '%s': %sucould not write to '%s': %s( uNoneuopenuosuerroruDistutilsFileErrorustrerrorupathuexistsuunlinkureaduwriteuclose(usrcudstu buffer_sizeufsrcufdstueubuf((u8/opt/alt/python33/lib64/python3.3/distutils/file_util.pyu_copy_file_contentssF ,,))0 u_copy_file_contentsicCsddlm}ddlm} m} m} m} tjj |sWt d|ntjj |r|} tjj |tjj |}ntjj|} |r||| r|dkrtjd|n|dfSyt|}Wn"tk rtd|YnX|dkrytjj |tjj |kr`tjd||| qytjd|||n|r|dfS|d krtjj|otjj||stj||qn|d krtjj|otjj||stj||qnut|||s4|rtj|}|rjtj||| || fn|rtj|| || qn|dfS( uCopy a file 'src' to 'dst'. If 'dst' is a directory, then 'src' is copied there with the same name; otherwise, it must be a filename. (If the file exists, it will be ruthlessly clobbered.) If 'preserve_mode' is true (the default), the file's mode (type and permission bits, or whatever is analogous on the current platform) is copied. If 'preserve_times' is true (the default), the last-modified and last-access times are copied as well. If 'update' is true, 'src' will only be copied if 'dst' does not exist, or if 'dst' does exist but is older than 'src'. 'link' allows you to make hard links (os.link) or symbolic links (os.symlink) instead of copying: set it to "hard" or "sym"; if it is None (the default), files are copied. Don't set 'link' on systems that don't support it: 'copy_file()' doesn't check if hard or symbolic linking is available. Under Mac OS, uses the native file copy function in macostools; on other systems, uses '_copy_file_contents()' to copy file contents. Return a tuple (dest_name, copied): 'dest_name' is the actual name of the output file, and 'copied' is true if the file was copied (or would have been copied, if 'dry_run' true). i(unewer(uST_ATIMEuST_MTIMEuST_MODEuS_IMODEu4can't copy '%s': doesn't exist or not a regular fileiu"not copying %s (output up-to-date)u&invalid value '%s' for 'link' argumentu %s %s -> %suhardusym(udistutils.dep_utilunewerustatuST_ATIMEuST_MTIMEuST_MODEuS_IMODEuosupathuisfileuDistutilsFileErroruisdirujoinubasenameudirnameulogudebugu _copy_actionuKeyErroru ValueErroruinfouexistsusamefileulinkusymlinku_copy_file_contentsuutimeuchmod(usrcudstu preserve_modeupreserve_timesuupdateulinkuverboseudry_rununeweruST_ATIMEuST_MTIMEuST_MODEuS_IMODEudiruactionust((u8/opt/alt/python33/lib64/python3.3/distutils/file_util.pyu copy_fileCsJ "$    $  ' '  ! u copy_filec(Cs(ddlm}m}m}m}m}ddl} |dkrVtjd||n|r`|S||st d|n||rt j j |||}n%||rt d||fn|||st d||fnd } yt j||Wnet jk rz} zB| \} } | | jkrOd } nt d ||| fWYdd} ~ XnX| r$t||d |yt j|Wq$t jk r } zV| \} } yt j|Wnt jk rYnXt d |||| fWYdd} ~ Xq$Xn|S(u%Move a file 'src' to 'dst'. If 'dst' is a directory, the file will be moved into it with the same name; otherwise, 'src' is just renamed to 'dst'. Return the new full name of the file. Handles cross-device moves on Unix using 'copy_file()'. What about other systems??? i(uexistsuisfileuisdirubasenameudirnameNiumoving %s -> %su#can't move '%s': not a regular fileu0can't move '%s': destination '%s' already existsu2can't move '%s': destination '%s' not a valid pathucouldn't move '%s' to '%s': %suverboseuAcouldn't move '%s' to '%s' by copy/delete: delete '%s' failed: %sFT(uos.pathuexistsuisfileuisdirubasenameudirnameuerrnouloguinfouDistutilsFileErroruosupathujoinuFalseurenameuerroruEXDEVuTrueu copy_fileuunlink(usrcudstuverboseudry_runuexistsuisfileuisdirubasenameudirnameuerrnoucopy_itueunumumsg((u8/opt/alt/python33/lib64/python3.3/distutils/file_util.pyu move_filesR (       ) ,u move_filec CsGt|d}z&x|D]}|j|dqWWd|jXdS(u{Create a file with the specified name and write 'contents' (a sequence of strings without line terminators) to it. uwu N(uopenuwriteuclose(ufilenameucontentsufuline((u8/opt/alt/python33/lib64/python3.3/distutils/file_util.pyu write_files  u write_filei@( u__doc__uosudistutils.errorsuDistutilsFileErroru distutilsuloguNoneu _copy_actionu_copy_file_contentsu copy_fileu move_fileu write_file(((u8/opt/alt/python33/lib64/python3.3/distutils/file_util.pyus   3 [=PK!L 3 3#__pycache__/filelist.cpython-33.pycnu[ f1c@sdZddlZddlZddlZddlmZddlmZmZddl m Z GdddZ ej dd Z d d Zd ddd dZdS(usdistutils.filelist Provides the FileList class, used for poking about the filesystem and building lists of files. iN(u convert_path(uDistutilsTemplateErroruDistutilsInternalError(ulogcBs|EeZdZdZddddZddZejddZ dd Z d d Z d d Z ddZ ddZddZddZdddddZdddddZdS(uFileListuA list of files built by on exploring the filesystem and filtered by applying various patterns to what we find there. Instance attributes: dir directory from which files will be taken -- only used if 'allfiles' not supplied to constructor files list of filenames currently being built/filtered/manipulated allfiles complete list of files under consideration (ie. without any filtering applied) cCsd|_g|_dS(N(uNoneuallfilesufiles(uselfuwarnu debug_print((u7/opt/alt/python33/lib64/python3.3/distutils/filelist.pyu__init__s uFileList.__init__cCs ||_dS(N(uallfiles(uselfuallfiles((u7/opt/alt/python33/lib64/python3.3/distutils/filelist.pyu set_allfiles"suFileList.set_allfilescCst||_dS(N(ufindalluallfiles(uselfudir((u7/opt/alt/python33/lib64/python3.3/distutils/filelist.pyufindall%suFileList.findallcCs'ddlm}|r#t|ndS(u~Print 'msg' to stdout if the global DEBUG (taken from the DISTUTILS_DEBUG environment variable) flag is true. i(uDEBUGN(udistutils.debuguDEBUGuprint(uselfumsguDEBUG((u7/opt/alt/python33/lib64/python3.3/distutils/filelist.pyu debug_print(suFileList.debug_printcCs|jj|dS(N(ufilesuappend(uselfuitem((u7/opt/alt/python33/lib64/python3.3/distutils/filelist.pyuappend2suFileList.appendcCs|jj|dS(N(ufilesuextend(uselfuitems((u7/opt/alt/python33/lib64/python3.3/distutils/filelist.pyuextend5suFileList.extendcCsXtttjj|j}g|_x*|D]"}|jjtjj|q.WdS(N(usortedumapuosupathusplitufilesuappendujoin(uselfusortable_filesu sort_tuple((u7/opt/alt/python33/lib64/python3.3/distutils/filelist.pyusort8s  u FileList.sortcCsYxRtt|jdddD]1}|j||j|dkr |j|=q q WdS(Niii(urangeulenufiles(uselfui((u7/opt/alt/python33/lib64/python3.3/distutils/filelist.pyuremove_duplicatesBs&uFileList.remove_duplicatescCs:|j}|d}d}}}|dkrut|dkrUtd|ndd |d dD}n|dkrt|d krtd|nt|d }dd |ddD}nT|dkrt|dkrtd|nt|d }ntd|||||fS(Niuincludeuexcludeuglobal-includeuglobal-excludeiu&'%s' expects ...cSsg|]}t|qS((u convert_path(u.0uw((u7/opt/alt/python33/lib64/python3.3/distutils/filelist.pyu Vs u1FileList._parse_template_line..iurecursive-includeurecursive-excludeiu,'%s' expects ...cSsg|]}t|qS((u convert_path(u.0uw((u7/opt/alt/python33/lib64/python3.3/distutils/filelist.pyu \s ugraftupruneu#'%s' expects a single uunknown action '%s'(uincludeuexcludeuglobal-includeuglobal-exclude(urecursive-includeurecursive-exclude(ugraftuprune(usplituNoneulenuDistutilsTemplateErroru convert_path(uselfulineuwordsuactionupatternsudiru dir_pattern((u7/opt/alt/python33/lib64/python3.3/distutils/filelist.pyu_parse_template_lineKs,       uFileList._parse_template_linecCs|j|\}}}}|dkr}|jddj|x|D].}|j|ddsHtjd|qHqHWn|dkr|jddj|xs|D].}|j|ddstjd |qqWn:|d krA|jd dj|x|D].}|j|dd s tjd |q q Wn|dkr|jddj|x|D].}|j|dd sntjd|qnqnWnv|dkr|jd|dj|fxG|D]1}|j|d|stjd||qqWn |dkry|jd|dj|fx|D]1}|j|d|sAtjd||qAqAWn|dkr|jd||jdd|stjd|qnX|dkr |jd||jdd|stjd|qntd|dS(Nuincludeuinclude u uanchoriu%warning: no files found matching '%s'uexcludeuexclude u9warning: no previously-included files found matching '%s'uglobal-includeuglobal-include iu>warning: no files found matching '%s' anywhere in distributionuglobal-excludeuglobal-exclude uRwarning: no previously-included files matching '%s' found anywhere in distributionurecursive-includeurecursive-include %s %suprefixu:warning: no files found matching '%s' under directory '%s'urecursive-excludeurecursive-exclude %s %suNwarning: no previously-included files matching '%s' found under directory '%s'ugraftugraft u+warning: no directories found matching '%s'upruneuprune u6no previously-included directories found matching '%s'u'this cannot happen: invalid action '%s'( u_parse_template_lineu debug_printujoinuinclude_patternuloguwarnuexclude_patternuNoneuDistutilsInternalError(uselfulineuactionupatternsudiru dir_patternupattern((u7/opt/alt/python33/lib64/python3.3/distutils/filelist.pyuprocess_template_linegsf                          uFileList.process_template_lineiicCsd}t||||}|jd|j|jdkrK|jnxJ|jD]?}|j|rU|jd||jj |d}qUqUW|S(uSelect strings (presumably filenames) from 'self.files' that match 'pattern', a Unix-style wildcard (glob) pattern. Patterns are not quite the same as implemented by the 'fnmatch' module: '*' and '?' match non-special characters, where "special" is platform- dependent: slash on Unix; colon, slash, and backslash on DOS/Windows; and colon on Mac OS. If 'anchor' is true (the default), then the pattern match is more stringent: "*.py" will match "foo.py" but not "foo/bar.py". If 'anchor' is false, both of these will match. If 'prefix' is supplied, then only filenames starting with 'prefix' (itself a pattern) and ending with 'pattern', with anything in between them, will match. 'anchor' is ignored in this case. If 'is_regex' is true, 'anchor' and 'prefix' are ignored, and 'pattern' is assumed to be either a string containing a regex or a regex object -- no translation is done, the regex is just compiled and used as-is. Selected strings will be added to self.files. Return True if files are found, False otherwise. u%include_pattern: applying regex r'%s'u adding FNT( uFalseutranslate_patternu debug_printupatternuallfilesuNoneufindallusearchufilesuappenduTrue(uselfupatternuanchoruprefixuis_regexu files_foundu pattern_reuname((u7/opt/alt/python33/lib64/python3.3/distutils/filelist.pyuinclude_patterns    uFileList.include_patterncCsd}t||||}|jd|jxhtt|jdddD]G}|j|j|rO|jd|j||j|=d}qOqOW|S(uRemove strings (presumably filenames) from 'files' that match 'pattern'. Other parameters are the same as for 'include_pattern()', above. The list 'self.files' is modified in place. Return True if files are found, False otherwise. u%exclude_pattern: applying regex r'%s'iu removing FiiT( uFalseutranslate_patternu debug_printupatternurangeulenufilesusearchuTrue(uselfupatternuanchoruprefixuis_regexu files_foundu pattern_reui((u7/opt/alt/python33/lib64/python3.3/distutils/filelist.pyuexclude_patterns  &  uFileList.exclude_patternN(u__name__u __module__u __qualname__u__doc__uNoneu__init__u set_allfilesuosucurdirufindallu debug_printuappenduextendusorturemove_duplicatesu_parse_template_lineuprocess_template_lineuinclude_patternuexclude_pattern(u __locals__((u7/opt/alt/python33/lib64/python3.3/distutils/filelist.pyuFileList s      L,uFileListcCsddlm}m}m}m}g}|g}|j}|j}x|r|}tj|} x| D]} |tj krtj j || } n| } tj| } | |} || r|j| qk|| rk||  rk|| qkqkWqFW|S(u^Find all files under 'dir' and return the list of full filenames (relative to 'dir'). i(uST_MODEuS_ISREGuS_ISDIRuS_ISLNK( ustatuST_MODEuS_ISREGuS_ISDIRuS_ISLNKupopuappenduosulistdirucurdirupathujoin(udiruST_MODEuS_ISREGuS_ISDIRuS_ISLNKulistustackupopupushunamesunameufullnameustatumode((u7/opt/alt/python33/lib64/python3.3/distutils/filelist.pyufindalls&"        ufindallcCsStj|}tj}tjdkr0d}nd|}tjd||}|S(uTranslate a shell-like glob pattern to a regular expression; return a string containing the regex. Differs from 'fnmatch.translate()' in that '*' does not match "special characters" (which are platform-specific). u\u\\\\u\1[^%s]u((?t|}nd}|dk rtd}t|dt| }tj}tjdkrd}nd|j |d|f}n|rd|}ntj|S(uTranslate a shell-like wildcard pattern to a compiled regular expression. Return the compiled regex. If 'is_regex' true, then 'pattern' is directly compiled to a regex (if it's a string) or just returned as-is (assumes it's a regex object). uNu\u\\u^u.*( u isinstanceustrureucompileu glob_to_reuNoneulenuosusepujoin(upatternuanchoruprefixuis_regexu pattern_reu empty_patternu prefix_reusep((u7/opt/alt/python33/lib64/python3.3/distutils/filelist.pyutranslate_pattern+s"       utranslate_pattern(u__doc__uosureufnmatchudistutils.utilu convert_pathudistutils.errorsuDistutilsTemplateErroruDistutilsInternalErroru distutilsuloguFileListucurdirufindallu glob_to_reuNoneutranslate_pattern(((u7/opt/alt/python33/lib64/python3.3/distutils/filelist.pyus  PK!-=## __pycache__/spawn.cpython-33.pycnu[ f!c@sdZddlZddlZddlmZmZddlmZddlm Z dddddZ d d Z dddd d Z dddd dZ ejdkrddlmZdadandddddZdddZdS(udistutils.spawn Provides the 'spawn()' function, a front-end to various platform- specific functions for launching another program in a sub-process. Also provides the 'find_executable()' to search the path for a given executable name. iN(uDistutilsPlatformErroruDistutilsExecError(uDEBUG(ulogicCst|}tjdkr1t||d|n]tjdkrVt||d|n8tjdkr{t||d|ntdtjdS(uRun another program, specified as a command list 'cmd', in a new process. 'cmd' is just the argument list for the new process, ie. cmd[0] is the program to run and cmd[1:] are the rest of its arguments. There is no way to run a program with a name different from that of its executable. If 'search_path' is true (the default), the system's executable search path will be used to find the program; otherwise, cmd[0] must be the exact path to the executable. If 'dry_run' is true, the command will not actually be run. Raise DistutilsExecError if running the program fails in any way; just return on success. uposixudry_rununtuos2u1don't know how to spawn programs on platform '%s'N(ulistuosunameu _spawn_posixu _spawn_ntu _spawn_os2uDistutilsPlatformError(ucmdu search_pathuverboseudry_run((u4/opt/alt/python33/lib64/python3.3/distutils/spawn.pyuspawns uspawncCs>x7t|D])\}}d|kr d|||ts|}ntjjd || jftjd WYdd} ~ XnXts|}ntjjd |tjd njxgytj| d\} } Wnutk r} zUddl} | j| jkrcwntsr|}ntd|| jdfWYdd} ~ XnXtj | rts|}ntd|tj!| fqtj"| r8tj#| }|dkrdSts|}ntd||fqtj$| rMqqts\|}ntd|| fqdS(Nu iudarwinuMACOSX_DEPLOYMENT_TARGETucSsg|]}t|qS((uint(u.0ux((u4/opt/alt/python33/lib64/python3.3/distutils/spawn.pyu s u _spawn_posix..u.cSsg|]}t|qS((uint(u.0ux((u4/opt/alt/python33/lib64/python3.3/distutils/spawn.pyu s uF$MACOSX_DEPLOYMENT_TARGET mismatch: now "%s" but "%s" during configureuunable to execute %r: %s iu(unable to execute %r for unknown reasonsucommand %r failed: %su"command %r terminated by signal %du%command %r failed with exit status %du1unknown error executing %r: termination status %di(%uloguinfoujoinuosuexecvpuexecvuNoneusysuplatformu _cfg_targetu sysconfiguget_config_varusplitu_cfg_target_splituenvironugetuDistutilsPlatformErrorudictuexecvpeuexecveuforkuOSErroruDEBUGustderruwriteustrerroru_exituwaitpiduerrnouEINTRuDistutilsExecErroruargsu WIFSIGNALEDuWTERMSIGu WIFEXITEDu WEXITSTATUSu WIFSTOPPED(ucmdu search_pathuverboseudry_runu executableuexec_fnuenvu cur_targetumy_msgupidueustatusuexcuerrnou exit_status((u4/opt/alt/python33/lib64/python3.3/distutils/spawn.pyu _spawn_posixrs  ""            -    u _spawn_posixcCs|dkrtjd}n|jtj}tjj|\}}tjdksdtj dkr}|dkr}|d}ntjj |sx9|D]1}tjj ||}tjj |r|SqWdS|SdS(uTries to find 'executable' in the directories listed in 'path'. A string listing directories separated by 'os.pathsep'; defaults to os.environ['PATH']. Returns the complete filename or None if not found. uPATHuwin32uos2u.exeN( uNoneuosuenvironusplitupathsepupathusplitextusysuplatformunameuisfileujoin(u executableupathupathsubaseuextupuf((u4/opt/alt/python33/lib64/python3.3/distutils/spawn.pyufind_executables *  ufind_executable(u__doc__usysuosudistutils.errorsuDistutilsPlatformErroruDistutilsExecErrorudistutils.debuguDEBUGu distutilsuloguspawnu_nt_quote_argsu _spawn_ntu _spawn_os2uplatformu sysconfiguNoneu _cfg_targetu_cfg_target_splitu _spawn_posixufind_executable(((u4/opt/alt/python33/lib64/python3.3/distutils/spawn.pyus    TPK!ت::'__pycache__/fancy_getopt.cpython-33.pycnu[ fxEc@sKdZddlZddlZddlZddlZddlTdZejdeZejdeefZ e j ddZ Gd d d Z d d Zd dejDZddZddZGdddZedkrGdZxKddddfD]7Zedeedjeeeeq WndS(u6distutils.fancy_getopt Wrapper around the standard getopt module that provides the following additional features: * short and long options are tied together * options have help strings, so fancy_getopt could potentially create a complete usage summary * options set attributes of a passed-in object iN(u*u[a-zA-Z](?:[a-zA-Z0-9-]*)u^%s$u ^(%s)=!(%s)$u-u_cBs|EeZdZdZdddZddZddZdddd Zd d Z d d Z ddZ ddZ ddZ ddZddddZddZdddZddddZdS(u FancyGetoptuWrapper around the standard 'getopt()' module that provides some handy extra functionality: * short and long options are tied together * options have help strings, and help text can be assembled from them * options set attributes of a passed-in object * boolean options can have "negative aliases" -- eg. if --quiet is the "negative alias" of --verbose, then "--quiet" on the command line sets 'verbose' to false cCst||_i|_|jr(|jni|_i|_g|_g|_i|_i|_i|_ g|_ dS(N( u option_tableu option_indexu _build_indexualiasunegative_aliasu short_optsu long_optsu short2longu attr_nameu takes_argu option_order(uselfu option_table((u;/opt/alt/python33/lib64/python3.3/distutils/fancy_getopt.pyu__init__)s           uFancyGetopt.__init__cCs6|jjx"|jD]}||j|d= 2iu:invalid short option '%s': must a single character or Noneu=u:u>invalid negative alias '%s': aliased option '%s' takes a valueuginvalid alias '%s': inconsistent with aliased option '%s' (one of them takes a value, the other doesn'tuEinvalid long option name '%s' (must be letters, numbers, hyphens onlyNiii(u long_optsu short_optsu short2longuclearurepeatu option_tableulenu ValueErroru isinstanceustruDistutilsGetoptErroruNoneuappendu takes_argunegative_aliasugetualiasu longopt_reumatchu get_attr_nameu attr_name(uselfuoptionulongushortuhelpurepeatualias_to((u;/opt/alt/python33/lib64/python3.3/distutils/fancy_getopt.pyu_grok_option_tables^     "  !        uFancyGetopt._grok_option_tablec Cs>|dkr"tjdd}n|dkr@t}d }nd }|jdj|j}y"t j |||j \}}Wn4t j k r}zt |WYdd}~XnXxh|D]`\}}t |dkr|ddkr|j|d}n>t |dkr,|dddks2t|dd}|jj|} | rc| }n|j|s|dkstd |jj|} | r| }d}qd}n|j|} |r|jj| dk rt|| dd}nt|| ||jj||fqW|r6||fS|SdS( uParse command-line options in args. Store as attributes on object. If 'args' is None or not supplied, uses 'sys.argv[1:]'. If 'object' is None or not supplied, creates a new OptionDummy object, stores option values there, and returns a tuple (args, object). If 'object' is supplied, it is modified in place and 'getopt()' just returns 'args'; in both cases, the returned 'args' is a modified copy of the passed-in 'args' list, which is left untouched. iNu iiu-u--uuboolean option can't have valueTF(uNoneusysuargvu OptionDummyuTrueuFalseu_grok_option_tableujoinu short_optsugetoptu long_optsuerroruDistutilsArgErrorulenu short2longuAssertionErrorualiasugetu takes_argunegative_aliasu attr_nameurepeatugetattrusetattru option_orderuappend( uselfuargsuobjectucreated_objectu short_optsuoptsumsguoptuvalualiasuattr((u;/opt/alt/python33/lib64/python3.3/distutils/fancy_getopt.pyugetoptsF     "".      uFancyGetopt.getoptcCs)|jdkrtdn|jSdS(uReturns the list of (option, value) tuples processed by the previous run of 'getopt()'. Raises RuntimeError if 'getopt()' hasn't been called yet. u!'getopt()' hasn't been called yetN(u option_orderuNoneu RuntimeError(uself((u;/opt/alt/python33/lib64/python3.3/distutils/fancy_getopt.pyuget_option_ordersuFancyGetopt.get_option_ordercCsd}x||jD]q}|d}|d}t|}|ddkrS|d}n|d k rl|d}n||kr|}qqW|ddd}d}||} d|} |r|g} n dg} x|jD]}|d d \}}} t| | } |ddkr'|dd}n|d krt| rZ| jd ||| dfq| jd ||fnHd ||f}| r| jd ||| dfn| jd|x)| dd D]}| j| |qWqW| S(uGenerate help text (a list of strings, one per suggested line of output) from the option table for this FancyGetopt object. iiu=iiiNu uOption summary:Niu --%-*s %su --%-*s u%s (-%s)u --%-*siii(u option_tableulenuNoneu wrap_textuappend(uselfuheaderumax_optuoptionulongushortulu opt_widthu line_widthu text_widthu big_indentulinesuhelputextu opt_names((u;/opt/alt/python33/lib64/python3.3/distutils/fancy_getopt.pyu generate_helpsF             ! uFancyGetopt.generate_helpcCsG|dkrtj}nx(|j|D]}|j|dq(WdS(Nu (uNoneusysustdoutu generate_helpuwrite(uselfuheaderufileuline((u;/opt/alt/python33/lib64/python3.3/distutils/fancy_getopt.pyu print_helphs  uFancyGetopt.print_helpN(u__name__u __module__u __qualname__u__doc__uNoneu__init__u _build_indexuset_option_tableu add_optionu has_optionu get_attr_nameu_check_alias_dictu set_aliasesuset_negative_aliasesu_grok_option_tableugetoptuget_option_orderu generate_helpu print_help(u __locals__((u;/opt/alt/python33/lib64/python3.3/distutils/fancy_getopt.pyu FancyGetopts (       M= Ou FancyGetoptcCs)t|}|j||j||S(N(u FancyGetoptuset_negative_aliasesugetopt(uoptionsu negative_optuobjectuargsuparser((u;/opt/alt/python33/lib64/python3.3/distutils/fancy_getopt.pyu fancy_getoptos  u fancy_getoptcCsi|]}dt|qS(u (uord(u.0u_wschar((u;/opt/alt/python33/lib64/python3.3/distutils/fancy_getopt.pyu us u cCs|dkrgSt||kr)|gS|j}|jt}tjd|}dd|D}g}x |r}g}d}xt|rt|d}|||kr|j|d|d=||}q|r|d ddkr|d =nPqW|rd|dkrC|j|dd||d|d|d [string] Split 'text' into multiple lines of no more than 'width' characters each, and return the list of strings that results. u( +|-+)cSsg|]}|r|qS(((u.0uch((u;/opt/alt/python33/lib64/python3.3/distutils/fancy_getopt.pyu s uwrap_text..iiu Nuii( uNoneulenu expandtabsu translateuWS_TRANSureusplituappendujoin(utextuwidthuchunksulinesucur_lineucur_lenul((u;/opt/alt/python33/lib64/python3.3/distutils/fancy_getopt.pyu wrap_textws:        u wrap_textcCs |jtS(uXConvert a long option name to a valid Python identifier by changing "-" to "_". (u translateu longopt_xlate(uopt((u;/opt/alt/python33/lib64/python3.3/distutils/fancy_getopt.pyutranslate_longoptsutranslate_longoptcBs)|EeZdZdZgddZdS(u OptionDummyu_Dummy class just used as a place to hold command-line option values as instance attributes.cCs%x|D]}t||dqWdS(ukCreate a new OptionDummy instance. The attributes listed in 'options' will be initialized to None.N(usetattruNone(uselfuoptionsuopt((u;/opt/alt/python33/lib64/python3.3/distutils/fancy_getopt.pyu__init__s uOptionDummy.__init__N(u__name__u __module__u __qualname__u__doc__u__init__(u __locals__((u;/opt/alt/python33/lib64/python3.3/distutils/fancy_getopt.pyu OptionDummysu OptionDummyu__main__uTra-la-la, supercalifragilisticexpialidocious. How *do* you spell that odd word, anyways? (Someone ask Mary -- she'll know [or she'll say, "How should I know?"].)i iii(u width: %du (u__doc__usysustringureugetoptudistutils.errorsu longopt_patucompileu longopt_reu neg_alias_reustru maketransu longopt_xlateu FancyGetoptu fancy_getoptu whitespaceuWS_TRANSu wrap_textutranslate_longoptu OptionDummyu__name__utextuwuprintujoin(((u;/opt/alt/python33/lib64/python3.3/distutils/fancy_getopt.pyu s($  S  6  PK!Åg!PP__pycache__/cmd.cpython-33.pycnu[ f[Jc@sdZddlZddlZddlZddlmZddlmZmZm Z m Z m Z ddlm Z GdddZ Gdd d e ZdS( utdistutils.cmd Provides the Command class, the base class for the command classes in the distutils.command package. iN(uDistutilsOptionError(uutiludir_utilu file_utilu archive_utiludep_util(ulogcBs|EeZdZdZgZddZddZddZdd Zd d Z dBd d dZ ddZ dddZ ddZdBddZdBddZddZdBddZddZd d!Zd"d#Zd$d%Zdd&d'Zd(d)d*Zd+d,Zd-d.Zd/d0ZdBdd1d2Zd3d4d5ZdddBdd6d7Zddd(dd8d9Zdd:d;Z ddd<d=Z!dBdBd>d?Z"dBdBdd@dAZ#dBS(CuCommandu}Abstract base class for defining command classes, the "worker bees" of the Distutils. A useful analogy for command classes is to think of them as subroutines with local variables called "options". The options are "declared" in 'initialize_options()' and "defined" (given their final values, aka "finalized") in 'finalize_options()', both of which must be defined by every command class. The distinction between the two is necessary because option values might come from the outside world (command line, config file, ...), and any options dependent on other options must be computed *after* these outside influences have been processed -- hence 'finalize_options()'. The "body" of the subroutine, where it does all its work based on the values of its options, is the 'run()' method, which must also be implemented by every command class. cCsddlm}t||s.tdn|jtkrLtdn||_|jd|_ |j |_ d|_ d|_ d|_dS(uCreate and initialize a new Command object. Most importantly, invokes the 'initialize_options()' method, which is the real initializer and depends on the actual command being instantiated. i(u Distributionu$dist must be a Distribution instanceuCommand is an abstract classN(udistutils.distu Distributionu isinstanceu TypeErroru __class__uCommandu RuntimeErroru distributionuinitialize_optionsuNoneu_dry_runuverboseuforceuhelpu finalized(uselfudistu Distribution((u2/opt/alt/python33/lib64/python3.3/distutils/cmd.pyu__init__/s     uCommand.__init__cCsR|dkrBt|d|}|dkr;t|j|S|Sn t|dS(Nudry_runu_(ugetattruNoneu distributionuAttributeError(uselfuattrumyval((u2/opt/alt/python33/lib64/python3.3/distutils/cmd.pyu __getattr___s   uCommand.__getattr__cCs#|js|jnd|_dS(Ni(u finalizedufinalize_options(uself((u2/opt/alt/python33/lib64/python3.3/distutils/cmd.pyuensure_finalizedis  uCommand.ensure_finalizedcCstd|jdS(uSet default values for all the options that this command supports. Note that these defaults may be overridden by other commands, by the setup script, by config files, or by the command-line. Thus, this is not the place to code dependencies between options; generally, 'initialize_options()' implementations are just a bunch of "self.foo = None" assignments. This method must be implemented by all command classes. u,abstract method -- subclass %s must overrideN(u RuntimeErroru __class__(uself((u2/opt/alt/python33/lib64/python3.3/distutils/cmd.pyuinitialize_options{s uCommand.initialize_optionscCstd|jdS(uSet final values for all the options that this command supports. This is always called as late as possible, ie. after any option assignments from the command-line or from other commands have been done. Thus, this is the place to code option dependencies: if 'foo' depends on 'bar', then it is safe to set 'foo' from 'bar' as long as 'foo' still has the same value it was assigned in 'initialize_options()'. This method must be implemented by all command classes. u,abstract method -- subclass %s must overrideN(u RuntimeErroru __class__(uself((u2/opt/alt/python33/lib64/python3.3/distutils/cmd.pyufinalize_optionss uCommand.finalize_optionsucCsddlm}|dkr/d|j}n|j||dtj|d}x|jD]t\}}}|j|}|d dkr|dd }nt ||}|j|d||fdtjq]WdS( Ni(u longopt_xlateucommand options for '%s':ulevelu iu=u%s = %sii( udistutils.fancy_getoptu longopt_xlateuNoneuget_command_nameuannounceuloguINFOu user_optionsu translateugetattr(uselfuheaderuindentu longopt_xlateuoptionu_uvalue((u2/opt/alt/python33/lib64/python3.3/distutils/cmd.pyu dump_optionss  uCommand.dump_optionscCstd|jdS(uA command's raison d'etre: carry out the action it exists to perform, controlled by the options initialized in 'initialize_options()', customized by other commands, the setup script, the command-line, and config files, and finalized in 'finalize_options()'. All terminal output and filesystem interaction should be done by 'run()'. This method must be implemented by all command classes. u,abstract method -- subclass %s must overrideN(u RuntimeErroru __class__(uself((u2/opt/alt/python33/lib64/python3.3/distutils/cmd.pyuruns u Command.runicCstj||dS(umIf the current verbosity level is of greater than or equal to 'level' print 'msg' to stdout. N(ulog(uselfumsgulevel((u2/opt/alt/python33/lib64/python3.3/distutils/cmd.pyuannouncesuCommand.announcecCs4ddlm}|r0t|tjjndS(u~Print 'msg' to stdout if the global DEBUG (taken from the DISTUTILS_DEBUG environment variable) flag is true. i(uDEBUGN(udistutils.debuguDEBUGuprintusysustdoutuflush(uselfumsguDEBUG((u2/opt/alt/python33/lib64/python3.3/distutils/cmd.pyu debug_prints uCommand.debug_printcCs^t||}|dkr/t||||St|tsZtd|||fn|S(Nu'%s' must be a %s (got `%s`)(ugetattruNoneusetattru isinstanceustruDistutilsOptionError(uselfuoptionuwhatudefaultuval((u2/opt/alt/python33/lib64/python3.3/distutils/cmd.pyu_ensure_stringlikes uCommand._ensure_stringlikecCs|j|d|dS(uWEnsure that 'option' is a string; if not defined, set it to 'default'. ustringN(u_ensure_stringlike(uselfuoptionudefault((u2/opt/alt/python33/lib64/python3.3/distutils/cmd.pyu ensure_stringsuCommand.ensure_stringcCst||}|dkrdSt|trMt||tjd|nPt|trxtdd|D}nd}|st d||fndS(uEnsure that 'option' is a list of strings. If 'option' is currently a string, we split it either on /,\s*/ or /\s+/, so "foo bar baz", "foo,bar,baz", and "foo, bar baz" all become ["foo", "bar", "baz"]. Nu,\s*|\s+css|]}t|tVqdS(N(u isinstanceustr(u.0uv((u2/opt/alt/python33/lib64/python3.3/distutils/cmd.pyu su-Command.ensure_string_list..u''%s' must be a list of strings (got %r)F( ugetattruNoneu isinstanceustrusetattrureusplitulistualluFalseuDistutilsOptionError(uselfuoptionuvaluok((u2/opt/alt/python33/lib64/python3.3/distutils/cmd.pyuensure_string_lists uCommand.ensure_string_listcCsO|j|||}|dk rK|| rKtd|||fndS(Nuerror in '%s' option: (u_ensure_stringlikeuNoneuDistutilsOptionError(uselfuoptionutesteruwhatu error_fmtudefaultuval((u2/opt/alt/python33/lib64/python3.3/distutils/cmd.pyu_ensure_tested_strings uCommand._ensure_tested_stringcCs |j|tjjdddS(u5Ensure that 'option' is the name of an existing file.ufilenameu$'%s' does not exist or is not a fileN(u_ensure_tested_stringuosupathuisfile(uselfuoption((u2/opt/alt/python33/lib64/python3.3/distutils/cmd.pyuensure_filenamesuCommand.ensure_filenamecCs |j|tjjdddS(Nudirectory nameu)'%s' does not exist or is not a directory(u_ensure_tested_stringuosupathuisdir(uselfuoption((u2/opt/alt/python33/lib64/python3.3/distutils/cmd.pyuensure_dirnamesuCommand.ensure_dirnamecCs$t|dr|jS|jjSdS(Nu command_name(uhasattru command_nameu __class__u__name__(uself((u2/opt/alt/python33/lib64/python3.3/distutils/cmd.pyuget_command_name suCommand.get_command_namecGsh|jj|}|jxE|D]=\}}t||dkr#t||t||q#q#WdS(u>Set the values of any "undefined" options from corresponding option values in some other command object. "Undefined" here means "is None", which is the convention used to indicate that an option has not been changed between 'initialize_options()' and 'finalize_options()'. Usually called from 'finalize_options()' for options that depend on some other command rather than another option of the same command. 'src_cmd' is the other command from which option values will be taken (a command object will be created for it if necessary); the remaining arguments are '(src_option,dst_option)' tuples which mean "take the value of 'src_option' in the 'src_cmd' command object, and copy it to 'dst_option' in the current command object". N(u distributionuget_command_objuensure_finalizedugetattruNoneusetattr(uselfusrc_cmdu option_pairsu src_cmd_obju src_optionu dst_option((u2/opt/alt/python33/lib64/python3.3/distutils/cmd.pyuset_undefined_optionss  uCommand.set_undefined_optionscCs#|jj||}|j|S(uWrapper around Distribution's 'get_command_obj()' method: find (create if necessary and 'create' is true) the command object for 'command', call its 'ensure_finalized()' method, and return the finalized command object. (u distributionuget_command_objuensure_finalized(uselfucommanducreateucmd_obj((u2/opt/alt/python33/lib64/python3.3/distutils/cmd.pyuget_finalized_command$s uCommand.get_finalized_commandicCs|jj||S(N(u distributionureinitialize_command(uselfucommandureinit_subcommands((u2/opt/alt/python33/lib64/python3.3/distutils/cmd.pyureinitialize_command0s uCommand.reinitialize_commandcCs|jj|dS(uRun some other command: uses the 'run_command()' method of Distribution, which creates and finalizes the command object if necessary and then invokes its 'run()' method. N(u distributionu run_command(uselfucommand((u2/opt/alt/python33/lib64/python3.3/distutils/cmd.pyu run_command4suCommand.run_commandcCsLg}x?|jD]4\}}|dks4||r|j|qqW|S(ukDetermine the sub-commands that are relevant in the current distribution (ie., that need to be run). This is based on the 'sub_commands' class attribute: each tuple in that list may include a method that we call to determine if the subcommand needs to be run for the current distribution. Return a list of command names. N(u sub_commandsuNoneuappend(uselfucommandsucmd_nameumethod((u2/opt/alt/python33/lib64/python3.3/distutils/cmd.pyuget_sub_commands;s uCommand.get_sub_commandscCs!tjd|j|fdS(Nuwarning: %s: %s (uloguwarnuget_command_name(uselfumsg((u2/opt/alt/python33/lib64/python3.3/distutils/cmd.pyuwarnKs u Command.warncCs tj|||d|jdS(Nudry_run(uutiluexecuteudry_run(uselfufuncuargsumsgulevel((u2/opt/alt/python33/lib64/python3.3/distutils/cmd.pyuexecuteOsuCommand.executeicCstj||d|jdS(Nudry_run(udir_utilumkpathudry_run(uselfunameumode((u2/opt/alt/python33/lib64/python3.3/distutils/cmd.pyumkpathRsuCommand.mkpathc Cs)tj|||||j |d|jS(uCopy a file respecting verbose, dry-run and force flags. (The former two default to whatever is in the Distribution object, and the latter defaults to false for commands that don't define it.)udry_run(u file_utilu copy_fileuforceudry_run(uselfuinfileuoutfileu preserve_modeupreserve_timesulinkulevel((u2/opt/alt/python33/lib64/python3.3/distutils/cmd.pyu copy_fileUsuCommand.copy_filec Cs)tj||||||j d|jS(u\Copy an entire directory tree respecting verbose, dry-run, and force flags. udry_run(udir_utilu copy_treeuforceudry_run(uselfuinfileuoutfileu preserve_modeupreserve_timesupreserve_symlinksulevel((u2/opt/alt/python33/lib64/python3.3/distutils/cmd.pyu copy_tree^suCommand.copy_treecCstj||d|jS(u$Move a file respecting dry-run flag.udry_run(u file_utilu move_fileudry_run(uselfusrcudstulevel((u2/opt/alt/python33/lib64/python3.3/distutils/cmd.pyu move_filegsuCommand.move_filecCs*ddlm}|||d|jdS(u2Spawn an external command respecting dry-run flag.i(uspawnudry_runN(udistutils.spawnuspawnudry_run(uselfucmdu search_pathuleveluspawn((u2/opt/alt/python33/lib64/python3.3/distutils/cmd.pyuspawnksu Command.spawncCstj||||d|jS(Nudry_run(u archive_utilu make_archiveudry_run(uselfu base_nameuformaturoot_dirubase_dir((u2/opt/alt/python33/lib64/python3.3/distutils/cmd.pyu make_archivepsuCommand.make_archivecCs|dkrd|}nt|tr4|f}n$t|ttfsXtdn|dkrd|dj|f}n|jstj ||r|j ||||n t j |dS(uSpecial case of 'execute()' for operations that process one or more input files and generate one output file. Works just like 'execute()', except the operation is skipped and a different message printed if 'outfile' already exists and is newer than all files listed in 'infiles'. If the command defined 'self.force', and it is true, then the command is unconditionally run -- does no timestamp checks. uskipping %s (inputs unchanged)u9'infiles' must be a string, or a list or tuple of stringsugenerating %s from %su, N( uNoneu isinstanceustrulistutupleu TypeErrorujoinuforceudep_utilu newer_groupuexecuteulogudebug(uselfuinfilesuoutfileufuncuargsuexec_msguskip_msgulevel((u2/opt/alt/python33/lib64/python3.3/distutils/cmd.pyu make_filets     uCommand.make_fileN($u__name__u __module__u __qualname__u__doc__u sub_commandsu__init__u __getattr__uensure_finalizeduinitialize_optionsufinalize_optionsuNoneu dump_optionsurunuannounceu debug_printu_ensure_stringlikeu ensure_stringuensure_string_listu_ensure_tested_stringuensure_filenameuensure_dirnameuget_command_nameuset_undefined_optionsuget_finalized_commandureinitialize_commandu run_commanduget_sub_commandsuwarnuexecuteumkpathu copy_fileu copy_treeu move_fileuspawnu make_archiveu make_file(u __locals__((u2/opt/alt/python33/lib64/python3.3/distutils/cmd.pyuCommand sD 0              uCommandcBsS|EeZdZdZdgZddZddZd d Zd d Zd S(u install_miscu{Common base class for installing some files in a subdirectory. Currently used by install_data and install_scripts. u install-dir=udu!directory to install the files tocCsd|_g|_dS(N(uNoneu install_diruoutfiles(uself((u2/opt/alt/python33/lib64/python3.3/distutils/cmd.pyuinitialize_optionss uinstall_misc.initialize_optionscCs|jd|dfdS(Nuinstallu install_dir(uset_undefined_options(uselfudirname((u2/opt/alt/python33/lib64/python3.3/distutils/cmd.pyu_install_dir_fromsuinstall_misc._install_dir_fromcCsmg|_|sdS|j|jxC|D];}|j||j|jjtjj|j|q*WdS(N(uoutfilesumkpathu install_diru copy_fileuappenduosupathujoin(uselfufilelistuf((u2/opt/alt/python33/lib64/python3.3/distutils/cmd.pyu _copy_filess  uinstall_misc._copy_filescCs|jS(N(uoutfiles(uself((u2/opt/alt/python33/lib64/python3.3/distutils/cmd.pyu get_outputssuinstall_misc.get_outputsN(u install-dir=udu!directory to install the files to( u__name__u __module__u __qualname__u__doc__u user_optionsuinitialize_optionsu_install_dir_fromu _copy_filesu get_outputs(u __locals__((u2/opt/alt/python33/lib64/python3.3/distutils/cmd.pyu install_miscs     u install_misc(u__doc__usysuosureudistutils.errorsuDistutilsOptionErroru distutilsuutiludir_utilu file_utilu archive_utiludep_utiluloguCommandu install_misc(((u2/opt/alt/python33/lib64/python3.3/distutils/cmd.pyus$(PK!3dd(__pycache__/msvc9compiler.cpython-33.pycnu[ f@wc@sdZddlZddlZddlZddlZddlmZmZmZm Z m Z ddl m Z m Z mZddlmZddlmZddlZejZejZejZejZejejejejfZ ej!dkoej"d'kZ#e#r!d Z$d Z%d Z&nd Z$dZ%dZ&idd6dd6dd6Z'GdddZ(GdddZ)ddZ*ddZ+ddZ,dd Z-dd!d"Z.e*Z/e/d#kred$e/nGd%d&d&e Z0dS((u distutils.msvc9compiler Contains MSVCCompiler, an implementation of the abstract CCompiler class for the Microsoft Visual Studio 2008. The module is compatible with VS 2005 and VS 2008. You can find legacy support for older versions of VS in distutils.msvccompiler. iN(uDistutilsExecErroruDistutilsPlatformErroru CompileErroruLibErroru LinkError(u CCompilerugen_preprocess_optionsugen_lib_options(ulog(u get_platformuwin32ii u1Software\Wow6432Node\Microsoft\VisualStudio\%0.1fu5Software\Wow6432Node\Microsoft\Microsoft SDKs\Windowsu,Software\Wow6432Node\Microsoft\.NETFrameworku%Software\Microsoft\VisualStudio\%0.1fu)Software\Microsoft\Microsoft SDKs\Windowsu Software\Microsoft\.NETFrameworkux86uamd64u win-amd64uia64uwin-ia64cBsz|EeZdZdZddZeeZddZeeZddZeeZdd Ze eZd S( uRegu2Helper class to read values from the registry cCsMx:tD]2}|j||}|r||kr||SqWt|dS(N(uHKEYSu read_valuesuKeyError(uclsupathukeyubaseud((u</opt/alt/python33/lib64/python3.3/distutils/msvc9compiler.pyu get_valueAs   u Reg.get_valuecCsyt||}Wntk r+dSYnXg}d}xCyt||}Wntk rcPYnX|j||d7}q;|S(uReturn list of registry keys.iiN(u RegOpenKeyExuRegErroruNoneu RegEnumKeyuappend(uclsubaseukeyuhandleuLuiuk((u</opt/alt/python33/lib64/python3.3/distutils/msvc9compiler.pyu read_keysIs     u Reg.read_keysc Csyt||}Wntk r+dSYnXi}d}xgyt||\}}}Wntk rlPYnX|j}|j|||j|<|d7}q;|S(u`Return dict of registry keys and values. All names are converted to lowercase. iiN(u RegOpenKeyExuRegErroruNoneu RegEnumValueuloweru convert_mbcs( uclsubaseukeyuhandleuduiunameuvalueutype((u</opt/alt/python33/lib64/python3.3/distutils/msvc9compiler.pyu read_values[s     uReg.read_valuesc CsJt|dd}|dk rFy|d}WqFtk rBYqFXn|S(Nudecodeumbcs(ugetattruNoneu UnicodeError(usudec((u</opt/alt/python33/lib64/python3.3/distutils/msvc9compiler.pyu convert_mbcsqs  uReg.convert_mbcsN( u__name__u __module__u __qualname__u__doc__u get_valueu classmethodu read_keysu read_valuesu convert_mbcsu staticmethod(u __locals__((u</opt/alt/python33/lib64/python3.3/distutils/msvc9compiler.pyuReg=s       uRegcBsD|EeZdZddZddZddZddZd S( u MacroExpandercCs'i|_t||_|j|dS(N(umacrosuVS_BASEuvsbaseu load_macros(uselfuversion((u</opt/alt/python33/lib64/python3.3/distutils/msvc9compiler.pyu__init__}s  uMacroExpander.__init__cCs!tj|||jd||)uu*\s*uI|)uw( uopenureaducloseureucompileuDOTALLusubusearchuNoneuwriteuIOError(uselfu manifest_fileu manifest_fu manifest_bufupattern((u</opt/alt/python33/lib64/python3.3/distutils/msvc9compiler.pyu_remove_visual_c_refs.      u!MSVCCompiler._remove_visual_c_refcCsd|S(Nu /LIBPATH:((uselfudir((u</opt/alt/python33/lib64/python3.3/distutils/msvc9compiler.pyulibrary_dir_optionsuMSVCCompiler.library_dir_optioncCstddS(Nu<don't know how to set runtime library search path for MSVC++(uDistutilsPlatformError(uselfudir((u</opt/alt/python33/lib64/python3.3/distutils/msvc9compiler.pyuruntime_library_dir_optionsu'MSVCCompiler.runtime_library_dir_optioncCs |j|S(N(ulibrary_filename(uselfulib((u</opt/alt/python33/lib64/python3.3/distutils/msvc9compiler.pyulibrary_optionsuMSVCCompiler.library_optioncCs|r|d|g}n |g}xW|D]K}xB|D]:}tjj||j|}tjj|r6|Sq6Wq)WdSdS(Nu_d(uosupathujoinulibrary_filenameuexistsuNone(uselfudirsulibudebugu try_namesudirunameulibfile((u</opt/alt/python33/lib64/python3.3/distutils/msvc9compiler.pyufind_library_files    uMSVCCompiler.find_library_filecCsxH|jD]=}tjjtjj||}tjj|r |Sq WxUtjdjdD]=}tjjtjj||}tjj|rb|SqbW|S(uReturn path to an MSVC executable program. Tries to find the program in several places: first, one of the MSVC program search paths from the registry; next, the directories in the PATH environment variable. If any of those work, return an absolute path that is known to exist. If none of them work, just return the original program name, 'exe'. uPathu;(u_MSVCCompiler__pathsuosupathujoinuabspathuisfileuenvironusplit(uselfuexeupufn((u</opt/alt/python33/lib64/python3.3/distutils/msvc9compiler.pyufind_exes !!uMSVCCompiler.find_exeN(!u__name__u __module__u __qualname__u__doc__u compiler_typeu executablesu _c_extensionsu_cpp_extensionsu_rc_extensionsu_mc_extensionsusrc_extensionsu res_extensionu obj_extensionustatic_lib_extensionushared_lib_extensionustatic_lib_formatushared_lib_formatu exe_extensionu__init__uNoneu initializeuobject_filenamesucompileucreate_static_libulinkumanifest_setup_ldargsumanifest_get_embed_infou_remove_visual_c_refulibrary_dir_optionuruntime_library_dir_optionulibrary_optionufind_library_fileufind_exe(u __locals__((u</opt/alt/python33/lib64/python3.3/distutils/msvc9compiler.pyu MSVCCompiler)sR     X VR  +   u MSVCCompilerl(1u__doc__uosu subprocessusysureudistutils.errorsuDistutilsExecErroruDistutilsPlatformErroru CompileErroruLibErroru LinkErrorudistutils.ccompileru CCompilerugen_preprocess_optionsugen_lib_optionsu distutilsulogudistutils.utilu get_platformuwinregu OpenKeyExu RegOpenKeyExuEnumKeyu RegEnumKeyu EnumValueu RegEnumValueuerroruRegErroru HKEY_USERSuHKEY_CURRENT_USERuHKEY_LOCAL_MACHINEuHKEY_CLASSES_ROOTuHKEYSuplatformumaxsizeu NATIVE_WIN64uVS_BASEu WINSDK_BASEuNET_BASEuPLAT_TO_VCVARSuRegu MacroExpanderuget_build_versionunormalize_and_reduce_pathsuremoveDuplicatesufind_vcvarsalluquery_vcvarsalluVERSIONu MSVCCompiler(((u</opt/alt/python33/lib64/python3.3/distutils/msvc9compiler.pyusP    (        >.   #)  PK!X%%'__pycache__/bcppcompiler.cpython-33.pycnu[ fW:c@sdZddlZddlmZmZmZmZmZmZddl m Z m Z m Z ddl mZddlmZddlmZGdd d e ZdS( udistutils.bcppcompiler Contains BorlandCCompiler, an implementation of the abstract CCompiler class for the Borland C++ compiler. iN(uDistutilsExecErroruDistutilsPlatformErroru CompileErroruLibErroru LinkErroruUnknownFileError(u CCompilerugen_preprocess_optionsugen_lib_options(u write_file(unewer(ulogc Bs|EeZdZdZdZiZdgZdddgZeeZdZ dZ d Z d Z Z d Zd d d d dZdddd dddddZdd dddZdddddd dddddd Zd ddZd dddZdddddddZdS(u BCPPCompileruConcrete class that implements an interface to the Borland C/C++ compiler, as defined by the CCompiler abstract class. ubcppu.cu.ccu.cppu.cxxu.obju.libu.dllu%s%su.exeicCstj||||d|_d|_d|_d|_ddddg|_ddddg|_d d dd g|_ d d dd g|_ g|_ d dd g|_ d dd d g|_ dS( Nu bcc32.exeu ilink32.exeutlib.exeu/tWMu/O2u/qu/g0u/Odu/Tpdu/Gnu/xu/r(u CCompileru__init__ucculinkerulibuNoneupreprocess_optionsucompile_optionsucompile_options_debuguldflags_shareduldflags_shared_debuguldflags_staticu ldflags_exeuldflags_exe_debug(uselfuverboseudry_runuforce((u;/opt/alt/python33/lib64/python3.3/distutils/bcppcompiler.pyu__init__5s     uBCPPCompiler.__init__c Cs |j||||||\}} }} } |p6g} | jd|r_| j|jn| j|jx| D]} y| | \}}Wntk rwvYnXtjj|}tjj| } |j tjj | |dkrqvn|dkrZy|j dd| |gWqvt k rS}zt |WYdd}~XqvXqvn||jkrrd}n||jkrd}nd}d| }y4|j |jg| | ||g||gWqvt k r}zt |WYdd}~XqvXqvW| S( Nu-cu.resu.rcubrcc32u-fouu-Pu-o(u_setup_compileuappenduextenducompile_options_debugucompile_optionsuKeyErroruosupathunormpathumkpathudirnameuspawnuDistutilsExecErroru CompileErroru _c_extensionsu_cpp_extensionsucc(uselfusourcesu output_dirumacrosu include_dirsudebugu extra_preargsuextra_postargsudependsuobjectsupp_optsubuildu compile_optsuobjusrcuextumsgu input_optu output_opt((u;/opt/alt/python33/lib64/python3.3/distutils/bcppcompiler.pyucompileQsF         .#uBCPPCompiler.compilec Cs|j||\}}|j|d|}|j||r|dg|}|rXny|j|jg|Wqtk r}zt|WYdd}~XqXntjd|dS(Nu output_diru/uuskipping %s (up-to-date)( u_fix_object_argsulibrary_filenameu _need_linkuspawnulibuDistutilsExecErroruLibErrorulogudebug( uselfuobjectsuoutput_libnameu output_dirudebugu target_languoutput_filenameulib_argsumsg((u;/opt/alt/python33/lib64/python3.3/distutils/bcppcompiler.pyucreate_static_libs"uBCPPCompiler.create_static_libc Cs|j||\}}|j|||\}}}|rUtjdt|n|dk rytjj||}n|j ||r|t j krd}| r|j dd}q|j dd}n5d}| r|jdd}n|jdd}|dkrd}ntjj|\}}tjj|\}}tjj|d}tjj|d|}dg}x+|pgD]}|jd||fqW|jt||fd |ttjj|}|g}g}x[|D]S}tjjtjj|\}}|d kr@|j|q|j|qWx+|D]#}|jd tjj|qXW|jd |j||jd |g|jdxL|D]D}|j||| }|dkr|j|q|j|qW|jd|jd|jd |g|jd |j|| rh| |dds .PK!?//*__pycache__/cygwinccompiler.cpython-33.pycnu[ f}@c@sadZddlZddlZddlZddlmZmZmZddlZddl m Z m Z ddl m Z ddlmZddlmZmZmZddlmZdd lmZdd lmZd d ZGd dde ZGdddeZdZdZdZddZ ej!dZ"ddZ#ddZ$ddZ%dS(udistutils.cygwinccompiler Provides the CygwinCCompiler class, a subclass of UnixCCompiler that handles the Cygwin port of the GNU C compiler to Windows. It also contains the Mingw32CCompiler class which handles the mingw32 port of GCC (same as cygwin in no-cygwin mode). iN(uPopenuPIPEu check_output(ugen_preprocess_optionsugen_lib_options(u UnixCCompiler(u write_file(uDistutilsExecErroru CompileErroruUnknownFileError(ulog(u LooseVersion(ufind_executablecCstjjd}|dkrtj|d|d}|dkrLdgS|dkr_dgS|d krrd gS|d krd gS|d krdgStd|ndS(uaInclude the appropriate MSVC runtime library if Python was built with MSVC 7.0 or later. uMSC v.iii u1300umsvcr70u1310umsvcr71u1400umsvcr80u1500umsvcr90u1600umsvcr100uUnknown MS Compiler version %s Ni(usysuversionufindu ValueError(umsc_posumsc_ver((u>/opt/alt/python33/lib64/python3.3/distutils/cygwinccompiler.pyu get_msvcr>s      u get_msvcrc Bs|EeZdZdZdZdZdZdZdZdZ dZ d d d d d Z d d Z dddddd dddddd Zd dddZdS(uCygwinCCompileru? Handles the Cygwin port of the GNU C compiler to Windows. ucygwinu.ou.au.dllulib%s%su%s%su.exeic CsStj||||t\}}|jd||f|tk r\|jd|nt\|_|_|_ |j|j d|j|j|j f|jdkrd|_ n d|_ |jdkrd}nd }|j d d d d dddddd|j |f|jdkrCdg|_ |jdn t|_ dS(Nu%Python's GCC status: %s (details: %s)uPython's pyconfig.h doesn't seem to support your compiler. Reason: %s. Compiling may fail because of undefined preprocessor macros.u: gcc %s, ld %s, dllwrap %s u2.10.90ugccudllwrapu2.13u-sharedu -mdll -staticucompilerugcc -mcygwin -O -Wallu compiler_sougcc -mcygwin -mdll -O -Wallu compiler_cxxug++ -mcygwin -O -Wallu linker_exeu gcc -mcygwinu linker_sou%s -mcygwin %su2.91.57umsvcrtu,Consider upgrading to a newer version of gcc(u UnixCCompileru__init__ucheck_config_hu debug_printu CONFIG_H_OKuwarnu get_versionsu gcc_versionu ld_versionudllwrap_versionu compiler_typeu linker_dlluset_executablesu dll_librariesu get_msvcr(uselfuverboseudry_runuforceustatusudetailsu shared_option((u>/opt/alt/python33/lib64/python3.3/distutils/cygwinccompiler.pyu__init__cs<        uCygwinCCompiler.__init__cCs|dks|dkroy |jdd|d|gWqtk rk}zt|WYdd}~XqXn]y)|j|j||d|g|Wn1tk r}zt|WYdd}~XnXdS(u:Compiles the source by spawning GCC and windres if needed.u.rcu.resuwindresu-iu-oN(uspawnuDistutilsExecErroru CompileErroru compiler_so(uselfuobjusrcuextucc_argsuextra_postargsupp_optsumsg((u>/opt/alt/python33/lib64/python3.3/distutils/cygwinccompiler.pyu_compiles " uCygwinCCompiler._compilecCstj| pg} tj|p$g}tj|p9g}|j|j|d k r||jksy|jdkrtjj|d}tjj tjj |\}}tjj ||d}tjj |d|d}dtjj |dg}x|D]}|j |q W|j t||fd||jd krx| jd |g| jd |gq|j |n| s| j d ntj||||||||d | | | | | d S(uLink the objects.ugcciu.defulibu.au LIBRARY %suEXPORTSu writing %sudllwrapu --output-libu--defu-sN(ucopyuextendu dll_librariesuNoneu EXECUTABLEu linker_dlluosupathudirnameusplitextubasenameujoinuappenduexecuteu write_fileu UnixCCompilerulink(uselfu target_descuobjectsuoutput_filenameu output_diru librariesu library_dirsuruntime_library_dirsuexport_symbolsudebugu extra_preargsuextra_postargsu build_tempu target_langutemp_dirudll_nameu dll_extensionudef_fileulib_fileucontentsusym((u>/opt/alt/python33/lib64/python3.3/distutils/cygwinccompiler.pyulinks:         uCygwinCCompiler.linkucCs|dkrd}ng}x|D]}tjjtjj|\}}||jddgkr~td||fn|rtjj|}n|dkr|jtjj ||||j q"|jtjj |||j q"W|S(u#Adds supports for rc and res files.uu.rcu.resu"unknown file type '%s' (from '%s')N(u.resu.rc( uNoneuosupathusplitextunormcaseusrc_extensionsuUnknownFileErrorubasenameuappendujoinu obj_extension(uselfusource_filenamesu strip_diru output_diru obj_namesusrc_nameubaseuext((u>/opt/alt/python33/lib64/python3.3/distutils/cygwinccompiler.pyuobject_filenamess    $ u CygwinCCompiler.object_filenamesN(u__name__u __module__u __qualname__u__doc__u compiler_typeu obj_extensionustatic_lib_extensionushared_lib_extensionustatic_lib_formatushared_lib_formatu exe_extensionu__init__u_compileuNoneulinkuobject_filenames(u __locals__((u>/opt/alt/python33/lib64/python3.3/distutils/cygwinccompiler.pyuCygwinCCompilerXs;   KuCygwinCCompilercBs5|EeZdZdZdZdddddZdS(uMingw32CCompileru@ Handles the Mingw32 port of the GNU C compiler to Windows. umingw32icCstj|||||jdkr.d}nd}|jdkrLd}nd}|jdksjtrsd}nd}|jd d |d d |d d|dd|dd|j|||fg|_t|_dS(Nu2.13u-sharedu -mdll -staticu2.91.57u--entry _DllMain@12uu4u -mno-cygwinucompilerugcc%s -O -Wallu compiler_sougcc%s -mdll -O -Wallu compiler_cxxug++%s -O -Wallu linker_exeugcc%su linker_sou %s%s %s %s( uCygwinCCompileru__init__u ld_versionu gcc_versionu is_cygwingccuset_executablesu linker_dllu dll_librariesu get_msvcr(uselfuverboseudry_runuforceu shared_optionu entry_pointu no_cygwin((u>/opt/alt/python33/lib64/python3.3/distutils/cygwinccompiler.pyu__init__s&        uMingw32CCompiler.__init__N(u__name__u __module__u __qualname__u__doc__u compiler_typeu__init__(u __locals__((u>/opt/alt/python33/lib64/python3.3/distutils/cygwinccompiler.pyuMingw32CCompilersuMingw32CCompileruokunot oku uncertaincCsddlm}dtjkr)tdfS|j}yPt|}z2d|jkrgtd|fStd|fSWd|j XWn<t k r}zt d ||j ffSWYdd}~XnXdS( uwCheck if the current Python installation appears amenable to building extensions with GCC. Returns a tuple (status, details), where 'status' is one of the following constants: - CONFIG_H_OK: all is well, go ahead and compile - CONFIG_H_NOTOK: doesn't look good - CONFIG_H_UNCERTAIN: not sure -- unable to read pyconfig.h 'details' is a human-readable string explaining the situation. Note there are two ways to conclude "OK": either 'sys.version' contains the string "GCC" (implying that this Python was built with GCC), or the installed "pyconfig.h" contains the string "__GNUC__". i(u sysconfiguGCCusys.version mentions 'GCC'u__GNUC__u'%s' mentions '__GNUC__'u '%s' does not mention '__GNUC__'Nucouldn't read '%s': %s( u distutilsu sysconfigusysuversionu CONFIG_H_OKuget_config_h_filenameuopenureaduCONFIG_H_NOTOKucloseuIOErroruCONFIG_H_UNCERTAINustrerror(u sysconfigufnuconfig_huexc((u>/opt/alt/python33/lib64/python3.3/distutils/cygwinccompiler.pyucheck_config_hHs   ucheck_config_hs(\d+\.\d+(\.\d+)*)c Cs|jd}t|dkr&dSt|dddtj}z|j}Wd|jXt j |}|dkr~dSt |j dj S(uFind the version of an executable by running `cmd` in the shell. If the command is not found, or the output does not match `RE_VERSION`, returns None. iushellustdoutNiT(usplitufind_executableuNoneuPopenuTrueuPIPEustdoutureaducloseu RE_VERSIONusearchu LooseVersionugroupudecode(ucmdu executableuoutu out_stringuresult((u>/opt/alt/python33/lib64/python3.3/distutils/cygwinccompiler.pyu_find_exe_versionus  u_find_exe_versioncCs&dddg}tdd|DS(ug Try to find out the versions of gcc, ld and dllwrap. If not possible it returns None for it. ugcc -dumpversionuld -vudllwrap --versioncSsg|]}t|qS((u_find_exe_version(u.0ucmd((u>/opt/alt/python33/lib64/python3.3/distutils/cygwinccompiler.pyu s u get_versions..(utuple(ucommands((u>/opt/alt/python33/lib64/python3.3/distutils/cygwinccompiler.pyu get_versionssu get_versionscCs%tddg}|jjdS(u>Try to determine if the gcc that would be used is from cygwin.ugccu -dumpmachinescygwin(u check_outputustripuendswith(u out_string((u>/opt/alt/python33/lib64/python3.3/distutils/cygwinccompiler.pyu is_cygwingccsu is_cygwingcc(&u__doc__uosusysucopyu subprocessuPopenuPIPEu check_outputureudistutils.ccompilerugen_preprocess_optionsugen_lib_optionsudistutils.unixccompileru UnixCCompilerudistutils.file_utilu write_fileudistutils.errorsuDistutilsExecErroru CompileErroruUnknownFileErroru distutilsulogudistutils.versionu LooseVersionudistutils.spawnufind_executableu get_msvcruCygwinCCompileruMingw32CCompileru CONFIG_H_OKuCONFIG_H_NOTOKuCONFIG_H_UNCERTAINucheck_config_hucompileu RE_VERSIONu_find_exe_versionu get_versionsu is_cygwingcc(((u>/opt/alt/python33/lib64/python3.3/distutils/cygwinccompiler.pyus.)     2 +  PK!!__pycache__/config.cpython-33.pyonu[ fjc@sRdZddlZddlmZddlmZdZGdddeZdS(udistutils.pypirc Provides the PyPIRCCommand class, the base class for the command classes that uses .pypirc in the distutils.command package. iN(u ConfigParser(uCommanduE[distutils] index-servers = pypi [pypi] username:%s password:%s cBs|EeZdZdZdZdZdZdZdddefdgZ dgZ d d Z d d Z d dZ ddZddZddZdS(u PyPIRCCommandu;Base command that knows how to handle the .pypirc file uhttps://upload.pypi.org/legacy/upypiu repository=uruurl of repository [default: %s]u show-responseu&display full response text from servercCstjjtjjddS(uReturns rc file path.u~u.pypirc(uosupathujoinu expanduser(uself((u5/opt/alt/python33/lib64/python3.3/distutils/config.pyu _get_rc_file&suPyPIRCCommand._get_rc_filec Cs[|j}tjtj|tjtjBdd}|jt||fWdQXdS(uCreates a default .pypirc file.iuwN(u _get_rc_fileuosufdopenuopenuO_CREATuO_WRONLYuwriteuDEFAULT_PYPIRC(uselfuusernameupasswordurcuf((u5/opt/alt/python33/lib64/python3.3/distutils/config.pyu _store_pypirc*s .uPyPIRCCommand._store_pypircc Cs'|j}tjj|r#|jd||jp>|j}|jpP|j}t }|j ||j }d|kr|j dd}dd|j dD}|gkrd|krdg}qiSnxC|D]}i|d6} |j |d | d >s u.PyPIRCCommand._read_pypirc..u upypiuserveruusernameu repositoryurealmupasswordu server-loginN(upasswordN(u _get_rc_fileuosupathuexistsuannounceu repositoryuDEFAULT_REPOSITORYurealmu DEFAULT_REALMu ConfigParserureadusectionsugetusplituNoneu has_option( uselfurcu repositoryurealmuconfigusectionsu index_serversu_serversuserverucurrentukeyudefault((u5/opt/alt/python33/lib64/python3.3/distutils/config.pyu _read_pypirc0sP                uPyPIRCCommand._read_pypirccCsPddl}|jdd}|j|djdd}|jj|S(u%Read and decode a PyPI HTTP response.iNu content-typeu text/plainiucharsetuascii(ucgiu getheaderu parse_headerugetureadudecode(uselfuresponseucgiu content_typeuencoding((u5/opt/alt/python33/lib64/python3.3/distutils/config.pyu_read_pypi_responsehs u!PyPIRCCommand._read_pypi_responsecCsd|_d|_d|_dS(uInitialize options.iN(uNoneu repositoryurealmu show_response(uself((u5/opt/alt/python33/lib64/python3.3/distutils/config.pyuinitialize_optionsos  u PyPIRCCommand.initialize_optionscCs@|jdkr|j|_n|jdkr<|j|_ndS(uFinalizes options.N(u repositoryuNoneuDEFAULT_REPOSITORYurealmu DEFAULT_REALM(uself((u5/opt/alt/python33/lib64/python3.3/distutils/config.pyufinalize_optionsusuPyPIRCCommand.finalize_optionsN(u show-responseNu&display full response text from server(u__name__u __module__u __qualname__u__doc__uDEFAULT_REPOSITORYu DEFAULT_REALMuNoneu repositoryurealmu user_optionsuboolean_optionsu _get_rc_fileu _store_pypircu _read_pypircu_read_pypi_responseuinitialize_optionsufinalize_options(u __locals__((u5/opt/alt/python33/lib64/python3.3/distutils/config.pyu PyPIRCCommands"     8  u PyPIRCCommand(u__doc__uosu configparseru ConfigParseru distutils.cmduCommanduDEFAULT_PYPIRCu PyPIRCCommand(((u5/opt/alt/python33/lib64/python3.3/distutils/config.pyus   PK!~<(<("__pycache__/version.cpython-33.pycnu[ f0c@sUdZddlZGdddZGdddeZGdddeZdS( uProvides classes to represent module version numbers (one class for each style of version numbering). There are currently two such classes implemented: StrictVersion and LooseVersion. Every version number class implements the following interface: * the 'parse' method takes a string and parses it to some internal representation; if the string is an invalid version number, 'parse' raises a ValueError exception * the class constructor takes an optional string argument which, if supplied, is passed to 'parse' * __str__ reconstructs the string that was passed to 'parse' (or an equivalent string -- ie. one that will generate an equivalent version number instance) * __repr__ generates Python code to recreate the version number instance * _cmp compares the current instance with either another instance of the same class or a string (which will be parsed to an instance of the same class, thus must follow the same rules) iNcBs}|EeZdZdZdddZddZddZdd Zd d Z d d Z ddZ ddZ dS(uVersionuAbstract base class for version numbering classes. Just provides constructor (__init__) and reproducer (__repr__), because those seem to be the same for all version numbering classes; and route rich comparisons to _cmp. cCs|r|j|ndS(N(uparse(uselfuvstring((u6/opt/alt/python33/lib64/python3.3/distutils/version.pyu__init__&suVersion.__init__cCsd|jjt|fS(Nu %s ('%s')(u __class__u__name__ustr(uself((u6/opt/alt/python33/lib64/python3.3/distutils/version.pyu__repr__*suVersion.__repr__cCs)|j|}|tkr|S|dkS(Ni(u_cmpuNotImplemented(uselfuotheruc((u6/opt/alt/python33/lib64/python3.3/distutils/version.pyu__eq__-s uVersion.__eq__cCs)|j|}|tkr|S|dkS(Ni(u_cmpuNotImplemented(uselfuotheruc((u6/opt/alt/python33/lib64/python3.3/distutils/version.pyu__ne__3s uVersion.__ne__cCs)|j|}|tkr|S|dkS(Ni(u_cmpuNotImplemented(uselfuotheruc((u6/opt/alt/python33/lib64/python3.3/distutils/version.pyu__lt__9s uVersion.__lt__cCs)|j|}|tkr|S|dkS(Ni(u_cmpuNotImplemented(uselfuotheruc((u6/opt/alt/python33/lib64/python3.3/distutils/version.pyu__le__?s uVersion.__le__cCs)|j|}|tkr|S|dkS(Ni(u_cmpuNotImplemented(uselfuotheruc((u6/opt/alt/python33/lib64/python3.3/distutils/version.pyu__gt__Es uVersion.__gt__cCs)|j|}|tkr|S|dkS(Ni(u_cmpuNotImplemented(uselfuotheruc((u6/opt/alt/python33/lib64/python3.3/distutils/version.pyu__ge__Ks uVersion.__ge__N( u__name__u __module__u __qualname__u__doc__uNoneu__init__u__repr__u__eq__u__ne__u__lt__u__le__u__gt__u__ge__(u __locals__((u6/opt/alt/python33/lib64/python3.3/distutils/version.pyuVersions      uVersioncBsZ|EeZdZdZejdejejBZddZ ddZ ddZ d S( u StrictVersionu?Version numbering for anal retentives and software idealists. Implements the standard interface for version number classes as described above. A version number consists of two or three dot-separated numeric components, with an optional "pre-release" tag on the end. The pre-release tag consists of the letter 'a' or 'b' followed by a number. If the numeric components of two version numbers are equal, then one with a pre-release tag will always be deemed earlier (lesser) than one without. The following are valid version numbers (shown in the order that would be obtained by sorting according to the supplied cmp function): 0.4 0.4.0 (these two are equivalent) 0.4.1 0.5a1 0.5b3 0.5 0.9.6 1.0 1.0.4a3 1.0.4b1 1.0.4 The following are examples of invalid version numbers: 1 2.7.2.2 1.3.a4 1.3pl1 1.3c4 The rationale for this version numbering system will be explained in the distutils documentation. u)^(\d+) \. (\d+) (\. (\d+))? ([ab](\d+))?$cCs|jj|}|s+td|n|jddddd\}}}}}|rttt|||g|_n"ttt||gd|_|r|dt|f|_n d|_dS( Nuinvalid version number '%s'iiiiii(i( u version_reumatchu ValueErrorugrouputupleumapuintuversionu prereleaseuNone(uselfuvstringumatchumajoruminorupatchu prereleaseuprerelease_num((u6/opt/alt/python33/lib64/python3.3/distutils/version.pyuparses*$"uStrictVersion.parsecCs|jddkr;djtt|jdd}ndjtt|j}|jr||jdt|jd}n|S(Niiu.i(uversionujoinumapustru prerelease(uselfuvstring((u6/opt/alt/python33/lib64/python3.3/distutils/version.pyu__str__s ( %uStrictVersion.__str__cCst|trt|}n|j|jkrM|j|jkrFdSdSn|j re|j redS|jr||j r|dS|j r|jrdS|jr|jr|j|jkrdS|j|jkrdSdSndstddS(Niiunever get hereiiiF(u isinstanceustru StrictVersionuversionu prereleaseuFalseuAssertionError(uselfuother((u6/opt/alt/python33/lib64/python3.3/distutils/version.pyu_cmps&uStrictVersion._cmpN( u__name__u __module__u __qualname__u__doc__ureucompileuVERBOSEuASCIIu version_reuparseu__str__u_cmp(u __locals__((u6/opt/alt/python33/lib64/python3.3/distutils/version.pyu StrictVersioncs #   u StrictVersioncBsn|EeZdZdZejdejZd ddZ ddZ ddZ d d Z d d Z d S(u LooseVersionuVersion numbering for anarchists and software realists. Implements the standard interface for version number classes as described above. A version number consists of a series of numbers, separated by either periods or strings of letters. When comparing version numbers, the numeric components will be compared numerically, and the alphabetic components lexically. The following are all valid version numbers, in no particular order: 1.5.1 1.5.2b2 161 3.10a 8.02 3.4j 1996.07.12 3.2.pl0 3.1.1.6 2g6 11g 0.960923 2.2beta29 1.13++ 5.5.kw 2.0b1pl0 In fact, there is no such thing as an invalid version number under this scheme; the rules for comparison are simple and predictable, but may not always give the results you want (for some definition of "want"). u(\d+ | [a-z]+ | \.)cCs|r|j|ndS(N(uparse(uselfuvstring((u6/opt/alt/python33/lib64/python3.3/distutils/version.pyu__init__4suLooseVersion.__init__c Cs{||_dd|jj|D}xCt|D]5\}}yt|||>s u&LooseVersion.parse..(uvstringu component_reusplitu enumerateuintu ValueErroruversion(uselfuvstringu componentsuiuobj((u6/opt/alt/python33/lib64/python3.3/distutils/version.pyuparse9s   uLooseVersion.parsecCs|jS(N(uvstring(uself((u6/opt/alt/python33/lib64/python3.3/distutils/version.pyu__str__IsuLooseVersion.__str__cCsdt|S(NuLooseVersion ('%s')(ustr(uself((u6/opt/alt/python33/lib64/python3.3/distutils/version.pyu__repr__MsuLooseVersion.__repr__cCsdt|trt|}n|j|jkr4dS|j|jkrJdS|j|jkr`dSdS(Niii(u isinstanceustru LooseVersionuversion(uselfuother((u6/opt/alt/python33/lib64/python3.3/distutils/version.pyu_cmpQsuLooseVersion._cmpN(u__name__u __module__u __qualname__u__doc__ureucompileuVERBOSEu component_reuNoneu__init__uparseu__str__u__repr__u_cmp(u __locals__((u6/opt/alt/python33/lib64/python3.3/distutils/version.pyu LooseVersions   u LooseVersion(u__doc__ureuVersionu StrictVersionu LooseVersion(((u6/opt/alt/python33/lib64/python3.3/distutils/version.pyus DPK![6#6#!__pycache__/errors.cpython-33.pycnu[ fc@sdZGdddeZGdddeZGdddeZGdddeZGd d d eZGd d d eZGd ddeZGdddeZ GdddeZ GdddeZ GdddeZ GdddeZ GdddeZGdddeZGdddeZGdd d eZGd!d"d"eZGd#d$d$eZGd%d&d&eZd'S((udistutils.errors Provides exceptions used by the Distutils modules. Note that Distutils modules may raise standard exceptions; in particular, SystemExit is usually raised for errors that are obviously the end-user's fault (eg. bad command-line arguments). This module is safe to use in "from ... import *" mode; it only exports symbols whose names start with "Distutils" and end with "Error".cBs|EeZdZdZdS(uDistutilsErroruThe root of all Distutils evil.N(u__name__u __module__u __qualname__u__doc__(u __locals__((u5/opt/alt/python33/lib64/python3.3/distutils/errors.pyuDistutilsError suDistutilsErrorcBs|EeZdZdZdS(uDistutilsModuleErroruUnable to load an expected module, or to find an expected class within some module (in particular, command modules and classes).N(u__name__u __module__u __qualname__u__doc__(u __locals__((u5/opt/alt/python33/lib64/python3.3/distutils/errors.pyuDistutilsModuleErrorsuDistutilsModuleErrorcBs|EeZdZdZdS(uDistutilsClassErroruSome command class (or possibly distribution class, if anyone feels a need to subclass Distribution) is found not to be holding up its end of the bargain, ie. implementing some part of the "command "interface.N(u__name__u __module__u __qualname__u__doc__(u __locals__((u5/opt/alt/python33/lib64/python3.3/distutils/errors.pyuDistutilsClassErrorsuDistutilsClassErrorcBs|EeZdZdZdS(uDistutilsGetoptErroru7The option table provided to 'fancy_getopt()' is bogus.N(u__name__u __module__u __qualname__u__doc__(u __locals__((u5/opt/alt/python33/lib64/python3.3/distutils/errors.pyuDistutilsGetoptErrorsuDistutilsGetoptErrorcBs|EeZdZdZdS(uDistutilsArgErroruaRaised by fancy_getopt in response to getopt.error -- ie. an error in the command line usage.N(u__name__u __module__u __qualname__u__doc__(u __locals__((u5/opt/alt/python33/lib64/python3.3/distutils/errors.pyuDistutilsArgErrorsuDistutilsArgErrorcBs|EeZdZdZdS(uDistutilsFileErroruAny problems in the filesystem: expected file not found, etc. Typically this is for problems that we detect before IOError or OSError could be raised.N(u__name__u __module__u __qualname__u__doc__(u __locals__((u5/opt/alt/python33/lib64/python3.3/distutils/errors.pyuDistutilsFileError$suDistutilsFileErrorcBs|EeZdZdZdS(uDistutilsOptionErroruSyntactic/semantic errors in command options, such as use of mutually conflicting options, or inconsistent options, badly-spelled values, etc. No distinction is made between option values originating in the setup script, the command line, config files, or what-have-you -- but if we *know* something originated in the setup script, we'll raise DistutilsSetupError instead.N(u__name__u __module__u __qualname__u__doc__(u __locals__((u5/opt/alt/python33/lib64/python3.3/distutils/errors.pyuDistutilsOptionError*suDistutilsOptionErrorcBs|EeZdZdZdS(uDistutilsSetupErroruqFor errors that can be definitely blamed on the setup script, such as invalid keyword arguments to 'setup()'.N(u__name__u __module__u __qualname__u__doc__(u __locals__((u5/opt/alt/python33/lib64/python3.3/distutils/errors.pyuDistutilsSetupError3suDistutilsSetupErrorcBs|EeZdZdZdS(uDistutilsPlatformErroruWe don't know how to do something on the current platform (but we do know how to do it on some platform) -- eg. trying to compile C files on a platform not supported by a CCompiler subclass.N(u__name__u __module__u __qualname__u__doc__(u __locals__((u5/opt/alt/python33/lib64/python3.3/distutils/errors.pyuDistutilsPlatformError8suDistutilsPlatformErrorcBs|EeZdZdZdS(uDistutilsExecErroru`Any problems executing an external program (such as the C compiler, when compiling C files).N(u__name__u __module__u __qualname__u__doc__(u __locals__((u5/opt/alt/python33/lib64/python3.3/distutils/errors.pyuDistutilsExecError>suDistutilsExecErrorcBs|EeZdZdZdS(uDistutilsInternalErroruoInternal inconsistencies or impossibilities (obviously, this should never be seen if the code is working!).N(u__name__u __module__u __qualname__u__doc__(u __locals__((u5/opt/alt/python33/lib64/python3.3/distutils/errors.pyuDistutilsInternalErrorCsuDistutilsInternalErrorcBs|EeZdZdZdS(uDistutilsTemplateErroru%Syntax error in a file list template.N(u__name__u __module__u __qualname__u__doc__(u __locals__((u5/opt/alt/python33/lib64/python3.3/distutils/errors.pyuDistutilsTemplateErrorHsuDistutilsTemplateErrorcBs|EeZdZdZdS(uDistutilsByteCompileErroruByte compile error.N(u__name__u __module__u __qualname__u__doc__(u __locals__((u5/opt/alt/python33/lib64/python3.3/distutils/errors.pyuDistutilsByteCompileErrorKsuDistutilsByteCompileErrorcBs|EeZdZdZdS(uCCompilerErroru#Some compile/link operation failed.N(u__name__u __module__u __qualname__u__doc__(u __locals__((u5/opt/alt/python33/lib64/python3.3/distutils/errors.pyuCCompilerErrorOsuCCompilerErrorcBs|EeZdZdZdS(uPreprocessErroru.Failure to preprocess one or more C/C++ files.N(u__name__u __module__u __qualname__u__doc__(u __locals__((u5/opt/alt/python33/lib64/python3.3/distutils/errors.pyuPreprocessErrorRsuPreprocessErrorcBs|EeZdZdZdS(u CompileErroru2Failure to compile one or more C/C++ source files.N(u__name__u __module__u __qualname__u__doc__(u __locals__((u5/opt/alt/python33/lib64/python3.3/distutils/errors.pyu CompileErrorUsu CompileErrorcBs|EeZdZdZdS(uLibErroruKFailure to create a static library from one or more C/C++ object files.N(u__name__u __module__u __qualname__u__doc__(u __locals__((u5/opt/alt/python33/lib64/python3.3/distutils/errors.pyuLibErrorXsuLibErrorcBs|EeZdZdZdS(u LinkErroru]Failure to link one or more C/C++ object files into an executable or shared library file.N(u__name__u __module__u __qualname__u__doc__(u __locals__((u5/opt/alt/python33/lib64/python3.3/distutils/errors.pyu LinkError\su LinkErrorcBs|EeZdZdZdS(uUnknownFileErroru(Attempt to process an unknown file type.N(u__name__u __module__u __qualname__u__doc__(u __locals__((u5/opt/alt/python33/lib64/python3.3/distutils/errors.pyuUnknownFileError`suUnknownFileErrorN(u__doc__u ExceptionuDistutilsErroruDistutilsModuleErroruDistutilsClassErroruDistutilsGetoptErroruDistutilsArgErroruDistutilsFileErroruDistutilsOptionErroruDistutilsSetupErroruDistutilsPlatformErroruDistutilsExecErroruDistutilsInternalErroruDistutilsTemplateErroruDistutilsByteCompileErroruCCompilerErroruPreprocessErroru CompileErroruLibErroru LinkErroruUnknownFileError(((u5/opt/alt/python33/lib64/python3.3/distutils/errors.pyu s& PK!TϤii#__pycache__/dir_util.cpython-33.pyonu[ fc@sdZddlZddlZddlmZmZddlmZiadddddZ dddd d Z ddddddd d Z d dZ ddddZ ddZdS(uWdistutils.dir_util Utility functions for manipulating directories and directory trees.iN(uDistutilsFileErroruDistutilsInternalError(ulogiic Cst|ts%td|fntjj|}g}tjj|s[|dkr_|Stjtjj |r~|Stjj |\}}|g}xK|r|rtjj| rtjj |\}}|j d|qWx |D]}tjj ||}tjj |} tj| r6qn|dkrUt jd|n|sytj||Wnitk r} zI| jtjkotjj|std|| jdfnWYdd} ~ XnX|j|ndt|  "  $0umkpathcCsvt}x6|D].}|jtjj|tjj|qWx-t|D]}t||d|d|qOWdS(uCreate all the empty directories under 'base_dir' needed to put 'files' there. 'base_dir' is just the a name of a directory which doesn't necessarily exist yet; 'files' is a list of filenames to be interpreted relative to 'base_dir'. 'base_dir' + the directory portion of every file in 'files' will be created if it doesn't already exist. 'mode', 'verbose' and 'dry_run' flags are as for 'mkpath()'. uverboseudry_runN(usetuadduosupathujoinudirnameusortedumkpath(ubase_dirufilesumodeuverboseudry_rununeed_dirufileudir((u7/opt/alt/python33/lib64/python3.3/distutils/dir_util.pyu create_treePs  ,u create_treecCsddlm}| r=tjj| r=td|nytj|} WnYtjk r} z6| \} } |rg} ntd|| fWYdd} ~ XnX|st|d|ng} x1| D])}tjj ||}tjj ||}|j drqn|rtjj |rtj |}|dkr`t jd ||n|sytj||n| j|qtjj|r| jt||||||d|d |q||||||d|d || j|qW| S( uCopy an entire directory tree 'src' to a new location 'dst'. Both 'src' and 'dst' must be directory names. If 'src' is not a directory, raise DistutilsFileError. If 'dst' does not exist, it is created with 'mkpath()'. The end result of the copy is that every file in 'src' is copied to 'dst', and directories under 'src' are recursively copied to 'dst'. Return the list of files that were copied or might have been copied, using their output name. The return value is unaffected by 'update' or 'dry_run': it is simply the list of all files under 'src', with the names changed to be under 'dst'. 'preserve_mode' and 'preserve_times' are the same as for 'copy_file'; note that they only apply to regular files, not to directories. If 'preserve_symlinks' is true, symlinks will be copied as symlinks (on platforms that support them!); otherwise (the default), the destination of the symlink will be copied. 'update' and 'verbose' are the same as for 'copy_file'. i(u copy_fileu&cannot copy tree '%s': not a directoryuerror listing files in '%s': %sNuverboseu.nfsiulinking %s -> %sudry_run(udistutils.file_utilu copy_fileuosupathuisdiruDistutilsFileErrorulistdiruerrorumkpathujoinu startswithuislinkureadlinkuloguinfousymlinkuappenduextendu copy_tree(usrcudstu preserve_modeupreserve_timesupreserve_symlinksuupdateuverboseudry_runu copy_fileunamesueuerrnouerrstruoutputsunusrc_nameudst_nameu link_dest((u7/opt/alt/python33/lib64/python3.3/distutils/dir_util.pyu copy_treecsJ  &     u copy_treecCsxwtj|D]f}tjj||}tjj|r`tjj| r`t||q|jtj|fqW|jtj |fdS(uHelper for remove_tree().N( uosulistdirupathujoinuisdiruislinku_build_cmdtupleuappenduremoveurmdir(upathu cmdtuplesufureal_f((u7/opt/alt/python33/lib64/python3.3/distutils/dir_util.pyu_build_cmdtuples %u_build_cmdtuplecCs|dkrtjd|n|r)dSg}t||x|D]}yB|d|dtjj|d}|tkrt|=nWqCttfk r}ztj d||WYdd}~XqCXqCWdS(uRecursively remove an entire directory tree. Any errors are ignored (apart from being reported to stdout if 'verbose' is true). iu'removing '%s' (and everything under it)Niuerror removing %s: %s( uloguinfou_build_cmdtupleuosupathuabspathu _path_createduIOErroruOSErroruwarn(u directoryuverboseudry_runu cmdtuplesucmduabspathuexc((u7/opt/alt/python33/lib64/python3.3/distutils/dir_util.pyu remove_trees    u remove_treecCsLtjj|\}}|ddtjkrH||dd}n|S(uTake the full path 'path', and make it a relative path. This is useful to make 'path' the second argument to os.path.join(). iiN(uosupathu splitdriveusep(upathudrive((u7/opt/alt/python33/lib64/python3.3/distutils/dir_util.pyuensure_relativesuensure_relative(u__doc__uosuerrnoudistutils.errorsuDistutilsFileErroruDistutilsInternalErroru distutilsulogu _path_createdumkpathu create_treeu copy_treeu_build_cmdtupleu remove_treeuensure_relative(((u7/opt/alt/python33/lib64/python3.3/distutils/dir_util.pyus  ?E PK!u~Z!Z!$__pycache__/extension.cpython-33.pyonu[ f_(c@sMdZddlZddlZddlZGdddZddZdS(umdistutils.extension Provides the Extension class, used to describe C/C++ extension modules in setup scripts.iNcBsP|EeZdZdZddddddddddddddddZdS(u Extensionu Just a collection of attributes that describes an extension module and everything needed to build it (hopefully in a portable way, but there are hooks that let you be as unportable as you need). Instance attributes: name : string the full name of the extension, including any packages -- ie. *not* a filename or pathname, but Python dotted name sources : [string] list of source filenames, relative to the distribution root (where the setup script lives), in Unix form (slash-separated) for portability. Source files may be C, C++, SWIG (.i), platform-specific resource files, or whatever else is recognized by the "build_ext" command as source for a Python extension. include_dirs : [string] list of directories to search for C/C++ header files (in Unix form for portability) define_macros : [(name : string, value : string|None)] list of macros to define; each macro is defined using a 2-tuple, where 'value' is either the string to define it to or None to define it without a particular value (equivalent of "#define FOO" in source or -DFOO on Unix C compiler command line) undef_macros : [string] list of macros to undefine explicitly library_dirs : [string] list of directories to search for C/C++ libraries at link time libraries : [string] list of library names (not filenames or paths) to link against runtime_library_dirs : [string] list of directories to search for C/C++ libraries at run time (for shared extensions, this is when the extension is loaded) extra_objects : [string] list of extra files to link with (eg. object files not implied by 'sources', static library that must be explicitly specified, binary resource files, etc.) extra_compile_args : [string] any extra platform- and compiler-specific information to use when compiling the source files in 'sources'. For platforms and compilers where "command line" makes sense, this is typically a list of command-line arguments, but for other platforms it could be anything. extra_link_args : [string] any extra platform- and compiler-specific information to use when linking object files together to create the extension (or to create a new static Python interpreter). Similar interpretation as for 'extra_compile_args'. export_symbols : [string] list of symbols to be exported from a shared extension. Not used on all platforms, and not generally necessary for Python extensions, which typically export exactly one symbol: "init" + extension_name. swig_opts : [string] any extra options to pass to SWIG if a source file has the .i extension. depends : [string] list of files that the extension depends on language : string extension language (i.e. "c", "c++", "objc"). Will be detected from the source extensions if not provided. optional : boolean specifies that a build failure in the extension should not abort the build process, but simply not install the failing extension. cKst|tstdnt|toCtdd|DsUtdn||_||_|ppg|_|pg|_|pg|_ |pg|_ |pg|_ |pg|_ | pg|_ | pg|_| pg|_| pg|_| pg|_|pg|_||_||_t|dkrdd|D}djt|}d |}tj|ndS( Nu'name' must be a stringcss|]}t|tVqdS(N(u isinstanceustr(u.0uv((u8/opt/alt/python33/lib64/python3.3/distutils/extension.pyu ksu%Extension.__init__..u#'sources' must be a list of stringsicSsg|]}t|qS((urepr(u.0uoption((u8/opt/alt/python33/lib64/python3.3/distutils/extension.pyu s u&Extension.__init__..u, uUnknown Extension options: %s(u isinstanceustruAssertionErrorulistuallunameusourcesu include_dirsu define_macrosu undef_macrosu library_dirsu librariesuruntime_library_dirsu extra_objectsuextra_compile_argsuextra_link_argsuexport_symbolsu swig_optsudependsulanguageuoptionalulenujoinusorteduwarningsuwarn(uselfunameusourcesu include_dirsu define_macrosu undef_macrosu library_dirsu librariesuruntime_library_dirsu extra_objectsuextra_compile_argsuextra_link_argsuexport_symbolsu swig_optsudependsulanguageuoptionalukwuoptionsumsg((u8/opt/alt/python33/lib64/python3.3/distutils/extension.pyu__init__Ws4     uExtension.__init__N(u__name__u __module__u __qualname__u__doc__uNoneu__init__(u __locals__((u8/opt/alt/python33/lib64/python3.3/distutils/extension.pyu Extensions?u ExtensioncCsddlm}m}m}ddlm}ddlm}||}||ddddddd dd d}z,g}x|j} | d krPn|j | rq~n| d| d(kod knr|j d | q~n|| |} || } | d} t | g} d } xf| dd D]T}| d k r`| j |d } q5ntjj|d}|dd}|dd }|d)kr| jj |q5|dkr| jj |q5|dkrE|jd}|d*kr| jj |d fq| jj |d|||dd fq5|dkrd| jj |q5|dkr| jj |q5|dkr| jj |q5|dkr| jj |q5|dkr| jj |q5|dkr| j} q5|dkr| j} q5|d kr(| j} q5|d!krY| jj ||s| j} qq5|d+krx| jj |q5|j d'|q5W|j | q~Wd |jX|S(,u3Reads a Setup file and returns Extension instances.i(uparse_makefileuexpand_makefile_varsu _variable_rx(uTextFile(u split_quotedustrip_commentsiu skip_blanksu join_linesu lstrip_wsu rstrip_wsu*u'%s' lines not handled yetNiu.cu.ccu.cppu.cxxu.c++u.mu.mmu-Iu-Du=u-Uu-Cu-lu-Lu-Ru-rpathu-Xlinkeru -Xcompileru-uu.au.sou.slu.ou.dylibuunrecognized argument '%s'i(u.cu.ccu.cppu.cxxu.c++u.mu.mmi(u.au.sou.slu.ou.dylib(udistutils.sysconfiguparse_makefileuexpand_makefile_varsu _variable_rxudistutils.text_fileuTextFileudistutils.utilu split_quotedureadlineuNoneumatchuwarnu Extensionuappenduosupathusplitextusourcesu include_dirsufindu define_macrosu undef_macrosuextra_compile_argsu librariesu library_dirsuruntime_library_dirsuextra_link_argsu extra_objectsuclose(ufilenameuparse_makefileuexpand_makefile_varsu _variable_rxuTextFileu split_quoteduvarsufileu extensionsulineuwordsumoduleuextuappend_next_worduwordusuffixuswitchuvalueuequals((u8/opt/alt/python33/lib64/python3.3/distutils/extension.pyuread_setup_files    $                      uread_setup_file(u__doc__uosusysuwarningsu Extensionuread_setup_file(((u8/opt/alt/python33/lib64/python3.3/distutils/extension.pyus    rPK!N'^e|(|($__pycache__/text_file.cpython-33.pycnu[ f0c@sAdZddlZddlZddlZGdddZdS(utext_file provides the TextFile class, which gives an interface to text files that (optionally) takes care of stripping comments, ignoring blank lines, and joining lines with backslashes.iNcBs|EeZdZdZidd6dd6dd6dd6dd6dd 6d d 6Zddd d ZddZddZdddZ dddZ dddZ ddZ ddZ ddZdS(uTextFileu Provides a file-like object that takes care of all the things you commonly want to do when processing a text file that has some line-by-line syntax: strip comments (as long as "#" is your comment character), skip blank lines, join adjacent lines by escaping the newline (ie. backslash at end of line), strip leading and/or trailing whitespace. All of these are optional and independently controllable. Provides a 'warn()' method so you can generate warning messages that report physical line number, even if the logical line in question spans multiple physical lines. Also provides 'unreadline()' for implementing line-at-a-time lookahead. Constructor is called as: TextFile (filename=None, file=None, **options) It bombs (RuntimeError) if both 'filename' and 'file' are None; 'filename' should be a string, and 'file' a file object (or something that provides 'readline()' and 'close()' methods). It is recommended that you supply at least 'filename', so that TextFile can include it in warning messages. If 'file' is not supplied, TextFile creates its own using 'io.open()'. The options are all boolean, and affect the value returned by 'readline()': strip_comments [default: true] strip from "#" to end-of-line, as well as any whitespace leading up to the "#" -- unless it is escaped by a backslash lstrip_ws [default: false] strip leading whitespace from each line before returning it rstrip_ws [default: true] strip trailing whitespace (including line terminator!) from each line before returning it skip_blanks [default: true} skip lines that are empty *after* stripping comments and whitespace. (If both lstrip_ws and rstrip_ws are false, then some lines may consist of solely whitespace: these will *not* be skipped, even if 'skip_blanks' is true.) join_lines [default: false] if a backslash is the last non-newline character on a line after stripping comments and whitespace, join the following line to it to form one "logical line"; if N consecutive lines end with a backslash, then N+1 physical lines will be joined to form one logical line. collapse_join [default: false] strip leading whitespace from lines that are joined to their predecessor; only matters if (join_lines and not lstrip_ws) errors [default: 'strict'] error handler used to decode the file content Note that since 'rstrip_ws' can strip the trailing newline, the semantics of 'readline()' must differ from those of the builtin file object's 'readline()' method! In particular, 'readline()' returns None for end-of-file: an empty string might just be a blank line (or an all-whitespace line), if 'rstrip_ws' is true but 'skip_blanks' is not.iustrip_commentsu skip_blanksiu lstrip_wsu rstrip_wsu join_linesu collapse_joinustrictuerrorscKs|dkr'|dkr'tdnxQ|jjD]@}||kr`t||||q7t|||j|q7Wx6|jD](}||jkrtd|qqW|dkr|j|n||_||_d|_ g|_ dS(uConstruct a new TextFile object. At least one of 'filename' (a string) and 'file' (a file-like object) must be supplied. They keyword argument options are described above and affect the values returned by 'readline()'.u7you must supply either or both of 'filename' and 'file'uinvalid TextFile option '%s'iN( uNoneu RuntimeErrorudefault_optionsukeysusetattruKeyErroruopenufilenameufileu current_lineulinebuf(uselfufilenameufileuoptionsuopt((u8/opt/alt/python33/lib64/python3.3/distutils/text_file.pyu__init__Ns     uTextFile.__init__cCs7||_tj|jdd|j|_d|_dS(uyOpen a new file named 'filename'. This overrides both the 'filename' and 'file' arguments to the constructor.uruerrorsiN(ufilenameuiouopenuerrorsufileu current_line(uselfufilename((u8/opt/alt/python33/lib64/python3.3/distutils/text_file.pyuopenos !u TextFile.opencCs,|jjd|_d|_d|_dS(uiClose the current file and forget everything we know about it (filename, current line number).N(ufileucloseuNoneufilenameu current_line(uself((u8/opt/alt/python33/lib64/python3.3/distutils/text_file.pyuclosevs   uTextFile.closecCsg}|dkr|j}n|j|jdt|ttfra|jdt|n|jd||jt|dj|S(Nu, u lines %d-%d: u line %d: u( uNoneu current_lineuappendufilenameu isinstanceulistutupleustrujoin(uselfumsgulineuoutmsg((u8/opt/alt/python33/lib64/python3.3/distutils/text_file.pyu gen_error~s  uTextFile.gen_errorcCs td|j||dS(Nuerror: (u ValueErroru gen_error(uselfumsguline((u8/opt/alt/python33/lib64/python3.3/distutils/text_file.pyuerrorsuTextFile.errorcCs(tjjd|j||ddS(uPrint (to stderr) a warning message tied to the current logical line in the current file. If the current logical line in the file spans multiple physical lines, the warning refers to the whole range, eg. "lines 3-5". If 'line' supplied, it overrides the current line number; it may be a list or tuple to indicate a range of physical lines, or an integer for a single physical line.u warning: u N(usysustderruwriteu gen_error(uselfumsguline((u8/opt/alt/python33/lib64/python3.3/distutils/text_file.pyuwarnsu TextFile.warnc Cs|jr$|jd }|jd =|Sd}x|jj}|dkrQd }n|jr|r|jd}|dkr~q|dks||ddkr|ddkrdpd}|d||}|jdkrq-qq|jdd}n|jr|r|d kr*|j d|S|j rB|j }n||}t |j try|j dd|j ds$PK![6#6#!__pycache__/errors.cpython-33.pyonu[ fc@sdZGdddeZGdddeZGdddeZGdddeZGd d d eZGd d d eZGd ddeZGdddeZ GdddeZ GdddeZ GdddeZ GdddeZ GdddeZGdddeZGdddeZGdd d eZGd!d"d"eZGd#d$d$eZGd%d&d&eZd'S((udistutils.errors Provides exceptions used by the Distutils modules. Note that Distutils modules may raise standard exceptions; in particular, SystemExit is usually raised for errors that are obviously the end-user's fault (eg. bad command-line arguments). This module is safe to use in "from ... import *" mode; it only exports symbols whose names start with "Distutils" and end with "Error".cBs|EeZdZdZdS(uDistutilsErroruThe root of all Distutils evil.N(u__name__u __module__u __qualname__u__doc__(u __locals__((u5/opt/alt/python33/lib64/python3.3/distutils/errors.pyuDistutilsError suDistutilsErrorcBs|EeZdZdZdS(uDistutilsModuleErroruUnable to load an expected module, or to find an expected class within some module (in particular, command modules and classes).N(u__name__u __module__u __qualname__u__doc__(u __locals__((u5/opt/alt/python33/lib64/python3.3/distutils/errors.pyuDistutilsModuleErrorsuDistutilsModuleErrorcBs|EeZdZdZdS(uDistutilsClassErroruSome command class (or possibly distribution class, if anyone feels a need to subclass Distribution) is found not to be holding up its end of the bargain, ie. implementing some part of the "command "interface.N(u__name__u __module__u __qualname__u__doc__(u __locals__((u5/opt/alt/python33/lib64/python3.3/distutils/errors.pyuDistutilsClassErrorsuDistutilsClassErrorcBs|EeZdZdZdS(uDistutilsGetoptErroru7The option table provided to 'fancy_getopt()' is bogus.N(u__name__u __module__u __qualname__u__doc__(u __locals__((u5/opt/alt/python33/lib64/python3.3/distutils/errors.pyuDistutilsGetoptErrorsuDistutilsGetoptErrorcBs|EeZdZdZdS(uDistutilsArgErroruaRaised by fancy_getopt in response to getopt.error -- ie. an error in the command line usage.N(u__name__u __module__u __qualname__u__doc__(u __locals__((u5/opt/alt/python33/lib64/python3.3/distutils/errors.pyuDistutilsArgErrorsuDistutilsArgErrorcBs|EeZdZdZdS(uDistutilsFileErroruAny problems in the filesystem: expected file not found, etc. Typically this is for problems that we detect before IOError or OSError could be raised.N(u__name__u __module__u __qualname__u__doc__(u __locals__((u5/opt/alt/python33/lib64/python3.3/distutils/errors.pyuDistutilsFileError$suDistutilsFileErrorcBs|EeZdZdZdS(uDistutilsOptionErroruSyntactic/semantic errors in command options, such as use of mutually conflicting options, or inconsistent options, badly-spelled values, etc. No distinction is made between option values originating in the setup script, the command line, config files, or what-have-you -- but if we *know* something originated in the setup script, we'll raise DistutilsSetupError instead.N(u__name__u __module__u __qualname__u__doc__(u __locals__((u5/opt/alt/python33/lib64/python3.3/distutils/errors.pyuDistutilsOptionError*suDistutilsOptionErrorcBs|EeZdZdZdS(uDistutilsSetupErroruqFor errors that can be definitely blamed on the setup script, such as invalid keyword arguments to 'setup()'.N(u__name__u __module__u __qualname__u__doc__(u __locals__((u5/opt/alt/python33/lib64/python3.3/distutils/errors.pyuDistutilsSetupError3suDistutilsSetupErrorcBs|EeZdZdZdS(uDistutilsPlatformErroruWe don't know how to do something on the current platform (but we do know how to do it on some platform) -- eg. trying to compile C files on a platform not supported by a CCompiler subclass.N(u__name__u __module__u __qualname__u__doc__(u __locals__((u5/opt/alt/python33/lib64/python3.3/distutils/errors.pyuDistutilsPlatformError8suDistutilsPlatformErrorcBs|EeZdZdZdS(uDistutilsExecErroru`Any problems executing an external program (such as the C compiler, when compiling C files).N(u__name__u __module__u __qualname__u__doc__(u __locals__((u5/opt/alt/python33/lib64/python3.3/distutils/errors.pyuDistutilsExecError>suDistutilsExecErrorcBs|EeZdZdZdS(uDistutilsInternalErroruoInternal inconsistencies or impossibilities (obviously, this should never be seen if the code is working!).N(u__name__u __module__u __qualname__u__doc__(u __locals__((u5/opt/alt/python33/lib64/python3.3/distutils/errors.pyuDistutilsInternalErrorCsuDistutilsInternalErrorcBs|EeZdZdZdS(uDistutilsTemplateErroru%Syntax error in a file list template.N(u__name__u __module__u __qualname__u__doc__(u __locals__((u5/opt/alt/python33/lib64/python3.3/distutils/errors.pyuDistutilsTemplateErrorHsuDistutilsTemplateErrorcBs|EeZdZdZdS(uDistutilsByteCompileErroruByte compile error.N(u__name__u __module__u __qualname__u__doc__(u __locals__((u5/opt/alt/python33/lib64/python3.3/distutils/errors.pyuDistutilsByteCompileErrorKsuDistutilsByteCompileErrorcBs|EeZdZdZdS(uCCompilerErroru#Some compile/link operation failed.N(u__name__u __module__u __qualname__u__doc__(u __locals__((u5/opt/alt/python33/lib64/python3.3/distutils/errors.pyuCCompilerErrorOsuCCompilerErrorcBs|EeZdZdZdS(uPreprocessErroru.Failure to preprocess one or more C/C++ files.N(u__name__u __module__u __qualname__u__doc__(u __locals__((u5/opt/alt/python33/lib64/python3.3/distutils/errors.pyuPreprocessErrorRsuPreprocessErrorcBs|EeZdZdZdS(u CompileErroru2Failure to compile one or more C/C++ source files.N(u__name__u __module__u __qualname__u__doc__(u __locals__((u5/opt/alt/python33/lib64/python3.3/distutils/errors.pyu CompileErrorUsu CompileErrorcBs|EeZdZdZdS(uLibErroruKFailure to create a static library from one or more C/C++ object files.N(u__name__u __module__u __qualname__u__doc__(u __locals__((u5/opt/alt/python33/lib64/python3.3/distutils/errors.pyuLibErrorXsuLibErrorcBs|EeZdZdZdS(u LinkErroru]Failure to link one or more C/C++ object files into an executable or shared library file.N(u__name__u __module__u __qualname__u__doc__(u __locals__((u5/opt/alt/python33/lib64/python3.3/distutils/errors.pyu LinkError\su LinkErrorcBs|EeZdZdZdS(uUnknownFileErroru(Attempt to process an unknown file type.N(u__name__u __module__u __qualname__u__doc__(u __locals__((u5/opt/alt/python33/lib64/python3.3/distutils/errors.pyuUnknownFileError`suUnknownFileErrorN(u__doc__u ExceptionuDistutilsErroruDistutilsModuleErroruDistutilsClassErroruDistutilsGetoptErroruDistutilsArgErroruDistutilsFileErroruDistutilsOptionErroruDistutilsSetupErroruDistutilsPlatformErroruDistutilsExecErroruDistutilsInternalErroruDistutilsTemplateErroruDistutilsByteCompileErroruCCompilerErroruPreprocessErroru CompileErroruLibErroru LinkErroruUnknownFileError(((u5/opt/alt/python33/lib64/python3.3/distutils/errors.pyu s& PK!ug-&&(__pycache__/unixccompiler.cpython-33.pyonu[ fU5c@sdZddlZddlZddlZddlmZddlmZddlm Z m Z m Z ddl m Z mZmZmZddlmZejdkrddlZnGd d d e ZdS( u9distutils.unixccompiler Contains the UnixCCompiler class, a subclass of CCompiler that handles the "typical" Unix-style command-line C compiler: * macros defined with -Dname[=value] * macros undefined with -Uname * include search directories specified with -Idir * libraries specified with -lllib * library search directories specified with -Ldir * compile handled by 'cc' (or similar) executable with -c option: compiles .c to .o * link static library handled by 'ar' command (possibly with 'ranlib') * link shared library handled by 'cc -shared' iN(u sysconfig(unewer(u CCompilerugen_preprocess_optionsugen_lib_options(uDistutilsExecErroru CompileErroruLibErroru LinkError(ulogudarwinc s|EeZdZdZidd6dgd6dgd6dgd6ddgd6dgd 6d d gd 6dd 6Zejdddkrd ged s$"PK!qff__pycache__/log.cpython-33.pyonu[ ftc@sdZdZdZdZdZdZddlZGdd d ZeZej Z ej Z ej Z ej Z ej Z ejZd d Zd d ZdS(u,A simple log mechanism styled after PEP 282.iiiiiiNcBsw|EeZdZeddZddZddZddZd d Zd d Z d dZ ddZ dS(uLogcCs ||_dS(N(u threshold(uselfu threshold((u2/opt/alt/python33/lib64/python3.3/distutils/log.pyu__init__su Log.__init__cCs|tttttfkr4tdt|n||jkr|rV||}n|tttfkrwtj }n tj }|j dkr|j }|j |dj|}n|jd||jndS(Nu%s wrong log levelustrictubackslashreplaceu%s (uDEBUGuINFOuWARNuERRORuFATALu ValueErrorustru thresholdusysustderrustdoutuerrorsuencodinguencodeudecodeuwriteuflush(uselfulevelumsguargsustreamuencoding((u2/opt/alt/python33/lib64/python3.3/distutils/log.pyu_logs    uLog._logcGs|j|||dS(N(u_log(uselfulevelumsguargs((u2/opt/alt/python33/lib64/python3.3/distutils/log.pyulog%suLog.logcGs|jt||dS(N(u_loguDEBUG(uselfumsguargs((u2/opt/alt/python33/lib64/python3.3/distutils/log.pyudebug(su Log.debugcGs|jt||dS(N(u_loguINFO(uselfumsguargs((u2/opt/alt/python33/lib64/python3.3/distutils/log.pyuinfo+suLog.infocGs|jt||dS(N(u_loguWARN(uselfumsguargs((u2/opt/alt/python33/lib64/python3.3/distutils/log.pyuwarn.suLog.warncGs|jt||dS(N(u_loguERROR(uselfumsguargs((u2/opt/alt/python33/lib64/python3.3/distutils/log.pyuerror1su Log.errorcGs|jt||dS(N(u_loguFATAL(uselfumsguargs((u2/opt/alt/python33/lib64/python3.3/distutils/log.pyufatal4su Log.fatalN( u__name__u __module__u __qualname__uWARNu__init__u_logulogudebuguinfouwarnuerrorufatal(u __locals__((u2/opt/alt/python33/lib64/python3.3/distutils/log.pyuLogs      uLogcCstj}|t_|S(N(u _global_logu threshold(uleveluold((u2/opt/alt/python33/lib64/python3.3/distutils/log.pyu set_threshold?s  u set_thresholdcCsO|dkrttn2|dkr2ttn|dkrKttndS(Niii(u set_thresholduWARNuINFOuDEBUG(uv((u2/opt/alt/python33/lib64/python3.3/distutils/log.pyu set_verbosityEs      u set_verbosity(u__doc__uDEBUGuINFOuWARNuERRORuFATALusysuLogu _global_logulogudebuguinfouwarnuerrorufatalu set_thresholdu set_verbosity(((u2/opt/alt/python33/lib64/python3.3/distutils/log.pyus  )        PK!t '__pycache__/archive_util.cpython-33.pyonu[ fc@sJdZddlZddlmZddlZyddlZWnek rXdZYnXddlm Z ddl m Z ddl m Z ddlmZdddd d Zddd d Ziedgdfd6edgdfd6edgdfd6ed gdfd6egdfd6ZddZddddddZdS(!uodistutils.archive_util Utility functions for creating archive files (tarballs, zip files, that sort of thing).iN(uwarn(uDistutilsExecError(uspawn(umkpath(ulogugzipc Csidd6dd6dd6dd6}idd6dd6d d6}|dk rj||jkrjtd n|d }|dkr||j|d7}nttjj|d |d dl}t j d|s|j |d||} z| j |Wd| j Xn|dkr{tdt|||} tjdkrX||| g} n|d|g} t| d || S|S(uCreate a (possibly compressed) tar file from all the files under 'base_dir'. 'compress' must be "gzip" (the default), "compress", "bzip2", or None. Both "tar" and the compression utility named by 'compress' must be on the default program search path, so this is probably Unix-specific. The output tar file will be named 'base_dir' + ".tar", possibly plus the appropriate compression extension (".gz", ".bz2" or ".Z"). Returns the output filename. ugzugzipubz2ubzip2uucompressu.gzu.bz2u.ZuEbad value for 'compress': must be None, 'gzip', 'bzip2' or 'compress'u.tarudry_runiNuCreating tar archiveuw|%su'compress' will be deprecated.uwin32u-f(uNoneukeysu ValueErrorugetumkpathuosupathudirnameutarfileuloguinfouopenuadducloseuwarnuPendingDeprecationWarningusysuplatformuspawn( u base_nameubase_dirucompressuverboseudry_runutar_compressionu compress_extu archive_nameutarfileutarucompressed_nameucmd((u;/opt/alt/python33/lib64/python3.3/distutils/archive_util.pyu make_tarballs2 "       u make_tarballc Cs|d}ttjj|d|td kr|rAd}nd}y td|||gd|Wqtk rtd|YqXntj d|||sytj |dd tj }Wn-t k rtj |dd tj }YnXxtj|D]w\}}} xe| D]]} tjjtjj|| } tjj| r|j| | tj d | qqWqW|jn|S( uvCreate a zip file from all the files under 'base_dir'. The output zip file will be named 'base_name' + ".zip". Uses either the "zipfile" Python module (if available) or the InfoZIP "zip" utility (if installed and found on the default search path). If neither tool is available, raises DistutilsExecError. Returns the name of the output zip file. u.zipudry_runu-ru-rquzipukunable to create zip file '%s': could neither import the 'zipfile' module nor find a standalone zip utilityu#creating '%s' and adding '%s' to ituwu compressionu adding '%s'N(umkpathuosupathudirnameuzipfileuNoneuspawnuDistutilsExecErroruloguinfouZipFileu ZIP_DEFLATEDu RuntimeErroru ZIP_STOREDuwalkunormpathujoinuisfileuwriteuclose( u base_nameubase_diruverboseudry_runu zip_filenameu zipoptionsuzipudirpathudirnamesu filenamesunameupath((u;/opt/alt/python33/lib64/python3.3/distutils/archive_util.pyu make_zipfileHs:         ! u make_zipfileucompressugzip'ed tar-fileugztarubzip2ubzip2'ed tar-fileubztarucompressed tar fileuztaruuncompressed tar fileutaruZIP fileuzipcCs%x|D]}|tkr|SqWdS(uqReturns the first format from the 'format' list that is unknown. If all formats are known, returns None N(uARCHIVE_FORMATSuNone(uformatsuformat((u;/opt/alt/python33/lib64/python3.3/distutils/archive_util.pyucheck_archive_formatss  ucheck_archive_formatsc Cs$tj}|dk rStjd|tjj|}|sStj|qSn|dkrktj}ni|d6}yt |}Wn"t k rt d|YnX|d} x"|dD]\} } | || s,    34 PK!t+f+ + #__pycache__/dep_util.cpython-33.pyonu[ f c@sMdZddlZddlmZddZddZdd d ZdS( udistutils.dep_util Utility functions for simple, timestamp-based dependency of files and groups of files; also, function based entirely on such timestamp dependency analysis.iN(uDistutilsFileErrorcCstjj|s1tdtjj|ntjj|sGdSddlm}tj||}tj||}||kS(uReturn true if 'source' exists and is more recently modified than 'target', or if 'source' exists and 'target' doesn't. Return false if both exist and 'target' is the same age or younger than 'source'. Raise DistutilsFileError if 'source' does not exist. ufile '%s' does not existii(uST_MTIME(uosupathuexistsuDistutilsFileErroruabspathustatuST_MTIME(usourceutargetuST_MTIMEumtime1umtime2((u7/opt/alt/python33/lib64/python3.3/distutils/dep_util.pyunewer sunewercCst|t|kr'tdng}g}xVtt|D]B}t||||rF|j|||j||qFqFW||fS(uWalk two filename lists in parallel, testing if each source is newer than its corresponding target. Return a pair of lists (sources, targets) where source is newer than target, according to the semantics of 'newer()'. u+'sources' and 'targets' must be same length(ulenu ValueErrorurangeuneweruappend(usourcesutargetsu n_sourcesu n_targetsui((u7/opt/alt/python33/lib64/python3.3/distutils/dep_util.pyunewer_pairwise sunewer_pairwiseuerrorcCstjj|sdSddlm}tj||}x{|D]o}tjj|s|dkrgq|dkryq@q|dkrdSntj||}||kr@dSq@WdSdS(uReturn true if 'target' is out-of-date with respect to any file listed in 'sources'. In other words, if 'target' exists and is newer than every file in 'sources', return false; otherwise return true. 'missing' controls what we do when a source file is missing; the default ("error") is to blow up with an OSError from inside 'stat()'; if it is "ignore", we silently drop any missing source files; if it is "newer", any missing source files make us assume that 'target' is out-of-date (this is handy in "dry-run" mode: it'll make you pretend to carry out commands that wouldn't work because inputs are missing, but that doesn't matter because you're not actually going to run the commands). ii(uST_MTIMEuerroruignoreunewerN(uosupathuexistsustatuST_MTIME(usourcesutargetumissinguST_MTIMEu target_mtimeusourceu source_mtime((u7/opt/alt/python33/lib64/python3.3/distutils/dep_util.pyu newer_group6s      u newer_group(u__doc__uosudistutils.errorsuDistutilsFileErrorunewerunewer_pairwiseu newer_group(((u7/opt/alt/python33/lib64/python3.3/distutils/dep_util.pyus    PK!S@0@00command/__pycache__/bdist_wininst.cpython-33.pycnu[ f0:c@sdZddlZddlZddlmZddlmZddlmZm Z ddl Tddl m Z ddl mZGd d d eZdS( uzdistutils.command.bdist_wininst Implements the Distutils 'bdist_wininst' command: create a windows installer exe-program.iN(uCommand(u get_platform(u create_treeu remove_tree(u*(uget_python_version(ulogcBs|EeZdZdZd4dddefddd d fd d3d d fd5d6d7d8d9d:d;d<d=g ZddddgZd%d&Zd'd(Z d)d*Z d+d,Z d3d-d.Z d/d0Z d1d2Zd3S(>u bdist_wininstu-create an executable installer for MS Windowsu bdist-dir=u1temporary directory for creating the distributionu plat-name=upu;platform name to embed in generated filenames (default: %s)u keep-tempuku/keep the pseudo-installation tree around after u!creating the distribution archiveutarget-version=u!require a specific python versionu on the target systemuno-target-compileucu/do not compile .py to .pyc on the target systemuno-target-optimizeuou:do not compile .py to .pyo (optimized)on the target systemu dist-dir=udu-directory to put final built distributions inubitmap=ubu>bitmap to use for the installer instead of python-powered logoutitle=utu?title to display on the installer background instead of defaultu skip-buildu2skip rebuilding everything (for testing/debugging)uinstall-script=uTbasename of installation script to be run afterinstallation or before deinstallationupre-install-script=u{Fully qualified filename of a script to be run before any files are installed. This script need not be in the distributionuuser-access-control=uspecify Vista's UAC handling - 'none'/default=no handling, 'auto'=use UAC if target Python installed for all users, 'force'=always use UACcCsyd|_d|_d|_d|_d|_d|_d|_d|_d|_ d|_ d|_ d|_ d|_ dS(Ni(uNoneu bdist_diru plat_nameu keep_tempuno_target_compileuno_target_optimizeutarget_versionudist_dirubitmaputitleu skip_builduinstall_scriptupre_install_scriptuuser_access_control(uself((uD/opt/alt/python33/lib64/python3.3/distutils/command/bdist_wininst.pyuinitialize_options:s            u bdist_wininst.initialize_optionscCs\|jdd |jdkr|jrR|jrR|jjd}|j|_n|jdj}t j j |d|_n|j sd|_ n|j r|jj rt}|j r|j |krtd|fn||_ n|jdd d |jrXxI|jjD]%}|jt j j|krPqqWtd|jndS( Nubdistu skip_builduwininstuuMtarget version can only be %s, or the '--skip-build' option must be specifiedudist_diru plat_nameu(install_script '%s' not found in scripts(u skip_buildu skip_build(udist_dirudist_dir(u plat_nameu plat_name(uset_undefined_optionsu bdist_diruNoneu skip_buildu plat_nameu distributionuget_command_objuget_finalized_commandu bdist_baseuosupathujoinutarget_versionuhas_ext_modulesuget_python_versionuDistutilsOptionErroruinstall_scriptuscriptsubasename(uselfubdistu bdist_baseu short_versionuscript((uD/opt/alt/python33/lib64/python3.3/distutils/command/bdist_wininst.pyufinalize_optionsJs4      ubdist_wininst.finalize_optionsc Cstjdkr<|jjs-|jjr<tdn|jsU|jdn|jddd}|j |_ |j|_d|_ |j |_ |jd}d|_ d|_|jjrE|j}|s|jstd tjdd }nd |j |f}|jd}tjj|jd ||_nxGdD]?}|j}|dkrw|d}nt|d||qLWtjd|j |jtjjdtjj|j d|jtjd=ddlm }|} |jj!} |j"| dd|j } |j#| | |j$|jjrYt%} nd} |jj&j'd| |j(| ftj)d| tj*| |j+st,|j d|j-ndS(Nuwin32u^distribution contains extensions and/or C libraries; must be compiled on a Windows 32 platformubuilduinstallureinit_subcommandsiiu install_libu Should have already checked thisiu.%s-%sulibupurelibuplatlibuheadersuscriptsudatau/Include/$dist_nameuinstall_uinstalling to %suPURELIB(umktempuzipuroot_diruanyu bdist_wininsturemoving temporary file '%s'udry_run(upurelibuplatlibuheadersuscriptsudata(.usysuplatformu distributionuhas_ext_modulesuhas_c_librariesuDistutilsPlatformErroru skip_buildu run_commandureinitialize_commandu bdist_dirurootuwarn_diru plat_nameucompileuoptimizeutarget_versionuAssertionErroruversionuget_finalized_commanduosupathujoinu build_baseu build_libuupperusetattruloguinfouensure_finalizeduinserturunutempfileumktempu get_fullnameu make_archiveu create_exeubitmapuget_python_versionu dist_filesuappenduget_installer_filenameudebuguremoveu keep_tempu remove_treeudry_run( uselfuinstallu install_libutarget_versionuplat_specifierubuildukeyuvalueumktempuarchive_basenameufullnameuarcnameu pyversion((uD/opt/alt/python33/lib64/python3.3/distutils/command/bdist_wininst.pyurunpsf               %       ubdist_wininst.runc Csg}|jj}|jd|jp+dd}dd}x~dddd d d d d gD]^}t||d}|r]|d|j||f}|jd|||fq]q]W|jd|jr|jd|jn|jd|||jd|j |jd|j |j rM|jd|j n|j rm|jd|j n|j p|jj }|jd||ddl }ddl} d|j|j | jf} |jd| dj|S(Nu [metadata]uu cSs|jddS(Nu u\n(ureplace(us((uD/opt/alt/python33/lib64/python3.3/distutils/command/bdist_wininst.pyuescapesu)bdist_wininst.get_inidata..escapeuauthoru author_emailu descriptionu maintainerumaintainer_emailunameuurluversionu %s: %su%s=%su [Setup]uinstall_script=%suinfo=%sutarget_compile=%dutarget_optimize=%dutarget_version=%suuser_access_control=%sutitle=%siuBuilt %s with distutils-%su build_info=%s(u distributionumetadatauappendulong_descriptionugetattru capitalizeuinstall_scriptuno_target_compileuno_target_optimizeutarget_versionuuser_access_controlutitleu get_fullnameutimeu distutilsuctimeu __version__ujoin( uselfulinesumetadatauinfouescapeunameudatautitleutimeu distutilsu build_info((uD/opt/alt/python33/lib64/python3.3/distutils/command/bdist_wininst.pyu get_inidatas<   $      ubdist_wininst.get_inidatac Csddl}|j|j|j}|j|}|jd||rrt|dj}t|}nd}t|d} | j |j |r| j |nt |t r|j d}n|d}|jr+t|jddd } | jj d } WdQX|| d }n |d}| j ||jd d t||} | j | | j t|djdS( Niu creating %surbuwbumbcssuruencodingulatin-1s ubitmap to use for the installer instead of python-powered logo(utitle=utu?title to display on the installer background instead of default(u skip-buildNu2skip rebuilding everything (for testing/debugging)(uinstall-script=NuTbasename of installation script to be run afterinstallation or before deinstallation(upre-install-script=Nu{Fully qualified filename of a script to be run before any files are installed. This script need not be in the distribution(uuser-access-control=Nuspecify Vista's UAC handling - 'none'/default=no handling, 'auto'=use UAC if target Python installed for all users, 'force'=always use UAC(u__name__u __module__u __qualname__u descriptionuNoneu get_platformu user_optionsuboolean_optionsuinitialize_optionsufinalize_optionsurunu get_inidatau create_exeuget_installer_filenameu get_exe_bytes(u __locals__((uD/opt/alt/python33/lib64/python3.3/distutils/command/bdist_wininst.pyu bdist_wininstsN      & Q .5 u bdist_wininst(u__doc__usysuosudistutils.coreuCommandudistutils.utilu get_platformudistutils.dir_utilu create_treeu remove_treeudistutils.errorsudistutils.sysconfiguget_python_versionu distutilsulogu bdist_wininst(((uD/opt/alt/python33/lib64/python3.3/distutils/command/bdist_wininst.pyus PK!e13command/__pycache__/install_egg_info.cpython-33.pyonu[ f" c@sdZddlmZddlmZmZddlZddlZddlZGdddeZ ddZ d d Z d d Z dS( udistutils.command.install_egg_info Implements the Distutils 'install_egg_info' command, for installing a package's PKG-INFO metadata.i(uCommand(ulogudir_utilNcBsY|EeZdZdZdZdgZddZdd Zd d Zd d Z dS(uinstall_egg_infou)Install an .egg-info file for the packageu8Install package's PKG-INFO metadata as an .egg-info fileu install-dir=ududirectory to install tocCs d|_dS(N(uNoneu install_dir(uself((uG/opt/alt/python33/lib64/python3.3/distutils/command/install_egg_info.pyuinitialize_optionssu#install_egg_info.initialize_optionscCs|jdddtt|jjtt|jjtjddf}t j j |j ||_ |j g|_dS(Nu install_libu install_diru%s-%s-py%s.egg-infoi(u install_diru install_dir(uset_undefined_optionsu to_filenameu safe_nameu distributionuget_nameu safe_versionu get_versionusysuversionuosupathujoinu install_dirutargetuoutputs(uselfubasename((uG/opt/alt/python33/lib64/python3.3/distutils/command/install_egg_info.pyufinalize_optionssu!install_egg_info.finalize_optionsc Cs|j}tjj|rGtjj| rGtj|d|jnptjj|r||j tj |jfd|n;tjj|j s|j tj |j fd|j nt jd||jst|ddd}|jjj|WdQXndS(Nudry_runu Removing u Creating u Writing %suwuencodinguUTF-8(utargetuosupathuisdiruislinkudir_utilu remove_treeudry_runuexistsuexecuteuunlinku install_dirumakedirsuloguinfouopenu distributionumetadatauwrite_pkg_file(uselfutargetuf((uG/opt/alt/python33/lib64/python3.3/distutils/command/install_egg_info.pyurun s %# uinstall_egg_info.runcCs|jS(N(uoutputs(uself((uG/opt/alt/python33/lib64/python3.3/distutils/command/install_egg_info.pyu get_outputs.suinstall_egg_info.get_outputsN(u install-dir=ududirectory to install to( u__name__u __module__u __qualname__u__doc__u descriptionu user_optionsuinitialize_optionsufinalize_optionsurunu get_outputs(u __locals__((uG/opt/alt/python33/lib64/python3.3/distutils/command/install_egg_info.pyuinstall_egg_info s   uinstall_egg_infocCstjdd|S(uConvert an arbitrary string to a standard distribution name Any runs of non-alphanumeric/. characters are replaced with a single '-'. u[^A-Za-z0-9.]+u-(ureusub(uname((uG/opt/alt/python33/lib64/python3.3/distutils/command/install_egg_info.pyu safe_name6su safe_namecCs%|jdd}tjdd|S(uConvert an arbitrary string to a standard version string Spaces become dots, and all other non-alphanumeric characters become dashes, with runs of multiple dashes condensed to a single dash. u u.u[^A-Za-z0-9.]+u-(ureplaceureusub(uversion((uG/opt/alt/python33/lib64/python3.3/distutils/command/install_egg_info.pyu safe_version>su safe_versioncCs|jddS(u|Convert a project or version name to its filename-escaped form Any '-' characters are currently replaced with '_'. u-u_(ureplace(uname((uG/opt/alt/python33/lib64/python3.3/distutils/command/install_egg_info.pyu to_filenameHsu to_filename( u__doc__u distutils.cmduCommandu distutilsulogudir_utiluosusysureuinstall_egg_infou safe_nameu safe_versionu to_filename(((uG/opt/alt/python33/lib64/python3.3/distutils/command/install_egg_info.pyus$+  PK!L4)command/__pycache__/upload.cpython-33.pyonu[ fc@sdZddlTddlmZddlmZddlmZddlZddl Z ddl Z ddl Z ddl Z ddl mZddlmZmZmZdd lmZejd krdd lmZndd lmZGd d d eZdS(u`distutils.command.upload Implements the Distutils 'upload' subcommand (upload package to PyPI).i(u*(u PyPIRCCommand(uspawn(ulogN(ustandard_b64encode(uurlopenuRequestu HTTPError(uurlparseu2.5(umd5cBsm|EeZdZdZejddgZejdgZdd Zd d Zd d Z ddZ dS(uuploaduupload binary package to PyPIusignususign files to upload using gpgu identity=uiuGPG identity used to sign filescCs>tj|d|_d|_d|_d|_d|_dS(NuiF( u PyPIRCCommanduinitialize_optionsuusernameupasswordu show_responseuFalseusignuNoneuidentity(uself((u=/opt/alt/python33/lib64/python3.3/distutils/command/upload.pyuinitialize_options#s      uupload.initialize_optionscCstj||jr/|j r/tdn|j}|ikr~|d|_|d|_|d|_|d|_ n|j r|j jr|j j|_ndS(Nu.Must use --sign for --identity to have meaninguusernameupasswordu repositoryurealm( u PyPIRCCommandufinalize_optionsuidentityusignuDistutilsOptionErroru _read_pypircuusernameupasswordu repositoryurealmu distribution(uselfuconfig((u=/opt/alt/python33/lib64/python3.3/distutils/command/upload.pyufinalize_options+s       uupload.finalize_optionscCsR|jjstdnx0|jjD]"\}}}|j|||q(WdS(Nu'No dist file created in earlier command(u distributionu dist_filesuDistutilsOptionErroru upload_file(uselfucommandu pyversionufilename((u=/opt/alt/python33/lib64/python3.3/distutils/command/upload.pyurun=s u upload.runc$Cst|j\}}}}}} |s3|s3| rItd|jn|dIkrhtd|n|jrddd|g} |jrd|jg| d d 6t,t2|d?6|d@6}t3|jdA|dB|}y%t4|}|j5}|j6} Wn{t7j8k r(}!z"|j/t,|!t0j9dSWYdd}!~!Xn7t:k r^}!z|!j;}|!j6} WYdd}!~!XnX|dCkr|j/dD|| ft0j1n|j/dE|| ft0j9|j<r|j=|}"dFj>dGdH|"dGdHf}#|j/|#t0j1ndS(KNuIncompatible url %suhttpuhttpsuunsupported schema ugpgu --detach-signu-au --local-useriudry_runurbu file_uploadu:actionu1uprotcol_versionunameuversionucontentufiletypeu pyversionu md5_digestu1.0umetadata_versionusummaryu home_pageuauthoru author_emailulicenseu descriptionukeywordsuplatformu classifiersu download_urluprovidesurequiresu obsoletesuu bdist_rpmubuilt for %s %su bdist_dumbu built for %suterseiucommentu.ascu gpg_signatureu:uasciiuBasic u3--------------GHSKFJDLGDS7543FJKLFHRE75642756743254s --s--u* Content-Disposition: form-data; name="%s"u; filename="%s"iuutf-8s s s uSubmitting %s to %su multipart/form-data; boundary=%su Content-typeuContent-lengthu AuthorizationudatauheadersiuServer response (%s): %suUpload failed (%s): %su u-iK(uhttpuhttpsi(?uurlparseu repositoryuAssertionErrorusignuidentityuspawnudry_runuopenureaducloseu distributionumetadatauget_nameu get_versionuosupathubasenameumd5u hexdigestuget_descriptionuget_urlu get_contactuget_contact_emailu get_licenceuget_long_descriptionu get_keywordsu get_platformsuget_classifiersuget_download_urlu get_providesu get_requiresu get_obsoletesuplatformudistuusernameupassworduencodeustandard_b64encodeudecodeuiouBytesIOuitemsutypeutupleustruwriteugetvalueuannounceuloguINFOulenuRequestuurlopenugetcodeumsgusocketuerroruERRORu HTTPErrorucodeu show_responseu_read_pypi_responseujoin($uselfucommandu pyversionufilenameuschemaunetlocuurluparamsuqueryu fragmentsugpg_argsufucontentumetaudataucommentudistuversionuidu user_passuauthuboundaryu sep_boundaryu end_boundaryubodyukeyuvalueutitleuheadersurequesturesultustatusureasonueutextumsg((u=/opt/alt/python33/lib64/python3.3/distutils/command/upload.pyu upload_fileCs!                         #                         uupload.upload_fileN(usignususign files to upload using gpg(u identity=uiuGPG identity used to sign files( u__name__u __module__u __qualname__u descriptionu PyPIRCCommandu user_optionsuboolean_optionsuinitialize_optionsufinalize_optionsurunu upload_file(u __locals__((u=/opt/alt/python33/lib64/python3.3/distutils/command/upload.pyuuploads    uupload(u__doc__udistutils.errorsudistutils.coreu PyPIRCCommandudistutils.spawnuspawnu distutilsulogusysuosuiousocketuplatformubase64ustandard_b64encodeuurllib.requestuurlopenuRequestu HTTPErroru urllib.parseuurlparseuversionumd5uhashlibuupload(((u=/opt/alt/python33/lib64/python3.3/distutils/command/upload.pyus    PK!4U(command/__pycache__/check.cpython-33.pyonu[ flc @sdZddlmZddlmZypddlmZddlmZddl m Z ddl m Z ddl m Z Gd d d eZdZWnek rdZYnXGd d d eZd S(uCdistutils.command.check Implements the Distutils 'check' command. i(uCommand(uDistutilsSetupError(uReporter(uParser(ufrontend(unodes(uStringIOcBs8|EeZdZddddddZddZdS( uSilentReporteriuasciiureplacec Cs/g|_tj||||||||dS(N(umessagesuReporteru__init__(uselfusourceu report_levelu halt_levelustreamudebuguencodingu error_handler((u</opt/alt/python33/lib64/python3.3/distutils/command/check.pyu__init__s uSilentReporter.__init__cOsB|jj||||ftj|d|d|j|||S(Nulevelutype(umessagesuappendunodesusystem_messageulevels(uselfulevelumessageuchildrenukwargs((u</opt/alt/python33/lib64/python3.3/distutils/command/check.pyusystem_messages uSilentReporter.system_messageN(u__name__u __module__u __qualname__uNoneu__init__usystem_message(u __locals__((u</opt/alt/python33/lib64/python3.3/distutils/command/check.pyuSilentReportersuSilentReportercBs|EeZdZdZdZdddgZddd gZd d ZddZddZ ddZ ddZ ddZ ddZ dS(uchecku6This command checks the meta-data of the package. u"perform some checks on the packageumetadataumuVerify meta-dataurestructuredtexturuEChecks if long string meta-data syntax are reStructuredText-compliantustrictusu(Will exit with an error if a check failscCs(d|_d|_d|_d|_dS(u Sets default values for options.iiN(urestructuredtextumetadataustrictu _warnings(uself((u</opt/alt/python33/lib64/python3.3/distutils/command/check.pyuinitialize_options1s   ucheck.initialize_optionscCsdS(N((uself((u</opt/alt/python33/lib64/python3.3/distutils/command/check.pyufinalize_options8sucheck.finalize_optionscCs|jd7_tj||S(u*Counts the number of warnings that occurs.i(u _warningsuCommanduwarn(uselfumsg((u</opt/alt/python33/lib64/python3.3/distutils/command/check.pyuwarn;su check.warncCsx|jr|jn|jrMtr2|jqM|jrMtdqMn|jrt|jdkrttdndS(uRuns the command.uThe docutils package is needed.iuPlease correct your package.N(umetadataucheck_metadataurestructuredtextu HAS_DOCUTILSucheck_restructuredtextustrictuDistutilsSetupErroru _warnings(uself((u</opt/alt/python33/lib64/python3.3/distutils/command/check.pyurun@s     u check.runcCs|jj}g}x<dD]4}t||o:t||s|j|qqW|rt|jddj|n|jr|js|jddqn>|j r|j s|jdd qn|jd d d d S(uEnsures that all required elements of meta-data are supplied. name, version, URL, (author and author_email) or (maintainer and maintainer_email)). Warns if any are missing. unameuversionuurlumissing required meta-data: %su, u)missing meta-data: if 'author' supplied, u#'author_email' must be supplied toou-missing meta-data: if 'maintainer' supplied, u''maintainer_email' must be supplied toou4missing meta-data: either (author and author_email) u%or (maintainer and maintainer_email) umust be suppliedN(unameuversionuurl( u distributionumetadatauhasattrugetattruappenduwarnujoinuauthoru author_emailu maintainerumaintainer_email(uselfumetadataumissinguattr((u</opt/alt/python33/lib64/python3.3/distutils/command/check.pyucheck_metadataPs$        ucheck.check_metadatacCsz|jj}xd|j|D]S}|djd}|dkrQ|d}nd|d|f}|j|qWdS(u4Checks if the long string fields are reST-compliant.iulineu %s (line %s)Ni(u distributionuget_long_descriptionu_check_rst_dataugetuNoneuwarn(uselfudatauwarninguline((u</opt/alt/python33/lib64/python3.3/distutils/command/check.pyucheck_restructuredtextns  ucheck.check_restructuredtextc Cst}t}tjj}d|_d |_d |_t ||j |j d|j d|j d|jd|j}tj||d|}|j|d y|j||Wn.tk r|jjd dd ifYnX|jS( u8Returns warnings when the provided data doesn't compile.iustreamudebuguencodingu error_handlerusourceiuCould not finish the parsing.uNii(uStringIOuParserufrontendu OptionParseruget_default_valuesu tab_widthuNoneupep_referencesurfc_referencesuSilentReporteru report_levelu halt_leveluwarning_streamudebuguerror_encodinguerror_encoding_error_handlerunodesudocumentu note_sourceuparseuAttributeErrorumessagesuappend(uselfudatau source_pathuparserusettingsureporterudocument((u</opt/alt/python33/lib64/python3.3/distutils/command/check.pyu_check_rst_datays*           ucheck._check_rst_dataN(umetadataumuVerify meta-data(urestructuredtexturuEChecks if long string meta-data syntax are reStructuredText-compliant(ustrictusu(Will exit with an error if a check fails(u__name__u __module__u __qualname__u__doc__u descriptionu user_optionsuboolean_optionsuinitialize_optionsufinalize_optionsuwarnurunucheck_metadataucheck_restructuredtextu_check_rst_data(u __locals__((u</opt/alt/python33/lib64/python3.3/distutils/command/check.pyucheck$s       ucheckNTF(u__doc__udistutils.coreuCommandudistutils.errorsuDistutilsSetupErrorudocutils.utilsuReporterudocutils.parsers.rstuParserudocutilsufrontendunodesuiouStringIOuSilentReporteruTrueu HAS_DOCUTILSu ExceptionuFalseucheck(((u</opt/alt/python33/lib64/python3.3/distutils/command/check.pyus   PK!d/command/__pycache__/install_data.cpython-33.pyonu[ f c@sRdZddlZddlmZddlmZmZGdddeZdS(udistutils.command.install_data Implements the Distutils 'install_data' command, for installing platform-independent data files.iN(uCommand(u change_rootu convert_pathcBsn|EeZdZdZdddgZdgZd d Zd d ZddZ ddZ ddZ dS(u install_datauinstall data filesu install-dir=uduIbase directory for installing data files (default: installation base dir)uroot=u<install everything relative to this alternate root directoryuforceufu-force installation (overwrite existing files)cCs@d|_g|_d|_d|_|jj|_d|_dS(Nii(uNoneu install_diruoutfilesurootuforceu distributionu data_filesuwarn_dir(uself((uC/opt/alt/python33/lib64/python3.3/distutils/command/install_data.pyuinitialize_optionss     uinstall_data.initialize_optionscCs|jdddddS( Nuinstallu install_datau install_dirurootuforce(u install_datau install_dir(urooturoot(uforceuforce(uset_undefined_options(uself((uC/opt/alt/python33/lib64/python3.3/distutils/command/install_data.pyufinalize_options#s uinstall_data.finalize_optionscCsk|j|jxT|jD]I}t|trt|}|jra|jd||jfn|j||j\}}|j j |qt|d}t j j |st j j|j|}n|jrt|j|}n|j||dgkr|j j |qxF|dD]:}t|}|j||\}}|j j |q%WqWdS(NuMsetup script did not provide a directory for '%s' -- installing right in '%s'ii(umkpathu install_diru data_filesu isinstanceustru convert_pathuwarn_diruwarnu copy_fileuoutfilesuappenduosupathuisabsujoinurootu change_root(uselfufuoutu_udirudata((uC/opt/alt/python33/lib64/python3.3/distutils/command/install_data.pyurun*s*      uinstall_data.runcCs |jp gS(N(u data_files(uself((uC/opt/alt/python33/lib64/python3.3/distutils/command/install_data.pyu get_inputsKsuinstall_data.get_inputscCs|jS(N(uoutfiles(uself((uC/opt/alt/python33/lib64/python3.3/distutils/command/install_data.pyu get_outputsNsuinstall_data.get_outputsN(u install-dir=uduIbase directory for installing data files (default: installation base dir)(uroot=Nu<install everything relative to this alternate root directory(uforceufu-force installation (overwrite existing files)( u__name__u __module__u __qualname__u descriptionuNoneu user_optionsuboolean_optionsuinitialize_optionsufinalize_optionsurunu get_inputsu get_outputs(u __locals__((uC/opt/alt/python33/lib64/python3.3/distutils/command/install_data.pyu install_data s     ! u install_data(u__doc__uosudistutils.coreuCommandudistutils.utilu change_rootu convert_pathu install_data(((uC/opt/alt/python33/lib64/python3.3/distutils/command/install_data.pyus PK! OO,command/__pycache__/bdist_rpm.cpython-33.pyonu[ fTc@sdZddlZddlZddlZddlmZddlmZddlm Z ddl m Z ddl Tddl mZdd lmZGd d d eZdS( uwdistutils.command.bdist_rpm Implements the Distutils 'bdist_rpm' command (create RPM source and binary distributions).iN(uCommand(uDEBUG(u get_platform(u write_file(u*(uget_python_version(ulogc+Bs|EeZdZdZdfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|d}d~ddddddddddddddddg)Zd3d8d<d1dTgZid3d66d8d:6d<d>6ZdWdXZdYdZZ d[d\Z d]d^Z d_d`Z dadbZ dcddZdeS(u bdist_rpmucreate an RPM distributionu bdist-base=u/base directory for creating built distributionsu rpm-base=udbase directory for creating RPMs (defaults to "rpm" under --bdist-base; must be specified for RPM 2)u dist-dir=uduDdirectory to put final RPM files in (and .spec files if --spec-only)upython=uMpath to Python interpreter to hard-code in the .spec file (default: "python")u fix-pythonuLhard-code the exact path to the current Python interpreter in the .spec fileu spec-onlyuonly regenerate spec fileu source-onlyuonly generate source RPMu binary-onlyuonly generate binary RPMu use-bzip2u7use bzip2 instead of gzip to create source distributionudistribution-name=ugname of the (Linux) distribution to which this RPM applies (*not* the name of the module distribution!)ugroup=u9package classification [default: "Development/Libraries"]urelease=uRPM release numberuserial=uRPM serial numberuvendor=uaRPM "vendor" (eg. "Joe Blow ") [default: maintainer or author from setup script]u packager=uARPM packager (eg. "Jane Doe ")[default: vendor]u doc-files=u6list of documentation files (space or comma-separated)u changelog=u RPM changeloguicon=uname of icon fileu provides=u%capabilities provided by this packageu requires=u%capabilities required by this packageu conflicts=u-capabilities which conflict with this packageubuild-requires=u+capabilities required to build this packageu obsoletes=u*capabilities made obsolete by this packageu no-autorequ+do not automatically calculate dependenciesu keep-tempuku"don't clean up RPM build directoryu no-keep-tempu&clean up RPM build directory [default]uuse-rpm-opt-flagsu8compile with RPM_OPT_FLAGS when building from source RPMuno-rpm-opt-flagsu&do not pass any RPM CFLAGS to compileru rpm3-modeu"RPM 3 compatibility mode (default)u rpm2-modeuRPM 2 compatibility modeu prep-script=u3Specify a script for the PREP phase of RPM buildingu build-script=u4Specify a script for the BUILD phase of RPM buildingu pre-install=u:Specify a script for the pre-INSTALL phase of RPM buildinguinstall-script=u6Specify a script for the INSTALL phase of RPM buildingu post-install=u;Specify a script for the post-INSTALL phase of RPM buildingupre-uninstall=u<Specify a script for the pre-UNINSTALL phase of RPM buildingupost-uninstall=u=Specify a script for the post-UNINSTALL phase of RPM buildingu clean-script=u4Specify a script for the CLEAN phase of RPM buildinguverify-script=u6Specify a script for the VERIFY phase of the RPM buildu force-arch=u0Force an architecture onto the RPM build processuquietuqu3Run the INSTALL phase of RPM building in quiet modecCscd|_d|_d|_d|_d|_d|_d|_d|_d|_ d|_ d|_ d|_ d|_ d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_ d|_!d|_"d|_#d|_$d|_%d|_&d|_'dS(Nii((uNoneu bdist_baseurpm_baseudist_dirupythonu fix_pythonu spec_onlyu binary_onlyu source_onlyu use_bzip2udistribution_nameugroupureleaseuserialuvendorupackageru doc_filesu changeloguiconu prep_scriptu build_scriptuinstall_scriptu clean_scriptu verify_scriptu pre_installu post_installu pre_uninstallupost_uninstalluprepuprovidesurequiresu conflictsubuild_requiresu obsoletesu keep_tempuuse_rpm_opt_flagsu rpm3_modeu no_autorequ force_archuquiet(uself((u@/opt/alt/python33/lib64/python3.3/distutils/command/bdist_rpm.pyuinitialize_optionssN                                      ubdist_rpm.initialize_optionscCs|jdd |jdkrU|js7tdntjj|jd|_n|j dkr|j r|t j |_ qd|_ n|j rtdntj dkrtdtj n|jr|jrtd n|jjsd |_n|jdd |jdS(Nubdistu bdist_baseu)you must specify --rpm-base in RPM 2 modeurpmupython3u8--python and --fix-python are mutually exclusive optionsuposixu9don't know how to create RPM distributions on platform %su6cannot supply both '--source-only' and '--binary-only'iudist_dir(u bdist_baseu bdist_base(udist_dirudist_dir(uset_undefined_optionsurpm_baseuNoneu rpm3_modeuDistutilsOptionErroruosupathujoinu bdist_baseupythonu fix_pythonusysu executableunameuDistutilsPlatformErroru binary_onlyu source_onlyu distributionuhas_ext_modulesuuse_rpm_opt_flagsufinalize_package_data(uself((u@/opt/alt/python33/lib64/python3.3/distutils/command/bdist_rpm.pyufinalize_optionss.        ubdist_rpm.finalize_optionscCs|jdd|jdd|jj|jjf|jd|jdt|jtrxEdD]:}tj j |ro||jkro|jj |qoqoWn|jd d |jd |jd |jd |j |j |_ |jd|jd|jd|jd|jd|jd|jd|jd|jd|jd|jd|jd|jd|jd|jd|jddS(NugroupuDevelopment/Librariesuvendoru%s <%s>upackageru doc_filesuREADMEu README.txtureleaseu1userialudistribution_nameu changeloguiconu prep_scriptu build_scriptuinstall_scriptu clean_scriptu verify_scriptu pre_installu post_installu pre_uninstallupost_uninstalluprovidesurequiresu conflictsubuild_requiresu obsoletesu force_arch(uREADMEu README.txt(u ensure_stringu distributionu get_contactuget_contact_emailuensure_string_listu isinstanceu doc_filesulistuosupathuexistsuappendu_format_changelogu changeloguensure_filename(uselfureadme((u@/opt/alt/python33/lib64/python3.3/distutils/command/bdist_rpm.pyufinalize_package_datas>    !                  ubdist_rpm.finalize_package_datacCs$trStdtd|jtd|jtd|jtd|jn|jru|j}|j|nNi}x;d(D]3}t j j |j |||<|j||qW|d}t j j |d |j j}|jt||jfd ||jrdS|j jdd}|jd }|jrRdg|_n dg|_|jd ||j _|jd}|d}|j|||jrt j j|jr|j|j|qtd|jntjddg} t j jds%t j jdr1dg} n|jrJ| jdn&|j rc| jdn | jd| j!dd|j"g|j#r| j!ddt j j$|j gn|j%s| jdn|j&r| jdn| j|d} | d } d!| d"} d#| | |f} t j'| }zg}d}xU|j)}|scPn|j*j+}|j|d$|dkrM|d}qMqM|j,}|rt-d%t.| nWd|j,X|j/| |j0s |j j1r t2}nd&}|j st j j |d |}|j3||jt j j |j|}|j jjd'||fn|js x|D]}t j j |d |}t j j|r|j3||jt j j |jt j j4|}|j jjd'||fqqWq ndS()Nubefore _get_package_data():uvendor =u packager =u doc_files =u changelog =uSOURCESuSPECSuBUILDuRPMSuSRPMSu%s.specu writing '%s'usdistubztarugztariuicon file '%s' does not existu building RPMsurpmu/usr/bin/rpmbuildu /bin/rpmbuildurpmbuildu-bsu-bbu-bau--defineu __python %su _topdir %su--cleanu--quietu%{name}-%{version}-%{release}u.src.rpmu%{arch}/u .%{arch}.rpmu%rpm -q --qf '%s %s\n' --specfile '%s'iuFailed to execute: %suanyu bdist_rpm(uSOURCESuSPECSuBUILDuRPMSuSRPMS(5uDEBUGuprintuvendorupackageru doc_filesu changelogu spec_onlyudist_dirumkpathuosupathujoinurpm_baseu distributionuget_nameuexecuteu write_fileu_make_spec_fileu dist_filesureinitialize_commandu use_bzip2uformatsu run_commanduget_archive_filesu copy_fileuiconuexistsuDistutilsFileErroruloguinfou source_onlyuappendu binary_onlyuextendupythonu rpm3_modeuabspathu keep_tempuquietupopenuNoneureadlineustripusplitucloseuDistutilsExecErrorurepruspawnudry_runuhas_ext_modulesuget_python_versionu move_fileubasename(uselfuspec_dirurpm_dirudu spec_pathusaved_dist_filesusdistusourceu source_dirurpm_cmdu nvr_stringusrc_rpmu non_src_rpmuq_cmduoutu binary_rpmsu source_rpmulineulustatusu pyversionusrpmufilenameurpm((u@/opt/alt/python33/lib64/python3.3/distutils/command/bdist_rpm.pyuruns                                         u bdist_rpm.runcCs"tjj|jtjj|S(N(uosupathujoinudist_dirubasename(uselfupath((u@/opt/alt/python33/lib64/python3.3/distutils/command/bdist_rpm.pyu _dist_pathsubdist_rpm._dist_pathc Csod|jjd|jjjddd|jjd|jjdddd|jjg}tjd }d jd d |j D}d }d}|j||}||kr|j d|j d|d n|j dddg|j r|j dn |j d|j d|jj d|jddg|js|jjs|j dqn|j d|jx{dJD]s}t||j}t|tr|j d"|d#j|fq|dKk r|j d"||fqqW|jjd$krC|j d%|jjn|jrc|j d&|jn|jr|j d'd#j|jn|jr|j d(tjj|jn|jr|j d)n|j dd*|jjgd+|jtjjt j!d,f}d-|} |j"r6d.| } nd/|} dLd3d4| fd5d6| fdMdNdOdPdQdRg } x| D]\} } }t|| }|s|rz|j ddD| g|r|j t#|dEj$j%d q|j |qzqzW|j ddFdGg|j&r<|j dHd#j|j&n|j'rk|j ddIg|j |j'n|S(SuiGenerate the text of an RPM spec file and return it as a list of strings (one per line). u %define name u%define version u-u_u%define unmangled_version u%define release uu Summary: urpm --eval %{__os_install_post}u cSs g|]}d|jqS(u %s \(ustrip(u.0uline((u@/opt/alt/python33/lib64/python3.3/distutils/command/bdist_rpm.pyu s u-bdist_rpm._make_spec_file..ubrp-python-bytecompile \ u%brp-python-bytecompile %{__python} \ u2# Workaround for http://bugs.python.org/issue14443u%define __os_install_post u Name: %{name}uVersion: %{version}uRelease: %{release}u-Source0: %{name}-%{unmangled_version}.tar.bz2u,Source0: %{name}-%{unmangled_version}.tar.gzu License: uGroup: u>BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildrootuPrefix: %{_prefix}uBuildArch: noarchu BuildArch: %suVendoruPackageruProvidesuRequiresu Conflictsu Obsoletesu%s: %su uUNKNOWNuUrl: uDistribution: uBuildRequires: uIcon: u AutoReq: 0u %descriptionu%s %siu%s builduenv CFLAGS="$RPM_OPT_FLAGS" u>%s install -O1 --root=$RPM_BUILD_ROOT --record=INSTALLED_FILESuprepu prep_scriptu&%setup -n %{name}-%{unmangled_version}ubuildu build_scriptuinstalluinstall_scriptucleanu clean_scripturm -rf $RPM_BUILD_ROOTu verifyscriptu verify_scriptupreu pre_installupostu post_installupreunu pre_uninstallupostunupost_uninstallu%uru%files -f INSTALLED_FILESu%defattr(-,root,root)u%doc u %changelog(uVendoruPackageruProvidesuRequiresu Conflictsu ObsoletesN(uprepu prep_scriptu&%setup -n %{name}-%{unmangled_version}(ucleanu clean_scripturm -rf $RPM_BUILD_ROOT(u verifyscriptu verify_scriptN(upreu pre_installN(upostu post_installN(upreunu pre_uninstallN(upostunupost_uninstallN((u distributionuget_nameu get_versionureplaceureleaseuget_descriptionu subprocessu getoutputujoinu splitlinesuappenduextendu use_bzip2u get_licenseugroupu force_archuhas_ext_modulesugetattruloweru isinstanceulistuNoneuget_urludistribution_nameubuild_requiresuiconuosupathubasenameu no_autorequget_long_descriptionupythonusysuargvuuse_rpm_opt_flagsuopenureadusplitu doc_filesu changelog(uselfu spec_fileu vendor_hookuproblemufixedu fixed_hookufielduvaludef_setup_callu def_buildu install_cmduscript_optionsurpm_optuattrudefault((u@/opt/alt/python33/lib64/python3.3/distutils/command/bdist_rpm.pyu_make_spec_files          #     # &       (     ubdist_rpm._make_spec_filecCs|s |Sg}x|jjdD]i}|j}|ddkr^|jd|gq&|ddkr~|j|q&|jd|q&W|ds|d=n|S(uKFormat the changelog correctly and convert it to a list of strings u iu*uu-u (ustripusplituextenduappend(uselfu changelogu new_changeloguline((u@/opt/alt/python33/lib64/python3.3/distutils/command/bdist_rpm.pyu_format_changelog3s   ubdist_rpm._format_changelogN(u bdist-base=Nu/base directory for creating built distributions(u rpm-base=Nudbase directory for creating RPMs (defaults to "rpm" under --bdist-base; must be specified for RPM 2)(u dist-dir=uduDdirectory to put final RPM files in (and .spec files if --spec-only)(upython=NuMpath to Python interpreter to hard-code in the .spec file (default: "python")(u fix-pythonNuLhard-code the exact path to the current Python interpreter in the .spec file(u spec-onlyNuonly regenerate spec file(u source-onlyNuonly generate source RPM(u binary-onlyNuonly generate binary RPM(u use-bzip2Nu7use bzip2 instead of gzip to create source distribution(udistribution-name=Nugname of the (Linux) distribution to which this RPM applies (*not* the name of the module distribution!)(ugroup=Nu9package classification [default: "Development/Libraries"](urelease=NuRPM release number(userial=NuRPM serial number(uvendor=NuaRPM "vendor" (eg. "Joe Blow ") [default: maintainer or author from setup script](u packager=NuARPM packager (eg. "Jane Doe ")[default: vendor](u doc-files=Nu6list of documentation files (space or comma-separated)(u changelog=Nu RPM changelog(uicon=Nuname of icon file(u provides=Nu%capabilities provided by this package(u requires=Nu%capabilities required by this package(u conflicts=Nu-capabilities which conflict with this package(ubuild-requires=Nu+capabilities required to build this package(u obsoletes=Nu*capabilities made obsolete by this package(u no-autoreqNu+do not automatically calculate dependencies(u keep-tempuku"don't clean up RPM build directory(u no-keep-tempNu&clean up RPM build directory [default](uuse-rpm-opt-flagsNu8compile with RPM_OPT_FLAGS when building from source RPM(uno-rpm-opt-flagsNu&do not pass any RPM CFLAGS to compiler(u rpm3-modeNu"RPM 3 compatibility mode (default)(u rpm2-modeNuRPM 2 compatibility mode(u prep-script=Nu3Specify a script for the PREP phase of RPM building(u build-script=Nu4Specify a script for the BUILD phase of RPM building(u pre-install=Nu:Specify a script for the pre-INSTALL phase of RPM building(uinstall-script=Nu6Specify a script for the INSTALL phase of RPM building(u post-install=Nu;Specify a script for the post-INSTALL phase of RPM building(upre-uninstall=Nu<Specify a script for the pre-UNINSTALL phase of RPM building(upost-uninstall=Nu=Specify a script for the post-UNINSTALL phase of RPM building(u clean-script=Nu4Specify a script for the CLEAN phase of RPM building(uverify-script=Nu6Specify a script for the VERIFY phase of the RPM build(u force-arch=Nu0Force an architecture onto the RPM build process(uquietuqu3Run the INSTALL phase of RPM building in quiet mode(u__name__u __module__u __qualname__u descriptionuNoneu user_optionsuboolean_optionsu negative_optuinitialize_optionsufinalize_optionsufinalize_package_dataurunu _dist_pathu_make_spec_fileu_format_changelog(u __locals__((u@/opt/alt/python33/lib64/python3.3/distutils/command/bdist_rpm.pyu bdist_rpms      -  -  u bdist_rpm(u__doc__u subprocessusysuosudistutils.coreuCommandudistutils.debuguDEBUGudistutils.utilu get_platformudistutils.file_utilu write_fileudistutils.errorsudistutils.sysconfiguget_python_versionu distutilsulogu bdist_rpm(((u@/opt/alt/python33/lib64/python3.3/distutils/command/bdist_rpm.pyus$ PK!|"q0command/__pycache__/build_scripts.cpython-33.pycnu[ fWc@sdZddlZddlZddlmZddlmZddlmZddl m Z ddl m Z m Z ddlmZddlZejd ZGd d d eZGd d d ee ZdS(uRdistutils.command.build_scripts Implements the Distutils 'build_scripts' command.iN(uST_MODE(u sysconfig(uCommand(unewer(u convert_pathu Mixin2to3(ulogs^#!.*python[0-9.]*([ ].*)?$cBsn|EeZdZdZdddgZdgZd d Zd dZddZddZ ddZ dS(u build_scriptsu("build" scripts (copy and fixup #! line)u build-dir=ududirectory to "build" (copy) touforceufu1forcibly build everything (ignore file timestampsu executable=ueu*specify final destination interpreter pathcCs1d|_d|_d|_d|_d|_dS(N(uNoneu build_diruscriptsuforceu executableuoutfiles(uself((uD/opt/alt/python33/lib64/python3.3/distutils/command/build_scripts.pyuinitialize_optionss     u build_scripts.initialize_optionscCs)|jdddd|jj|_dS( Nubuildu build_scriptsu build_diruforceu executable(u build_scriptsu build_dir(uforceuforce(u executableu executable(uset_undefined_optionsu distributionuscripts(uself((uD/opt/alt/python33/lib64/python3.3/distutils/command/build_scripts.pyufinalize_options%s  ubuild_scripts.finalize_optionscCs|jS(N(uscripts(uself((uD/opt/alt/python33/lib64/python3.3/distutils/command/build_scripts.pyuget_source_files,subuild_scripts.get_source_filescCs|js dS|jdS(N(uscriptsu copy_scripts(uself((uD/opt/alt/python33/lib64/python3.3/distutils/command/build_scripts.pyurun/s ubuild_scripts.runc$Cs|j|jg}g}x|jD]}d}t|}tjj|jtjj|}|j ||j rt || rt j d|q&nyt|d}Wn'tk r|jsnd}YnXtj|j\}}|jd|j} | s*|jd|q&ntj| } | r]d}| jdpWd} n|rt jd||j|j ||jstjs|j} n:tjjtjdd tjd tjd f} tj | } d | | d } y| j!dWn't"k r9t#dj$| YnXy| j!|Wn*t"k rwt#dj$| |YnXt|d'}|j%| |j&|j'WdQXn|r|j(qq&|r|j(n|j ||j)||q&Wtj*dkrx|D]|}|jr5t jd|qtj+|t,d@}|dBd@}||krt jd|||tj-||qqWn||fS(u"Copy each script listed in 'self.scripts'; if it's marked as a Python script in the Unix way (first line matches 'first_line_re', ie. starts with "\#!" and contains "python"), then adjust the first line to refer to the current Python interpreter as we copy. unot copying %s (up-to-date)urbiu%s is an empty file (skipping)isucopying and adjusting %s -> %suBINDIRu python%s%suVERSIONuEXEs#!s uutf-8u.The shebang ({!r}) is not decodable from utf-8uAThe shebang ({!r}) is not decodable from the script encoding ({})uwbNuposixuchanging mode of %siimu!changing mode of %s from %o to %oFT(.umkpathu build_diruscriptsuFalseu convert_pathuosupathujoinubasenameuappenduforceunewerulogudebuguopenuIOErrorudry_runuNoneutokenizeudetect_encodingureadlineuseekuwarnu first_line_reumatchuTrueugroupuinfou sysconfigu python_buildu executableuget_config_varufsencodeudecodeuUnicodeDecodeErroru ValueErroruformatuwriteu writelinesu readlinesucloseu copy_fileunameustatuST_MODEuchmod(uselfuoutfilesu updated_filesuscriptuadjustuoutfileufuencodingulinesu first_lineumatchu post_interpu executableushebanguoutfufileuoldmodeunewmode((uD/opt/alt/python33/lib64/python3.3/distutils/command/build_scripts.pyu copy_scripts5s $                        ubuild_scripts.copy_scriptsN(u build-dir=ududirectory to "build" (copy) to(uforceufu1forcibly build everything (ignore file timestamps(u executable=ueu*specify final destination interpreter path( u__name__u __module__u __qualname__u descriptionu user_optionsuboolean_optionsuinitialize_optionsufinalize_optionsuget_source_filesurunu copy_scripts(u __locals__((uD/opt/alt/python33/lib64/python3.3/distutils/command/build_scripts.pyu build_scriptss      u build_scriptscBs |EeZdZddZdS(ubuild_scripts_2to3cCs8tj|\}}|js.|j|n||fS(N(u build_scriptsu copy_scriptsudry_runurun_2to3(uselfuoutfilesu updated_files((uD/opt/alt/python33/lib64/python3.3/distutils/command/build_scripts.pyu copy_scriptss ubuild_scripts_2to3.copy_scriptsN(u__name__u __module__u __qualname__u copy_scripts(u __locals__((uD/opt/alt/python33/lib64/python3.3/distutils/command/build_scripts.pyubuild_scripts_2to3subuild_scripts_2to3(u__doc__uosureustatuST_MODEu distutilsu sysconfigudistutils.coreuCommandudistutils.dep_utilunewerudistutils.utilu convert_pathu Mixin2to3ulogutokenizeucompileu first_line_reu build_scriptsubuild_scripts_2to3(((uD/opt/alt/python33/lib64/python3.3/distutils/command/build_scripts.pyus PK!Og(command/__pycache__/bdist.cpython-33.pycnu[ fqc@sbdZddlZddlmZddlTddlmZddZGdd d eZdS( uidistutils.command.bdist Implements the Distutils 'bdist' command (create a built [binary] distribution).iN(uCommand(u*(u get_platformcCslddlm}g}x6tjD]+}|jd|dtj|dfq W||}|jddS(uFPrint list of available formats (arguments to "--format" option). i(u FancyGetoptuformats=iu'List of available distribution formats:N(udistutils.fancy_getoptu FancyGetoptubdistuformat_commandsuappenduNoneuformat_commandu print_help(u FancyGetoptuformatsuformatupretty_printer((u</opt/alt/python33/lib64/python3.3/distutils/command/bdist.pyu show_formats s u show_formatscBs|EeZdZdZd/dddefd0d1d2gZd gZdd.defgZ d3Z idd6dd6dd6Z ddddddddgZ id4d6d5d6d6d6d7d6d8d6d9d6d:d6d;d6Z d(d)Zd*d+Zd,d-Zd.S(<ubdistu$create a built (binary) distributionu bdist-base=ubu4temporary directory for creating built distributionsu plat-name=upu;platform name to embed in generated filenames (default: %s)uformats=u/formats for distribution (comma-separated list)u dist-dir=udu=directory to put final built distributions in [default: dist]u skip-buildu2skip rebuilding everything (for testing/debugging)u help-formatsu$lists available distribution formatsu bdist_rpmugztaruposixuzipuntuos2urpmubztaruztarutaruwininstumsiuRPM distributionu bdist_dumbugzip'ed tar fileubzip2'ed tar fileucompressed tar fileutar fileu bdist_wininstuWindows executable installeruZIP fileu bdist_msiuMicrosoft InstallercCs1d|_d|_d|_d|_d|_dS(Ni(uNoneu bdist_baseu plat_nameuformatsudist_diru skip_build(uself((u</opt/alt/python33/lib64/python3.3/distutils/command/bdist.pyuinitialize_optionsKs     ubdist.initialize_optionsc Cs|jdkr?|jr't|_q?|jdj|_n|jdkr|jdj}tjj |d|j|_n|j d|j dkry|j tj g|_ Wqtk rtdtj YqXn|jdkrd|_ndS(Nubuildubdist.uformatsu;don't know how to create built distributions on platform %sudist(u plat_nameuNoneu skip_buildu get_platformuget_finalized_commandu bdist_baseu build_baseuosupathujoinuensure_string_listuformatsudefault_formatunameuKeyErroruDistutilsPlatformErrorudist_dir(uselfu build_base((u</opt/alt/python33/lib64/python3.3/distutils/command/bdist.pyufinalize_optionsRs$    ubdist.finalize_optionsc Csg}xR|jD]G}y|j|j|dWqtk rVtd|YqXqWxtt|jD]t}||}|j|}||jkr|j||_ n|||ddkrd|_ n|j |qqWdS(Niuinvalid format '%s'i( uformatsuappenduformat_commanduKeyErroruDistutilsOptionErrorurangeulenureinitialize_commanduno_format_optionuformatu keep_tempu run_command(uselfucommandsuformatuiucmd_nameusub_cmd((u</opt/alt/python33/lib64/python3.3/distutils/command/bdist.pyurunns   u bdist.runN(u bdist-base=ubu4temporary directory for creating built distributions(uformats=Nu/formats for distribution (comma-separated list)(u dist-dir=udu=directory to put final built distributions in [default: dist](u skip-buildNu2skip rebuilding everything (for testing/debugging)(u bdist_rpm(u bdist_rpmuRPM distribution(u bdist_dumbugzip'ed tar file(u bdist_dumbubzip2'ed tar file(u bdist_dumbucompressed tar file(u bdist_dumbutar file(u bdist_wininstuWindows executable installer(u bdist_dumbuZIP file(u bdist_msiuMicrosoft Installer(u__name__u __module__u __qualname__u descriptionu get_platformuNoneu user_optionsuboolean_optionsu show_formatsu help_optionsuno_format_optionudefault_formatuformat_commandsuformat_commanduinitialize_optionsufinalize_optionsurun(u __locals__((u</opt/alt/python33/lib64/python3.3/distutils/command/bdist.pyubdistsB         ubdist( u__doc__uosudistutils.coreuCommandudistutils.errorsudistutils.utilu get_platformu show_formatsubdist(((u</opt/alt/python33/lib64/python3.3/distutils/command/bdist.pyus    PK!SJW@@+command/__pycache__/build_py.cpython-33.pyonu[ f)Cc@sdZddlZddlZddlZddlmZddlmZddlTddlm Z m Z ddl m Z Gdd d eZ Gd d d e e ZdS( uHdistutils.command.build_py Implements the Distutils 'build_py' command.iN(uglob(uCommand(u*(u convert_pathu Mixin2to3(ulogcBs/|EeZdZdZd8d9d:d;d<gZdd gZidd6ZddZddZ ddZ ddZ ddZ ddZ ddZddZd d!Zd"d#Zd$d%Zd&d'Zd(d)Zd*d+Zd,d-d.Zd/d0Zd1d2Zd3d4Zd5d6Zd7S(=ubuild_pyu5"build" pure Python modules (copy to build directory)u build-lib=ududirectory to "build" (copy) toucompileucucompile .py to .pycu no-compileu!don't compile .py files [default]u optimize=uOulalso compile with optimization: -O1 for "python -O", -O2 for "python -OO", and -O0 to disable [default: -O0]uforceufu2forcibly build everything (ignore file timestamps)cCsLd|_d|_d|_d|_d|_d|_d|_d|_dS(Ni( uNoneu build_libu py_modulesupackageu package_datau package_dirucompileuoptimizeuforce(uself((u?/opt/alt/python33/lib64/python3.3/distutils/command/build_py.pyuinitialize_options s       ubuild_py.initialize_optionsc Cs|jddd|jj|_|jj|_|jj|_i|_|jjrx6|jjjD]\}}t||j|ts u+build_py.get_data_files..( upackagesuget_package_diruosupathujoinu build_libusplitulenufind_data_filesuappend(uselfudataupackageusrc_diru build_diru filenames((uplenu?/opt/alt/python33/lib64/python3.3/distutils/command/build_py.pyuget_data_filesas %%ubuild_py.get_data_filescs|jjdg|jj|g}gxO|D]G}ttjj|t|}jfdd|Dq5WS(u6Return filenames for package's data files in 'src_dir'ucs4g|]*}|krtjj|r|qS((uosupathuisfile(u.0ufn(ufiles(u?/opt/alt/python33/lib64/python3.3/distutils/command/build_py.pyu s u,build_py.find_data_files..(u package_dataugetuglobuosupathujoinu convert_pathuextend(uselfupackageusrc_diruglobsupatternufilelist((ufilesu?/opt/alt/python33/lib64/python3.3/distutils/command/build_py.pyufind_data_filesys !$ubuild_py.find_data_filescCsd}x|jD]v\}}}}xa|D]Y}tjj||}|jtjj||jtjj|||ddq)WqWdS(u$Copy data files into build directoryu preserve_modeNF( uNoneu data_filesuosupathujoinumkpathudirnameu copy_fileuFalse(uselfulastdirupackageusrc_diru build_diru filenamesufilenameutarget((u?/opt/alt/python33/lib64/python3.3/distutils/command/build_py.pyubuild_package_datas ubuild_py.build_package_datac Cs|jd}|js5|r.tjj|SdSng}x|ry|jdj|}Wn-tk r|jd|d|d=Yq>X|jd|tjj|Sq>W|jjd}|dk r|jd|n|rtjj|SdSdS(uReturn the directory, relative to the top of the source distribution, where package 'package' should be found (at least according to the 'package_dir' option, if any).u.uiiNii( usplitu package_diruosupathujoinuKeyErroruinsertugetuNone(uselfupackageupathutailupdir((u?/opt/alt/python33/lib64/python3.3/distutils/command/build_py.pyuget_package_dirs(      ubuild_py.get_package_dircCs|dkrYtjj|s1td|ntjj|sYtd|qYn|rtjj|d}tjj|r|Stjdd|ndS(Nuu%package directory '%s' does not existu>supposed package directory '%s' exists, but is not a directoryu __init__.pyu!package init file '%s' not found u(or not a regular file)( uosupathuexistsuDistutilsFileErroruisdirujoinuisfileuloguwarnuNone(uselfupackageu package_diruinit_py((u?/opt/alt/python33/lib64/python3.3/distutils/command/build_py.pyu check_packages  ubuild_py.check_packagecCs1tjj|s)tjd||dSdSdS(Nu!file %s (for module %s) not foundFT(uosupathuisfileuloguwarnuFalseuTrue(uselfumoduleu module_file((u?/opt/alt/python33/lib64/python3.3/distutils/command/build_py.pyu check_modulesubuild_py.check_modulec Cs|j||ttjj|d}g}tjj|jj}xx|D]p}tjj|}||krtjjtjj |d}|j |||fqP|j d|qPW|S(Nu*.pyiu excluding %s( u check_packageuglobuosupathujoinuabspathu distributionu script_nameusplitextubasenameuappendu debug_print( uselfupackageu package_diru module_filesumodulesu setup_scriptufuabs_fumodule((u?/opt/alt/python33/lib64/python3.3/distutils/command/build_py.pyufind_package_moduless  "ubuild_py.find_package_modulesc Cs%i}g}x|jD]}|jd}dj|dd}|d}y||\}}Wn'tk r|j|}d}YnX|s|j||} |df||<| r|j|d| fqntjj||d} |j || sqn|j||| fqW|S(uFinds individually-specified Python modules, ie. those listed by module name in 'self.py_modules'. Returns a list of tuples (package, module_base, filename): 'package' is a tuple of the path through package-space to the module; 'module_base' is the bare (no packages, no dots) module name, and 'filename' is the path to the ".py" file (relative to the distribution root) that implements the module. u.iiu__init__u.pyii( u py_modulesusplitujoinuKeyErroruget_package_diru check_packageuappenduosupathu check_module( uselfupackagesumodulesumoduleupathupackageu module_baseu package_dirucheckeduinit_pyu module_file((u?/opt/alt/python33/lib64/python3.3/distutils/command/build_py.pyu find_moduless*   ubuild_py.find_modulescCswg}|jr%|j|jn|jrsxB|jD]4}|j|}|j||}|j|q8Wn|S(u4Compute the list of all modules that will be built, whether they are specified one-module-at-a-time ('self.py_modules') or by whole packages ('self.packages'). Return a list of tuples (package, module, module_file), just like 'find_modules()' and 'find_package_modules()' do.(u py_modulesuextendu find_modulesupackagesuget_package_dirufind_package_modules(uselfumodulesupackageu package_dirum((u?/opt/alt/python33/lib64/python3.3/distutils/command/build_py.pyufind_all_moduless  ubuild_py.find_all_modulescCsdd|jDS(NcSsg|]}|dqS(ii((u.0umodule((u?/opt/alt/python33/lib64/python3.3/distutils/command/build_py.pyu -s u-build_py.get_source_files..(ufind_all_modules(uself((u?/opt/alt/python33/lib64/python3.3/distutils/command/build_py.pyuget_source_files,subuild_py.get_source_filescCs.|gt||dg}tjj|S(Nu.py(ulistuosupathujoin(uselfu build_dirupackageumoduleu outfile_path((u?/opt/alt/python33/lib64/python3.3/distutils/command/build_py.pyuget_module_outfile/subuild_py.get_module_outfileicCs|j}g}x|D]\}}}|jd}|j|j||}|j||r|jr|jtj|ddn|j dkr|jtj|ddqqqW|dd|j D7}|S(Nu.udebug_overrideicSs>g|]4\}}}}|D]}tjj||qqS((uosupathujoin(u.0upackageusrc_diru build_diru filenamesufilename((u?/opt/alt/python33/lib64/python3.3/distutils/command/build_py.pyu Cs u(build_py.get_outputs..TF( ufind_all_modulesusplituget_module_outfileu build_libuappenducompileuimpucache_from_sourceuTrueuoptimizeuFalseu data_files(uselfuinclude_bytecodeumodulesuoutputsupackageumoduleu module_fileufilename((u?/opt/alt/python33/lib64/python3.3/distutils/command/build_py.pyu get_outputs3s"     ubuild_py.get_outputscCst|tr!|jd}n$t|ttfsEtdn|j|j||}tj j |}|j ||j ||ddS(Nu.u:'package' must be a string (dot-separated), list, or tupleu preserve_modei( u isinstanceustrusplitulistutupleu TypeErroruget_module_outfileu build_libuosupathudirnameumkpathu copy_file(uselfumoduleu module_fileupackageuoutfileudir((u?/opt/alt/python33/lib64/python3.3/distutils/command/build_py.pyu build_moduleJs  ubuild_py.build_modulecCs=|j}x*|D]"\}}}|j|||qWdS(N(u find_modulesu build_module(uselfumodulesupackageumoduleu module_file((u?/opt/alt/python33/lib64/python3.3/distutils/command/build_py.pyu build_modulesYs ubuild_py.build_modulescCsfx_|jD]T}|j|}|j||}x*|D]"\}}}|j|||q8Wq WdS(N(upackagesuget_package_dirufind_package_modulesu build_module(uselfupackageu package_dirumodulesupackage_umoduleu module_file((u?/opt/alt/python33/lib64/python3.3/distutils/command/build_py.pyubuild_packagesbs  ubuild_py.build_packagesc Cstjr|jddSddlm}|j}|d tjkrV|tj}n|jr||ddd|j d|d|j n|j dkr||d|j d|j d|d|j ndS( Nu%byte-compiling is disabled, skipping.i(u byte_compileiuoptimizeuforceuprefixudry_runi( usysudont_write_bytecodeuwarnudistutils.utilu byte_compileu build_libuosusepucompileuforceudry_runuoptimize(uselfufilesu byte_compileuprefix((u?/opt/alt/python33/lib64/python3.3/distutils/command/build_py.pyu byte_compilevs    ubuild_py.byte_compileN(u build-lib=ududirectory to "build" (copy) to(ucompileucucompile .py to .pyc(u no-compileNu!don't compile .py files [default](u optimize=uOulalso compile with optimization: -O1 for "python -O", -O2 for "python -OO", and -O0 to disable [default: -O0](uforceufu2forcibly build everything (ignore file timestamps)(u__name__u __module__u __qualname__u descriptionuNoneu user_optionsuboolean_optionsu negative_optuinitialize_optionsufinalize_optionsurunuget_data_filesufind_data_filesubuild_package_datauget_package_diru check_packageu check_moduleufind_package_modulesu find_modulesufind_all_modulesuget_source_filesuget_module_outfileu get_outputsu build_moduleu build_modulesubuild_packagesu byte_compile(u __locals__((u?/opt/alt/python33/lib64/python3.3/distutils/command/build_py.pyubuild_pys8       '    4     ubuild_pycBs,|EeZdZddZddZdS(u build_py_2to3cCslg|_|jr|jn|jr?|j|jn|j|j|j|jdddS(Nuinclude_bytecodei( u updated_filesu py_modulesu build_modulesupackagesubuild_packagesubuild_package_dataurun_2to3u byte_compileu get_outputs(uself((u?/opt/alt/python33/lib64/python3.3/distutils/command/build_py.pyuruns      ubuild_py_2to3.runcCs=tj||||}|dr9|jj|dn|S(Nii(ubuild_pyu build_moduleu updated_filesuappend(uselfumoduleu module_fileupackageures((u?/opt/alt/python33/lib64/python3.3/distutils/command/build_py.pyu build_modules ubuild_py_2to3.build_moduleN(u__name__u __module__u __qualname__urunu build_module(u __locals__((u?/opt/alt/python33/lib64/python3.3/distutils/command/build_py.pyu build_py_2to3s u build_py_2to3(u__doc__uosuimpusysuglobudistutils.coreuCommandudistutils.errorsudistutils.utilu convert_pathu Mixin2to3u distutilsulogubuild_pyu build_py_2to3(((u?/opt/alt/python33/lib64/python3.3/distutils/command/build_py.pyus    |PK!ITT*command/__pycache__/install.cpython-33.pyonu[ f kc@sdZddlZddlZddlmZddlmZddlmZddl m Z ddl m Z ddl mZdd lmZmZmZdd lmZdd l mZejd krdZdZd0Zn&dd lmZddlmZd1Zejdkr?idd6dd6dd6dd6dd6Zn)idd6dd6dd6dd6dd6Ziidd6dd6dd6dd6dd6d6idd6dd6d d6dd6dd6d!6ed"6idd6dd6dd6dd6dd6d#6Zerid$d6d$d6d%d6d&d6d'd6ed(Zd?d@ZdAdBZdCdDZdEdFZdGdHZdIdJZdKdLZdMdNZdOdPZdQdRZdSdTZdUdVZdWefdXefdYefdZefd[d\d]fgZ d^S(ouinstallu'install everything from build directoryuprefix=uinstallation prefixu exec-prefix=u.(Unix only) prefix for platform-specific filesuhome=u+(Unix only) home directory to install underu install-base=u;base installation directory (instead of --prefix or --home)uinstall-platbase=u8base installation directory for platform-specific files u$(instead of --exec-prefix or --home)uroot=u<install everything relative to this alternate root directoryuinstall-purelib=u;installation directory for pure Python module distributionsuinstall-platlib=u8installation directory for non-pure module distributionsu install-lib=u4installation directory for all module distributions u3(overrides --install-purelib and --install-platlib)uinstall-headers=u(installation directory for C/C++ headersuinstall-scripts=u)installation directory for Python scriptsu install-data=u%installation directory for data filesucompileucucompile .py to .pyc [default]u no-compileudon't compile .py filesu optimize=uOulalso compile with optimization: -O1 for "python -O", -O2 for "python -OO", and -O0 to disable [default: -O0]uforceufu1force installation (overwrite any existing files)u skip-buildu2skip rebuilding everything (for testing/debugging)urecord=u3filename in which to record list of installed filesuuseru!install in user site-package '%s'cCsd|_d|_d|_d|_d|_d|_d|_d|_d|_ d|_ d|_ d|_ d|_ t|_t|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_dS(uInitializes options.iiN(uNoneuprefixu exec_prefixuhomeuuseru install_baseuinstall_platbaseurootuinstall_purelibuinstall_platlibuinstall_headersu install_libuinstall_scriptsu install_datau USER_BASEuinstall_userbaseu USER_SITEuinstall_usersiteucompileuoptimizeu extra_pathuinstall_path_fileuforceu skip_builduwarn_diru build_baseu build_liburecord(uself((u>/opt/alt/python33/lib64/python3.3/distutils/command/install.pyuinitialize_optionss2                       uinstall.initialize_optionscCs|js|js|jr@|js-|jr@tddn|jrj|js[|jrjtdn|jr|js|js|js|js|jrtdntjdkr|jr|j dd+|_qn|j dtjdkr |j n |j |j dtjjd }td d \}}y tj}Wntk rrd }YnXi |jjd 6|jjd6|jjd6|d6|d dd6|d |dd6|d6|d 6|d6|d 6|d6|_tr#|j|jd<|j|jd/opt/alt/python33/lib64/python3.3/distutils/command/install.pyufinalize_optionss  $                        uinstall.finalize_optionscCsts dSddlm}tj|dx|jD]}|d}|ddkrh|dd }n||jkr|j|}|j|}t|| }n|j|}t||}tjd||fq5WdS( uDumps the list of user options.Ni(u longopt_xlateu:iu=u %s: %sii( uDEBUGudistutils.fancy_getoptu longopt_xlateulogudebugu user_optionsu negative_optu translateugetattr(uselfumsgu longopt_xlateuoptuopt_nameuval((u>/opt/alt/python33/lib64/python3.3/distutils/command/install.pyu dump_dirss  uinstall.dump_dirsc Cs|jdk s|jdk r|jdkrK|jdkrK|jdksx|jdksx|jdksx|jdkrt dndS|j r|j dkrt dn|j |_|_|j dn|jdk r|j|_|_|j dn|jdkrg|jdk r4t dntjjtj|_tjjtj|_n|jdkr|j|_n|j|_|j|_|j ddS(u&Finalizes options for posix platforms.uPinstall-base or install-platbase supplied, but installation scheme is incompleteNu$User base directory is not specifiedu unix_useru unix_homeu*must not supply exec-prefix without prefixu unix_prefix(u install_baseuNoneuinstall_platbaseu install_libuinstall_purelibuinstall_platlibuinstall_headersuinstall_scriptsu install_datauDistutilsOptionErroruuseruinstall_userbaseuDistutilsPlatformErroru select_schemeuhomeuprefixu exec_prefixuosupathunormpathusys(uself((u>/opt/alt/python33/lib64/python3.3/distutils/command/install.pyu finalize_unixs<      uinstall.finalize_unixc Cs|jrQ|jdkr'tdn|j|_|_|jtjdn|j dk r|j |_|_|jdny|j dkrtj j t j |_ n|j |_|_y|jtjWn%tk rtdtjYnXdS(u)Finalizes options for non-posix platformsu$User base directory is not specifiedu_useru unix_homeu)I don't know how to install stuff on '%s'N(uuseruinstall_userbaseuNoneuDistutilsPlatformErroru install_baseuinstall_platbaseu select_schemeuosunameuhomeuprefixupathunormpathusysuKeyError(uself((u>/opt/alt/python33/lib64/python3.3/distutils/command/install.pyufinalize_others"   uinstall.finalize_othercCsUt|}xDtD]<}d|}t||dkrt||||qqWdS(u=Sets the install directories by applying the install schemes.uinstall_N(uINSTALL_SCHEMESu SCHEME_KEYSugetattruNoneusetattr(uselfunameuschemeukeyuattrname((u>/opt/alt/python33/lib64/python3.3/distutils/command/install.pyu select_schemes    uinstall.select_schemecCsx|D]y}t||}|dk rtjdksFtjdkr[tjj|}nt||j}t|||qqWdS(Nuposixunt( ugetattruNoneuosunameupathu expanduseru subst_varsu config_varsusetattr(uselfuattrsuattruval((u>/opt/alt/python33/lib64/python3.3/distutils/command/install.pyu _expand_attrss  uinstall._expand_attrscCs|jdddgdS(uNCalls `os.path.expanduser` on install_base, install_platbase and root.u install_baseuinstall_platbaseurootN(u _expand_attrs(uself((u>/opt/alt/python33/lib64/python3.3/distutils/command/install.pyuexpand_basedirssuinstall.expand_basedirscCs#|jddddddgdS(u+Calls `os.path.expanduser` on install dirs.uinstall_purelibuinstall_platlibu install_libuinstall_headersuinstall_scriptsu install_dataN(u _expand_attrs(uself((u>/opt/alt/python33/lib64/python3.3/distutils/command/install.pyu expand_dirss uinstall.expand_dirscGs>x7|D]/}d|}t||tt||qWdS(u!Call `convert_path` over `names`.uinstall_N(usetattru convert_pathugetattr(uselfunamesunameuattr((u>/opt/alt/python33/lib64/python3.3/distutils/command/install.pyu convert_pathss  uinstall.convert_pathscCs|jdkr!|jj|_n|jdk rt|jtrZ|jjd|_nt|jdkr|jd}}n3t|jdkr|j\}}n tdt|}n d}d}||_ ||_ dS(u4Set `path_file` and `extra_dirs` using `extra_path`.u,iiiuY'extra_path' option must be a list, tuple, or comma-separated string with 1 or 2 elementsuN( u extra_pathuNoneu distributionu isinstanceustrusplitulenuDistutilsOptionErroru convert_pathu path_fileu extra_dirs(uselfu path_fileu extra_dirs((u>/opt/alt/python33/lib64/python3.3/distutils/command/install.pyuhandle_extra_paths   uinstall.handle_extra_pathc GsDx=|D]5}d|}t||t|jt||qWdS(u:Change the install directories pointed by name using root.uinstall_N(usetattru change_rooturootugetattr(uselfunamesunameuattr((u>/opt/alt/python33/lib64/python3.3/distutils/command/install.pyu change_roots#s  uinstall.change_rootscCs|js dSttjjd}xc|jjD]R\}}|j|r5tjj| r5|j d|tj |dq5q5WdS(uCreate directories under ~.Nu~uos.makedirs('%s', 0o700)i( uuseru convert_pathuosupathu expanduseru config_varsuitemsu startswithuisdiru debug_printumakedirs(uselfuhomeunameupath((u>/opt/alt/python33/lib64/python3.3/distutils/command/install.pyucreate_home_path)s "uinstall.create_home_pathcCs|jsU|jd|jjdj}|jrU|tkrUtdqUnx!|jD]}|j|qbW|j r|j n|j r|j }|j rt|j }x5tt|D]}|||d||/opt/alt/python33/lib64/python3.3/distutils/command/install.pyurun5s6         !   u install.runcCsctjj|j|jd}|jrN|jt||jgfd|n|j d|dS(uCreates the .pth fileu.pthu creating %supath file '%s' not createdN( uosupathujoinuinstall_libbaseu path_fileuinstall_path_fileuexecuteu write_fileu extra_dirsuwarn(uselfufilename((u>/opt/alt/python33/lib64/python3.3/distutils/command/install.pyucreate_path_fileas  uinstall.create_path_filecCsg}xV|jD]H}|j|}x0|jD]"}||kr5|j|q5q5WqW|jr|jr|jtjj|j |jdn|S(u.Assembles the outputs of all the sub-commands.u.pth( uget_sub_commandsuget_finalized_commandu get_outputsuappendu path_fileuinstall_path_fileuosupathujoinuinstall_libbase(uselfuoutputsucmd_nameucmdufilename((u>/opt/alt/python33/lib64/python3.3/distutils/command/install.pyu get_outputsos uinstall.get_outputscCsCg}x6|jD](}|j|}|j|jqW|S(u*Returns the inputs of all the sub-commands(uget_sub_commandsuget_finalized_commanduextendu get_inputs(uselfuinputsucmd_nameucmd((u>/opt/alt/python33/lib64/python3.3/distutils/command/install.pyu get_inputss uinstall.get_inputscCs|jjp|jjS(uSReturns true if the current distribution has any Python modules to install.(u distributionuhas_pure_modulesuhas_ext_modules(uself((u>/opt/alt/python33/lib64/python3.3/distutils/command/install.pyuhas_libsuinstall.has_libcCs |jjS(uLReturns true if the current distribution has any headers to install.(u distributionu has_headers(uself((u>/opt/alt/python33/lib64/python3.3/distutils/command/install.pyu has_headerssuinstall.has_headerscCs |jjS(uMReturns true if the current distribution has any scripts to. install.(u distributionu has_scripts(uself((u>/opt/alt/python33/lib64/python3.3/distutils/command/install.pyu has_scriptssuinstall.has_scriptscCs |jjS(uJReturns true if the current distribution has any data to. install.(u distributionuhas_data_files(uself((u>/opt/alt/python33/lib64/python3.3/distutils/command/install.pyuhas_datasuinstall.has_datau install_libuinstall_headersuinstall_scriptsu install_datauinstall_egg_infocCsdS(NT(uTrue(uself((u>/opt/alt/python33/lib64/python3.3/distutils/command/install.pyusuinstall.N(uprefix=Nuinstallation prefix(u exec-prefix=Nu.(Unix only) prefix for platform-specific files(uhome=Nu+(Unix only) home directory to install under(u install-base=Nu;base installation directory (instead of --prefix or --home)(uroot=Nu<install everything relative to this alternate root directory(uinstall-purelib=Nu;installation directory for pure Python module distributions(uinstall-platlib=Nu8installation directory for non-pure module distributions(uinstall-headers=Nu(installation directory for C/C++ headers(uinstall-scripts=Nu)installation directory for Python scripts(u install-data=Nu%installation directory for data files(ucompileucucompile .py to .pyc [default](u no-compileNudon't compile .py files(u optimize=uOulalso compile with optimization: -O1 for "python -O", -O2 for "python -OO", and -O0 to disable [default: -O0](uforceufu1force installation (overwrite any existing files)(u skip-buildNu2skip rebuilding everything (for testing/debugging)(urecord=Nu3filename in which to record list of installed files(!u__name__u __module__u __qualname__u descriptionuNoneu user_optionsuboolean_optionsu HAS_USER_SITEuappendu USER_SITEu negative_optuinitialize_optionsufinalize_optionsu dump_dirsu finalize_unixufinalize_otheru select_schemeu _expand_attrsuexpand_basedirsu expand_dirsu convert_pathsuhandle_extra_pathu change_rootsucreate_home_pathurunucreate_path_fileu get_outputsu get_inputsuhas_libu has_headersu has_scriptsuhas_datau sub_commands(u __locals__((u>/opt/alt/python33/lib64/python3.3/distutils/command/install.pyuinstallgs    M  (       ,          uinstallFT(upurelibuplatlibuheadersuscriptsudata(!u__doc__usysuosu distutilsulogudistutils.coreuCommandudistutils.debuguDEBUGudistutils.sysconfiguget_config_varsudistutils.errorsuDistutilsPlatformErrorudistutils.file_utilu write_fileudistutils.utilu convert_pathu subst_varsu change_rootu get_platformuDistutilsOptionErroruversionuNoneu USER_BASEu USER_SITEuFalseu HAS_USER_SITEusiteuTrueuWINDOWS_SCHEMEuINSTALL_SCHEMESu SCHEME_KEYSuinstall(((u>/opt/alt/python33/lib64/python3.3/distutils/command/install.pyus       PK!<|} (command/__pycache__/clean.cpython-33.pyonu[ f c@s\dZddlZddlmZddlmZddlmZGdddeZdS(uBdistutils.command.clean Implements the Distutils 'clean' command.iN(uCommand(u remove_tree(ulogcBs_|EeZdZdZddddddgZdgZddZddZddZ dS(ucleanu-clean up temporary files from 'build' commandu build-base=ubu2base build directory (default: 'build.build-base')u build-lib=u<build directory for all modules (default: 'build.build-lib')u build-temp=utu7temporary build directory (default: 'build.build-temp')ubuild-scripts=u<build directory for scripts (default: 'build.build-scripts')u bdist-base=u+temporary directory for built distributionsualluau7remove all build output, not just temporary by-productscCs:d|_d|_d|_d|_d|_d|_dS(N(uNoneu build_baseu build_libu build_tempu build_scriptsu bdist_baseuall(uself((u</opt/alt/python33/lib64/python3.3/distutils/command/clean.pyuinitialize_options s      uclean.initialize_optionscCs-|jddd d d |jdd dS( Nubuildu build_baseu build_libu build_scriptsu build_tempubdistu bdist_base(u build_baseu build_base(u build_libu build_lib(u build_scriptsu build_scripts(u build_tempu build_temp(u bdist_baseu bdist_base(uset_undefined_options(uself((u</opt/alt/python33/lib64/python3.3/distutils/command/clean.pyufinalize_options(s  uclean.finalize_optionsc Cstjj|jr.t|jd|jntjd|j|jrx[|j |j |j fD]>}tjj|rt|d|jqctj d|qcWn|jsy'tj |jtjd|jWqtk rYqXndS(Nudry_runu%'%s' does not exist -- can't clean itu removing '%s'(uosupathuexistsu build_tempu remove_treeudry_runulogudebuguallu build_libu bdist_baseu build_scriptsuwarnurmdiru build_baseuinfouOSError(uselfu directory((u</opt/alt/python33/lib64/python3.3/distutils/command/clean.pyurun1s$       u clean.runN(u build-base=ubu2base build directory (default: 'build.build-base')(u build-lib=Nu<build directory for all modules (default: 'build.build-lib')(u build-temp=utu7temporary build directory (default: 'build.build-temp')(ubuild-scripts=Nu<build directory for scripts (default: 'build.build-scripts')(u bdist-base=Nu+temporary directory for built distributions(ualluau7remove all build output, not just temporary by-products( u__name__u __module__u __qualname__u descriptionuNoneu user_optionsuboolean_optionsuinitialize_optionsufinalize_optionsurun(u __locals__((u</opt/alt/python33/lib64/python3.3/distutils/command/clean.pyuclean s"    uclean( u__doc__uosudistutils.coreuCommandudistutils.dir_utilu remove_treeu distutilsuloguclean(((u</opt/alt/python33/lib64/python3.3/distutils/command/clean.pyus  PK!Zh2command/__pycache__/install_scripts.cpython-33.pycnu[ fc@s\dZddlZddlmZddlmZddlmZGdddeZdS(uudistutils.command.install_scripts Implements the Distutils 'install_scripts' command, for installing Python scripts.iN(uCommand(ulog(uST_MODEcBst|EeZdZdZddddgZdd gZd dZddZddZ ddZ ddZ dS(uinstall_scriptsu%install scripts (Python or otherwise)u install-dir=ududirectory to install scripts tou build-dir=ubu'build directory (where to install from)uforceufu-force installation (overwrite existing files)u skip-builduskip the build stepscCs(d|_d|_d|_d|_dS(Ni(uNoneu install_diruforceu build_diru skip_build(uself((uF/opt/alt/python33/lib64/python3.3/distutils/command/install_scripts.pyuinitialize_optionss   u"install_scripts.initialize_optionscCs*|jdd |jdd d d dS( Nubuildu build_scriptsu build_diruinstalluinstall_scriptsu install_diruforceu skip_build(u build_scriptsu build_dir(uinstall_scriptsu install_dir(uforceuforce(u skip_buildu skip_build(uset_undefined_options(uself((uF/opt/alt/python33/lib64/python3.3/distutils/command/install_scripts.pyufinalize_options!s  u install_scripts.finalize_optionscCs|js|jdn|j|j|j|_tjdkrxq|jD]`}|j rrt j d|qPtj |t dBd@}t j d||tj||qPWndS(Nu build_scriptsuposixuchanging mode of %simiuchanging mode of %s to %o(u skip_buildu run_commandu copy_treeu build_diru install_diruoutfilesuosunameu get_outputsudry_runuloguinfoustatuST_MODEuchmod(uselfufileumode((uF/opt/alt/python33/lib64/python3.3/distutils/command/install_scripts.pyurun)s  uinstall_scripts.runcCs|jjpgS(N(u distributionuscripts(uself((uF/opt/alt/python33/lib64/python3.3/distutils/command/install_scripts.pyu get_inputs8suinstall_scripts.get_inputscCs |jp gS(N(uoutfiles(uself((uF/opt/alt/python33/lib64/python3.3/distutils/command/install_scripts.pyu get_outputs;suinstall_scripts.get_outputsN(u install-dir=ududirectory to install scripts to(u build-dir=ubu'build directory (where to install from)(uforceufu-force installation (overwrite existing files)(u skip-buildNuskip the build steps( u__name__u __module__u __qualname__u descriptionuNoneu user_optionsuboolean_optionsuinitialize_optionsufinalize_optionsurunu get_inputsu get_outputs(u __locals__((uF/opt/alt/python33/lib64/python3.3/distutils/command/install_scripts.pyuinstall_scriptss      uinstall_scripts( u__doc__uosudistutils.coreuCommandu distutilsulogustatuST_MODEuinstall_scripts(((uF/opt/alt/python33/lib64/python3.3/distutils/command/install_scripts.pyus  PK!:^+command/__pycache__/__init__.cpython-33.pyonu[ fc@sIdZddddddddd d d d d ddddddgZdS(u\distutils.command Package containing implementation of all the standard Distutils commands.ubuildubuild_pyu build_extu build_clibu build_scriptsucleanuinstallu install_libuinstall_headersuinstall_scriptsu install_datausdisturegisterubdistu bdist_dumbu bdist_rpmu bdist_wininstucheckuuploadN(u__doc__u__all__(((u?/opt/alt/python33/lib64/python3.3/distutils/command/__init__.pyus&PK!K@@+command/__pycache__/build_py.cpython-33.pycnu[ f)Cc@sdZddlZddlZddlZddlmZddlmZddlTddlm Z m Z ddl m Z Gdd d eZ Gd d d e e ZdS( uHdistutils.command.build_py Implements the Distutils 'build_py' command.iN(uglob(uCommand(u*(u convert_pathu Mixin2to3(ulogcBs/|EeZdZdZd8d9d:d;d<gZdd gZidd6ZddZddZ ddZ ddZ ddZ ddZ ddZddZd d!Zd"d#Zd$d%Zd&d'Zd(d)Zd*d+Zd,d-d.Zd/d0Zd1d2Zd3d4Zd5d6Zd7S(=ubuild_pyu5"build" pure Python modules (copy to build directory)u build-lib=ududirectory to "build" (copy) toucompileucucompile .py to .pycu no-compileu!don't compile .py files [default]u optimize=uOulalso compile with optimization: -O1 for "python -O", -O2 for "python -OO", and -O0 to disable [default: -O0]uforceufu2forcibly build everything (ignore file timestamps)cCsLd|_d|_d|_d|_d|_d|_d|_d|_dS(Ni( uNoneu build_libu py_modulesupackageu package_datau package_dirucompileuoptimizeuforce(uself((u?/opt/alt/python33/lib64/python3.3/distutils/command/build_py.pyuinitialize_options s       ubuild_py.initialize_optionsc Cs|jddd|jj|_|jj|_|jj|_i|_|jjrx6|jjjD]\}}t||j|ts u+build_py.get_data_files..( upackagesuget_package_diruosupathujoinu build_libusplitulenufind_data_filesuappend(uselfudataupackageusrc_diru build_diru filenames((uplenu?/opt/alt/python33/lib64/python3.3/distutils/command/build_py.pyuget_data_filesas %%ubuild_py.get_data_filescs|jjdg|jj|g}gxO|D]G}ttjj|t|}jfdd|Dq5WS(u6Return filenames for package's data files in 'src_dir'ucs4g|]*}|krtjj|r|qS((uosupathuisfile(u.0ufn(ufiles(u?/opt/alt/python33/lib64/python3.3/distutils/command/build_py.pyu s u,build_py.find_data_files..(u package_dataugetuglobuosupathujoinu convert_pathuextend(uselfupackageusrc_diruglobsupatternufilelist((ufilesu?/opt/alt/python33/lib64/python3.3/distutils/command/build_py.pyufind_data_filesys !$ubuild_py.find_data_filescCsd}x|jD]v\}}}}xa|D]Y}tjj||}|jtjj||jtjj|||ddq)WqWdS(u$Copy data files into build directoryu preserve_modeNF( uNoneu data_filesuosupathujoinumkpathudirnameu copy_fileuFalse(uselfulastdirupackageusrc_diru build_diru filenamesufilenameutarget((u?/opt/alt/python33/lib64/python3.3/distutils/command/build_py.pyubuild_package_datas ubuild_py.build_package_datac Cs|jd}|js5|r.tjj|SdSng}x|ry|jdj|}Wn-tk r|jd|d|d=Yq>X|jd|tjj|Sq>W|jjd}|dk r|jd|n|rtjj|SdSdS(uReturn the directory, relative to the top of the source distribution, where package 'package' should be found (at least according to the 'package_dir' option, if any).u.uiiNii( usplitu package_diruosupathujoinuKeyErroruinsertugetuNone(uselfupackageupathutailupdir((u?/opt/alt/python33/lib64/python3.3/distutils/command/build_py.pyuget_package_dirs(      ubuild_py.get_package_dircCs|dkrYtjj|s1td|ntjj|sYtd|qYn|rtjj|d}tjj|r|Stjdd|ndS(Nuu%package directory '%s' does not existu>supposed package directory '%s' exists, but is not a directoryu __init__.pyu!package init file '%s' not found u(or not a regular file)( uosupathuexistsuDistutilsFileErroruisdirujoinuisfileuloguwarnuNone(uselfupackageu package_diruinit_py((u?/opt/alt/python33/lib64/python3.3/distutils/command/build_py.pyu check_packages  ubuild_py.check_packagecCs1tjj|s)tjd||dSdSdS(Nu!file %s (for module %s) not foundFT(uosupathuisfileuloguwarnuFalseuTrue(uselfumoduleu module_file((u?/opt/alt/python33/lib64/python3.3/distutils/command/build_py.pyu check_modulesubuild_py.check_modulec Cs|j||ttjj|d}g}tjj|jj}xx|D]p}tjj|}||krtjjtjj |d}|j |||fqP|j d|qPW|S(Nu*.pyiu excluding %s( u check_packageuglobuosupathujoinuabspathu distributionu script_nameusplitextubasenameuappendu debug_print( uselfupackageu package_diru module_filesumodulesu setup_scriptufuabs_fumodule((u?/opt/alt/python33/lib64/python3.3/distutils/command/build_py.pyufind_package_moduless  "ubuild_py.find_package_modulesc Cs%i}g}x|jD]}|jd}dj|dd}|d}y||\}}Wn'tk r|j|}d}YnX|s|j||} |df||<| r|j|d| fqntjj||d} |j || sqn|j||| fqW|S(uFinds individually-specified Python modules, ie. those listed by module name in 'self.py_modules'. Returns a list of tuples (package, module_base, filename): 'package' is a tuple of the path through package-space to the module; 'module_base' is the bare (no packages, no dots) module name, and 'filename' is the path to the ".py" file (relative to the distribution root) that implements the module. u.iiu__init__u.pyii( u py_modulesusplitujoinuKeyErroruget_package_diru check_packageuappenduosupathu check_module( uselfupackagesumodulesumoduleupathupackageu module_baseu package_dirucheckeduinit_pyu module_file((u?/opt/alt/python33/lib64/python3.3/distutils/command/build_py.pyu find_moduless*   ubuild_py.find_modulescCswg}|jr%|j|jn|jrsxB|jD]4}|j|}|j||}|j|q8Wn|S(u4Compute the list of all modules that will be built, whether they are specified one-module-at-a-time ('self.py_modules') or by whole packages ('self.packages'). Return a list of tuples (package, module, module_file), just like 'find_modules()' and 'find_package_modules()' do.(u py_modulesuextendu find_modulesupackagesuget_package_dirufind_package_modules(uselfumodulesupackageu package_dirum((u?/opt/alt/python33/lib64/python3.3/distutils/command/build_py.pyufind_all_moduless  ubuild_py.find_all_modulescCsdd|jDS(NcSsg|]}|dqS(ii((u.0umodule((u?/opt/alt/python33/lib64/python3.3/distutils/command/build_py.pyu -s u-build_py.get_source_files..(ufind_all_modules(uself((u?/opt/alt/python33/lib64/python3.3/distutils/command/build_py.pyuget_source_files,subuild_py.get_source_filescCs.|gt||dg}tjj|S(Nu.py(ulistuosupathujoin(uselfu build_dirupackageumoduleu outfile_path((u?/opt/alt/python33/lib64/python3.3/distutils/command/build_py.pyuget_module_outfile/subuild_py.get_module_outfileicCs|j}g}x|D]\}}}|jd}|j|j||}|j||r|jr|jtj|ddn|j dkr|jtj|ddqqqW|dd|j D7}|S(Nu.udebug_overrideicSs>g|]4\}}}}|D]}tjj||qqS((uosupathujoin(u.0upackageusrc_diru build_diru filenamesufilename((u?/opt/alt/python33/lib64/python3.3/distutils/command/build_py.pyu Cs u(build_py.get_outputs..TF( ufind_all_modulesusplituget_module_outfileu build_libuappenducompileuimpucache_from_sourceuTrueuoptimizeuFalseu data_files(uselfuinclude_bytecodeumodulesuoutputsupackageumoduleu module_fileufilename((u?/opt/alt/python33/lib64/python3.3/distutils/command/build_py.pyu get_outputs3s"     ubuild_py.get_outputscCst|tr!|jd}n$t|ttfsEtdn|j|j||}tj j |}|j ||j ||ddS(Nu.u:'package' must be a string (dot-separated), list, or tupleu preserve_modei( u isinstanceustrusplitulistutupleu TypeErroruget_module_outfileu build_libuosupathudirnameumkpathu copy_file(uselfumoduleu module_fileupackageuoutfileudir((u?/opt/alt/python33/lib64/python3.3/distutils/command/build_py.pyu build_moduleJs  ubuild_py.build_modulecCs=|j}x*|D]"\}}}|j|||qWdS(N(u find_modulesu build_module(uselfumodulesupackageumoduleu module_file((u?/opt/alt/python33/lib64/python3.3/distutils/command/build_py.pyu build_modulesYs ubuild_py.build_modulescCsxxq|jD]f}|j|}|j||}x<|D]4\}}}||ksYt|j|||q8Wq WdS(N(upackagesuget_package_dirufind_package_modulesuAssertionErroru build_module(uselfupackageu package_dirumodulesupackage_umoduleu module_file((u?/opt/alt/python33/lib64/python3.3/distutils/command/build_py.pyubuild_packagesbs  ubuild_py.build_packagesc Cstjr|jddSddlm}|j}|d tjkrV|tj}n|jr||ddd|j d|d|j n|j dkr||d|j d|j d|d|j ndS( Nu%byte-compiling is disabled, skipping.i(u byte_compileiuoptimizeuforceuprefixudry_runi( usysudont_write_bytecodeuwarnudistutils.utilu byte_compileu build_libuosusepucompileuforceudry_runuoptimize(uselfufilesu byte_compileuprefix((u?/opt/alt/python33/lib64/python3.3/distutils/command/build_py.pyu byte_compilevs    ubuild_py.byte_compileN(u build-lib=ududirectory to "build" (copy) to(ucompileucucompile .py to .pyc(u no-compileNu!don't compile .py files [default](u optimize=uOulalso compile with optimization: -O1 for "python -O", -O2 for "python -OO", and -O0 to disable [default: -O0](uforceufu2forcibly build everything (ignore file timestamps)(u__name__u __module__u __qualname__u descriptionuNoneu user_optionsuboolean_optionsu negative_optuinitialize_optionsufinalize_optionsurunuget_data_filesufind_data_filesubuild_package_datauget_package_diru check_packageu check_moduleufind_package_modulesu find_modulesufind_all_modulesuget_source_filesuget_module_outfileu get_outputsu build_moduleu build_modulesubuild_packagesu byte_compile(u __locals__((u?/opt/alt/python33/lib64/python3.3/distutils/command/build_py.pyubuild_pys8       '    4     ubuild_pycBs,|EeZdZddZddZdS(u build_py_2to3cCslg|_|jr|jn|jr?|j|jn|j|j|j|jdddS(Nuinclude_bytecodei( u updated_filesu py_modulesu build_modulesupackagesubuild_packagesubuild_package_dataurun_2to3u byte_compileu get_outputs(uself((u?/opt/alt/python33/lib64/python3.3/distutils/command/build_py.pyuruns      ubuild_py_2to3.runcCs=tj||||}|dr9|jj|dn|S(Nii(ubuild_pyu build_moduleu updated_filesuappend(uselfumoduleu module_fileupackageures((u?/opt/alt/python33/lib64/python3.3/distutils/command/build_py.pyu build_modules ubuild_py_2to3.build_moduleN(u__name__u __module__u __qualname__urunu build_module(u __locals__((u?/opt/alt/python33/lib64/python3.3/distutils/command/build_py.pyu build_py_2to3s u build_py_2to3(u__doc__uosuimpusysuglobudistutils.coreuCommandudistutils.errorsudistutils.utilu convert_pathu Mixin2to3u distutilsulogubuild_pyu build_py_2to3(((u?/opt/alt/python33/lib64/python3.3/distutils/command/build_py.pyus    |PK!36fGG(command/__pycache__/sdist.cpython-33.pycnu[ fEc@sdZddlZddlZddlZddlTddlmZddlmZddlm Z ddl m Z m Z m Z mZddlmZddlTdd lmZdd l mZdd lmZd d ZGddde ZdS(uadistutils.command.sdist Implements the Distutils 'sdist' command (create a source distribution).iN(u*(uglob(uwarn(uCommand(udir_utiludep_utilu file_utilu archive_util(uTextFile(uFileList(ulog(u convert_pathcCsddlm}ddlm}g}x6|jD](}|jd|d||dfq3W|j||jddS(uoPrint all possible values for the 'formats' option (used by the "--help-formats" command-line option). i(u FancyGetopt(uARCHIVE_FORMATSuformats=iu.List of available source distribution formats:N( udistutils.fancy_getoptu FancyGetoptudistutils.archive_utiluARCHIVE_FORMATSukeysuappenduNoneusortu print_help(u FancyGetoptuARCHIVE_FORMATSuformatsuformat((u</opt/alt/python33/lib64/python3.3/distutils/command/sdist.pyu show_formatss  u show_formatscBsi|EeZdZdZddZdGdHdIdJdKdLdMdNdOddddfdPdQg Zd ddddd!gZd#dFd$efgZ id d 6dd6Z id%d&6d'd(6Z d)efgZ d*d+Z d,d-Zd.d/Zd0d1Zd2d3Zd4d5Zd6d7Zd8d9Zd:d;Zd<d=Zd>d?Zd@dAZdBdCZdDdEZdFS(Rusdistu6create a source distribution (tarball, zip file, etc.)cCs|jS(uYCallable used for the check sub-command. Placed here so user_options can view it(umetadata_check(uself((u</opt/alt/python33/lib64/python3.3/distutils/command/sdist.pyuchecking_metadata&susdist.checking_metadatau template=utu5name of manifest template file [default: MANIFEST.in]u manifest=umu)name of manifest file [default: MANIFEST]u use-defaultsuRinclude the default file set in the manifest [default; disable with --no-defaults]u no-defaultsu"don't include the default file setupruneuspecifically exclude files/directories that should not be distributed (build tree, RCS/CVS dirs, etc.) [default; disable with --no-prune]uno-pruneu$don't automatically exclude anythingu manifest-onlyuouEjust regenerate the manifest and then stop (implies --force-manifest)uforce-manifestufukforcibly regenerate the manifest and carry on as usual. Deprecated: now the manifest is always regenerated.uformats=u6formats for source distribution (comma-separated list)u keep-tempuku1keep the distribution tree around after creating uarchive file(s)u dist-dir=uduFdirectory to put the source distribution archive(s) in [default: dist]umetadata-checku[Ensure that all required elements of meta-data are supplied. Warn if any missing. [default]u help-formatsu#list available distribution formatsugztaruposixuzipuntucheckcCsgd|_d|_d|_d|_d|_d|_d|_d|_d|_ d|_ d|_ dS(Nii( uNoneutemplateumanifestu use_defaultsupruneu manifest_onlyuforce_manifestuformatsu keep_tempudist_diru archive_filesumetadata_check(uself((u</opt/alt/python33/lib64/python3.3/distutils/command/sdist.pyuinitialize_options`s          usdist.initialize_optionsc Cs|jdkrd|_n|jdkr6d|_n|jd|jdkry|jtjg|_Wqtk rt dtjYqXnt j |j}|rt d|n|j dkrd|_ ndS(NuMANIFESTu MANIFEST.inuformatsu<don't know how to create source distributions on platform %suunknown archive format '%s'udist(umanifestuNoneutemplateuensure_string_listuformatsudefault_formatuosunameuKeyErroruDistutilsPlatformErroru archive_utilucheck_archive_formatsuDistutilsOptionErrorudist_dir(uselfu bad_format((u</opt/alt/python33/lib64/python3.3/distutils/command/sdist.pyufinalize_optionsus$    usdist.finalize_optionscCsUt|_x!|jD]}|j|qW|j|jrGdS|jdS(N(uFileListufilelistuget_sub_commandsu run_commandu get_file_listu manifest_onlyumake_distribution(uselfucmd_name((u</opt/alt/python33/lib64/python3.3/distutils/command/sdist.pyuruns   u sdist.runcCs7tdt|jjd}|j|jdS(uDeprecated API.uadistutils.command.sdist.check_metadata is deprecated, use the check command insteaducheckN(uwarnuPendingDeprecationWarningu distributionuget_command_objuensure_finalizedurun(uselfucheck((u</opt/alt/python33/lib64/python3.3/distutils/command/sdist.pyucheck_metadatas   usdist.check_metadatacCstjj|j}| rP|jrP|j|jj|jjdS|sq|j dd|jn|jj |j r|j n|r|j n|jr|jn|jj|jj|jdS(uCFigure out the list of files to include in the source distribution, and put it in 'self.filelist'. This might involve reading the manifest template (and writing the manifest), or just reading the manifest, or just using the default file set -- it all depends on the user's options. Nu&manifest template '%s' does not exist u(using default file list)(uosupathuisfileutemplateu_manifest_is_not_generatedu read_manifestufilelistusorturemove_duplicatesuwarnufindallu use_defaultsu add_defaultsu read_templateupruneuprune_file_listuwrite_manifest(uselfutemplate_exists((u</opt/alt/python33/lib64/python3.3/distutils/command/sdist.pyu get_file_lists(            usdist.get_file_listcCs d |jjg}x|D]}t|tr|}d}x:|D]2}tjj|rAd}|j j |PqAqAW|s|j ddj |qqtjj|r|j j |q|j d|qWddg}x9|D]1}t tjjt|}|j j|qW|jd}|jjrV|j j|jnxM|jD]B\} } } } x-| D]%} |j j tjj | | qyWq`W|jjr`x|jjD]}t|tr t|}tjj|rY|j j |qYq|\}} x?| D]7}t|}tjj|r|j j |qqWqWn|jjr|jd }|j j|jn|jjr|jd }|j j|jn|jjr|jd }|j j|jnd S(u9Add all the default files to self.filelist: - README or README.txt - setup.py - test/test*.py - all pure Python modules mentioned in setup script - all files pointed by package_data (build_py) - all files defined in data_files. - all files defined as scripts. - all C sources listed as part of extensions or C libraries in the setup script (doesn't catch C headers!) Warns if (README or README.txt) or setup.py are missing; everything else is optional. uREADMEu README.txtu,standard file not found: should have one of u, ustandard file '%s' not foundu test/test*.pyu setup.cfgubuild_pyu build_extu build_clibu build_scriptsN(uREADMEu README.txtFT(u distributionu script_nameu isinstanceutupleuFalseuosupathuexistsuTrueufilelistuappenduwarnujoinufilteruisfileuglobuextenduget_finalized_commanduhas_pure_modulesuget_source_filesu data_filesuhas_data_filesustru convert_pathuhas_ext_modulesuhas_c_librariesu has_scripts(uselfu standardsufnualtsugot_ituoptionalupatternufilesubuild_pyupkgusrc_diru build_diru filenamesufilenameuitemudirnameufu build_extu build_clibu build_scripts((u</opt/alt/python33/lib64/python3.3/distutils/command/sdist.pyu add_defaultss\      '    usdist.add_defaultscCstjd|jt|jdddddddddddd}zx|j}|d krhPny|jj|WqLtt fk r}z%|j d |j |j |fWYd d }~XqLXqLWd |j Xd S( uRead and parse manifest template file named by self.template. (usually "MANIFEST.in") The parsing and processing is done by 'self.filelist', which updates itself accordingly. ureading manifest template '%s'ustrip_commentsiu skip_blanksu join_linesu lstrip_wsu rstrip_wsu collapse_joinu%s, line %d: %sN(uloguinfoutemplateuTextFileureadlineuNoneufilelistuprocess_template_lineuDistutilsTemplateErroru ValueErroruwarnufilenameu current_lineuclose(uselfutemplateulineumsg((u</opt/alt/python33/lib64/python3.3/distutils/command/sdist.pyu read_template"s    %usdist.read_templatecCs|jd}|jj}|jjdd|j|jjdd|tjdkred}nd}dddd d d d g}d |dj ||f}|jj|dddS(uvPrune off branches that might slip into the file list as created by 'read_template()', but really don't belong there: * the build tree (typically "build") * the release tree itself (only an issue if we ran "sdist" previously with --keep-temp, or it aborted) * any RCS, CVS, .svn, .hg, .git, .bzr, _darcs directories ubuilduprefixuwin32u/|\\u/uRCSuCVSu\.svnu\.hgu\.gitu\.bzru_darcsu(^|%s)(%s)(%s).*u|uis_regexiN( uget_finalized_commandu distributionu get_fullnameufilelistuexclude_patternuNoneu build_baseusysuplatformujoin(uselfubuildubase_dirusepsuvcs_dirsuvcs_ptrn((u</opt/alt/python33/lib64/python3.3/distutils/command/sdist.pyuprune_file_list?s  usdist.prune_file_listcCst|jr$tjd|jdS|jjdd}|jdd|jtj |j|fd|jdS(uWrite the file list in 'self.filelist' (presumably as filled in by 'add_defaults()' and 'read_template()') to the manifest file named by 'self.manifest'. u5not writing to manually maintained manifest file '%s'Niu*# file GENERATED by distutils, do NOT edituwriting manifest file '%s'( u_manifest_is_not_generateduloguinfoumanifestufilelistufilesuinsertuexecuteu file_utilu write_file(uselfucontent((u</opt/alt/python33/lib64/python3.3/distutils/command/sdist.pyuwrite_manifestWs   usdist.write_manifestc CsPtjj|jsdSt|j}z|j}Wd|jX|dkS(Nu+# file GENERATED by distutils, do NOT edit F(uosupathuisfileumanifestuFalseuopenureadlineuclose(uselfufpu first_line((u</opt/alt/python33/lib64/python3.3/distutils/command/sdist.pyu_manifest_is_not_generatedfs u sdist._manifest_is_not_generatedcCsytjd|jt|j}xF|D]>}|j}|jds)| rWq)n|jj|q)W|jdS(uRead the manifest file (named by 'self.manifest') and use it to fill in 'self.filelist', the list of files to include in the source distribution. ureading manifest file '%s'u#N( uloguinfoumanifestuopenustripu startswithufilelistuappenduclose(uselfumanifestuline((u</opt/alt/python33/lib64/python3.3/distutils/command/sdist.pyu read_manifestrs  usdist.read_manifestcCs|j|tj||d|jttdrHd}d|}nd}d|}|sntjdn tj |x_|D]W}tj j |stjd|qtj j ||}|j ||d|qW|jjj|dS( uCreate the directory tree that will become the source distribution archive. All directories implied by the filenames in 'files' are created under 'base_dir', and then we hard link or copy (if hard linking is unavailable) those files into place. Essentially, this duplicates the developer's source tree, but in a directory named after the distribution, containing only the files to be distributed. udry_runulinkuhardumaking hard links in %s...ucopying files to %s...u)no files to distribute -- empty manifest?u#'%s' not a regular file -- skippingN(umkpathudir_utilu create_treeudry_runuhasattruosuNoneuloguwarnuinfoupathuisfileujoinu copy_fileu distributionumetadatauwrite_pkg_info(uselfubase_dirufilesulinkumsgufileudest((u</opt/alt/python33/lib64/python3.3/distutils/command/sdist.pyumake_release_trees      usdist.make_release_treecCs|jj}tjj|j|}|j||jjg}d|j kr}|j j |j j |j j dnxR|j D]G}|j ||d|}|j ||jjj dd|fqW||_|jstj|d|jndS(uCreate the source distribution(s). First, we create the release tree with 'make_release_tree()'; then, we create all required archive files (according to 'self.formats') from the release tree. Finally, we clean up by blowing away the release tree (unless 'self.keep_temp' is true). The list of archive files created is stored so it can be retrieved later by 'get_archive_files()'. utarubase_dirusdistuudry_runN(u distributionu get_fullnameuosupathujoinudist_dirumake_release_treeufilelistufilesuformatsuappendupopuindexu make_archiveu dist_filesu archive_filesu keep_tempudir_utilu remove_treeudry_run(uselfubase_diru base_nameu archive_filesufmtufile((u</opt/alt/python33/lib64/python3.3/distutils/command/sdist.pyumake_distributions +    usdist.make_distributioncCs|jS(uzReturn the list of archive files created when the command was run, or None if the command hasn't run yet. (u archive_files(uself((u</opt/alt/python33/lib64/python3.3/distutils/command/sdist.pyuget_archive_filessusdist.get_archive_filesN(u template=utu5name of manifest template file [default: MANIFEST.in](u manifest=umu)name of manifest file [default: MANIFEST](u use-defaultsNuRinclude the default file set in the manifest [default; disable with --no-defaults](u no-defaultsNu"don't include the default file set(upruneNuspecifically exclude files/directories that should not be distributed (build tree, RCS/CVS dirs, etc.) [default; disable with --no-prune](uno-pruneNu$don't automatically exclude anything(u manifest-onlyuouEjust regenerate the manifest and then stop (implies --force-manifest)(uforce-manifestufukforcibly regenerate the manifest and carry on as usual. Deprecated: now the manifest is always regenerated.(uformats=Nu6formats for source distribution (comma-separated list)(u dist-dir=uduFdirectory to put the source distribution archive(s) in [default: dist](umetadata-checkNu[Ensure that all required elements of meta-data are supplied. Warn if any missing. [default](u__name__u __module__u __qualname__u descriptionuchecking_metadatauNoneu user_optionsuboolean_optionsu show_formatsu help_optionsu negative_optudefault_formatu sub_commandsuinitialize_optionsufinalize_optionsurunucheck_metadatau get_file_listu add_defaultsu read_templateuprune_file_listuwrite_manifestu_manifest_is_not_generatedu read_manifestumake_release_treeumake_distributionuget_archive_files(u __locals__((u</opt/alt/python33/lib64/python3.3/distutils/command/sdist.pyusdist"sf            ( P     * usdist(u__doc__uosustringusysutypesuglobuwarningsuwarnudistutils.coreuCommandu distutilsudir_utiludep_utilu file_utilu archive_utiludistutils.text_fileuTextFileudistutils.errorsudistutils.filelistuFileListulogudistutils.utilu convert_pathu show_formatsusdist(((u</opt/alt/python33/lib64/python3.3/distutils/command/sdist.pyus    "  PK!hh,command/__pycache__/bdist_msi.cpython-33.pyonu[ fc@sdZddlZddlZddlmZddlmZddlmZddl m Z ddl m Z ddl mZdd lmZddlZdd lmZmZmZdd lmZmZmZmZGd d d eZGdddeZdS(u# Implements the bdist_msi command. iN(uCommand(u remove_tree(uget_python_version(u StrictVersion(uDistutilsOptionError(u get_platform(ulog(uschemausequenceutext(u DirectoryuFeatureuDialoguadd_datacBst|EeZdZdZddZddZdddd Zd dd d Zd dddZddZ dS(uPyDialoguDialog class with a fixed layout: controls at the top, then a ruler, then a list of buttons: back, next, cancel. Optionally a bitmap at the left.cOsKtj|||jd}d|d}|jdd||jddS(ubDialog(database, name, x, y, w, h, attributes, title, first, default, cancel, bitmap=true)i$iiHu BottomLineiN(uDialogu__init__uhulineuw(uselfuargsukwurulerubmwidth((u@/opt/alt/python33/lib64/python3.3/distutils/command/bdist_msi.pyu__init__s uPyDialog.__init__c Cs'|jddddddd|dS( u,Set the title text of the dialog at the top.uTitleii i@i<iu{\VerdanaBold10}%sN(utext(uselfutitle((u@/opt/alt/python33/lib64/python3.3/distutils/command/bdist_msi.pyutitle#suPyDialog.titleuBackic Cs>|rd}nd}|j|d|jddd|||S(uAdd a back button with a given title, the tab-next button, its name in the Control table, possibly initially disabled. Return the button, so that events can be associatediiiii8i(u pushbuttonuh(uselfutitleunextunameuactiveuflags((u@/opt/alt/python33/lib64/python3.3/distutils/command/bdist_msi.pyuback*s u PyDialog.backuCancelc Cs>|rd}nd}|j|d|jddd|||S(uAdd a cancel button with a given title, the tab-next button, its name in the Control table, possibly initially disabled. Return the button, so that events can be associatediii0ii8i(u pushbuttonuh(uselfutitleunextunameuactiveuflags((u@/opt/alt/python33/lib64/python3.3/distutils/command/bdist_msi.pyucancel5s uPyDialog.canceluNextc Cs>|rd}nd}|j|d|jddd|||S(uAdd a Next button with a given title, the tab-next button, its name in the Control table, possibly initially disabled. Return the button, so that events can be associatediiiii8i(u pushbuttonuh(uselfutitleunextunameuactiveuflags((u@/opt/alt/python33/lib64/python3.3/distutils/command/bdist_msi.pyunext@s u PyDialog.nextc Cs:|j|t|j|d|jdddd||S(uAdd a button with a given title, the tab-next button, its name in the Control table, giving its x position; the y-position is aligned with the other buttons. Return the button, so that events can be associatediii8ii(u pushbuttonuintuwuh(uselfunameutitleunextuxpos((u@/opt/alt/python33/lib64/python3.3/distutils/command/bdist_msi.pyuxbuttonKsuPyDialog.xbuttonN( u__name__u __module__u __qualname__u__doc__u__init__utitleubackucancelunextuxbutton(u __locals__((u@/opt/alt/python33/lib64/python3.3/distutils/command/bdist_msi.pyuPyDialogs    uPyDialogcBsa|EeZdZdZdedfdddefddd d fd ed d fdddfdddfdddfdedfdedfdedfg ZddddgZdddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0gZd1Z d2d3Z d4d5Z d6d7Z d8d9Z d:d;Zd<d=Zd>d?Zd@dAZdBS(Cu bdist_msiu7create a Microsoft Installer (.msi) binary distributionu bdist-dir=u1temporary directory for creating the distributionu plat-name=upu;platform name to embed in generated filenames (default: %s)u keep-tempuku/keep the pseudo-installation tree around after u!creating the distribution archiveutarget-version=u!require a specific python versionu on the target systemuno-target-compileucu/do not compile .py to .pyc on the target systemuno-target-optimizeuou:do not compile .py to .pyo (optimized)on the target systemu dist-dir=udu-directory to put final built distributions inu skip-buildu2skip rebuilding everything (for testing/debugging)uinstall-script=uTbasename of installation script to be run afterinstallation or before deinstallationupre-install-script=u{Fully qualified filename of a script to be run before any files are installed. This script need not be in the distributionu2.0u2.1u2.2u2.3u2.4u2.5u2.6u2.7u2.8u2.9u3.0u3.1u3.2u3.3u3.4u3.5u3.6u3.7u3.8u3.9uXcCsgd|_d|_d|_d|_d|_d|_d|_d|_d|_ d|_ d|_ dS(Ni( uNoneu bdist_diru plat_nameu keep_tempuno_target_compileuno_target_optimizeutarget_versionudist_diru skip_builduinstall_scriptupre_install_scriptuversions(uself((u@/opt/alt/python33/lib64/python3.3/distutils/command/bdist_msi.pyuinitialize_options}s          ubdist_msi.initialize_optionscCsr|jdd |jdkrL|jdj}tjj|d|_nt}|j rz|j j rz||_ n|j r|j g|_ |j r|j j r|j |krtd|fqnt|j|_ |jdd d |jrtdn|jrexI|j jD]%}|jtjj|kr&Pq&q&Wtd|jnd|_dS( Nubdistu skip_buildumsiuMtarget version can only be %s, or the '--skip-build' option must be specifiedudist_diru plat_nameu5the pre-install-script feature is not yet implementedu(install_script '%s' not found in scripts(u skip_buildu skip_build(udist_dirudist_dir(u plat_nameu plat_name(uset_undefined_optionsu bdist_diruNoneuget_finalized_commandu bdist_baseuosupathujoinuget_python_versionutarget_versionu distributionuhas_ext_modulesuversionsu skip_builduDistutilsOptionErrorulistu all_versionsupre_install_scriptuinstall_scriptuscriptsubasenameuinstall_script_key(uselfu bdist_baseu short_versionuscript((u@/opt/alt/python33/lib64/python3.3/distutils/command/bdist_msi.pyufinalize_optionss:       ubdist_msi.finalize_optionscCs}|js|jdn|jddd}|j|_|j|_d|_|jd}d|_d|_|jj r|j }|st j dd}nd|j |f}|jd}tjj|jd ||_ntjd |j|jt jjdtjj|jd |jt jd=|j|j|jj}|j|}tjj|}tjj|rtj|n|jj }|j!} | s|j"} n| sd } n|j#} d t$| j } |jj}|j r#d|j |f} n d|} t%j&|t'| t%j(| | |_)t%j*|j)t+d| fg} |j,p|j-}|r| j.d|fn|j/r| j.d|j/fn| rt0|j)d| n|j1|j2|j3|j4|j)j5t6|jdrWd|j p8d|f}|jj7j.|n|j8syt9|jd|j:ndS(Nubuilduinstallureinit_subcommandsiiu install_libiu.%s-%sulibuinstalling to %suPURELIBuUNKNOWNu%d.%d.%du Python %s %su Python %su DistVersionu ARPCONTACTuARPURLINFOABOUTuPropertyu dist_filesu bdist_msiuanyudry_run(;u skip_buildu run_commandureinitialize_commandu bdist_diruprefixuwarn_dirucompileuoptimizeu distributionuhas_ext_modulesutarget_versionusysuversionu plat_nameuget_finalized_commanduosupathujoinu build_baseu build_libuloguinfouensure_finalizeduinserturunumkpathudist_diru get_fullnameuget_installer_filenameuabspathuexistsuunlinkumetadatauauthoru maintaineru get_versionu StrictVersionumsilibu init_databaseuschemaugen_uuidudbu add_tablesusequenceu author_emailumaintainer_emailuappenduurluadd_datauadd_find_pythonu add_filesu add_scriptsuadd_uiuCommituhasattru dist_filesu keep_tempu remove_treeudry_run(uselfuinstallu install_libutarget_versionuplat_specifierubuildufullnameuinstaller_nameumetadatauauthoruversionusversionu product_nameupropsuemailutup((u@/opt/alt/python33/lib64/python3.3/distutils/command/bdist_msi.pyuruns|        %                  u bdist_msi.runc Cs|j}tjd}tjj|j}t||d|dd}t |ddddddd}||d fg}x|j |j gD]}d|}d|} } d} ||j krd } d } nd |} d} t || | | d| d|}t|||||| }|j |||fqW|j i}x|D]\}}}|g}xg|r|j}xNtj|jD]:}tjj|j|}tjj|r d |j||f}||} t||||| |}|j |q|js.|j|j|dn||kr|j|}||<||jkr|jr|td|nd||_qq||}t|jd|||j|d|jfgqWqiW|j qNW|j|dS(Nu distfilesu TARGETDIRu SourceDiruPythonu Everythingiiu directoryuuPython from another locationiuPython %s from registryu%s|%suMultiple files with name %su[#%s]u DuplicateFile(udbumsilibuCABuosupathuabspathu bdist_diru DirectoryuNoneuFeatureuversionsu other_versionuappenduCommitupopulistdiruabsoluteujoinuisdiru make_shortu componentustart_componentulogicaluadd_fileuinstall_scriptuinstall_script_keyuDistutilsOptionErroruadd_dataucommit(uselfudbucaburootdirurootufuitemsuversionutargetunameudefaultudescutitleuleveludiruseenufeatureutodoufileuafileushortunewdirukey((u@/opt/alt/python33/lib64/python3.3/distutils/command/bdist_msi.pyu add_files s\    !          +ubdist_msi.add_filesc Csd}x|jD]}d|}d|}d|}d|}d|}d|}d|} d |} d |} d |} tjrd} nd } t|jd|d |d| f|d|d| fgt|jd||f||fgt|jd|d | d|df| d!| d|df| d"| d| dfgt|jd|||f| ||df| d|d fgt|jd|||f| ||df| d|d fgt|jdd|dd|fg|d7}qWdS(#usAdds code to the installer to compute the location of Python. Properties PYTHON.MACHINE.X.Y and PYTHON.USER.X.Y will be set from the registry for each version of Python. Properties TARGETDIRX.Y will be set from PYTHON.USER.X.Y if defined, else from PYTHON.MACHINE.X.Y. Properties PYTHONX.Y will be set to TARGETDIRX.Y\python.exeiu)SOFTWARE\Python\PythonCore\%s\InstallPathupython.machine.u python.user.uPYTHON.MACHINE.u PYTHON.USER.uPythonFromMachineuPythonFromUseru PythonExeu TARGETDIRuPYTHONiiu RegLocatoriu AppSearchu CustomActioni3iu[u]u ]\python.exeuInstallExecuteSequenceuInstallUISequenceu ConditionuPythoniu NOT TARGETDIRiNii3i3i3(uversionsumsilibuWin64uadd_dataudbuNone(uselfustartuveru install_pathu machine_reguuser_regu machine_propu user_propumachine_actionu user_actionu exe_actionutarget_dir_propuexe_propuType((u@/opt/alt/python33/lib64/python3.3/distutils/command/bdist_msi.pyuadd_find_pythonCsJ                       ubdist_msi.add_find_pythoncCsQ|jrd}x|j|jgD]l}d|}d|}t|jd|d||jfgt|jd|d||fg|d7}q#Wn|jrMtjj |j d }t |d }|j d |j t |jj |jt|jd d tj|fgt|jddgt|jddgndS(Niuinstall_script.uPYTHONu CustomActioni2uInstallExecuteSequenceu &Python%s=3iupreinstall.batuwurem =""" %1 %0 exit """ uBinaryu PreInstalliu NOT Installedi(u PreInstalliu PreInstallN(u PreInstallu NOT Installedi(uinstall_scriptuversionsu other_versionuadd_dataudbuinstall_script_keyupre_install_scriptuosupathujoinu bdist_diruopenuwriteureaducloseumsilibuBinaryuNone(uselfustartuveruinstall_actionuexe_propuscriptfnuf((u@/opt/alt/python33/lib64/python3.3/distutils/command/bdist_msi.pyu add_scriptsys,            ubdist_msi.add_scriptscCsG|j}d}}d}d}d}d}d}d} t|dddddddgt|dddddgt|d dddddgt|d/tjt|d0tjt|d1||||||d2d2d2 } | jd3| jd4d2d5d| j d6d7d5d| jd8d9d:d;d<d=d>| jd?d9d@d;dAd=dB| j d2d6dCd2} | j dDdEt|dF||||||d2d2d2 } | jdG| jd4d2d5d| j d6d7d5d| jd8d9d:d;d<d=dH| jd?d9d@d;dAd=dB| j d2d6dCd2} | j dDdEt|dI||||||d2d2d2 } | jdJ| jd4d2d5d| j d6d7d5d| jdKd9dLd;dAd=dB| j d2d6dCd2} | j dDdMt|dN||||dO|dPdPdPdQd }|jdRd9dSdTd9d=dU|jdKdAdVdWdAd=dX|jdYdAdZd[ddd\|j d]d^dAd_d[d`dadbddd |jdEdcdCdE} | j dDdE|j dcdPdCdc} | j dDdc|j dPdEdCdP} | j dDdPt|d ddd[ddde|dfdd }|jdfdddWdgddh|jdidjdkdldmddndj dDdo|jdpdqdkdldmddrdj dDds|jdtddkdldmddudj dDdv|jdwdxdkdldmdd6dj dDdy|jdzdldkdldmddcdj dDd{|jd|d}dkdldmdd~dj dDd|jdddkdldmddPdj dDdt|dddddd|dndndn }|jdYdgd9dddd|jdrdkdddddrdn} | j dDdE|jdnddddddndr} | j dDdMt|ddddd||dMdMdM }|jdYdgd9dddd|jdMddddddMd} | j dDdEt|d!||||||d6d6d6 }|jdKd9d:d;dd=d|jd|jd/d9dd;dAd=d} | jd/dY|jdd9dd;dd=d} | jddY|jd7dd5d|j ddd5d|j d6d} | j ddt|d'||||||ddd6 }|jd|jdd9dddAdd|jj|jd4dd5d|j dd6} d}| j ddd|xF|j|jgD]1}|d7}| j dd|d|d|qW| j ddd|d| j dDdMd|d|j d6d} | j dd|j ddd9dddjddddd } | j dd|j}d|}d|}|jdd9dTdd9dd} | jd|| jd|| jd|| jd||j ddd9ddddd|ddd } | jd|| jd|| jd|| jd|t|d||||||ddddQd }|jdRd9dSdTd9d=d|jdKdAdAdWdAd=d|jdYdAdd[ddd|j dddAdd[dddddd |jdd~ddj dDdMt|d$||||||ddd6 }|jd|jdd9ddddddhd }|jdddddAd|jdddddAd|jd7dd5d|j dd6} | j dddd| j dDdMdd|j d6d} | j ddt|d-||||||d6d6d6dQd }|jdRdAd9dTd9d=d|jdYdddddd|jdddddAdd|jd/d:d|d:dAdd} | jd/dY|j ddddjddddddd } | jdd|jd4dd5d|j dd6d5d|j d6d7j ddt|d*||||||ddd6 }|jd|jdd9dd[dxdd|jdd9dd[ddddhd }|jddddTdd|jddddTdd|jd4dd5d|j d2d6} | j dddd| j ddddS| j dddda| j dddd| j dddd| j dddd| j dddd| j dddd| j dDdMddA|j d6dj dddS(Ni2iri,u[ProductName] Setupiii uPropertyu DefaultUIFontuDlgFont8u ErrorDialoguErrorDlgu Progress1uInstallu Progress2uinstallsuMaintenanceForm_ActionuRepairu WhichUsersuALLu TextStyleuTahomai iu DlgFontBold8iu VerdanaBold10uVerdanai u VerdanaRed9iuInstallUISequenceu PrepareDlgu(Not Privileged or Windows9x or Installediu WhichUsersDlgu.Privileged and not Windows9x and not InstallediuSelectFeaturesDlgu Not InstallediuMaintenanceTypeDlgu,Installed AND NOT RESUME AND NOT Preselectediu ProgressDlgiu ActionTextuUITextu FatalErroruFinishu)[ProductName] Installer ended prematurelyu< BackuactiveuCanceluBacku Description1iiFi@iPiu[ProductName] setup ended prematurely because of an error. Your system has not been modified. To install this program at a later time, please run the installation again.u Description2iiu.Click the Finish button to exit the Installer.unameu EndDialoguExituUserExitu'[ProductName] Installer was interruptedu[ProductName] setup was interrupted. Your system has not been modified. To install this program at a later time, please run the installation again.u ExitDialogu&Completing the [ProductName] Installeru DescriptioniuReturnu FilesInUseiuRetryubitmapuTitleiiu{\DlgFontBold8}Files in Useiiu8Some files that need to be updated are currently in use.uTexti7iJuThe following applications are using files that need to be updated by this setup. Close these applications and then click Retry to continue the installation or Cancel to exit it.uListuListBoxikiiuFileInUseProcessuIgnoreieiu ErrorTexti0uuNixiHiQiuNouErrorNouYiuYesuErrorYesuAuAbortu ErrorAbortuCi*u ErrorCanceluIu ErrorIgnoreuOiuOkuErrorOkuRiu ErrorRetryu CancelDlgiiUiiu;Are you sure you want to cancel [ProductName] installation?i9i8iiuWaitForCostingDlguRPlease wait while the installer finishes determining your disk space requirements.ifi(uOPlease wait while the Installer prepares to guide you through the installation.u&Welcome to the [ProductName] Installerinu Pondering...u ActionDataiuNextu SpawnDialoguSelect Python InstallationsuHintu9Select the Python locations where %s should be installed.uNext >u [TARGETDIR]u [SourceDir]uorderingu [TARGETDIR%s]u FEATURE_SELECTED AND &Python%s=3uSpawnWaitDialogiuFeaturesu SelectionTreei<uFEATUREuPathEditu[FEATURE_SELECTED]u1u!FEATURE_SELECTED AND &Python%s<>3uOtheru$Provide an alternate Python locationuEnableuShowuDisableuHideiiu TARGETDIRu DiskCostDlguOKu&{\DlgFontBold8}Disk Space RequirementsuFThe disk space required for the installation of the selected features.i5uThe highlighted volumes (if any) do not have enough disk space available for the currently selected features. You can either remove some files from the highlighted volumes, or choose to install less features onto local drive(s), or select different destination drive(s).u VolumeListuVolumeCostListidiiu{120}{70}{70}{70}{70}g?u AdminInstalluGSelect whether to install [ProductName] for all users of this computer.iuInstall for all usersuJUSTMEiuInstall just for meu [ALLUSERS]uWhichUsers="ALL"u({\DlgFontBold8}[Progress1] [ProductName]i#iAuYPlease wait while the Installer [Progress2] [ProductName]. This may take several minutes.u StatusLabeluStatus:u ProgressBariu Progress doneu SetProgressuProgressu)Welcome to the [ProductName] Setup WizarduBodyTexti?u:Select whether you want to repair or remove [ProductName].uRepairRadioGroupiliu&Repair [ProductName]uRemovei$uRe&move [ProductName]u [REINSTALL]uMaintenanceForm_Action="Repair"u [Progress1]u Repairingu [Progress2]urepairsu Reinstallu[REMOVE]uMaintenanceForm_Action="Remove"i uRemovingi uremovesi iu MaintenanceForm_Action<>"Change"(u DefaultUIFontuDlgFont8(u ErrorDialoguErrorDlg(u Progress1uInstall(u Progress2uinstalls(uMaintenanceForm_ActionuRepair(u WhichUsersuALL(uDlgFont8uTahomai Ni(u DlgFontBold8uTahomaiNi(u VerdanaBold10uVerdanai Ni(u VerdanaRed9uVerdanai ii(u PrepareDlgu(Not Privileged or Windows9x or Installedi(u WhichUsersDlgu.Privileged and not Windows9x and not Installedi(uSelectFeaturesDlgu Not Installedi(uMaintenanceTypeDlgu,Installed AND NOT RESUME AND NOT Preselectedi(u ProgressDlgNiF(udbuadd_datauNoneutextu ActionTextuUITextuPyDialogutitleubackucancelunextueventuFalseucontroluDialogu pushbuttonumappingu distributionu get_fullnameuversionsu other_versionu conditionuxbuttonu radiogroupuadd(uselfudbuxuyuwuhutitleumodalumodelessutrack_disk_spaceufatalucu user_exitu exit_dialoguinuseuerrorucancelucostinguprepuseldlguorderuversionuveruinstall_other_condudont_install_other_conducostu whichusersuguprogressumaint((u@/opt/alt/python33/lib64/python3.3/distutils/command/bdist_msi.pyuadd_uis                .......$$$ !!        "  % ubdist_msi.add_uicCsT|jr%d||j|jf}nd||jf}tjj|j|}|S(Nu%s.%s-py%s.msiu %s.%s.msi(utarget_versionu plat_nameuosupathujoinudist_dir(uselfufullnameu base_nameuinstaller_name((u@/opt/alt/python33/lib64/python3.3/distutils/command/bdist_msi.pyuget_installer_filenames   u bdist_msi.get_installer_filenameN(u__name__u __module__u __qualname__u descriptionuNoneu get_platformu user_optionsuboolean_optionsu all_versionsu other_versionuinitialize_optionsufinalize_optionsurunu add_filesuadd_find_pythonu add_scriptsuadd_uiuget_installer_filename(u __locals__((u@/opt/alt/python33/lib64/python3.3/distutils/command/bdist_msi.pyu bdist_msiSsP     ( [ 6 6 & ?u bdist_msi(u__doc__usysuosudistutils.coreuCommandudistutils.dir_utilu remove_treeudistutils.sysconfiguget_python_versionudistutils.versionu StrictVersionudistutils.errorsuDistutilsOptionErrorudistutils.utilu get_platformu distutilsulogumsilibuschemausequenceutextu DirectoryuFeatureuDialoguadd_datauPyDialogu bdist_msi(((u@/opt/alt/python33/lib64/python3.3/distutils/command/bdist_msi.pyus ">PK!d/command/__pycache__/install_data.cpython-33.pycnu[ f c@sRdZddlZddlmZddlmZmZGdddeZdS(udistutils.command.install_data Implements the Distutils 'install_data' command, for installing platform-independent data files.iN(uCommand(u change_rootu convert_pathcBsn|EeZdZdZdddgZdgZd d Zd d ZddZ ddZ ddZ dS(u install_datauinstall data filesu install-dir=uduIbase directory for installing data files (default: installation base dir)uroot=u<install everything relative to this alternate root directoryuforceufu-force installation (overwrite existing files)cCs@d|_g|_d|_d|_|jj|_d|_dS(Nii(uNoneu install_diruoutfilesurootuforceu distributionu data_filesuwarn_dir(uself((uC/opt/alt/python33/lib64/python3.3/distutils/command/install_data.pyuinitialize_optionss     uinstall_data.initialize_optionscCs|jdddddS( Nuinstallu install_datau install_dirurootuforce(u install_datau install_dir(urooturoot(uforceuforce(uset_undefined_options(uself((uC/opt/alt/python33/lib64/python3.3/distutils/command/install_data.pyufinalize_options#s uinstall_data.finalize_optionscCsk|j|jxT|jD]I}t|trt|}|jra|jd||jfn|j||j\}}|j j |qt|d}t j j |st j j|j|}n|jrt|j|}n|j||dgkr|j j |qxF|dD]:}t|}|j||\}}|j j |q%WqWdS(NuMsetup script did not provide a directory for '%s' -- installing right in '%s'ii(umkpathu install_diru data_filesu isinstanceustru convert_pathuwarn_diruwarnu copy_fileuoutfilesuappenduosupathuisabsujoinurootu change_root(uselfufuoutu_udirudata((uC/opt/alt/python33/lib64/python3.3/distutils/command/install_data.pyurun*s*      uinstall_data.runcCs |jp gS(N(u data_files(uself((uC/opt/alt/python33/lib64/python3.3/distutils/command/install_data.pyu get_inputsKsuinstall_data.get_inputscCs|jS(N(uoutfiles(uself((uC/opt/alt/python33/lib64/python3.3/distutils/command/install_data.pyu get_outputsNsuinstall_data.get_outputsN(u install-dir=uduIbase directory for installing data files (default: installation base dir)(uroot=Nu<install everything relative to this alternate root directory(uforceufu-force installation (overwrite existing files)( u__name__u __module__u __qualname__u descriptionuNoneu user_optionsuboolean_optionsuinitialize_optionsufinalize_optionsurunu get_inputsu get_outputs(u __locals__((uC/opt/alt/python33/lib64/python3.3/distutils/command/install_data.pyu install_data s     ! u install_data(u__doc__uosudistutils.coreuCommandudistutils.utilu change_rootu convert_pathu install_data(((uC/opt/alt/python33/lib64/python3.3/distutils/command/install_data.pyus PK!L4)command/__pycache__/upload.cpython-33.pycnu[ fc@sdZddlTddlmZddlmZddlmZddlZddl Z ddl Z ddl Z ddl Z ddl mZddlmZmZmZdd lmZejd krdd lmZndd lmZGd d d eZdS(u`distutils.command.upload Implements the Distutils 'upload' subcommand (upload package to PyPI).i(u*(u PyPIRCCommand(uspawn(ulogN(ustandard_b64encode(uurlopenuRequestu HTTPError(uurlparseu2.5(umd5cBsm|EeZdZdZejddgZejdgZdd Zd d Zd d Z ddZ dS(uuploaduupload binary package to PyPIusignususign files to upload using gpgu identity=uiuGPG identity used to sign filescCs>tj|d|_d|_d|_d|_d|_dS(NuiF( u PyPIRCCommanduinitialize_optionsuusernameupasswordu show_responseuFalseusignuNoneuidentity(uself((u=/opt/alt/python33/lib64/python3.3/distutils/command/upload.pyuinitialize_options#s      uupload.initialize_optionscCstj||jr/|j r/tdn|j}|ikr~|d|_|d|_|d|_|d|_ n|j r|j jr|j j|_ndS(Nu.Must use --sign for --identity to have meaninguusernameupasswordu repositoryurealm( u PyPIRCCommandufinalize_optionsuidentityusignuDistutilsOptionErroru _read_pypircuusernameupasswordu repositoryurealmu distribution(uselfuconfig((u=/opt/alt/python33/lib64/python3.3/distutils/command/upload.pyufinalize_options+s       uupload.finalize_optionscCsR|jjstdnx0|jjD]"\}}}|j|||q(WdS(Nu'No dist file created in earlier command(u distributionu dist_filesuDistutilsOptionErroru upload_file(uselfucommandu pyversionufilename((u=/opt/alt/python33/lib64/python3.3/distutils/command/upload.pyurun=s u upload.runc$Cst|j\}}}}}} |s3|s3| rItd|jn|dIkrhtd|n|jrddd|g} |jrd|jg| d d 6t,t2|d?6|d@6}t3|jdA|dB|}y%t4|}|j5}|j6} Wn{t7j8k r(}!z"|j/t,|!t0j9dSWYdd}!~!Xn7t:k r^}!z|!j;}|!j6} WYdd}!~!XnX|dCkr|j/dD|| ft0j1n|j/dE|| ft0j9|j<r|j=|}"dFj>dGdH|"dGdHf}#|j/|#t0j1ndS(KNuIncompatible url %suhttpuhttpsuunsupported schema ugpgu --detach-signu-au --local-useriudry_runurbu file_uploadu:actionu1uprotcol_versionunameuversionucontentufiletypeu pyversionu md5_digestu1.0umetadata_versionusummaryu home_pageuauthoru author_emailulicenseu descriptionukeywordsuplatformu classifiersu download_urluprovidesurequiresu obsoletesuu bdist_rpmubuilt for %s %su bdist_dumbu built for %suterseiucommentu.ascu gpg_signatureu:uasciiuBasic u3--------------GHSKFJDLGDS7543FJKLFHRE75642756743254s --s--u* Content-Disposition: form-data; name="%s"u; filename="%s"iuutf-8s s s uSubmitting %s to %su multipart/form-data; boundary=%su Content-typeuContent-lengthu AuthorizationudatauheadersiuServer response (%s): %suUpload failed (%s): %su u-iK(uhttpuhttpsi(?uurlparseu repositoryuAssertionErrorusignuidentityuspawnudry_runuopenureaducloseu distributionumetadatauget_nameu get_versionuosupathubasenameumd5u hexdigestuget_descriptionuget_urlu get_contactuget_contact_emailu get_licenceuget_long_descriptionu get_keywordsu get_platformsuget_classifiersuget_download_urlu get_providesu get_requiresu get_obsoletesuplatformudistuusernameupassworduencodeustandard_b64encodeudecodeuiouBytesIOuitemsutypeutupleustruwriteugetvalueuannounceuloguINFOulenuRequestuurlopenugetcodeumsgusocketuerroruERRORu HTTPErrorucodeu show_responseu_read_pypi_responseujoin($uselfucommandu pyversionufilenameuschemaunetlocuurluparamsuqueryu fragmentsugpg_argsufucontentumetaudataucommentudistuversionuidu user_passuauthuboundaryu sep_boundaryu end_boundaryubodyukeyuvalueutitleuheadersurequesturesultustatusureasonueutextumsg((u=/opt/alt/python33/lib64/python3.3/distutils/command/upload.pyu upload_fileCs!                         #                         uupload.upload_fileN(usignususign files to upload using gpg(u identity=uiuGPG identity used to sign files( u__name__u __module__u __qualname__u descriptionu PyPIRCCommandu user_optionsuboolean_optionsuinitialize_optionsufinalize_optionsurunu upload_file(u __locals__((u=/opt/alt/python33/lib64/python3.3/distutils/command/upload.pyuuploads    uupload(u__doc__udistutils.errorsudistutils.coreu PyPIRCCommandudistutils.spawnuspawnu distutilsulogusysuosuiousocketuplatformubase64ustandard_b64encodeuurllib.requestuurlopenuRequestu HTTPErroru urllib.parseuurlparseuversionumd5uhashlibuupload(((u=/opt/alt/python33/lib64/python3.3/distutils/command/upload.pyus    PK!&?  2command/__pycache__/install_headers.cpython-33.pycnu[ fc@s0dZddlmZGdddeZdS(udistutils.command.install_headers Implements the Distutils 'install_headers' command, to install C/C++ header files to the Python include directory.i(uCommandcBsk|EeZdZdZddgZdgZdd Zd d Zd d ZddZ ddZ dS(uinstall_headersuinstall C/C++ header filesu install-dir=udu$directory to install header files touforceufu-force installation (overwrite existing files)cCsd|_d|_g|_dS(Ni(uNoneu install_diruforceuoutfiles(uself((uF/opt/alt/python33/lib64/python3.3/distutils/command/install_headers.pyuinitialize_optionss  u"install_headers.initialize_optionscCs|jddddS(Nuinstalluinstall_headersu install_diruforce(uinstall_headersu install_dir(uforceuforce(uset_undefined_options(uself((uF/opt/alt/python33/lib64/python3.3/distutils/command/install_headers.pyufinalize_optionss u install_headers.finalize_optionscCsf|jj}|sdS|j|jx9|D]1}|j||j\}}|jj|q-WdS(N(u distributionuheadersumkpathu install_diru copy_fileuoutfilesuappend(uselfuheadersuheaderuoutu_((uF/opt/alt/python33/lib64/python3.3/distutils/command/install_headers.pyurun!s  uinstall_headers.runcCs|jjpgS(N(u distributionuheaders(uself((uF/opt/alt/python33/lib64/python3.3/distutils/command/install_headers.pyu get_inputs+suinstall_headers.get_inputscCs|jS(N(uoutfiles(uself((uF/opt/alt/python33/lib64/python3.3/distutils/command/install_headers.pyu get_outputs.suinstall_headers.get_outputsN(u install-dir=udu$directory to install header files to(uforceufu-force installation (overwrite existing files)( u__name__u __module__u __qualname__u descriptionu user_optionsuboolean_optionsuinitialize_optionsufinalize_optionsurunu get_inputsu get_outputs(u __locals__((uF/opt/alt/python33/lib64/python3.3/distutils/command/install_headers.pyuinstall_headers s     uinstall_headersN(u__doc__udistutils.coreuCommanduinstall_headers(((uF/opt/alt/python33/lib64/python3.3/distutils/command/install_headers.pyusPK!<|} (command/__pycache__/clean.cpython-33.pycnu[ f c@s\dZddlZddlmZddlmZddlmZGdddeZdS(uBdistutils.command.clean Implements the Distutils 'clean' command.iN(uCommand(u remove_tree(ulogcBs_|EeZdZdZddddddgZdgZddZddZddZ dS(ucleanu-clean up temporary files from 'build' commandu build-base=ubu2base build directory (default: 'build.build-base')u build-lib=u<build directory for all modules (default: 'build.build-lib')u build-temp=utu7temporary build directory (default: 'build.build-temp')ubuild-scripts=u<build directory for scripts (default: 'build.build-scripts')u bdist-base=u+temporary directory for built distributionsualluau7remove all build output, not just temporary by-productscCs:d|_d|_d|_d|_d|_d|_dS(N(uNoneu build_baseu build_libu build_tempu build_scriptsu bdist_baseuall(uself((u</opt/alt/python33/lib64/python3.3/distutils/command/clean.pyuinitialize_options s      uclean.initialize_optionscCs-|jddd d d |jdd dS( Nubuildu build_baseu build_libu build_scriptsu build_tempubdistu bdist_base(u build_baseu build_base(u build_libu build_lib(u build_scriptsu build_scripts(u build_tempu build_temp(u bdist_baseu bdist_base(uset_undefined_options(uself((u</opt/alt/python33/lib64/python3.3/distutils/command/clean.pyufinalize_options(s  uclean.finalize_optionsc Cstjj|jr.t|jd|jntjd|j|jrx[|j |j |j fD]>}tjj|rt|d|jqctj d|qcWn|jsy'tj |jtjd|jWqtk rYqXndS(Nudry_runu%'%s' does not exist -- can't clean itu removing '%s'(uosupathuexistsu build_tempu remove_treeudry_runulogudebuguallu build_libu bdist_baseu build_scriptsuwarnurmdiru build_baseuinfouOSError(uselfu directory((u</opt/alt/python33/lib64/python3.3/distutils/command/clean.pyurun1s$       u clean.runN(u build-base=ubu2base build directory (default: 'build.build-base')(u build-lib=Nu<build directory for all modules (default: 'build.build-lib')(u build-temp=utu7temporary build directory (default: 'build.build-temp')(ubuild-scripts=Nu<build directory for scripts (default: 'build.build-scripts')(u bdist-base=Nu+temporary directory for built distributions(ualluau7remove all build output, not just temporary by-products( u__name__u __module__u __qualname__u descriptionuNoneu user_optionsuboolean_optionsuinitialize_optionsufinalize_optionsurun(u __locals__((u</opt/alt/python33/lib64/python3.3/distutils/command/clean.pyuclean s"    uclean( u__doc__uosudistutils.coreuCommandudistutils.dir_utilu remove_treeu distutilsuloguclean(((u</opt/alt/python33/lib64/python3.3/distutils/command/clean.pyus  PK!4U(command/__pycache__/check.cpython-33.pycnu[ flc @sdZddlmZddlmZypddlmZddlmZddl m Z ddl m Z ddl m Z Gd d d eZdZWnek rdZYnXGd d d eZd S(uCdistutils.command.check Implements the Distutils 'check' command. i(uCommand(uDistutilsSetupError(uReporter(uParser(ufrontend(unodes(uStringIOcBs8|EeZdZddddddZddZdS( uSilentReporteriuasciiureplacec Cs/g|_tj||||||||dS(N(umessagesuReporteru__init__(uselfusourceu report_levelu halt_levelustreamudebuguencodingu error_handler((u</opt/alt/python33/lib64/python3.3/distutils/command/check.pyu__init__s uSilentReporter.__init__cOsB|jj||||ftj|d|d|j|||S(Nulevelutype(umessagesuappendunodesusystem_messageulevels(uselfulevelumessageuchildrenukwargs((u</opt/alt/python33/lib64/python3.3/distutils/command/check.pyusystem_messages uSilentReporter.system_messageN(u__name__u __module__u __qualname__uNoneu__init__usystem_message(u __locals__((u</opt/alt/python33/lib64/python3.3/distutils/command/check.pyuSilentReportersuSilentReportercBs|EeZdZdZdZdddgZddd gZd d ZddZddZ ddZ ddZ ddZ ddZ dS(uchecku6This command checks the meta-data of the package. u"perform some checks on the packageumetadataumuVerify meta-dataurestructuredtexturuEChecks if long string meta-data syntax are reStructuredText-compliantustrictusu(Will exit with an error if a check failscCs(d|_d|_d|_d|_dS(u Sets default values for options.iiN(urestructuredtextumetadataustrictu _warnings(uself((u</opt/alt/python33/lib64/python3.3/distutils/command/check.pyuinitialize_options1s   ucheck.initialize_optionscCsdS(N((uself((u</opt/alt/python33/lib64/python3.3/distutils/command/check.pyufinalize_options8sucheck.finalize_optionscCs|jd7_tj||S(u*Counts the number of warnings that occurs.i(u _warningsuCommanduwarn(uselfumsg((u</opt/alt/python33/lib64/python3.3/distutils/command/check.pyuwarn;su check.warncCsx|jr|jn|jrMtr2|jqM|jrMtdqMn|jrt|jdkrttdndS(uRuns the command.uThe docutils package is needed.iuPlease correct your package.N(umetadataucheck_metadataurestructuredtextu HAS_DOCUTILSucheck_restructuredtextustrictuDistutilsSetupErroru _warnings(uself((u</opt/alt/python33/lib64/python3.3/distutils/command/check.pyurun@s     u check.runcCs|jj}g}x<dD]4}t||o:t||s|j|qqW|rt|jddj|n|jr|js|jddqn>|j r|j s|jdd qn|jd d d d S(uEnsures that all required elements of meta-data are supplied. name, version, URL, (author and author_email) or (maintainer and maintainer_email)). Warns if any are missing. unameuversionuurlumissing required meta-data: %su, u)missing meta-data: if 'author' supplied, u#'author_email' must be supplied toou-missing meta-data: if 'maintainer' supplied, u''maintainer_email' must be supplied toou4missing meta-data: either (author and author_email) u%or (maintainer and maintainer_email) umust be suppliedN(unameuversionuurl( u distributionumetadatauhasattrugetattruappenduwarnujoinuauthoru author_emailu maintainerumaintainer_email(uselfumetadataumissinguattr((u</opt/alt/python33/lib64/python3.3/distutils/command/check.pyucheck_metadataPs$        ucheck.check_metadatacCsz|jj}xd|j|D]S}|djd}|dkrQ|d}nd|d|f}|j|qWdS(u4Checks if the long string fields are reST-compliant.iulineu %s (line %s)Ni(u distributionuget_long_descriptionu_check_rst_dataugetuNoneuwarn(uselfudatauwarninguline((u</opt/alt/python33/lib64/python3.3/distutils/command/check.pyucheck_restructuredtextns  ucheck.check_restructuredtextc Cst}t}tjj}d|_d |_d |_t ||j |j d|j d|j d|jd|j}tj||d|}|j|d y|j||Wn.tk r|jjd dd ifYnX|jS( u8Returns warnings when the provided data doesn't compile.iustreamudebuguencodingu error_handlerusourceiuCould not finish the parsing.uNii(uStringIOuParserufrontendu OptionParseruget_default_valuesu tab_widthuNoneupep_referencesurfc_referencesuSilentReporteru report_levelu halt_leveluwarning_streamudebuguerror_encodinguerror_encoding_error_handlerunodesudocumentu note_sourceuparseuAttributeErrorumessagesuappend(uselfudatau source_pathuparserusettingsureporterudocument((u</opt/alt/python33/lib64/python3.3/distutils/command/check.pyu_check_rst_datays*           ucheck._check_rst_dataN(umetadataumuVerify meta-data(urestructuredtexturuEChecks if long string meta-data syntax are reStructuredText-compliant(ustrictusu(Will exit with an error if a check fails(u__name__u __module__u __qualname__u__doc__u descriptionu user_optionsuboolean_optionsuinitialize_optionsufinalize_optionsuwarnurunucheck_metadataucheck_restructuredtextu_check_rst_data(u __locals__((u</opt/alt/python33/lib64/python3.3/distutils/command/check.pyucheck$s       ucheckNTF(u__doc__udistutils.coreuCommandudistutils.errorsuDistutilsSetupErrorudocutils.utilsuReporterudocutils.parsers.rstuParserudocutilsufrontendunodesuiouStringIOuSilentReporteruTrueu HAS_DOCUTILSu ExceptionuFalseucheck(((u</opt/alt/python33/lib64/python3.3/distutils/command/check.pyus   PK!Lù;;)command/__pycache__/config.cpython-33.pycnu[ f$3c@sdZddlZddlZddlZddlmZddlmZddlm Z ddl m Z idd6d d 6Z Gd d d eZ ed dZdS(udistutils.command.config Implements the Distutils 'config' command, a (mostly) empty command class that exists mainly to be sub-classed by specific module distributions and applications. The idea is that while every "config" command is different, at least they're all named the same, and users always see "config" in the list of standard commands. Also, this is a good place to put common configure-like tasks: "try to compile this C code", or "figure out where this header file lives". iN(uCommand(uDistutilsExecError(ucustomize_compiler(ulogu.cucu.cxxuc++c Bsm|EeZdZdZd>d?d@dAdBdCdDdEdFg ZddZddZddZdd Z d!d"Z d#d$Z d%d&Z d'd(Z d)d*Zd=d=d=d+d,d-Zd=d=d=d+d.d/Zd=d=d+d0d1Zd=d=d=d=d+d2d3Zd=d=d=d=d+d4d5Zd=d=d=d=d6d6d7d8Zd=d=d=gd9d:Zd=d=d+d;d<Zd=S(Guconfiguprepare to buildu compiler=uspecify the compiler typeucc=uspecify the compiler executableu include-dirs=uIu.list of directories to search for header filesudefine=uDuC preprocessor macros to defineuundef=uUu!C preprocessor macros to undefineu libraries=ulu!external C libraries to link withu library-dirs=uLu.directories to search for external C librariesunoisyu1show every action (compile, link, run, ...) takenu dump-sourceu=dump generated source files before attempting to compile themcCsLd|_d|_d|_d|_d|_d|_d|_g|_dS(Ni( uNoneucompileruccu include_dirsu librariesu library_dirsunoisyu dump_sourceu temp_files(uself((u=/opt/alt/python33/lib64/python3.3/distutils/command/config.pyuinitialize_options3s       uconfig.initialize_optionscCs|jdkr'|jjpg|_n-t|jtrT|jjtj|_n|jdkrog|_n$t|jtr|jg|_n|j dkrg|_ n-t|j tr|j jtj|_ ndS(N( u include_dirsuNoneu distributionu isinstanceustrusplituosupathsepu librariesu library_dirs(uself((u=/opt/alt/python33/lib64/python3.3/distutils/command/config.pyufinalize_optionsBs  uconfig.finalize_optionscCsdS(N((uself((u=/opt/alt/python33/lib64/python3.3/distutils/command/config.pyurunRsu config.runcCsddlm}m}t|j|s|d|jd|jdd|_t|j|jrx|jj|jn|j r|jj |j n|j r|jj |j qndS(u^Check that 'self.compiler' really is a CCompiler object; if not, make it one. i(u CCompileru new_compilerucompilerudry_runuforceiN( udistutils.ccompileru CCompileru new_compileru isinstanceucompilerudry_runucustomize_compileru include_dirsuset_include_dirsu librariesu set_librariesu library_dirsuset_library_dirs(uselfu CCompileru new_compiler((u=/opt/alt/python33/lib64/python3.3/distutils/command/config.pyu_check_compilerYs    uconfig._check_compilercCsdt|}t|d}|rUx|D]}|jd|q*W|jdn|j||ddkr|jdn|j|S(Nu _configtestuwu#include <%s> u ii(uLANG_EXTuopenuwriteuclose(uselfubodyuheadersulangufilenameufileuheader((u=/opt/alt/python33/lib64/python3.3/distutils/command/config.pyu_gen_temp_sourcefileks   uconfig._gen_temp_sourcefilecCsT|j|||}d}|jj||g|jj||d|||fS(Nu _configtest.iu include_dirs(u_gen_temp_sourcefileu temp_filesuextenducompileru preprocess(uselfubodyuheadersu include_dirsulangusrcuout((u=/opt/alt/python33/lib64/python3.3/distutils/command/config.pyu _preprocessxs uconfig._preprocesscCs|j|||}|jr2t|d|n|jj|g\}|jj||g|jj|gd|||fS(Nucompiling '%s':u include_dirs(u_gen_temp_sourcefileu dump_sourceu dump_fileucompileruobject_filenamesu temp_filesuextenducompile(uselfubodyuheadersu include_dirsulangusrcuobj((u=/opt/alt/python33/lib64/python3.3/distutils/command/config.pyu_compiles uconfig._compilec Cs|j||||\}}tjjtjj|d} |jj|g| d|d|d||jjdk r| |jj} n|j j | ||| fS(Niu librariesu library_dirsu target_lang( u_compileuosupathusplitextubasenameucompilerulink_executableu exe_extensionuNoneu temp_filesuappend( uselfubodyuheadersu include_dirsu librariesu library_dirsulangusrcuobjuprog((u=/opt/alt/python33/lib64/python3.3/distutils/command/config.pyu_links"u config._linkc Gso|s|j}g|_ntjddj|x4|D],}ytj|Wq;tk rfYq;Xq;WdS(Nu removing: %su (u temp_filesuloguinfoujoinuosuremoveuOSError(uselfu filenamesufilename((u=/opt/alt/python33/lib64/python3.3/distutils/command/config.pyu_cleans    u config._cleanucc Cscddlm}|jd}y|j||||Wn|k rTd}YnX|j|S(uQConstruct a source file from 'body' (a string containing lines of C/C++ code) and 'headers' (a list of header files to include) and run it through the preprocessor. Return true if the preprocessor succeeded, false if there were any errors. ('body' probably isn't of much use, but what the heck.) i(u CompileErrorTF(udistutils.ccompileru CompileErroru_check_compileruTrueu _preprocessuFalseu_clean(uselfubodyuheadersu include_dirsulangu CompileErroruok((u=/opt/alt/python33/lib64/python3.3/distutils/command/config.pyutry_cpps    uconfig.try_cppc Cs|j|j||||\}}t|trItj|}nt|}d} x8|j} | dkrzPn|j | r^d} Pq^q^|j |j | S(uConstruct a source file (just like 'try_cpp()'), run it through the preprocessor, and return true if any line of the output matches 'pattern'. 'pattern' should either be a compiled regex object or a string containing a regex. If both 'body' and 'headers' are None, preprocesses an empty file -- which can be useful to determine the symbols the preprocessor and compiler set by default. uFT( u_check_compileru _preprocessu isinstanceustrureucompileuopenuFalseureadlineusearchuTrueucloseu_clean( uselfupatternubodyuheadersu include_dirsulangusrcuoutufileumatchuline((u=/opt/alt/python33/lib64/python3.3/distutils/command/config.pyu search_cpps      uconfig.search_cppc Cs|ddlm}|jy |j||||d}Wn|k rTd}YnXtj|rgdpjd|j|S(uwTry to compile a source file built from 'body' and 'headers'. Return true on success, false otherwise. i(u CompileErrorusuccess!ufailure.TF( udistutils.ccompileru CompileErroru_check_compileru_compileuTrueuFalseuloguinfou_clean(uselfubodyuheadersu include_dirsulangu CompileErroruok((u=/opt/alt/python33/lib64/python3.3/distutils/command/config.pyu try_compiles     uconfig.try_compilec Csddlm}m}|jy&|j||||||d} Wn||fk rfd} YnXtj| rydp|d|j | S(uTry to compile and link a source file, built from 'body' and 'headers', to executable form. Return true on success, false otherwise. i(u CompileErroru LinkErrorusuccess!ufailure.TF( udistutils.ccompileru CompileErroru LinkErroru_check_compileru_linkuTrueuFalseuloguinfou_clean( uselfubodyuheadersu include_dirsu librariesu library_dirsulangu CompileErroru LinkErroruok((u=/opt/alt/python33/lib64/python3.3/distutils/command/config.pyutry_links     uconfig.try_linkc Csddlm}m}|jyA|j||||||\} } } |j| gd} Wn!||tfk rd} YnXt j | rdpd|j | S(uTry to compile, link to an executable, and run a program built from 'body' and 'headers'. Return true on success, false otherwise. i(u CompileErroru LinkErrorusuccess!ufailure.TF( udistutils.ccompileru CompileErroru LinkErroru_check_compileru_linkuspawnuTrueuDistutilsExecErroruFalseuloguinfou_clean( uselfubodyuheadersu include_dirsu librariesu library_dirsulangu CompileErroru LinkErrorusrcuobjuexeuok((u=/opt/alt/python33/lib64/python3.3/distutils/command/config.pyutry_runs    uconfig.try_runic Cs|jg}|r*|jd|n|jd|rQ|jd|n|jd||jddj|d}|j|||||S(uDetermine if function 'func' is available by constructing a source file that refers to 'func', and compiles and links it. If everything succeeds, returns true; otherwise returns false. The constructed source file starts out by including the header files listed in 'headers'. If 'decl' is true, it then declares 'func' (as "int func()"); you probably shouldn't supply 'headers' and set 'decl' true in the same call, or you might get errors about a conflicting declarations for 'func'. Finally, the constructed 'main()' function either references 'func' or (if 'call' is true) calls it. 'libraries' and 'library_dirs' are used when linking. u int %s ();u int main () {u %s();u %s;u}u (u_check_compileruappendujoinutry_link( uselfufuncuheadersu include_dirsu librariesu library_dirsudeclucallubody((u=/opt/alt/python33/lib64/python3.3/distutils/command/config.pyu check_funcs   uconfig.check_funccCs*|j|jd|||g||S(uDetermine if 'library' is available to be linked against, without actually checking that any particular symbols are provided by it. 'headers' will be used in constructing the source file to be compiled, but the only effect of this is to check if all the header files listed are available. Any libraries listed in 'other_libraries' will be included in the link, in case 'library' has symbols that depend on other libraries. uint main (void) { }(u_check_compilerutry_link(uselfulibraryu library_dirsuheadersu include_dirsuother_libraries((u=/opt/alt/python33/lib64/python3.3/distutils/command/config.pyu check_lib6s uconfig.check_libcCs|jddd|gd|S(uDetermine if the system header file named by 'header_file' exists and can be found by the preprocessor; return true if so, false otherwise. ubodyu /* No body */uheadersu include_dirs(utry_cpp(uselfuheaderu include_dirsu library_dirsulang((u=/opt/alt/python33/lib64/python3.3/distutils/command/config.pyu check_headerDsuconfig.check_headerN(u compiler=Nuspecify the compiler type(ucc=Nuspecify the compiler executable(u include-dirs=uIu.list of directories to search for header files(udefine=uDuC preprocessor macros to define(uundef=uUu!C preprocessor macros to undefine(u libraries=ulu!external C libraries to link with(u library-dirs=uLu.directories to search for external C libraries(unoisyNu1show every action (compile, link, run, ...) taken(u dump-sourceNu=dump generated source files before attempting to compile them(u__name__u __module__u __qualname__u descriptionuNoneu user_optionsuinitialize_optionsufinalize_optionsurunu_check_compileru_gen_temp_sourcefileu _preprocessu_compileu_linku_cleanutry_cppu search_cppu try_compileutry_linkutry_runu check_funcu check_libu check_header(u __locals__((u=/opt/alt/python33/lib64/python3.3/distutils/command/config.pyuconfigsT            uconfigc Csb|dkr tjd|n tj|t|}ztj|jWd|jXdS(ujDumps a file content into log.info. If head is not None, will be dumped before the file content. u%sN(uNoneuloguinfouopenureaduclose(ufilenameuheadufile((u=/opt/alt/python33/lib64/python3.3/distutils/command/config.pyu dump_fileNs   u dump_file(u__doc__usysuosureudistutils.coreuCommandudistutils.errorsuDistutilsExecErrorudistutils.sysconfigucustomize_compileru distutilsuloguLANG_EXTuconfiguNoneu dump_file(((u=/opt/alt/python33/lib64/python3.3/distutils/command/config.pyu s$:PK!-g(command/__pycache__/build.cpython-33.pyonu[ f%c@stdZddlZddlZddlmZddlmZddlmZddZ Gdd d eZ dS( uBdistutils.command.build Implements the Distutils 'build' command.iN(uCommand(uDistutilsOptionError(u get_platformcCsddlm}|dS(Ni(ushow_compilers(udistutils.ccompilerushow_compilers(ushow_compilers((u</opt/alt/python33/lib64/python3.3/distutils/command/build.pyushow_compilers sushow_compilersc Bs|EeZdZdZd5d6d7d d4d d fd8d9dddefd:d;d<d=g ZddgZd d4d!efgZ d"d#Z d$d%Z d&d'Z d(d)Z d*d+Zd,d-Zd.d/Zd0e fd1efd2efd3efgZd4S(>ubuildu"build everything needed to installu build-base=ubu base directory for build libraryubuild-purelib=u2build directory for platform-neutral distributionsubuild-platlib=u3build directory for platform-specific distributionsu build-lib=u9build directory for all distribution (defaults to either ubuild-purelib or build-platlibubuild-scripts=ubuild directory for scriptsu build-temp=ututemporary build directoryu plat-name=upu6platform name to build for, if supported (default: %s)u compiler=ucuspecify the compiler typeudebugugu;compile extensions and libraries with debugging informationuforceufu2forcibly build everything (ignore file timestamps)u executable=ueu5specify final destination interpreter path (build.py)u help-compilerulist available compilerscCsgd|_d|_d|_d|_d|_d|_d|_d|_d|_ d|_ d|_ dS(Nubuildi( u build_baseuNoneu build_purelibu build_platlibu build_libu build_tempu build_scriptsucompileru plat_nameudebuguforceu executable(uself((u</opt/alt/python33/lib64/python3.3/distutils/command/build.pyuinitialize_options6s          ubuild.initialize_optionscCs|jdkrt|_ntjdkr<tdnd|jtjddf}ttdrx|d7}n|j dkrtj j |j d|_ n|j dkrtj j |j d||_ n|jdkr|jjr|j |_q|j |_n|jdkr@tj j |j d ||_n|jdkr~tj j |j d tjdd|_n|jdkrtj jtj|_ndS( NuntuW--plat-name only supported on Windows (try using './configure --help' on your platform)u.%s-%siiugettotalrefcountu-pydebugulibutempuscripts-(u plat_nameuNoneu get_platformuosunameuDistutilsOptionErrorusysuversionuhasattru build_purelibupathujoinu build_baseu build_platlibu build_libu distributionu ext_modulesu build_tempu build_scriptsu executableunormpath(uselfuplat_specifier((u</opt/alt/python33/lib64/python3.3/distutils/command/build.pyufinalize_optionsEs2     ubuild.finalize_optionscCs(x!|jD]}|j|q WdS(N(uget_sub_commandsu run_command(uselfucmd_name((u</opt/alt/python33/lib64/python3.3/distutils/command/build.pyurunwsu build.runcCs |jjS(N(u distributionuhas_pure_modules(uself((u</opt/alt/python33/lib64/python3.3/distutils/command/build.pyuhas_pure_modulessubuild.has_pure_modulescCs |jjS(N(u distributionuhas_c_libraries(uself((u</opt/alt/python33/lib64/python3.3/distutils/command/build.pyuhas_c_librariessubuild.has_c_librariescCs |jjS(N(u distributionuhas_ext_modules(uself((u</opt/alt/python33/lib64/python3.3/distutils/command/build.pyuhas_ext_modulessubuild.has_ext_modulescCs |jjS(N(u distributionu has_scripts(uself((u</opt/alt/python33/lib64/python3.3/distutils/command/build.pyu has_scriptssubuild.has_scriptsubuild_pyu build_clibu build_extu build_scriptsN(u build-base=ubu base directory for build library(ubuild-purelib=Nu2build directory for platform-neutral distributions(ubuild-platlib=Nu3build directory for platform-specific distributions(ubuild-scripts=Nubuild directory for scripts(u build-temp=ututemporary build directory(u compiler=ucuspecify the compiler type(udebugugu;compile extensions and libraries with debugging information(uforceufu2forcibly build everything (ignore file timestamps)(u executable=ueu5specify final destination interpreter path (build.py)(u__name__u __module__u __qualname__u descriptionuNoneu get_platformu user_optionsuboolean_optionsushow_compilersu help_optionsuinitialize_optionsufinalize_optionsurunuhas_pure_modulesuhas_c_librariesuhas_ext_modulesu has_scriptsu sub_commands(u __locals__((u</opt/alt/python33/lib64/python3.3/distutils/command/build.pyubuildsN     2       ubuild( u__doc__usysuosudistutils.coreuCommandudistutils.errorsuDistutilsOptionErrorudistutils.utilu get_platformushow_compilersubuild(((u</opt/alt/python33/lib64/python3.3/distutils/command/build.pyus  PK!M? ? .command/__pycache__/install_lib.cpython-33.pycnu[ f c@sjdZddlZddlZddlZddlmZddlmZdZGdddeZ dS(ukdistutils.command.install_lib Implements the Distutils 'install_lib' command (install all Python modules).iN(uCommand(uDistutilsOptionErroru.pyc Bs|EeZdZdZd*d+d,d-d.d/d0gZdd dgZid d6ZddZddZ ddZ ddZ ddZ dd Z d!d"Zd#d$Zd%d&Zd'd(Zd)S(1u install_libu7install all Python modules (extensions and pure Python)u install-dir=ududirectory to install tou build-dir=ubu'build directory (where to install from)uforceufu-force installation (overwrite existing files)ucompileucucompile .py to .pyc [default]u no-compileudon't compile .py filesu optimize=uOulalso compile with optimization: -O1 for "python -O", -O2 for "python -OO", and -O0 to disable [default: -O0]u skip-builduskip the build stepscCs:d|_d|_d|_d|_d|_d|_dS(Ni(uNoneu install_diru build_diruforceucompileuoptimizeu skip_build(uself((uB/opt/alt/python33/lib64/python3.3/distutils/command/install_lib.pyuinitialize_options3s      uinstall_lib.initialize_optionsc Cs|jddddddd|jdkr:d|_n|jdkrUd|_nt|jtsy.t|j|_|jdkrtnWqt tfk rt d YqXndS(Nuinstallu build_libu build_diru install_libu install_diruforceucompileuoptimizeu skip_buildiiiuoptimize must be 0, 1, or 2(u build_libu build_dir(u install_libu install_dir(uforceuforce(ucompileucompile(uoptimizeuoptimize(u skip_buildu skip_buildTF(iii( uset_undefined_optionsucompileuNoneuTrueuoptimizeuFalseu isinstanceuintuAssertionErroru ValueErroruDistutilsOptionError(uself((uB/opt/alt/python33/lib64/python3.3/distutils/command/install_lib.pyufinalize_options<s$    uinstall_lib.finalize_optionscCsE|j|j}|dk rA|jjrA|j|ndS(N(ubuilduinstalluNoneu distributionuhas_pure_modulesu byte_compile(uselfuoutfiles((uB/opt/alt/python33/lib64/python3.3/distutils/command/install_lib.pyurunVs  uinstall_lib.runcCsN|jsJ|jjr(|jdn|jjrJ|jdqJndS(Nubuild_pyu build_ext(u skip_buildu distributionuhas_pure_modulesu run_commanduhas_ext_modules(uself((uB/opt/alt/python33/lib64/python3.3/distutils/command/install_lib.pyubuildfs  uinstall_lib.buildcCsLtjj|jr0|j|j|j}n|jd|jdS|S(Nu3'%s' does not exist -- no Python modules to install(uosupathuisdiru build_diru copy_treeu install_diruwarn(uselfuoutfiles((uB/opt/alt/python33/lib64/python3.3/distutils/command/install_lib.pyuinstallms   uinstall_lib.installc Cstjr|jddSddlm}|jdj}|jrp||ddd|jd|d|j n|j dkr||d|j d|jd|d |j d|j ndS( Nu%byte-compiling is disabled, skipping.i(u byte_compileuinstalluoptimizeuforceuprefixudry_runuverbose( usysudont_write_bytecodeuwarnudistutils.utilu byte_compileuget_finalized_commandurootucompileuforceudry_runuoptimizeuverbose(uselfufilesu byte_compileu install_root((uB/opt/alt/python33/lib64/python3.3/distutils/command/install_lib.pyu byte_compilevs    uinstall_lib.byte_compilec Cs|s gS|j|}|j}t||}t|ttj}g}x4|D],} |jtjj|| |dqZW|S(N( uget_finalized_commandu get_outputsugetattrulenuosusepuappendupathujoin( uselfuhas_anyu build_cmdu cmd_optionu output_diru build_filesu build_diru prefix_lenuoutputsufile((uB/opt/alt/python33/lib64/python3.3/distutils/command/install_lib.pyu_mutate_outputss  *uinstall_lib._mutate_outputscCsg}x|D]}tjjtjj|d}|tkrGq n|jro|jtj|ddn|j dkr |jtj|ddq q W|S(Niudebug_overrideiTF( uosupathusplitextunormcaseuPYTHON_SOURCE_EXTENSIONucompileuappenduimpucache_from_sourceuTrueuoptimizeuFalse(uselfu py_filenamesubytecode_filesupy_fileuext((uB/opt/alt/python33/lib64/python3.3/distutils/command/install_lib.pyu_bytecode_filenamess "    uinstall_lib._bytecode_filenamescCsu|j|jjdd|j}|jr?|j|}ng}|j|jjdd|j}|||S(uReturn the list of files that would be installed if this command were actually run. Not affected by the "dry-run" flag or whether modules have actually been built yet. ubuild_pyu build_libu build_ext(u_mutate_outputsu distributionuhas_pure_modulesu install_dirucompileu_bytecode_filenamesuhas_ext_modules(uselfu pure_outputsubytecode_outputsu ext_outputs((uB/opt/alt/python33/lib64/python3.3/distutils/command/install_lib.pyu get_outputss   uinstall_lib.get_outputscCsrg}|jjr:|jd}|j|jn|jjrn|jd}|j|jn|S(uGet the list of files that are input to this command, ie. the files that get installed as they are named in the build tree. The files in this list correspond one-to-one to the output filenames returned by 'get_outputs()'. ubuild_pyu build_ext(u distributionuhas_pure_modulesuget_finalized_commanduextendu get_outputsuhas_ext_modules(uselfuinputsubuild_pyu build_ext((uB/opt/alt/python33/lib64/python3.3/distutils/command/install_lib.pyu get_inputssuinstall_lib.get_inputsN(u install-dir=ududirectory to install to(u build-dir=ubu'build directory (where to install from)(uforceufu-force installation (overwrite existing files)(ucompileucucompile .py to .pyc [default](u no-compileNudon't compile .py files(u optimize=uOulalso compile with optimization: -O1 for "python -O", -O2 for "python -OO", and -O0 to disable [default: -O0](u skip-buildNuskip the build steps(u__name__u __module__u __qualname__u descriptionuNoneu user_optionsuboolean_optionsu negative_optuinitialize_optionsufinalize_optionsurunubuilduinstallu byte_compileu_mutate_outputsu_bytecode_filenamesu get_outputsu get_inputs(u __locals__((uB/opt/alt/python33/lib64/python3.3/distutils/command/install_lib.pyu install_libs*         u install_lib( u__doc__uosuimpusysudistutils.coreuCommandudistutils.errorsuDistutilsOptionErroruPYTHON_SOURCE_EXTENSIONu install_lib(((uB/opt/alt/python33/lib64/python3.3/distutils/command/install_lib.pyus   PK!@| NN-command/__pycache__/bdist_dumb.cpython-33.pyonu[ fvc@sdZddlZddlmZddlmZddlmZmZddl Tddl m Z ddl m Z Gd d d eZdS( udistutils.command.bdist_dumb Implements the Distutils 'bdist_dumb' command (create a "dumb" built distribution -- i.e., just an archive to be unpacked under $prefix or $exec_prefix).iN(uCommand(u get_platform(u remove_treeuensure_relative(u*(uget_python_version(ulogc Bs|EeZdZdZd!dddefd"d d d dfd#d$d%gZd ddgZidd6dd6dd6ZddZ ddZ ddZ d S(&u bdist_dumbu"create a "dumb" built distributionu bdist-dir=udu1temporary directory for creating the distributionu plat-name=upu;platform name to embed in generated filenames (default: %s)uformat=ufu0archive format to create (tar, ztar, gztar, zip)u keep-tempuku/keep the pseudo-installation tree around after u!creating the distribution archiveu dist-dir=u-directory to put final built distributions inu skip-buildu2skip rebuilding everything (for testing/debugging)urelativeu6build the archive using relative paths(default: false)ugztaruposixuzipuntuos2cCsCd|_d|_d|_d|_d|_d|_d|_dS(Ni(uNoneu bdist_diru plat_nameuformatu keep_tempudist_diru skip_buildurelative(uself((uA/opt/alt/python33/lib64/python3.3/distutils/command/bdist_dumb.pyuinitialize_options,s      ubdist_dumb.initialize_optionscCs|jdkr<|jdj}tjj|d|_n|jdkry|jtj |_Wqt k rt dtj YqXn|j dddd dS( Nubdistudumbu@don't know how to create dumb built distributions on platform %sudist_diru plat_nameu skip_build(udist_dirudist_dir(u plat_nameu plat_name(u skip_buildu skip_build( u bdist_diruNoneuget_finalized_commandu bdist_baseuosupathujoinuformatudefault_formatunameuKeyErroruDistutilsPlatformErroruset_undefined_options(uselfu bdist_base((uA/opt/alt/python33/lib64/python3.3/distutils/command/bdist_dumb.pyufinalize_options5s  ubdist_dumb.finalize_optionscCs|js|jdn|jddd}|j|_|j|_d|_tjd|j|jdd|jj |j f}t j dkr|j d d }nt jj|j|}|js|j}nm|jjr)|j|jkr)td t|jt|jfn!t jj|jt|j}|j||jd |}|jjrt}nd }|jjjd||f|jst|jd|jndS(Nubuilduinstallureinit_subcommandsiiuinstalling to %su%s.%suos2u:u-uScan't make a dumb built distribution where base and platbase are different (%s, %s)uroot_diruanyu bdist_dumbudry_run( u skip_buildu run_commandureinitialize_commandu bdist_dirurootuwarn_diruloguinfou distributionu get_fullnameu plat_nameuosunameureplaceupathujoinudist_dirurelativeuhas_ext_modulesu install_baseuinstall_platbaseuDistutilsPlatformErrorurepruensure_relativeu make_archiveuformatuget_python_versionu dist_filesuappendu keep_tempu remove_treeudry_run(uselfuinstalluarchive_basenameupseudoinstall_rootu archive_rootufilenameu pyversion((uA/opt/alt/python33/lib64/python3.3/distutils/command/bdist_dumb.pyurunGs@             ubdist_dumb.runN(u bdist-dir=udu1temporary directory for creating the distribution(uformat=ufu0archive format to create (tar, ztar, gztar, zip)(u dist-dir=udu-directory to put final built distributions in(u skip-buildNu2skip rebuilding everything (for testing/debugging)(urelativeNu6build the archive using relative paths(default: false)( u__name__u __module__u __qualname__u descriptionu get_platformuNoneu user_optionsuboolean_optionsudefault_formatuinitialize_optionsufinalize_optionsurun(u __locals__((uA/opt/alt/python33/lib64/python3.3/distutils/command/bdist_dumb.pyu bdist_dumbs0     u bdist_dumb(u__doc__uosudistutils.coreuCommandudistutils.utilu get_platformudistutils.dir_utilu remove_treeuensure_relativeudistutils.errorsudistutils.sysconfiguget_python_versionu distutilsulogu bdist_dumb(((uA/opt/alt/python33/lib64/python3.3/distutils/command/bdist_dumb.pyus  PK!@..+command/__pycache__/register.cpython-33.pyonu[ f-c@sdZddlZddlZddlZddlZddlZddlZddlm Z ddl m Z ddl Tddl mZGddde ZdS( uhdistutils.command.register Implements the Distutils 'register' command (register with the repository). iN(uwarn(u PyPIRCCommand(u*(ulogcBs|EeZdZdZejdd gZejdddgZddd fgZd d Z d d Z ddZ ddZ ddZ ddZddZddZddZdddZdS(!uregisteru7register the distribution with the Python package indexulist-classifiersu list the valid Trove classifiersustrictuBWill stop the registering if the meta-data are not fully compliantuverifyucheckcCsdS(NT(uTrue(uself((u?/opt/alt/python33/lib64/python3.3/distutils/command/register.pyusuregister.cCs#tj|d|_d|_dS(Ni(u PyPIRCCommanduinitialize_optionsulist_classifiersustrict(uself((u?/opt/alt/python33/lib64/python3.3/distutils/command/register.pyuinitialize_optionss  uregister.initialize_optionscCs>tj|id|jfd6dd6}||jjds$  PK!-g(command/__pycache__/build.cpython-33.pycnu[ f%c@stdZddlZddlZddlmZddlmZddlmZddZ Gdd d eZ dS( uBdistutils.command.build Implements the Distutils 'build' command.iN(uCommand(uDistutilsOptionError(u get_platformcCsddlm}|dS(Ni(ushow_compilers(udistutils.ccompilerushow_compilers(ushow_compilers((u</opt/alt/python33/lib64/python3.3/distutils/command/build.pyushow_compilers sushow_compilersc Bs|EeZdZdZd5d6d7d d4d d fd8d9dddefd:d;d<d=g ZddgZd d4d!efgZ d"d#Z d$d%Z d&d'Z d(d)Z d*d+Zd,d-Zd.d/Zd0e fd1efd2efd3efgZd4S(>ubuildu"build everything needed to installu build-base=ubu base directory for build libraryubuild-purelib=u2build directory for platform-neutral distributionsubuild-platlib=u3build directory for platform-specific distributionsu build-lib=u9build directory for all distribution (defaults to either ubuild-purelib or build-platlibubuild-scripts=ubuild directory for scriptsu build-temp=ututemporary build directoryu plat-name=upu6platform name to build for, if supported (default: %s)u compiler=ucuspecify the compiler typeudebugugu;compile extensions and libraries with debugging informationuforceufu2forcibly build everything (ignore file timestamps)u executable=ueu5specify final destination interpreter path (build.py)u help-compilerulist available compilerscCsgd|_d|_d|_d|_d|_d|_d|_d|_d|_ d|_ d|_ dS(Nubuildi( u build_baseuNoneu build_purelibu build_platlibu build_libu build_tempu build_scriptsucompileru plat_nameudebuguforceu executable(uself((u</opt/alt/python33/lib64/python3.3/distutils/command/build.pyuinitialize_options6s          ubuild.initialize_optionscCs|jdkrt|_ntjdkr<tdnd|jtjddf}ttdrx|d7}n|j dkrtj j |j d|_ n|j dkrtj j |j d||_ n|jdkr|jjr|j |_q|j |_n|jdkr@tj j |j d ||_n|jdkr~tj j |j d tjdd|_n|jdkrtj jtj|_ndS( NuntuW--plat-name only supported on Windows (try using './configure --help' on your platform)u.%s-%siiugettotalrefcountu-pydebugulibutempuscripts-(u plat_nameuNoneu get_platformuosunameuDistutilsOptionErrorusysuversionuhasattru build_purelibupathujoinu build_baseu build_platlibu build_libu distributionu ext_modulesu build_tempu build_scriptsu executableunormpath(uselfuplat_specifier((u</opt/alt/python33/lib64/python3.3/distutils/command/build.pyufinalize_optionsEs2     ubuild.finalize_optionscCs(x!|jD]}|j|q WdS(N(uget_sub_commandsu run_command(uselfucmd_name((u</opt/alt/python33/lib64/python3.3/distutils/command/build.pyurunwsu build.runcCs |jjS(N(u distributionuhas_pure_modules(uself((u</opt/alt/python33/lib64/python3.3/distutils/command/build.pyuhas_pure_modulessubuild.has_pure_modulescCs |jjS(N(u distributionuhas_c_libraries(uself((u</opt/alt/python33/lib64/python3.3/distutils/command/build.pyuhas_c_librariessubuild.has_c_librariescCs |jjS(N(u distributionuhas_ext_modules(uself((u</opt/alt/python33/lib64/python3.3/distutils/command/build.pyuhas_ext_modulessubuild.has_ext_modulescCs |jjS(N(u distributionu has_scripts(uself((u</opt/alt/python33/lib64/python3.3/distutils/command/build.pyu has_scriptssubuild.has_scriptsubuild_pyu build_clibu build_extu build_scriptsN(u build-base=ubu base directory for build library(ubuild-purelib=Nu2build directory for platform-neutral distributions(ubuild-platlib=Nu3build directory for platform-specific distributions(ubuild-scripts=Nubuild directory for scripts(u build-temp=ututemporary build directory(u compiler=ucuspecify the compiler type(udebugugu;compile extensions and libraries with debugging information(uforceufu2forcibly build everything (ignore file timestamps)(u executable=ueu5specify final destination interpreter path (build.py)(u__name__u __module__u __qualname__u descriptionuNoneu get_platformu user_optionsuboolean_optionsushow_compilersu help_optionsuinitialize_optionsufinalize_optionsurunuhas_pure_modulesuhas_c_librariesuhas_ext_modulesu has_scriptsu sub_commands(u __locals__((u</opt/alt/python33/lib64/python3.3/distutils/command/build.pyubuildsN     2       ubuild( u__doc__usysuosudistutils.coreuCommandudistutils.errorsuDistutilsOptionErrorudistutils.utilu get_platformushow_compilersubuild(((u</opt/alt/python33/lib64/python3.3/distutils/command/build.pyus  PK!wq-command/__pycache__/build_clib.cpython-33.pycnu[ fVc@srdZddlZddlmZddlTddlmZddlmZddZ Gd d d eZ dS( udistutils.command.build_clib Implements the Distutils 'build_clib' command, to build a C/C++ library that is included in the module distribution and needed by an extension module.iN(uCommand(u*(ucustomize_compiler(ulogcCsddlm}|dS(Ni(ushow_compilers(udistutils.ccompilerushow_compilers(ushow_compilers((uA/opt/alt/python33/lib64/python3.3/distutils/command/build_clib.pyushow_compilerssushow_compilerscBs|EeZdZdZd"d#d$d%d&gZdd gZdd!defgZddZ ddZ ddZ ddZ ddZ ddZdd Zd!S('u build_clibu/build C/C++ libraries used by Python extensionsu build-clib=ubu%directory to build C/C++ libraries tou build-temp=utu,directory to put temporary build by-productsudebugugu"compile with debugging informationuforceufu2forcibly build everything (ignore file timestamps)u compiler=ucuspecify the compiler typeu help-compilerulist available compilerscCsUd|_d|_d|_d|_d|_d|_d|_d|_d|_ dS(Ni( uNoneu build_clibu build_tempu librariesu include_dirsudefineuundefudebuguforceucompiler(uself((uA/opt/alt/python33/lib64/python3.3/distutils/command/build_clib.pyuinitialize_options4s        ubuild_clib.initialize_optionscCs|jdddd d d |jj|_|jrG|j|jn|jdkrn|jjpeg|_nt|jtr|jjt j |_ndS( Nubuildu build_tempu build_clibucompilerudebuguforce(u build_tempu build_clib(u build_tempu build_temp(ucompilerucompiler(udebugudebug(uforceuforce( uset_undefined_optionsu distributionu librariesucheck_library_listu include_dirsuNoneu isinstanceustrusplituosupathsep(uself((uA/opt/alt/python33/lib64/python3.3/distutils/command/build_clib.pyufinalize_optionsDs  ubuild_clib.finalize_optionscCs|js dSddlm}|d|jd|jd|j|_t|j|jdk rv|jj |jn|j dk rx-|j D]\}}|jj ||qWn|j dk rx$|j D]}|jj |qWn|j|jdS(Ni(u new_compilerucompilerudry_runuforce(u librariesudistutils.ccompileru new_compilerucompilerudry_runuforceucustomize_compileru include_dirsuNoneuset_include_dirsudefineu define_macrouundefuundefine_macroubuild_libraries(uselfu new_compilerunameuvalueumacro((uA/opt/alt/python33/lib64/python3.3/distutils/command/build_clib.pyurun^s    ubuild_clib.runcCst|tstdnx|D]}t|t r\t|dkr\tdn|\}}t|tstdnd|kstjdkrtj|krtd|dnt|ts%tdq%q%Wd S( u`Ensure that the list of libraries is valid. `library` is presumably provided as a command option 'libraries'. This method checks that it is a list of 2-tuples, where the tuples are (library_name, build_info_dict). Raise DistutilsSetupError if the structure is invalid anywhere; just returns otherwise. u+'libraries' option must be a list of tuplesiu*each element of 'libraries' must a 2-tupleuNfirst element of each tuple in 'libraries' must be a string (the library name)u/u;bad library name '%s': may not contain directory separatorsiuMsecond element of each tuple in 'libraries' must be a dictionary (build info)N( u isinstanceulistuDistutilsSetupErrorutupleulenustruosusepudict(uselfu librariesulibunameu build_info((uA/opt/alt/python33/lib64/python3.3/distutils/command/build_clib.pyucheck_library_listvs"   "   *ubuild_clib.check_library_listcCs>|js dSg}x$|jD]\}}|j|qW|S(N(u librariesuNoneuappend(uselfu lib_namesulib_nameu build_info((uA/opt/alt/python33/lib64/python3.3/distutils/command/build_clib.pyuget_library_namess  ubuild_clib.get_library_namescCs|j|jg}xh|jD]]\}}|jd}|dks]t|ttf rptd|n|j|q W|S(Nusourcesufin 'libraries' option (library '%s'), 'sources' must be present and must be a list of source filenames( ucheck_library_listu librariesugetuNoneu isinstanceulistutupleuDistutilsSetupErroruextend(uselfu filenamesulib_nameu build_infousources((uA/opt/alt/python33/lib64/python3.3/distutils/command/build_clib.pyuget_source_filess" ubuild_clib.get_source_filesc Csx|D]\}}|jd}|dksDt|ttf rWtd|nt|}tjd||jd}|jd}|jj |d|j d|d|d|j }|jj ||d|j d|j qWdS(Nusourcesufin 'libraries' option (library '%s'), 'sources' must be present and must be a list of source filenamesubuilding '%s' libraryumacrosu include_dirsu output_dirudebug(ugetuNoneu isinstanceulistutupleuDistutilsSetupErroruloguinfoucompilerucompileu build_tempudebugucreate_static_libu build_clib(uselfu librariesulib_nameu build_infousourcesumacrosu include_dirsuobjects((uA/opt/alt/python33/lib64/python3.3/distutils/command/build_clib.pyubuild_librariess$"     ubuild_clib.build_librariesN(u build-clib=ubu%directory to build C/C++ libraries to(u build-temp=utu,directory to put temporary build by-products(udebugugu"compile with debugging information(uforceufu2forcibly build everything (ignore file timestamps)(u compiler=ucuspecify the compiler type(u__name__u __module__u __qualname__u descriptionu user_optionsuboolean_optionsuNoneushow_compilersu help_optionsuinitialize_optionsufinalize_optionsurunucheck_library_listuget_library_namesuget_source_filesubuild_libraries(u __locals__((uA/opt/alt/python33/lib64/python3.3/distutils/command/build_clib.pyu build_clibs*      $ u build_clib( u__doc__uosudistutils.coreuCommandudistutils.errorsudistutils.sysconfigucustomize_compileru distutilsulogushow_compilersu build_clib(((uA/opt/alt/python33/lib64/python3.3/distutils/command/build_clib.pyus   PK!:^+command/__pycache__/__init__.cpython-33.pycnu[ fc@sIdZddddddddd d d d d ddddddgZdS(u\distutils.command Package containing implementation of all the standard Distutils commands.ubuildubuild_pyu build_extu build_clibu build_scriptsucleanuinstallu install_libuinstall_headersuinstall_scriptsu install_datausdisturegisterubdistu bdist_dumbu bdist_rpmu bdist_wininstucheckuuploadN(u__doc__u__all__(((u?/opt/alt/python33/lib64/python3.3/distutils/command/__init__.pyus&PK!|"q0command/__pycache__/build_scripts.cpython-33.pyonu[ fWc@sdZddlZddlZddlmZddlmZddlmZddl m Z ddl m Z m Z ddlmZddlZejd ZGd d d eZGd d d ee ZdS(uRdistutils.command.build_scripts Implements the Distutils 'build_scripts' command.iN(uST_MODE(u sysconfig(uCommand(unewer(u convert_pathu Mixin2to3(ulogs^#!.*python[0-9.]*([ ].*)?$cBsn|EeZdZdZdddgZdgZd d Zd dZddZddZ ddZ dS(u build_scriptsu("build" scripts (copy and fixup #! line)u build-dir=ududirectory to "build" (copy) touforceufu1forcibly build everything (ignore file timestampsu executable=ueu*specify final destination interpreter pathcCs1d|_d|_d|_d|_d|_dS(N(uNoneu build_diruscriptsuforceu executableuoutfiles(uself((uD/opt/alt/python33/lib64/python3.3/distutils/command/build_scripts.pyuinitialize_optionss     u build_scripts.initialize_optionscCs)|jdddd|jj|_dS( Nubuildu build_scriptsu build_diruforceu executable(u build_scriptsu build_dir(uforceuforce(u executableu executable(uset_undefined_optionsu distributionuscripts(uself((uD/opt/alt/python33/lib64/python3.3/distutils/command/build_scripts.pyufinalize_options%s  ubuild_scripts.finalize_optionscCs|jS(N(uscripts(uself((uD/opt/alt/python33/lib64/python3.3/distutils/command/build_scripts.pyuget_source_files,subuild_scripts.get_source_filescCs|js dS|jdS(N(uscriptsu copy_scripts(uself((uD/opt/alt/python33/lib64/python3.3/distutils/command/build_scripts.pyurun/s ubuild_scripts.runc$Cs|j|jg}g}x|jD]}d}t|}tjj|jtjj|}|j ||j rt || rt j d|q&nyt|d}Wn'tk r|jsnd}YnXtj|j\}}|jd|j} | s*|jd|q&ntj| } | r]d}| jdpWd} n|rt jd||j|j ||jstjs|j} n:tjjtjdd tjd tjd f} tj | } d | | d } y| j!dWn't"k r9t#dj$| YnXy| j!|Wn*t"k rwt#dj$| |YnXt|d'}|j%| |j&|j'WdQXn|r|j(qq&|r|j(n|j ||j)||q&Wtj*dkrx|D]|}|jr5t jd|qtj+|t,d@}|dBd@}||krt jd|||tj-||qqWn||fS(u"Copy each script listed in 'self.scripts'; if it's marked as a Python script in the Unix way (first line matches 'first_line_re', ie. starts with "\#!" and contains "python"), then adjust the first line to refer to the current Python interpreter as we copy. unot copying %s (up-to-date)urbiu%s is an empty file (skipping)isucopying and adjusting %s -> %suBINDIRu python%s%suVERSIONuEXEs#!s uutf-8u.The shebang ({!r}) is not decodable from utf-8uAThe shebang ({!r}) is not decodable from the script encoding ({})uwbNuposixuchanging mode of %siimu!changing mode of %s from %o to %oFT(.umkpathu build_diruscriptsuFalseu convert_pathuosupathujoinubasenameuappenduforceunewerulogudebuguopenuIOErrorudry_runuNoneutokenizeudetect_encodingureadlineuseekuwarnu first_line_reumatchuTrueugroupuinfou sysconfigu python_buildu executableuget_config_varufsencodeudecodeuUnicodeDecodeErroru ValueErroruformatuwriteu writelinesu readlinesucloseu copy_fileunameustatuST_MODEuchmod(uselfuoutfilesu updated_filesuscriptuadjustuoutfileufuencodingulinesu first_lineumatchu post_interpu executableushebanguoutfufileuoldmodeunewmode((uD/opt/alt/python33/lib64/python3.3/distutils/command/build_scripts.pyu copy_scripts5s $                        ubuild_scripts.copy_scriptsN(u build-dir=ududirectory to "build" (copy) to(uforceufu1forcibly build everything (ignore file timestamps(u executable=ueu*specify final destination interpreter path( u__name__u __module__u __qualname__u descriptionu user_optionsuboolean_optionsuinitialize_optionsufinalize_optionsuget_source_filesurunu copy_scripts(u __locals__((uD/opt/alt/python33/lib64/python3.3/distutils/command/build_scripts.pyu build_scriptss      u build_scriptscBs |EeZdZddZdS(ubuild_scripts_2to3cCs8tj|\}}|js.|j|n||fS(N(u build_scriptsu copy_scriptsudry_runurun_2to3(uselfuoutfilesu updated_files((uD/opt/alt/python33/lib64/python3.3/distutils/command/build_scripts.pyu copy_scriptss ubuild_scripts_2to3.copy_scriptsN(u__name__u __module__u __qualname__u copy_scripts(u __locals__((uD/opt/alt/python33/lib64/python3.3/distutils/command/build_scripts.pyubuild_scripts_2to3subuild_scripts_2to3(u__doc__uosureustatuST_MODEu distutilsu sysconfigudistutils.coreuCommandudistutils.dep_utilunewerudistutils.utilu convert_pathu Mixin2to3ulogutokenizeucompileu first_line_reu build_scriptsubuild_scripts_2to3(((uD/opt/alt/python33/lib64/python3.3/distutils/command/build_scripts.pyus PK!Og(command/__pycache__/bdist.cpython-33.pyonu[ fqc@sbdZddlZddlmZddlTddlmZddZGdd d eZdS( uidistutils.command.bdist Implements the Distutils 'bdist' command (create a built [binary] distribution).iN(uCommand(u*(u get_platformcCslddlm}g}x6tjD]+}|jd|dtj|dfq W||}|jddS(uFPrint list of available formats (arguments to "--format" option). i(u FancyGetoptuformats=iu'List of available distribution formats:N(udistutils.fancy_getoptu FancyGetoptubdistuformat_commandsuappenduNoneuformat_commandu print_help(u FancyGetoptuformatsuformatupretty_printer((u</opt/alt/python33/lib64/python3.3/distutils/command/bdist.pyu show_formats s u show_formatscBs|EeZdZdZd/dddefd0d1d2gZd gZdd.defgZ d3Z idd6dd6dd6Z ddddddddgZ id4d6d5d6d6d6d7d6d8d6d9d6d:d6d;d6Z d(d)Zd*d+Zd,d-Zd.S(<ubdistu$create a built (binary) distributionu bdist-base=ubu4temporary directory for creating built distributionsu plat-name=upu;platform name to embed in generated filenames (default: %s)uformats=u/formats for distribution (comma-separated list)u dist-dir=udu=directory to put final built distributions in [default: dist]u skip-buildu2skip rebuilding everything (for testing/debugging)u help-formatsu$lists available distribution formatsu bdist_rpmugztaruposixuzipuntuos2urpmubztaruztarutaruwininstumsiuRPM distributionu bdist_dumbugzip'ed tar fileubzip2'ed tar fileucompressed tar fileutar fileu bdist_wininstuWindows executable installeruZIP fileu bdist_msiuMicrosoft InstallercCs1d|_d|_d|_d|_d|_dS(Ni(uNoneu bdist_baseu plat_nameuformatsudist_diru skip_build(uself((u</opt/alt/python33/lib64/python3.3/distutils/command/bdist.pyuinitialize_optionsKs     ubdist.initialize_optionsc Cs|jdkr?|jr't|_q?|jdj|_n|jdkr|jdj}tjj |d|j|_n|j d|j dkry|j tj g|_ Wqtk rtdtj YqXn|jdkrd|_ndS(Nubuildubdist.uformatsu;don't know how to create built distributions on platform %sudist(u plat_nameuNoneu skip_buildu get_platformuget_finalized_commandu bdist_baseu build_baseuosupathujoinuensure_string_listuformatsudefault_formatunameuKeyErroruDistutilsPlatformErrorudist_dir(uselfu build_base((u</opt/alt/python33/lib64/python3.3/distutils/command/bdist.pyufinalize_optionsRs$    ubdist.finalize_optionsc Csg}xR|jD]G}y|j|j|dWqtk rVtd|YqXqWxtt|jD]t}||}|j|}||jkr|j||_ n|||ddkrd|_ n|j |qqWdS(Niuinvalid format '%s'i( uformatsuappenduformat_commanduKeyErroruDistutilsOptionErrorurangeulenureinitialize_commanduno_format_optionuformatu keep_tempu run_command(uselfucommandsuformatuiucmd_nameusub_cmd((u</opt/alt/python33/lib64/python3.3/distutils/command/bdist.pyurunns   u bdist.runN(u bdist-base=ubu4temporary directory for creating built distributions(uformats=Nu/formats for distribution (comma-separated list)(u dist-dir=udu=directory to put final built distributions in [default: dist](u skip-buildNu2skip rebuilding everything (for testing/debugging)(u bdist_rpm(u bdist_rpmuRPM distribution(u bdist_dumbugzip'ed tar file(u bdist_dumbubzip2'ed tar file(u bdist_dumbucompressed tar file(u bdist_dumbutar file(u bdist_wininstuWindows executable installer(u bdist_dumbuZIP file(u bdist_msiuMicrosoft Installer(u__name__u __module__u __qualname__u descriptionu get_platformuNoneu user_optionsuboolean_optionsu show_formatsu help_optionsuno_format_optionudefault_formatuformat_commandsuformat_commanduinitialize_optionsufinalize_optionsurun(u __locals__((u</opt/alt/python33/lib64/python3.3/distutils/command/bdist.pyubdistsB         ubdist( u__doc__uosudistutils.coreuCommandudistutils.errorsudistutils.utilu get_platformu show_formatsubdist(((u</opt/alt/python33/lib64/python3.3/distutils/command/bdist.pyus    PK!ITT*command/__pycache__/install.cpython-33.pycnu[ f kc@sdZddlZddlZddlmZddlmZddlmZddl m Z ddl m Z ddl mZdd lmZmZmZdd lmZdd l mZejd krdZdZd0Zn&dd lmZddlmZd1Zejdkr?idd6dd6dd6dd6dd6Zn)idd6dd6dd6dd6dd6Ziidd6dd6dd6dd6dd6d6idd6dd6d d6dd6dd6d!6ed"6idd6dd6dd6dd6dd6d#6Zerid$d6d$d6d%d6d&d6d'd6ed(Zd?d@ZdAdBZdCdDZdEdFZdGdHZdIdJZdKdLZdMdNZdOdPZdQdRZdSdTZdUdVZdWefdXefdYefdZefd[d\d]fgZ d^S(ouinstallu'install everything from build directoryuprefix=uinstallation prefixu exec-prefix=u.(Unix only) prefix for platform-specific filesuhome=u+(Unix only) home directory to install underu install-base=u;base installation directory (instead of --prefix or --home)uinstall-platbase=u8base installation directory for platform-specific files u$(instead of --exec-prefix or --home)uroot=u<install everything relative to this alternate root directoryuinstall-purelib=u;installation directory for pure Python module distributionsuinstall-platlib=u8installation directory for non-pure module distributionsu install-lib=u4installation directory for all module distributions u3(overrides --install-purelib and --install-platlib)uinstall-headers=u(installation directory for C/C++ headersuinstall-scripts=u)installation directory for Python scriptsu install-data=u%installation directory for data filesucompileucucompile .py to .pyc [default]u no-compileudon't compile .py filesu optimize=uOulalso compile with optimization: -O1 for "python -O", -O2 for "python -OO", and -O0 to disable [default: -O0]uforceufu1force installation (overwrite any existing files)u skip-buildu2skip rebuilding everything (for testing/debugging)urecord=u3filename in which to record list of installed filesuuseru!install in user site-package '%s'cCsd|_d|_d|_d|_d|_d|_d|_d|_d|_ d|_ d|_ d|_ d|_ t|_t|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_dS(uInitializes options.iiN(uNoneuprefixu exec_prefixuhomeuuseru install_baseuinstall_platbaseurootuinstall_purelibuinstall_platlibuinstall_headersu install_libuinstall_scriptsu install_datau USER_BASEuinstall_userbaseu USER_SITEuinstall_usersiteucompileuoptimizeu extra_pathuinstall_path_fileuforceu skip_builduwarn_diru build_baseu build_liburecord(uself((u>/opt/alt/python33/lib64/python3.3/distutils/command/install.pyuinitialize_optionss2                       uinstall.initialize_optionscCs|js|js|jr@|js-|jr@tddn|jrj|js[|jrjtdn|jr|js|js|js|js|jrtdntjdkr|jr|j dd+|_qn|j dtjdkr |j n |j |j dtjjd }td d \}}y tj}Wntk rrd }YnXi |jjd 6|jjd6|jjd6|d6|d dd6|d |dd6|d6|d 6|d6|d 6|d6|_tr#|j|jd<|j|jd/opt/alt/python33/lib64/python3.3/distutils/command/install.pyufinalize_optionss  $                        uinstall.finalize_optionscCsts dSddlm}tj|dx|jD]}|d}|ddkrh|dd }n||jkr|j|}|j|}t|| }n|j|}t||}tjd||fq5WdS( uDumps the list of user options.Ni(u longopt_xlateu:iu=u %s: %sii( uDEBUGudistutils.fancy_getoptu longopt_xlateulogudebugu user_optionsu negative_optu translateugetattr(uselfumsgu longopt_xlateuoptuopt_nameuval((u>/opt/alt/python33/lib64/python3.3/distutils/command/install.pyu dump_dirss  uinstall.dump_dirsc Cs|jdk s|jdk r|jdkrK|jdkrK|jdksx|jdksx|jdksx|jdkrt dndS|j r|j dkrt dn|j |_|_|j dn|jdk r|j|_|_|j dn|jdkrg|jdk r4t dntjjtj|_tjjtj|_n|jdkr|j|_n|j|_|j|_|j ddS(u&Finalizes options for posix platforms.uPinstall-base or install-platbase supplied, but installation scheme is incompleteNu$User base directory is not specifiedu unix_useru unix_homeu*must not supply exec-prefix without prefixu unix_prefix(u install_baseuNoneuinstall_platbaseu install_libuinstall_purelibuinstall_platlibuinstall_headersuinstall_scriptsu install_datauDistutilsOptionErroruuseruinstall_userbaseuDistutilsPlatformErroru select_schemeuhomeuprefixu exec_prefixuosupathunormpathusys(uself((u>/opt/alt/python33/lib64/python3.3/distutils/command/install.pyu finalize_unixs<      uinstall.finalize_unixc Cs|jrQ|jdkr'tdn|j|_|_|jtjdn|j dk r|j |_|_|jdny|j dkrtj j t j |_ n|j |_|_y|jtjWn%tk rtdtjYnXdS(u)Finalizes options for non-posix platformsu$User base directory is not specifiedu_useru unix_homeu)I don't know how to install stuff on '%s'N(uuseruinstall_userbaseuNoneuDistutilsPlatformErroru install_baseuinstall_platbaseu select_schemeuosunameuhomeuprefixupathunormpathusysuKeyError(uself((u>/opt/alt/python33/lib64/python3.3/distutils/command/install.pyufinalize_others"   uinstall.finalize_othercCsUt|}xDtD]<}d|}t||dkrt||||qqWdS(u=Sets the install directories by applying the install schemes.uinstall_N(uINSTALL_SCHEMESu SCHEME_KEYSugetattruNoneusetattr(uselfunameuschemeukeyuattrname((u>/opt/alt/python33/lib64/python3.3/distutils/command/install.pyu select_schemes    uinstall.select_schemecCsx|D]y}t||}|dk rtjdksFtjdkr[tjj|}nt||j}t|||qqWdS(Nuposixunt( ugetattruNoneuosunameupathu expanduseru subst_varsu config_varsusetattr(uselfuattrsuattruval((u>/opt/alt/python33/lib64/python3.3/distutils/command/install.pyu _expand_attrss  uinstall._expand_attrscCs|jdddgdS(uNCalls `os.path.expanduser` on install_base, install_platbase and root.u install_baseuinstall_platbaseurootN(u _expand_attrs(uself((u>/opt/alt/python33/lib64/python3.3/distutils/command/install.pyuexpand_basedirssuinstall.expand_basedirscCs#|jddddddgdS(u+Calls `os.path.expanduser` on install dirs.uinstall_purelibuinstall_platlibu install_libuinstall_headersuinstall_scriptsu install_dataN(u _expand_attrs(uself((u>/opt/alt/python33/lib64/python3.3/distutils/command/install.pyu expand_dirss uinstall.expand_dirscGs>x7|D]/}d|}t||tt||qWdS(u!Call `convert_path` over `names`.uinstall_N(usetattru convert_pathugetattr(uselfunamesunameuattr((u>/opt/alt/python33/lib64/python3.3/distutils/command/install.pyu convert_pathss  uinstall.convert_pathscCs|jdkr!|jj|_n|jdk rt|jtrZ|jjd|_nt|jdkr|jd}}n3t|jdkr|j\}}n tdt|}n d}d}||_ ||_ dS(u4Set `path_file` and `extra_dirs` using `extra_path`.u,iiiuY'extra_path' option must be a list, tuple, or comma-separated string with 1 or 2 elementsuN( u extra_pathuNoneu distributionu isinstanceustrusplitulenuDistutilsOptionErroru convert_pathu path_fileu extra_dirs(uselfu path_fileu extra_dirs((u>/opt/alt/python33/lib64/python3.3/distutils/command/install.pyuhandle_extra_paths   uinstall.handle_extra_pathc GsDx=|D]5}d|}t||t|jt||qWdS(u:Change the install directories pointed by name using root.uinstall_N(usetattru change_rooturootugetattr(uselfunamesunameuattr((u>/opt/alt/python33/lib64/python3.3/distutils/command/install.pyu change_roots#s  uinstall.change_rootscCs|js dSttjjd}xc|jjD]R\}}|j|r5tjj| r5|j d|tj |dq5q5WdS(uCreate directories under ~.Nu~uos.makedirs('%s', 0o700)i( uuseru convert_pathuosupathu expanduseru config_varsuitemsu startswithuisdiru debug_printumakedirs(uselfuhomeunameupath((u>/opt/alt/python33/lib64/python3.3/distutils/command/install.pyucreate_home_path)s "uinstall.create_home_pathcCs|jsU|jd|jjdj}|jrU|tkrUtdqUnx!|jD]}|j|qbW|j r|j n|j r|j }|j rt|j }x5tt|D]}|||d||/opt/alt/python33/lib64/python3.3/distutils/command/install.pyurun5s6         !   u install.runcCsctjj|j|jd}|jrN|jt||jgfd|n|j d|dS(uCreates the .pth fileu.pthu creating %supath file '%s' not createdN( uosupathujoinuinstall_libbaseu path_fileuinstall_path_fileuexecuteu write_fileu extra_dirsuwarn(uselfufilename((u>/opt/alt/python33/lib64/python3.3/distutils/command/install.pyucreate_path_fileas  uinstall.create_path_filecCsg}xV|jD]H}|j|}x0|jD]"}||kr5|j|q5q5WqW|jr|jr|jtjj|j |jdn|S(u.Assembles the outputs of all the sub-commands.u.pth( uget_sub_commandsuget_finalized_commandu get_outputsuappendu path_fileuinstall_path_fileuosupathujoinuinstall_libbase(uselfuoutputsucmd_nameucmdufilename((u>/opt/alt/python33/lib64/python3.3/distutils/command/install.pyu get_outputsos uinstall.get_outputscCsCg}x6|jD](}|j|}|j|jqW|S(u*Returns the inputs of all the sub-commands(uget_sub_commandsuget_finalized_commanduextendu get_inputs(uselfuinputsucmd_nameucmd((u>/opt/alt/python33/lib64/python3.3/distutils/command/install.pyu get_inputss uinstall.get_inputscCs|jjp|jjS(uSReturns true if the current distribution has any Python modules to install.(u distributionuhas_pure_modulesuhas_ext_modules(uself((u>/opt/alt/python33/lib64/python3.3/distutils/command/install.pyuhas_libsuinstall.has_libcCs |jjS(uLReturns true if the current distribution has any headers to install.(u distributionu has_headers(uself((u>/opt/alt/python33/lib64/python3.3/distutils/command/install.pyu has_headerssuinstall.has_headerscCs |jjS(uMReturns true if the current distribution has any scripts to. install.(u distributionu has_scripts(uself((u>/opt/alt/python33/lib64/python3.3/distutils/command/install.pyu has_scriptssuinstall.has_scriptscCs |jjS(uJReturns true if the current distribution has any data to. install.(u distributionuhas_data_files(uself((u>/opt/alt/python33/lib64/python3.3/distutils/command/install.pyuhas_datasuinstall.has_datau install_libuinstall_headersuinstall_scriptsu install_datauinstall_egg_infocCsdS(NT(uTrue(uself((u>/opt/alt/python33/lib64/python3.3/distutils/command/install.pyusuinstall.N(uprefix=Nuinstallation prefix(u exec-prefix=Nu.(Unix only) prefix for platform-specific files(uhome=Nu+(Unix only) home directory to install under(u install-base=Nu;base installation directory (instead of --prefix or --home)(uroot=Nu<install everything relative to this alternate root directory(uinstall-purelib=Nu;installation directory for pure Python module distributions(uinstall-platlib=Nu8installation directory for non-pure module distributions(uinstall-headers=Nu(installation directory for C/C++ headers(uinstall-scripts=Nu)installation directory for Python scripts(u install-data=Nu%installation directory for data files(ucompileucucompile .py to .pyc [default](u no-compileNudon't compile .py files(u optimize=uOulalso compile with optimization: -O1 for "python -O", -O2 for "python -OO", and -O0 to disable [default: -O0](uforceufu1force installation (overwrite any existing files)(u skip-buildNu2skip rebuilding everything (for testing/debugging)(urecord=Nu3filename in which to record list of installed files(!u__name__u __module__u __qualname__u descriptionuNoneu user_optionsuboolean_optionsu HAS_USER_SITEuappendu USER_SITEu negative_optuinitialize_optionsufinalize_optionsu dump_dirsu finalize_unixufinalize_otheru select_schemeu _expand_attrsuexpand_basedirsu expand_dirsu convert_pathsuhandle_extra_pathu change_rootsucreate_home_pathurunucreate_path_fileu get_outputsu get_inputsuhas_libu has_headersu has_scriptsuhas_datau sub_commands(u __locals__((u>/opt/alt/python33/lib64/python3.3/distutils/command/install.pyuinstallgs    M  (       ,          uinstallFT(upurelibuplatlibuheadersuscriptsudata(!u__doc__usysuosu distutilsulogudistutils.coreuCommandudistutils.debuguDEBUGudistutils.sysconfiguget_config_varsudistutils.errorsuDistutilsPlatformErrorudistutils.file_utilu write_fileudistutils.utilu convert_pathu subst_varsu change_rootu get_platformuDistutilsOptionErroruversionuNoneu USER_BASEu USER_SITEuFalseu HAS_USER_SITEusiteuTrueuWINDOWS_SCHEMEuINSTALL_SCHEMESu SCHEME_KEYSuinstall(((u>/opt/alt/python33/lib64/python3.3/distutils/command/install.pyus       PK!@..+command/__pycache__/register.cpython-33.pycnu[ f-c@sdZddlZddlZddlZddlZddlZddlZddlm Z ddl m Z ddl Tddl mZGddde ZdS( uhdistutils.command.register Implements the Distutils 'register' command (register with the repository). iN(uwarn(u PyPIRCCommand(u*(ulogcBs|EeZdZdZejdd gZejdddgZddd fgZd d Z d d Z ddZ ddZ ddZ ddZddZddZddZdddZdS(!uregisteru7register the distribution with the Python package indexulist-classifiersu list the valid Trove classifiersustrictuBWill stop the registering if the meta-data are not fully compliantuverifyucheckcCsdS(NT(uTrue(uself((u?/opt/alt/python33/lib64/python3.3/distutils/command/register.pyusuregister.cCs#tj|d|_d|_dS(Ni(u PyPIRCCommanduinitialize_optionsulist_classifiersustrict(uself((u?/opt/alt/python33/lib64/python3.3/distutils/command/register.pyuinitialize_optionss  uregister.initialize_optionscCs>tj|id|jfd6dd6}||jjds$  PK!Lù;;)command/__pycache__/config.cpython-33.pyonu[ f$3c@sdZddlZddlZddlZddlmZddlmZddlm Z ddl m Z idd6d d 6Z Gd d d eZ ed dZdS(udistutils.command.config Implements the Distutils 'config' command, a (mostly) empty command class that exists mainly to be sub-classed by specific module distributions and applications. The idea is that while every "config" command is different, at least they're all named the same, and users always see "config" in the list of standard commands. Also, this is a good place to put common configure-like tasks: "try to compile this C code", or "figure out where this header file lives". iN(uCommand(uDistutilsExecError(ucustomize_compiler(ulogu.cucu.cxxuc++c Bsm|EeZdZdZd>d?d@dAdBdCdDdEdFg ZddZddZddZdd Z d!d"Z d#d$Z d%d&Z d'd(Z d)d*Zd=d=d=d+d,d-Zd=d=d=d+d.d/Zd=d=d+d0d1Zd=d=d=d=d+d2d3Zd=d=d=d=d+d4d5Zd=d=d=d=d6d6d7d8Zd=d=d=gd9d:Zd=d=d+d;d<Zd=S(Guconfiguprepare to buildu compiler=uspecify the compiler typeucc=uspecify the compiler executableu include-dirs=uIu.list of directories to search for header filesudefine=uDuC preprocessor macros to defineuundef=uUu!C preprocessor macros to undefineu libraries=ulu!external C libraries to link withu library-dirs=uLu.directories to search for external C librariesunoisyu1show every action (compile, link, run, ...) takenu dump-sourceu=dump generated source files before attempting to compile themcCsLd|_d|_d|_d|_d|_d|_d|_g|_dS(Ni( uNoneucompileruccu include_dirsu librariesu library_dirsunoisyu dump_sourceu temp_files(uself((u=/opt/alt/python33/lib64/python3.3/distutils/command/config.pyuinitialize_options3s       uconfig.initialize_optionscCs|jdkr'|jjpg|_n-t|jtrT|jjtj|_n|jdkrog|_n$t|jtr|jg|_n|j dkrg|_ n-t|j tr|j jtj|_ ndS(N( u include_dirsuNoneu distributionu isinstanceustrusplituosupathsepu librariesu library_dirs(uself((u=/opt/alt/python33/lib64/python3.3/distutils/command/config.pyufinalize_optionsBs  uconfig.finalize_optionscCsdS(N((uself((u=/opt/alt/python33/lib64/python3.3/distutils/command/config.pyurunRsu config.runcCsddlm}m}t|j|s|d|jd|jdd|_t|j|jrx|jj|jn|j r|jj |j n|j r|jj |j qndS(u^Check that 'self.compiler' really is a CCompiler object; if not, make it one. i(u CCompileru new_compilerucompilerudry_runuforceiN( udistutils.ccompileru CCompileru new_compileru isinstanceucompilerudry_runucustomize_compileru include_dirsuset_include_dirsu librariesu set_librariesu library_dirsuset_library_dirs(uselfu CCompileru new_compiler((u=/opt/alt/python33/lib64/python3.3/distutils/command/config.pyu_check_compilerYs    uconfig._check_compilercCsdt|}t|d}|rUx|D]}|jd|q*W|jdn|j||ddkr|jdn|j|S(Nu _configtestuwu#include <%s> u ii(uLANG_EXTuopenuwriteuclose(uselfubodyuheadersulangufilenameufileuheader((u=/opt/alt/python33/lib64/python3.3/distutils/command/config.pyu_gen_temp_sourcefileks   uconfig._gen_temp_sourcefilecCsT|j|||}d}|jj||g|jj||d|||fS(Nu _configtest.iu include_dirs(u_gen_temp_sourcefileu temp_filesuextenducompileru preprocess(uselfubodyuheadersu include_dirsulangusrcuout((u=/opt/alt/python33/lib64/python3.3/distutils/command/config.pyu _preprocessxs uconfig._preprocesscCs|j|||}|jr2t|d|n|jj|g\}|jj||g|jj|gd|||fS(Nucompiling '%s':u include_dirs(u_gen_temp_sourcefileu dump_sourceu dump_fileucompileruobject_filenamesu temp_filesuextenducompile(uselfubodyuheadersu include_dirsulangusrcuobj((u=/opt/alt/python33/lib64/python3.3/distutils/command/config.pyu_compiles uconfig._compilec Cs|j||||\}}tjjtjj|d} |jj|g| d|d|d||jjdk r| |jj} n|j j | ||| fS(Niu librariesu library_dirsu target_lang( u_compileuosupathusplitextubasenameucompilerulink_executableu exe_extensionuNoneu temp_filesuappend( uselfubodyuheadersu include_dirsu librariesu library_dirsulangusrcuobjuprog((u=/opt/alt/python33/lib64/python3.3/distutils/command/config.pyu_links"u config._linkc Gso|s|j}g|_ntjddj|x4|D],}ytj|Wq;tk rfYq;Xq;WdS(Nu removing: %su (u temp_filesuloguinfoujoinuosuremoveuOSError(uselfu filenamesufilename((u=/opt/alt/python33/lib64/python3.3/distutils/command/config.pyu_cleans    u config._cleanucc Cscddlm}|jd}y|j||||Wn|k rTd}YnX|j|S(uQConstruct a source file from 'body' (a string containing lines of C/C++ code) and 'headers' (a list of header files to include) and run it through the preprocessor. Return true if the preprocessor succeeded, false if there were any errors. ('body' probably isn't of much use, but what the heck.) i(u CompileErrorTF(udistutils.ccompileru CompileErroru_check_compileruTrueu _preprocessuFalseu_clean(uselfubodyuheadersu include_dirsulangu CompileErroruok((u=/opt/alt/python33/lib64/python3.3/distutils/command/config.pyutry_cpps    uconfig.try_cppc Cs|j|j||||\}}t|trItj|}nt|}d} x8|j} | dkrzPn|j | r^d} Pq^q^|j |j | S(uConstruct a source file (just like 'try_cpp()'), run it through the preprocessor, and return true if any line of the output matches 'pattern'. 'pattern' should either be a compiled regex object or a string containing a regex. If both 'body' and 'headers' are None, preprocesses an empty file -- which can be useful to determine the symbols the preprocessor and compiler set by default. uFT( u_check_compileru _preprocessu isinstanceustrureucompileuopenuFalseureadlineusearchuTrueucloseu_clean( uselfupatternubodyuheadersu include_dirsulangusrcuoutufileumatchuline((u=/opt/alt/python33/lib64/python3.3/distutils/command/config.pyu search_cpps      uconfig.search_cppc Cs|ddlm}|jy |j||||d}Wn|k rTd}YnXtj|rgdpjd|j|S(uwTry to compile a source file built from 'body' and 'headers'. Return true on success, false otherwise. i(u CompileErrorusuccess!ufailure.TF( udistutils.ccompileru CompileErroru_check_compileru_compileuTrueuFalseuloguinfou_clean(uselfubodyuheadersu include_dirsulangu CompileErroruok((u=/opt/alt/python33/lib64/python3.3/distutils/command/config.pyu try_compiles     uconfig.try_compilec Csddlm}m}|jy&|j||||||d} Wn||fk rfd} YnXtj| rydp|d|j | S(uTry to compile and link a source file, built from 'body' and 'headers', to executable form. Return true on success, false otherwise. i(u CompileErroru LinkErrorusuccess!ufailure.TF( udistutils.ccompileru CompileErroru LinkErroru_check_compileru_linkuTrueuFalseuloguinfou_clean( uselfubodyuheadersu include_dirsu librariesu library_dirsulangu CompileErroru LinkErroruok((u=/opt/alt/python33/lib64/python3.3/distutils/command/config.pyutry_links     uconfig.try_linkc Csddlm}m}|jyA|j||||||\} } } |j| gd} Wn!||tfk rd} YnXt j | rdpd|j | S(uTry to compile, link to an executable, and run a program built from 'body' and 'headers'. Return true on success, false otherwise. i(u CompileErroru LinkErrorusuccess!ufailure.TF( udistutils.ccompileru CompileErroru LinkErroru_check_compileru_linkuspawnuTrueuDistutilsExecErroruFalseuloguinfou_clean( uselfubodyuheadersu include_dirsu librariesu library_dirsulangu CompileErroru LinkErrorusrcuobjuexeuok((u=/opt/alt/python33/lib64/python3.3/distutils/command/config.pyutry_runs    uconfig.try_runic Cs|jg}|r*|jd|n|jd|rQ|jd|n|jd||jddj|d}|j|||||S(uDetermine if function 'func' is available by constructing a source file that refers to 'func', and compiles and links it. If everything succeeds, returns true; otherwise returns false. The constructed source file starts out by including the header files listed in 'headers'. If 'decl' is true, it then declares 'func' (as "int func()"); you probably shouldn't supply 'headers' and set 'decl' true in the same call, or you might get errors about a conflicting declarations for 'func'. Finally, the constructed 'main()' function either references 'func' or (if 'call' is true) calls it. 'libraries' and 'library_dirs' are used when linking. u int %s ();u int main () {u %s();u %s;u}u (u_check_compileruappendujoinutry_link( uselfufuncuheadersu include_dirsu librariesu library_dirsudeclucallubody((u=/opt/alt/python33/lib64/python3.3/distutils/command/config.pyu check_funcs   uconfig.check_funccCs*|j|jd|||g||S(uDetermine if 'library' is available to be linked against, without actually checking that any particular symbols are provided by it. 'headers' will be used in constructing the source file to be compiled, but the only effect of this is to check if all the header files listed are available. Any libraries listed in 'other_libraries' will be included in the link, in case 'library' has symbols that depend on other libraries. uint main (void) { }(u_check_compilerutry_link(uselfulibraryu library_dirsuheadersu include_dirsuother_libraries((u=/opt/alt/python33/lib64/python3.3/distutils/command/config.pyu check_lib6s uconfig.check_libcCs|jddd|gd|S(uDetermine if the system header file named by 'header_file' exists and can be found by the preprocessor; return true if so, false otherwise. ubodyu /* No body */uheadersu include_dirs(utry_cpp(uselfuheaderu include_dirsu library_dirsulang((u=/opt/alt/python33/lib64/python3.3/distutils/command/config.pyu check_headerDsuconfig.check_headerN(u compiler=Nuspecify the compiler type(ucc=Nuspecify the compiler executable(u include-dirs=uIu.list of directories to search for header files(udefine=uDuC preprocessor macros to define(uundef=uUu!C preprocessor macros to undefine(u libraries=ulu!external C libraries to link with(u library-dirs=uLu.directories to search for external C libraries(unoisyNu1show every action (compile, link, run, ...) taken(u dump-sourceNu=dump generated source files before attempting to compile them(u__name__u __module__u __qualname__u descriptionuNoneu user_optionsuinitialize_optionsufinalize_optionsurunu_check_compileru_gen_temp_sourcefileu _preprocessu_compileu_linku_cleanutry_cppu search_cppu try_compileutry_linkutry_runu check_funcu check_libu check_header(u __locals__((u=/opt/alt/python33/lib64/python3.3/distutils/command/config.pyuconfigsT            uconfigc Csb|dkr tjd|n tj|t|}ztj|jWd|jXdS(ujDumps a file content into log.info. If head is not None, will be dumped before the file content. u%sN(uNoneuloguinfouopenureaduclose(ufilenameuheadufile((u=/opt/alt/python33/lib64/python3.3/distutils/command/config.pyu dump_fileNs   u dump_file(u__doc__usysuosureudistutils.coreuCommandudistutils.errorsuDistutilsExecErrorudistutils.sysconfigucustomize_compileru distutilsuloguLANG_EXTuconfiguNoneu dump_file(((u=/opt/alt/python33/lib64/python3.3/distutils/command/config.pyu s$:PK!36fGG(command/__pycache__/sdist.cpython-33.pyonu[ fEc@sdZddlZddlZddlZddlTddlmZddlmZddlm Z ddl m Z m Z m Z mZddlmZddlTdd lmZdd l mZdd lmZd d ZGddde ZdS(uadistutils.command.sdist Implements the Distutils 'sdist' command (create a source distribution).iN(u*(uglob(uwarn(uCommand(udir_utiludep_utilu file_utilu archive_util(uTextFile(uFileList(ulog(u convert_pathcCsddlm}ddlm}g}x6|jD](}|jd|d||dfq3W|j||jddS(uoPrint all possible values for the 'formats' option (used by the "--help-formats" command-line option). i(u FancyGetopt(uARCHIVE_FORMATSuformats=iu.List of available source distribution formats:N( udistutils.fancy_getoptu FancyGetoptudistutils.archive_utiluARCHIVE_FORMATSukeysuappenduNoneusortu print_help(u FancyGetoptuARCHIVE_FORMATSuformatsuformat((u</opt/alt/python33/lib64/python3.3/distutils/command/sdist.pyu show_formatss  u show_formatscBsi|EeZdZdZddZdGdHdIdJdKdLdMdNdOddddfdPdQg Zd ddddd!gZd#dFd$efgZ id d 6dd6Z id%d&6d'd(6Z d)efgZ d*d+Z d,d-Zd.d/Zd0d1Zd2d3Zd4d5Zd6d7Zd8d9Zd:d;Zd<d=Zd>d?Zd@dAZdBdCZdDdEZdFS(Rusdistu6create a source distribution (tarball, zip file, etc.)cCs|jS(uYCallable used for the check sub-command. Placed here so user_options can view it(umetadata_check(uself((u</opt/alt/python33/lib64/python3.3/distutils/command/sdist.pyuchecking_metadata&susdist.checking_metadatau template=utu5name of manifest template file [default: MANIFEST.in]u manifest=umu)name of manifest file [default: MANIFEST]u use-defaultsuRinclude the default file set in the manifest [default; disable with --no-defaults]u no-defaultsu"don't include the default file setupruneuspecifically exclude files/directories that should not be distributed (build tree, RCS/CVS dirs, etc.) [default; disable with --no-prune]uno-pruneu$don't automatically exclude anythingu manifest-onlyuouEjust regenerate the manifest and then stop (implies --force-manifest)uforce-manifestufukforcibly regenerate the manifest and carry on as usual. Deprecated: now the manifest is always regenerated.uformats=u6formats for source distribution (comma-separated list)u keep-tempuku1keep the distribution tree around after creating uarchive file(s)u dist-dir=uduFdirectory to put the source distribution archive(s) in [default: dist]umetadata-checku[Ensure that all required elements of meta-data are supplied. Warn if any missing. [default]u help-formatsu#list available distribution formatsugztaruposixuzipuntucheckcCsgd|_d|_d|_d|_d|_d|_d|_d|_d|_ d|_ d|_ dS(Nii( uNoneutemplateumanifestu use_defaultsupruneu manifest_onlyuforce_manifestuformatsu keep_tempudist_diru archive_filesumetadata_check(uself((u</opt/alt/python33/lib64/python3.3/distutils/command/sdist.pyuinitialize_options`s          usdist.initialize_optionsc Cs|jdkrd|_n|jdkr6d|_n|jd|jdkry|jtjg|_Wqtk rt dtjYqXnt j |j}|rt d|n|j dkrd|_ ndS(NuMANIFESTu MANIFEST.inuformatsu<don't know how to create source distributions on platform %suunknown archive format '%s'udist(umanifestuNoneutemplateuensure_string_listuformatsudefault_formatuosunameuKeyErroruDistutilsPlatformErroru archive_utilucheck_archive_formatsuDistutilsOptionErrorudist_dir(uselfu bad_format((u</opt/alt/python33/lib64/python3.3/distutils/command/sdist.pyufinalize_optionsus$    usdist.finalize_optionscCsUt|_x!|jD]}|j|qW|j|jrGdS|jdS(N(uFileListufilelistuget_sub_commandsu run_commandu get_file_listu manifest_onlyumake_distribution(uselfucmd_name((u</opt/alt/python33/lib64/python3.3/distutils/command/sdist.pyuruns   u sdist.runcCs7tdt|jjd}|j|jdS(uDeprecated API.uadistutils.command.sdist.check_metadata is deprecated, use the check command insteaducheckN(uwarnuPendingDeprecationWarningu distributionuget_command_objuensure_finalizedurun(uselfucheck((u</opt/alt/python33/lib64/python3.3/distutils/command/sdist.pyucheck_metadatas   usdist.check_metadatacCstjj|j}| rP|jrP|j|jj|jjdS|sq|j dd|jn|jj |j r|j n|r|j n|jr|jn|jj|jj|jdS(uCFigure out the list of files to include in the source distribution, and put it in 'self.filelist'. This might involve reading the manifest template (and writing the manifest), or just reading the manifest, or just using the default file set -- it all depends on the user's options. Nu&manifest template '%s' does not exist u(using default file list)(uosupathuisfileutemplateu_manifest_is_not_generatedu read_manifestufilelistusorturemove_duplicatesuwarnufindallu use_defaultsu add_defaultsu read_templateupruneuprune_file_listuwrite_manifest(uselfutemplate_exists((u</opt/alt/python33/lib64/python3.3/distutils/command/sdist.pyu get_file_lists(            usdist.get_file_listcCs d |jjg}x|D]}t|tr|}d}x:|D]2}tjj|rAd}|j j |PqAqAW|s|j ddj |qqtjj|r|j j |q|j d|qWddg}x9|D]1}t tjjt|}|j j|qW|jd}|jjrV|j j|jnxM|jD]B\} } } } x-| D]%} |j j tjj | | qyWq`W|jjr`x|jjD]}t|tr t|}tjj|rY|j j |qYq|\}} x?| D]7}t|}tjj|r|j j |qqWqWn|jjr|jd }|j j|jn|jjr|jd }|j j|jn|jjr|jd }|j j|jnd S(u9Add all the default files to self.filelist: - README or README.txt - setup.py - test/test*.py - all pure Python modules mentioned in setup script - all files pointed by package_data (build_py) - all files defined in data_files. - all files defined as scripts. - all C sources listed as part of extensions or C libraries in the setup script (doesn't catch C headers!) Warns if (README or README.txt) or setup.py are missing; everything else is optional. uREADMEu README.txtu,standard file not found: should have one of u, ustandard file '%s' not foundu test/test*.pyu setup.cfgubuild_pyu build_extu build_clibu build_scriptsN(uREADMEu README.txtFT(u distributionu script_nameu isinstanceutupleuFalseuosupathuexistsuTrueufilelistuappenduwarnujoinufilteruisfileuglobuextenduget_finalized_commanduhas_pure_modulesuget_source_filesu data_filesuhas_data_filesustru convert_pathuhas_ext_modulesuhas_c_librariesu has_scripts(uselfu standardsufnualtsugot_ituoptionalupatternufilesubuild_pyupkgusrc_diru build_diru filenamesufilenameuitemudirnameufu build_extu build_clibu build_scripts((u</opt/alt/python33/lib64/python3.3/distutils/command/sdist.pyu add_defaultss\      '    usdist.add_defaultscCstjd|jt|jdddddddddddd}zx|j}|d krhPny|jj|WqLtt fk r}z%|j d |j |j |fWYd d }~XqLXqLWd |j Xd S( uRead and parse manifest template file named by self.template. (usually "MANIFEST.in") The parsing and processing is done by 'self.filelist', which updates itself accordingly. ureading manifest template '%s'ustrip_commentsiu skip_blanksu join_linesu lstrip_wsu rstrip_wsu collapse_joinu%s, line %d: %sN(uloguinfoutemplateuTextFileureadlineuNoneufilelistuprocess_template_lineuDistutilsTemplateErroru ValueErroruwarnufilenameu current_lineuclose(uselfutemplateulineumsg((u</opt/alt/python33/lib64/python3.3/distutils/command/sdist.pyu read_template"s    %usdist.read_templatecCs|jd}|jj}|jjdd|j|jjdd|tjdkred}nd}dddd d d d g}d |dj ||f}|jj|dddS(uvPrune off branches that might slip into the file list as created by 'read_template()', but really don't belong there: * the build tree (typically "build") * the release tree itself (only an issue if we ran "sdist" previously with --keep-temp, or it aborted) * any RCS, CVS, .svn, .hg, .git, .bzr, _darcs directories ubuilduprefixuwin32u/|\\u/uRCSuCVSu\.svnu\.hgu\.gitu\.bzru_darcsu(^|%s)(%s)(%s).*u|uis_regexiN( uget_finalized_commandu distributionu get_fullnameufilelistuexclude_patternuNoneu build_baseusysuplatformujoin(uselfubuildubase_dirusepsuvcs_dirsuvcs_ptrn((u</opt/alt/python33/lib64/python3.3/distutils/command/sdist.pyuprune_file_list?s  usdist.prune_file_listcCst|jr$tjd|jdS|jjdd}|jdd|jtj |j|fd|jdS(uWrite the file list in 'self.filelist' (presumably as filled in by 'add_defaults()' and 'read_template()') to the manifest file named by 'self.manifest'. u5not writing to manually maintained manifest file '%s'Niu*# file GENERATED by distutils, do NOT edituwriting manifest file '%s'( u_manifest_is_not_generateduloguinfoumanifestufilelistufilesuinsertuexecuteu file_utilu write_file(uselfucontent((u</opt/alt/python33/lib64/python3.3/distutils/command/sdist.pyuwrite_manifestWs   usdist.write_manifestc CsPtjj|jsdSt|j}z|j}Wd|jX|dkS(Nu+# file GENERATED by distutils, do NOT edit F(uosupathuisfileumanifestuFalseuopenureadlineuclose(uselfufpu first_line((u</opt/alt/python33/lib64/python3.3/distutils/command/sdist.pyu_manifest_is_not_generatedfs u sdist._manifest_is_not_generatedcCsytjd|jt|j}xF|D]>}|j}|jds)| rWq)n|jj|q)W|jdS(uRead the manifest file (named by 'self.manifest') and use it to fill in 'self.filelist', the list of files to include in the source distribution. ureading manifest file '%s'u#N( uloguinfoumanifestuopenustripu startswithufilelistuappenduclose(uselfumanifestuline((u</opt/alt/python33/lib64/python3.3/distutils/command/sdist.pyu read_manifestrs  usdist.read_manifestcCs|j|tj||d|jttdrHd}d|}nd}d|}|sntjdn tj |x_|D]W}tj j |stjd|qtj j ||}|j ||d|qW|jjj|dS( uCreate the directory tree that will become the source distribution archive. All directories implied by the filenames in 'files' are created under 'base_dir', and then we hard link or copy (if hard linking is unavailable) those files into place. Essentially, this duplicates the developer's source tree, but in a directory named after the distribution, containing only the files to be distributed. udry_runulinkuhardumaking hard links in %s...ucopying files to %s...u)no files to distribute -- empty manifest?u#'%s' not a regular file -- skippingN(umkpathudir_utilu create_treeudry_runuhasattruosuNoneuloguwarnuinfoupathuisfileujoinu copy_fileu distributionumetadatauwrite_pkg_info(uselfubase_dirufilesulinkumsgufileudest((u</opt/alt/python33/lib64/python3.3/distutils/command/sdist.pyumake_release_trees      usdist.make_release_treecCs|jj}tjj|j|}|j||jjg}d|j kr}|j j |j j |j j dnxR|j D]G}|j ||d|}|j ||jjj dd|fqW||_|jstj|d|jndS(uCreate the source distribution(s). First, we create the release tree with 'make_release_tree()'; then, we create all required archive files (according to 'self.formats') from the release tree. Finally, we clean up by blowing away the release tree (unless 'self.keep_temp' is true). The list of archive files created is stored so it can be retrieved later by 'get_archive_files()'. utarubase_dirusdistuudry_runN(u distributionu get_fullnameuosupathujoinudist_dirumake_release_treeufilelistufilesuformatsuappendupopuindexu make_archiveu dist_filesu archive_filesu keep_tempudir_utilu remove_treeudry_run(uselfubase_diru base_nameu archive_filesufmtufile((u</opt/alt/python33/lib64/python3.3/distutils/command/sdist.pyumake_distributions +    usdist.make_distributioncCs|jS(uzReturn the list of archive files created when the command was run, or None if the command hasn't run yet. (u archive_files(uself((u</opt/alt/python33/lib64/python3.3/distutils/command/sdist.pyuget_archive_filessusdist.get_archive_filesN(u template=utu5name of manifest template file [default: MANIFEST.in](u manifest=umu)name of manifest file [default: MANIFEST](u use-defaultsNuRinclude the default file set in the manifest [default; disable with --no-defaults](u no-defaultsNu"don't include the default file set(upruneNuspecifically exclude files/directories that should not be distributed (build tree, RCS/CVS dirs, etc.) [default; disable with --no-prune](uno-pruneNu$don't automatically exclude anything(u manifest-onlyuouEjust regenerate the manifest and then stop (implies --force-manifest)(uforce-manifestufukforcibly regenerate the manifest and carry on as usual. Deprecated: now the manifest is always regenerated.(uformats=Nu6formats for source distribution (comma-separated list)(u dist-dir=uduFdirectory to put the source distribution archive(s) in [default: dist](umetadata-checkNu[Ensure that all required elements of meta-data are supplied. Warn if any missing. [default](u__name__u __module__u __qualname__u descriptionuchecking_metadatauNoneu user_optionsuboolean_optionsu show_formatsu help_optionsu negative_optudefault_formatu sub_commandsuinitialize_optionsufinalize_optionsurunucheck_metadatau get_file_listu add_defaultsu read_templateuprune_file_listuwrite_manifestu_manifest_is_not_generatedu read_manifestumake_release_treeumake_distributionuget_archive_files(u __locals__((u</opt/alt/python33/lib64/python3.3/distutils/command/sdist.pyusdist"sf            ( P     * usdist(u__doc__uosustringusysutypesuglobuwarningsuwarnudistutils.coreuCommandu distutilsudir_utiludep_utilu file_utilu archive_utiludistutils.text_fileuTextFileudistutils.errorsudistutils.filelistuFileListulogudistutils.utilu convert_pathu show_formatsusdist(((u</opt/alt/python33/lib64/python3.3/distutils/command/sdist.pyus    "  PK!@| NN-command/__pycache__/bdist_dumb.cpython-33.pycnu[ fvc@sdZddlZddlmZddlmZddlmZmZddl Tddl m Z ddl m Z Gd d d eZdS( udistutils.command.bdist_dumb Implements the Distutils 'bdist_dumb' command (create a "dumb" built distribution -- i.e., just an archive to be unpacked under $prefix or $exec_prefix).iN(uCommand(u get_platform(u remove_treeuensure_relative(u*(uget_python_version(ulogc Bs|EeZdZdZd!dddefd"d d d dfd#d$d%gZd ddgZidd6dd6dd6ZddZ ddZ ddZ d S(&u bdist_dumbu"create a "dumb" built distributionu bdist-dir=udu1temporary directory for creating the distributionu plat-name=upu;platform name to embed in generated filenames (default: %s)uformat=ufu0archive format to create (tar, ztar, gztar, zip)u keep-tempuku/keep the pseudo-installation tree around after u!creating the distribution archiveu dist-dir=u-directory to put final built distributions inu skip-buildu2skip rebuilding everything (for testing/debugging)urelativeu6build the archive using relative paths(default: false)ugztaruposixuzipuntuos2cCsCd|_d|_d|_d|_d|_d|_d|_dS(Ni(uNoneu bdist_diru plat_nameuformatu keep_tempudist_diru skip_buildurelative(uself((uA/opt/alt/python33/lib64/python3.3/distutils/command/bdist_dumb.pyuinitialize_options,s      ubdist_dumb.initialize_optionscCs|jdkr<|jdj}tjj|d|_n|jdkry|jtj |_Wqt k rt dtj YqXn|j dddd dS( Nubdistudumbu@don't know how to create dumb built distributions on platform %sudist_diru plat_nameu skip_build(udist_dirudist_dir(u plat_nameu plat_name(u skip_buildu skip_build( u bdist_diruNoneuget_finalized_commandu bdist_baseuosupathujoinuformatudefault_formatunameuKeyErroruDistutilsPlatformErroruset_undefined_options(uselfu bdist_base((uA/opt/alt/python33/lib64/python3.3/distutils/command/bdist_dumb.pyufinalize_options5s  ubdist_dumb.finalize_optionscCs|js|jdn|jddd}|j|_|j|_d|_tjd|j|jdd|jj |j f}t j dkr|j d d }nt jj|j|}|js|j}nm|jjr)|j|jkr)td t|jt|jfn!t jj|jt|j}|j||jd |}|jjrt}nd }|jjjd||f|jst|jd|jndS(Nubuilduinstallureinit_subcommandsiiuinstalling to %su%s.%suos2u:u-uScan't make a dumb built distribution where base and platbase are different (%s, %s)uroot_diruanyu bdist_dumbudry_run( u skip_buildu run_commandureinitialize_commandu bdist_dirurootuwarn_diruloguinfou distributionu get_fullnameu plat_nameuosunameureplaceupathujoinudist_dirurelativeuhas_ext_modulesu install_baseuinstall_platbaseuDistutilsPlatformErrorurepruensure_relativeu make_archiveuformatuget_python_versionu dist_filesuappendu keep_tempu remove_treeudry_run(uselfuinstalluarchive_basenameupseudoinstall_rootu archive_rootufilenameu pyversion((uA/opt/alt/python33/lib64/python3.3/distutils/command/bdist_dumb.pyurunGs@             ubdist_dumb.runN(u bdist-dir=udu1temporary directory for creating the distribution(uformat=ufu0archive format to create (tar, ztar, gztar, zip)(u dist-dir=udu-directory to put final built distributions in(u skip-buildNu2skip rebuilding everything (for testing/debugging)(urelativeNu6build the archive using relative paths(default: false)( u__name__u __module__u __qualname__u descriptionu get_platformuNoneu user_optionsuboolean_optionsudefault_formatuinitialize_optionsufinalize_optionsurun(u __locals__((uA/opt/alt/python33/lib64/python3.3/distutils/command/bdist_dumb.pyu bdist_dumbs0     u bdist_dumb(u__doc__uosudistutils.coreuCommandudistutils.utilu get_platformudistutils.dir_utilu remove_treeuensure_relativeudistutils.errorsudistutils.sysconfiguget_python_versionu distutilsulogu bdist_dumb(((uA/opt/alt/python33/lib64/python3.3/distutils/command/bdist_dumb.pyus  PK!0hh,command/__pycache__/bdist_msi.cpython-33.pycnu[ fc@sdZddlZddlZddlmZddlmZddlmZddl m Z ddl m Z ddl mZdd lmZddlZdd lmZmZmZdd lmZmZmZmZGd d d eZGdddeZdS(u# Implements the bdist_msi command. iN(uCommand(u remove_tree(uget_python_version(u StrictVersion(uDistutilsOptionError(u get_platform(ulog(uschemausequenceutext(u DirectoryuFeatureuDialoguadd_datacBst|EeZdZdZddZddZdddd Zd dd d Zd dddZddZ dS(uPyDialoguDialog class with a fixed layout: controls at the top, then a ruler, then a list of buttons: back, next, cancel. Optionally a bitmap at the left.cOsKtj|||jd}d|d}|jdd||jddS(ubDialog(database, name, x, y, w, h, attributes, title, first, default, cancel, bitmap=true)i$iiHu BottomLineiN(uDialogu__init__uhulineuw(uselfuargsukwurulerubmwidth((u@/opt/alt/python33/lib64/python3.3/distutils/command/bdist_msi.pyu__init__s uPyDialog.__init__c Cs'|jddddddd|dS( u,Set the title text of the dialog at the top.uTitleii i@i<iu{\VerdanaBold10}%sN(utext(uselfutitle((u@/opt/alt/python33/lib64/python3.3/distutils/command/bdist_msi.pyutitle#suPyDialog.titleuBackic Cs>|rd}nd}|j|d|jddd|||S(uAdd a back button with a given title, the tab-next button, its name in the Control table, possibly initially disabled. Return the button, so that events can be associatediiiii8i(u pushbuttonuh(uselfutitleunextunameuactiveuflags((u@/opt/alt/python33/lib64/python3.3/distutils/command/bdist_msi.pyuback*s u PyDialog.backuCancelc Cs>|rd}nd}|j|d|jddd|||S(uAdd a cancel button with a given title, the tab-next button, its name in the Control table, possibly initially disabled. Return the button, so that events can be associatediii0ii8i(u pushbuttonuh(uselfutitleunextunameuactiveuflags((u@/opt/alt/python33/lib64/python3.3/distutils/command/bdist_msi.pyucancel5s uPyDialog.canceluNextc Cs>|rd}nd}|j|d|jddd|||S(uAdd a Next button with a given title, the tab-next button, its name in the Control table, possibly initially disabled. Return the button, so that events can be associatediiiii8i(u pushbuttonuh(uselfutitleunextunameuactiveuflags((u@/opt/alt/python33/lib64/python3.3/distutils/command/bdist_msi.pyunext@s u PyDialog.nextc Cs:|j|t|j|d|jdddd||S(uAdd a button with a given title, the tab-next button, its name in the Control table, giving its x position; the y-position is aligned with the other buttons. Return the button, so that events can be associatediii8ii(u pushbuttonuintuwuh(uselfunameutitleunextuxpos((u@/opt/alt/python33/lib64/python3.3/distutils/command/bdist_msi.pyuxbuttonKsuPyDialog.xbuttonN( u__name__u __module__u __qualname__u__doc__u__init__utitleubackucancelunextuxbutton(u __locals__((u@/opt/alt/python33/lib64/python3.3/distutils/command/bdist_msi.pyuPyDialogs    uPyDialogcBsa|EeZdZdZdedfdddefddd d fd ed d fdddfdddfdddfdedfdedfdedfg ZddddgZdddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0gZd1Z d2d3Z d4d5Z d6d7Z d8d9Z d:d;Zd<d=Zd>d?Zd@dAZdBS(Cu bdist_msiu7create a Microsoft Installer (.msi) binary distributionu bdist-dir=u1temporary directory for creating the distributionu plat-name=upu;platform name to embed in generated filenames (default: %s)u keep-tempuku/keep the pseudo-installation tree around after u!creating the distribution archiveutarget-version=u!require a specific python versionu on the target systemuno-target-compileucu/do not compile .py to .pyc on the target systemuno-target-optimizeuou:do not compile .py to .pyo (optimized)on the target systemu dist-dir=udu-directory to put final built distributions inu skip-buildu2skip rebuilding everything (for testing/debugging)uinstall-script=uTbasename of installation script to be run afterinstallation or before deinstallationupre-install-script=u{Fully qualified filename of a script to be run before any files are installed. This script need not be in the distributionu2.0u2.1u2.2u2.3u2.4u2.5u2.6u2.7u2.8u2.9u3.0u3.1u3.2u3.3u3.4u3.5u3.6u3.7u3.8u3.9uXcCsgd|_d|_d|_d|_d|_d|_d|_d|_d|_ d|_ d|_ dS(Ni( uNoneu bdist_diru plat_nameu keep_tempuno_target_compileuno_target_optimizeutarget_versionudist_diru skip_builduinstall_scriptupre_install_scriptuversions(uself((u@/opt/alt/python33/lib64/python3.3/distutils/command/bdist_msi.pyuinitialize_options}s          ubdist_msi.initialize_optionscCsr|jdd |jdkrL|jdj}tjj|d|_nt}|j rz|j j rz||_ n|j r|j g|_ |j r|j j r|j |krtd|fqnt|j|_ |jdd d |jrtdn|jrexI|j jD]%}|jtjj|kr&Pq&q&Wtd|jnd|_dS( Nubdistu skip_buildumsiuMtarget version can only be %s, or the '--skip-build' option must be specifiedudist_diru plat_nameu5the pre-install-script feature is not yet implementedu(install_script '%s' not found in scripts(u skip_buildu skip_build(udist_dirudist_dir(u plat_nameu plat_name(uset_undefined_optionsu bdist_diruNoneuget_finalized_commandu bdist_baseuosupathujoinuget_python_versionutarget_versionu distributionuhas_ext_modulesuversionsu skip_builduDistutilsOptionErrorulistu all_versionsupre_install_scriptuinstall_scriptuscriptsubasenameuinstall_script_key(uselfu bdist_baseu short_versionuscript((u@/opt/alt/python33/lib64/python3.3/distutils/command/bdist_msi.pyufinalize_optionss:       ubdist_msi.finalize_optionscCs|js|jdn|jddd}|j|_|j|_d|_|jd}d|_d|_|jj r|j }|s|jst dt j dd}nd |j|f}|jd}tjj|jd ||_ntjd |j|jt jjdtjj|jd |jt jd=|j|j|jj}|j|}tjj|}tjj|rtj |n|jj!}|j"} | s|j#} n| sd } n|j$} dt%| j } |jj}|j r8d|j |f} n d|} t&j'|t(| t&j)| | |_*t&j+|j*t,d| fg} |j-p|j.}|r| j/d|fn|j0r| j/d|j0fn| rt1|j*d| n|j2|j3|j4|j5|j*j6t7|jdrld|j pMd|f}|jj8j/|n|j9st:|jd|j;ndS(Nubuilduinstallureinit_subcommandsiiu install_libu Should have already checked thisiu.%s-%sulibuinstalling to %suPURELIBuUNKNOWNu%d.%d.%du Python %s %su Python %su DistVersionu ARPCONTACTuARPURLINFOABOUTuPropertyu dist_filesu bdist_msiuanyudry_run(<u skip_buildu run_commandureinitialize_commandu bdist_diruprefixuwarn_dirucompileuoptimizeu distributionuhas_ext_modulesutarget_versionuAssertionErrorusysuversionu plat_nameuget_finalized_commanduosupathujoinu build_baseu build_libuloguinfouensure_finalizeduinserturunumkpathudist_diru get_fullnameuget_installer_filenameuabspathuexistsuunlinkumetadatauauthoru maintaineru get_versionu StrictVersionumsilibu init_databaseuschemaugen_uuidudbu add_tablesusequenceu author_emailumaintainer_emailuappenduurluadd_datauadd_find_pythonu add_filesu add_scriptsuadd_uiuCommituhasattru dist_filesu keep_tempu remove_treeudry_run(uselfuinstallu install_libutarget_versionuplat_specifierubuildufullnameuinstaller_nameumetadatauauthoruversionusversionu product_nameupropsuemailutup((u@/opt/alt/python33/lib64/python3.3/distutils/command/bdist_msi.pyuruns~        %                  u bdist_msi.runc Cs|j}tjd}tjj|j}t||d|dd}t |ddddddd}||d fg}x|j |j gD]}d|}d|} } d} ||j krd } d } nd |} d} t || | | d| d|}t|||||| }|j |||fqW|j i}x|D]\}}}|g}xg|r|j}xNtj|jD]:}tjj|j|}tjj|r d |j||f}||} t||||| |}|j |q|js.|j|j|dn||kr|j|}||<||jkr|jr|td|nd||_qq||}t|jd|||j|d|jfgqWqiW|j qNW|j|dS(Nu distfilesu TARGETDIRu SourceDiruPythonu Everythingiiu directoryuuPython from another locationiuPython %s from registryu%s|%suMultiple files with name %su[#%s]u DuplicateFile(udbumsilibuCABuosupathuabspathu bdist_diru DirectoryuNoneuFeatureuversionsu other_versionuappenduCommitupopulistdiruabsoluteujoinuisdiru make_shortu componentustart_componentulogicaluadd_fileuinstall_scriptuinstall_script_keyuDistutilsOptionErroruadd_dataucommit(uselfudbucaburootdirurootufuitemsuversionutargetunameudefaultudescutitleuleveludiruseenufeatureutodoufileuafileushortunewdirukey((u@/opt/alt/python33/lib64/python3.3/distutils/command/bdist_msi.pyu add_files s\    !          +ubdist_msi.add_filesc Csd}x|jD]}d|}d|}d|}d|}d|}d|}d|} d |} d |} d |} tjrd } nd } t|jd|d |d| f|d|d| fgt|jd||f||fgt|jd|d!| d|df| d"| d|df| d#| d| dfgt|jd|||f| ||df| d|d fgt|jd|||f| ||df| d|d fgt|jdd|dd|fg|d7}|dkstqWdS($usAdds code to the installer to compute the location of Python. Properties PYTHON.MACHINE.X.Y and PYTHON.USER.X.Y will be set from the registry for each version of Python. Properties TARGETDIRX.Y will be set from PYTHON.USER.X.Y if defined, else from PYTHON.MACHINE.X.Y. Properties PYTHONX.Y will be set to TARGETDIRX.Y\python.exeiu)SOFTWARE\Python\PythonCore\%s\InstallPathupython.machine.u python.user.uPYTHON.MACHINE.u PYTHON.USER.uPythonFromMachineuPythonFromUseru PythonExeu TARGETDIRuPYTHONiiu RegLocatoriu AppSearchu CustomActioni3iu[u]u ]\python.exeuInstallExecuteSequenceuInstallUISequenceu ConditionuPythoniu NOT TARGETDIRiiNii3i3i3(uversionsumsilibuWin64uadd_dataudbuNoneuAssertionError(uselfustartuveru install_pathu machine_reguuser_regu machine_propu user_propumachine_actionu user_actionu exe_actionutarget_dir_propuexe_propuType((u@/opt/alt/python33/lib64/python3.3/distutils/command/bdist_msi.pyuadd_find_pythonCsJ                       ubdist_msi.add_find_pythoncCsQ|jrd}x|j|jgD]l}d|}d|}t|jd|d||jfgt|jd|d||fg|d7}q#Wn|jrMtjj |j d }t |d }|j d |j t |jj |jt|jd d tj|fgt|jddgt|jddgndS(Niuinstall_script.uPYTHONu CustomActioni2uInstallExecuteSequenceu &Python%s=3iupreinstall.batuwurem =""" %1 %0 exit """ uBinaryu PreInstalliu NOT Installedi(u PreInstalliu PreInstallN(u PreInstallu NOT Installedi(uinstall_scriptuversionsu other_versionuadd_dataudbuinstall_script_keyupre_install_scriptuosupathujoinu bdist_diruopenuwriteureaducloseumsilibuBinaryuNone(uselfustartuveruinstall_actionuexe_propuscriptfnuf((u@/opt/alt/python33/lib64/python3.3/distutils/command/bdist_msi.pyu add_scriptsys,            ubdist_msi.add_scriptscCsG|j}d}}d}d}d}d}d}d} t|dddddddgt|dddddgt|d dddddgt|d/tjt|d0tjt|d1||||||d2d2d2 } | jd3| jd4d2d5d| j d6d7d5d| jd8d9d:d;d<d=d>| jd?d9d@d;dAd=dB| j d2d6dCd2} | j dDdEt|dF||||||d2d2d2 } | jdG| jd4d2d5d| j d6d7d5d| jd8d9d:d;d<d=dH| jd?d9d@d;dAd=dB| j d2d6dCd2} | j dDdEt|dI||||||d2d2d2 } | jdJ| jd4d2d5d| j d6d7d5d| jdKd9dLd;dAd=dB| j d2d6dCd2} | j dDdMt|dN||||dO|dPdPdPdQd }|jdRd9dSdTd9d=dU|jdKdAdVdWdAd=dX|jdYdAdZd[ddd\|j d]d^dAd_d[d`dadbddd |jdEdcdCdE} | j dDdE|j dcdPdCdc} | j dDdc|j dPdEdCdP} | j dDdPt|d ddd[ddde|dfdd }|jdfdddWdgddh|jdidjdkdldmddndj dDdo|jdpdqdkdldmddrdj dDds|jdtddkdldmddudj dDdv|jdwdxdkdldmdd6dj dDdy|jdzdldkdldmddcdj dDd{|jd|d}dkdldmdd~dj dDd|jdddkdldmddPdj dDdt|dddddd|dndndn }|jdYdgd9dddd|jdrdkdddddrdn} | j dDdE|jdnddddddndr} | j dDdMt|ddddd||dMdMdM }|jdYdgd9dddd|jdMddddddMd} | j dDdEt|d!||||||d6d6d6 }|jdKd9d:d;dd=d|jd|jd/d9dd;dAd=d} | jd/dY|jdd9dd;dd=d} | jddY|jd7dd5d|j ddd5d|j d6d} | j ddt|d'||||||ddd6 }|jd|jdd9dddAdd|jj|jd4dd5d|j dd6} d}| j ddd|xF|j|jgD]1}|d7}| j dd|d|d|qW| j ddd|d| j dDdMd|d|j d6d} | j dd|j ddd9dddjddddd } | j dd|j}d|}d|}|jdd9dTdd9dd} | jd|| jd|| jd|| jd||j ddd9ddddd|ddd } | jd|| jd|| jd|| jd|t|d||||||ddddQd }|jdRd9dSdTd9d=d|jdKdAdAdWdAd=d|jdYdAdd[ddd|j dddAdd[dddddd |jdd~ddj dDdMt|d$||||||ddd6 }|jd|jdd9ddddddhd }|jdddddAd|jdddddAd|jd7dd5d|j dd6} | j dddd| j dDdMdd|j d6d} | j ddt|d-||||||d6d6d6dQd }|jdRdAd9dTd9d=d|jdYdddddd|jdddddAdd|jd/d:d|d:dAdd} | jd/dY|j ddddjddddddd } | jdd|jd4dd5d|j dd6d5d|j d6d7j ddt|d*||||||ddd6 }|jd|jdd9dd[dxdd|jdd9dd[ddddhd }|jddddTdd|jddddTdd|jd4dd5d|j d2d6} | j dddd| j ddddS| j dddda| j dddd| j dddd| j dddd| j dddd| j dddd| j dDdMddA|j d6dj dddS(Ni2iri,u[ProductName] Setupiii uPropertyu DefaultUIFontuDlgFont8u ErrorDialoguErrorDlgu Progress1uInstallu Progress2uinstallsuMaintenanceForm_ActionuRepairu WhichUsersuALLu TextStyleuTahomai iu DlgFontBold8iu VerdanaBold10uVerdanai u VerdanaRed9iuInstallUISequenceu PrepareDlgu(Not Privileged or Windows9x or Installediu WhichUsersDlgu.Privileged and not Windows9x and not InstallediuSelectFeaturesDlgu Not InstallediuMaintenanceTypeDlgu,Installed AND NOT RESUME AND NOT Preselectediu ProgressDlgiu ActionTextuUITextu FatalErroruFinishu)[ProductName] Installer ended prematurelyu< BackuactiveuCanceluBacku Description1iiFi@iPiu[ProductName] setup ended prematurely because of an error. Your system has not been modified. To install this program at a later time, please run the installation again.u Description2iiu.Click the Finish button to exit the Installer.unameu EndDialoguExituUserExitu'[ProductName] Installer was interruptedu[ProductName] setup was interrupted. Your system has not been modified. To install this program at a later time, please run the installation again.u ExitDialogu&Completing the [ProductName] Installeru DescriptioniuReturnu FilesInUseiuRetryubitmapuTitleiiu{\DlgFontBold8}Files in Useiiu8Some files that need to be updated are currently in use.uTexti7iJuThe following applications are using files that need to be updated by this setup. Close these applications and then click Retry to continue the installation or Cancel to exit it.uListuListBoxikiiuFileInUseProcessuIgnoreieiu ErrorTexti0uuNixiHiQiuNouErrorNouYiuYesuErrorYesuAuAbortu ErrorAbortuCi*u ErrorCanceluIu ErrorIgnoreuOiuOkuErrorOkuRiu ErrorRetryu CancelDlgiiUiiu;Are you sure you want to cancel [ProductName] installation?i9i8iiuWaitForCostingDlguRPlease wait while the installer finishes determining your disk space requirements.ifi(uOPlease wait while the Installer prepares to guide you through the installation.u&Welcome to the [ProductName] Installerinu Pondering...u ActionDataiuNextu SpawnDialoguSelect Python InstallationsuHintu9Select the Python locations where %s should be installed.uNext >u [TARGETDIR]u [SourceDir]uorderingu [TARGETDIR%s]u FEATURE_SELECTED AND &Python%s=3uSpawnWaitDialogiuFeaturesu SelectionTreei<uFEATUREuPathEditu[FEATURE_SELECTED]u1u!FEATURE_SELECTED AND &Python%s<>3uOtheru$Provide an alternate Python locationuEnableuShowuDisableuHideiiu TARGETDIRu DiskCostDlguOKu&{\DlgFontBold8}Disk Space RequirementsuFThe disk space required for the installation of the selected features.i5uThe highlighted volumes (if any) do not have enough disk space available for the currently selected features. You can either remove some files from the highlighted volumes, or choose to install less features onto local drive(s), or select different destination drive(s).u VolumeListuVolumeCostListidiiu{120}{70}{70}{70}{70}g?u AdminInstalluGSelect whether to install [ProductName] for all users of this computer.iuInstall for all usersuJUSTMEiuInstall just for meu [ALLUSERS]uWhichUsers="ALL"u({\DlgFontBold8}[Progress1] [ProductName]i#iAuYPlease wait while the Installer [Progress2] [ProductName]. This may take several minutes.u StatusLabeluStatus:u ProgressBariu Progress doneu SetProgressuProgressu)Welcome to the [ProductName] Setup WizarduBodyTexti?u:Select whether you want to repair or remove [ProductName].uRepairRadioGroupiliu&Repair [ProductName]uRemovei$uRe&move [ProductName]u [REINSTALL]uMaintenanceForm_Action="Repair"u [Progress1]u Repairingu [Progress2]urepairsu Reinstallu[REMOVE]uMaintenanceForm_Action="Remove"i uRemovingi uremovesi iu MaintenanceForm_Action<>"Change"(u DefaultUIFontuDlgFont8(u ErrorDialoguErrorDlg(u Progress1uInstall(u Progress2uinstalls(uMaintenanceForm_ActionuRepair(u WhichUsersuALL(uDlgFont8uTahomai Ni(u DlgFontBold8uTahomaiNi(u VerdanaBold10uVerdanai Ni(u VerdanaRed9uVerdanai ii(u PrepareDlgu(Not Privileged or Windows9x or Installedi(u WhichUsersDlgu.Privileged and not Windows9x and not Installedi(uSelectFeaturesDlgu Not Installedi(uMaintenanceTypeDlgu,Installed AND NOT RESUME AND NOT Preselectedi(u ProgressDlgNiF(udbuadd_datauNoneutextu ActionTextuUITextuPyDialogutitleubackucancelunextueventuFalseucontroluDialogu pushbuttonumappingu distributionu get_fullnameuversionsu other_versionu conditionuxbuttonu radiogroupuadd(uselfudbuxuyuwuhutitleumodalumodelessutrack_disk_spaceufatalucu user_exitu exit_dialoguinuseuerrorucancelucostinguprepuseldlguorderuversionuveruinstall_other_condudont_install_other_conducostu whichusersuguprogressumaint((u@/opt/alt/python33/lib64/python3.3/distutils/command/bdist_msi.pyuadd_uis                .......$$$ !!        "  % ubdist_msi.add_uicCsT|jr%d||j|jf}nd||jf}tjj|j|}|S(Nu%s.%s-py%s.msiu %s.%s.msi(utarget_versionu plat_nameuosupathujoinudist_dir(uselfufullnameu base_nameuinstaller_name((u@/opt/alt/python33/lib64/python3.3/distutils/command/bdist_msi.pyuget_installer_filenames   u bdist_msi.get_installer_filenameN(u__name__u __module__u __qualname__u descriptionuNoneu get_platformu user_optionsuboolean_optionsu all_versionsu other_versionuinitialize_optionsufinalize_optionsurunu add_filesuadd_find_pythonu add_scriptsuadd_uiuget_installer_filename(u __locals__((u@/opt/alt/python33/lib64/python3.3/distutils/command/bdist_msi.pyu bdist_msiSsP     ( [ 6 6 & ?u bdist_msi(u__doc__usysuosudistutils.coreuCommandudistutils.dir_utilu remove_treeudistutils.sysconfiguget_python_versionudistutils.versionu StrictVersionudistutils.errorsuDistutilsOptionErrorudistutils.utilu get_platformu distutilsulogumsilibuschemausequenceutextu DirectoryuFeatureuDialoguadd_datauPyDialogu bdist_msi(((u@/opt/alt/python33/lib64/python3.3/distutils/command/bdist_msi.pyus ">PK!wq-command/__pycache__/build_clib.cpython-33.pyonu[ fVc@srdZddlZddlmZddlTddlmZddlmZddZ Gd d d eZ dS( udistutils.command.build_clib Implements the Distutils 'build_clib' command, to build a C/C++ library that is included in the module distribution and needed by an extension module.iN(uCommand(u*(ucustomize_compiler(ulogcCsddlm}|dS(Ni(ushow_compilers(udistutils.ccompilerushow_compilers(ushow_compilers((uA/opt/alt/python33/lib64/python3.3/distutils/command/build_clib.pyushow_compilerssushow_compilerscBs|EeZdZdZd"d#d$d%d&gZdd gZdd!defgZddZ ddZ ddZ ddZ ddZ ddZdd Zd!S('u build_clibu/build C/C++ libraries used by Python extensionsu build-clib=ubu%directory to build C/C++ libraries tou build-temp=utu,directory to put temporary build by-productsudebugugu"compile with debugging informationuforceufu2forcibly build everything (ignore file timestamps)u compiler=ucuspecify the compiler typeu help-compilerulist available compilerscCsUd|_d|_d|_d|_d|_d|_d|_d|_d|_ dS(Ni( uNoneu build_clibu build_tempu librariesu include_dirsudefineuundefudebuguforceucompiler(uself((uA/opt/alt/python33/lib64/python3.3/distutils/command/build_clib.pyuinitialize_options4s        ubuild_clib.initialize_optionscCs|jdddd d d |jj|_|jrG|j|jn|jdkrn|jjpeg|_nt|jtr|jjt j |_ndS( Nubuildu build_tempu build_clibucompilerudebuguforce(u build_tempu build_clib(u build_tempu build_temp(ucompilerucompiler(udebugudebug(uforceuforce( uset_undefined_optionsu distributionu librariesucheck_library_listu include_dirsuNoneu isinstanceustrusplituosupathsep(uself((uA/opt/alt/python33/lib64/python3.3/distutils/command/build_clib.pyufinalize_optionsDs  ubuild_clib.finalize_optionscCs|js dSddlm}|d|jd|jd|j|_t|j|jdk rv|jj |jn|j dk rx-|j D]\}}|jj ||qWn|j dk rx$|j D]}|jj |qWn|j|jdS(Ni(u new_compilerucompilerudry_runuforce(u librariesudistutils.ccompileru new_compilerucompilerudry_runuforceucustomize_compileru include_dirsuNoneuset_include_dirsudefineu define_macrouundefuundefine_macroubuild_libraries(uselfu new_compilerunameuvalueumacro((uA/opt/alt/python33/lib64/python3.3/distutils/command/build_clib.pyurun^s    ubuild_clib.runcCst|tstdnx|D]}t|t r\t|dkr\tdn|\}}t|tstdnd|kstjdkrtj|krtd|dnt|ts%tdq%q%Wd S( u`Ensure that the list of libraries is valid. `library` is presumably provided as a command option 'libraries'. This method checks that it is a list of 2-tuples, where the tuples are (library_name, build_info_dict). Raise DistutilsSetupError if the structure is invalid anywhere; just returns otherwise. u+'libraries' option must be a list of tuplesiu*each element of 'libraries' must a 2-tupleuNfirst element of each tuple in 'libraries' must be a string (the library name)u/u;bad library name '%s': may not contain directory separatorsiuMsecond element of each tuple in 'libraries' must be a dictionary (build info)N( u isinstanceulistuDistutilsSetupErrorutupleulenustruosusepudict(uselfu librariesulibunameu build_info((uA/opt/alt/python33/lib64/python3.3/distutils/command/build_clib.pyucheck_library_listvs"   "   *ubuild_clib.check_library_listcCs>|js dSg}x$|jD]\}}|j|qW|S(N(u librariesuNoneuappend(uselfu lib_namesulib_nameu build_info((uA/opt/alt/python33/lib64/python3.3/distutils/command/build_clib.pyuget_library_namess  ubuild_clib.get_library_namescCs|j|jg}xh|jD]]\}}|jd}|dks]t|ttf rptd|n|j|q W|S(Nusourcesufin 'libraries' option (library '%s'), 'sources' must be present and must be a list of source filenames( ucheck_library_listu librariesugetuNoneu isinstanceulistutupleuDistutilsSetupErroruextend(uselfu filenamesulib_nameu build_infousources((uA/opt/alt/python33/lib64/python3.3/distutils/command/build_clib.pyuget_source_filess" ubuild_clib.get_source_filesc Csx|D]\}}|jd}|dksDt|ttf rWtd|nt|}tjd||jd}|jd}|jj |d|j d|d|d|j }|jj ||d|j d|j qWdS(Nusourcesufin 'libraries' option (library '%s'), 'sources' must be present and must be a list of source filenamesubuilding '%s' libraryumacrosu include_dirsu output_dirudebug(ugetuNoneu isinstanceulistutupleuDistutilsSetupErroruloguinfoucompilerucompileu build_tempudebugucreate_static_libu build_clib(uselfu librariesulib_nameu build_infousourcesumacrosu include_dirsuobjects((uA/opt/alt/python33/lib64/python3.3/distutils/command/build_clib.pyubuild_librariess$"     ubuild_clib.build_librariesN(u build-clib=ubu%directory to build C/C++ libraries to(u build-temp=utu,directory to put temporary build by-products(udebugugu"compile with debugging information(uforceufu2forcibly build everything (ignore file timestamps)(u compiler=ucuspecify the compiler type(u__name__u __module__u __qualname__u descriptionu user_optionsuboolean_optionsuNoneushow_compilersu help_optionsuinitialize_optionsufinalize_optionsurunucheck_library_listuget_library_namesuget_source_filesubuild_libraries(u __locals__((uA/opt/alt/python33/lib64/python3.3/distutils/command/build_clib.pyu build_clibs*      $ u build_clib( u__doc__uosudistutils.coreuCommandudistutils.errorsudistutils.sysconfigucustomize_compileru distutilsulogushow_compilersu build_clib(((uA/opt/alt/python33/lib64/python3.3/distutils/command/build_clib.pyus   PK!Zh2command/__pycache__/install_scripts.cpython-33.pyonu[ fc@s\dZddlZddlmZddlmZddlmZGdddeZdS(uudistutils.command.install_scripts Implements the Distutils 'install_scripts' command, for installing Python scripts.iN(uCommand(ulog(uST_MODEcBst|EeZdZdZddddgZdd gZd dZddZddZ ddZ ddZ dS(uinstall_scriptsu%install scripts (Python or otherwise)u install-dir=ududirectory to install scripts tou build-dir=ubu'build directory (where to install from)uforceufu-force installation (overwrite existing files)u skip-builduskip the build stepscCs(d|_d|_d|_d|_dS(Ni(uNoneu install_diruforceu build_diru skip_build(uself((uF/opt/alt/python33/lib64/python3.3/distutils/command/install_scripts.pyuinitialize_optionss   u"install_scripts.initialize_optionscCs*|jdd |jdd d d dS( Nubuildu build_scriptsu build_diruinstalluinstall_scriptsu install_diruforceu skip_build(u build_scriptsu build_dir(uinstall_scriptsu install_dir(uforceuforce(u skip_buildu skip_build(uset_undefined_options(uself((uF/opt/alt/python33/lib64/python3.3/distutils/command/install_scripts.pyufinalize_options!s  u install_scripts.finalize_optionscCs|js|jdn|j|j|j|_tjdkrxq|jD]`}|j rrt j d|qPtj |t dBd@}t j d||tj||qPWndS(Nu build_scriptsuposixuchanging mode of %simiuchanging mode of %s to %o(u skip_buildu run_commandu copy_treeu build_diru install_diruoutfilesuosunameu get_outputsudry_runuloguinfoustatuST_MODEuchmod(uselfufileumode((uF/opt/alt/python33/lib64/python3.3/distutils/command/install_scripts.pyurun)s  uinstall_scripts.runcCs|jjpgS(N(u distributionuscripts(uself((uF/opt/alt/python33/lib64/python3.3/distutils/command/install_scripts.pyu get_inputs8suinstall_scripts.get_inputscCs |jp gS(N(uoutfiles(uself((uF/opt/alt/python33/lib64/python3.3/distutils/command/install_scripts.pyu get_outputs;suinstall_scripts.get_outputsN(u install-dir=ududirectory to install scripts to(u build-dir=ubu'build directory (where to install from)(uforceufu-force installation (overwrite existing files)(u skip-buildNuskip the build steps( u__name__u __module__u __qualname__u descriptionuNoneu user_optionsuboolean_optionsuinitialize_optionsufinalize_optionsurunu get_inputsu get_outputs(u __locals__((uF/opt/alt/python33/lib64/python3.3/distutils/command/install_scripts.pyuinstall_scriptss      uinstall_scripts( u__doc__uosudistutils.coreuCommandu distutilsulogustatuST_MODEuinstall_scripts(((uF/opt/alt/python33/lib64/python3.3/distutils/command/install_scripts.pyus  PK!ĶZZ,command/__pycache__/build_ext.cpython-33.pyonu[ fc@sDdZddlZddlZddlZddlmZddlTddlmZm Z ddlm Z ddl m Z ddl mZdd lmZdd lmZejd krdZdZndd lmZdZejd krddlmZeeZnejdZ ddZ!GdddeZ"dS(udistutils.command.build_ext Implements the Distutils 'build_ext' command, for building extension modules (currently limited to C extensions, should accommodate C++ extensions ASAP).iN(uCommand(u*(ucustomize_compileruget_python_version(uget_config_h_filename(u newer_group(u Extension(u get_platform(ulogu2.6(u USER_BASEunt(uget_build_versionu3^[a-zA-Z_][a-zA-Z_0-9]*(\.[a-zA-Z_][a-zA-Z_0-9]*)*$cCsddlm}|dS(Ni(ushow_compilers(udistutils.ccompilerushow_compilers(ushow_compilers((u@/opt/alt/python33/lib64/python3.3/distutils/command/build_ext.pyushow_compilers#sushow_compilerscBs|EeZdZdZdejZdWdXd d d efd d ddfdddefdYdZd[dddefd\d]d^d_d`dadbdcgZ d d%d(d.gZ e re j dde j d4nd6dVd7e fgZd8d9Zd:d;Zd<d=Zd>d?Zd@dAZdBdCZdDdEZdFdGZdHdIZdJdKZdLdMZdNdOZdPdQZdRdSZdTdUZdVS(eu build_extu8build C/C++ extensions (compile/link to build directory)u (separated by '%s')u build-lib=ubu(directory for compiled extension modulesu build-temp=utu1directory for temporary files (build by-products)u plat-name=upu>platform name to cross-compile for, if supported (default: %s)uinplaceuiu=ignore build-lib and put compiled extensions into the source u,directory alongside your pure Python modulesu include-dirs=uIu.list of directories to search for header filesudefine=uDuC preprocessor macros to defineuundef=uUu!C preprocessor macros to undefineu libraries=ulu!external C libraries to link withu library-dirs=uLu.directories to search for external C librariesurpath=uRu7directories to search for shared C libraries at runtimeu link-objects=uOu2extra explicit link objects to include in the linkudebugugu'compile/link with debugging informationuforceufu2forcibly build everything (ignore file timestamps)u compiler=ucuspecify the compiler typeuswig-cppu)make SWIG create C++ files (default is C)u swig-opts=u!list of SWIG command line optionsuswig=upath to the SWIG executableuuseru#add user include, library and rpathu help-compilerulist available compilerscCsd|_d|_d|_d|_d|_d|_d|_d|_d|_ d|_ d|_ d|_ d|_ d|_d|_d|_d|_d|_d|_d|_dS(Ni(uNoneu extensionsu build_libu plat_nameu build_tempuinplaceupackageu include_dirsudefineuundefu librariesu library_dirsurpathu link_objectsudebuguforceucompileruswiguswig_cppu swig_optsuuser(uself((u@/opt/alt/python33/lib64/python3.3/distutils/command/build_ext.pyuinitialize_optionsrs(                   ubuild_ext.initialize_optionsc Cs=ddlm}|jdd.d/d0d1d2d3|jdkrP|jj|_n|jj|_|j }|j d d }|j dkr|jj pg|_ nt |j t r|j j tj|_ ntjtjkr|j jtjjtjd n|j j|||kr7|j j|n|jd |jdkr_g|_n|jdkrzg|_n-t |jt r|jj tj|_n|jdkrg|_n-t |jt r|jj tj|_ntjdkr|jjtjjtjdtjtjkrW|jjtjjtjdn|jr~tjj|jd|_ntjj|jd|_|j jtjjtt tdd}|r|jj|nt!dkrc|j"dkrd}n|j"dd}tjjtjd}|rPtjj||}n|jj|qt!dkr|jjtjjtjddqt!dkr|jjtjjtjddq|jjtjjtjddntjdkr'|jjtjjtjdntj#dd d!ksYtj#dd d"krtj$j%tjjtjd#r|jjtjjtjd$d%t&d&q|jjd'n|j'd(r$tj$j%tjjtjd#r|jj|j'd)q$|jjd'n|j(rX|j(j d*}d+d,|D|_(n|j)ry|j)j d*|_)n|j*dkrg|_*n|j*j d-|_*|j+r9tjjt,d }tjjt,d$} tjj-|r|j j|ntjj-| r9|jj| |jj| q9ndS(4Ni(u sysconfigubuildu build_libu build_tempucompilerudebuguforceu plat_nameu plat_specificiuincludeu librariesuntulibsuDebuguReleaseu_homei uwin32uiuPCbuildiuPCuVS8.0iuVS7.1uVC6uos2uConfigiucygwinuatheosubinulibupythonuconfigu.uPy_ENABLE_SHAREDuLIBDIRu,cSsg|]}|dfqS(u1((u.0usymbol((u@/opt/alt/python33/lib64/python3.3/distutils/command/build_ext.pyu s u.build_ext.finalize_options..u (u build_libu build_lib(u build_tempu build_temp(ucompilerucompiler(udebugudebug(uforceuforce(u plat_nameu plat_name(.u distutilsu sysconfiguset_undefined_optionsupackageuNoneu distributionu ext_packageu ext_modulesu extensionsuget_python_incu include_dirsu isinstanceustrusplituosupathsepusysu exec_prefixubase_exec_prefixuappendupathujoinuensure_string_listu librariesu library_dirsurpathunameuprefixudebugu build_tempudirnameuget_config_h_filenameugetattru MSVC_VERSIONu plat_nameuplatformu executableu startswithuget_python_versionuget_config_varudefineuundefu swig_optsuuseru USER_BASEuisdir( uselfu sysconfigu py_includeuplat_py_includeu _sys_homeusuffixunew_libudefinesu user_includeuuser_lib((u@/opt/alt/python33/lib64/python3.3/distutils/command/build_ext.pyufinalize_optionss  %     "%     %2$  $    ubuild_ext.finalize_optionsc Csddlm}|jsdS|jjrm|jd}|jj|jpSg|j j |j n|d|j d|j d|jd|j|_ t|j tjdkr|jtkr|j j|jn|jdk r|j j|jn|jdk rEx-|jD]\}}|j j||qWn|jdk r{x$|jD]}|j j|q^Wn|jdk r|j j|jn|j dk r|j j|j n|jdk r|j j |jn|j!dk r|j j"|j!n|j#dS( Ni(u new_compileru build_clibucompileruverboseudry_runuforceunt($udistutils.ccompileru new_compileru extensionsu distributionuhas_c_librariesuget_finalized_commandu librariesuextenduget_library_namesu library_dirsuappendu build_clibucompileruverboseudry_runuforceucustomize_compileruosunameu plat_nameu get_platformu initializeu include_dirsuNoneuset_include_dirsudefineu define_macrouundefuundefine_macrou set_librariesuset_library_dirsurpathuset_runtime_library_dirsu link_objectsuset_link_objectsubuild_extensions(uselfu new_compileru build_clibunameuvalueumacro((u@/opt/alt/python33/lib64/python3.3/distutils/command/build_ext.pyurun#s>    !u build_ext.runc Cs0t|tstdnx t|D]\}}t|trLq+nt|t snt|dkr}tdn|\}}tjd|t|t ot j |stdnt|t stdnt||d}x<dD]4}|j |}|dk rt|||qqW|j d|_d|kretjdn|j d}|rg|_g|_x|D]} t| tot| dkstdnt| dkr|jj| dqt| dkr|jj| qqWn||||j|jg}x!|jD]}|j|jq W|S(N(ucheck_extensions_listu extensionsuextendusources(uselfu filenamesuext((u@/opt/alt/python33/lib64/python3.3/distutils/command/build_ext.pyuget_source_filess ubuild_ext.get_source_filescCsG|j|jg}x*|jD]}|j|j|jq W|S(N(ucheck_extensions_listu extensionsuappenduget_ext_fullpathuname(uselfuoutputsuext((u@/opt/alt/python33/lib64/python3.3/distutils/command/build_ext.pyu get_outputss ubuild_ext.get_outputscCs|j|jx||jD]q}y|j|Wqtttfk r}z.|js^n|jd|j|fWYdd}~XqXqWdS(Nu"building extension "%s" failed: %s( ucheck_extensions_listu extensionsubuild_extensionuCCompilerErroruDistutilsErroru CompileErroruoptionaluwarnuname(uselfuextue((u@/opt/alt/python33/lib64/python3.3/distutils/command/build_ext.pyubuild_extensionss  ubuild_ext.build_extensionsc Cs |j}|dks+t|ttf rAtd|jnt|}|j|j}||j}|j pt ||dst j d|jdSt j d|j|j||}|jpg}|jdd}x!|jD]}|j|fqW|jj|d|jd|d|jd|j d |d |j}|dd|_|jrz|j|jn|jpg}|jp|jj|} |jj||d |j|d |jd |j d |d|j!|d|j d|jd| dS(Nujin 'ext_modules' option (extension '%s'), 'sources' must be present and must be a list of source filenamesuneweru$skipping '%s' extension (up-to-date)ubuilding '%s' extensionu output_dirumacrosu include_dirsudebuguextra_postargsudependsu librariesu library_dirsuruntime_library_dirsuexport_symbolsu build_tempu target_lang("usourcesuNoneu isinstanceulistutupleuDistutilsSetupErrorunameuget_ext_fullpathudependsuforceu newer_groupulogudebuguinfou swig_sourcesuextra_compile_argsu define_macrosu undef_macrosuappenducompilerucompileu build_tempu include_dirsu_built_objectsu extra_objectsuextenduextra_link_argsulanguageudetect_languageulink_shared_objectu get_librariesu library_dirsuruntime_library_dirsuget_export_symbols( uselfuextusourcesuext_pathudependsu extra_argsumacrosuundefuobjectsulanguage((u@/opt/alt/python33/lib64/python3.3/distutils/command/build_ext.pyubuild_extensionsN "             ubuild_ext.build_extensionc Csg}g}i}|jr+tjdn|jsRd|jksRd|jkr[d}nd}xr|D]j}tjj|\}} | dkr|j|d||j||d ||          ubuild_ext.swig_sourcescCstjdkrdStjdkrixjd D]5}tjjd|d}tjj|r)|Sq)WdSn&tjd kr|dStd tjd S( uReturn the name of the SWIG executable. On Unix, this is just "swig" -- it should be in the PATH. Tries a bit harder on Windows. uposixuswiguntu1.3u1.2u1.1u c:\swig%suswig.exeuos2u>I don't know how to find (much less run) SWIG on platform '%s'N(u1.3u1.2u1.1(uosunameupathujoinuisfileuDistutilsPlatformError(uselfuversufn((u@/opt/alt/python33/lib64/python3.3/distutils/command/build_ext.pyu find_swig]s ubuild_ext.find_swigcCs|j|}|jd}|j|d}|jsstjj|dd|g}tjj|j|Sdj|dd}|jd}tjj |j |}tjj||S( uReturns the path of the filename for a given extension. The file is located in `build_lib` or directly in the package (inplace option). u.iNiubuild_pyiii( uget_ext_fullnameusplituget_ext_filenameuinplaceuosupathujoinu build_libuget_finalized_commanduabspathuget_package_dir(uselfuext_nameufullnameumodpathufilenameupackageubuild_pyu package_dir((u@/opt/alt/python33/lib64/python3.3/distutils/command/build_ext.pyuget_ext_fullpathxs #ubuild_ext.get_ext_fullpathcCs&|jdkr|S|jd|SdS(uSReturns the fullname of a given extension name. Adds the `package.` prefixu.N(upackageuNone(uselfuext_name((u@/opt/alt/python33/lib64/python3.3/distutils/command/build_ext.pyuget_ext_fullnamesubuild_ext.get_ext_fullnamecCsddlm}|jd}tjdkr]|t|ddd|t|ds*$    PK!J//0command/__pycache__/bdist_wininst.cpython-33.pyonu[ f0:c@sdZddlZddlZddlmZddlmZddlmZm Z ddl Tddl m Z ddl mZGd d d eZdS( uzdistutils.command.bdist_wininst Implements the Distutils 'bdist_wininst' command: create a windows installer exe-program.iN(uCommand(u get_platform(u create_treeu remove_tree(u*(uget_python_version(ulogcBs|EeZdZdZd4dddefddd d fd d3d d fd5d6d7d8d9d:d;d<d=g ZddddgZd%d&Zd'd(Z d)d*Z d+d,Z d3d-d.Z d/d0Z d1d2Zd3S(>u bdist_wininstu-create an executable installer for MS Windowsu bdist-dir=u1temporary directory for creating the distributionu plat-name=upu;platform name to embed in generated filenames (default: %s)u keep-tempuku/keep the pseudo-installation tree around after u!creating the distribution archiveutarget-version=u!require a specific python versionu on the target systemuno-target-compileucu/do not compile .py to .pyc on the target systemuno-target-optimizeuou:do not compile .py to .pyo (optimized)on the target systemu dist-dir=udu-directory to put final built distributions inubitmap=ubu>bitmap to use for the installer instead of python-powered logoutitle=utu?title to display on the installer background instead of defaultu skip-buildu2skip rebuilding everything (for testing/debugging)uinstall-script=uTbasename of installation script to be run afterinstallation or before deinstallationupre-install-script=u{Fully qualified filename of a script to be run before any files are installed. This script need not be in the distributionuuser-access-control=uspecify Vista's UAC handling - 'none'/default=no handling, 'auto'=use UAC if target Python installed for all users, 'force'=always use UACcCsyd|_d|_d|_d|_d|_d|_d|_d|_d|_ d|_ d|_ d|_ d|_ dS(Ni(uNoneu bdist_diru plat_nameu keep_tempuno_target_compileuno_target_optimizeutarget_versionudist_dirubitmaputitleu skip_builduinstall_scriptupre_install_scriptuuser_access_control(uself((uD/opt/alt/python33/lib64/python3.3/distutils/command/bdist_wininst.pyuinitialize_options:s            u bdist_wininst.initialize_optionscCs\|jdd |jdkr|jrR|jrR|jjd}|j|_n|jdj}t j j |d|_n|j sd|_ n|j r|jj rt}|j r|j |krtd|fn||_ n|jdd d |jrXxI|jjD]%}|jt j j|krPqqWtd|jndS( Nubdistu skip_builduwininstuuMtarget version can only be %s, or the '--skip-build' option must be specifiedudist_diru plat_nameu(install_script '%s' not found in scripts(u skip_buildu skip_build(udist_dirudist_dir(u plat_nameu plat_name(uset_undefined_optionsu bdist_diruNoneu skip_buildu plat_nameu distributionuget_command_objuget_finalized_commandu bdist_baseuosupathujoinutarget_versionuhas_ext_modulesuget_python_versionuDistutilsOptionErroruinstall_scriptuscriptsubasename(uselfubdistu bdist_baseu short_versionuscript((uD/opt/alt/python33/lib64/python3.3/distutils/command/bdist_wininst.pyufinalize_optionsJs4      ubdist_wininst.finalize_optionsc Cstjdkr<|jjs-|jjr<tdn|jsU|jdn|jddd}|j |_ |j|_d|_ |j |_ |jd}d|_ d|_|jjr0|j}|stjdd }nd |j |f}|jd}tjj|jd ||_nxGdD]?}|j}|dkrb|d}nt|d||q7Wtjd|j |jtjjdtjj|j d|jtjd=ddlm}|} |jj } |j!| dd|j } |j"| | |j#|jjrDt$} nd} |jj%j&d| |j'| ftj(d| tj)| |j*st+|j d|j,ndS(Nuwin32u^distribution contains extensions and/or C libraries; must be compiled on a Windows 32 platformubuilduinstallureinit_subcommandsiiu install_libiu.%s-%sulibupurelibuplatlibuheadersuscriptsudatau/Include/$dist_nameuinstall_uinstalling to %suPURELIB(umktempuzipuroot_diruanyu bdist_wininsturemoving temporary file '%s'udry_run(upurelibuplatlibuheadersuscriptsudata(-usysuplatformu distributionuhas_ext_modulesuhas_c_librariesuDistutilsPlatformErroru skip_buildu run_commandureinitialize_commandu bdist_dirurootuwarn_diru plat_nameucompileuoptimizeutarget_versionuversionuget_finalized_commanduosupathujoinu build_baseu build_libuupperusetattruloguinfouensure_finalizeduinserturunutempfileumktempu get_fullnameu make_archiveu create_exeubitmapuget_python_versionu dist_filesuappenduget_installer_filenameudebuguremoveu keep_tempu remove_treeudry_run( uselfuinstallu install_libutarget_versionuplat_specifierubuildukeyuvalueumktempuarchive_basenameufullnameuarcnameu pyversion((uD/opt/alt/python33/lib64/python3.3/distutils/command/bdist_wininst.pyurunpsd               %       ubdist_wininst.runc Csg}|jj}|jd|jp+dd}dd}x~dddd d d d d gD]^}t||d}|r]|d|j||f}|jd|||fq]q]W|jd|jr|jd|jn|jd|||jd|j |jd|j |j rM|jd|j n|j rm|jd|j n|j p|jj }|jd||ddl }ddl} d|j|j | jf} |jd| dj|S(Nu [metadata]uu cSs|jddS(Nu u\n(ureplace(us((uD/opt/alt/python33/lib64/python3.3/distutils/command/bdist_wininst.pyuescapesu)bdist_wininst.get_inidata..escapeuauthoru author_emailu descriptionu maintainerumaintainer_emailunameuurluversionu %s: %su%s=%su [Setup]uinstall_script=%suinfo=%sutarget_compile=%dutarget_optimize=%dutarget_version=%suuser_access_control=%sutitle=%siuBuilt %s with distutils-%su build_info=%s(u distributionumetadatauappendulong_descriptionugetattru capitalizeuinstall_scriptuno_target_compileuno_target_optimizeutarget_versionuuser_access_controlutitleu get_fullnameutimeu distutilsuctimeu __version__ujoin( uselfulinesumetadatauinfouescapeunameudatautitleutimeu distutilsu build_info((uD/opt/alt/python33/lib64/python3.3/distutils/command/bdist_wininst.pyu get_inidatas<   $      ubdist_wininst.get_inidatac Csddl}|j|j|j}|j|}|jd||rrt|dj}t|}nd}t|d} | j |j |r| j |nt |t r|j d}n|d}|jr+t|jddd } | jj d } WdQX|| d }n |d}| j ||jd d t||} | j | | j t|djdS( Niu creating %surbuwbumbcssuruencodingulatin-1s ubitmap to use for the installer instead of python-powered logo(utitle=utu?title to display on the installer background instead of default(u skip-buildNu2skip rebuilding everything (for testing/debugging)(uinstall-script=NuTbasename of installation script to be run afterinstallation or before deinstallation(upre-install-script=Nu{Fully qualified filename of a script to be run before any files are installed. This script need not be in the distribution(uuser-access-control=Nuspecify Vista's UAC handling - 'none'/default=no handling, 'auto'=use UAC if target Python installed for all users, 'force'=always use UAC(u__name__u __module__u __qualname__u descriptionuNoneu get_platformu user_optionsuboolean_optionsuinitialize_optionsufinalize_optionsurunu get_inidatau create_exeuget_installer_filenameu get_exe_bytes(u __locals__((uD/opt/alt/python33/lib64/python3.3/distutils/command/bdist_wininst.pyu bdist_wininstsN      & Q .5 u bdist_wininst(u__doc__usysuosudistutils.coreuCommandudistutils.utilu get_platformudistutils.dir_utilu create_treeu remove_treeudistutils.errorsudistutils.sysconfiguget_python_versionu distutilsulogu bdist_wininst(((uD/opt/alt/python33/lib64/python3.3/distutils/command/bdist_wininst.pyus PK!XZOZO,command/__pycache__/bdist_rpm.cpython-33.pycnu[ fTc@sdZddlZddlZddlZddlmZddlmZddlm Z ddl m Z ddl Tddl mZdd lmZGd d d eZdS( uwdistutils.command.bdist_rpm Implements the Distutils 'bdist_rpm' command (create RPM source and binary distributions).iN(uCommand(uDEBUG(u get_platform(u write_file(u*(uget_python_version(ulogc+Bs|EeZdZdZdfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|d}d~ddddddddddddddddg)Zd3d8d<d1dTgZid3d66d8d:6d<d>6ZdWdXZdYdZZ d[d\Z d]d^Z d_d`Z dadbZ dcddZdeS(u bdist_rpmucreate an RPM distributionu bdist-base=u/base directory for creating built distributionsu rpm-base=udbase directory for creating RPMs (defaults to "rpm" under --bdist-base; must be specified for RPM 2)u dist-dir=uduDdirectory to put final RPM files in (and .spec files if --spec-only)upython=uMpath to Python interpreter to hard-code in the .spec file (default: "python")u fix-pythonuLhard-code the exact path to the current Python interpreter in the .spec fileu spec-onlyuonly regenerate spec fileu source-onlyuonly generate source RPMu binary-onlyuonly generate binary RPMu use-bzip2u7use bzip2 instead of gzip to create source distributionudistribution-name=ugname of the (Linux) distribution to which this RPM applies (*not* the name of the module distribution!)ugroup=u9package classification [default: "Development/Libraries"]urelease=uRPM release numberuserial=uRPM serial numberuvendor=uaRPM "vendor" (eg. "Joe Blow ") [default: maintainer or author from setup script]u packager=uARPM packager (eg. "Jane Doe ")[default: vendor]u doc-files=u6list of documentation files (space or comma-separated)u changelog=u RPM changeloguicon=uname of icon fileu provides=u%capabilities provided by this packageu requires=u%capabilities required by this packageu conflicts=u-capabilities which conflict with this packageubuild-requires=u+capabilities required to build this packageu obsoletes=u*capabilities made obsolete by this packageu no-autorequ+do not automatically calculate dependenciesu keep-tempuku"don't clean up RPM build directoryu no-keep-tempu&clean up RPM build directory [default]uuse-rpm-opt-flagsu8compile with RPM_OPT_FLAGS when building from source RPMuno-rpm-opt-flagsu&do not pass any RPM CFLAGS to compileru rpm3-modeu"RPM 3 compatibility mode (default)u rpm2-modeuRPM 2 compatibility modeu prep-script=u3Specify a script for the PREP phase of RPM buildingu build-script=u4Specify a script for the BUILD phase of RPM buildingu pre-install=u:Specify a script for the pre-INSTALL phase of RPM buildinguinstall-script=u6Specify a script for the INSTALL phase of RPM buildingu post-install=u;Specify a script for the post-INSTALL phase of RPM buildingupre-uninstall=u<Specify a script for the pre-UNINSTALL phase of RPM buildingupost-uninstall=u=Specify a script for the post-UNINSTALL phase of RPM buildingu clean-script=u4Specify a script for the CLEAN phase of RPM buildinguverify-script=u6Specify a script for the VERIFY phase of the RPM buildu force-arch=u0Force an architecture onto the RPM build processuquietuqu3Run the INSTALL phase of RPM building in quiet modecCscd|_d|_d|_d|_d|_d|_d|_d|_d|_ d|_ d|_ d|_ d|_ d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_ d|_!d|_"d|_#d|_$d|_%d|_&d|_'dS(Nii((uNoneu bdist_baseurpm_baseudist_dirupythonu fix_pythonu spec_onlyu binary_onlyu source_onlyu use_bzip2udistribution_nameugroupureleaseuserialuvendorupackageru doc_filesu changeloguiconu prep_scriptu build_scriptuinstall_scriptu clean_scriptu verify_scriptu pre_installu post_installu pre_uninstallupost_uninstalluprepuprovidesurequiresu conflictsubuild_requiresu obsoletesu keep_tempuuse_rpm_opt_flagsu rpm3_modeu no_autorequ force_archuquiet(uself((u@/opt/alt/python33/lib64/python3.3/distutils/command/bdist_rpm.pyuinitialize_optionssN                                      ubdist_rpm.initialize_optionscCs|jdd |jdkrU|js7tdntjj|jd|_n|j dkr|j r|t j |_ qd|_ n|j rtdntj dkrtdtj n|jr|jrtd n|jjsd |_n|jdd |jdS(Nubdistu bdist_baseu)you must specify --rpm-base in RPM 2 modeurpmupython3u8--python and --fix-python are mutually exclusive optionsuposixu9don't know how to create RPM distributions on platform %su6cannot supply both '--source-only' and '--binary-only'iudist_dir(u bdist_baseu bdist_base(udist_dirudist_dir(uset_undefined_optionsurpm_baseuNoneu rpm3_modeuDistutilsOptionErroruosupathujoinu bdist_baseupythonu fix_pythonusysu executableunameuDistutilsPlatformErroru binary_onlyu source_onlyu distributionuhas_ext_modulesuuse_rpm_opt_flagsufinalize_package_data(uself((u@/opt/alt/python33/lib64/python3.3/distutils/command/bdist_rpm.pyufinalize_optionss.        ubdist_rpm.finalize_optionscCs|jdd|jdd|jj|jjf|jd|jdt|jtrxEdD]:}tj j |ro||jkro|jj |qoqoWn|jd d |jd |jd |jd |j |j |_ |jd|jd|jd|jd|jd|jd|jd|jd|jd|jd|jd|jd|jd|jd|jd|jddS(NugroupuDevelopment/Librariesuvendoru%s <%s>upackageru doc_filesuREADMEu README.txtureleaseu1userialudistribution_nameu changeloguiconu prep_scriptu build_scriptuinstall_scriptu clean_scriptu verify_scriptu pre_installu post_installu pre_uninstallupost_uninstalluprovidesurequiresu conflictsubuild_requiresu obsoletesu force_arch(uREADMEu README.txt(u ensure_stringu distributionu get_contactuget_contact_emailuensure_string_listu isinstanceu doc_filesulistuosupathuexistsuappendu_format_changelogu changeloguensure_filename(uselfureadme((u@/opt/alt/python33/lib64/python3.3/distutils/command/bdist_rpm.pyufinalize_package_datas>    !                  ubdist_rpm.finalize_package_datacCsTtrStdtd|jtd|jtd|jtd|jn|jru|j}|j|nNi}x;d)D]3}t j j |j |||<|j||qW|d}t j j |d |j j}|jt||jfd ||jrdS|j jdd}|jd }|jrRdg|_n dg|_|jd ||j _|jd}|d}|j|||jrt j j|jr|j|j|qtd|jntjddg} t j jds%t j jdr1dg} n|jrJ| jdn&|j rc| jdn | jd| j!dd|j"g|j#r| j!ddt j j$|j gn|j%s| jdn|j&r| jdn| j|d} | d } d!| d"} d#| | |f} t j'| }zg}d}xm|j)}|scPn|j*j+}t,|d$kst-|j|d%|dkrM|d}qMqM|j.}|rt/d&t0| nWd|j.X|j1| |j2sP|j j3r%t4}nd'}|j st j j |d |}t j j|set-|j5||jt j j |j|}|j jjd(||fn|jsPx|D]}t j j |d |}t j j|r|j5||jt j j |jt j j6|}|j jjd(||fqqWqPndS(*Nubefore _get_package_data():uvendor =u packager =u doc_files =u changelog =uSOURCESuSPECSuBUILDuRPMSuSRPMSu%s.specu writing '%s'usdistubztarugztariuicon file '%s' does not existu building RPMsurpmu/usr/bin/rpmbuildu /bin/rpmbuildurpmbuildu-bsu-bbu-bau--defineu __python %su _topdir %su--cleanu--quietu%{name}-%{version}-%{release}u.src.rpmu%{arch}/u .%{arch}.rpmu%rpm -q --qf '%s %s\n' --specfile '%s'iiuFailed to execute: %suanyu bdist_rpm(uSOURCESuSPECSuBUILDuRPMSuSRPMS(7uDEBUGuprintuvendorupackageru doc_filesu changelogu spec_onlyudist_dirumkpathuosupathujoinurpm_baseu distributionuget_nameuexecuteu write_fileu_make_spec_fileu dist_filesureinitialize_commandu use_bzip2uformatsu run_commanduget_archive_filesu copy_fileuiconuexistsuDistutilsFileErroruloguinfou source_onlyuappendu binary_onlyuextendupythonu rpm3_modeuabspathu keep_tempuquietupopenuNoneureadlineustripusplitulenuAssertionErrorucloseuDistutilsExecErrorurepruspawnudry_runuhas_ext_modulesuget_python_versionu move_fileubasename(uselfuspec_dirurpm_dirudu spec_pathusaved_dist_filesusdistusourceu source_dirurpm_cmdu nvr_stringusrc_rpmu non_src_rpmuq_cmduoutu binary_rpmsu source_rpmulineulustatusu pyversionusrpmufilenameurpm((u@/opt/alt/python33/lib64/python3.3/distutils/command/bdist_rpm.pyuruns                                         u bdist_rpm.runcCs"tjj|jtjj|S(N(uosupathujoinudist_dirubasename(uselfupath((u@/opt/alt/python33/lib64/python3.3/distutils/command/bdist_rpm.pyu _dist_pathsubdist_rpm._dist_pathc Csod|jjd|jjjddd|jjd|jjdddd|jjg}tjd }d jd d |j D}d }d}|j||}||kr|j d|j d|d n|j dddg|j r|j dn |j d|j d|jj d|jddg|js|jjs|j dqn|j d|jx{dJD]s}t||j}t|tr|j d"|d#j|fq|dKk r|j d"||fqqW|jjd$krC|j d%|jjn|jrc|j d&|jn|jr|j d'd#j|jn|jr|j d(tjj|jn|jr|j d)n|j dd*|jjgd+|jtjjt j!d,f}d-|} |j"r6d.| } nd/|} dLd3d4| fd5d6| fdMdNdOdPdQdRg } x| D]\} } }t|| }|s|rz|j ddD| g|r|j t#|dEj$j%d q|j |qzqzW|j ddFdGg|j&r<|j dHd#j|j&n|j'rk|j ddIg|j |j'n|S(SuiGenerate the text of an RPM spec file and return it as a list of strings (one per line). u %define name u%define version u-u_u%define unmangled_version u%define release uu Summary: urpm --eval %{__os_install_post}u cSs g|]}d|jqS(u %s \(ustrip(u.0uline((u@/opt/alt/python33/lib64/python3.3/distutils/command/bdist_rpm.pyu s u-bdist_rpm._make_spec_file..ubrp-python-bytecompile \ u%brp-python-bytecompile %{__python} \ u2# Workaround for http://bugs.python.org/issue14443u%define __os_install_post u Name: %{name}uVersion: %{version}uRelease: %{release}u-Source0: %{name}-%{unmangled_version}.tar.bz2u,Source0: %{name}-%{unmangled_version}.tar.gzu License: uGroup: u>BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildrootuPrefix: %{_prefix}uBuildArch: noarchu BuildArch: %suVendoruPackageruProvidesuRequiresu Conflictsu Obsoletesu%s: %su uUNKNOWNuUrl: uDistribution: uBuildRequires: uIcon: u AutoReq: 0u %descriptionu%s %siu%s builduenv CFLAGS="$RPM_OPT_FLAGS" u>%s install -O1 --root=$RPM_BUILD_ROOT --record=INSTALLED_FILESuprepu prep_scriptu&%setup -n %{name}-%{unmangled_version}ubuildu build_scriptuinstalluinstall_scriptucleanu clean_scripturm -rf $RPM_BUILD_ROOTu verifyscriptu verify_scriptupreu pre_installupostu post_installupreunu pre_uninstallupostunupost_uninstallu%uru%files -f INSTALLED_FILESu%defattr(-,root,root)u%doc u %changelog(uVendoruPackageruProvidesuRequiresu Conflictsu ObsoletesN(uprepu prep_scriptu&%setup -n %{name}-%{unmangled_version}(ucleanu clean_scripturm -rf $RPM_BUILD_ROOT(u verifyscriptu verify_scriptN(upreu pre_installN(upostu post_installN(upreunu pre_uninstallN(upostunupost_uninstallN((u distributionuget_nameu get_versionureplaceureleaseuget_descriptionu subprocessu getoutputujoinu splitlinesuappenduextendu use_bzip2u get_licenseugroupu force_archuhas_ext_modulesugetattruloweru isinstanceulistuNoneuget_urludistribution_nameubuild_requiresuiconuosupathubasenameu no_autorequget_long_descriptionupythonusysuargvuuse_rpm_opt_flagsuopenureadusplitu doc_filesu changelog(uselfu spec_fileu vendor_hookuproblemufixedu fixed_hookufielduvaludef_setup_callu def_buildu install_cmduscript_optionsurpm_optuattrudefault((u@/opt/alt/python33/lib64/python3.3/distutils/command/bdist_rpm.pyu_make_spec_files          #     # &       (     ubdist_rpm._make_spec_filecCs|s |Sg}x|jjdD]i}|j}|ddkr^|jd|gq&|ddkr~|j|q&|jd|q&W|ds|d=n|S(uKFormat the changelog correctly and convert it to a list of strings u iu*uu-u (ustripusplituextenduappend(uselfu changelogu new_changeloguline((u@/opt/alt/python33/lib64/python3.3/distutils/command/bdist_rpm.pyu_format_changelog3s   ubdist_rpm._format_changelogN(u bdist-base=Nu/base directory for creating built distributions(u rpm-base=Nudbase directory for creating RPMs (defaults to "rpm" under --bdist-base; must be specified for RPM 2)(u dist-dir=uduDdirectory to put final RPM files in (and .spec files if --spec-only)(upython=NuMpath to Python interpreter to hard-code in the .spec file (default: "python")(u fix-pythonNuLhard-code the exact path to the current Python interpreter in the .spec file(u spec-onlyNuonly regenerate spec file(u source-onlyNuonly generate source RPM(u binary-onlyNuonly generate binary RPM(u use-bzip2Nu7use bzip2 instead of gzip to create source distribution(udistribution-name=Nugname of the (Linux) distribution to which this RPM applies (*not* the name of the module distribution!)(ugroup=Nu9package classification [default: "Development/Libraries"](urelease=NuRPM release number(userial=NuRPM serial number(uvendor=NuaRPM "vendor" (eg. "Joe Blow ") [default: maintainer or author from setup script](u packager=NuARPM packager (eg. "Jane Doe ")[default: vendor](u doc-files=Nu6list of documentation files (space or comma-separated)(u changelog=Nu RPM changelog(uicon=Nuname of icon file(u provides=Nu%capabilities provided by this package(u requires=Nu%capabilities required by this package(u conflicts=Nu-capabilities which conflict with this package(ubuild-requires=Nu+capabilities required to build this package(u obsoletes=Nu*capabilities made obsolete by this package(u no-autoreqNu+do not automatically calculate dependencies(u keep-tempuku"don't clean up RPM build directory(u no-keep-tempNu&clean up RPM build directory [default](uuse-rpm-opt-flagsNu8compile with RPM_OPT_FLAGS when building from source RPM(uno-rpm-opt-flagsNu&do not pass any RPM CFLAGS to compiler(u rpm3-modeNu"RPM 3 compatibility mode (default)(u rpm2-modeNuRPM 2 compatibility mode(u prep-script=Nu3Specify a script for the PREP phase of RPM building(u build-script=Nu4Specify a script for the BUILD phase of RPM building(u pre-install=Nu:Specify a script for the pre-INSTALL phase of RPM building(uinstall-script=Nu6Specify a script for the INSTALL phase of RPM building(u post-install=Nu;Specify a script for the post-INSTALL phase of RPM building(upre-uninstall=Nu<Specify a script for the pre-UNINSTALL phase of RPM building(upost-uninstall=Nu=Specify a script for the post-UNINSTALL phase of RPM building(u clean-script=Nu4Specify a script for the CLEAN phase of RPM building(uverify-script=Nu6Specify a script for the VERIFY phase of the RPM build(u force-arch=Nu0Force an architecture onto the RPM build process(uquietuqu3Run the INSTALL phase of RPM building in quiet mode(u__name__u __module__u __qualname__u descriptionuNoneu user_optionsuboolean_optionsu negative_optuinitialize_optionsufinalize_optionsufinalize_package_dataurunu _dist_pathu_make_spec_fileu_format_changelog(u __locals__((u@/opt/alt/python33/lib64/python3.3/distutils/command/bdist_rpm.pyu bdist_rpms      -  -  u bdist_rpm(u__doc__u subprocessusysuosudistutils.coreuCommandudistutils.debuguDEBUGudistutils.utilu get_platformudistutils.file_utilu write_fileudistutils.errorsudistutils.sysconfiguget_python_versionu distutilsulogu bdist_rpm(((u@/opt/alt/python33/lib64/python3.3/distutils/command/bdist_rpm.pyus$ PK!e13command/__pycache__/install_egg_info.cpython-33.pycnu[ f" c@sdZddlmZddlmZmZddlZddlZddlZGdddeZ ddZ d d Z d d Z dS( udistutils.command.install_egg_info Implements the Distutils 'install_egg_info' command, for installing a package's PKG-INFO metadata.i(uCommand(ulogudir_utilNcBsY|EeZdZdZdZdgZddZdd Zd d Zd d Z dS(uinstall_egg_infou)Install an .egg-info file for the packageu8Install package's PKG-INFO metadata as an .egg-info fileu install-dir=ududirectory to install tocCs d|_dS(N(uNoneu install_dir(uself((uG/opt/alt/python33/lib64/python3.3/distutils/command/install_egg_info.pyuinitialize_optionssu#install_egg_info.initialize_optionscCs|jdddtt|jjtt|jjtjddf}t j j |j ||_ |j g|_dS(Nu install_libu install_diru%s-%s-py%s.egg-infoi(u install_diru install_dir(uset_undefined_optionsu to_filenameu safe_nameu distributionuget_nameu safe_versionu get_versionusysuversionuosupathujoinu install_dirutargetuoutputs(uselfubasename((uG/opt/alt/python33/lib64/python3.3/distutils/command/install_egg_info.pyufinalize_optionssu!install_egg_info.finalize_optionsc Cs|j}tjj|rGtjj| rGtj|d|jnptjj|r||j tj |jfd|n;tjj|j s|j tj |j fd|j nt jd||jst|ddd}|jjj|WdQXndS(Nudry_runu Removing u Creating u Writing %suwuencodinguUTF-8(utargetuosupathuisdiruislinkudir_utilu remove_treeudry_runuexistsuexecuteuunlinku install_dirumakedirsuloguinfouopenu distributionumetadatauwrite_pkg_file(uselfutargetuf((uG/opt/alt/python33/lib64/python3.3/distutils/command/install_egg_info.pyurun s %# uinstall_egg_info.runcCs|jS(N(uoutputs(uself((uG/opt/alt/python33/lib64/python3.3/distutils/command/install_egg_info.pyu get_outputs.suinstall_egg_info.get_outputsN(u install-dir=ududirectory to install to( u__name__u __module__u __qualname__u__doc__u descriptionu user_optionsuinitialize_optionsufinalize_optionsurunu get_outputs(u __locals__((uG/opt/alt/python33/lib64/python3.3/distutils/command/install_egg_info.pyuinstall_egg_info s   uinstall_egg_infocCstjdd|S(uConvert an arbitrary string to a standard distribution name Any runs of non-alphanumeric/. characters are replaced with a single '-'. u[^A-Za-z0-9.]+u-(ureusub(uname((uG/opt/alt/python33/lib64/python3.3/distutils/command/install_egg_info.pyu safe_name6su safe_namecCs%|jdd}tjdd|S(uConvert an arbitrary string to a standard version string Spaces become dots, and all other non-alphanumeric characters become dashes, with runs of multiple dashes condensed to a single dash. u u.u[^A-Za-z0-9.]+u-(ureplaceureusub(uversion((uG/opt/alt/python33/lib64/python3.3/distutils/command/install_egg_info.pyu safe_version>su safe_versioncCs|jddS(u|Convert a project or version name to its filename-escaped form Any '-' characters are currently replaced with '_'. u-u_(ureplace(uname((uG/opt/alt/python33/lib64/python3.3/distutils/command/install_egg_info.pyu to_filenameHsu to_filename( u__doc__u distutils.cmduCommandu distutilsulogudir_utiluosusysureuinstall_egg_infou safe_nameu safe_versionu to_filename(((uG/opt/alt/python33/lib64/python3.3/distutils/command/install_egg_info.pyus$+  PK!&?  2command/__pycache__/install_headers.cpython-33.pyonu[ fc@s0dZddlmZGdddeZdS(udistutils.command.install_headers Implements the Distutils 'install_headers' command, to install C/C++ header files to the Python include directory.i(uCommandcBsk|EeZdZdZddgZdgZdd Zd d Zd d ZddZ ddZ dS(uinstall_headersuinstall C/C++ header filesu install-dir=udu$directory to install header files touforceufu-force installation (overwrite existing files)cCsd|_d|_g|_dS(Ni(uNoneu install_diruforceuoutfiles(uself((uF/opt/alt/python33/lib64/python3.3/distutils/command/install_headers.pyuinitialize_optionss  u"install_headers.initialize_optionscCs|jddddS(Nuinstalluinstall_headersu install_diruforce(uinstall_headersu install_dir(uforceuforce(uset_undefined_options(uself((uF/opt/alt/python33/lib64/python3.3/distutils/command/install_headers.pyufinalize_optionss u install_headers.finalize_optionscCsf|jj}|sdS|j|jx9|D]1}|j||j\}}|jj|q-WdS(N(u distributionuheadersumkpathu install_diru copy_fileuoutfilesuappend(uselfuheadersuheaderuoutu_((uF/opt/alt/python33/lib64/python3.3/distutils/command/install_headers.pyurun!s  uinstall_headers.runcCs|jjpgS(N(u distributionuheaders(uself((uF/opt/alt/python33/lib64/python3.3/distutils/command/install_headers.pyu get_inputs+suinstall_headers.get_inputscCs|jS(N(uoutfiles(uself((uF/opt/alt/python33/lib64/python3.3/distutils/command/install_headers.pyu get_outputs.suinstall_headers.get_outputsN(u install-dir=udu$directory to install header files to(uforceufu-force installation (overwrite existing files)( u__name__u __module__u __qualname__u descriptionu user_optionsuboolean_optionsuinitialize_optionsufinalize_optionsurunu get_inputsu get_outputs(u __locals__((uF/opt/alt/python33/lib64/python3.3/distutils/command/install_headers.pyuinstall_headers s     uinstall_headersN(u__doc__udistutils.coreuCommanduinstall_headers(((uF/opt/alt/python33/lib64/python3.3/distutils/command/install_headers.pyusPK!ĶZZ,command/__pycache__/build_ext.cpython-33.pycnu[ fc@sDdZddlZddlZddlZddlmZddlTddlmZm Z ddlm Z ddl m Z ddl mZdd lmZdd lmZejd krdZdZndd lmZdZejd krddlmZeeZnejdZ ddZ!GdddeZ"dS(udistutils.command.build_ext Implements the Distutils 'build_ext' command, for building extension modules (currently limited to C extensions, should accommodate C++ extensions ASAP).iN(uCommand(u*(ucustomize_compileruget_python_version(uget_config_h_filename(u newer_group(u Extension(u get_platform(ulogu2.6(u USER_BASEunt(uget_build_versionu3^[a-zA-Z_][a-zA-Z_0-9]*(\.[a-zA-Z_][a-zA-Z_0-9]*)*$cCsddlm}|dS(Ni(ushow_compilers(udistutils.ccompilerushow_compilers(ushow_compilers((u@/opt/alt/python33/lib64/python3.3/distutils/command/build_ext.pyushow_compilers#sushow_compilerscBs|EeZdZdZdejZdWdXd d d efd d ddfdddefdYdZd[dddefd\d]d^d_d`dadbdcgZ d d%d(d.gZ e re j dde j d4nd6dVd7e fgZd8d9Zd:d;Zd<d=Zd>d?Zd@dAZdBdCZdDdEZdFdGZdHdIZdJdKZdLdMZdNdOZdPdQZdRdSZdTdUZdVS(eu build_extu8build C/C++ extensions (compile/link to build directory)u (separated by '%s')u build-lib=ubu(directory for compiled extension modulesu build-temp=utu1directory for temporary files (build by-products)u plat-name=upu>platform name to cross-compile for, if supported (default: %s)uinplaceuiu=ignore build-lib and put compiled extensions into the source u,directory alongside your pure Python modulesu include-dirs=uIu.list of directories to search for header filesudefine=uDuC preprocessor macros to defineuundef=uUu!C preprocessor macros to undefineu libraries=ulu!external C libraries to link withu library-dirs=uLu.directories to search for external C librariesurpath=uRu7directories to search for shared C libraries at runtimeu link-objects=uOu2extra explicit link objects to include in the linkudebugugu'compile/link with debugging informationuforceufu2forcibly build everything (ignore file timestamps)u compiler=ucuspecify the compiler typeuswig-cppu)make SWIG create C++ files (default is C)u swig-opts=u!list of SWIG command line optionsuswig=upath to the SWIG executableuuseru#add user include, library and rpathu help-compilerulist available compilerscCsd|_d|_d|_d|_d|_d|_d|_d|_d|_ d|_ d|_ d|_ d|_ d|_d|_d|_d|_d|_d|_d|_dS(Ni(uNoneu extensionsu build_libu plat_nameu build_tempuinplaceupackageu include_dirsudefineuundefu librariesu library_dirsurpathu link_objectsudebuguforceucompileruswiguswig_cppu swig_optsuuser(uself((u@/opt/alt/python33/lib64/python3.3/distutils/command/build_ext.pyuinitialize_optionsrs(                   ubuild_ext.initialize_optionsc Cs=ddlm}|jdd.d/d0d1d2d3|jdkrP|jj|_n|jj|_|j }|j d d }|j dkr|jj pg|_ nt |j t r|j j tj|_ ntjtjkr|j jtjjtjd n|j j|||kr7|j j|n|jd |jdkr_g|_n|jdkrzg|_n-t |jt r|jj tj|_n|jdkrg|_n-t |jt r|jj tj|_ntjdkr|jjtjjtjdtjtjkrW|jjtjjtjdn|jr~tjj|jd|_ntjj|jd|_|j jtjjtt tdd}|r|jj|nt!dkrc|j"dkrd}n|j"dd}tjjtjd}|rPtjj||}n|jj|qt!dkr|jjtjjtjddqt!dkr|jjtjjtjddq|jjtjjtjddntjdkr'|jjtjjtjdntj#dd d!ksYtj#dd d"krtj$j%tjjtjd#r|jjtjjtjd$d%t&d&q|jjd'n|j'd(r$tj$j%tjjtjd#r|jj|j'd)q$|jjd'n|j(rX|j(j d*}d+d,|D|_(n|j)ry|j)j d*|_)n|j*dkrg|_*n|j*j d-|_*|j+r9tjjt,d }tjjt,d$} tjj-|r|j j|ntjj-| r9|jj| |jj| q9ndS(4Ni(u sysconfigubuildu build_libu build_tempucompilerudebuguforceu plat_nameu plat_specificiuincludeu librariesuntulibsuDebuguReleaseu_homei uwin32uiuPCbuildiuPCuVS8.0iuVS7.1uVC6uos2uConfigiucygwinuatheosubinulibupythonuconfigu.uPy_ENABLE_SHAREDuLIBDIRu,cSsg|]}|dfqS(u1((u.0usymbol((u@/opt/alt/python33/lib64/python3.3/distutils/command/build_ext.pyu s u.build_ext.finalize_options..u (u build_libu build_lib(u build_tempu build_temp(ucompilerucompiler(udebugudebug(uforceuforce(u plat_nameu plat_name(.u distutilsu sysconfiguset_undefined_optionsupackageuNoneu distributionu ext_packageu ext_modulesu extensionsuget_python_incu include_dirsu isinstanceustrusplituosupathsepusysu exec_prefixubase_exec_prefixuappendupathujoinuensure_string_listu librariesu library_dirsurpathunameuprefixudebugu build_tempudirnameuget_config_h_filenameugetattru MSVC_VERSIONu plat_nameuplatformu executableu startswithuget_python_versionuget_config_varudefineuundefu swig_optsuuseru USER_BASEuisdir( uselfu sysconfigu py_includeuplat_py_includeu _sys_homeusuffixunew_libudefinesu user_includeuuser_lib((u@/opt/alt/python33/lib64/python3.3/distutils/command/build_ext.pyufinalize_optionss  %     "%     %2$  $    ubuild_ext.finalize_optionsc Csddlm}|jsdS|jjrm|jd}|jj|jpSg|j j |j n|d|j d|j d|jd|j|_ t|j tjdkr|jtkr|j j|jn|jdk r|j j|jn|jdk rEx-|jD]\}}|j j||qWn|jdk r{x$|jD]}|j j|q^Wn|jdk r|j j|jn|j dk r|j j|j n|jdk r|j j |jn|j!dk r|j j"|j!n|j#dS( Ni(u new_compileru build_clibucompileruverboseudry_runuforceunt($udistutils.ccompileru new_compileru extensionsu distributionuhas_c_librariesuget_finalized_commandu librariesuextenduget_library_namesu library_dirsuappendu build_clibucompileruverboseudry_runuforceucustomize_compileruosunameu plat_nameu get_platformu initializeu include_dirsuNoneuset_include_dirsudefineu define_macrouundefuundefine_macrou set_librariesuset_library_dirsurpathuset_runtime_library_dirsu link_objectsuset_link_objectsubuild_extensions(uselfu new_compileru build_clibunameuvalueumacro((u@/opt/alt/python33/lib64/python3.3/distutils/command/build_ext.pyurun#s>    !u build_ext.runc Cs0t|tstdnx t|D]\}}t|trLq+nt|t snt|dkr}tdn|\}}tjd|t|t ot j |stdnt|t stdnt||d}x<dD]4}|j |}|dk rt|||qqW|j d|_d|kretjdn|j d}|rg|_g|_x|D]} t| tot| dkstdnt| dkr|jj| dqt| dkr|jj| qqWn||||j|jg}x!|jD]}|j|jq W|S(N(ucheck_extensions_listu extensionsuextendusources(uselfu filenamesuext((u@/opt/alt/python33/lib64/python3.3/distutils/command/build_ext.pyuget_source_filess ubuild_ext.get_source_filescCsG|j|jg}x*|jD]}|j|j|jq W|S(N(ucheck_extensions_listu extensionsuappenduget_ext_fullpathuname(uselfuoutputsuext((u@/opt/alt/python33/lib64/python3.3/distutils/command/build_ext.pyu get_outputss ubuild_ext.get_outputscCs|j|jx||jD]q}y|j|Wqtttfk r}z.|js^n|jd|j|fWYdd}~XqXqWdS(Nu"building extension "%s" failed: %s( ucheck_extensions_listu extensionsubuild_extensionuCCompilerErroruDistutilsErroru CompileErroruoptionaluwarnuname(uselfuextue((u@/opt/alt/python33/lib64/python3.3/distutils/command/build_ext.pyubuild_extensionss  ubuild_ext.build_extensionsc Cs |j}|dks+t|ttf rAtd|jnt|}|j|j}||j}|j pt ||dst j d|jdSt j d|j|j||}|jpg}|jdd}x!|jD]}|j|fqW|jj|d|jd|d|jd|j d |d |j}|dd|_|jrz|j|jn|jpg}|jp|jj|} |jj||d |j|d |jd |j d |d|j!|d|j d|jd| dS(Nujin 'ext_modules' option (extension '%s'), 'sources' must be present and must be a list of source filenamesuneweru$skipping '%s' extension (up-to-date)ubuilding '%s' extensionu output_dirumacrosu include_dirsudebuguextra_postargsudependsu librariesu library_dirsuruntime_library_dirsuexport_symbolsu build_tempu target_lang("usourcesuNoneu isinstanceulistutupleuDistutilsSetupErrorunameuget_ext_fullpathudependsuforceu newer_groupulogudebuguinfou swig_sourcesuextra_compile_argsu define_macrosu undef_macrosuappenducompilerucompileu build_tempu include_dirsu_built_objectsu extra_objectsuextenduextra_link_argsulanguageudetect_languageulink_shared_objectu get_librariesu library_dirsuruntime_library_dirsuget_export_symbols( uselfuextusourcesuext_pathudependsu extra_argsumacrosuundefuobjectsulanguage((u@/opt/alt/python33/lib64/python3.3/distutils/command/build_ext.pyubuild_extensionsN "             ubuild_ext.build_extensionc Csg}g}i}|jr+tjdn|jsRd|jksRd|jkr[d}nd}xr|D]j}tjj|\}} | dkr|j|d||j||d ||          ubuild_ext.swig_sourcescCstjdkrdStjdkrixjd D]5}tjjd|d}tjj|r)|Sq)WdSn&tjd kr|dStd tjd S( uReturn the name of the SWIG executable. On Unix, this is just "swig" -- it should be in the PATH. Tries a bit harder on Windows. uposixuswiguntu1.3u1.2u1.1u c:\swig%suswig.exeuos2u>I don't know how to find (much less run) SWIG on platform '%s'N(u1.3u1.2u1.1(uosunameupathujoinuisfileuDistutilsPlatformError(uselfuversufn((u@/opt/alt/python33/lib64/python3.3/distutils/command/build_ext.pyu find_swig]s ubuild_ext.find_swigcCs|j|}|jd}|j|d}|jsstjj|dd|g}tjj|j|Sdj|dd}|jd}tjj |j |}tjj||S( uReturns the path of the filename for a given extension. The file is located in `build_lib` or directly in the package (inplace option). u.iNiubuild_pyiii( uget_ext_fullnameusplituget_ext_filenameuinplaceuosupathujoinu build_libuget_finalized_commanduabspathuget_package_dir(uselfuext_nameufullnameumodpathufilenameupackageubuild_pyu package_dir((u@/opt/alt/python33/lib64/python3.3/distutils/command/build_ext.pyuget_ext_fullpathxs #ubuild_ext.get_ext_fullpathcCs&|jdkr|S|jd|SdS(uSReturns the fullname of a given extension name. Adds the `package.` prefixu.N(upackageuNone(uselfuext_name((u@/opt/alt/python33/lib64/python3.3/distutils/command/build_ext.pyuget_ext_fullnamesubuild_ext.get_ext_fullnamecCsddlm}|jd}tjdkr]|t|ddd|t|ds*$    PK!M? ? .command/__pycache__/install_lib.cpython-33.pyonu[ f c@sjdZddlZddlZddlZddlmZddlmZdZGdddeZ dS(ukdistutils.command.install_lib Implements the Distutils 'install_lib' command (install all Python modules).iN(uCommand(uDistutilsOptionErroru.pyc Bs|EeZdZdZd*d+d,d-d.d/d0gZdd dgZid d6ZddZddZ ddZ ddZ ddZ dd Z d!d"Zd#d$Zd%d&Zd'd(Zd)S(1u install_libu7install all Python modules (extensions and pure Python)u install-dir=ududirectory to install tou build-dir=ubu'build directory (where to install from)uforceufu-force installation (overwrite existing files)ucompileucucompile .py to .pyc [default]u no-compileudon't compile .py filesu optimize=uOulalso compile with optimization: -O1 for "python -O", -O2 for "python -OO", and -O0 to disable [default: -O0]u skip-builduskip the build stepscCs:d|_d|_d|_d|_d|_d|_dS(Ni(uNoneu install_diru build_diruforceucompileuoptimizeu skip_build(uself((uB/opt/alt/python33/lib64/python3.3/distutils/command/install_lib.pyuinitialize_options3s      uinstall_lib.initialize_optionsc Cs|jddddddd|jdkr:d|_n|jdkrUd|_nt|jtsy.t|j|_|jdkrtnWqt tfk rt d YqXndS(Nuinstallu build_libu build_diru install_libu install_diruforceucompileuoptimizeu skip_buildiiiuoptimize must be 0, 1, or 2(u build_libu build_dir(u install_libu install_dir(uforceuforce(ucompileucompile(uoptimizeuoptimize(u skip_buildu skip_buildTF(iii( uset_undefined_optionsucompileuNoneuTrueuoptimizeuFalseu isinstanceuintuAssertionErroru ValueErroruDistutilsOptionError(uself((uB/opt/alt/python33/lib64/python3.3/distutils/command/install_lib.pyufinalize_options<s$    uinstall_lib.finalize_optionscCsE|j|j}|dk rA|jjrA|j|ndS(N(ubuilduinstalluNoneu distributionuhas_pure_modulesu byte_compile(uselfuoutfiles((uB/opt/alt/python33/lib64/python3.3/distutils/command/install_lib.pyurunVs  uinstall_lib.runcCsN|jsJ|jjr(|jdn|jjrJ|jdqJndS(Nubuild_pyu build_ext(u skip_buildu distributionuhas_pure_modulesu run_commanduhas_ext_modules(uself((uB/opt/alt/python33/lib64/python3.3/distutils/command/install_lib.pyubuildfs  uinstall_lib.buildcCsLtjj|jr0|j|j|j}n|jd|jdS|S(Nu3'%s' does not exist -- no Python modules to install(uosupathuisdiru build_diru copy_treeu install_diruwarn(uselfuoutfiles((uB/opt/alt/python33/lib64/python3.3/distutils/command/install_lib.pyuinstallms   uinstall_lib.installc Cstjr|jddSddlm}|jdj}|jrp||ddd|jd|d|j n|j dkr||d|j d|jd|d |j d|j ndS( Nu%byte-compiling is disabled, skipping.i(u byte_compileuinstalluoptimizeuforceuprefixudry_runuverbose( usysudont_write_bytecodeuwarnudistutils.utilu byte_compileuget_finalized_commandurootucompileuforceudry_runuoptimizeuverbose(uselfufilesu byte_compileu install_root((uB/opt/alt/python33/lib64/python3.3/distutils/command/install_lib.pyu byte_compilevs    uinstall_lib.byte_compilec Cs|s gS|j|}|j}t||}t|ttj}g}x4|D],} |jtjj|| |dqZW|S(N( uget_finalized_commandu get_outputsugetattrulenuosusepuappendupathujoin( uselfuhas_anyu build_cmdu cmd_optionu output_diru build_filesu build_diru prefix_lenuoutputsufile((uB/opt/alt/python33/lib64/python3.3/distutils/command/install_lib.pyu_mutate_outputss  *uinstall_lib._mutate_outputscCsg}x|D]}tjjtjj|d}|tkrGq n|jro|jtj|ddn|j dkr |jtj|ddq q W|S(Niudebug_overrideiTF( uosupathusplitextunormcaseuPYTHON_SOURCE_EXTENSIONucompileuappenduimpucache_from_sourceuTrueuoptimizeuFalse(uselfu py_filenamesubytecode_filesupy_fileuext((uB/opt/alt/python33/lib64/python3.3/distutils/command/install_lib.pyu_bytecode_filenamess "    uinstall_lib._bytecode_filenamescCsu|j|jjdd|j}|jr?|j|}ng}|j|jjdd|j}|||S(uReturn the list of files that would be installed if this command were actually run. Not affected by the "dry-run" flag or whether modules have actually been built yet. ubuild_pyu build_libu build_ext(u_mutate_outputsu distributionuhas_pure_modulesu install_dirucompileu_bytecode_filenamesuhas_ext_modules(uselfu pure_outputsubytecode_outputsu ext_outputs((uB/opt/alt/python33/lib64/python3.3/distutils/command/install_lib.pyu get_outputss   uinstall_lib.get_outputscCsrg}|jjr:|jd}|j|jn|jjrn|jd}|j|jn|S(uGet the list of files that are input to this command, ie. the files that get installed as they are named in the build tree. The files in this list correspond one-to-one to the output filenames returned by 'get_outputs()'. ubuild_pyu build_ext(u distributionuhas_pure_modulesuget_finalized_commanduextendu get_outputsuhas_ext_modules(uselfuinputsubuild_pyu build_ext((uB/opt/alt/python33/lib64/python3.3/distutils/command/install_lib.pyu get_inputssuinstall_lib.get_inputsN(u install-dir=ududirectory to install to(u build-dir=ubu'build directory (where to install from)(uforceufu-force installation (overwrite existing files)(ucompileucucompile .py to .pyc [default](u no-compileNudon't compile .py files(u optimize=uOulalso compile with optimization: -O1 for "python -O", -O2 for "python -OO", and -O0 to disable [default: -O0](u skip-buildNuskip the build steps(u__name__u __module__u __qualname__u descriptionuNoneu user_optionsuboolean_optionsu negative_optuinitialize_optionsufinalize_optionsurunubuilduinstallu byte_compileu_mutate_outputsu_bytecode_filenamesu get_outputsu get_inputs(u __locals__((uB/opt/alt/python33/lib64/python3.3/distutils/command/install_lib.pyu install_libs*         u install_lib( u__doc__uosuimpusysudistutils.coreuCommandudistutils.errorsuDistutilsOptionErroruPYTHON_SOURCE_EXTENSIONu install_lib(((uB/opt/alt/python33/lib64/python3.3/distutils/command/install_lib.pyus   PK!:vU5U5unixccompiler.pynu[PK![ 5__init__.pynu[PK!1}@}@6cygwinccompiler.pynu[PK!_H%{wdebug.pynu[PK! K00 >xtext_file.pynu[PK!1xExE-fancy_getopt.pynu[PK!/archive_util.pynu[PK!(>dist.pynu[PK!薊_(_( extension.pynu[PK!,n:Q:Q[util.pynu[PK!\[J[JAcmd.pynu[PK! ư*]__pycache__/file_util.cpython-36.opt-2.pycnu[PK!Fӎ##$g__pycache__/cmd.cpython-36.opt-2.pycnu[PK!樤,44(ھ__pycache__/_msvccompiler.cpython-36.pycnu[PK!f  $,__pycache__/file_util.cpython-36.pycnu[PK!ECC. __pycache__/msvc9compiler.cpython-36.opt-1.pycnu[PK!*&(O__pycache__/version.cpython-36.opt-1.pycnu[PK!6bb'l__pycache__/errors.cpython-36.opt-1.pycnu[PK!DA88-j__pycache__/msvccompiler.cpython-36.opt-1.pycnu[PK!GPX X %__pycache__/core.cpython-36.opt-2.pycnu[PK!yk)\__pycache__/__init__.cpython-36.opt-2.pycnu[PK!(ߟ 'y__pycache__/config.cpython-36.opt-1.pycnu[PK!nQQ-o__pycache__/bcppcompiler.cpython-36.opt-1.pycnu[PK!q))'__pycache__/fancy_getopt.cpython-36.pycnu[PK! &__pycache__/debug.cpython-36.opt-1.pycnu[PK!D;^AA*#__pycache__/ccompiler.cpython-36.opt-2.pycnu[PK!W6=c___pycache__/log.cpython-36.pycnu[PK!eo  'h__pycache__/config.cpython-36.opt-2.pycnu[PK!0Ah(u__pycache__/version.cpython-36.opt-2.pycnu[PK!f7-*__pycache__/archive_util.cpython-36.opt-2.pycnu[PK!4Sc$__pycache__/log.cpython-36.opt-2.pycnu[PK!B::"__pycache__/cmd.cpython-36.pycnu[PK!^9b b )\__pycache__/dir_util.cpython-36.opt-2.pycnu[PK!nQQ'j__pycache__/bcppcompiler.cpython-36.pycnu[PK!fY &&$V__pycache__/extension.cpython-36.pycnu[PK!͢П__pycache__/dist.cpython-36.pycnu[PK!Y/&/&)%__pycache__/filelist.cpython-36.opt-1.pycnu[PK!wm)LL__pycache__/dep_util.cpython-36.opt-2.pycnu[PK!y+Q__pycache__/versionpredicate.cpython-36.pycnu[PK!u>UaUa%e__pycache__/dist.cpython-36.opt-2.pycnu[PK!<<%q__pycache__/util.cpython-36.opt-1.pycnu[PK!f  *i __pycache__/file_util.cpython-36.opt-1.pycnu[PK!܎..$ __pycache__/sysconfig.cpython-36.pycnu[PK!S۬#J __pycache__/dir_util.cpython-36.pycnu[PK! ) )a __pycache__/dep_util.cpython-36.opt-1.pycnu[PK!4Scii(ycommand/__pycache__/check.cpython-36.pycnu[PK!FEZ11.:command/__pycache__/check.cpython-36.opt-2.pycnu[PK!@w.command/__pycache__/bdist.cpython-36.opt-2.pycnu[PK!;PoSFF2*command/__pycache__/bdist_msi.cpython-36.opt-2.pycnu[PK!Fq 1f@command/__pycache__/register.cpython-36.opt-1.pycnu[PK!YY]33,acommand/__pycache__/bdist_rpm.cpython-36.pycnu[PK! . command/__pycache__/build.cpython-36.opt-1.pycnu[PK! 0Lcommand/__pycache__/bdist_wininst.cpython-36.pycnu[PK!$000._command/__pycache__/clean.cpython-36.opt-2.pycnu[PK!k8command/__pycache__/install_scripts.cpython-36.opt-1.pycnu[PK!j992command/__pycache__/build_ext.cpython-36.opt-2.pycnu[PK!'556Mcommand/__pycache__/build_scripts.cpython-36.opt-1.pycnu[PK!884"command/__pycache__/install_lib.cpython-36.opt-1.pycnu[PK!t5353(=7command/__pycache__/sdist.cpython-36.pycnu[PK!k2jcommand/__pycache__/install_scripts.cpython-36.pycnu[PK!p&&.scommand/__pycache__/sdist.cpython-36.opt-2.pycnu[PK!3770ښcommand/__pycache__/install.cpython-36.opt-1.pycnu[PK!g222command/__pycache__/bdist_rpm.cpython-36.opt-1.pycnu[PK!ل8command/__pycache__/install_headers.cpython-36.opt-2.pycnu[PK!=#8 command/__pycache__/install_scripts.cpython-36.opt-2.pycnu[PK!88.command/__pycache__/install_lib.cpython-36.pycnu[PK!x 9)command/__pycache__/install_egg_info.cpython-36.opt-1.pycnu[PK!ȭ/5command/__pycache__/upload.cpython-36.opt-1.pycnu[PK!>ii.Jcommand/__pycache__/check.cpython-36.opt-1.pycnu[PK!q((1n_command/__pycache__/build_py.cpython-36.opt-1.pycnu[PK!B2command/__pycache__/install_headers.cpython-36.pycnu[PK![' @@,ȏcommand/__pycache__/build_ext.cpython-36.pycnu[PK!+command/__pycache__/__init__.cpython-36.pycnu[PK!1Dcommand/__pycache__/__init__.cpython-36.opt-1.pycnu[PK!1command/__pycache__/register.cpython-36.opt-2.pycnu[PK!Fq +command/__pycache__/register.cpython-36.pycnu[PK!kk3?command/__pycache__/build_clib.cpython-36.opt-1.pycnu[PK!j |3|30 'command/__pycache__/install.cpython-36.opt-2.pycnu[PK!zL(Zcommand/__pycache__/bdist.cpython-36.pycnu[PK!Sn 3jcommand/__pycache__/bdist_dumb.cpython-36.opt-2.pycnu[PK!:.so o 6@xcommand/__pycache__/bdist_wininst.cpython-36.opt-1.pycnu[PK!*Rj&command/install_headers.pynu[PK!yiy$3$3qcommand/config.pynu[PK!oFGEEcommand/sdist.pynu[PK!y)C)Ccommand/build_py.pynu[PK! e[command/build_ext.pynu[PK!YA command/install_lib.pynu[PK!uas--|command/register.pynu[PK!ll{*command/check.pynu[PK!ټE%%'@command/build.pynu[PK!v3;VVUcommand/build_clib.pynu[PK!   'ucommand/install_data.pynu[PK!yjj tconfig.pynu[PK!(( errors.pynu[PK!" 11 Tfilelist.pynu[PK!(: ?dir_util.pynu[PK!hG00 version.pynu[PK!@w@w!msvc9compiler.pynu[PK!UOO{_msvccompiler.pynu[PK!#__pycache__/dir_util.cpython-311.pycnu[PK! e#__pycache__/dist.cpython-311.pycnu[PK!$'BB(;$__pycache__/fancy_getopt.cpython-311.pycnu[PK!e<e`e` ~$__pycache__/util.cpython-311.pycnu[PK!b$%33)$__pycache__/unixccompiler.cpython-311.pycnu[PK!DY))(%__pycache__/archive_util.cpython-311.pycnu[PK!_ > >*=%__pycache__/filelist.cpython-311.opt-1.pycnu[PK!gT//&0|%__pycache__/core.cpython-311.opt-2.pycnu[PK!] *%__pycache__/dep_util.cpython-311.opt-2.pycnu[PK!qsII&%__pycache__/util.cpython-311.opt-2.pycnu[PK!$''+%__pycache__/extension.cpython-311.opt-1.pycnu[PK!A$$!&__pycache__/debug.cpython-311.pycnu[PK!x]#]# }&__pycache__/core.cpython-311.pycnu[PK!2*4&__pycache__/versionpredicate.cpython-311.opt-2.pycnu[PK!Yi++(+G&__pycache__/errors.cpython-311.opt-2.pycnu[PK!s2W`W`&W&__pycache__/util.cpython-311.opt-1.pycnu[PK!%11.[&__pycache__/bcppcompiler.cpython-311.opt-2.pycnu[PK!.$$&__pycache__/dep_util.cpython-311.pycnu[PK!DY)).k&__pycache__/archive_util.cpython-311.opt-1.pycnu[PK!x]#]#&q$'__pycache__/core.cpython-311.opt-1.pycnu[PK!)()(+$H'__pycache__/sysconfig.cpython-311.opt-2.pycnu[PK!A$$'p'__pycache__/debug.cpython-311.opt-2.pycnu[PK!AA.#r'__pycache__/fancy_getopt.cpython-311.opt-1.pycnu[PK! =bl(l()='__pycache__/version.cpython-311.opt-1.pycnu[PK!__)'__pycache__/_msvccompiler.cpython-311.pycnu[PK!V!!.s<(__pycache__/archive_util.cpython-311.opt-2.pycnu[PK!kwTZTZ/^(__pycache__/_msvccompiler.cpython-311.opt-2.pycnu[PK!$,,+T(__pycache__/text_file.cpython-311.opt-1.pycnu[PK!R"(__pycache__/config.cpython-311.pycnu[PK!M I I +(__pycache__/file_util.cpython-311.opt-2.pycnu[PK!ѕ9hh. )__pycache__/msvccompiler.cpython-311.opt-1.pycnu[PK!A$$')__pycache__/debug.cpython-311.opt-1.pycnu[PK!R[j((%w)__pycache__/file_util.cpython-311.pycnu[PK!$''%T)__pycache__/extension.cpython-311.pycnu[PK!9ʋIcc(T)__pycache__/errors.cpython-311.opt-1.pycnu[PK!v^^/)__pycache__/_msvccompiler.cpython-311.opt-1.pycnu[PK!@cmImI%3U*__pycache__/cmd.cpython-311.opt-1.pycnu[PK!cb7M33(*__pycache__/bcppcompiler.cpython-311.pycnu[PK!!552N*__pycache__/versionpredicate.cpython-311.opt-1.pycnu[PK!b$%33/*__pycache__/unixccompiler.cpython-311.opt-1.pycnu[PK!d*8{{/#+__pycache__/msvc9compiler.cpython-311.opt-2.pycnu[PK!q((#+__pycache__/version.cpython-311.pycnu[PK!55*Z+__pycache__/__init__.cpython-311.opt-1.pycnu[PK!0U*7*71+__pycache__/cygwinccompiler.cpython-311.opt-1.pycnu[PK!^!t,__pycache__/spawn.cpython-311.pycnu[PK!: HDD+,__pycache__/ccompiler.cpython-311.opt-1.pycnu[PK!f001M,__pycache__/cygwinccompiler.cpython-311.opt-2.pycnu[PK! 7 7.,__pycache__/fancy_getopt.cpython-311.opt-2.pycnu[PK!.$*/-__pycache__/dep_util.cpython-311.opt-1.pycnu[PK!T?<<%>-__pycache__/log.cpython-311.opt-1.pycnu[PK!cb7M33.|N-__pycache__/bcppcompiler.cpython-311.opt-1.pycnu[PK! 99/ہ-__pycache__/msvc9compiler.cpython-311.opt-1.pycnu[PK!0U*7*7+s.__pycache__/cygwinccompiler.cpython-311.pycnu[PK!R(:.__pycache__/config.cpython-311.opt-1.pycnu[PK!!55,?T.__pycache__/versionpredicate.cpython-311.pycnu[PK!W%\1\1/p.__pycache__/unixccompiler.cpython-311.opt-2.pycnu[PK!b!4.command/__pycache__/bdist_dumb.cpython-311.opt-2.pycnu[PK!%=((0o.command/__pycache__/upload.cpython-311.opt-1.pycnu[PK!+ qbvbv-b.command/__pycache__/build_ext.cpython-311.pycnu[PK!hs2!X/command/__pycache__/__init__.cpython-311.opt-2.pycnu[PK!RII4Z/command/__pycache__/bdist_dumb.cpython-311.opt-1.pycnu[PK!|=ŮDPDP/p/command/__pycache__/sdist.cpython-311.opt-2.pycnu[PK!]^^1e/command/__pycache__/install.cpython-311.opt-1.pycnu[PK!+220 0command/__pycache__/config.cpython-311.opt-2.pycnu[PK!Ή )S0command/__pycache__/clean.cpython-311.pycnu[PK! 7 7 3c`0command/__pycache__/install_scripts.cpython-311.pycnu[PK!%=((*l0command/__pycache__/upload.cpython-311.pycnu[PK!Q͌5 5 /0command/__pycache__/clean.cpython-311.opt-2.pycnu[PK!Ή /~0command/__pycache__/clean.cpython-311.opt-1.pycnu[PK!]^^+f0command/__pycache__/install.cpython-311.pycnu[PK!c,1command/__pycache__/__init__.cpython-311.pycnu[PK!hY---41command/__pycache__/install_egg_info.cpython-311.pycnu[PK!Ns)u$1command/__pycache__/check.cpython-311.pycnu[PK!MBbwhJhJ,C1command/__pycache__/build_py.cpython-311.pycnu[PK!y3XX3u1command/__pycache__/bdist_rpm.cpython-311.opt-2.pycnu[PK!4.  9r1command/__pycache__/install_headers.cpython-311.opt-1.pycnu[PK!¯YY31command/__pycache__/bdist_rpm.cpython-311.opt-1.pycnu[PK!A!R((0(K2command/__pycache__/upload.cpython-311.opt-2.pycnu[PK!b&nn3s2command/__pycache__/build_ext.cpython-311.opt-2.pycnu[PK!ө52command/__pycache__/install_lib.cpython-311.opt-2.pycnu[PK!?x!!53command/__pycache__/install_lib.cpython-311.opt-1.pycnu[PK!Q7H%3command/__pycache__/build_scripts.cpython-311.opt-1.pycnu[PK! 7 7 9C3command/__pycache__/install_scripts.cpython-311.opt-1.pycnu[PK!+ qbvbv3fP3command/__pycache__/build_ext.cpython-311.opt-1.pycnu[PK!ܦ77/+3command/__pycache__/build.cpython-311.opt-2.pycnu[PK!m[[/3command/__pycache__/bdist.cpython-311.opt-2.pycnu[PK!#6{3command/__pycache__/install_data.cpython-311.opt-1.pycnu[PK!( @@44command/__pycache__/build_clib.cpython-311.opt-2.pycnu[PK!+qZqZ-'4command/__pycache__/bdist_rpm.cpython-311.pycnu[PK!#0y4command/__pycache__/install_data.cpython-311.pycnu[PK!tГ74command/__pycache__/build_scripts.cpython-311.opt-2.pycnu[PK!'m-&/4command/__pycache__/bdist.cpython-311.opt-1.pycnu[PK!zjৰ 9i4command/__pycache__/install_scripts.cpython-311.opt-2.pycnu[PK!X?X?*4command/__pycache__/config.cpython-311.pycnu[PK!Ef(:8:8245command/__pycache__/register.cpython-311.opt-2.pycnu[PK!.$dd4?5command/__pycache__/build_clib.cpython-311.opt-1.pycnu[PK!ԷII2^5command/__pycache__/build_py.cpython-311.opt-1.pycnu[PK!S/5command/__pycache__/check.cpython-311.opt-2.pycnu[PK!/e)5command/__pycache__/build.cpython-311.pycnu[PK! = =,5command/__pycache__/register.cpython-311.pycnu[PK!E>:6command/__pycache__/install_egg_info.cpython-311.opt-2.pycnu[PK!E ] ]),6command/__pycache__/sdist.cpython-311.pycnu[PK!/e/|6command/__pycache__/build.cpython-311.opt-1.pycnu[PK!c2f6command/__pycache__/__init__.cpython-311.opt-1.pycnu[PK!?x!!/ȣ6command/__pycache__/install_lib.cpython-311.pycnu[PK!Ns/6command/__pycache__/check.cpython-311.opt-1.pycnu[PK!w2[[1J6command/__pycache__/install.cpython-311.opt-2.pycnu[PK!&uu9@7command/__pycache__/install_headers.cpython-311.opt-2.pycnu[PK!^:I6I7command/__pycache__/install_data.cpython-311.opt-2.pycnu[PK! Xq{VEVE2X7command/__pycache__/build_py.cpython-311.opt-2.pycnu[PK!'m-&)7command/__pycache__/bdist.cpython-311.pycnu[PK!Q1+7command/__pycache__/build_scripts.cpython-311.pycnu[PK!E ] ]/7command/__pycache__/sdist.cpython-311.opt-1.pycnu[PK!4.  3/8command/__pycache__/install_headers.cpython-311.pycnu[PK!.$dd.88command/__pycache__/build_clib.cpython-311.pycnu[PK!X?X?0OW8command/__pycache__/config.cpython-311.opt-1.pycnu[PK!RII.8command/__pycache__/bdist_dumb.cpython-311.pycnu[PK! = =28command/__pycache__/register.cpython-311.opt-1.pycnu[PK!hY---:8command/__pycache__/install_egg_info.cpython-311.opt-1.pycnu[PK!jU(U(#8__pycache__/filelist.cpython-35.pycnu[PK!jU(U()Y'9__pycache__/filelist.cpython-35.opt-1.pycnu[PK!*[)P9__pycache__/__init__.cpython-35.opt-1.pycnu[PK!3ˣD D 'Q9__pycache__/config.cpython-35.opt-2.pycnu[PK! .##0_9__pycache__/cygwinccompiler.cpython-35.opt-1.pycnu[PK!HxY$jj%9__pycache__/dist.cpython-35.opt-2.pycnu[PK!WJJ(G9__pycache__/msvc9compiler.cpython-35.pycnu[PK!F11.9:__pycache__/_msvccompiler.cpython-35.opt-2.pycnu[PK!o哠JJ.ak:__pycache__/msvc9compiler.cpython-35.opt-1.pycnu[PK!233)_:__pycache__/dir_util.cpython-35.opt-1.pycnu[PK!n% % ):__pycache__/dep_util.cpython-35.opt-1.pycnu[PK!MZuu)i:__pycache__/dep_util.cpython-35.opt-2.pycnu[PK!SW7:__pycache__/core.cpython-35.pycnu[PK!.alP**( :__pycache__/version.cpython-35.opt-1.pycnu[PK!F ==;__pycache__/cmd.cpython-35.pycnu[PK!V44.W;__pycache__/unixccompiler.cpython-35.opt-2.pycnu[PK!LL*s;__pycache__/ccompiler.cpython-35.opt-1.pycnu[PK!] $&;__pycache__/extension.cpython-35.pycnu[PK!k>>%f<__pycache__/core.cpython-35.opt-2.pycnu[PK!S9""$&<__pycache__/text_file.cpython-35.pycnu[PK!n% % # J<__pycache__/dep_util.cpython-35.pycnu[PK!B'U<__pycache__/archive_util.cpython-35.pycnu[PK!*[#lp<__pycache__/__init__.cpython-35.pycnu[PK!% ?D?D.Ur<__pycache__/msvc9compiler.cpython-35.opt-2.pycnu[PK!E>E>-<__pycache__/msvccompiler.cpython-35.opt-1.pycnu[PK!bz&<__pycache__/spawn.cpython-35.opt-1.pycnu[PK!233# =__pycache__/dir_util.cpython-35.pycnu[PK!89+g#=__pycache__/versionpredicate.cpython-35.pycnu[PK!ӧ UU'8=__pycache__/errors.cpython-35.opt-1.pycnu[PK!ӧ UU!gO=__pycache__/errors.cpython-35.pycnu[PK!=J.3.3* f=__pycache__/sysconfig.cpython-35.opt-1.pycnu[PK!E )=__pycache__/__init__.cpython-35.opt-2.pycnu[PK!:$ š=__pycache__/debug.cpython-35.pycnu[PK!-!-!-=__pycache__/fancy_getopt.cpython-35.opt-2.pycnu[PK!=T0o=__pycache__/cygwinccompiler.cpython-35.opt-2.pycnu[PK!E>E>'^=__pycache__/msvccompiler.cpython-35.pycnu[PK!no)>__pycache__/dir_util.cpython-35.opt-2.pycnu[PK!\ $0)>__pycache__/log.cpython-35.opt-1.pycnu[PK!B-23>__pycache__/archive_util.cpython-35.opt-1.pycnu[PK!z'#N>__pycache__/config.cpython-35.opt-1.pycnu[PK!B$T]>__pycache__/file_util.cpython-35.pycnu[PK!] *@v>__pycache__/extension.cpython-35.opt-1.pycnu[PK!*|g.>__pycache__/unixccompiler.cpython-35.opt-1.pycnu[PK!BRe e $>__pycache__/log.cpython-35.opt-2.pycnu[PK!,%%*R>__pycache__/sysconfig.cpython-35.opt-2.pycnu[PK!{,,'.>__pycache__/fancy_getopt.cpython-35.pycnu[PK!gS@@h?__pycache__/util.cpython-35.pycnu[PK!z!DO?__pycache__/config.cpython-35.pycnu[PK!dd%o^?__pycache__/dist.cpython-35.opt-1.pycnu[PK!BMM'(?__pycache__/bcppcompiler.cpython-35.pycnu[PK!F ==$ @__pycache__/cmd.cpython-35.opt-1.pycnu[PK!-3G@__pycache__/bcppcompiler.cpython-35.opt-2.pycnu[PK!eaJ33*b@__pycache__/file_util.cpython-35.opt-2.pycnu[PK! .##*Qcommand/__pycache__/bdist_rpm.cpython-35.opt-1.pycnu[PK!9u9#4uQcommand/__pycache__/install_lib.cpython-35.opt-2.pycnu[PK!g91qQcommand/__pycache__/__init__.cpython-35.opt-2.pycnu[PK!n,n,1Qcommand/__pycache__/build_py.cpython-35.opt-1.pycnu[PK! .[Qcommand/__pycache__/install_lib.cpython-35.pycnu[PK!8Qcommand/__pycache__/install_scripts.cpython-35.opt-2.pycnu[PK!(Qcommand/__pycache__/bdist.cpython-35.pycnu[PK!  .Qcommand/__pycache__/clean.cpython-35.opt-1.pycnu[PK!_g++/"Qcommand/__pycache__/config.cpython-35.opt-1.pycnu[PK!-Rcommand/__pycache__/build_clib.cpython-35.pycnu[PK!kjn n 91Rcommand/__pycache__/install_egg_info.cpython-35.opt-1.pycnu[PK!<"JG6G60>Rcommand/__pycache__/install.cpython-35.opt-2.pycnu[PK!Qii3buRcommand/__pycache__/bdist_dumb.cpython-35.opt-1.pycnu[PK!_g++).Rcommand/__pycache__/config.cpython-35.pycnu[PK!7""6Rcommand/__pycache__/bdist_wininst.cpython-35.opt-1.pycnu[PK!~U##+Rcommand/__pycache__/register.cpython-35.pycnu[PK!Z# # 2Rcommand/__pycache__/install_scripts.cpython-35.pycnu[PK!'ENPP0Scommand/__pycache__/build_scripts.cpython-35.pycnu[PK!''16Scommand/__pycache__/build_py.cpython-35.opt-2.pycnu[PK!BYƲ68>2@\Tcommand/__pycache__/build_ext.cpython-35.opt-2.pycnu[PK! 4FTcommand/__pycache__/install_lib.cpython-35.opt-1.pycnu[PK!z 5Tcommand/__pycache__/install_data.cpython-35.opt-1.pycnu[PK![n_ii8ȻTcommand/__pycache__/install_headers.cpython-35.opt-2.pycnu[PK!'ENPP6Tcommand/__pycache__/build_scripts.cpython-35.opt-1.pycnu[PK!.7Ucommand/__pycache__/bdist.cpython-35.opt-2.pycnu[PK!~U##1GUcommand/__pycache__/register.cpython-35.opt-1.pycnu[PK!kjn n 3gkUcommand/__pycache__/install_egg_info.cpython-35.pycnu[PK!s3##08xUcommand/__pycache__/bdist_wininst.cpython-35.pycnu[PK!E!TT,Ucommand/__pycache__/bdist_msi.cpython-35.pycnu[PK!.6j5 5 5Ucommand/__pycache__/install_data.cpython-35.opt-2.pycnu[PK!3^F^F,Ucommand/__pycache__/build_ext.cpython-35.pycnu[PK!/ZAVcommand/__pycache__/upload.cpython-35.opt-2.pycnu[PK!0zT,,+WWVcommand/__pycache__/build_py.cpython-35.pycnu[PK!3^F^F2hVcommand/__pycache__/build_ext.cpython-35.opt-1.pycnu[PK!A[(Vcommand/wininst-8.0.exenu[PK!WoWcommand/wininst-6.0.exenu[PK!2yQllXcommand/wininst-9.0-amd64.exenu[PK!@\command/wininst-10.0.exenu[PK!קK7K_command/wininst-7.1.exenu[PK!o,``command/wininst-14.0-amd64.exenu[PK!g6,ddhcommand/wininst-10.0-amd64.exenu[PK!+._l__pycache__/versionpredicate.cpython-34.pyonu[PK!x==$tl__pycache__/ccompiler.cpython-34.pycnu[PK!''#1l__pycache__/filelist.cpython-34.pyonu[PK!c100$?%m__pycache__/extension.cpython-34.pyonu[PK!Ut $Am__pycache__/ccompiler.cpython-34.pyonu[PK!1 1 #m__pycache__/dep_util.cpython-34.pyonu[PK!_\:""$3m__pycache__/text_file.cpython-34.pyonu[PK!RRR'nm__pycache__/archive_util.cpython-34.pyonu[PK!!}$n__pycache__/file_util.cpython-34.pycnu[PK!pp 9,n__pycache__/spawn.cpython-34.pyonu[PK!} An__pycache__/log.cpython-34.pyonu[PK!t#Ln__pycache__/__init__.cpython-34.pyonu[PK!t#Mn__pycache__/__init__.cpython-34.pycnu[PK!:sy||'On__pycache__/bcppcompiler.cpython-34.pyonu[PK!c100$ln__pycache__/extension.cpython-34.pycnu[PK!} -n__pycache__/log.cpython-34.pycnu[PK!~%,ZZ#8n__pycache__/dir_util.cpython-34.pycnu[PK!r]JJ(n__pycache__/msvc9compiler.cpython-34.pyonu[PK!)44$)n__pycache__/sysconfig.cpython-34.pycnu[PK!pp T,o__pycache__/spawn.cpython-34.pycnu[PK!dau Bo__pycache__/debug.cpython-34.pyonu[PK!B+/K/K(7Co__pycache__/msvc9compiler.cpython-34.pycnu[PK!|o__pycache__/dist.cpython-34.pyonu[PK!{ $$*p__pycache__/cygwinccompiler.cpython-34.pyonu[PK!+oCp__pycache__/versionpredicate.cpython-34.pycnu[PK!sF%%"Xp__pycache__/version.cpython-34.pycnu[PK!:====Xxp__pycache__/cmd.cpython-34.pyonu[PK! p__pycache__/core.cpython-34.pycnu[PK! 9UU! p__pycache__/errors.cpython-34.pyonu[PK!dau p__pycache__/debug.cpython-34.pycnu[PK!!p__pycache__/config.cpython-34.pycnu[PK!-,,'p__pycache__/fancy_getopt.cpython-34.pyonu[PK!!%q__pycache__/config.cpython-34.pyonu[PK!W)/5q__pycache__/core.cpython-34.pyonu[PK!YQq__pycache__/dist.cpython-34.pycnu[PK!`(q__pycache__/unixccompiler.cpython-34.pyonu[PK!:====q__pycache__/cmd.cpython-34.pycnu[PK!`(mp>'p>'0t__pycache__/msvccompiler.cpython-34.pyonu[PK!RRR'ot__pycache__/archive_util.cpython-34.pycnu[PK!!}$1t__pycache__/file_util.cpython-34.pyonu[PK! 9UU!St__pycache__/errors.cpython-34.pycnu[PK!:sy||'t__pycache__/bcppcompiler.cpython-34.pycnu[PK!R::.tcommand/__pycache__/install_lib.cpython-34.pycnu[PK!K:;;2dtcommand/__pycache__/install_headers.cpython-34.pyonu[PK!9^lPUPU,tcommand/__pycache__/bdist_msi.cpython-34.pycnu[PK!0Jucommand/__pycache__/build_scripts.cpython-34.pycnu[PK!BB,]ucommand/__pycache__/build_ext.cpython-34.pycnu[PK!h%mϫ)ڠucommand/__pycache__/upload.cpython-34.pyonu[PK!oEN N 2޷ucommand/__pycache__/install_scripts.cpython-34.pyonu[PK!7 /ucommand/__pycache__/install_data.cpython-34.pycnu[PK!0ucommand/__pycache__/build_scripts.cpython-34.pyonu[PK!hk77,ucommand/__pycache__/bdist_rpm.cpython-34.pyonu[PK!z;;+vcommand/__pycache__/__init__.cpython-34.pyonu[PK!z;;+\vcommand/__pycache__/__init__.cpython-34.pycnu[PK!ƭE E (vcommand/__pycache__/clean.cpython-34.pycnu[PK!k .%EE-%vcommand/__pycache__/build_clib.cpython-34.pycnu[PK!oEN N 21;vcommand/__pycache__/install_scripts.cpython-34.pycnu[PK!6)b{ { 3Dvcommand/__pycache__/install_egg_info.cpython-34.pycnu[PK!z -Qvcommand/__pycache__/bdist_dumb.cpython-34.pyonu[PK!@TT,avcommand/__pycache__/bdist_msi.cpython-34.pyonu[PK!7 /vcommand/__pycache__/install_data.cpython-34.pyonu[PK!`;;*8vcommand/__pycache__/install.cpython-34.pycnu[PK! ;;*vcommand/__pycache__/install.cpython-34.pyonu[PK!ƭE E (8wcommand/__pycache__/clean.cpython-34.pyonu[PK!K:;;2Awcommand/__pycache__/install_headers.cpython-34.pycnu[PK!F_7+7+)XIwcommand/__pycache__/config.cpython-34.pycnu[PK!/6(twcommand/__pycache__/bdist.cpython-34.pyonu[PK!eC"C"0wcommand/__pycache__/bdist_wininst.cpython-34.pyonu[PK!F_7+7+)wcommand/__pycache__/config.cpython-34.pyonu[PK!77,4wcommand/__pycache__/bdist_rpm.cpython-34.pycnu[PK!B""0} xcommand/__pycache__/bdist_wininst.cpython-34.pycnu[PK!vur7r7(i.xcommand/__pycache__/sdist.cpython-34.pycnu[PK!z -3fxcommand/__pycache__/bdist_dumb.cpython-34.pycnu[PK!6)b{ { 3vxcommand/__pycache__/install_egg_info.cpython-34.pyonu[PK!.l,(xcommand/__pycache__/build.cpython-34.pyonu[PK!R::.)xcommand/__pycache__/install_lib.cpython-34.pyonu[PK!vur7r7(xcommand/__pycache__/sdist.cpython-34.pyonu[PK!6'$'$+xcommand/__pycache__/register.cpython-34.pycnu[PK!R( ycommand/__pycache__/check.cpython-34.pycnu[PK!BB,ycommand/__pycache__/build_ext.cpython-34.pyonu[PK!R(=^ycommand/__pycache__/check.cpython-34.pyonu[PK!.l,((sycommand/__pycache__/build.cpython-34.pycnu[PK!6'$'$+cycommand/__pycache__/register.cpython-34.pyonu[PK!/6(ycommand/__pycache__/bdist.cpython-34.pycnu[PK!> z,,+ycommand/__pycache__/build_py.cpython-34.pyonu[PK!k .%EE-ycommand/__pycache__/build_clib.cpython-34.pyonu[PK!}s - -+ycommand/__pycache__/build_py.cpython-34.pycnu[PK!h%mϫ)&(zcommand/__pycache__/upload.cpython-34.pycnu[PK!U].].*?zemxccompiler.pynu[PK!TϤii#mz__pycache__/dir_util.cpython-33.pycnu[PK!FF$z__pycache__/sysconfig.cpython-33.pycnu[PK!C$z__pycache__/ccompiler.cpython-33.pycnu[PK! ~{__pycache__/debug.cpython-33.pyonu[PK!CPP{__pycache__/util.cpython-33.pyonu[PK!%e C{__pycache__/dist.cpython-33.pycnu[PK!FF$|__pycache__/sysconfig.cpython-33.pyonu[PK!L 3 3#|__pycache__/filelist.cpython-33.pyonu[PK!ug-&&(! }__pycache__/unixccompiler.cpython-33.pycnu[PK!A#+n1}__pycache__/versionpredicate.cpython-33.pyonu[PK!RR'K}__pycache__/msvccompiler.cpython-33.pyonu[PK! }__pycache__/debug.cpython-33.pycnu[PK!~ں#}__pycache__/__init__.cpython-33.pyonu[PK!Z T9!!'}__pycache__/emxccompiler.cpython-33.pyonu[PK!A#+}__pycache__/versionpredicate.cpython-33.pycnu[PK!t+f+ + #$}__pycache__/dep_util.cpython-33.pycnu[PK!u~Z!Z!$}__pycache__/extension.cpython-33.pycnu[PK!%e P ~__pycache__/dist.cpython-33.pyonu[PK!~$~__pycache__/ccompiler.cpython-33.pyonu[PK!t 'w__pycache__/archive_util.cpython-33.pycnu[PK!Z T9!!'__pycache__/emxccompiler.cpython-33.pycnu[PK!k''"__pycache__/version.cpython-33.pyonu[PK!!__pycache__/config.cpython-33.pycnu[PK!ȑ __pycache__/core.cpython-33.pyonu[PK!"$@__pycache__/file_util.cpython-33.pyonu[PK!-=## 8.__pycache__/spawn.cpython-33.pyonu[PK!99'L__pycache__/fancy_getopt.cpython-33.pyonu[PK!RR'݆__pycache__/msvccompiler.cpython-33.pycnu[PK!ȑ ـ__pycache__/core.cpython-33.pycnu[PK!~ں#__pycache__/__init__.cpython-33.pycnu[PK!qff__pycache__/log.cpython-33.pycnu[PK!?//* __pycache__/cygwinccompiler.cpython-33.pyonu[PK!6 ^cc(;__pycache__/msvc9compiler.cpython-33.pyonu[PK!X%%'__pycache__/bcppcompiler.cpython-33.pyonu[PK!N'^e|(|($Ł__pycache__/text_file.cpython-33.pyonu[PK!CPPm__pycache__/util.cpython-33.pycnu[PK!Åg!PP>__pycache__/cmd.cpython-33.pyonu[PK!"$__pycache__/file_util.cpython-33.pycnu[PK!L 3 3#__pycache__/filelist.cpython-33.pycnu[PK!-=## __pycache__/spawn.cpython-33.pycnu[PK!ت::'__pycache__/fancy_getopt.cpython-33.pycnu[PK!Åg!PP9__pycache__/cmd.cpython-33.pycnu[PK!3dd(__pycache__/msvc9compiler.cpython-33.pycnu[PK!X%%'__pycache__/bcppcompiler.cpython-33.pycnu[PK!?//*__pycache__/cygwinccompiler.cpython-33.pycnu[PK!!D__pycache__/config.cpython-33.pyonu[PK!~<(<("X__pycache__/version.cpython-33.pycnu[PK![6#6#!{__pycache__/errors.cpython-33.pycnu[PK!TϤii#__pycache__/dir_util.cpython-33.pyonu[PK!u~Z!Z!$„__pycache__/extension.cpython-33.pyonu[PK!N'^e|(|($l__pycache__/text_file.cpython-33.pycnu[PK![6#6#!< __pycache__/errors.cpython-33.pyonu[PK!ug-&&(0__pycache__/unixccompiler.cpython-33.pyonu[PK!qffX__pycache__/log.cpython-33.pyonu[PK!t 'f__pycache__/archive_util.cpython-33.pyonu[PK!t+f+ + #ɀ__pycache__/dep_util.cpython-33.pyonu[PK!S@0@00Gcommand/__pycache__/bdist_wininst.cpython-33.pycnu[PK!e13羅command/__pycache__/install_egg_info.cpython-33.pyonu[PK!L4)Ѕcommand/__pycache__/upload.cpython-33.pyonu[PK!4U(Gcommand/__pycache__/check.cpython-33.pyonu[PK!d/= command/__pycache__/install_data.cpython-33.pyonu[PK! OO,1command/__pycache__/bdist_rpm.cpython-33.pyonu[PK!|"q0icommand/__pycache__/build_scripts.cpython-33.pycnu[PK!Og(ucommand/__pycache__/bdist.cpython-33.pycnu[PK!SJW@@+command/__pycache__/build_py.cpython-33.pyonu[PK!ITT*نcommand/__pycache__/install.cpython-33.pyonu[PK!<|} (.command/__pycache__/clean.cpython-33.pyonu[PK!Zh2<command/__pycache__/install_scripts.cpython-33.pycnu[PK!:^+lKcommand/__pycache__/__init__.cpython-33.pyonu[PK!K@@+SNcommand/__pycache__/build_py.cpython-33.pycnu[PK!36fGG(command/__pycache__/sdist.cpython-33.pycnu[PK!hh,ׇcommand/__pycache__/bdist_msi.cpython-33.pyonu[PK!d/@command/__pycache__/install_data.cpython-33.pycnu[PK!L4)Ocommand/__pycache__/upload.cpython-33.pycnu[PK!&?  2lcommand/__pycache__/install_headers.cpython-33.pycnu[PK!<|} (Txcommand/__pycache__/clean.cpython-33.pycnu[PK!4U(command/__pycache__/check.cpython-33.pycnu[PK!Lù;;)command/__pycache__/config.cpython-33.pycnu[PK!-g(߈command/__pycache__/build.cpython-33.pyonu[PK!M? ? .command/__pycache__/install_lib.cpython-33.pycnu[PK!@| NN-gcommand/__pycache__/bdist_dumb.cpython-33.pyonu[PK!@..+-command/__pycache__/register.cpython-33.pyonu[PK!-g([command/__pycache__/build.cpython-33.pycnu[PK!wq-scommand/__pycache__/build_clib.cpython-33.pycnu[PK!:^+ڑcommand/__pycache__/__init__.cpython-33.pycnu[PK!|"q0command/__pycache__/build_scripts.cpython-33.pyonu[PK!Og(command/__pycache__/bdist.cpython-33.pyonu[PK!ITT*Écommand/__pycache__/install.cpython-33.pycnu[PK!@..+command/__pycache__/register.cpython-33.pycnu[PK!Lù;;)]Gcommand/__pycache__/config.cpython-33.pyonu[PK!36fGG(ocommand/__pycache__/sdist.cpython-33.pyonu[PK!@| NN-ˊcommand/__pycache__/bdist_dumb.cpython-33.pycnu[PK!0hh,Mcommand/__pycache__/bdist_msi.cpython-33.pycnu[PK!wq-Icommand/__pycache__/build_clib.cpython-33.pyonu[PK!Zh2gcommand/__pycache__/install_scripts.cpython-33.pyonu[PK!ĶZZ,Wvcommand/__pycache__/build_ext.cpython-33.pyonu[PK!J//0iыcommand/__pycache__/bdist_wininst.cpython-33.pyonu[PK!XZOZO,command/__pycache__/bdist_rpm.cpython-33.pycnu[PK!e13pQcommand/__pycache__/install_egg_info.cpython-33.pycnu[PK!&?  2xccommand/__pycache__/install_headers.cpython-33.pyonu[PK!ĶZZ,ncommand/__pycache__/build_ext.cpython-33.pycnu[PK!M? ? .Ɍcommand/__pycache__/install_lib.cpython-33.pyonu[PK!$