ROOTPLOIT
Server: LiteSpeed
System: Linux server71.web-hosting.com 4.18.0-513.18.1.lve.el8.x86_64 #1 SMP Thu Feb 22 12:55:50 UTC 2024 x86_64
User: niphet (1079)
PHP: 5.3.29
Disabled: NONE
Upload Files
File: //lib64/python3.8/__pycache__/zipfile.cpython-38.opt-2.pyc
U

e5dV@s
ddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
Z
ddlZzddlZejZWnek
rdZejZYnXzddlZWnek
rdZYnXzddlZWnek
rdZYnXdddddddd	d
ddd
dg
ZGdddeZGdd
d
eZeZZdZdZdZdZdZdZdZ dZ!dZ"dZ#dZ$dZ%dZ&dZ'e
(e&Z)dZ*dZ+dZ,dZ-dZ.d Z/d!Z0d"Z1dZ2d#Z3d$Z4d%Z5e
(e4Z6dZ7dZ8dZ9dZ:dZ;d Z<d!Z=d"Z>dZ?d#Z@d&ZAd'ZBdZCd(ZDdZEd)ZFd*ZGd+ZHd,ZId-ZJd.ZKe
(eJZLdZMdZNdZOdZPdZQd ZRd!ZSd"ZTdZUd#ZVd&ZWd'ZXd/ZYd0ZZe
(eYZ[d1Z\d2Z]e
(e\Z^dZ_dZ`dZadZbdZcd Zdd!Zed"ZfdZgd#Zhd3Zie
jd4Zkd5d6Zld7d8Zmd9d	Znd:d;Zod<d=ZpGd>d
d
eqZrdasd?d@ZtdAdBZuGdCdDdDZvGdEdFdFZwdGdHdIdIdIdIdJdKdLdMdJdNdOdPdQdRdSdTZxdUdVZydsdWdXZzdYdZZ{Gd[d\d\Z|Gd]d^d^Z}Gd_d`d`ej~ZGdadbdbej~ZGdcddZGddddeZdedfZdgdhZejZdidjZGdkdldleZGdmdndneZGdoddZdtdpdqZedrkredS)uN
BadZipFile
BadZipfileerror
ZIP_STOREDZIP_DEFLATED	ZIP_BZIP2ZIP_LZMA
is_zipfileZipInfoZipFile	PyZipFileLargeZipFilePathc@seZdZdS)rN__name__
__module____qualname__rr/usr/lib64/python3.8/zipfile.pyr+sc@seZdZdS)r
Nrrrrrr
/si-.?s<4s4H2LHsPK	z<4s4B4HL2L5H2LsPK

z<4s2B4HL2L2HsPKz<4sLQLsPKz
<4sQ2H2L4QsPKiPK<HHc
Cstj}d}g}d}}|dt|krz||||d\}}|d|}	||krt||krl|||||	}d}|	}q|s|Sd|S)NFrr T)_EXTRA_FIELD_STRUCTunpacklenappendjoin)
extraZxidsr/ZmodifiedbufferstartiZxidZxlenjrrr_strip_extras r8cCs,zt|rWdSWntk
r&YnXdS)NTF)_EndRecDataOSErrorfprrr_check_zipfiles
r=c	CsVd}z8t|drt|d}nt|d}t|}W5QRXWntk
rPYnX|S)NFreadr;rb)hasattrr=openr:)filenameresultr<rrrr	s
c
Csz||tdWntk
r,|YSX|t}t|tkrH|Stt|\}}}}|tkrh|S|dksx|dkrt	d||tt
d|t
}t|t
kr|Stt|\
}}}	}
}}}
}}}|tkr|S||t
<||t<||t<|
|t<||t<||t<||t<|S)Nrrrz3zipfiles that span multiple disks are not supported)seeksizeEndCentDir64Locatorr:r>r0structr/structEndArchive64LocatorstringEndArchive64LocatorrsizeEndCentDir64structEndArchive64stringEndArchive64_ECD_SIGNATURE_ECD_DISK_NUMBER_ECD_DISK_START_ECD_ENTRIES_THIS_DISK_ECD_ENTRIES_TOTAL	_ECD_SIZE_ECD_OFFSET)fpinoffsetendrecdataZsigZdisknoZreloffZdisksZszcreate_versionZread_versionZdisk_numZdisk_dirZdircountZ	dircount2ZdirsizeZ	diroffsetrrr
_EndRecData64s@



rXc	Csh|dd|}z|tdWntk
r<YdSX|}t|tkr|ddtkr|dddkrtt	|}t
|}|d||tt|t|St
|dtd}||d|}|t}|dkrd|||t}t|tkrdSt
tt	|}|t}||t|t|}|||||t|||||SdS)Nrrr sr-i)rDtellsizeEndCentDirr:r>r0stringEndArchiverFr/structEndArchivelistr1rXmaxrfind_ECD_COMMENT_SIZE)	rSZfilesizerVrUZmaxCommentStartr5ZrecDataZcommentSizecommentrrrr9sD



r9c@sXeZdZdZdddZddZdd	d
ZddZd
dZe	dddddZ
ddZdS)r
)
orig_filenamerB	date_time
compress_type_compresslevelrbr3
create_systemrWextract_versionreserved	flag_bitsvolume
internal_attr
external_attr
header_offsetCRC
compress_size	file_size	_raw_timeNoNamerrrrrcCs||_|td}|dkr(|d|}tjdkrJtj|krJ|tjd}||_||_|ddkrjtdt	|_
d|_d|_d|_
tjdkrd|_nd|_t|_t|_d|_d|_d|_d|_d|_dS)Nr/ruz+ZIP does not support timestamps before 1980r-Zwin32r)rcfindchrossepreplacerBrd
ValueErrorrrerfrbr3sysplatformrgDEFAULT_VERSIONrWrhrirjrkrlrm)selfrBrdZ	null_byterrr__init__Xs0
zZipInfo.__init__cCsd|jj|jfg}|jtkr8|dt|j|j|jd?}|jd@}|rd|dt	
||rv|d||}|r|jr|d|j|r|j
r|jtks|j|j
kr|d|j
|d	d
|S)Nz<%s filename=%r compress_type=%sr)rz filemode=%rz external_attr=%#xz
 file_size=%rz compress_size=%r>)	__class__rrBrerr1compressor_namesgetrmstatfilemodeis_dirrqrpr2)rrChiloisdirrrr__repr__s0






zZipInfo.__repr__NcCs||j}|ddd>|dd>B|dB}|dd>|d	d>B|ddB}|jd
@rfd}}}n|j}|j}|j}|j}d}	|dkr|tkp|tk}|rd}
|t|
dt	|
d	||}|tks|tkr|st
dd
}d
}t}	|jt
krtt|	}	n|jtkrtt|	}	t|	|j|_t|	|j|_|\}}ttt|j|j||j|||||t|t|
}
|
||S)Nrrur$rr!rrr&r rz<HHQQz'Filesize would require ZIP64 extensions)rdrjrorprqr3ZIP64_LIMITrFpackcalcsizer

ZIP64_VERSIONrerr_
BZIP2_VERSIONrLZMA_VERSIONrhrW_encodeFilenameFlagsstructFileHeaderstringFileHeaderrir0)rzip64dtdosdatedostimerorprqr3min_versionfmtrBrjheaderrrr
FileHeaders^$$

zZipInfo.FileHeadercCsDz|jd|jfWStk
r>|jd|jdBfYSXdS)Nasciiutf-8)rBencoderjUnicodeEncodeErrorrrrrrszZipInfo._encodeFilenameFlagscCs|j}tj}t|dkr|d|dd\}}|dt|krPtd||f|dkrp|dkrv|d|dd}nV|dkr|d	|dd
}n:|dkr|d|dd
}n|dkrd}ntd||fd}|jdkrt||krtd|||_|d7}|jdkr6t||kr$td|||_|d7}|jdkrpt||krXtd|j}|||_|d7}||dd}qdS)Nr r,z"Corrupt extra field %04x (size=%d)rz<QQQr)z<QQrrz<Qrrr)lrz/Corrupt zip64 extra field. File size not found.rz3Corrupt zip64 extra field. Compress size not found.z3Corrupt zip64 extra field. Header offset not found.)r3rFr/r0rrqrprn)rr3r/tpZlnZcountsidxoldrrr_decodeExtrasP



zZipInfo._decodeExtraTstrict_timestampsc	Cst|tjrt|}t|}t|j}t|j	}|dd}|sZ|ddkrZd}n|sn|ddkrnd}|dkrz|}tj
tj
|d}|dtj
tjfkr|dd}q|r|d7}|||}|jd	@d
>|_|rd|_|jd
O_n|j|_|S)Nrr"rurt;)rr;rrrvrr))
isinstanceryPathLikefspathrS_ISDIRst_modetime	localtimest_mtimepathnormpath
splitdriverzaltseprmrqst_size)	clsrBarcnamerstrmtimerdzinforrr	from_files0



zZipInfo.from_filecCs|jddkS)NrvrBrrrrr%szZipInfo.is_dir)rsrt)N)N)rrr	__slots__rrrrrclassmethodrrrrrrr
>s
+
.2%cCs0tdD]"}|d@r"|d?dA}q|dL}q|S)Nrrl q[)range)crcr7rrr_gen_crc/s

rcsldddtdkr&ttttdatfddfdd|D]}|qLfd	d
}|S)NixV4igE#ixV4cs|d?||Ad@AS)Nrr)Zchr)crctablerrcrc32Isz_ZipDecrypter.<locals>.crc32cs<|d@d@ddd@d?dS)Nrrirrr)c)rkey0key1key2rrupdate_keysMs
z"_ZipDecrypter.<locals>.update_keyscsNt}|j}|D]4}dB}|||dAd?d@N}|||qt|S)Nrrrr)	bytearrayr1bytes)rVrCr1rk)rrrr	decrypterWs
z _ZipDecrypter.<locals>.decrypter)	_crctabler^maprr)pwdprr)rrrrrrr
_ZipDecrypter?s
rc@s,eZdZddZddZddZddZd	S)
LZMACompressorcCs
d|_dSN)_comprrrrrgszLZMACompressor.__init__cCsFtdtji}tjtjttj|gd|_tdddt	||S)Nidfiltersz<BBHr$r )
lzmaZ_encode_filter_propertiesFILTER_LZMA1r
FORMAT_RAW_decode_filter_propertiesrrFrr0)rZpropsrrr_initjs

zLZMACompressor._initcCs*|jdkr||j|S|j|Sr)rrcompress)rrVrrrrqs
zLZMACompressor.compresscCs&|jdkr||jS|jSr)rrflushrrrrrvs
zLZMACompressor.flushN)rrrrrrrrrrrresrc@seZdZddZddZdS)LZMADecompressorcCsd|_d|_d|_dS)Nr-F)_decomp_unconsumedeofrrrrr~szLZMADecompressor.__init__c	Cs|jdkr|j|7_t|jdkr*dStd|jdd\}t|jd|krXdStjtjttj	|jdd|gd|_|jd|d}|`|j
|}|jj|_|S)Nr r-z<Hrr)rrr0rFr/rrrrr
decompressr)rrVZpsizerCrrrrs"


