fm ddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl Z ddl Z ddl Z ddl Z ddlZ ddlZejZn#e$r dZejZYnwxYw ddlZn #e$rdZYnwxYw ddlZn #e$rdZYnwxYwgdZGddeZGddeZexZZdZdZdZdZd Zd Zd Z d Z!d Z"dZ#dZ$dZ%dZ&dZ'e j(e&Z)dZ*dZ+dZ,dZ-dZ.dZ/dZ0dZ1d Z2dZ3dZ4dZ5e j(e4Z6dZ7dZ8dZ9dZ:dZ;dZd Z?dZ@dZAdZBd ZCdZDd ZEdZFd ZGd!ZHd"ZIdZJdZKd ZLd#ZMd$ZNd%ZOd&ZPd'ZQe j(ePZRdZSdZTdZUdZVdZWdZXdZYdZZd Z[dZ\dZ]dZ^d(Z_d)Z`e j(e_Zad*Zbd+Zce j(ebZddZedZfdZgdZhdZidZjdZkdZld ZmdZnd,Zoe jpd-Zqd.Zrd/Zsd0Ztd1Zud2ZvGd3d4ewZxdayd5Zzd6Z{Gd7d8Z|Gd9d:Z}idd;dd<dd=dd=dd=dd=dd>dd?d d@ddAdd>d dBd dCd"dDdEdFdGdHdIdJZ~dKZdfdLZdMZGdNdOZGdPdQZGdRdSejZGdTdUejZGdVdWZGdXdYeZdZZd[ZejZ d\ZGd]d^eZGd_d`eZdfdaZGdbdcZdfddZedekr edSdS)gN) BadZipFile BadZipfileerror ZIP_STORED ZIP_DEFLATED ZIP_BZIP2ZIP_LZMA is_zipfileZipInfoZipFile PyZipFile LargeZipFilePathceZdZdS)rN__name__ __module__ __qualname__./opt/alt/python311/lib64/python3.11/zipfile.pyrr+sDrrceZdZdS)rNrrrrrr/srri -.?s<4s4H2LHsPK z<4s4B4HL2L5H2LsPK  @iz <4s2B4HL2L2HsPKz<4sLQLsPKz <4sQ2H2L4QsPKiPK'F &F?%-F !"!*F F9#F; Ms " 11c |dd|} |t dn#t$rYdSwxYw|}t |tkr|ddt kr|dddkrrtjt|}t|}| d| |tz t|t |St|dz tz d}||d|}|t }|dkr|||tz}t |tkrdSttjt|}|t}||tz|tz|z}| || ||zt|||z|z |SdS)Nrr"r$sri)rQtellsizeEndCentDirrErJr6stringEndArchiverSr5structEndArchivelistr7rqmaxrfind_ECD_COMMENT_SIZE) r`filesizercrbmaxCommentStartr=recData commentSizecomments rrDrDs$M  IIaOOOyy{{H  >/1%%%% tt 99;;D D ^## QqS %%% RSS [  /66F||  c h/000TN?F;;;(g.?CCOIIoq!!! 99;;D JJ' ( (E zzuU>112 w<<> ) )4fm$4g>>??./ u^+E.,@,LLM g o-...T?U#:X#E#%% % 4sA AAcZeZdZ dZddZdZddZdZd Ze dd d d Z d Z dS)r ) orig_filenamerN date_time compress_type_compresslevelrr9 create_systemriextract_versionreserved flag_bitsvolume internal_attr external_attr header_offsetCRC compress_size file_size _raw_time _end_offsetNoNamer!r!rrrcf||_|td}|dkr |d|}tjdkr.tj|vr |tjd}||_||_|ddkrtdt|_ d|_ d|_ d|_ tjdkrd|_nd|_t"|_t"|_d|_d|_d|_d|_d|_d|_d|_d|_dS)Nr/rz+ZIP does not support timestamps before 1980rwin32r#)rfindchrossepreplacerNr ValueErrorrrrrr9sysplatformrDEFAULT_VERSIONrirrrrrrrrr)selfrNr null_bytes r__init__zZipInfo.__init__us*%MM#a&&)) >>) ,H 6S==RVx//''44H  " Q<$  JKK K("  <7 " "!"D  "#D -.  rcd|jjd|jg}|jtkr;|dt |j|jz|jdz }|jdz}|r*|dtj |z|r|d|z| }|r|j r|d|j z|r|j r=|jtks|j |j kr|d |j z|d d |S) N) __class__rrNrrr7compressor_namesgetrstatfilemodeis_dirrrr8)rrOhiloisdirs r__repr__zZipInfo.__repr__s{'+~'>'>'> NO   + + MM-*..t/A/3/ACCC D D D 2 %  & (  > MM.4=+<+<< = = =  5 MM.3 4 4 4  < < MM/DN: ; ; ; D$, D  : - - ^t1 1 1 MM-0BB C C C cwwvrNc |j}|ddz dz|ddzz|dz}|ddz|d dzz|ddzz}|jtzrdx}x}}n|j}|j}|j}|j}d} ||tkp |tk}|r=d } |tj | dtj | d z ||z}d }d }t} |j tkrtt| } n%|j t krtt"| } t| |j|_t| |j|_|\} } tj t*t,|j|j| |j |||||t1| t1| } | | z|zS) Nrrr(r!r%r"r#r*r$z5 5 './ /C /-))(C .MI  = +J}{/JE  (CFK()6?3+?+?+A9m]]]E"I&M'K   * *m[99KK  8 + +lK88K";0DEE!+t/BCC"7799)-/?!14=)!/'3*I ]]CJJ 88  5((rc |jd|jfS#t$r,|jd|jtzfcYSwxYw)Nasciiutf-8)rNencoderUnicodeEncodeError_MASK_UTF_FILENAMErs rrzZipInfo._encodeFilenameFlagssm V=''00$.@ @! V V V=''00$.CU2UU U U U Vs #3AAc|j}tj}t|dkr*|d|dd\}}|dzt|krt d||fz|dkr|d|dz} |jdvr'd}|d|dd\|_|dd}|jd kr'd }|d|dd\|_|dd}|jd krd }|d|dd\|_n'#tj$rt d |d dwxYw||dzd}t|dk(dSdS)Nr$r2z"Corrupt extra field %04x (size=%d)r!)lrz File sizez#>q#ABBajRVRY///abbkGajRVRY///   sNGGY''!zF2r9  )EO   4 '    jEO rc |jdrdStjjr:|jtjjtjjfSdS)NrTF)rNendswithrrrrrs rrzZipInfo.is_dir0sY@ = ! !# & & 4 7> I=))27;*GHH Hur)rrN) rrr __slots__rrrrr classmethodrrrrrr r ZsHI0' ' ' ' X,.).).).)`VVV !!!:#D####[#J     rr cPtdD]}|dzr |dz dz }|dz}|S)Nrr!l q[)range)crcrAs r_gen_crcrBsC 1XX 7 !8z)CC AICC Jrcdddt/tttt datfdfd|D] }|fd}|S)NixV4igE#ixV4c. |dz ||z dzz S)Nrr)chrcrctables rcrc32z_ZipDecrypter..crc32\s#6qHcBh$%6777rcj|dzzdzdzdzdzdz dS)Nrrir!r)crkey0key1key2s r update_keysz"_ZipDecrypter..update_keys`sRuQ~~t $ 2y 1$ 2uTRZ&&rc t}|j}|D].}dz}|||dz zdz dzz}|||/t|S)Nr"r!rr) bytearrayr7bytes)rcrOr7rkrrs r decrypterz _ZipDecrypter..decrypterjsr%  AqA 1!9"d* *A KNNN F1IIIIV}}r) _crctablerxmaprr) pwdpr rrrrrrs @@@@@@r _ZipDecrypterrRs D D DXuSzz2233 H88888'''''''' A       rc&eZdZdZdZdZdZdS)LZMACompressorcd|_dSr)_comprs rrzLZMACompressor.__init__zs  rctjdtji}tjtjtjtj|g|_tjdddt||zS)Nidfiltersz??FE4#$$E 11s0.t/@/3/?!e) /LNNKDL#AIJJ/D ((..<# rN)rrrrr)rrrr#r#s2 rr#storeshrinkreduceimplodetokenizedeflate deflate64bzip2rterselz77awavpackbppmdc |tkrdS|tkrtstddS|tkrt stddS|t krtstddStd)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 RuntimeErrorrbz2r rNotImplementedError) compressions r_check_compressionr@sj     $ $ B@BB B B B  ! ! A?AA A A A   B@BB B B B""LMMMrcN|tkrL| tj|tjdStjtjtjdS|t kr)|t j|St jS|tkrtSdS)N) rr; compressobjDEFLATEDZ_DEFAULT_COMPRESSIONrr= BZ2Compressorr r)r compresslevels r_get_compressorrHs $$  $#M4=#FF F :DM3OOO ) # #  $$]33 3 """ ( " "trclt||tkrdS|tkrtjdS|t krt jS|tkrtSt |}|rtd||fztd|fz)NrBzcompression type %d (%s)zcompression type %d) r@rrr; decompressobjrr=BZ2Decompressorr r#rrr>)rdescrs r_get_decompressorrMs}%%% ""t , & &!#&&& ) # #"$$$ ( " "!!! $$]33  P%&@MSXCY&YZZ Z%&;}>N&NOO Orc0eZdZdZdZd dZd dZdZdS) _SharedFilecd||_||_||_||_||_|j|_dSr)_file_pos_close_lock_writingseekable)rfileposcloselockwritings rrz_SharedFile.__init__s2       rc|jSr)rRrs rrtz_SharedFile.tells yrrc |j5|rtd|j|||j|_|jcdddS#1swxYwYdS)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.)rTrUrrQrQrtrR)rrawhences rrQz_SharedFile.seeks Z  }} K "JKKK JOOFF + + + ))DI9                  sA#A88A<?A<c<|j5|rtd|j|j|j|}|j|_|cdddS#1swxYwYdS)NyCan't read from the ZIP file while there is an open writing handle on it. Close the writing handle before trying to read.)rTrUrrQrQrRrJrtrnrcs rrJz_SharedFile.read s Z  }} K "JKKK JOODI & & &:??1%%D ))DI                  sAs  +%3%3& .t/BCC    $ 7E " " &!(D  %c D  !%D  !! &,3LLNN)+2+@('.'8$'+'8$!%    D   W #<< 8%/14< &kR/47 $$&&AJ"#=@U#UVVV W WsAD D('D(ct|j|_|jd}|xjdzc_||dS)Nrr*)rrwrrvrJrz)rrs rrzZipExtFile._init_decrypterqsU' 22 ##B'' r!v&&r**rcd|jjd|jjg}|jsq|d|jd|j|jtkr;|dt |j|jzn|d|dd |S) Nr.z name=z mode=r [closed]rr) rrrclosedr7rrryrrrr8rrOs rrzZipExtFile.__repr__|s"n777"n99;<{ ' MMM 499E F F F"j00 1.2243F373FHHHIII MM+ & & & cwwvrr_c |dkrF|jd|jdz}|dkr|j|j|}||_|Stj||S)Nr r!)r~rrioBufferedIOBasereadline)rlimitr>lines rrzZipExtFile.readlinesr 199 %%eT\::Q>A1uu' a8    ))$666rr!cX |t|j|jz krn||}t||jkr$||j|jdz|_d|_n|xjt|zc_|j|j|jdzS)Nri)r6r~rrJ)rrcchunks rpeekzZipExtFile.peeksD s4#$$t|3 3 3IIaLLE5zzDL((#(4+;DLMM+J#J    E *  dlS.@ @AArc2|jrtddS)NI/O operation on closed file.T)rrrs rreadablezZipExtFile.readables ; ><== =trc |jrtd||dkrO|j|jd}d|_d|_|js$|||jz }|j$|S||jz}|t|jkr|j|j|}||_|S|t|jz }|j|jd}d|_d|_|dkro|jsh||}|t|kr||_||_||d|z }n$||z }|t|z}|dkr|jh|S)Nzread from closed file.rr)rrr~rr}_read1MAX_Nr6)rrcbufendrcs rrJzZipExtFile.reads}  ; 7566 6 9A"4<==1C"D DLi /t{{4:...i /J$, T%&& & &"4<#34CDLJ #d&'' 't|}}- !eeDIe;;q>>D3t99}}#'   tBQBx 4KC TNA!eeDIe rc|jdSt||j|_|jr'|j|jkrt d|jzdSdS)NzBad CRC-32 for file %r)rrrr}rr)rnewdatas r _update_crczZipExtFile._update_crcsh   % F!'4+<== 9 C*d.@@@5 ABB B C C@@rcp ||dkrT|j|jd}d|_d|_|js)||j}|r||z }n|j)|S||jz}|t |jkr|j|j|}||_|S|t |jz }|j|jd}d|_d|_|dkrZ|jsS||}|t |kr||_||_||d|z }n|r||z }n|jS|SNrr)r~rr}rrr6)rrcrrcrs rread1zZipExtFile.read1slE 9A"4<==1C"D DLi {{4:..4KC i  J$, T%&& & &"4<#34CDLJ #d&'' 't|}}- q55i {{1~~s4yy=='+D$#$DL48OC4KCi  rcl|js|dkrdS|jtkrH|jj}|t |kr(|||t |z z }n||}|jtkr|jdk|_n|jtkr}t||j }|j ||}|jj p|jdko |jj |_|jr||j z }n6|j |}|jj p |jdk|_|d|j}|xjt |zc_|jdkrd|_|||S)NrrT)r}ryrr|unconsumed_tailr6_read2rrzry MIN_READ_SIZEr)r'r!r{rrbs rrzZipExtFile._read1s 9 Q3  , . .%5D3t99}} AD M222;;q>>D  * , ,+q0DII  L 0 0At)**A%00q99D+/@,1@!/?? Iy 3*00222%0066D*.J$2E2JDIKTZK  c$ii :??DI  rc,|jdkrdSt||j}t||j}|j|}|xjt |zc_|st|j||}|Sr) rzryrminrvrJr6EOFErrorrrbs rrzZipExtFile._read2"s  ! # #3 4% & & 4& ' '}!!!$$ s4yy( N ? &??4((D rc |jr|jtdS#twxYwr)rxrvrYsuperrrs rrYzZipExtFile.close2sR " & ##%%% GGMMOOOOOEGGMMOOOOs A"A'c<|jrtd|jSNr)rrrrs rrVzZipExtFile.seekable9s# ; ><== =~rrc^|jrtd|jstjd|}|dkr|}n,|dkr||z}n |dkr |j|z}ntd||jkr|j}|dkrd}||z }||jz}|dkr"|t|j kr ||_d}n|dkr|j |j |j |_|j|_|j|_d|_ d|_t%|j|_d|_|}|j||dkr5t1|j|}||||z}|dk5|S) Nzseek on closed file.!underlying stream is not seekablerr!r"zCwhence must be os.SEEK_SET (0), os.SEEK_CUR (1), or os.SEEK_END (2)rF)rrrrUnsupportedOperationrtrrr6r~rvrQrrrrrzr{rMryr|r}rrr MAX_SEEK_READrJ)rrar^curr_posnew_pos read_offset buff_offsetread_lens rrQzZipExtFile.seek>s ; 5344 4~ O)*MNN N99;; Q;;GG q[['GG q[[*V3GGCDD D T) ) )*G Q;;G( !DL0 !   c$2B.C.C C C&DLKK 1__ M  t8 9 9 9 $ 4D "&":D -DJ"D DL!243F!G!GD DI!K*$$&&&Aoo4-{;;H IIh    8 #KAoo yy{{rc|jrtd|jstjd|j|jz t|jz |j z}|S)Nztell on closed file.r) rrrrrrr{r6r~r)rfileposs rrtzZipExtFile.tellpsc ; 5344 4~ O)*MNN N&3c$:J6K6KKdlZr)NFrgr!rf)rrrrrrrrrrrrrJrrrrrYrVrQrt __classcell__rs@rrtrt0sS EMM37$0W0W0W0Wf + + +   7777 B B B B !!!!FCCC###J"""H  0000drrtcFeZdZdZedZdZdZfdZxZ S) _ZipWriteFilec||_||_||_t|j|j|_d|_d|_d|_ dSrk) _zinfo_zip64_zipfilerHrr _compressor _file_size_compress_size_crc)rzfrrs rrz_ZipWriteFile.__init__zsP   *5+>+0+?AA rc|jjSr)rrGrs rrvz_ZipWriteFile._fileobjs }rcdS)NTrrs rwritablez_ZipWriteFile.writablestrc|jrtdt|ttfrt |}nt |}|j}|xj|z c_t||j |_ |j r7|j |}|xj t |z c_ |j||Sr)rrrrrr6 memoryviewnbytesrrrrrrrvrn)rrcrs rrnz_ZipWriteFile.writes ; ><== = dUI. / / !YYFFd##D[F 6!$ **   -#,,T22D   3t99 ,   D!!! rc L|jrdS t|jrb|j}|xjt |z c_|j||j|j _ n|j |j _ |j |j _ |j |j _|js>|j t krt#d|jt krt#d|j jt&zr|jrdnd}|jt)j|t,|j j |j j |j j|j|j_n|j|j_|j|j j|j|j |j|j|jj|jj|j |j |jj|j j <d|j_!dS#d|j_!wxYw)Nz*File size too large, try using force_zip64z0Compressed size too large, try using force_zip64z*> '' +/-*<*<*>*> ' ""4;#<=== ##DK$:$:4;$G$GHHH ""4=#:;;; M " ) )$+ 6 6 6=A[DM $T[%9 :%*DM " " "UDM " * * * *s I;JJ#) rrrrpropertyrvrrnrYrrs@rrrys  X &++++++++++++++++++rrc*eZdZ dZdZdeddfddddZdZdZdZ d Z d Z d Z d$d Z d ZdZdZedZejdZd$dZd%dddZd&dZd'dZd(dZedZdZdZ d(dZ d'dZd)dZd Z d!Z!d"Z"d#Z#dS)*r NrT)rmetadata_encodingc |dvrtdt|||_d|_d|_i|_g|_||_||_||_ d|_ d|_ ||_ ||_ |j r|dkrtdt|tjrtj|}t|t$r[d|_||_dd d d d d d d}||} t+j|| |_n#t0$r| |vr || } Y5wxYwn$d|_||_t3|dd|_d|_t7j|_d|_d|_ |dkr| dS|dvrd|_ |j!|_" |j#|j"dS#tHt0f$r d|_YdSwxYw#tHt0f$r+tK|j|_d|_"d|_YdSwxYw|dkr | |j#|j"dS#tL$rD|j#ddd|_|j!|_"YdSwxYwtd#|j} d|_|'| xYw)N)rwxaz+ZipFile requires mode 'r', 'w', 'x', or 'a'Frrrz5metadata_encoding is only supported for reading filesrKw+bx+br+bwbxb)rrrrrrrTr!r)rrrr"z"Mode must be 'r', 'w', 'x', or 'a')(rr@ _allowZip64 _didModifydebugrrr?rGrr _comment_strict_timestampsrrrrrstr _filePassedrNrrMrGrEgetattr _fileRefCnt threadingRLockrTrrU_RealGetContentsrtrrQrrir_fpclose) rrWrr? allowZip64rGrrmodeDictrrGs rrzZipFile.__init__sv  + + +JKK K;'''%  &*  "3!2  ! IdckkGII I dBK ( ( #9T??D dC  8 D  DM"U%$T$@@H~H  gdH55DGG8++#+H#5    D DG#D&$77DM_&&  ' s{{%%'''''###' /%)W\\^^DN/ T^44444*G4///)./'0+++'00DG%&DN%*DNNNN+ 4))+++GLL00000!444GLLA&&&'+DO%)W\\^^DNNNN4!!EFFF BDG MM"    s9DD.,D.K& K&,H G,,HK&HK& 8IK&I K&3JA KK&KK&&&L c|Srrrs r __enter__zZipFile.__enter__Gs rc.|dSrrY)rtypevalue tracebacks r__exit__zZipFile.__exit__Js rcd|jjd|jjg}|jg|jr|d|jzn$|j|d|jz|d|jzn|d|dd|S) Nrrz file=%rz filename=%rz mode=%rrrr) rrrrGrr7rNrr8rs rrzZipFile.__repr__Ms"n777"n99;< 7  > j4723333* nt}<=== MM*ty0 1 1 1 1 MM+ & & & cwwvrc  |j} t|}n#t$rtdwxYw|std|jdkrt ||t }|t}|t|_ |t|z |z }|ttkr|ttzz}|jdkr||z}t d|||||z|_|jdkrtd||jd||}t%j|}d}||kr|t(} t+| t(krtdt-jt0| } | t2t4krtd|jdkrt | || t6} | t8} | t:zr| d } n| |jpd } tA| } || tB| _"|| tF| _$| tJ| _&| dd \ | _'| _(| _)| _*| _+| _,} }| _-| _.| _/| j)t`krtcd | j)d z z| dd\| _2| _3| _4| | _5|dz dz|dz dz|dz| dz | dz dz| dzdzf| _6| 7| j&|z| _&|j89| | |j:| j;<|t(z| t6z| tBz| tFz}|jdkrt d|||k|j}ty|j8ddD]}||_=|j&}dS)NzFile is not a zip filer!r"zgiven, inferred, offsetrz Bad offset for central directoryzTruncated central directoryz&Bad magic number for central directoryrcp437rzzip file version %.1fr)r,r/r(rr%rr*r totalc|jSr)r)rs rz*ZipFile._RealGetContents..s e.ArT)keyreverse)>rGrDrErrprintr^r_ _ECD_COMMENTr _ECD_LOCATIONrYrXrVrRrrQrJrBytesIOsizeCentralDirr6rSr5structCentralDir _CD_SIGNATUREstringCentralDir_CD_FILENAME_LENGTH _CD_FLAG_BITSrdecoderr _CD_EXTRA_FIELD_LENGTHr9_CD_COMMENT_LENGTHr_CD_LOCAL_HEADER_OFFSETrrirrrrrrrrMAX_EXTRACT_VERSIONr>rrrrrrrr7rrNsortedr)rrGrbsize_cd offset_cdconcatinferredrcrcentdirrNflagsrtd end_offsetrs rrzZipFile._RealGetContents[sO= W 7 __FF 7 7 7566 6 7 7566 6 :>> &MMM#;' |,  &09< . !%7 7 7 '*AA BF :>> )H +Y& I I I"V+ >A  ?@@ @ """www Z  googgn--G7||~-- !>???m$4g>>G}%)999 !IJJJzA~~gwww':;<>AG(: ;<AO5z$ZipFile.namelist..s888$ 888rrrs rnamelistzZipFile.namelists988$-8888rc |jSrr)rs rinfolistzZipFile.infolists }rc tddz||jD]5}d|jddz}td|j||jfz|6dS)Nz%-46s %19s %12s)z File Namez Modified SizerWz%d-%02d-%02d %02d:%02d:%02dr&z %-46s %s %12d)r rrrNr)rrWrdates rprintdirzZipFile.printdirs9 "GG    ]  E05?2A23FFD /U^T5?$KK       rc d}|jD]z} ||jd5}||r ||dddn #1swxYwYb#t$r |jcYcSwxYwdS)Nir)rrMrNrJr)r chunk_sizerfs rtestzipzZipFile.testzips3 ] & &E &YYu~s33q&&,,&&,, & & &~%%%%% & & &s4A-,A! A-!A% %A-(A% )A--BBcd |j|}|td|z|S)Nz(There is no item named %r in the archive)rrKeyError)rrinfos rgetinfozZipFile.getinfosC:""4(( <:TACC C rc |r9t|ts$tdt|jz|r ||_dSd|_dS)Npwd: expected bytes, got %s)rr TypeErrorrrr )rr s r setpasswordzZipFile.setpasswords[7  Pz#u-- P9DII>F force_zip64c |dvrtd|r|dkrtdjstdt|tr|}nC|dkr(t|}j|_j|_n|}|dkr ||Sj rtdxj dz c_ tj|j jjfd } |t"}t%|t"krt'd t)jt,|}|t.t0krt'd ||t2}|t4r ||t4|jt8zrt;d |jt<zrt;d |t>t@zr|!d} n|!j"pd} | |j#krt'd|j#d|d|j$=|%|j&z|j$krt'd|j#d|jtNz} | rY|sj(}|r9t|tRs$tUdtW|j,z|st[d|znd}t]||||dS#|/xYw)N>rrzopen() requires mode "r" or "w"rz'pwd is only supported for reading filesz2Attempt to use ZIP archive that was already closedrHrar!cjSr)rUrsrrzZipFile.open..(s $-rzTruncated file headerz Bad magic number for file headerz$compressed patched data (flag bit 5)zstrong encryption (flag bit 6)rrzFile name in directory z and header z differ.zOverlapped entries: z (possible zip bomb)r;z6File %r is encrypted, password required for extractionT)0rrGrr r?rrGrr9_open_to_writerUrrOrrrTrJsizeFileHeaderr6rrSr5r _FH_SIGNATUREr_FH_FILENAME_LENGTH_FH_EXTRA_FIELD_LENGTHr_MASK_COMPRESSED_PATCHr>_MASK_STRONG_ENCRYPTION_FH_GENERAL_PURPOSE_FLAG_BITSrrrrrrtr_MASK_ENCRYPTEDr rr<rrr<rtrY) rrrr rIrzef_filefheaderfname fname_str is_encrypteds ` rrMz ZipFile.opens  z ! !>?? ?  HDCKKFGG Gw FDFF F dG $ $ 'EE S[[DMME"&"2E #'#5E LL&&E 3;;&&u+&FF F = GFGG G Atw(;#}dj:O:O:O:OQQ4 mmN33G7||~-- !8999m$4g>>G}%)999 !CDDDMM'*=">??E-. ? g&<=>>>!77 R)*PQQQ!88 L)*JKKK458JJ L!LL11 !LL)?)J7KK E/// j***EEE3444!- %"558III !c8K!c!c!cddd!?_ ) GLL ( ( ("gllnn   e&&u--... T5%000rc |tj}ntj|}||||Sr)rgetcwdr_extract_member)rmemberrr s rextractzZipFile.extracts@ <9;;DD9T??D##FD#666rc ||}|tj}ntj|}|D]}||||dSr)r*rr_rr`)rrmembersr rs r extractallzZipFile.extractallsn ?mmooG <9;;DD9T??D 5 5G  $ 4 4 4 4 5 5rc( |j}|s4d}t|dt|z}||_||}d||D}|d|D}|S)Nz:<>|"?*_c3@K|]}|dVdS)rN)rstripr'rs r z1ZipFile._sanitize_windows_name..s,AAQ188C==AAAAAArc3K|]}||V dSrrrjs rrkz1ZipFile._sanitize_windows_name..s'77QQ7q777777r)!_windows_illegal_name_trans_tabler maketransr6 translatesplitr8)rrpathseptableillegals r_sanitize_windows_namezZipFile._sanitize_windows_namesI5 :GMM'3W+=>>E49C 1##E**AA'--*@*@AAA,,77'77777rct t|ts||}|jdt jj}t jjr4|t jjt jj}t j |d}dt jj t jj ft jj fd| t jjD}t jjdkr%||t jj}t j ||}t j|}t j|}|r3t j|st j||r5t j|st j||S|||5}t-|d5}t/j||dddn #1swxYwYdddn #1swxYwY|S)Nrr!rc3$K|] }|v|V dSrr)r'rinvalid_path_partss rrkz*ZipFile._extract_member..s>#C#C&'/A&A&A$%&A&A&A&A#C#Cr\r r)rr r9rNrrrrrrcurdirpardirr8rprtrdirnameexistsmakedirsrrmkdirrMshutil copyfileobj) rra targetpathr r upperdirssourcetargetrws @rr`zZipFile._extract_members &'** *\\&))F/))#rw{;; 7> CoobgnbgkBBG'$$W--a0 "'."'.A'+""#C#C#C#CgmmBGK.H.H#C#C#CCC 7;$  11'27;GGGW\\*g66 W%%j11 GOOJ//  #RW^^I66 # K " " " ==?? 7==,, %$$$  YYv3Y ' ' /6 *d # # /'-  vv . . . / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /s6#J-4J J-J J-J J--J14J1c |j|jvr#ddl}|d|jzd|jdvrt d|jst dt|j|j s[d}t|j tkrd}n%|j tkrd }n|jtkrd }|rt!|d zdSdS) NrzDuplicate name: %rr#r@rrrz&write() requires mode 'w', 'x', or 'a'z4Attempt to write ZIP archive that was already closed Files countFilesizez Zipfile size would require ZIP64 extensions)rNrrCrDrrrGr@rrr6rZIP_FILECOUNT_LIMITrrrr)rrrCrequires_zip64s rr]zZipFile._writechecks!D >T_ , , OOO MM.?AM N N N 9O + +EFF Fw HFHH H5./// F!N4=!!%888!.;..!+${22!/ F">#D$EFFF F F F FrcH |jstd|jrtdt|||j}|r%d|_d|_| |dS|||_ n |j |_ |||_ n |j |_ t|d5}||d5}tj||ddddn #1swxYwYddddS#1swxYwYdS)N7Attempt to write to ZIP archive that was already closedz>Can't write to ZIP archive while an open writing handle existsrrrKri )rGrrUr rrrrrrrr?rrGrMrr)rrNrrrGrsrcdests rrnz ZipFile.writes w KIKK K = P !!(G484K"MM <<>> 6"#E EI JJu     (&3##&*&6#('4$$'+'9$h%% 6diis.C.C 6t"3f555 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6s6DC?3 D?D DD DDDc t|tr|d}t|tst|t jt jdd}|j|_|j|_ |j ddkrd|_ |xj dzc_ n d|_ n|}|j std |jrtd |||_|||_ t||_|j5||d 5}||dddn #1swxYwYddddS#1swxYwYdS) Nrr&)rNrr_riAr-r[rz?Can't write to ZIP archive while an open writing handle exists.r)r)rrrr rrr?rrGrrNrrGrrUr6rrTrMrn)rzinfo_or_arcnamercrrGrrs rwritestrzZipFile.writestrs 0 dC  (;;w''D*G44 %%5&*nTY[[&A&A"1"&EGGGE"&"2E #'#5E ~b!S((&3###t+###&1##$Ew KIKK K = Q   $"/E   $#0E d)) Z ! !5s++ !t 4    ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !s6!E39E E3E E3"E #E33E7:E7c t|tr&|}|stdnt|tra|}|ds|dz }t|}d|_d|_d|zdzdz|_d|_ |xjdzc_ntd|j 5|j r|j |j|j |_|jt&kr|xjt*zc_||d|_|j|||j|j<|j |d |j |_ddddS#1swxYwYdS) Nz/The given ZipInfo does not describe a directoryrri@rr-zExpected type str or ZipInfoTF)rr rrrrrrrrr<rTrrGrQrrtrrr rr\r]rrr7rrNrnr)rzinfo_or_directory_namerrdirectory_names rrz ZipFile.mkdirAs 9 -w 7 7 <+E<<>> T !RSSS T / 5 5 <4N!**3// &#%N++E"#E EI$+dNf#<"CE EO   4 '   :;; ; Z , ,~ - T^,,,"&',,..E "h..#::   U # # #"DO M  ' ' '.3DOEN + GMM%**511 2 2 2!W\\^^DN , , , , , , , , , , , , , , , , , ,s C:GGGc0 |dSrrrs r__del__zZipFile.__del__ds@ rc |jdS|jrtd |jdvr`|jrY|j5|jr|j|j| dddn #1swxYwY|j}d|_| |dS#|j}d|_| |wxYw)NzvCan't close the ZIP file while there is an open writing handle on it. Close the writing handle before closing the zip.r) rGrUrrrrTrrQr_write_end_recordrrls rrYz ZipFile.closehs2  7? F = QPQQ Q yO+++Z--~5 T^444**,,,--------------- BDG MM"     BDG MM"    s.B0;B4 B0BB0BB00%CcR |jD]}|j}|ddz dz|ddzz|dz}|ddz|d dzz|ddzz}g}|jtks|jtkr9||j||jd }d }n|j}|j}|jtkr||jd }n|j}|j} d} |rQt| d } tj d d t|zzddt|zg|R| z} t} |j tkrtt | } n%|j t"krtt$| } t| |j} t| |j} |\} }tj t,t.| |j| |j||j |||j||t| t| t|jd|j|j|}|j||j| |j| |j|j|j }t|j}||j!z }|j!}d}|tDkrd}n|tkrd}n |tkrd}|r|j#stI|dztj tJtLddddd|||| }|j|tj tNtPd|d}|j|tS|d}tS|d }tS|d }tj tTtVdd||||t|j, }|j||j|j,|j-dkr|j.|j/dS)Nrrr(r!r%r"r#r*r$rrr2QrrzCentral directory offsetzCentral directory sizer,rrr)0rrrrrr7rr9rBrSrr6rrrryrr rrrirrrrrrrrrrGrnrtrrrrrWrXrTrUrrwrvrrtruncater!)rrrrrr9rrr extra_datarrrirNrrpos2 centDirCount centDirSize centDirOffsetr zip64endrec zip64locrecrbs rrzZipFile._write_end_record~sw]3 )3 )EB!ut|)BqEQJ6A>GerkBqEQJ."Q%1*=GE,,% 33 U_--- U0111& * !O % 3 "[00 U0111 * % 3 JK ,)*d;; #[CE N*qU|-&+---/9: , "i//!-== $00!, << !+u/DEEO e.BCCN"'"<"<">"> Hik"2"2N"'"5"+U-@'7"')]I"%h--Z#emBTBT"#U%8%:M"/11G GMM' " " " GMM( # # # GMM* % % % GMM%- ( ( ( (w||~~4=)) T^+   - - -*NN [ ( (7NN ; & &5N  ;# F">#D$EFFF +"$6BAq, ],,K GMM+ & & & +))1dA77K GMM+ & & &|V44Lk:66K z::M-/?<(-T]9K9KMM  f  dm$$$ 9   G       rcr|xjdzc_|js|js|dSdSdSNr!)rrrYrls rrzZipFile._fpclosesP A (8  HHJJJJJ    rr)rN)F)NN)NNN)r)$rrrrGrmrrrrrrr*r,r1r5r9r=rrsetterrJrMrLrbrerrtr`r]rnrrrrYrrrrrr r ss, B(,%"%:$#^:>RV^^^^^@   T-T-T-l999  & & &X ^  ^  dEdddddL(1(1(1(1T 7 7 7 75555"  [ (((TFFF.'+046666D48'!'!'!'!R!,!,!,!,F,\\\|rr c.eZdZ deddfdZd dZdZdS) r rTr_cRt|||||||_dS)N)rr?r)r r _optimize)rrWrr?roptimizes rrzPyZipFile.__init__s5t$K$.  0 0 0!rrNcb tj|}|rL||sA|jr8tj|rdnd}t |d|ddStj|\}}tj|rtj|d}tj|r|r|d|}n|}|jrt d|d|| |d d |\}} |jrt d | | || ttj |} | d| D]5} tj|| } tj| \} }tj| rVtjtj| dr|| || |d kru|r%|| s|jrt d| z| | d d |\}} |jrt d | | || 7dS|jrt d|ttj |D]} tj|| } tj| \} }|d kru|r%|| s|jrt d| zq| | d d |\}} |jrt d | | || dS|d dd krt!d| |d d |\}} |jrt d| | || dS)NrrW z skipped by filterfuncz __init__.pyrzAdding package inasrAdding) filterfunc.pyzfile %r skipped by filterfunczAdding files from directoryz.Files added with writepy() must end with ".py"z Adding file)rrrrrr rpr8isfile _get_codenamernrlistdirremovesplitextwritepyr<)rpathnamebasenamerlabeldirrinitnamerWrdirlistrNrrootexts rrzPyZipFile.writepys` 9X&&  jj22 z I"$'--"9"9EvuuuhhhGHHH FGMM(++ T 7== " "; 'w||Hm<>"',,t]*K*KLL@ LLx4>)@@@%%jj.>.>%#zN %&E&L M M M$)-););D2J.>%#zN %&E&L M M M$)-););D2J._compileEs    z )k4((( ""4"IIII,   cguuuuu 4s7 A AA rz.pycr) optimizationr!r"rz"invalid value for 'optimize': {!r})rrrg) importlibutilcache_from_sourcerrrrrrrr rformatrrp) rrrrfile_pyfile_pyc pycache_opt0 pycache_opt1 pycache_opt2rrWr archivenames ` rrzPyZipFile._get_codename>s      e#f$ ~77b7QQ  ~77a7PP  ~77a7PP >R  x((! .'(##,0@0@0III"**%%'.... .',''0BGG4D4D4MMM%"'.... .',''0BGG4D4D4MMM%"'.... .',''0BGG4D4D4MMM%"8G$$ .y)Q.. ,+q00 , ,&GG&--EGG~""$"">Q&&(EE^q(((EE>EEdnUUC$S//)GNN5)) .GENN+rww/?/?/HHHx$.AAA.&--EGgmmG,,Q/  <%-XX{{;K{##r)rN)rrrrrrrrrrr r sbN"%: 2"""" P'P'P'P'dP$P$P$P$P$rr cJ tjt|ddSr) itertoolsislice _ancestry)rs r_parentsrs$  IdOOQ 5 55rc#K |tj}|r?|tjkr3|Vtj|\}}|r|tjk-dSdSdSdSr)ri posixpathrrp)rtails rrrs ;;y} % %D +49=(( _T** d +49=((((++++((rcR tjt|j|Sr)r filterfalseset __contains__)minuend subtrahends r _differencers%  Z!=w G GGrcbeZdZ edZfdZdZdZfdZe dZ xZ S) CompleteDirsctjtt|}d|D}t t ||S)Nc34K|]}|tjzVdSr)rr)r'r s rrkz-CompleteDirs._implied_dirs..s)661y}$666666r)rchain from_iterabler r_deduper)namesparentsas_dirss r _implied_dirszCompleteDirs._implied_dirssL///He0D0DEE66g666{7E22333rctt|}|t||zSr)rrr*rxr)rrrs rr*zCompleteDirs.namelists?lD))2244tD..u556666rcDt|Sr)rr*rs r _name_setzCompleteDirs._name_sets4==??###rcR |}|dz}||vo||v}|r|n|SNr)r)rrrr| dir_matchs r resolve_dirzCompleteDirs.resolve_dirsD   *%:'U*: #-ww-rc t|S#t$r?|dr||vrt |cYSwxYw)Nrr&)rr9r7rrr )rrrs rr9zCompleteDirs.getinfos  *77??4(( ( * * *==%% T^^5E5E)E)ED))) ) ) ) *s %AA.-A.c t|tr|St|ts ||Sd|jvrt}||_|SrF)rrr rr)rrs rmakezCompleteDirs.makesa  fl + + M&'** 3v;;  fk ! !C r) rrr staticmethodrr*rrr9rrrrs@rrrs 44\4 77777$$$... * * * * *[rrc*eZdZ fdZfdZxZS) FastLookupctjt5|jcdddS#1swxYwYt t ||_|jSr) contextlibsuppressr_FastLookup__namesrrr*rs rr*zFastLookup.namelist s   0 0  <                Z..7799 | /33ctjt5|jcdddS#1swxYwYt t ||_|jSr)rrr_FastLookup__lookuprrrrs rrzFastLookup._name_set s   0 0 ! != ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !j$//99;; }r)rrrr*rrrs@rrr sV  rrc2tj|d||fS)Nr#)r text_encoding)encodingargskwargss r_extract_text_encodingr  s Ha ( ($ 66rceZdZ dZddZddddZdZed Zed Z ed Z ed Z ed Z dZ dZdZdZdZdZdZdZdZdZdZeZedZdS)rz>{self.__class__.__name__}({self.root.filename!r}, {self.at!r})rcT t||_||_dSr)rrrat)rrrs rrz Path.__init__j s' OOD)) rrNrycn |rt||d}|s|dkrt||j|j||}d|vr|s|rtd|St|i|\}}}tj ||g|Ri|S)Nrrrybz*encoding args invalid for binary operation) rIsADirectoryErrorr}FileNotFoundErrorrrMrrr r TextIOWrapper)rrr r r zip_modestreamrs rrMz Path.openw s ;;== *#D)) )7{{}} *S#D)) )s;; $;; Ov O !MNNNM!7!H!H!H$B4BBB6BBBrcLtj|jp |jjSr)pathlib PurePosixPathrrrNrs r_basez Path._base s$TW%B 0BCCCrc4|jSr)rrrs rrz Path.name zz||  rc4|jSr)rsuffixrs rrz Path.suffix szz||""rc4|jSr)rsuffixesrs rrz Path.suffixes szz||$$rc4|jSr)rstemrs rr!z Path.stem rrcntj|jj|jSr)rrrrNjoinpathrrs rrNz Path.filename s'|DI.//88AAArct|i|\}}}|jd|g|Ri|5}|cdddS#1swxYwYdSrF)r rMrJ)rr r rstrms r read_textzPath.read_text s!7!H!H!H$ TYsH 6t 6 6 6v 6 6 $99;;                  sAA Ac|d5}|cdddS#1swxYwYdS)NrKrG)rr%s r read_byteszPath.read_bytes s~ YYt__ 99;;                  s 7;;ctj|jd|jdkSr)rr|rri)rrs r _is_childzPath._is_child s4 !4!4559L9LLLrc8||j|Sr)rr)rrs r_nextz Path._next s~~di,,,rcF|j p|jdSr)rrrs rrz Path.is_dir s!7{3dg..s333rcT|o| Sr)r}rrs ris_filez Path.is_file s {{}}2T[[]]!22rcB|j|jvSr)rrrrs rr}z Path.exists sw$)--////rc|stdt|j|j}t |j|S)NzCan't listdir a file)rrr r,rr*filterr*)rsubss riterdirz Path.iterdir sR{{}} 5344 44:ty113344dnd+++rcJtj|jj|jSr)rr8rrNrrs r__str__z Path.__str__ s~di0$':::rc8|j|S)Nr) _Path__reprrrs rrz Path.__repr__ s{!!t!,,,rctj|jg|R}||j|Sr)rr8rr,rr)rothernexts rr#z Path.joinpath s=~dg....zz$)//55666rc|js |jjStj|jd}|r|dz }||Sr)rrNparentrr|rir,)r parent_ats rr=z Path.parent sYw (=' '%dgnnS&9&9::    Izz)$$$r)r)r)rrrr8rrMrrrrrr!rNr&r(r*r,rr/r}r4r6rr# __truediv__r=rrrrr sKZNF    CCCCCC(DDD!!X!##X#%%X%!!X!BBXB MMM---444333000,,, ;;;---777K %%X%%%rrcddl}d}||}|d}|dddd |d d d dd|ddddd|dddd |ddd ||}|j}|jz|j}t|d|5}|}dddn #1swxYwY|r"td |tddS|j H|j }t|d|5}| ddddS#1swxYwYdS|j L|j \}} t|d|5}|| ddddS#1swxYwYdS|j|r/td t j!t!jd"|jd} |j} fd#t| d$5}| D]} t(j| } | szShow listing of a zipfile)metavarhelpz-ez --extractr")rCz zExtract zipfile into target dir)nargsrDrEz-cz--create+)zzzCreate zipfile from sourcesz-tz--testzTest if a zipfile is validz--metadata-encodingz z2Specify encoding of member names for -l, -e and -tr)rz.The following enclosed file is corrupted: {!r}z Done testingz/Non-conforming encodings not supported with -c.r/r!c tj|r|||tdStj|r|r|||t tj|D]M}|tj||tj||LdSdSr) rrrrnrrrrr8)rrzippathnmaddToZips rrKzmain..addToZip sw~~d## Pw 55555t$$ P,HHT7+++ D!1!122PPBHRW\\$33RW\\'25N5NPPPP  P PPPrrr)argparseArgumentParseradd_mutually_exclusive_group add_argument parse_argsrtestr r5r rrxr1rbrecreaterstderrexitpoprrrr|rzr{)r rLrAparsergrouprrrbadfilerzzip_namefilesrrIrKs @rmainr[ sOOOGK  $ $ $ = =F  / / / > >E tX{7999 t[<=??? tZs39;;; tX{8::: -|QSSS   T " "D%H yi S# : : : #bjjllG # # # # # # # # # # # # # # #  T BII'RR S S S n  i S# : : : b KKMMM                    !l V S# : : : "b MM& ! ! ! " " " " " " " " " " " " " " " " " "    Cz # # # # HQKKK;??1%%  P P P P PXs # # ,r , ,'**400F g..rwt/D/DEEGr29bi888 GT7++++  , , , , , , , , , , , , , , , , , , ,) ! sI.DDD/FFFG$$G(+G( B K;;K?K?__main__r)binasciiimportlib.utilrrrrrrrrSrrrrrr;r ImportErrorr=r__all__ ExceptionrrrrrrrBrrrr rrrrrrwrvrrurYrZr[r\r]r^r_r{r r rrrr_CD_CREATE_VERSION_CD_CREATE_SYSTEM_CD_EXTRACT_VERSION_CD_EXTRACT_SYSTEMr_CD_COMPRESS_TYPE_CD_TIME_CD_DATE_CD_CRC_CD_COMPRESSED_SIZE_CD_UNCOMPRESSED_SIZErrr_CD_DISK_NUMBER_START_CD_INTERNAL_FILE_ATTRIBUTES_CD_EXTERNAL_FILE_ATTRIBUTESrrTr\rrQrRrrrrMrN_FH_EXTRACT_VERSION_FH_EXTRACT_SYSTEMrS_FH_COMPRESSION_METHOD_FH_LAST_MOD_TIME_FH_LAST_MOD_DATE_FH_CRC_FH_COMPRESSED_SIZE_FH_UNCOMPRESSED_SIZErOrPrTrUrRrWrXrV_CD64_SIGNATURE_CD64_DIRECTORY_RECSIZE_CD64_CREATE_VERSION_CD64_EXTRACT_VERSION_CD64_DISK_NUMBER_CD64_DISK_NUMBER_START_CD64_NUMBER_ENTRIES_THIS_DISK_CD64_NUMBER_ENTRIES_TOTAL_CD64_DIRECTORY_SIZE_CD64_OFFSET_START_CENTDIRrStructr4rBrHr rqrDobjectr r rrrr#rr@rHrMrOrirrtrr r rrdictfromkeysrrrrr rr[rrrrrs6     KKK JEE D NEEEJJJJ CCCKKKK DDD            9    #        !122    $  !122     !!  #   "  !122  ! %))&/*CDD"""6?#566!" #fmE*** (((V:::z`````v```N   ###L"""""""".8wxxx  x  x yzy{   !"#(NNN&     PPP$%!%!%!%!%!%!%!%!P(FFFFF"FFFR P+P+P+P+P+B%P+P+P+hS S S S S S S S lk$k$k$k$k$k$k$k$\666&+++, -/HHH999997999x&7777 y%y%y%y%y%y%y%y%xC,C,C,C,L zDFFFFFs5 AAAA!!A+*A+/A44A>=A>