-í
čś<c       s  d  Z  d k Z d k Z d k Z d k Z y d k Z Wn e j
 o e Z n Xd d d d d d d d	 g Z d e	 f d
     YZ
 e
 Z d Z d Z d Z d Z d Z d Z d Z d Z d Z d Z d Z d Z d Z d Z d Z d Z d Z d Z d Z d Z d Z  d Z! d Z" d  Z# d! Z$ d" Z% d# Z& d Z' d Z( d Z) d Z* d Z+ d Z, d Z- d Z. d Z/ d Z0 d Z1 d Z2 d k3 Z3 e3 i4 f Z5 e6 e3 d$  o e5 e3 i7 f Z5 n d%   Z8 d f  d&     YZ9 e i: d' j o d(   Z; n
 d)   Z; d f  d*     YZ< d	 e< f d+     YZ= d S(,   s   Read and write ZIP files.Ns
   BadZipfiles   errors
   ZIP_STOREDs   ZIP_DEFLATEDs
   is_zipfiles   ZipInfos   ZipFiles	   PyZipFilec      s   t  Z RS(   N(   s   __name__s
   __module__(    (    (    s   /usr/lib/python2.2/zipfile.pys
   BadZipfile s   i    i   s   <4s4H2lHs   PKs   <4s4B4H3l5H2ls   PKs   <4s2B4H3l2Hs   PKi   i   i   i   i   i   i   i	   i
   i   i   i   i   i   i   i   i   s   UnicodeTypec    s   yf t  |  d  } | i d d  | i   } | i   | d d !d j o | d d j o d	 Sn Wn t j
 o n Xd
 S(   s   Quickly see if file is a ZIP file by checking the magic number.

    Will not accept a ZIP archive with an ending comment.
    s   rbię˙˙˙i   i    i   s   PKiţ˙˙˙s     i   N(   s   opens   filenames   fpins   seeks   reads   endrecs   closes   IOError(   s   filenames   fpins   endrec(    (    s   /usr/lib/python2.2/zipfile.pys
   is_zipfileK s     
%c      s8   t  Z d  Z d d d d d d d f d  Z d   Z RS(   s>   Class with attributes describing each file in the ZIP archive.s   NoNameiź  i   i    c    s   t  |  |  _ | |  _ t |  _ d |  _ d |  _ d |  _ d |  _	 d |  _
 d |  _ d |  _ d |  _ d |  _ d |  _ d  S(   Ns    i    i   (   s	   _normpaths   filenames   selfs	   date_times
   ZIP_STOREDs   compress_types   comments   extras   create_systems   create_versions   extract_versions   reserveds	   flag_bitss   volumes   internal_attrs   external_attr(   s   selfs   filenames	   date_time(    (    s   /usr/lib/python2.2/zipfile.pys   __init__^ s    											c    s÷   |  i } | d d d >| d d >B| d B} | d d >| d	 d >B| d d B} |  i d
 @o d } } } n |  i } |  i } |  i } t	 i
 t t |  i |  i |  i |  i | | | | | t |  i  t |  i   } | |  i |  i Sd S(   s'   Return the per-file header as a string.i    iź  i	   i   i   i   i   i   i   i   N(   s   selfs	   date_times   dts   dosdates   dostimes	   flag_bitss   CRCs   compress_sizes	   file_sizes   structs   packs   structFileHeaders   stringFileHeaders   extract_versions   reserveds   compress_types   lens   filenames   extras   header(   s   selfs   headers   CRCs   compress_sizes	   file_sizes   dosdates   dts   dostime(    (    s   /usr/lib/python2.2/zipfile.pys
   FileHeadert s     	&&			(   s   __name__s
   __module__s   __doc__s   __init__s
   FileHeader(    (    (    s   /usr/lib/python2.2/zipfile.pys   ZipInfo[ s    !s   /c    s   |  i t i d  Sd  S(   Ns   /(   s   paths   replaces   oss   sep(   s   path(    (    s   /usr/lib/python2.2/zipfile.pys	   _normpath s    c    s   |  Sd  S(   N(   s   path(   s   path(    (    s   /usr/lib/python2.2/zipfile.pys	   _normpath s    c      s   t  Z d  Z e Z d e d  Z d   Z d   Z d   Z	 d   Z
 d   Z d   Z d	   Z d
   Z d   Z e e d  Z d   Z d   Z d   Z RS(   s   Class with methods to open, read, write, close, list zip files.

    z = ZipFile(file, mode="r", compression=ZIP_STORED)

    file: Either the path to the file, or a file-like object.
          If it is a path, the file will be opened and closed by ZipFile.
    mode: The mode can be either read "r", write "w" or append "a".
    compression: ZIP_STORED (no compression) or ZIP_DEFLATED (requires zlib).
    s   rc    sć  | t j o n0 | t j o t o t d  n n
 t d  d |  _ h  |  _ g  |  _ | |  _  | d |  _	 } t |  t j oM d |  _ | |  _ h  d d <d d <d d	 <} t | | |  |  _ n( d
 |  _ | |  _ t | d t  |  _ | d j o |  i   nĚ | d j o nť | d	 j o |  i } | i d d  | i   } | d d !t j o | d d j o! |  i   | i |  i d  n | i d d  n/ |  i o |  i i   t |  _ n t d  d S(   s>   Open the ZIP file with mode read "r", write "w" or append "a".s.   Compression requires the (missing) zlib modules(   That compression method is not supportedi    s   rbs   rs   wbs   ws   r+bs   ai   s   nameię˙˙˙i   i   iţ˙˙˙s     s   Mode must be "r", "w" or "a"N(   s   compressions
   ZIP_STOREDs   ZIP_DEFLATEDs   zlibs   RuntimeErrors   selfs   debugs
   NameToInfos   filelists   modes   keys   types   files   _STRING_TYPESs   _filePasseds   filenames   modeDicts   opens   fps   getattrs   Nones   _GetContentss   seeks   reads   endrecs   stringEndArchives	   start_dirs   close(   s   selfs   files   modes   compressions   fps   modeDicts   endrecs   key(    (    s   /usr/lib/python2.2/zipfile.pys   __init__  sH     							!			%
c    sP   y |  i   Wn; t j
 o/ |  i o |  i i   t |  _ n   n Xd S(   sO   Read the directory, making sure we close the file if the format
        is bad.N(   s   selfs   _RealGetContentss
   BadZipfiles   _filePasseds   fps   closes   None(   s   self(    (    s   /usr/lib/python2.2/zipfile.pys   _GetContentsĐ s     c    s˛  |  i } | i d d  | i   d } | i d  } | d d !t j p | d d j o t d  n t	 i
 t |  } |  i d	 j o	 | GHn | d
 } | d } | d | } | | } |  i d j o d G| G| G| GHn | | |  _ | i |  i d  d }
 xŮ|
 | j  oË| i d  } |
 d }
 | d d !t j o t d  n t	 i
 t |  } |  i d j o	 | GHn | i | t  } t |  } | i | t  | _ | i | t  | _ |
 | t | t | t }
 | t | | _ | d	 d !\ | _ | _  | _! | _" | _# | _$ } } | _' | _( | _) | d d !\ | _* | _+ | _, | d ?d | d
 ?d @| d @| d ?| d
 ?d @| d @d f | _- |  i. i/ |  | |  i0 | i <|  i d j o d G|
 GHn qWxĂ |  i. D]¸ }	 | i |	 i d  | i d  } | d d !t3 j o t d  n t	 i
 t4 |  } |	 i d | t5 | t6 |	 _7 | i | t5  } | |	 i j o t9 d |	 i | f  n qňWd S(   s/   Read in the table of contents for the ZIP file.ię˙˙˙i   i   i    i   iţ˙˙˙s     s.   File is not a zip file, or ends with a commenti   i   i   s   given, inferred, offseti.   s&   Bad magic number for central directoryi   i   i   i	   iź  i   i   i?   s   totali   s    Bad magic number for file headers3   File name in directory "%s" and header "%s" differ.N(:   s   selfs   fps   seeks   tells   filesizes   reads   endrecs   stringEndArchives
   BadZipfiles   structs   unpacks   structEndArchives   debugs   size_cds	   offset_cds   xs   concats	   start_dirs   totals   centdirs   stringCentralDirs   structCentralDirs   _CD_FILENAME_LENGTHs   filenames   ZipInfos   _CD_EXTRA_FIELD_LENGTHs   extras   _CD_COMMENT_LENGTHs   comments   _CD_LOCAL_HEADER_OFFSETs   header_offsets   create_versions   create_systems   extract_versions   reserveds	   flag_bitss   compress_types   ts   ds   CRCs   compress_sizes	   file_sizes   volumes   internal_attrs   external_attrs	   date_times   filelists   appends
   NameToInfos   datas   fheaders   stringFileHeaders   structFileHeaders   _FH_FILENAME_LENGTHs   _FH_EXTRA_FIELD_LENGTHs   file_offsets   fnames   RuntimeError(   s   selfs   fps   centdirs   fnames   concats   fheaders   ds	   offset_cds   filenames   datas   totals   filesizes   ts   size_cds   xs   endrec(    (    s   /usr/lib/python2.2/zipfile.pys   _RealGetContentsŰ sh     	%	


 
	IC
  c    s2   g  } x! |  i D] } | i | i  q W| Sd S(   s+   Return a list of file names in the archive.N(   s   ls   selfs   filelists   datas   appends   filename(   s   selfs   datas   l(    (    s   /usr/lib/python2.2/zipfile.pys   namelist!s     
 c    s   |  i Sd S(   sJ   Return a list of class ZipInfo instances for files in the
        archive.N(   s   selfs   filelist(   s   self(    (    s   /usr/lib/python2.2/zipfile.pys   infolist(s     c    sO   d d d d f GHx6 |  i D]+ } d | i } d | i | | i f GHq Wd S(   s+   Print a table of contents for the zip file.s   %-46s %19s %12ss	   File Names   Modified    s   Sizes   %d-%02d-%02d %02d:%02d:%02ds   %-46s %s %12dN(   s   selfs   filelists   zinfos	   date_times   dates   filenames	   file_size(   s   selfs   dates   zinfo(    (    s   /usr/lib/python2.2/zipfile.pys   printdir-s     
 c    s=   x6 |  i D]+ } y |  i | i  Wn | i Sn Xq
 Wd S(   s%   Read all the files and check the CRC.N(   s   selfs   filelists   zinfos   reads   filename(   s   selfs   zinfo(    (    s   /usr/lib/python2.2/zipfile.pys   testzip4s     
 c    s   |  i | Sd S(   s,   Return the instance of ZipInfo given 'name'.N(   s   selfs
   NameToInfos   name(   s   selfs   name(    (    s   /usr/lib/python2.2/zipfile.pys   getinfo<s     c    sn  |  i d d f j o t d  n |  i o t d  n |  i |  } |  i i   } |  i i	 | i
 d  |  i i | i  } |  i i	 | d  | i t j o n | i t j oe t o t d  n t i d  } | i |  } | i d  | i   } | o | | } n n t d	 | i | f  t i |  } | | i j o t d
 |  n | Sd S(   s)   Return file bytes (as a string) for name.s   rs   as   read() requires mode "r" or "a"s3   Attempt to read ZIP archive that was already closedi    s1   De-compression requires the (missing) zlib moduleiń˙˙˙s   Zs-   Unsupported compression method %d for file %ss   Bad CRC-32 for file %sN(   s   selfs   modes   RuntimeErrors   fps   getinfos   names   zinfos   tells   fileposs   seeks   file_offsets   reads   compress_sizes   bytess   compress_types
   ZIP_STOREDs   ZIP_DEFLATEDs   zlibs   decompressobjs   dcs
   decompresss   flushs   exs
   BadZipfiles   binasciis   crc32s   crcs   CRC(   s   selfs   names   fileposs   bytess   dcs   crcs   exs   zinfo(    (    s   /usr/lib/python2.2/zipfile.pys   read@s2     c    sť   |  i i | i  o |  i o d G| i GHn n |  i d d f j o t d  n |  i o t d  n | i	 t
 j o t o t d  n | i	 t t
 f j o t d  n d S(	   s6   Check for errors before writing a file to the archive.s   Duplicate name:s   ws   as    write() requires mode "w" or "a"s4   Attempt to write ZIP archive that was already closeds.   Compression requires the (missing) zlib modules(   That compression method is not supportedN(   s   selfs
   NameToInfos   has_keys   zinfos   filenames   debugs   modes   RuntimeErrors   fps   compress_types   ZIP_DEFLATEDs   zlibs
   ZIP_STORED(   s   selfs   zinfo(    (    s   /usr/lib/python2.2/zipfile.pys   _writecheckbs     
c    sË  t  i |  } t i | d  } | d d !}
 | t	 j o t
 | |
  }	 n t
 | |
  }	 | d d >|	 _ | t	 j o |  i |	 _ n
 | |	 _ |  i |	  t | d  } d |	 _ |  i i   |	 _ d |	 _ } d |	 _ } d |	 _ } |  i i |	 i    |  i i   |	 _ |	 i t j o t i t i t i  d  } n t	 } x d o | i" d d  } | o Pn | t$ |  } t% i& | |  } | o# | i' |  } | t$ |  } n |  i i |  qSW| i(   | o9 | i)   } | t$ |  } |  i i |  | |	 _ n
 | |	 _ | |	 _ | |	 _ |  i i   } |  i i+ |	 i d	 d  |  i i t, i- d
 |	 i |	 i |	 i   |  i i+ | d  |  i. i/ |	  |	 |  i0 |	 i <d S(   sL   Put the bytes from filename into the archive under the name
        arcname.i   i    i   i   s   rbiń˙˙˙i   i   i   s   <lllN(1   s   oss   stats   filenames   sts   times	   localtimes   mtimes	   date_times   arcnames   Nones   ZipInfos   zinfos   external_attrs   compress_types   selfs   compressions   _writechecks   opens   fps	   flag_bitss   tells   header_offsets   CRCs   compress_sizes	   file_sizes   writes
   FileHeaders   file_offsets   ZIP_DEFLATEDs   zlibs   compressobjs   Z_DEFAULT_COMPRESSIONs   DEFLATEDs   cmprs   reads   bufs   lens   binasciis   crc32s   compresss   closes   flushs   positions   seeks   structs   packs   filelists   appends
   NameToInfo(   s   selfs   filenames   arcnames   compress_types   fps   mtimes   cmprs   CRCs	   file_sizes   zinfos	   date_times   bufs   sts   compress_sizes   position(    (    s   /usr/lib/python2.2/zipfile.pys   writessf     		 
			c    s<  |  i |  t |  | _ t i |  | _ | i	 t
 j oG t i t i t i d  } | i |  | i   } t |  | _ n | i | _ |  i i   | _ |  i i | i    |  i i   | _ |  i i |  | i d @o/ |  i i t i d | i | i | i   n |  i i |  | |  i | i <d S(   sK   Write a file into the archive.  The contents is the string
        'bytes'.iń˙˙˙i   s   <lllN(    s   selfs   _writechecks   zinfos   lens   bytess	   file_sizes   binasciis   crc32s   CRCs   compress_types   ZIP_DEFLATEDs   zlibs   compressobjs   Z_DEFAULT_COMPRESSIONs   DEFLATEDs   cos   compresss   flushs   compress_sizes   fps   tells   header_offsets   writes
   FileHeaders   file_offsets	   flag_bitss   structs   packs   filelists   appends
   NameToInfos   filename(   s   selfs   zinfos   bytess   co(    (    s   /usr/lib/python2.2/zipfile.pys   writestrŻs&     c    s   |  i   d S(   s2   Call the "close()" method in case the user forgot.N(   s   selfs   close(   s   self(    (    s   /usr/lib/python2.2/zipfile.pys   __del__Çs     c 
   s
  |  i t j o d Sn |  i d d f j ołd } |  i i   }	 x@|  i D]5} | d } | i	 } | d d d >| d d >B| d	 B} | d
 d >| d d >B| d d	 B} t i t t | i | i | i | i | i | i | | | i | i | i t | i  t | i  t | i  d | i | i | i   } |  i i" |  |  i i" | i  |  i i" | i  |  i i" | i  qM W|  i i   } t i t$ t% d d | | | |	 |	 d 	 } |  i i" |  |  i i'   n |  i( o |  i i)   n t |  _ d S(   sJ   Close the file, and for mode "w" and "a" write the ending
        records.Ns   ws   ai    i   iź  i	   i   i   i   i   i   (*   s   selfs   fps   Nones   modes   counts   tells   pos1s   filelists   zinfos	   date_times   dts   dosdates   dostimes   structs   packs   structCentralDirs   stringCentralDirs   create_versions   create_systems   extract_versions   reserveds	   flag_bitss   compress_types   CRCs   compress_sizes	   file_sizes   lens   filenames   extras   comments   internal_attrs   external_attrs   header_offsets   centdirs   writes   pos2s   structEndArchives   stringEndArchives   endrecs   flushs   _filePasseds   close(
   s   selfs   counts   centdirs   dostimes   endrecs   dosdates   dts   zinfos   pos2s   pos1(    (    s   /usr/lib/python2.2/zipfile.pys   closeËs@     
 
	&&		$(   s   __name__s
   __module__s   __doc__s   Nones   fps
   ZIP_STOREDs   __init__s   _GetContentss   _RealGetContentss   namelists   infolists   printdirs   testzips   getinfos   reads   _writechecks   writes   writestrs   __del__s   close(    (    (    s   /usr/lib/python2.2/zipfile.pys   ZipFile s    	 0		F						"	<		c      s#   t  Z d  Z d d  Z d   Z RS(   sD   Class to create ZIP archives with Python library files and packages.s    c    sü  t  i i |  \ } } t  i i |  oit  i i | d  } t  i i	 |  o| o d | | f } n | } |  i o d G| Gd G| GHn |  i | d d !|  \ }
 }	 |  i o d G|	 GHn |  i |
 |	  t  i |  } | i d  xß | D]× } t  i i | |  } t  i i |  \ } } t  i i |  o: t  i i	 t  i i | d   o |  i | |  n nX | d j oJ |  i | d d !|  \ }
 }	 |  i o d G|	 GHn |  i |
 |	  n qü Wnś |  i o d	 G| GHn x t  i |  D] } t  i i | |  } t  i i |  \ } } | d j oJ |  i | d d !|  \ }
 }	 |  i o d G|	 GHn |  i |
 |	  n qWne | d d j o t d
  n |  i | d d !|  \ }
 }	 |  i o d G|	 GHn |  i |
 |	  d S(   s,  Add all files from "pathname" to the ZIP archive.

        If pathname is a package directory, search the directory and
        all package subdirectories recursively for all *.py and enter
        the modules into the archive.  If pathname is a plain
        directory, listdir *.py and enter all modules.  Else, pathname
        must be a Python *.py file and the module will be put into the
        archive.  Added modules are always module.pyo or module.pyc.
        This method will compile the module.py into module.pyc if
        necessary.
        s   __init__.pys   %s/%ss   Adding package ins   asi    iý˙˙˙s   Addings   .pys   Adding files from directorys.   Files added with writepy() must end with ".py"s   Adding fileN(   s   oss   paths   splits   pathnames   dirs   names   isdirs   joins   initnames   isfiles   basenames   selfs   debugs   _get_codenames   fnames   arcnames   writes   listdirs   dirlists   removes   filenames   splitexts   roots   exts   writepys   RuntimeError(   s   selfs   pathnames   basenames   dirlists   names   roots   initnames   filenames   exts   arcnames   fnames   paths   dir(    (    s   /usr/lib/python2.2/zipfile.pys   writepyňs^     

 "

 

c 	   s  | d } | d } | d } t i i |  o$ t i |  d t i |  d j o
 | } n| t i i |  p$ t i |  d t i |  d j  o: d k	 } |  i o d G| GHn | i | |  | } n | } t i i |  d } | o d | | f } n | | f Sd S(	   s   Return (filename, archivename) for the path.

        Given a module name path, return the correct file path and
        archive name, compiling if necessary.  For example, given
        /python/lib/string, return (/python/lib/string.pyc, string).
        s   .pys   .pycs   .pyoi   Ns	   Compilingi   s   %s/%s(   s   pathnames   file_pys   file_pycs   file_pyos   oss   paths   isfiles   stats   fnames
   py_compiles   selfs   debugs   compiles   splits   archivenames   basename(	   s   selfs   pathnames   basenames   file_pycs   fnames
   py_compiles   file_pys   archivenames   file_pyo(    (    s   /usr/lib/python2.2/zipfile.pys   _get_codename3s"     


:
;	

(   s   __name__s
   __module__s   __doc__s   writepys   _get_codename(    (    (    s   /usr/lib/python2.2/zipfile.pys	   PyZipFileďs    A(>   s   __doc__s   structs   oss   times   binasciis   zlibs   ImportErrors   Nones   __all__s	   Exceptions
   BadZipfiles   errors
   ZIP_STOREDs   ZIP_DEFLATEDs   structEndArchives   stringEndArchives   structCentralDirs   stringCentralDirs   structFileHeaders   stringFileHeaders   _CD_SIGNATUREs   _CD_CREATE_VERSIONs   _CD_CREATE_SYSTEMs   _CD_EXTRACT_VERSIONs   _CD_EXTRACT_SYSTEMs   _CD_FLAG_BITSs   _CD_COMPRESS_TYPEs   _CD_TIMEs   _CD_DATEs   _CD_CRCs   _CD_COMPRESSED_SIZEs   _CD_UNCOMPRESSED_SIZEs   _CD_FILENAME_LENGTHs   _CD_EXTRA_FIELD_LENGTHs   _CD_COMMENT_LENGTHs   _CD_DISK_NUMBER_STARTs   _CD_INTERNAL_FILE_ATTRIBUTESs   _CD_EXTERNAL_FILE_ATTRIBUTESs   _CD_LOCAL_HEADER_OFFSETs   _FH_SIGNATUREs   _FH_EXTRACT_VERSIONs   _FH_EXTRACT_SYSTEMs   _FH_GENERAL_PURPOSE_FLAG_BITSs   _FH_COMPRESSION_METHODs   _FH_LAST_MOD_TIMEs   _FH_LAST_MOD_DATEs   _FH_CRCs   _FH_COMPRESSED_SIZEs   _FH_UNCOMPRESSED_SIZEs   _FH_FILENAME_LENGTHs   _FH_EXTRA_FIELD_LENGTHs   typess
   StringTypes   _STRING_TYPESs   hasattrs   UnicodeTypes
   is_zipfiles   ZipInfos   seps	   _normpaths   ZipFiles	   PyZipFile(6   s   structFileHeaders   _FH_UNCOMPRESSED_SIZEs   _FH_EXTRA_FIELD_LENGTHs   ZipFiles   _FH_COMPRESSION_METHODs
   is_zipfiles   stringFileHeaders   ZIP_DEFLATEDs   _CD_COMMENT_LENGTHs   _CD_CRCs   _FH_FILENAME_LENGTHs   binasciis	   PyZipFiles   structEndArchives   __all__s	   _normpaths   _STRING_TYPESs   _CD_SIGNATUREs   _CD_COMPRESS_TYPEs   _FH_GENERAL_PURPOSE_FLAG_BITSs   _CD_EXTRA_FIELD_LENGTHs   _FH_LAST_MOD_DATEs   _FH_CRCs   times   structs
   ZIP_STOREDs   _CD_DATEs   stringEndArchives   _CD_EXTERNAL_FILE_ATTRIBUTESs   structCentralDirs   _FH_LAST_MOD_TIMEs   typess   _FH_SIGNATUREs   _CD_INTERNAL_FILE_ATTRIBUTESs   _CD_CREATE_SYSTEMs   _CD_FILENAME_LENGTHs   _CD_EXTRACT_SYSTEMs   zlibs   _CD_TIMEs   _CD_CREATE_VERSIONs   stringCentralDirs   _CD_COMPRESSED_SIZEs   _FH_COMPRESSED_SIZEs   _CD_LOCAL_HEADER_OFFSETs   ZipInfos
   BadZipfiles   errors   _CD_UNCOMPRESSED_SIZEs   _FH_EXTRACT_VERSIONs   _CD_FLAG_BITSs   oss   _CD_DISK_NUMBER_STARTs   _CD_EXTRACT_VERSIONs   _FH_EXTRACT_SYSTEM(    (    s   /usr/lib/python2.2/zipfile.pys   ? sx   			0	˙ ]