zLZMADecompressor.decompressN)rrrrrrrrrr|srZstoreZshrinkreduceZimplodetokenizeZdeflateZ	deflate64Zbzip2rZterseZlz77ZwavpackZppmd)rrrrr r!r"r#rr$r%rrr+abcCsX|tkr
nJ|tkr tsTtdn4|tkr6tsTtdn|tkrLtsTtdntddS)Nz.Compression requires the (missing) zlib modulez-Compression requires the (missing) bz2 modulez.Compression requires the (missing) lzma modulez(That compression method is not supported)	rrzlibRuntimeErrorrbz2rrNotImplementedError)compressionrrr_check_compressions$rcCsj|tkr2|dk	r t|tjdSttjtjdS|tkrT|dk	rLt|StS|tkrbt	SdSdS)N)
rrZcompressobjZDEFLATEDZZ_DEFAULT_COMPRESSIONrrZ
BZ2Compressorrr)re
compresslevelrrr_get_compressors
rcCsvt||tkrdS|tkr&tdS|tkr6tS|tkrDt	St
|}|rdtd||fntd|fdS)Nrzcompression type %d (%s)zcompression type %d)
rrrrZ
decompressobjrrZBZ2Decompressorrrrrr)reZdescrrrr_get_decompressors

rc@s0eZdZddZdddZd
ddZd	d
ZdS)_SharedFilecCs2||_||_||_||_||_|j|_|j|_dSr)_file_pos_close_lock_writingseekablerZ)rfileposcloselockZwritingrrrrsz_SharedFile.__init__rc
CsN|j>|rtd|j|||j|_|jW5QRSQRXdS)Nz}Can't reposition in the ZIP file while there is an open writing handle on it. Close the writing handle before trying to read.)rrr|rrDrZr)rrTwhencerrrrDsz_SharedFile.seekrc
CsX|jH|rtd|j|j|j|}|j|_|W5QRSQRXdS)NyCan't read from the ZIP file while there is an open writing handle on it. Close the writing handle before trying to read.)rrr|rrDrr>rZrnrVrrrr>sz_SharedFile.readcCs$|jdk	r |j}d|_||dSr)rr)rfileobjrrrr	s
z_SharedFile.closeN)r)r)rrrrrDr>r	rrrrrs	


