fxc$@sdZddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl Z yddl Z e j Z Wn!e k reZ e j Z YnXyddlZWne k reZYnXyddlZWne k reZYnXddddddd d d d d dg ZGdddeZGdddeZeZZdd>dZdd>Zdd>dZdZdZdZdZdZdZdZ dZ!dZ"dZ#dZ$e j%e#Z&dZ'dZ(dZ)dZ*dZ+d Z,d!Z-d"Z.dZ/d#Z0d$Z1d%Z2e j%e1Z3dZ4dZ5dZ6dZ7dZ8d Z9d!Z:d"Z;dZ<d#Z=d&Z>d'Z?dZ@d(ZAdZBd)ZCdZDd*ZEd+ZFd,ZGd-ZHe j%eGZIdZJdZKdZLdZMdZNd ZOd!ZPd"ZQdZRd#ZSd&ZTd'ZUd.ZVd/ZWe j%eVZXd0ZYd1ZZe j%eYZ[dZ\dZ]dZ^dZ_dZ`d Zad!Zbd"ZcdZdd#Zed2d3Zfd4d Zgd5d6Zhd7d8ZiGd9d d ejZkGd:d;d;ZlGd<d=d=ZmGd>d?d?Znid@d6dAd6dBd6dBd6dBd6dBd 6dCd!6dDd"6dEd6dFd#6dCd&6dGd6dHd6dId+6dJdK6dLdM6dNdO6ZodPdQZpdRdSZqdTdUZrGdVdWdWejsZtGdXd d ZuGdYd d euZvedZd[Zwexd\kr ewndS(]uP Read and write ZIP files. XXX references to utf-8 need further investigation. iNu BadZipFileu BadZipfileuerroru ZIP_STOREDu ZIP_DEFLATEDu ZIP_BZIP2uZIP_LZMAu is_zipfileuZipInfouZipFileu PyZipFileu LargeZipFilecBs|EeZdZdS(u BadZipFileN(u__name__u __module__u __qualname__(u __locals__((u,/opt/alt/python33/lib64/python3.3/zipfile.pyu BadZipFile'scBs|EeZdZdZdS(u LargeZipFileuu Raised when writing a zipfile, the zipfile requires ZIP64 extensions and those extensions are disabled. N(u__name__u __module__u __qualname__u__doc__(u __locals__((u,/opt/alt/python33/lib64/python3.3/zipfile.pyu LargeZipFile+siiiii iii-i.i?s<4s4H2LHsPKiiiiiii u<4s4B4HL2L5H2LsPKi i i iiiu <4s2B4HL2L2HsPKu<4sLQLsPKu <4sQ2H2L4QsPKc Cs-yt|rdSWntk r(YnXdS(NTF(u _EndRecDatauTrueuIOErroruFalse(ufp((u,/opt/alt/python33/lib64/python3.3/zipfile.pyu_check_zipfiles   u_check_zipfilecCshd}yIt|dr*td|}n$t|d}t|}WdQXWntk rcYnX|S(uQuickly see if a file is a ZIP file by checking the magic number. The filename argument may be a file or file-like object too. ureadufpurbNF(uFalseuhasattru_check_zipfileuopenuIOError(ufilenameuresultufp((u,/opt/alt/python33/lib64/python3.3/zipfile.pyu is_zipfiles cCsry|j|tdWntk r0|SYnX|jt}t|tkrV|Stjt|\}}}}|tkr|S|dks|dkrt dn|j|tt d|jt }t|t kr|Stjt |\ }}} } } } } }}}|t kr(|S||t <| |t<| |t<| |t<||t<||t<||t<|S(uM Read the ZIP64 end-of-archive records and use that to update endrec iiiu3zipfiles that span multiple disks are not supported(useekusizeEndCentDir64LocatoruIOErrorureadulenustructuunpackustructEndArchive64LocatorustringEndArchive64Locatoru BadZipFileusizeEndCentDir64ustructEndArchive64ustringEndArchive64u_ECD_SIGNATUREu_ECD_DISK_NUMBERu_ECD_DISK_STARTu_ECD_ENTRIES_THIS_DISKu_ECD_ENTRIES_TOTALu _ECD_SIZEu _ECD_OFFSET(ufpinuoffsetuendrecudatausigudisknoureloffudisksuszucreate_versionu read_versionudisk_numudisk_dirudircountu dircount2udirsizeu diroffset((u,/opt/alt/python33/lib64/python3.3/zipfile.pyu _EndRecData64s6   0        u _EndRecData64c Cs|jdd|j}y|jt dWntk rIdSYnX|j}t|tkr|ddtkr|d ddkrtj t |}t |}|j d|j |tt |t |St|d td}|j|d|j}|jt}|dkr|||t}t|tkrYdSt tj t |}|t}||t|t|}|j ||j ||t |||||SdS( uReturn data from the "End of Central Directory" record, or None. The data is a list of the nine items in the ZIP "End of central dir" record followed by a tenth item, the file seek offset of this record.iiiNssiiii(useekutellusizeEndCentDiruIOErroruNoneureadulenustringEndArchiveustructuunpackustructEndArchiveulistuappendu _EndRecData64umaxurfindu_ECD_COMMENT_SIZE( ufpinufilesizeudatauendrecumaxCommentStartustarturecDatau commentSizeucomment((u,/opt/alt/python33/lib64/python3.3/zipfile.pyu _EndRecDatas>          u _EndRecDatacBsY|EeZdZdZd"Zdd#ddZd!ddZddZdd Z d!S($uZipInfou>Class with attributes describing each file in the ZIP archive.u orig_filenameufilenameu date_timeu compress_typeucommentuextrau create_systemucreate_versionuextract_versionureservedu flag_bitsuvolumeu internal_attru external_attru header_offsetuCRCu compress_sizeu file_sizeu _raw_timeuNoNameiiicCs&||_|jtd}|dkr=|d|}ntjdkrstj|krs|jtjd}n||_||_|ddkrtdnt |_ d|_ d|_ t jdkrd|_n d|_t|_t|_d|_d|_d|_d|_d|_dS(Niu/iu+ZIP does not support timestamps before 1980suwin32i(u orig_filenameufinduchruosusepureplaceufilenameu date_timeu ValueErroru ZIP_STOREDu compress_typeucommentuextrausysuplatformu create_systemuDEFAULT_VERSIONucreate_versionuextract_versionureservedu flag_bitsuvolumeu internal_attru external_attr(uselfufilenameu date_timeu null_byte((u,/opt/alt/python33/lib64/python3.3/zipfile.pyu__init__<s.               uZipInfo.__init__cCs|j}|ddd>|dd>B|dB}|dd>|d d>B|ddB}|jd @rsd}}}n|j}|j}|j}|j}d} |dkr|tkp|tk}n|rd } |tj | dtj | d ||}n|tks|tkrA|s,t d nd }d }t } n|j tkrbtt| } n!|j tkrtt| } nt| |j|_t| |j|_|j\} } tj tt|j|j| |j |||||t| t| } | | |S(u'Return the per-file header as a string.iii iiiii iiu|||_|d7}n|jdkrs|j}|||_|d7}qsn||dd}qWdS(Nu[^\r\n]+)|(?P\n|\r\n?)cCs||_||_||_|j|_|j|_|j|_t |j|_ d|_ d|_ d|_d|k|_d|_|jdk r|jd8_n||_|j|_t|dr|j|_tdd@|_n d|_dS(NsiuUi uCRClF(u_fileobju _decrypteru_close_fileobju compress_typeu_compress_typeu compress_sizeu_compress_leftu file_sizeu_leftu_get_decompressoru _decompressoruFalseu_eofu _readbufferu_offsetu _universaluNoneunewlinesumodeufilenameunameuhasattruCRCu _expected_crcucrc32u _running_crc(uselfufileobjumodeuzipinfou decrypteru close_fileobj((u,/opt/alt/python33/lib64/python3.3/zipfile.pyu__init__s(             uZipExtFile.__init__cCs|j rd|dkrd|jjd|jd}|dkrd|j|j|}||_|Sn|jstjj||Sd}x|dkst||kr|jd}|dkr|S|j j |}|j d}|dk rM|j dkrg|_ n||j kr0|j j|n|jt|7_|dS|j d}|dkr|d|t|}n|jt|7_||7}qW|S( urRead and return a line from the stream. If limit is specified, at most limit bytes will be read. is isiunewlineuchunkN(u _universalu _readbufferufindu_offsetuiouBufferedIOBaseureadlineulenupeekuPATTERNusearchugroupuNoneunewlinesuappend(uselfulimituiulineu readaheadumatchunewlineuchunk((u,/opt/alt/python33/lib64/python3.3/zipfile.pyureadlines8   !     uZipExtFile.readlinecCs|t|j|jkr|j|}t||jkri||j|jd|_d|_q|jt|8_n|j|j|jdS(u6Returns buffered bytes without advancing the position.Nii(ulenu _readbufferu_offseturead(uselfunuchunk((u,/opt/alt/python33/lib64/python3.3/zipfile.pyupeeks uZipExtFile.peekcCsdS(NT(uTrue(uself((u,/opt/alt/python33/lib64/python3.3/zipfile.pyureadablesuZipExtFile.readablecCsp|dks|dkrj|j|jd}d|_d|_x#|jse||j|j7}qCW|S||j}|t|jkr|j|j|}||_|S|t|j}|j|jd}d|_d|_x|dkrk|j rk|j|}|t|krN||_||_||d|7}Pn||7}|t|8}qW|S(uRead and return up to n bytes. If the argument is omitted, None, or negative, data is read and returned until EOF is reached.. iNs(uNoneu _readbufferu_offsetu_eofu_read1uMAX_Nulen(uselfunubufuendudata((u,/opt/alt/python33/lib64/python3.3/zipfile.pyureads4          uZipExtFile.readcCsa|jdkrdSt||jd@|_|jr]|j|jkr]td|jndS(NluBad CRC-32 for file %r(u _expected_crcuNoneucrc32u _running_crcu_eofu BadZipFileuname(uselfunewdata((u,/opt/alt/python33/lib64/python3.3/zipfile.pyu _update_crcs uZipExtFile._update_crccCs||dks|dkrz|j|jd}d|_d|_x3|jsu|j|j}|rC||7}PqCqCW|S||j}|t|jkr|j|j|}||_|S|t|j}|j|jd}d|_d|_|dkrxxo|jst|j|}|t|kr]||_||_||d|7}Pn|r ||7}Pq q Wn|S(u7Read up to n bytes with at most one read() system call.iNs(uNoneu _readbufferu_offsetu_eofu_read1uMAX_Nulen(uselfunubufudatauend((u,/opt/alt/python33/lib64/python3.3/zipfile.pyuread1 s>              uZipExtFile.read1cCs|js|dkrdS|jtkri|jj}|t|krx||j|t|7}qxn|j|}|jtkr|jdk|_n|jtkrt ||j }|jj ||}|jj p|jdko|jj |_|jrO||jj 7}qOn0|jj |}|jj pI|jdk|_|d|j}|jt|8_|jdkrd|_n|j||S(NisT(u_eofu_compress_typeu ZIP_DEFLATEDu _decompressoruunconsumed_tailulenu_read2u ZIP_STOREDu_compress_leftumaxu MIN_READ_SIZEu decompressueofuflushu_leftuTrueu _update_crc(uselfunudata((u,/opt/alt/python33/lib64/python3.3/zipfile.pyu_read12s2 #    uZipExtFile._read1cCs|jdkrdSt||j}t||j}|jj|}|jt|8_|smtn|jdk rt t |j|}n|S(Nis( u_compress_leftumaxu MIN_READ_SIZEuminu_fileobjureadulenuEOFErroru _decrypteruNoneubytesumap(uselfunudata((u,/opt/alt/python33/lib64/python3.3/zipfile.pyu_read2Vs uZipExtFile._read2c s2z|jr|jjnWdtjXdS(N(u_close_fileobju_fileobjucloseusuper(uself(u __class__(u,/opt/alt/python33/lib64/python3.3/zipfile.pyuclosefs uZipExtFile.closeii@NFii(u__name__u __module__u __qualname__u__doc__uMAX_Nu MIN_READ_SIZEureucompileuPATTERNuNoneuFalseu__init__ureadlineupeekureadableureadu _update_crcuread1u_read1u_read2uclose(u __locals__((u __class__u,/opt/alt/python33/lib64/python3.3/zipfile.pyu ZipExtFileqs 2 ! % $ u ZipExtFilecBs||EeZdZdZd0Zd0Zded1ddZ ddZ ddZ d d Z d d Z d dZd0ddZddZddZddZeddZejddZd0ddZdd0ddZd0d0ddZd0d0d0d d!Zed"d#Zd$d%Zd&d'Zd0d0d(d)Zd0d*d+Zd,d-Z d.d/Z!d0S(2uZipFileu Class with methods to open, read, write, close, list zip files. z = ZipFile(file, mode="r", compression=ZIP_STORED, allowZip64=False) 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), ZIP_DEFLATED (requires zlib), ZIP_BZIP2 (requires bz2) or ZIP_LZMA (requires lzma). allowZip64: if True ZipFile will create files with ZIP64 extensions when needed, otherwise it will raise an exception when this would be necessary. urcCs6|dkrtdnt|||_d|_d|_i|_g|_||_|j ddd|_ }d|_ d|_ t|tr0d|_||_id d6d d6d d6}ytj||||_WqWtk r,|dkr%d}}tj||||_nYqWXn'd |_||_t|d d|_y|dkrs|jn|dkrd|_np|dkry$|j|jj|jdWqtk r|jjddd|_YqXn tdWn3|j}d|_|js*|jnYnXdS(u>Open the ZIP file with mode read "r", write "w" or append "a".uruwuau(ZipFile() requires mode "r", "w", or "a"iubusurbuwbur+biunameiuMode must be "r", "w" or "a"N(uruwuaFT(u RuntimeErroru_check_compressionu _allowZip64uFalseu _didModifyudebugu NameToInfoufilelistu compressionureplaceumodeuNoneupwdu_commentu isinstanceustru _filePassedufilenameuiouopenufpuIOErrorugetattru_RealGetContentsuTrueuseeku start_diru BadZipFileuclose(uselfufileumodeu compressionu allowZip64ukeyumodeDictufp((u,/opt/alt/python33/lib64/python3.3/zipfile.pyu__init__sZ                             uZipFile.__init__cCs|S(N((uself((u,/opt/alt/python33/lib64/python3.3/zipfile.pyu __enter__suZipFile.__enter__cCs|jdS(N(uclose(uselfutypeuvalueu traceback((u,/opt/alt/python33/lib64/python3.3/zipfile.pyu__exit__suZipFile.__exit__cCs|j}yt|}Wntk r9tdYnX|sOtdn|jdkrkt|n|t}|t}|t|_ |t ||}|t t kr|t t8}n|jdkr||}td|||n|||_|j|jd|j|}tj|}d}xx||kr|jt} t| tkrqtdntjt| } | ttkrtdn|jdkrt| n|j| t} | d} | d @r| jd } n| jd } t| } |j| t| _|j| t | _!| t"| _#| dd \ | _$| _%| _&| _'| _(| _)} }| _*| _+| _,| j&t-krt.d | j&dn| dd\| _/| _0| _1| | _2|d?d|d?d@|d@| d?| d?d@| d@df| _3| j4| j#|| _#|j5j6| | |j7| j8<|t| t| t| t }|jdkr5td|q5q5WdS(u/Read in the table of contents for the ZIP file.uFile is not a zip fileiiugiven, inferred, offsetiuTruncated central directoryu&Bad magic number for central directoryiiuutf-8ucp437i uzip file version %.1fi iii iii i?utotalN(9ufpu _EndRecDatauIOErroru BadZipFileudebuguprintu _ECD_SIZEu _ECD_OFFSETu _ECD_COMMENTu_commentu _ECD_LOCATIONu_ECD_SIGNATUREustringEndArchive64usizeEndCentDir64usizeEndCentDir64Locatoru start_diruseekureaduiouBytesIOusizeCentralDirulenustructuunpackustructCentralDiru _CD_SIGNATUREustringCentralDiru_CD_FILENAME_LENGTHudecodeuZipInfou_CD_EXTRA_FIELD_LENGTHuextrau_CD_COMMENT_LENGTHucommentu_CD_LOCAL_HEADER_OFFSETu header_offsetucreate_versionu create_systemuextract_versionureservedu flag_bitsu compress_typeuCRCu compress_sizeu file_sizeuMAX_EXTRACT_VERSIONuNotImplementedErroruvolumeu internal_attru external_attru _raw_timeu date_timeu _decodeExtraufilelistuappendu NameToInfoufilename(uselfufpuendrecusize_cdu offset_cduconcatuinferredudatautotalucentdirufilenameuflagsuxutud((u,/opt/alt/python33/lib64/python3.3/zipfile.pyu_RealGetContentssp             L" & "uZipFile._RealGetContentscCsdd|jDS(u+Return a list of file names in the archive.cSsg|]}|jqS((ufilename(u.0udata((u,/opt/alt/python33/lib64/python3.3/zipfile.pyu s u$ZipFile.namelist..(ufilelist(uself((u,/opt/alt/python33/lib64/python3.3/zipfile.pyunamelistsuZipFile.namelistcCs|jS(uJReturn a list of class ZipInfo instances for files in the archive.(ufilelist(uself((u,/opt/alt/python33/lib64/python3.3/zipfile.pyuinfolistsuZipFile.infolistcCsftdd d|xK|jD]@}d|jdd}td |j||jfd|qWdS( u+Print a table of contents for the zip file.u%-46s %19s %12su File Nameu Modified uSizeufileu%d-%02d-%02d %02d:%02d:%02dNiu %-46s %s %12d(u File Nameu Modified uSize(uprintufilelistu date_timeufilenameu file_size(uselfufileuzinfoudate((u,/opt/alt/python33/lib64/python3.3/zipfile.pyuprintdirs  uZipFile.printdircCsrd}xe|jD]Z}y8|j|jd}x|j|rFq4WWdQXWqtk ri|jSYqXqWdS(u%Read all the files and check the CRC.iiurNi(ufilelistuopenufilenameureadu BadZipFile(uselfu chunk_sizeuzinfouf((u,/opt/alt/python33/lib64/python3.3/zipfile.pyutestzip(s uZipFile.testzipcCs5|jj|}|dkr1td|n|S(u,Return the instance of ZipInfo given 'name'.u(There is no item named %r in the archiveN(u NameToInfougetuNoneuKeyError(uselfunameuinfo((u,/opt/alt/python33/lib64/python3.3/zipfile.pyugetinfo5s  uZipFile.getinfocCsN|r/t|t r/tdt|n|rA||_n d|_dS(u)Set default password for encrypted files.upwd: expected bytes, got %sN(u isinstanceubytesu TypeErrorutypeupwduNone(uselfupwd((u,/opt/alt/python33/lib64/python3.3/zipfile.pyu setpassword>s  uZipFile.setpasswordcCs|jS(u.The comment text associated with the ZIP file.(u_comment(uself((u,/opt/alt/python33/lib64/python3.3/zipfile.pyucommentGsuZipFile.commentcCst|ts(tdt|nt|tkrpddl}|jdtdd|dt}n||_d|_ dS(Nucomment: expected bytes, got %siu3Archive comment is too long; truncating to %d bytesu stackleveliT( u isinstanceubytesu TypeErrorutypeulenuZIP_MAX_COMMENTuwarningsuwarnu_commentuTrueu _didModify(uselfucommentuwarnings((u,/opt/alt/python33/lib64/python3.3/zipfile.pyucommentLs   cCs,|j|d|}|jSWdQXdS(u)Return file bytes (as a string) for name.urN(uopenuread(uselfunameupwdufp((u,/opt/alt/python33/lib64/python3.3/zipfile.pyureadYsu ZipFile.readcCs|dkrtdn|rJt|t rJtdt|n|jsbtdn|jrw|j}ntj|j d}ySt|t r|}n|j |}|j |j d|jt}t|tkrtd ntjt|}|ttkr*td n|j|t}|tr[|j|tn|jd @rwtd n|jd @rtdn|jd@r|jd}n|jd}||jkrtd|j|fn|jd@} d} | r|s|j}n|s0td|nt|} |jd} t t!| | dd} |jd@r|j"d?d@} n|j#d?d@} | d| krtd|qnt$|||| d|j SWn!|js|j%nYnXdS(u#Return file-like object for 'name'.uruUurUu&open() requires mode "r", "U", or "rU"upwd: expected bytes, got %su3Attempt to read ZIP archive that was already closedurbiuTruncated file headeru Bad magic number for file headeri u$compressed patched data (flag bit 5)i@ustrong encryption (flag bit 6)iuutf-8ucp437u/File name in directory %r and header %r differ.iu6File %s is encrypted, password required for extractioni iiii uBad password for fileu close_fileobjN(uruUurU(&u RuntimeErroru isinstanceubytesu TypeErrorutypeufpu _filePasseduiouopenufilenameuZipInfougetinfouseeku header_offsetureadusizeFileHeaderulenu BadZipFileustructuunpackustructFileHeaderu _FH_SIGNATUREustringFileHeaderu_FH_FILENAME_LENGTHu_FH_EXTRA_FIELD_LENGTHu flag_bitsuNotImplementedErrorudecodeu orig_filenameuNoneupwdu _ZipDecrypterulistumapu _raw_timeuCRCu ZipExtFileuclose(uselfunameumodeupwduzef_fileuzinfoufheaderufnameu fname_stru is_encrypteduzduheaderuhu check_byte((u,/opt/alt/python33/lib64/python3.3/zipfile.pyuopen^sr                 u ZipFile.opencCsOt|ts!|j|}n|dkr<tj}n|j|||S(u#Extract a member from the archive to the current working directory, using its full name. Its file information is extracted as accurately as possible. `member' may be a filename or a ZipInfo object. You can specify a different directory using `path'. N(u isinstanceuZipInfougetinfouNoneuosugetcwdu_extract_member(uselfumemberupathupwd((u,/opt/alt/python33/lib64/python3.3/zipfile.pyuextracts  uZipFile.extractcCsC|dkr|j}nx!|D]}|j|||q"WdS(uExtract all members from the archive to the current working directory. `path' specifies a different directory to extract to. `members' is optional and must be a subset of the list returned by namelist(). N(uNoneunamelistuextract(uselfupathumembersupwduzipinfo((u,/opt/alt/python33/lib64/python3.3/zipfile.pyu extractalls  uZipFile.extractallcCs|j}|s=d}tj|dt|}||_n|j|}dd|j|D}|jdd|D}|S(u;Replace bad characters and remove trailing dots from parts.u:<>|"?*u_css|]}|jdVqdS(u.N(urstrip(u.0ux((u,/opt/alt/python33/lib64/python3.3/zipfile.pyu su1ZipFile._sanitize_windows_name..css|]}|r|VqdS(N((u.0ux((u,/opt/alt/python33/lib64/python3.3/zipfile.pyu s(u!_windows_illegal_name_trans_tableustru maketransulenu translateusplitujoin(uclsuarcnameupathseputableuillegal((u,/opt/alt/python33/lib64/python3.3/zipfile.pyu_sanitize_windows_names  uZipFile._sanitize_windows_namecs|jjdtjj}tjjrH|jtjjtjj}ntjj|d}dtjjtjjftjjj fdd|j tjjD}tjjdkr|j |tjj}ntjj ||}tjj |}tjj |}|r?tjj| r?tj|n|jd dkrxtjj|sttj|n|S|j|d|/}t|d}tj||Wd QXWd QX|S( ubExtract the ZipInfo object 'member' to a physical file on the path targetpath. u/iuc3s!|]}|kr|VqdS(N((u.0ux(uinvalid_path_parts(u,/opt/alt/python33/lib64/python3.3/zipfile.pyu su*ZipFile._extract_member..u\upwduwbNi(ufilenameureplaceuosupathusepualtsepu splitdriveucurdirupardirujoinusplitu_sanitize_windows_nameunormpathudirnameuexistsumakedirsuisdirumkdiruopenushutilu copyfileobj(uselfumemberu targetpathupwduarcnameu upperdirsusourceutarget((uinvalid_path_partsu,/opt/alt/python33/lib64/python3.3/zipfile.pyu_extract_members* !7uZipFile._extract_membercCs|j|jkr;ddl}|jd|jddn|jd krYtdn|jsqtd nt|j|j t kr|j st d qn|j t kr|j st d qndS( u6Check for errors before writing a file to the archive.iNuDuplicate name: %ru stackleveliuwuau write() requires mode "w" or "a"u4Attempt to write ZIP archive that was already closedu'Filesize would require ZIP64 extensionsu+Zipfile size would require ZIP64 extensions(uwua(ufilenameu NameToInfouwarningsuwarnumodeu RuntimeErrorufpu_check_compressionu compress_typeu file_sizeu ZIP64_LIMITu _allowZip64u LargeZipFileu header_offset(uselfuzinfouwarnings((u,/opt/alt/python33/lib64/python3.3/zipfile.pyu _writecheck s       uZipFile._writecheckc Cs|jstdntj|}tj|j}tj|j}|dd}|dkrp|}ntj j tj j |d}x0|dtj tjfkr|dd}qW|r|d7}nt||}|dd@d>|_|dkr|j|_n ||_|j|_d|_|jj|_|jtkrh|jd O_n|j|d|_|rd|_d|_d|_|jj|||j |j!<|jj"|j#ddSt%|j} t&|d } d|_} d|_} |j'o0|jd t(k} |jj"|j#| d}xw| j)d}|snPn|t*|}t+|| d@} | r| j,|}| t*|} n|jj"|qUWdQX| r| j-}| t*|} |jj"|| |_n ||_| |_||_| rt|j'rt|t(krVtdn| t(krttdqtn|jj}|jj.|jd|jj"|j#| |jj.|d|jj|||j |j!|dd>B|d B}|d d >|d d>B|dd B}g}|jtks|j tkr|j |j|j |j d }d } n|j}|j } |j tkr?|j |j d } n |j } |j } d} |rt jddt|ddt||| } t} n|jtkrtt| } n!|jtkrtt| } nt| |j} t| |j}y|j\}}t jtt||j| |j||j|||j| |t|t| t|jd|j |j!| }Wnt"k rt#tt||j| |j|j$|j|||j| |t|j%t| t|jd|j |j!| fdt&j'YnX|jj(||jj(||jj(| |jj(|jqMW|jj}|}||}|}|t)ks|tks|tkrAt jt*t+ddddd|||| }|jj(|t jt,t-d|d}|jj(|t.|d}t.|d }t.|d }nt jt/t0dd||||t|j1 }|jj(||jj(|j1|jj2nWd|j}d|_|j3s|j4nXdS(uJClose the file, and for mode "w" and "a" write the ending records.Nuwuaiiii iiii ilu._compileu.pyu.pycu.pyoiuoptimizeu%s/%siTFi( uimpucache_from_sourceuTrueuFalseu _optimizeuosupathuisfileustatust_mtimeu __debug__usplit( uselfupathnameubasenameu_compileufile_pyufile_pycufile_pyou pycache_pycu pycache_pyouarcnameufnameu archivename((uselfu,/opt/alt/python33/lib64/python3.3/zipfile.pyu _get_codenamedsL   $ $ $ $    $uPyZipFile._get_codenameNFi( u__name__u __module__u __qualname__u__doc__u ZIP_STOREDuFalseu__init__uwritepyu _get_codename(u __locals__((u,/opt/alt/python33/lib64/python3.3/zipfile.pyu PyZipFiles Ac s2ddl}|jd}|dkr=tjdd}n| sT|ddkrnt|tjdn|ddkrt|dkrt|tjdnt|dd }|j WdQXn[|ddkr`t|dkrt|tjdnt|dd }|j }WdQX|rStd j |ntd n|ddkrt|d krt|tjdnt|dd }|d}x|j D]}|j d rtjj||dd}ntjj||}tjj|}tjj|sItj|nt|d} | j|j|WdQXqWWdQXn|ddkr.t|d krt|tjdnfddt|dddd>}x4|ddD]"} || tjj| qWWdQXndS(NiuE Usage: zipfile.py -l zipfile.zip # Show listing of a zipfile zipfile.py -t zipfile.zip # Test if a zipfile is valid zipfile.py -e zipfile.zip target # Extract zipfile into target dir zipfile.py -c zipfile.zip src ... # Create zipfile from sources iu-lu-cu-eu-tiuru.The following enclosed file is corrupted: {!r}u Done testingiu./uwbcstjj|r(|j||tn]tjj|rxHtj|D]4}|tjj||tjj||qJWndS(N(uosupathuisfileuwriteu ZIP_DEFLATEDuisdirulistdirujoin(uzfupathuzippathunm(uaddToZip(u,/opt/alt/python33/lib64/python3.3/zipfile.pyuaddToZips umain..addToZipuwu allowZip64(u-lu-cu-eu-tT(utextwrapudedentuNoneusysuargvuprintuexitulenuZipFileuprintdirutestzipuformatunamelistu startswithuosupathujoinudirnameuexistsumakedirsuopenuwriteureaduTrueubasename( uargsutextwrapuUSAGEuzfubadfileuoutupathutgtutgtdirufpusrc((uaddToZipu,/opt/alt/python33/lib64/python3.3/zipfile.pyumains\         ")  umainu__main__(yu__doc__uiouosureuimpusysutimeustatushutilustructubinasciiuzlibucrc32u ImportErroruNoneubz2ulzmau__all__u Exceptionu BadZipFileu LargeZipFileuerroru BadZipfileu ZIP64_LIMITuZIP_FILECOUNT_LIMITuZIP_MAX_COMMENTu ZIP_STOREDu ZIP_DEFLATEDu ZIP_BZIP2uZIP_LZMAuDEFAULT_VERSIONu ZIP64_VERSIONu BZIP2_VERSIONu LZMA_VERSIONuMAX_EXTRACT_VERSIONustructEndArchiveustringEndArchiveucalcsizeusizeEndCentDiru_ECD_SIGNATUREu_ECD_DISK_NUMBERu_ECD_DISK_STARTu_ECD_ENTRIES_THIS_DISKu_ECD_ENTRIES_TOTALu _ECD_SIZEu _ECD_OFFSETu_ECD_COMMENT_SIZEu _ECD_COMMENTu _ECD_LOCATIONustructCentralDirustringCentralDirusizeCentralDiru _CD_SIGNATUREu_CD_CREATE_VERSIONu_CD_CREATE_SYSTEMu_CD_EXTRACT_VERSIONu_CD_EXTRACT_SYSTEMu _CD_FLAG_BITSu_CD_COMPRESS_TYPEu_CD_TIMEu_CD_DATEu_CD_CRCu_CD_COMPRESSED_SIZEu_CD_UNCOMPRESSED_SIZEu_CD_FILENAME_LENGTHu_CD_EXTRA_FIELD_LENGTHu_CD_COMMENT_LENGTHu_CD_DISK_NUMBER_STARTu_CD_INTERNAL_FILE_ATTRIBUTESu_CD_EXTERNAL_FILE_ATTRIBUTESu_CD_LOCAL_HEADER_OFFSETustructFileHeaderustringFileHeaderusizeFileHeaderu _FH_SIGNATUREu_FH_EXTRACT_VERSIONu_FH_EXTRACT_SYSTEMu_FH_GENERAL_PURPOSE_FLAG_BITSu_FH_COMPRESSION_METHODu_FH_LAST_MOD_TIMEu_FH_LAST_MOD_DATEu_FH_CRCu_FH_COMPRESSED_SIZEu_FH_UNCOMPRESSED_SIZEu_FH_FILENAME_LENGTHu_FH_EXTRA_FIELD_LENGTHustructEndArchive64LocatorustringEndArchive64LocatorusizeEndCentDir64LocatorustructEndArchive64ustringEndArchive64usizeEndCentDir64u_CD64_SIGNATUREu_CD64_DIRECTORY_RECSIZEu_CD64_CREATE_VERSIONu_CD64_EXTRACT_VERSIONu_CD64_DISK_NUMBERu_CD64_DISK_NUMBER_STARTu_CD64_NUMBER_ENTRIES_THIS_DISKu_CD64_NUMBER_ENTRIES_TOTALu_CD64_DIRECTORY_SIZEu_CD64_OFFSET_START_CENTDIRu_check_zipfileu is_zipfileu _EndRecData64u _EndRecDatauobjectuZipInfou _ZipDecrypteruLZMACompressoruLZMADecompressorucompressor_namesu_check_compressionu_get_compressoru_get_decompressoruBufferedIOBaseu ZipExtFileuZipFileu PyZipFileumainu__name__(((u,/opt/alt/python33/lib64/python3.3/zipfile.pyus"                         + =;   F