rc@s4eZdZddZddZddZddZd	d
ZdS)	_TellablecCs||_d|_dSNr)r<rTrr<rrrrsz_Tellable.__init__cCs|j|}|j|7_|Sr)r<writerT)rrVrrrrrsz_Tellable.writecCs|jSr)rTrrrrrZsz_Tellable.tellcCs|jdSr)r<rrrrrrsz_Tellable.flushcCs|jdSr)r<r	rrrrr	sz_Tellable.closeN)rrrrrrZrr	rrrrrs
rcseZdZdZdZdZd'ddZdd	Zd
dZd(d
dZ	d)ddZ
ddZd*ddZddZ
ddZddZddZfddZd d!Zd+d#d$Zd%d&ZZS),
ZipExtFilei@iiNFcCs(||_||_||_|j|_|j|_|j|_t	|j|_
d|_d|_d|_
d|_||_|j|_t|drz|j|_td|_nd|_d|_z4|r||_|j|_|j|_|j|_d|_Wntk
rYnXd|_|r$|j d@r|j!d?d@}n|jd?d@}|"}||kr$t#d	|j$dS)
NFr-rroTrrrzBad password for file %r)%_fileobj_pwd_close_fileobjre_compress_typerp_compress_leftrq_leftr
_decompressor_eof_readbuffer_offsetnewlinesmoderBnamer@ro
_expected_crcr_running_crc	_seekablerrZ_orig_compress_start_orig_compress_size_orig_file_size_orig_start_crcAttributeError
_decrypterrjrr_init_decrypterrrc)rrr zipinforZ
close_fileobjZ
check_bytehrrrr)sF




zZipExtFile.__init__cCs4t|j|_|jd}|jd8_||dS)Nrr&)rrr*rr>r)rrrrrr+\szZipExtFile._init_decryptercCsvd|jj|jjfg}|jsX|d|j|jf|jtkrb|dt	
|j|jn
|d|dd|S)N<%s.%sz name=%r mode=%rr	 [closed]rr)rrrclosedr1r!r rrrrr2rrCrrrrgs


zZipExtFile.__repr__rcCsL|dkr>|jd|jd}|dkr>|j|j|}||_|Stj||S)Nr
r)rrwrioBufferedIOBasereadline)rlimitr6linerrrr5uszZipExtFile.readlinercCsr|t|j|jkr\||}t||jkrJ||j|jd|_d|_n|jt|8_|j|j|jdS)Nri)r0rrr>)rrchunkrrrpeeks
zZipExtFile.peekcCsdSNTrrrrrreadableszZipExtFile.readablecCs|dks|dkrH|j|jd}d|_d|_|jsD|||j7}q,|S||j}|t|jkrz|j|j|}||_|S|t|j}|j|jd}d|_d|_|dkr|js||}|t|kr||_||_||d|7}q||7}|t|8}q|SNrr-rrr_read1MAX_Nr0)rrbufendrVrrrr>s4

zZipExtFile.readcCs@|jdkrdSt||j|_|jr<|j|jkr<td|jdS)NzBad CRC-32 for file %r)r"rr#rrr!)rnewdatarrr_update_crcs

zZipExtFile._update_crccCs|dks|dkrR|j|jd}d|_d|_|jsN||j}|r,||7}qNq,|S||j}|t|jkr|j|j|}||_|S|t|j}|j|jd}d|_d|_|dkr|js||}|t|kr||_||_||d|7}q|r||7}qq|Sr<r=)rrr@rVrArrrread1s>


zZipExtFile.read1cCs"|js|dkrdS|jtkrH|jj}|t|krR|||t|7}n
||}|jtkrj|jdk|_nx|jtkrt	||j
}|j||}|jjp|jdko|jj|_|jr||j
7}n |j|}|jjp|jdk|_|d|j}|jt|8_|jdkrd|_|||S)Nrr-T)rrrrZunconsumed_tailr0_read2rrr_
MIN_READ_SIZErrrrrCr
rrrr>s4





zZipExtFile._read1cCsd|jdkrdSt||j}t||j}|j|}|jt|8_|sLt|jdk	r`||}|Sr<)	rr_rFminrr>r0EOFErrorr*r
rrrrE	s


zZipExtFile._read2cs&z|jr|jW5tXdSr)superr	rrrrrrr	szZipExtFile.closecCs|jSr)r$rrrrr szZipExtFile.seekablercCs>|jstd|}|dkr&|}n.|dkr8||}n|dkrL|j|}ntd||jkrd|j}|dkrpd}||}||j}|dkr|t|jkr||_d}nf|dkr
|j	
|j|j|_
|j|_|j|_d|_d|_t|j|_d|_|}|jdk	r
||dkr6t|j|}||||8}q
|S)N!underlying stream is not seekablerrrzCwhence must be os.SEEK_SET (0), os.SEEK_CUR (1), or os.SEEK_END (2)r-F)r$r3UnsupportedOperationrZr'r|rr0rrrDr%r(r#r&rrrrrrr*r+rG
MAX_SEEK_READr>)rrTrZcurr_posZnew_posZread_offsetZbuff_offsetZread_lenrrrrD#sH






zZipExtFile.seekcCs0|jstd|j|jt|j|j}|S)NrK)r$r3rLr'rr0rr)rZfileposrrrrZSs
zZipExtFile.tell)NF)r)r)r)r)rrrr?rFrMrr+rr5r9r;r>rCrDr>rEr	rrDrZ
__classcell__rrrJrrs(
3



!
%$
0rcs@eZdZddZeddZddZddZfd	d
ZZ	S)
_ZipWriteFilecCs8||_||_||_t|j|j|_d|_d|_d|_	dSr)
_zinfo_zip64_zipfilerrerf_compressor
_file_size_compress_size_crc)rzfrrrrrr[sz_ZipWriteFile.__init__cCs|jjSr)rRr<rrrrresz_ZipWriteFile._fileobjcCsdSr:rrrrrwritableisz_ZipWriteFile.writablecCsf|jrtdt|}|j|7_t||j|_|jrV|j|}|jt|7_|j	
||S)NzI/O operation on closed file.)r0r|r0rTrrVrSrrUrr)rrVnbytesrrrrlsz_ZipWriteFile.writec	sb|jr
dSzFt|jrR|j}|jt|7_|j	
||j|j_n
|j
|j_|j|j_|j
|j_|jjd@r|jrdnd}|j	
t|t|jj|jj|jj|j	|j_nn|js|j
tkrtd|jtkrtd|j	|j_|j	|jj|j	
|j|j|j	|jj|jj|j|j|jj|jj <W5d|j_XdS)NFrz<LLQQz<LLLLz+File size unexpectedly exceeded ZIP64 limitz1Compressed size unexpectedly exceeded ZIP64 limit)!r0rRrrIr	rSrrUr0rrrPrprTrVrorqrjrQrFr
_DD_SIGNATURErZ	start_dirrrrDrnrfilelistr1
NameToInforB)rr@rrJrrr	xsF






z_ZipWriteFile.close)
rrrrpropertyrrXrr	rNrrrJrrOZs

rOc@s eZdZdZdZdeddfddddZddZd	d
ZddZ	d
dZ
ddZddZd<ddZ
ddZddZddZeddZejddZd=ddZd>d d!d"d#Zd?d$d%Zd@d&d'ZdAd(d)Zed*d+Zd,d-Zd.d/ZdBd0d1ZdCd2d3Zd4d5Zd6d7Z d8d9Z!d:d;Z"dS)DrNrTrc
	CsP|dkrtdt|||_d|_d|_i|_g|_||_||_||_	d|_
d|_||_t
|tjrpt|}t
|trd|_||_dddd	dd
dd}||}zt|||_Wqtk
r||kr||}YqYqXqqnd
|_||_t|dd|_d
|_t|_d|_d|_z|dkr4|n|dkrd|_z|j |_!Wn2t"tfk
rt#|j|_d|_!d|_Yn6Xz|j$|j!Wn t"tfk
rd|_YnXnf|dkrz||j$|j!Wn6t%k
r|j$ddd|_|j |_!YnXntdWn$|j}	d|_|&|	YnXdS)N)r_wxaz+ZipFile requires mode 'r', 'w', 'x', or 'a'Frr-r?w+bx+br+bwbZxb)r_r`rarbrercrdrr!Tr_)r`rarbrz"Mode must be 'r', 'w', 'x', or 'a')'r|r_allowZip64
_didModifydebugr]r\rrr r_comment_strict_timestampsrryrrstr_filePassedrBr3rAr<r:getattr_fileRefCnt	threadingRLockrr$r_RealGetContentsrZr[r)rrDr_fpclose)
rrr r
allowZip64rrZmodeDictrr<rrrrs







zZipFile.__init__cCs|Srrrrrr	__enter__szZipFile.__enter__cCs|dSrr	)rtypevalue	tracebackrrr__exit__szZipFile.__exit__cCsd|jj|jjfg}|jdk	rd|jr8|d|jn|jdk	rR|d|j|d|jn
|d|dd|S)Nr.z file=%rz filename=%rz mode=%rr/rr)	rrrr<rmr1rBr r2r1rrrr"s



zZipFile.__repr__cCs|j}zt|}Wntk
r.tdYnX|s<td|jdkrNt||t}|t}|t|_	|t
||}|ttkr|t
t8}|jdkr||}td||||||_||jd||}t|}d}||kr|t}	t|	tkr
tdtt|	}	|	ttkr,td|jdkr@t|	||	t}
|	d}|d	@rl|
d
}
n
|
d}
t|
}||	t|_||	t |_!|	t"|_#|	dd\|_$|_%|_&|_'|_(|_)}
}|_*|_+|_,|j&t-krt.d
|j&d|	dd\|_/|_0|_1|
|_2|d?d|d?d@|d@|
d?|
d?d@|
d@df|_3|4|j#||_#|j56|||j7|j8<|t|	t|	t|	t }|jdkrtd|qdS)NzFile is not a zip filerrzgiven, inferred, offsetrzTruncated central directoryz&Bad magic number for central directoryr!rrcp437rzzip file version %.1fr%r(r+r$rurr&rtotal)9r<r9r:rriprintrQrR_ECD_COMMENTrj
_ECD_LOCATIONrLrKrIrEr[rDr>r3BytesIOsizeCentralDirr0rFr/structCentralDir
_CD_SIGNATUREstringCentralDir_CD_FILENAME_LENGTHdecoder
_CD_EXTRA_FIELD_LENGTHr3_CD_COMMENT_LENGTHrb_CD_LOCAL_HEADER_OFFSETrnrWrgrhrirjrerorprqMAX_EXTRACT_VERSIONrrkrlrmrrrdrr\r1r]rB)rr<rUZsize_cdZ	offset_cdconcatZinferredrVr|centdirrBflagsratdrrrrr0s














zZipFile._RealGetContentscCsdd|jDS)NcSsg|]
}|jqSrr).0rVrrr
<listcomp>sz$ZipFile.namelist.<locals>.<listcomp>r\rrrrnamelist~szZipFile.namelistcCs|jSrrrrrrinfolistszZipFile.infolistcCsLtdd|d|jD]0}d|jdd}td|j||jf|dqdS)Nz%-46s %19s %12s)z	File NamezModified    ZSizerz%d-%02d-%02d %02d:%02d:%02dr"z
%-46s %s %12d)r}r\rdrBrq)rrrdaterrrprintdirs
zZipFile.printdirc
Cs^d}|jD]N}z*||jd}||r,q W5QRXWq
tk
rV|jYSXq
dS)Nir_)r\rArBr>r)rZ
chunk_sizerfrrrtestzips

zZipFile.testzipcCs$|j|}|dkr td||S)Nz(There is no item named %r in the archive)r]rKeyError)rr!inforrrgetinfoszZipFile.getinfocCs6|r t|ts tdt|j|r,||_nd|_dS)Npwd: expected bytes, got %s)rr	TypeErrorrwrr)rrrrrsetpasswords
zZipFile.setpasswordcCs|jSr)rjrrrrrbszZipFile.commentcCs^t|tstdt|jt|tkrNddl}|jdtdd|dt}||_	d|_
dS)Nzcomment: expected bytes, got %srz3Archive comment is too long; truncating to %d bytesr
stacklevelT)rrrrwrr0ZIP_MAX_COMMENTwarningswarnrjrh)rrbrrrrrbs
c
Cs.||d|}|W5QRSQRXdSNr_rAr>)rr!rr<rrrr>szZipFile.readFforce_zip64cs|dkrtd|r0t|ts0tdt|j|rD|dkrDtdjsRtdt|trb|}n,|dkrt|}j|_	j
|_n
|}|dkrj
||dSjrtdjd	7_tj|jjjfd
d}z|t}t|tkrtdtt|}|ttkr&td
||t}|trL||t|jd@r`t d|jd@rtt d|t!d@r|"d}	n
|"d}	|	|j#krtd|j#|f|jd	@}
|
r|s҈j$}|st%d|nd}t&||||dWS|'YnXdS)N>r`r_zopen() requires mode "r" or "w"rr`z'pwd is only supported for reading filesz2Attempt to use ZIP archive that was already closedrrrcsjSr)rrrrr<lambda>r-zZipFile.open.<locals>.<lambda>zTruncated file headerz Bad magic number for file header z$compressed patched data (flag bit 5)@zstrong encryption (flag bit 6)rrr{z/File name in directory %r and header %r differ.z6File %r is encrypted, password required for extractionT)(r|rrrrwrr<r
rrerrfr_open_to_writerrorrnrsrr>sizeFileHeaderr0rrFr/r
_FH_SIGNATUREr_FH_FILENAME_LENGTH_FH_EXTRA_FIELD_LENGTHrjr_FH_GENERAL_PURPOSE_FLAG_BITSrrcrrrr	)rr!r rrrZzef_fileZfheaderfnameZ	fname_strZis_encryptedrrrrAs~








zZipFile.opencCs|r|jstd|jr tdt|ds0d|_d|_d|_d|_|jt	krZ|jdO_|j
sn|jdO_|jszd|_|jo|p|jdtk}|j
r|j
|j|j
|_||d	|_|j
||d	|_t|||S)
NzHforce_zip64 is True, but allowZip64 was False when opening the ZIP file.zzCan't write to the ZIP file while there is another write handle open on it. Close the first handle before opening another.rqrrrg?T)rgr|rr@rqrprorjrerr$rmrr<rDr[rZrn_writecheckrhrrrO)rrrrrrrr(s8



zZipFile._open_to_writecCs*|dkrt}n
t|}||||Sr)rygetcwdr_extract_member)rmemberrrrrrextractSs

zZipFile.extractcCsH|dkr|}|dkr"t}n
t|}|D]}||||q0dSr)rryrrr)rrmembersrr,rrr
extractall`s

zZipFile.extractallcCs^|j}|s(d}t|dt|}||_||}dd||D}|dd|D}|S)Nz:<>|"?*_css|]}|dVqdS).N)rstriprrarrr	<genexpr>{sz1ZipFile._sanitize_windows_name.<locals>.<genexpr>css|]}|r|VqdSrrrrrrr}s)!_windows_illegal_name_trans_tablerl	maketransr0	translatesplitr2)rrpathseptableZillegalrrr_sanitize_windows_nameqs
zZipFile._sanitize_windows_namec
sLt|ts||}|jdtjj}tjjrB|tjjtjj}tj	|d}dtjj
tjjftjjfdd|
tjjD}tjjdkr||tjj}tj||}tj|}tj|}|rtj|st||rtj|st||S|j||d(}t|d}t||W5QRXW5QRX|S)	Nrvrrc3s|]}|kr|VqdSrrrZinvalid_path_partsrrrsz*ZipFile._extract_member.<locals>.<genexpr>\)rrf)rr
rrBr{ryrrzrrcurdirpardirr2rrrdirnameexistsmakedirsrrmkdirrAshutilcopyfileobj)rrZ
targetpathrrZ	upperdirssourcetargetrrrrs2

&


 zZipFile._extract_membercCs|j|jkr(ddl}|jd|jdd|jdkr:td|jsHtdt|j|j	sd}t
|jtkrpd}n|j
tkrd	}n|jtkrd
}|rt|ddS)NrzDuplicate name: %rrrr`rarbz&write() requires mode 'w', 'x', or 'a'z4Attempt to write ZIP archive that was already closedFiles countZFilesizezZipfile size would require ZIP64 extensions)rBr]rrr r|r<rrergr0r\ZIP_FILECOUNT_LIMITrqrrnr
)rrrrequires_zip64rrrrs,



zZipFile._writecheckc
CsP|jstd|jrtdtj|||jd}|rDd|_d|_n0|dk	rT||_	n|j
|_	|dk	rl||_n|j|_|r|j
|jr|j|j|j|_|j	tkr|jdO_||d|_|j|||j|j<|j|d|j|_W5QRXn<t|d,}||d	}t||d
W5QRXW5QRXdS)N7Attempt to write to ZIP archive that was already closedz>Can't write to ZIP archive while an open writing handle existsrrrTFr?r`i ) r<r|rr
rrkrrprorerrfrrr$rDr[rZrnrrjrrhr\r1r]rBrrrArr)rrBrrerrsrcdestrrrrsF


z
ZipFile.writec
Cst|tr|d}t|tsxt|ttddd}|j|_|j|_	|j
ddkrpd|_|jdO_q|d|_n|}|jst
d	|jrt
d
|dk	r||_|dk	r||_	t||_|j*|j|dd}||W5QRXW5QRXdS)
Nrr")rBrdrrviAr)rrz?Can't write to ZIP archive while an open writing handle exists.r`)r )rrlrr
rrrrerrfrBrmr<r|rr0rqrrAr)rZzinfo_or_arcnamerVrerrrrrrwritestrs:



zZipFile.writestrcCs|dSrrvrrrr__del__szZipFile.__del__c	Cs||jdkrdS|jrtdzB|jdkr\|jr\|j"|jrJ|j|j	|
W5QRXW5|j}d|_||XdS)NzvCan't close the ZIP file while there is an open writing handle on it. Close the writing handle before closing the zip.r)r<rr|rsr rhrr$rDr[_write_end_recordrrrrr	s
z
ZipFile.closecCs|jD]D}|j}|ddd>|dd>B|dB}|dd>|d	d>B|ddB}g}|jtksr|jtkr||j||jd
}d
}n|j}|j}|jtkr||jd
}n|j}|j}	d}
|rt|	d}	t	j
dd
t|ddt|f||	}	t}
|j
tkr$tt|
}
n|j
tkr:tt|
}
t|
|j}t|
|j}zZ|\}
}t	
tt||j||j||j
|||j||t|
t|	t|jd|j|j|}Wnltk
rttt||j||j|j |j
|||j||t|j!t|	t|jd|j|j|ft"j#dYnX|j$%||j$%|
|j$%|	|j$%|jq|j$&}t|j}||j'}|j'}d}|t(krd}n|tkrd}n|tkrd}|r$|j)st*|dt	
t+t,ddddd||||}|j$%|t	
t-t.d|d}|j$%|t/|d}t/|d
}t/|d
}t	
t0t1dd||||t|j2	}|j$%||j$%|j2|j3dkrt|j$4|j$5dS)Nrrur$rr!rrr&r r)rr,QrrrzCentral directory offsetzCentral directory sizer,rrrb)6r\rdrqrrpr1rnr3r8rFrr0rrerr_rrrrhrWrrrrgrirorbrlrmDeprecationWarningr}rjrBr}stderrr<rrZr[rrgr
rJrKrGrHrGr]r\rjr truncater)rrrrrr3rqrprnZ
extra_datarrhrWrBrjrZpos2ZcentDirCountZcentDirSizeZ
centDirOffsetrZzip64endrecZzip64locrecrUrrrr5s$$














zZipFile._write_end_recordcCs&|jd8_|js"|js"|dSNr)rormr	rrrrrsszZipFile._fpclose)N)N)r_N)F)NN)NNN)NNN)NN)#rrrr<rrrrurzrrrrrrrrrr^rbsetterr>rArrrrrrrrrrr	rrsrrrrrsRZN
	
		


b
+


*
2
)hc@s0eZdZdeddfddZddd	Zd
dZdS)
rr_TrcCstj|||||d||_dS)N)r rrt)rr	_optimize)rrr rrtoptimizerrrrszPyZipFile.__init__rNcCst|}|rD||sD|jr@tj|r,dnd}td||fdStj|\}}tj|rhtj|d}tj|r|rd||f}n|}|jrtd|d||	|dd	|\}}	|jrtd
|	|
||	tt|}
|

d|
D]}tj||}tj|\}
}tj|rRtjtj|dr|j|||dq|dkr|r~||s~|jrtd
|q|	|dd	|\}}	|jrtd
|	|
||	qn|jrtd|tt|D]}tj||}tj|\}
}|dkr|r,||s,|jrtd
|q|	|dd	|\}}	|jrVtd
|	|
||	qnP|d	ddkrtd|	|dd	|\}}	|jrtd|	|
||	dS)Nrrz%s %r skipped by filterfuncz__init__.py%s/%szAdding package inasrZAdding)
filterfunc.pyzfile %r skipped by filterfunczAdding files from directoryz.Files added with writepy() must end with ".py"zAdding file)ryrrirrr}rr2isfile
_get_codenamersortedlistdirremovesplitextwritepyr)rpathnamebasenamerZlabeldirr!ZinitnamerrZdirlistrBrrootZextrrrrs







zPyZipFile.writepyc
sdfdd	}|d}|d}tjj|dd}tjj|dd}tjj|d	d}jdkr\tj|rt|jt|jkr|}	}
ntj|rt|jt|jkr|}
|}	ntj|rt|jt|jkr|}
|}	nvtj|rt|jt|jkr|}
|}	nD||rRt	j
jd
kr4|}
nt	j
jdkrH|}
n|}
|}	n|}
}	njd
krr|}
|}	n<|}	jdkr|}
n&jd	kr|}
ndj}t
|tj|
rt|
jt|jks||jds|}
}	tj|	d}|rd
||f}|
|fS)Nrc
sfddl}jrtd|z|j|d|dWn4|jk
r`}zt|jWYdSd}~XYnXdS)NrZ	CompilingT)doraiserF)
py_compilerir}compilePyCompileErrormsg)rrrerrrrr_compiles

z)PyZipFile._get_codename.<locals>._compilerz.pycr)optimizationrrrz"invalid value for 'optimize': {!r})rr)r)	importlibutilcache_from_sourcerryrrrrr}rrformatr|r)
rrrrZfile_pyZfile_pycZpycache_opt0Zpycache_opt1Zpycache_opt2rrrZarchivenamerrrrsj


zPyZipFile._get_codename)rN)rrrrrrrrrrrrs

RcCstt|ddSr)	itertoolsislice	_ancestry)rrrr_parentsRsrccs4|tj}|r0|tjkr0|Vt|\}}qdSr)r	posixpathrzr)rtailrrrresrcCstt|j|Sr)rfilterfalseset__contains__)ZminuendZ
subtrahendrrr_differencesrcsDeZdZeddZfddZddZddZed	d
Z	Z
S)CompleteDirscCs.tjtt|}dd|D}tt||S)Ncss|]}|tjVqdSr)rrz)rrrrrrsz-CompleteDirs._implied_dirs.<locals>.<genexpr>)rchain
from_iterablerr_deduper)namesparentsZas_dirsrrr
_implied_dirsszCompleteDirs._implied_dirscs tt|}|t||Sr)rIr
rr^r)rrrJrrrszCompleteDirs.namelistcCst|Sr)r
rrrrr	_name_setszCompleteDirs._name_setcCs,|}|d}||ko||k}|r(|S|SNrv)r)rr!rrZ	dir_matchrrrresolve_dirszCompleteDirs.resolve_dircCsNt|tr|St|ts ||Sd|jkr.t}||}t|t||Sr)rr
rr __new__varsupdate)rrresrrrmakes



zCompleteDirs.make)rrrstaticmethodrrrrrrrNrrrJrr
s

r
cs(eZdZfddZfddZZS)
FastLookupc
s:tt|jW5QRSQRXtt||_|jSr)
contextlibsuppressr)Z_FastLookup__namesrIrrrrJrrrszFastLookup.namelistc
s:tt|jW5QRSQRXtt||_|jSr)rrr)Z_FastLookup__lookuprIrrrrJrrrszFastLookup._name_set)rrrrrrNrrrJrrsrc@seZdZdZd"ddZeddZeddZd	d
ZddZ	d
dZ
ddZddZddZ
ddZddZddZddZddZeZedd Zd!S)#rz>{self.__class__.__name__}({self.root.filename!r}, {self.at!r})rcCst||_||_dSr)rrrat)rrr rrrr	sz
Path.__init__cCst|jj|jSr)	functoolspartialrrAr rrrrrA	sz	Path.opencCst|jdSr)rrr rrrrrr!	sz	Path.namec
Os6|$}tj|f||W5QRSQRXdSr)rAr3
TextIOWrapperr>)rargskwargsstrmrrr	read_text	s
zPath.read_textc
Cs(|}|W5QRSQRXdSrr)rr&rrr
read_bytes	s
zPath.read_bytescCst|jd|jdkSr)rrr r)rrrrr	_is_child"	szPath._is_childcCst|j|Sr)rr)rr rrr_next%	sz
Path._nextcCs|jp|jdSr)r endswithrrrrr(	szPath.is_dircCs
|Sr)rrrrris_file+	szPath.is_filecCs|j|jkSr)r rrrrrrr.	szPath.existscCs.|stdt|j|j}t|j|S)NzCan't listdir a file)rr|rr*rrfilterr))rZsubsrrriterdir1	szPath.iterdircCst|jj|jSr)rr2rrBr rrrr__str__7	szPath.__str__cCs|jj|dS)Nr)_Path__reprrrrrrr:	sz
Path.__repr__cCs t|j|}||j|Sr)rr2r r*rr)raddnextrrrjoinpath=	sz
Path.joinpathcCs(t|jd}|r|d7}||Sr)rrr rr*)rZ	parent_atrrrparentC	szPath.parentN)r)rrrr0rr^rAr!r'r(r)r*rr,rr.r/rr3__truediv__r4rrrrrs(A


c
	sddl}d}|j|d}|jdd}|jdddd	d
|jddd
ddd|jdddddd|jddddd
||}|jdk	r|j}t|d}|}W5QRX|rtd	|tdn|j
dk	r|j
}t|d}|W5QRXn|jdk	r,|j\}}t|d}|
|W5QRXn|jdk	r|jd}	|j}
fddt|	d\}|
D]P}tj|}|stjtj|}|dtjtjfkrd}|||qfW5QRXdS) Nrz3A simple command-line interface for zipfile module.)descriptionT)Zrequiredz-lz--list	<zipfile>zShow listing of a zipfile)metavarhelpz-ez	--extractr)r7z<output_dir>zExtract zipfile into target dir)nargsr8r9z-cz--create+)z<name>z<file>zCreate zipfile from sourcesz-tz--testzTest if a zipfile is validr_z.The following enclosed file is corrupted: {!r}zDone testingcsptj|r|||tnPtj|rl|r8|||tt|D]$}|tj||tj||qFdSr)	ryrrrrrrrr2)rWrzippathZnmaddToZiprrr>s	szmain.<locals>.addToZipr`r)argparseArgumentParserZadd_mutually_exclusive_groupadd_argument
parse_argsZtestrrr}rr^rrrZcreatepopryrrrrr)
r$r?r6parsergrouprrWZbadfilerZzip_namefilesrr<rr=rmainK	s\








rG__main__)N)N)Zbinasciir!importlib.utilrr3rryrrrrFr}rprrrrImportErrorrr__all__	Exceptionrr
rrrrrrrrrrrrrrr]r\rr[rLrMrNrOrPrQrRrar~rrrrrZ_CD_CREATE_VERSIONZ_CD_CREATE_SYSTEMZ_CD_EXTRACT_VERSIONZ_CD_EXTRACT_SYSTEMZ
_CD_FLAG_BITSZ_CD_COMPRESS_TYPEZ_CD_TIMEZ_CD_DATEZ_CD_CRCZ_CD_COMPRESSED_SIZEZ_CD_UNCOMPRESSED_SIZErrrZ_CD_DISK_NUMBER_STARTZ_CD_INTERNAL_FILE_ATTRIBUTESZ_CD_EXTERNAL_FILE_ATTRIBUTESrrrrrZ_FH_EXTRACT_VERSIONZ_FH_EXTRACT_SYSTEMrZ_FH_COMPRESSION_METHODZ_FH_LAST_MOD_TIMEZ_FH_LAST_MOD_DATEZ_FH_CRCZ_FH_COMPRESSED_SIZEZ_FH_UNCOMPRESSED_SIZErrrGrHrErJrKrIZ_CD64_SIGNATUREZ_CD64_DIRECTORY_RECSIZEZ_CD64_CREATE_VERSIONZ_CD64_EXTRACT_VERSIONZ_CD64_DISK_NUMBERZ_CD64_DISK_NUMBER_STARTZ_CD64_NUMBER_ENTRIES_THIS_DISKZ_CD64_NUMBER_ENTRIES_TOTALZ_CD64_DIRECTORY_SIZEZ_CD64_OFFSET_START_CENTDIRrZZStructr.r8r=r	rXr9objectr
rrrrrrrrrrrr4rrOrrrrdictfromkeysrrr
rrrGrrrrr<module>sj









+=q&
&AN/2
=