summaryrefslogtreecommitdiffstats
path: root/src/libs/7zip/unix/DOCS
diff options
context:
space:
mode:
Diffstat (limited to 'src/libs/7zip/unix/DOCS')
-rw-r--r--src/libs/7zip/unix/DOCS/7zC.txt194
-rw-r--r--src/libs/7zip/unix/DOCS/7zFormat.txt469
-rw-r--r--src/libs/7zip/unix/DOCS/License.txt52
-rw-r--r--src/libs/7zip/unix/DOCS/MANUAL/commands/add.htm87
-rw-r--r--src/libs/7zip/unix/DOCS/MANUAL/commands/bench.htm79
-rw-r--r--src/libs/7zip/unix/DOCS/MANUAL/commands/delete.htm59
-rw-r--r--src/libs/7zip/unix/DOCS/MANUAL/commands/extract.htm91
-rw-r--r--src/libs/7zip/unix/DOCS/MANUAL/commands/extract_full.htm68
-rw-r--r--src/libs/7zip/unix/DOCS/MANUAL/commands/index.htm33
-rw-r--r--src/libs/7zip/unix/DOCS/MANUAL/commands/list.htm77
-rw-r--r--src/libs/7zip/unix/DOCS/MANUAL/commands/style.css232
-rw-r--r--src/libs/7zip/unix/DOCS/MANUAL/commands/test.htm46
-rw-r--r--src/libs/7zip/unix/DOCS/MANUAL/commands/update.htm66
-rw-r--r--src/libs/7zip/unix/DOCS/MANUAL/exit_codes.htm27
-rw-r--r--src/libs/7zip/unix/DOCS/MANUAL/index.htm29
-rw-r--r--src/libs/7zip/unix/DOCS/MANUAL/style.css232
-rw-r--r--src/libs/7zip/unix/DOCS/MANUAL/switches/ar_exclude.htm56
-rw-r--r--src/libs/7zip/unix/DOCS/MANUAL/switches/ar_include.htm83
-rw-r--r--src/libs/7zip/unix/DOCS/MANUAL/switches/ar_no.htm52
-rw-r--r--src/libs/7zip/unix/DOCS/MANUAL/switches/charset.htm49
-rw-r--r--src/libs/7zip/unix/DOCS/MANUAL/switches/exclude.htm60
-rw-r--r--src/libs/7zip/unix/DOCS/MANUAL/switches/include.htm87
-rw-r--r--src/libs/7zip/unix/DOCS/MANUAL/switches/index.htm64
-rw-r--r--src/libs/7zip/unix/DOCS/MANUAL/switches/large_pages.htm50
-rw-r--r--src/libs/7zip/unix/DOCS/MANUAL/switches/list_tech.htm36
-rw-r--r--src/libs/7zip/unix/DOCS/MANUAL/switches/method.htm625
-rw-r--r--src/libs/7zip/unix/DOCS/MANUAL/switches/output_dir.htm53
-rw-r--r--src/libs/7zip/unix/DOCS/MANUAL/switches/overwrite.htm56
-rw-r--r--src/libs/7zip/unix/DOCS/MANUAL/switches/password.htm54
-rw-r--r--src/libs/7zip/unix/DOCS/MANUAL/switches/recurse.htm83
-rw-r--r--src/libs/7zip/unix/DOCS/MANUAL/switches/sfx.htm156
-rw-r--r--src/libs/7zip/unix/DOCS/MANUAL/switches/ssc.htm50
-rw-r--r--src/libs/7zip/unix/DOCS/MANUAL/switches/stdin.htm55
-rw-r--r--src/libs/7zip/unix/DOCS/MANUAL/switches/stdout.htm50
-rw-r--r--src/libs/7zip/unix/DOCS/MANUAL/switches/stop_switch.htm31
-rw-r--r--src/libs/7zip/unix/DOCS/MANUAL/switches/style.css232
-rw-r--r--src/libs/7zip/unix/DOCS/MANUAL/switches/type.htm83
-rw-r--r--src/libs/7zip/unix/DOCS/MANUAL/switches/update.htm176
-rw-r--r--src/libs/7zip/unix/DOCS/MANUAL/switches/volume.htm49
-rw-r--r--src/libs/7zip/unix/DOCS/MANUAL/switches/working_dir.htm55
-rw-r--r--src/libs/7zip/unix/DOCS/MANUAL/switches/yes.htm48
-rw-r--r--src/libs/7zip/unix/DOCS/MANUAL/syntax.htm120
-rw-r--r--src/libs/7zip/unix/DOCS/Methods.txt152
-rw-r--r--src/libs/7zip/unix/DOCS/copying.txt504
-rw-r--r--src/libs/7zip/unix/DOCS/history.txt456
-rw-r--r--src/libs/7zip/unix/DOCS/lzma.txt598
-rw-r--r--src/libs/7zip/unix/DOCS/readme.txt181
-rw-r--r--src/libs/7zip/unix/DOCS/unRarLicense.txt41
48 files changed, 6286 insertions, 0 deletions
diff --git a/src/libs/7zip/unix/DOCS/7zC.txt b/src/libs/7zip/unix/DOCS/7zC.txt
new file mode 100644
index 000000000..5d5d06d7b
--- /dev/null
+++ b/src/libs/7zip/unix/DOCS/7zC.txt
@@ -0,0 +1,194 @@
+7z ANSI-C Decoder 4.62
+----------------------
+
+7z ANSI-C provides 7z/LZMA decoding.
+7z ANSI-C version is simplified version ported from C++ code.
+
+LZMA is default and general compression method of 7z format
+in 7-Zip compression program (www.7-zip.org). LZMA provides high
+compression ratio and very fast decompression.
+
+
+LICENSE
+-------
+
+7z ANSI-C Decoder is part of the LZMA SDK.
+LZMA SDK is written and placed in the public domain by Igor Pavlov.
+
+Files
+---------------------
+
+7zDecode.* - Low level 7z decoding
+7zExtract.* - High level 7z decoding
+7zHeader.* - .7z format constants
+7zIn.* - .7z archive opening
+7zItem.* - .7z structures
+7zMain.c - Test application
+
+
+How To Use
+----------
+
+You must download 7-Zip program from www.7-zip.org.
+
+You can create .7z archive with 7z.exe or 7za.exe:
+
+ 7za.exe a archive.7z *.htm -r -mx -m0fb=255
+
+If you have big number of files in archive, and you need fast extracting,
+you can use partly-solid archives:
+
+ 7za.exe a archive.7z *.htm -ms=512K -r -mx -m0fb=255 -m0d=512K
+
+In that example 7-Zip will use 512KB solid blocks. So it needs to decompress only
+512KB for extracting one file from such archive.
+
+
+Limitations of current version of 7z ANSI-C Decoder
+---------------------------------------------------
+
+ - It reads only "FileName", "Size", "LastWriteTime" and "CRC" information for each file in archive.
+ - It supports only LZMA and Copy (no compression) methods with BCJ or BCJ2 filters.
+ - It converts original UTF-16 Unicode file names to UTF-8 Unicode file names.
+
+These limitations will be fixed in future versions.
+
+
+Using 7z ANSI-C Decoder Test application:
+-----------------------------------------
+
+Usage: 7zDec <command> <archive_name>
+
+<Command>:
+ e: Extract files from archive
+ l: List contents of archive
+ t: Test integrity of archive
+
+Example:
+
+ 7zDec l archive.7z
+
+lists contents of archive.7z
+
+ 7zDec e archive.7z
+
+extracts files from archive.7z to current folder.
+
+
+How to use .7z Decoder
+----------------------
+
+Memory allocation
+~~~~~~~~~~~~~~~~~
+
+7z Decoder uses two memory pools:
+1) Temporary pool
+2) Main pool
+Such scheme can allow you to avoid fragmentation of allocated blocks.
+
+
+Steps for using 7z decoder
+--------------------------
+
+Use code at 7zMain.c as example.
+
+1) Declare variables:
+ inStream /* implements ILookInStream interface */
+ CSzArEx db; /* 7z archive database structure */
+ ISzAlloc allocImp; /* memory functions for main pool */
+ ISzAlloc allocTempImp; /* memory functions for temporary pool */
+
+2) call CrcGenerateTable(); function to initialize CRC structures.
+
+3) call SzArEx_Init(&db); function to initialize db structures.
+
+4) call SzArEx_Open(&db, inStream, &allocMain, &allocTemp) to open archive
+
+This function opens archive "inStream" and reads headers to "db".
+All items in "db" will be allocated with "allocMain" functions.
+SzArEx_Open function allocates and frees temporary structures by "allocTemp" functions.
+
+5) List items or Extract items
+
+ Listing code:
+ ~~~~~~~~~~~~~
+ {
+ UInt32 i;
+ for (i = 0; i < db.db.NumFiles; i++)
+ {
+ CFileItem *f = db.db.Files + i;
+ printf("%10d %s\n", (int)f->Size, f->Name);
+ }
+ }
+
+ Extracting code:
+ ~~~~~~~~~~~~~~~~
+
+ SZ_RESULT SzAr_Extract(
+ CArchiveDatabaseEx *db,
+ ILookInStream *inStream,
+ UInt32 fileIndex, /* index of file */
+ UInt32 *blockIndex, /* index of solid block */
+ Byte **outBuffer, /* pointer to pointer to output buffer (allocated with allocMain) */
+ size_t *outBufferSize, /* buffer size for output buffer */
+ size_t *offset, /* offset of stream for required file in *outBuffer */
+ size_t *outSizeProcessed, /* size of file in *outBuffer */
+ ISzAlloc *allocMain,
+ ISzAlloc *allocTemp);
+
+ If you need to decompress more than one file, you can send these values from previous call:
+ blockIndex,
+ outBuffer,
+ outBufferSize,
+ You can consider "outBuffer" as cache of solid block. If your archive is solid,
+ it will increase decompression speed.
+
+ After decompressing you must free "outBuffer":
+ allocImp.Free(outBuffer);
+
+6) call SzArEx_Free(&db, allocImp.Free) to free allocated items in "db".
+
+
+
+
+Memory requirements for .7z decoding
+------------------------------------
+
+Memory usage for Archive opening:
+ - Temporary pool:
+ - Memory for uncompressed .7z headers
+ - some other temporary blocks
+ - Main pool:
+ - Memory for database:
+ Estimated size of one file structures in solid archive:
+ - Size (4 or 8 Bytes)
+ - CRC32 (4 bytes)
+ - LastWriteTime (8 bytes)
+ - Some file information (4 bytes)
+ - File Name (variable length) + pointer + allocation structures
+
+Memory usage for archive Decompressing:
+ - Temporary pool:
+ - Memory for LZMA decompressing structures
+ - Main pool:
+ - Memory for decompressed solid block
+ - Memory for temprorary buffers, if BCJ2 fileter is used. Usually these
+ temprorary buffers can be about 15% of solid block size.
+
+
+7z Decoder doesn't allocate memory for compressed blocks.
+Instead of this, you must allocate buffer with desired
+size before calling 7z Decoder. Use 7zMain.c as example.
+
+
+Defines
+-------
+
+_SZ_ALLOC_DEBUG - define it if you want to debug alloc/free operations to stderr.
+
+
+---
+
+http://www.7-zip.org
+http://www.7-zip.org/sdk.html
+http://www.7-zip.org/support.html
diff --git a/src/libs/7zip/unix/DOCS/7zFormat.txt b/src/libs/7zip/unix/DOCS/7zFormat.txt
new file mode 100644
index 000000000..55b52b1b9
--- /dev/null
+++ b/src/libs/7zip/unix/DOCS/7zFormat.txt
@@ -0,0 +1,469 @@
+7z Format description (4.59)
+----------------------------
+
+This file contains description of 7z archive format.
+7z archive can contain files compressed with any method.
+See "Methods.txt" for description for defined compressing methods.
+
+
+Format structure Overview
+-------------------------
+
+Some fields can be optional.
+
+Archive structure
+~~~~~~~~~~~~~~~~~
+SignatureHeader
+[PackedStreams]
+[PackedStreamsForHeaders]
+[
+ Header
+ or
+ {
+ Packed Header
+ HeaderInfo
+ }
+]
+
+
+
+Header structure
+~~~~~~~~~~~~~~~~
+{
+ ArchiveProperties
+ AdditionalStreams
+ {
+ PackInfo
+ {
+ PackPos
+ NumPackStreams
+ Sizes[NumPackStreams]
+ CRCs[NumPackStreams]
+ }
+ CodersInfo
+ {
+ NumFolders
+ Folders[NumFolders]
+ {
+ NumCoders
+ CodersInfo[NumCoders]
+ {
+ ID
+ NumInStreams;
+ NumOutStreams;
+ PropertiesSize
+ Properties[PropertiesSize]
+ }
+ NumBindPairs
+ BindPairsInfo[NumBindPairs]
+ {
+ InIndex;
+ OutIndex;
+ }
+ PackedIndices
+ }
+ UnPackSize[Folders][Folders.NumOutstreams]
+ CRCs[NumFolders]
+ }
+ SubStreamsInfo
+ {
+ NumUnPackStreamsInFolders[NumFolders];
+ UnPackSizes[]
+ CRCs[]
+ }
+ }
+ MainStreamsInfo
+ {
+ (Same as in AdditionalStreams)
+ }
+ FilesInfo
+ {
+ NumFiles
+ Properties[]
+ {
+ ID
+ Size
+ Data
+ }
+ }
+}
+
+HeaderInfo structure
+~~~~~~~~~~~~~~~~~~~~
+{
+ (Same as in AdditionalStreams)
+}
+
+
+
+Notes about Notation and encoding
+---------------------------------
+
+7z uses little endian encoding.
+
+7z archive format has optional headers that are marked as
+[]
+Header
+[]
+
+REAL_UINT64 means real UINT64.
+
+UINT64 means real UINT64 encoded with the following scheme:
+
+ Size of encoding sequence depends from first byte:
+ First_Byte Extra_Bytes Value
+ (binary)
+ 0xxxxxxx : ( xxxxxxx )
+ 10xxxxxx BYTE y[1] : ( xxxxxx << (8 * 1)) + y
+ 110xxxxx BYTE y[2] : ( xxxxx << (8 * 2)) + y
+ ...
+ 1111110x BYTE y[6] : ( x << (8 * 6)) + y
+ 11111110 BYTE y[7] : y
+ 11111111 BYTE y[8] : y
+
+
+
+Property IDs
+------------
+
+0x00 = kEnd
+
+0x01 = kHeader
+
+0x02 = kArchiveProperties
+
+0x03 = kAdditionalStreamsInfo
+0x04 = kMainStreamsInfo
+0x05 = kFilesInfo
+
+0x06 = kPackInfo
+0x07 = kUnPackInfo
+0x08 = kSubStreamsInfo
+
+0x09 = kSize
+0x0A = kCRC
+
+0x0B = kFolder
+
+0x0C = kCodersUnPackSize
+0x0D = kNumUnPackStream
+
+0x0E = kEmptyStream
+0x0F = kEmptyFile
+0x10 = kAnti
+
+0x11 = kName
+0x12 = kCTime
+0x13 = kATime
+0x14 = kMTime
+0x15 = kWinAttributes
+0x16 = kComment
+
+0x17 = kEncodedHeader
+
+0x18 = kStartPos
+0x19 = kDummy
+
+
+7z format headers
+-----------------
+
+SignatureHeader
+~~~~~~~~~~~~~~~
+ BYTE kSignature[6] = {'7', 'z', 0xBC, 0xAF, 0x27, 0x1C};
+
+ ArchiveVersion
+ {
+ BYTE Major; // now = 0
+ BYTE Minor; // now = 2
+ };
+
+ UINT32 StartHeaderCRC;
+
+ StartHeader
+ {
+ REAL_UINT64 NextHeaderOffset
+ REAL_UINT64 NextHeaderSize
+ UINT32 NextHeaderCRC
+ }
+
+
+...........................
+
+
+ArchiveProperties
+~~~~~~~~~~~~~~~~~
+BYTE NID::kArchiveProperties (0x02)
+for (;;)
+{
+ BYTE PropertyType;
+ if (aType == 0)
+ break;
+ UINT64 PropertySize;
+ BYTE PropertyData[PropertySize];
+}
+
+
+Digests (NumStreams)
+~~~~~~~~~~~~~~~~~~~~~
+ BYTE AllAreDefined
+ if (AllAreDefined == 0)
+ {
+ for(NumStreams)
+ BIT Defined
+ }
+ UINT32 CRCs[NumDefined]
+
+
+PackInfo
+~~~~~~~~~~~~
+ BYTE NID::kPackInfo (0x06)
+ UINT64 PackPos
+ UINT64 NumPackStreams
+
+ []
+ BYTE NID::kSize (0x09)
+ UINT64 PackSizes[NumPackStreams]
+ []
+
+ []
+ BYTE NID::kCRC (0x0A)
+ PackStreamDigests[NumPackStreams]
+ []
+
+ BYTE NID::kEnd
+
+
+Folder
+~~~~~~
+ UINT64 NumCoders;
+ for (NumCoders)
+ {
+ BYTE
+ {
+ 0:3 CodecIdSize
+ 4: Is Complex Coder
+ 5: There Are Attributes
+ 6: Reserved
+ 7: There are more alternative methods. (Not used anymore, must be 0).
+ }
+ BYTE CodecId[CodecIdSize]
+ if (Is Complex Coder)
+ {
+ UINT64 NumInStreams;
+ UINT64 NumOutStreams;
+ }
+ if (There Are Attributes)
+ {
+ UINT64 PropertiesSize
+ BYTE Properties[PropertiesSize]
+ }
+ }
+
+ NumBindPairs = NumOutStreamsTotal - 1;
+
+ for (NumBindPairs)
+ {
+ UINT64 InIndex;
+ UINT64 OutIndex;
+ }
+
+ NumPackedStreams = NumInStreamsTotal - NumBindPairs;
+ if (NumPackedStreams > 1)
+ for(NumPackedStreams)
+ {
+ UINT64 Index;
+ };
+
+
+
+
+Coders Info
+~~~~~~~~~~~
+
+ BYTE NID::kUnPackInfo (0x07)
+
+
+ BYTE NID::kFolder (0x0B)
+ UINT64 NumFolders
+ BYTE External
+ switch(External)
+ {
+ case 0:
+ Folders[NumFolders]
+ case 1:
+ UINT64 DataStreamIndex
+ }
+
+
+ BYTE ID::kCodersUnPackSize (0x0C)
+ for(Folders)
+ for(Folder.NumOutStreams)
+ UINT64 UnPackSize;
+
+
+ []
+ BYTE NID::kCRC (0x0A)
+ UnPackDigests[NumFolders]
+ []
+
+
+
+ BYTE NID::kEnd
+
+
+
+SubStreams Info
+~~~~~~~~~~~~~~
+ BYTE NID::kSubStreamsInfo; (0x08)
+
+ []
+ BYTE NID::kNumUnPackStream; (0x0D)
+ UINT64 NumUnPackStreamsInFolders[NumFolders];
+ []
+
+
+ []
+ BYTE NID::kSize (0x09)
+ UINT64 UnPackSizes[]
+ []
+
+
+ []
+ BYTE NID::kCRC (0x0A)
+ Digests[Number of streams with unknown CRC]
+ []
+
+
+ BYTE NID::kEnd
+
+
+Streams Info
+~~~~~~~~~~~~
+
+ []
+ PackInfo
+ []
+
+
+ []
+ CodersInfo
+ []
+
+
+ []
+ SubStreamsInfo
+ []
+
+ BYTE NID::kEnd
+
+
+FilesInfo
+~~~~~~~~~
+ BYTE NID::kFilesInfo; (0x05)
+ UINT64 NumFiles
+
+ for (;;)
+ {
+ BYTE PropertyType;
+ if (aType == 0)
+ break;
+
+ UINT64 Size;
+
+ switch(PropertyType)
+ {
+ kEmptyStream: (0x0E)
+ for(NumFiles)
+ BIT IsEmptyStream
+
+ kEmptyFile: (0x0F)
+ for(EmptyStreams)
+ BIT IsEmptyFile
+
+ kAnti: (0x10)
+ for(EmptyStreams)
+ BIT IsAntiFile
+
+ case kCTime: (0x12)
+ case kATime: (0x13)
+ case kMTime: (0x14)
+ BYTE AllAreDefined
+ if (AllAreDefined == 0)
+ {
+ for(NumFiles)
+ BIT TimeDefined
+ }
+ BYTE External;
+ if(External != 0)
+ UINT64 DataIndex
+ []
+ for(Definded Items)
+ UINT64 Time
+ []
+
+ kNames: (0x11)
+ BYTE External;
+ if(External != 0)
+ UINT64 DataIndex
+ []
+ for(Files)
+ {
+ wchar_t Names[NameSize];
+ wchar_t 0;
+ }
+ []
+
+ kAttributes: (0x15)
+ BYTE AllAreDefined
+ if (AllAreDefined == 0)
+ {
+ for(NumFiles)
+ BIT AttributesAreDefined
+ }
+ BYTE External;
+ if(External != 0)
+ UINT64 DataIndex
+ []
+ for(Definded Attributes)
+ UINT32 Attributes
+ []
+ }
+ }
+
+
+Header
+~~~~~~
+ BYTE NID::kHeader (0x01)
+
+ []
+ ArchiveProperties
+ []
+
+ []
+ BYTE NID::kAdditionalStreamsInfo; (0x03)
+ StreamsInfo
+ []
+
+ []
+ BYTE NID::kMainStreamsInfo; (0x04)
+ StreamsInfo
+ []
+
+ []
+ FilesInfo
+ []
+
+ BYTE NID::kEnd
+
+
+HeaderInfo
+~~~~~~~~~~
+ []
+ BYTE NID::kEncodedHeader; (0x17)
+ StreamsInfo for Encoded Header
+ []
+
+
+---
+End of document
diff --git a/src/libs/7zip/unix/DOCS/License.txt b/src/libs/7zip/unix/DOCS/License.txt
new file mode 100644
index 000000000..a6a721853
--- /dev/null
+++ b/src/libs/7zip/unix/DOCS/License.txt
@@ -0,0 +1,52 @@
+ 7-Zip source code
+ ~~~~~~~~~~~~~~~~~
+ License for use and distribution
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+ 7-Zip Copyright (C) 1999-2010 Igor Pavlov.
+
+ Licenses for files are:
+
+ 1) CPP/7zip/Compress/Rar* files: GNU LGPL + unRAR restriction
+ 2) All other files: GNU LGPL
+
+ The GNU LGPL + unRAR restriction means that you must follow both
+ GNU LGPL rules and unRAR restriction rules.
+
+
+ GNU LGPL information
+ --------------------
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+
+ unRAR restriction
+ -----------------
+
+ The decompression engine for RAR archives was developed using source
+ code of unRAR program.
+ All copyrights to original unRAR code are owned by Alexander Roshal.
+
+ The license for original unRAR code has the following restriction:
+
+ The unRAR sources cannot be used to re-create the RAR compression algorithm,
+ which is proprietary. Distribution of modified unRAR sources in separate form
+ or as a part of other software is permitted, provided that it is clearly
+ stated in the documentation and source comments that the code may
+ not be used to develop a RAR (WinRAR) compatible archiver.
+
+
+ --
+ Igor Pavlov
diff --git a/src/libs/7zip/unix/DOCS/MANUAL/commands/add.htm b/src/libs/7zip/unix/DOCS/MANUAL/commands/add.htm
new file mode 100644
index 000000000..7bc5ea22f
--- /dev/null
+++ b/src/libs/7zip/unix/DOCS/MANUAL/commands/add.htm
@@ -0,0 +1,87 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<HTML>
+<HEAD>
+ <META http-equiv="Content-Type" content="text/html; charset=Windows-1252">
+ <TITLE>a (Add) command</TITLE>
+ <LINK href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<H1>a (Add) command</H1>
+
+<P>Adds files to archive.</P>
+
+<H4>Examples</H4>
+
+<PRE class="example">
+7z a archive1.zip subdir\
+</PRE>
+
+<P>adds all files and subfolders from folder <SPAN class="filename">subdir</SPAN> to archive
+ <SPAN class="filename">archive1.zip</SPAN>.
+ The filenames in archive will contain <SPAN class="filename">subdir\</SPAN> prefix.</P>
+
+<PRE class="example">
+7z a archive2.zip .\subdir\*
+</PRE>
+
+<P>adds all files and subfolders from folder <SPAN class="filename">subdir</SPAN> to archive
+ <SPAN class="filename">archive2.zip</SPAN>.
+ The filenames in archive will not contain <SPAN class="filename">subdir\</SPAN> prefix.</P>
+
+
+<PRE class="example">
+cd /D c:\dir1\
+7z a c:\archive3.zip dir2\dir3\
+</PRE>
+
+The filenames in archive <SPAN class="filename">c:\archive3.zip</SPAN>
+will contain <SPAN class="filename">dir2\dir3\</SPAN> prefix,
+but they will not contain <SPAN class="filename">c:\dir1\</SPAN> prefix.
+
+<PRE class="example">
+7z a Files.7z *.txt -r
+</PRE>
+
+<P>adds all *.txt files from current folder and its subfolders to archive
+ <SPAN class="filename">Files.7z</SPAN>.</P>
+
+
+<H4>Notes</H4>
+
+<P>7-Zip doesn't uses the system wildcard parser. 7-Zip doesn't
+follow the archaic rule by which *.* means any file. 7-Zip treats
+*.* as matching the name of any file that has an extension. To process
+all files, you must use a * wildcard.</P>
+
+
+<H4>Switches that can be used with this command</H4>
+
+<P>
+ <A href="../switches/include.htm">-i (Include)</A><BR>
+ <A href="../switches/method.htm">-m (Method)</A><BR>
+ <A href="../switches/password.htm">-p (Set Password)</A><BR>
+ <A href="../switches/recurse.htm">-r (Recurse)</A><BR>
+ <A href="../switches/sfx.htm">-sfx (create SFX)</A><BR>
+ <A href="../switches/stdin.htm">-si (use StdIn)</A><BR>
+ <A href="../switches/stdout.htm">-so (use StdOut)</A><BR>
+ <A href="../switches/type.htm">-t (Type of archive)</A><BR>
+ <A href="../switches/update.htm">-u (Update)</A><BR>
+ <A href="../switches/volume.htm">-v (Volumes)</A><BR>
+ <A href="../switches/working_dir.htm">-w (Working Dir)</A><BR>
+ <A href="../switches/exclude.htm">-x (Exclude)</A>
+</P>
+
+<H4>See also</H4>
+
+<P>
+ <B>Commands:</B>
+ <A href="delete.htm">d (Delete)</A>,
+ <A href="update.htm">u (Update)</A><BR>
+ <B>Switches:</B>
+ <A href="../switches/update.htm">-u (Update)</A>
+</P>
+
+</BODY>
+</HTML>
diff --git a/src/libs/7zip/unix/DOCS/MANUAL/commands/bench.htm b/src/libs/7zip/unix/DOCS/MANUAL/commands/bench.htm
new file mode 100644
index 000000000..14f456cd3
--- /dev/null
+++ b/src/libs/7zip/unix/DOCS/MANUAL/commands/bench.htm
@@ -0,0 +1,79 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<HTML>
+<HEAD>
+ <META http-equiv="Content-Type" content="text/html; charset=Windows-1252">
+ <TITLE>b (Benchmark) command</TITLE>
+ <LINK href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<H1>b (Benchmark) command</H1>
+
+<P>Measures speed of the CPU and checks RAM for errors.</P>
+
+<H4>Syntax</H4>
+
+<PRE class="syntax">
+b [number_of_iterations] [-mmt{N}] [-md{N}] [-mm={Method}]
+</PRE>
+
+<P>There are two tests:<P>
+<OL>
+ <LI>Compressing with LZMA method
+ <LI>Decompressing with LZMA method
+</OL>
+
+<P>The benchmark shows a rating in MIPS (million instructions per second).
+The rating value is calculated from the measured CPU speed and it
+is normalized with results of Intel Core 2 CPU with multi-threading option
+switched off. So if you have Intel Core 2 Duo,
+rating values must be close to real CPU frequency.</P>
+
+<P>You can change the upper dictionary size to increase memory usage by -md{N} switch.
+Also, you can change the number of threads by -mmt{N} switch.</P>
+
+<P>The <B>Dict</B> column shows dictionary size. For example, 21 means 2^21 = 2 MB.</P>
+
+<P>The <B>Usage</B> column shows the percentage of time the processor is working.
+It's normalized for a one-thread load. For example, 180% CPU Usage for 2 threads
+can mean that average CPU usage is about 90% for each thread.</P>
+
+<P>The <B>R / U</B> column shows the rating normalized for 100% of CPU usage.
+That column shows the performance of one average CPU thread.</P>
+
+<P><B>Avr</B> shows averages for different dictionary sizes.</P>
+<P><B>Tot</B> shows averages of the compression and decompression ratings.</P>
+
+<P>Compression speed and rating strongly depend on memory (RAM) latency.
+
+<P>Decompression speed and rating strongly depend on the integer performance of the CPU.
+For example, the Intel Pentium 4 has big branch
+misprediction penalty (which is an effect of its long pipeline) and pretty slow
+multiply and shift operations. So, the Pentium 4 has pretty low decompressing ratings.</P>
+
+<P>You can run a CRC calculation benchmark by specifying -mm=crc.
+That test shows the speed of CRC calculation in MB/s. The first column shows the size of the block.
+The next column shows the speed of CRC calculation for one thread. The other columns are results
+for multi-threaded CRC calculation.</P>
+
+
+<H4>Examples</H4>
+
+<PRE class="example">
+7z b
+</PRE>
+runs benchmarking.
+
+<PRE class="example">
+7z b -mmt1 -md26
+</PRE>
+runs benchmarking with one thread and 64 MB dictionary.
+
+<PRE class="example">
+7z b 30
+</PRE>
+<P>runs benchmarking with default settings for 30 iterations.</P>
+
+</BODY>
+</HTML>
diff --git a/src/libs/7zip/unix/DOCS/MANUAL/commands/delete.htm b/src/libs/7zip/unix/DOCS/MANUAL/commands/delete.htm
new file mode 100644
index 000000000..845b8d899
--- /dev/null
+++ b/src/libs/7zip/unix/DOCS/MANUAL/commands/delete.htm
@@ -0,0 +1,59 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<HTML>
+<HEAD>
+ <META http-equiv="Content-Type" content="text/html; charset=Windows-1252">
+ <TITLE>d (Delete) command</TITLE>
+ <LINK href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<H1>d (Delete) command</H1>
+
+<P>Deletes files from archive.</P>
+
+<H4>Example</H4>
+
+<PRE class="example">
+7z d archive.zip *.bak -r
+</PRE>
+
+<P>deletes <SPAN class="filename">*.bak</SPAN> files from archive
+ <SPAN class="filename">archive.zip</SPAN>.</P>
+
+
+<H4>Notes</H4>
+
+<P>7-Zip doesn't uses the system wildcard parser. 7-Zip doesn't
+follow the archaic rule by which *.* means any file. 7-Zip treats
+*.* as matching the name of any file that has an extension. To process
+all files, you must use a * wildcard.</P>
+
+
+<H4>Switches that can be used with this command</H4>
+
+<P>
+ <A href="../switches/include.htm">-i (Include)</A><BR>
+ <A href="../switches/method.htm">-m (Method)</A><BR>
+ <A href="../switches/password.htm">-p (Set Password)</A><BR>
+ <A href="../switches/recurse.htm">-r (Recurse)</A><BR>
+ <A href="../switches/update.htm">-u (Update)</A><BR>
+ <A href="../switches/working_dir.htm">-w (Working Dir)</A><BR>
+ <A href="../switches/exclude.htm">-x (Exclude)</A>
+</P>
+
+<H4>See also</H4>
+
+<P>
+ <B>Commands:</B>
+ <A href="add.htm">a (Add)</A>,
+ <A href="update.htm">u (Update)</A>
+</P>
+
+<P>
+ <B>Switches:</B>
+ <A href="../switches/update.htm">-u (Update)</A>
+</P>
+
+</BODY>
+</HTML>
diff --git a/src/libs/7zip/unix/DOCS/MANUAL/commands/extract.htm b/src/libs/7zip/unix/DOCS/MANUAL/commands/extract.htm
new file mode 100644
index 000000000..dad6b2b0b
--- /dev/null
+++ b/src/libs/7zip/unix/DOCS/MANUAL/commands/extract.htm
@@ -0,0 +1,91 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<HTML>
+<HEAD>
+ <META http-equiv="Content-Type" content="text/html; charset=Windows-1252">
+ <TITLE>e (Extract) command</TITLE>
+ <LINK href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<H1>e (Extract) command</H1>
+
+<P>Extracts files from an archive to the current
+directory or to the output directory. The output directory can be specified by
+<A href="../switches/output_dir.htm">-o (Set Output Directory)</A> switch.</P>
+
+<P>This command copies all extracted files to one directory.
+If you want extract files with full paths, you must use
+<A href="extract_full.htm">x (Extract with full paths)</A> command.
+
+<P>7-Zip will prompt the user before overwriting existing files unless
+the user specifies the <A href="../switches/yes.htm">-y (Assume Yes on all queries)</A>
+switch. If the user gives a <B>no</B> answer, 7-Zip will prompt for the file to be
+extracted to a new filename. Then a <B>no</B> answer skips that file; or, <B>yes</B>
+prompts for new filename.</P>
+
+<P>7-Zip accepts the following responses:</P>
+
+<TABLE>
+ <TR> <TH>Answer</TH> <TH>Abbr.</TH> <TH>Action</TH> </TR>
+ <TR> <TD>Yes</TD> <TD>y</TD> <TD>&nbsp;</TD> </TR>
+ <TR> <TD>No</TD> <TD>n</TD> <TD>&nbsp;</TD> </TR>
+ <TR> <TD>Always</TD> <TD>a</TD> <TD>Assume YES for ALL subsequent queries of the same class</TD> </TR>
+ <TR> <TD>Skip</TD> <TD>s</TD> <TD>Assume NO for ALL subsequent queries of the same class</TD> </TR>
+ <TR> <TD>Quit</TD> <TD>q</TD> <TD>Quit the program</TD> </TR>
+
+</TABLE>
+
+<P>Abbreviated responses are allowed.</P>
+
+<H4>Examples</H4>
+
+<PRE class="example">
+7z e archive.zip
+</PRE>
+
+<P>extracts all files from archive
+ <SPAN class="filename">archive.zip</SPAN> to the current directory.</P>
+
+<PRE class="example">
+7z e archive.zip -oc:\soft *.cpp -r
+</PRE>
+
+<P>extracts all <SPAN class="filename">*.cpp</SPAN> files from archive
+ <SPAN class="filename">archive.zip</SPAN> to <SPAN class="filename">c:\soft</SPAN> folder.</P>
+
+
+<H4>Notes</H4>
+
+<P>7-Zip doesn't uses the system wildcard parser. 7-Zip doesn't
+follow the archaic rule by which *.* means any file. 7-Zip treats
+*.* as matching the name of any file that has an extension. To process
+all files, you must use a * wildcard.</P>
+
+
+<H4>Switches that can be used with this command</H4>
+
+<P>
+ <A href="../switches/ar_include.htm">-ai (Include archives)</A><BR>
+ <A href="../switches/ar_no.htm">-an (Disable parsing of archive_name)</A><BR>
+ <A href="../switches/overwrite.htm">-ao (Overwrite mode)</A><BR>
+ <A href="../switches/ar_exclude.htm">-ax (Exclude archives)</A><BR>
+ <A href="../switches/include.htm">-i (Include)</A><BR>
+ <A href="../switches/output_dir.htm">-o (Set Output Directory)</A><BR>
+ <A href="../switches/password.htm">-p (Set Password)</A><BR>
+ <A href="../switches/recurse.htm">-r (Recurse)</A><BR>
+ <A href="../switches/stdout.htm">-so (use StdOut)</A><BR>
+ <A href="../switches/type.htm">-t (Type of archive)</A><BR>
+ <A href="../switches/exclude.htm">-x (Exclude)</A><BR>
+ <A href="../switches/yes.htm">-y (Assume Yes on all queries)</A>
+</P>
+
+<H4>See also</H4>
+
+<P>
+ <B>Commands:</B>
+ <A href="extract_full.htm">x (Extract with full paths)</A>
+</P>
+
+</BODY>
+</HTML>
diff --git a/src/libs/7zip/unix/DOCS/MANUAL/commands/extract_full.htm b/src/libs/7zip/unix/DOCS/MANUAL/commands/extract_full.htm
new file mode 100644
index 000000000..3f857a6e4
--- /dev/null
+++ b/src/libs/7zip/unix/DOCS/MANUAL/commands/extract_full.htm
@@ -0,0 +1,68 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<HTML>
+<HEAD>
+ <META http-equiv="Content-Type" content="text/html; charset=Windows-1252">
+ <TITLE>x (Extract with full paths) command</TITLE>
+ <LINK href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<H1>x (Extract with full paths) command</H1>
+
+<P>Extracts files from an archive with their full
+paths in the current directory, or in an output directory if specified.</P>
+
+<P>See the <A href="extract.htm">e (Extract)</A> command description for more details.</P>
+
+<H4>Examples</H4>
+
+<PRE class="example">
+7z x archive.zip
+</PRE>
+
+<P>extracts all files from the archive
+ <SPAN class="filename">archive.zip</SPAN> to the current directory.</P>
+
+<PRE class="example">
+7z x archive.zip -oc:\soft *.cpp -r
+</PRE>
+
+<P>extracts all <SPAN class="filename">*.cpp</SPAN> files from the archive
+ <SPAN class="filename">archive.zip</SPAN> to <SPAN class="filename">c:\soft</SPAN> folder.</P>
+
+
+<H4>Notes</H4>
+
+<P>7-Zip doesn't uses the system wildcard parser. 7-Zip doesn't
+follow the archaic rule by which *.* means any file. 7-Zip treats
+*.* as matching the name of any file that has an extension. To process
+all files, you must use a * wildcard.</P>
+
+
+<H4>Switches that can be used with this command</H4>
+
+<P>
+ <A href="../switches/ar_include.htm">-ai (Include archives)</A><BR>
+ <A href="../switches/ar_no.htm">-an (Disable parsing of archive_name)</A><BR>
+ <A href="../switches/overwrite.htm">-ao (Overwrite mode)</A><BR>
+ <A href="../switches/ar_exclude.htm">-ax (Exclude archives)</A><BR>
+ <A href="../switches/include.htm">-i (Include)</A><BR>
+ <A href="../switches/output_dir.htm">-o (Set Output Directory)</A><BR>
+ <A href="../switches/password.htm">-p (Set Password)</A><BR>
+ <A href="../switches/recurse.htm">-r (Recurse)</A><BR>
+ <A href="../switches/stdout.htm">-so (use StdOut)</A><BR>
+ <A href="../switches/type.htm">-t (Type of archive)</A><BR>
+ <A href="../switches/exclude.htm">-x (Exclude)</A><BR>
+ <A href="../switches/yes.htm">-y (Assume Yes on all queries)</A>
+</P>
+
+<H4>See also</H4>
+
+<P>
+ <B>Commands:</B>
+ <A href="extract.htm">e (Extract)</A>
+</P>
+
+</BODY>
+</HTML>
diff --git a/src/libs/7zip/unix/DOCS/MANUAL/commands/index.htm b/src/libs/7zip/unix/DOCS/MANUAL/commands/index.htm
new file mode 100644
index 000000000..579ea2931
--- /dev/null
+++ b/src/libs/7zip/unix/DOCS/MANUAL/commands/index.htm
@@ -0,0 +1,33 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<HTML>
+<HEAD>
+ <META http-equiv="Content-Type" content="text/html; charset=Windows-1252">
+ <TITLE>Command Line Commands</TITLE>
+ <LINK href="style.css" rel=stylesheet type="text/css">
+</HEAD>
+
+<BODY>
+
+<H1>Command Line Commands</H1>
+
+<P>The command is the first non-switch argument on the command line.</P>
+<P>Command names are not case sensitive.</P>
+<P>See also <A href ="../syntax.htm">Command Line Syntax</A> for more details about using the command line.</P>
+
+<H2>Commands quick reference</H2>
+
+<TABLE border="1" cellpadding="3" cellspacing="0">
+<TR><TH>Command</TH><TH>Description</TH></TR>
+<TR> <TD><A href="add.htm">a</A></TD> <TD><A href="add.htm">Add</A></TD></TR>
+<TR> <TD><A href="bench.htm">b</A></TD> <TD><A href="bench.htm">Benchmark</A></TD></TR>
+<TR> <TD><A href="delete.htm">d</A></TD> <TD><A href="delete.htm">Delete</A></TD></TR>
+<TR> <TD><A href="extract.htm">e</A></TD> <TD><A href="extract.htm">Extract</A></TD></TR>
+<TR> <TD><A href="list.htm">l</A></TD> <TD><A href="list.htm">List</A></TD></TR>
+<TR> <TD><A href="test.htm">t</A></TD> <TD><A href="test.htm">Test</A></TD></TR>
+<TR> <TD><A href="update.htm">u</A></TD> <TD><A href="update.htm">Update</A></TD></TR>
+<TR> <TD><A href="extract_full.htm">x</A></TD> <TD><A href="extract_full.htm">eXtract with full paths</A></TD></TR>
+</TABLE>
+
+
+</BODY>
+</HTML>
diff --git a/src/libs/7zip/unix/DOCS/MANUAL/commands/list.htm b/src/libs/7zip/unix/DOCS/MANUAL/commands/list.htm
new file mode 100644
index 000000000..1eba758e9
--- /dev/null
+++ b/src/libs/7zip/unix/DOCS/MANUAL/commands/list.htm
@@ -0,0 +1,77 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<HTML>
+<HEAD>
+ <META http-equiv="Content-Type" content="text/html; charset=Windows-1252">
+ <TITLE>l (List contents of archive) command</TITLE>
+ <LINK href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<H1>l (List contents of archive) command</H1>
+
+
+
+<!--
+<H4>Syntax</H4>
+<P><PRE class="syntax">
+l[a | t][f]
+</PRE></P>
+
+-->
+
+<P>Lists contents of archive.</P>
+
+<!--
+<P>The following options can be used:</P>
+<TABLE>
+<TR> <TH>Option</TH> <TH>Description</TH> </TR>
+<TR> <TD>a</TD> <TD>List with Additional fields</TD> </TR>
+<TR> <TD>t</TD> <TD>List with all fields, including Technical</TD> </TR>
+<TR> <TD>f</TD> <TD>List with Full pathnames</TD> </TR>
+</TABLE>
+-->
+
+
+<H4>Examples</H4>
+
+<PRE class="example">
+7z l archive.zip
+</PRE>
+
+<P>lists all files from archive <SPAN class="filename">archive.zip</SPAN>.</P>
+
+<!--
+<PRE class="example">
+7z lf archive.zip *.txt
+</PRE>
+
+<P>lists <SPAN class="filename">*.txt</SPAN> files from archive
+ <SPAN class="filename">archive.zip</SPAN> with full pathnames.</P>
+-->
+
+
+<H4>Notes</H4>
+
+<P>7-Zip doesn't uses the system wildcard parser. 7-Zip doesn't
+follow the archaic rule by which *.* means any file. 7-Zip treats
+*.* as matching the name of any file that has an extension. To process
+all files, you must use a * wildcard.</P>
+
+
+<H4>Switches that can be used with this command</H4>
+
+<P>
+ <A href="../switches/ar_include.htm">-ai (Include archives)</A><BR>
+ <A href="../switches/ar_no.htm">-an (Disable parsing of archive_name)</A><BR>
+ <A href="../switches/ar_exclude.htm">-ax (Exclude archives)</A><BR>
+ <A href="../switches/include.htm">-i (Include)</A><BR>
+ <A href="../switches/list_tech.htm">-slt (Show technical information)</A><BR>
+ <A href="../switches/password.htm">-p (Set Password)</A><BR>
+ <A href="../switches/recurse.htm">-r (Recurse)</A><BR>
+ <A href="../switches/type.htm">-t (Type of archive)</A><BR>
+ <A href="../switches/exclude.htm">-x (Exclude)</A>
+</P>
+
+</BODY>
+</HTML>
diff --git a/src/libs/7zip/unix/DOCS/MANUAL/commands/style.css b/src/libs/7zip/unix/DOCS/MANUAL/commands/style.css
new file mode 100644
index 000000000..13ebb79ce
--- /dev/null
+++ b/src/libs/7zip/unix/DOCS/MANUAL/commands/style.css
@@ -0,0 +1,232 @@
+body
+ {
+ padding: 0px 0px 0px 26px;
+ background: #ffffff;
+ color: #000000;
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 80%;
+ }
+
+div
+ {
+ width: 90%;
+ border: 2px solid #999999;
+ padding: 4px 8px;
+ background: #cccccc;
+ }
+
+h1, h2, h3, h4
+ {
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ margin-left: -26px;
+ }
+
+h1
+ {
+ font-size: 145%;
+ margin-top: .5em;
+ margin-bottom: 1em;
+ }
+
+h2
+ {
+ font-size: 130%;
+ margin-top: 1.5em;
+ margin-bottom: .6em;
+ }
+
+h3
+ {
+ font-size: 115%;
+ margin-top: 1.5em;
+ margin-bottom: .6em;
+ }
+
+h4
+ {
+ font-size: 100%;
+ margin-top: 1.5em;
+ margin-bottom: .6em;
+ }
+
+ul p, ol p, dl p
+ {
+ margin-left: 0em;
+ }
+
+p
+ {
+ margin-top: .6em;
+ margin-bottom: .6em;
+ }
+
+dl
+ {
+ /*margin-top: 0em; */
+ }
+
+dt
+ {
+ margin-top: .76em;
+ margin-bottom: .5em;
+ font-weight: bold;
+ }
+
+dd
+ {
+ margin-top: .5em;
+ margin-bottom: .5em;
+ margin-left: 1.9em;
+ }
+
+
+ul, ol
+ {
+ margin-top: .6em;
+ margin-bottom: 0em;
+ }
+
+ol
+ {
+ margin-left: 3.6em;
+ }
+
+ul
+ {
+ list-style-type: disc;
+ margin-left: 1.9em;
+ }
+
+li
+ {
+ margin-bottom: .6em;
+ }
+
+ul ol, ol ol
+ {
+ list-style-type: lower-alpha;
+ {
+
+ /*
+pre
+ {
+ margin-top: .6em;
+ margin-bottom: .6em;
+ }
+ */
+
+pre,code
+ {
+ font: 100% Courier New, Courier, mono;
+ color: #000000;
+ cursor: text;
+ }
+
+pre.syntax
+ {
+ background: #dddddd;
+ padding: 2pt,4pt
+ }
+
+pre.syntax
+ {
+ color: #000000;
+ }
+
+pre.example
+ {
+ margin-left: 2.0em;
+ /*margin-top: 12.0em;*/
+ /*margin-bottom: 1.0em;*/
+ color: #C00000;
+ /*padding: 10pt,20pt*/
+ }
+
+table
+ {
+ /* width: 90%; */
+ background: #999999;
+ margin-top: .6em;
+ margin-bottom: .3em;
+ }
+
+th
+ {
+ padding: 4px 8px;
+ background: #cccccc;
+ text-align: left;
+ font-size: 80%;
+ vertical-align: bottom;
+ }
+
+th.cc
+ {
+ text-align: center;
+ vertical-align: middle;
+ }
+
+td
+ {
+ padding: 4px 8px;
+ background: #ffffff;
+ vertical-align: top;
+ font-size: 80%;
+ }
+
+td.cc
+ {
+ text-align: center;
+ vertical-align: middle;
+ }
+
+
+blockquote
+ {
+ margin-left: 3.8em;
+ margin-right: 3.8em;
+ margin-top: .6em;
+ margin-bottom: .6em;
+ }
+
+a:link
+ {
+ color: #0066ff;
+ }
+
+a:visited
+ {
+ color: #996600;
+ }
+
+a:hover
+ {
+ color: #cc9900;
+ }
+
+a.parameter:link
+ {
+ color: #0066ff;
+ text-decoration:none;
+ }
+
+a.parameter:visited
+ {
+ text-decoration:none;
+ }
+
+div.footer
+ {
+ width: 100%;
+ border: none;
+ background: #ffffff;
+ margin-top: 18pt;
+ padding-bottom: 12pt;
+ color: #228B22;
+ text-align: center;
+ font-size: 70%;
+ }
+
+span.filename
+{
+ color: #F00000;
+}
diff --git a/src/libs/7zip/unix/DOCS/MANUAL/commands/test.htm b/src/libs/7zip/unix/DOCS/MANUAL/commands/test.htm
new file mode 100644
index 000000000..b09f8a497
--- /dev/null
+++ b/src/libs/7zip/unix/DOCS/MANUAL/commands/test.htm
@@ -0,0 +1,46 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<HTML>
+<HEAD>
+ <META http-equiv="Content-Type" content="text/html; charset=Windows-1252">
+ <TITLE>t (Test integrity of archive) command</TITLE>
+ <LINK href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<H1>t (Test integrity of archive) command</H1>
+
+<P>Tests archive files.</P>
+
+<H4>Example</H4>
+
+<PRE class="example">
+7z t archive.zip *.doc -r
+</PRE>
+
+<P>tests <SPAN class="filename">*.doc</SPAN> files in archive
+ <SPAN class="filename">archive.zip</SPAN>.</P>
+
+
+<H4>Notes</H4>
+
+<P>7-Zip doesn't uses the system wildcard parser. 7-Zip doesn't
+follow the archaic rule by which *.* means any file. 7-Zip treats
+*.* as matching the name of any file that has an extension. To process
+all files, you must use a * wildcard.</P>
+
+
+<H4>Switches that can be used with this command</H4>
+
+<P>
+ <A href="../switches/ar_include.htm">-ai (Include archives)</A><BR>
+ <A href="../switches/ar_no.htm">-an (Disable parsing of archive_name)</A><BR>
+ <A href="../switches/ar_exclude.htm">-ax (Exclude archives)</A><BR>
+ <A href="../switches/include.htm">-i (Include)</A><BR>
+ <A href="../switches/password.htm">-p (Set Password)</A><BR>
+ <A href="../switches/recurse.htm">-r (Recurse)</A><BR>
+ <A href="../switches/exclude.htm">-x (Exclude)</A>
+</P>
+
+</BODY>
+</HTML>
diff --git a/src/libs/7zip/unix/DOCS/MANUAL/commands/update.htm b/src/libs/7zip/unix/DOCS/MANUAL/commands/update.htm
new file mode 100644
index 000000000..860080109
--- /dev/null
+++ b/src/libs/7zip/unix/DOCS/MANUAL/commands/update.htm
@@ -0,0 +1,66 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<HTML>
+<HEAD>
+ <META http-equiv="Content-Type" content="text/html; charset=Windows-1252">
+ <TITLE>u (Update) command</TITLE>
+ <LINK href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<H1>u (Update) command</H1>
+
+<P>Update older files in the archive and add files that are not already in the archive.</P>
+
+<P>Note: the updating of solid .7z archives can be slow, since it
+can require some recompression.</P>
+
+<H4>Example</H4>
+
+<PRE class="example">
+7z u archive.zip *.doc
+</PRE>
+
+<P>updates <SPAN class="filename">*.doc</SPAN> files to archive
+ <SPAN class="filename">archive.zip</SPAN>.</P>
+
+
+<H4>Notes</H4>
+
+<P>7-Zip doesn't uses the system wildcard parser. 7-Zip doesn't
+follow the archaic rule by which *.* means any file. 7-Zip treats
+*.* as matching the name of any file that has an extension. To process
+all files, you must use a * wildcard.</P>
+
+
+<H4>Switches that can be used with this command</H4>
+
+<P>
+ <A href="../switches/include.htm">-i (Include)</A><BR>
+ <A href="../switches/method.htm">-m (Method)</A><BR>
+ <A href="../switches/password.htm">-p (Set Password)</A><BR>
+ <A href="../switches/recurse.htm">-r (Recurse)</A><BR>
+ <A href="../switches/sfx.htm">-sfx (create SFX)</A><BR>
+ <A href="../switches/stdin.htm">-si (use StdIn)</A><BR>
+ <A href="../switches/stdout.htm">-so (use StdOut)</A><BR>
+ <A href="../switches/type.htm">-t (Type of archive)</A><BR>
+ <A href="../switches/update.htm">-u (Update)</A><BR>
+ <A href="../switches/working_dir.htm">-w (Working Dir)</A><BR>
+ <A href="../switches/exclude.htm">-x (Exclude)</A>
+</P>
+
+<H4>See also</H4>
+
+<P>
+ <B>Commands:</B>
+ <A href="add.htm">a (Add)</A>,
+ <A href="delete.htm">d (Delete)</A>,
+</P>
+
+<P>
+ <B>Switches:</B>
+ <A href="../switches/update.htm">-u (Update)</A>
+</P>
+
+</BODY>
+</HTML>
diff --git a/src/libs/7zip/unix/DOCS/MANUAL/exit_codes.htm b/src/libs/7zip/unix/DOCS/MANUAL/exit_codes.htm
new file mode 100644
index 000000000..4cdc74a5b
--- /dev/null
+++ b/src/libs/7zip/unix/DOCS/MANUAL/exit_codes.htm
@@ -0,0 +1,27 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<HTML>
+<HEAD>
+ <META http-equiv="Content-Type" content="text/html; charset=Windows-1252">
+ <TITLE>Exit Codes from 7-Zip</TITLE>
+ <LINK href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<H1>Exit Codes from 7-Zip</H1>
+
+<P>7-Zip returns the following exit codes:</P>
+
+<TABLE>
+ <TR><TH>Code</TH><TH>Meaning</TH></TR>
+ <TR><TD>0</TH><TD>No error</TD></TR>
+ <TR><TD>1</TH><TD>Warning (Non fatal error(s)). For example, one or more files were
+ locked by some other application, so they were not compressed.</TD></TR>
+ <TR><TD>2</TH><TD>Fatal error</TD></TR>
+ <TR><TD>7</TH><TD>Command line error</TD></TR>
+ <TR><TD>8</TH><TD>Not enough memory for operation</TD></TR>
+ <TR><TD>255</TH><TD>User stopped the process</TD></TR>
+</TABLE>
+
+</BODY>
+</HTML>
diff --git a/src/libs/7zip/unix/DOCS/MANUAL/index.htm b/src/libs/7zip/unix/DOCS/MANUAL/index.htm
new file mode 100644
index 000000000..5bf8aae61
--- /dev/null
+++ b/src/libs/7zip/unix/DOCS/MANUAL/index.htm
@@ -0,0 +1,29 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<HTML>
+<HEAD>
+ <META http-equiv="Content-Type" content="text/html; charset=Windows-1252">
+ <TITLE>Command Line Version User's Guide</TITLE>
+ <LINK href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<H1>Command Line Version User's Guide</H1>
+
+
+<P>7z.exe is the command line version of 7-Zip. 7z.exe uses 7z.dll
+from the 7-Zip package. 7z.dll is used by the 7-Zip File Manager also.</LI>
+
+<P>7za.exe (a = alone) is a standalone version of 7-Zip.
+7za.exe supports only 7z, lzma, cab, zip, gzip, bzip2, Z and tar formats.
+7za.exe doesn't use external modules.</LI>
+
+<UL>
+ <LI><A href = "syntax.htm">Command Line syntax</A></LI>
+ <LI><A href = "exit_codes.htm">Exit Codes</A></LI>
+ <LI><A href = "commands/index.htm">Commands</A></LI>
+ <LI><A href = "switches/index.htm">Switches</A></LI>
+</UL>
+
+</BODY>
+</HTML>
diff --git a/src/libs/7zip/unix/DOCS/MANUAL/style.css b/src/libs/7zip/unix/DOCS/MANUAL/style.css
new file mode 100644
index 000000000..13ebb79ce
--- /dev/null
+++ b/src/libs/7zip/unix/DOCS/MANUAL/style.css
@@ -0,0 +1,232 @@
+body
+ {
+ padding: 0px 0px 0px 26px;
+ background: #ffffff;
+ color: #000000;
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 80%;
+ }
+
+div
+ {
+ width: 90%;
+ border: 2px solid #999999;
+ padding: 4px 8px;
+ background: #cccccc;
+ }
+
+h1, h2, h3, h4
+ {
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ margin-left: -26px;
+ }
+
+h1
+ {
+ font-size: 145%;
+ margin-top: .5em;
+ margin-bottom: 1em;
+ }
+
+h2
+ {
+ font-size: 130%;
+ margin-top: 1.5em;
+ margin-bottom: .6em;
+ }
+
+h3
+ {
+ font-size: 115%;
+ margin-top: 1.5em;
+ margin-bottom: .6em;
+ }
+
+h4
+ {
+ font-size: 100%;
+ margin-top: 1.5em;
+ margin-bottom: .6em;
+ }
+
+ul p, ol p, dl p
+ {
+ margin-left: 0em;
+ }
+
+p
+ {
+ margin-top: .6em;
+ margin-bottom: .6em;
+ }
+
+dl
+ {
+ /*margin-top: 0em; */
+ }
+
+dt
+ {
+ margin-top: .76em;
+ margin-bottom: .5em;
+ font-weight: bold;
+ }
+
+dd
+ {
+ margin-top: .5em;
+ margin-bottom: .5em;
+ margin-left: 1.9em;
+ }
+
+
+ul, ol
+ {
+ margin-top: .6em;
+ margin-bottom: 0em;
+ }
+
+ol
+ {
+ margin-left: 3.6em;
+ }
+
+ul
+ {
+ list-style-type: disc;
+ margin-left: 1.9em;
+ }
+
+li
+ {
+ margin-bottom: .6em;
+ }
+
+ul ol, ol ol
+ {
+ list-style-type: lower-alpha;
+ {
+
+ /*
+pre
+ {
+ margin-top: .6em;
+ margin-bottom: .6em;
+ }
+ */
+
+pre,code
+ {
+ font: 100% Courier New, Courier, mono;
+ color: #000000;
+ cursor: text;
+ }
+
+pre.syntax
+ {
+ background: #dddddd;
+ padding: 2pt,4pt
+ }
+
+pre.syntax
+ {
+ color: #000000;
+ }
+
+pre.example
+ {
+ margin-left: 2.0em;
+ /*margin-top: 12.0em;*/
+ /*margin-bottom: 1.0em;*/
+ color: #C00000;
+ /*padding: 10pt,20pt*/
+ }
+
+table
+ {
+ /* width: 90%; */
+ background: #999999;
+ margin-top: .6em;
+ margin-bottom: .3em;
+ }
+
+th
+ {
+ padding: 4px 8px;
+ background: #cccccc;
+ text-align: left;
+ font-size: 80%;
+ vertical-align: bottom;
+ }
+
+th.cc
+ {
+ text-align: center;
+ vertical-align: middle;
+ }
+
+td
+ {
+ padding: 4px 8px;
+ background: #ffffff;
+ vertical-align: top;
+ font-size: 80%;
+ }
+
+td.cc
+ {
+ text-align: center;
+ vertical-align: middle;
+ }
+
+
+blockquote
+ {
+ margin-left: 3.8em;
+ margin-right: 3.8em;
+ margin-top: .6em;
+ margin-bottom: .6em;
+ }
+
+a:link
+ {
+ color: #0066ff;
+ }
+
+a:visited
+ {
+ color: #996600;
+ }
+
+a:hover
+ {
+ color: #cc9900;
+ }
+
+a.parameter:link
+ {
+ color: #0066ff;
+ text-decoration:none;
+ }
+
+a.parameter:visited
+ {
+ text-decoration:none;
+ }
+
+div.footer
+ {
+ width: 100%;
+ border: none;
+ background: #ffffff;
+ margin-top: 18pt;
+ padding-bottom: 12pt;
+ color: #228B22;
+ text-align: center;
+ font-size: 70%;
+ }
+
+span.filename
+{
+ color: #F00000;
+}
diff --git a/src/libs/7zip/unix/DOCS/MANUAL/switches/ar_exclude.htm b/src/libs/7zip/unix/DOCS/MANUAL/switches/ar_exclude.htm
new file mode 100644
index 000000000..697891880
--- /dev/null
+++ b/src/libs/7zip/unix/DOCS/MANUAL/switches/ar_exclude.htm
@@ -0,0 +1,56 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<HTML>
+<HEAD>
+ <META http-equiv="Content-Type" content="text/html; charset=Windows-1252">
+ <TITLE>-ax (Exclude archive filenames) switch</TITLE>
+ <LINK href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<H1>-ax (Exclude archive filenames) switch</H1>
+
+<P>Specifies archives to be excluded from the operation.</P>
+<P>Multiple exclude archive switches are supported.</P>
+
+<H4>Syntax</H4>
+
+<PRE class="syntax">
+-ax[&lt;recurse_type>]&lt;file_ref>
+
+&lt;recurse_type> ::= r[- | 0]
+&lt;file_ref> ::= @{listfile} | !{wildcard}
+</PRE>
+
+<P>See <A href="include.htm">-xi (Include archive filenames)</A> switch description
+for information about option parameters.</P>
+
+
+<H4>Examples</H4>
+
+<PRE class="example">
+7z t -an -ai!*.7z -ax!a*.7z
+</PRE>
+
+<P>tests all <SPAN class="filename">*.7z</SPAN> archives,
+ except <SPAN class="filename">a*.7z</SPAN> archives.</P>
+
+<H4>Commands that can be used with this switch</H4>
+
+<P>
+ <A href="../commands/extract.htm">e (Extract)</A>,
+ <A href="../commands/list.htm">l (List)</A>,
+ <A href="../commands/test.htm">t (Test)</A>,
+ <A href="../commands/extract_full.htm">x (Extract with full paths)</A>
+</P>
+
+<H4>See also</H4>
+
+<P>
+ <B>Switches:</B>
+ <A href="include.htm">-ai (Include archives)</A>
+ <A href="ar_no.htm">-an (Disable parsing of archive_name)</A>
+</P>
+
+</BODY>
+</HTML>
diff --git a/src/libs/7zip/unix/DOCS/MANUAL/switches/ar_include.htm b/src/libs/7zip/unix/DOCS/MANUAL/switches/ar_include.htm
new file mode 100644
index 000000000..30a5a9b69
--- /dev/null
+++ b/src/libs/7zip/unix/DOCS/MANUAL/switches/ar_include.htm
@@ -0,0 +1,83 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<HTML>
+<HEAD>
+ <META http-equiv="Content-Type" content="text/html; charset=Windows-1252">
+ <TITLE>-ai (Include archive filenames) switch</TITLE>
+ <LINK href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<H1>-ai (Include archive filenames) switch</H1>
+
+<P>Specifies additional include archive filenames and wildcards.</P>
+<P>Multiple include switches are supported.</P>
+
+<H4>Syntax</H4>
+
+<PRE class="syntax">
+-ai[<A class="parameter" href="#recurse_type">&lt;recurse_type></A>]<A class="parameter" href="#file_ref">&lt;file_ref></A>
+
+<A class="parameter" href="#recurse_type">&lt;recurse_type></A> ::= r[- | 0]
+<A class="parameter" href="#file_ref">&lt;file_ref></A> ::= @{listfile} | !{wildcard}
+</PRE>
+
+<H4>Parameters</H4>
+
+<DL>
+ <DT><A name="recurse_type"></A>&lt;recurse_type></DT>
+ <DD><P>Specifies how wildcards and file names in this switch must
+ be used. If this option is not given, recursion will be not used.
+ For more details see specification of the
+ <A href="recurse.htm">-r (Recurse)</A> switch.</P>
+<PRE class="syntax">
+&lt;recurse_type> ::= r[- | 0]
+</PRE>
+
+ </DD>
+ <DT><A name="file_ref"></A>&lt;file_ref></DT>
+ <DD>
+ <P>Specifies filenames and wildcards or list file that specify processed files.</P>
+<PRE class="syntax">
+&lt;file_ref> ::= @{listfile} | !{wildcard}
+</PRE>
+ <TABLE>
+ <TR> <TH width="120">Option</TH> <TH>Description</TH> </TR>
+ <TR> <TD>{listfile}</TD> <TD>Specifies name of list file. See
+ <A href = ../syntax.htm#ListFile>List file</A> description.</TD> </TR>
+ <TR> <TD>{wildcard}</TD> <TD>Specifies wildcard or filename.</TD> </TR>
+ </TABLE>
+ </DD>
+</DL>
+
+<H4>Examples</H4>
+
+<PRE class="example">
+7z t -an -air!*.7z
+</PRE>
+
+<P>tests <SPAN class="filename">*.7z</SPAN> archives in current directory and all it's
+subdirectories.</P>
+
+<H4>Commands that can be used with this switch</H4>
+
+<P>
+ <A href="../commands/add.htm">a (Add)</A>,
+ <A href="../commands/delete.htm">d (Delete)</A>,
+ <A href="../commands/extract.htm">e (Extract)</A>,
+ <A href="../commands/list.htm">l (List)</A>,
+ <A href="../commands/test.htm">t (Test)</A>,
+ <A href="../commands/update.htm">u (Update)</A>,
+ <A href="../commands/extract_full.htm">x (Extract with full paths)</A>
+</P>
+
+<H4>See also</H4>
+
+<P>
+ <B>Switches:</B>
+ <A href="ar_exclude.htm">-ax (Exclude archives)</A>
+ <A href="ar_no.htm">-an (Disable parsing of archive_name)</A>
+</P>
+
+</BODY>
+</HTML>
diff --git a/src/libs/7zip/unix/DOCS/MANUAL/switches/ar_no.htm b/src/libs/7zip/unix/DOCS/MANUAL/switches/ar_no.htm
new file mode 100644
index 000000000..d925f13d3
--- /dev/null
+++ b/src/libs/7zip/unix/DOCS/MANUAL/switches/ar_no.htm
@@ -0,0 +1,52 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<HTML>
+<HEAD>
+ <META http-equiv="Content-Type" content="text/html; charset=Windows-1252">
+ <TITLE>-an (Disable parsing of archive_name) switch</TITLE>
+ <LINK href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<H1>-an (Disable parsing of archive_name) switch</H1>
+
+<P>Disables parsing of the archive_name field on the command line.
+This switch must be used with the
+<A href="include.htm">-ai (Include archives) switch</A>.
+If you use a file list for your archives, you specify it with the -ai switch,
+so you need to disable parsing of archive_name field from command line.
+
+<H4>Syntax</H4>
+
+<PRE class="syntax">
+-an
+</PRE>
+
+<H4>Examples</H4>
+
+<PRE class="example">
+7z t -an -ai!*.7z -ax!a*.7z
+</PRE>
+
+<P>tests all <SPAN class="filename">*.7z</SPAN> archives,
+ except <SPAN class="filename">a*.7z</SPAN> archives.</P>
+
+<H4>Commands that can be used with this switch</H4>
+
+<P>
+ <A href="../commands/extract.htm">e (Extract)</A>,
+ <A href="../commands/list.htm">l (List)</A>,
+ <A href="../commands/test.htm">t (Test)</A>,
+ <A href="../commands/extract_full.htm">x (Extract with full paths)</A>
+</P>
+
+<H4>See also</H4>
+
+<P>
+ <B>Switches:</B>
+ <A href="include.htm">-ai (Include archives)</A>
+ <A href="exclude.htm">-ax (Exclude archives)</A>
+</P>
+
+</BODY>
+</HTML>
diff --git a/src/libs/7zip/unix/DOCS/MANUAL/switches/charset.htm b/src/libs/7zip/unix/DOCS/MANUAL/switches/charset.htm
new file mode 100644
index 000000000..e30802652
--- /dev/null
+++ b/src/libs/7zip/unix/DOCS/MANUAL/switches/charset.htm
@@ -0,0 +1,49 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<HTML>
+<HEAD>
+ <META http-equiv="Content-Type" content="text/html; charset=Windows-1252">
+ <TITLE>-scs (Set charset for list files) switch</TITLE>
+ <LINK href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<H1>-scs (Set charset for list files) switch</H1>
+
+<P>Sets charset for list files.</P>
+
+<H4>Syntax</H4>
+
+<PRE class="syntax">
+-scs{UTF-8 | WIN | DOS}
+</PRE>
+
+<P>Default charset is UTF-8.</P>
+
+<DL>
+ <DT>UTF-8</DT>
+ <DD>Unicode UTF-8 character set.</DD>
+ <DT>WIN</DT>
+ <DD>Default character set of Windows.</DD>
+ <DT>DOS</DT>
+ <DD>Default DOS (OEM) character set of Windows.</DD>
+</DL>
+
+<H4>Example</H4>
+
+<PRE class="example">
+7z a archive.7z @listfile.txt -scsWIN
+</PRE>
+
+<P>compresses files from <SPAN class="filename">listfile.txt</SPAN> list, that contains
+list of files in default character set of Windows.</P>
+
+<H4>Commands that can be used with this switch</H4>
+
+<P>
+ <A href="../commands/add.htm">a (Add)</A>,
+ <A href="../commands/update.htm">u (Update)</A>
+</P>
+
+</BODY>
+</HTML>
diff --git a/src/libs/7zip/unix/DOCS/MANUAL/switches/exclude.htm b/src/libs/7zip/unix/DOCS/MANUAL/switches/exclude.htm
new file mode 100644
index 000000000..faf8768e2
--- /dev/null
+++ b/src/libs/7zip/unix/DOCS/MANUAL/switches/exclude.htm
@@ -0,0 +1,60 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<HTML>
+<HEAD>
+ <META http-equiv="Content-Type" content="text/html; charset=Windows-1252">
+ <TITLE>-x (Exclude filenames) switch</TITLE>
+ <LINK href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<H1>-x (Exclude filenames) switch</H1>
+
+<P>Specifies which filenames or wildcarded names must be excluded from the operation.</P>
+<P>Multiple exclude switches are supported.</P>
+
+<H4>Syntax</H4>
+
+<PRE class="syntax">
+-x[&lt;recurse_type>]&lt;file_ref>
+
+&lt;recurse_type> ::= r[- | 0]
+&lt;file_ref> ::= @{listfile} | !{wildcard}
+</PRE>
+
+<P>See <A href="include.htm">-i (Include)</A> switch description for information about
+ option parameters.</P>
+
+
+<H4>Examples</H4>
+
+<PRE class="example">
+7z a -tzip archive.zip *.txt -x!temp.*
+</PRE>
+
+<P>adds to the archive <SPAN class="filename">archive.zip</SPAN> all
+ <SPAN class="filename">*.txt</SPAN> files,
+ except <SPAN class="filename">temp.*</SPAN> files.</P>
+
+<H4>Commands that can be used with this switch</H4>
+
+<P>
+ <A href="../commands/add.htm">a (Add)</A>,
+ <A href="../commands/delete.htm">d (Delete)</A>,
+ <A href="../commands/extract.htm">e (Extract)</A>,
+ <A href="../commands/list.htm">l (List)</A>,
+ <A href="../commands/test.htm">t (Test)</A>,
+ <A href="../commands/update.htm">u (Update)</A>,
+ <A href="../commands/extract_full.htm">x (Extract with full paths)</A>
+</P>
+
+<H4>See also</H4>
+
+<P>
+ <B>Switches:</B>
+ <A href="recurse.htm">-r (Recurse)</A>,
+ <A href="include.htm">-i (Include)</A>
+</P>
+
+</BODY>
+</HTML>
diff --git a/src/libs/7zip/unix/DOCS/MANUAL/switches/include.htm b/src/libs/7zip/unix/DOCS/MANUAL/switches/include.htm
new file mode 100644
index 000000000..009f5efcb
--- /dev/null
+++ b/src/libs/7zip/unix/DOCS/MANUAL/switches/include.htm
@@ -0,0 +1,87 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<HTML>
+<HEAD>
+ <META http-equiv="Content-Type" content="text/html; charset=Windows-1252">
+ <TITLE>-i (Include filenames) switch</TITLE>
+ <LINK href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<H1>-i (Include filenames) switch</H1>
+
+<P>Specifies additional include filenames and wildcards.</P>
+<P>Multiple include switches are supported.</P>
+
+<H4>Syntax</H4>
+
+<PRE class="syntax">
+-i[<A class="parameter" href="#recurse_type">&lt;recurse_type></A>]<A class="parameter" href="#file_ref">&lt;file_ref></A>
+
+<A class="parameter" href="#recurse_type">&lt;recurse_type></A> ::= r[- | 0]
+<A class="parameter" href="#file_ref">&lt;file_ref></A> ::= @{listfile} | !{wildcard}
+</PRE>
+
+<H4>Parameters</H4>
+
+<DL>
+ <DT><A name="recurse_type"></A>&lt;recurse_type></DT>
+ <DD><P>Specifies how wildcards and file names in this switch must
+ be used. If this option is not given, then the global value, assigned
+ by the <A href="recurse.htm">-r (Recurse)</A> switch will be used. For
+ more details see specification of the
+ <A href="recurse.htm">-r (Recurse)</A> switch.</P>
+<PRE class="syntax">
+&lt;recurse_type> ::= r[- | 0]
+</PRE>
+
+ </DD>
+ <DT><A name="file_ref"></A>&lt;file_ref></DT>
+ <DD>
+ <P>Specifies filenames and wildcards, or a list file, for files to be processed.</P>
+<PRE class="syntax">
+&lt;file_ref> ::= @{listfile} | !{wildcard}
+</PRE>
+ <TABLE>
+ <TR> <TH width="120">Option</TH> <TH>Description</TH> </TR>
+ <TR> <TD>{listfile}</TD> <TD>Specifies name of list file. See
+ <A href = ../syntax.htm#ListFile>List file</A> description.</TD> </TR>
+ <TR> <TD>{wildcard}</TD> <TD>Specifies wildcard or filename.</TD> </TR>
+ </TABLE>
+ </DD>
+</DL>
+
+<H4>Examples</H4>
+
+<PRE class="example">
+7z a -tzip src.zip *.txt -ir!DIR1\*.cpp
+</PRE>
+
+<P>adds to <SPAN class="filename">src.zip</SPAN> archive all
+ <SPAN class="filename">*.txt</SPAN> files from current directory
+ and all <SPAN class="filename">*.cpp</SPAN>
+ files from directory <SPAN class="filename">DIR1</SPAN>
+ and from all it's subdirectories.</P>
+
+<H4>Commands that can be used with this switch</H4>
+
+<P>
+ <A href="../commands/add.htm">a (Add)</A>,
+ <A href="../commands/delete.htm">d (Delete)</A>,
+ <A href="../commands/extract.htm">e (Extract)</A>,
+ <A href="../commands/list.htm">l (List)</A>,
+ <A href="../commands/test.htm">t (Test)</A>,
+ <A href="../commands/update.htm">u (Update)</A>,
+ <A href="../commands/extract_full.htm">x (Extract with full paths)</A>
+</P>
+
+<H4>See also</H4>
+
+<P>
+ <B>Switches:</B>
+ <A href="recurse.htm">-r (Recurse)</A>,
+ <A href="exclude.htm">-x (Exclude)</A>
+</P>
+
+</BODY>
+</HTML>
diff --git a/src/libs/7zip/unix/DOCS/MANUAL/switches/index.htm b/src/libs/7zip/unix/DOCS/MANUAL/switches/index.htm
new file mode 100644
index 000000000..65e335d49
--- /dev/null
+++ b/src/libs/7zip/unix/DOCS/MANUAL/switches/index.htm
@@ -0,0 +1,64 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<HTML>
+<HEAD>
+ <META http-equiv="Content-Type" content="text/html; charset=Windows-1252">
+ <TITLE>Command Line Switches</TITLE>
+ <LINK href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<H1>Command Line Switches</H1>
+
+<H4>Syntax</H4>
+
+<PRE class="syntax">
+&ltswitch>::= &lt;switch_symbol>&lt;switch_characters>[&lt;option>]
+&lt;switch_symbol> ::= '/' | '-'
+
+</PRE>
+<P>On the command line, a switch consists of a switch specifier,
+either a dash (-) or a forward slash (/), followed by the name of
+the switch. Switch names cannot be abbreviated.</P>
+
+<P>Some switches take an argument after the switch name.
+No spaces or tabs are allowed within a switch specification.
+Switch names are not case sensitive, but arguments can be case sensitive.
+</P>
+
+<P>Switch can be used in any place in command line.</B>
+
+<P>See also <A href ="../syntax.htm">Command Line Syntax</A> for more details
+ about using the command line.</P>
+
+<H2>Switch quick reference</H2>
+
+<TABLE border="1" cellpadding="3" cellspacing="0">
+<TR><TH>Switch</TH><TH>Description</TH></TR>
+<TR> <TD><A href="stop_switch.htm">--</A></TD> <TD><A href="stop_switch.htm">Stop switches parsing</A></TD></TR>
+<TR> <TD><A href="ar_include.htm">-ai</A></TD> <TD><A href="ar_include.htm">Include archive filenames</A></TD></TR>
+<TR> <TD><A href="ar_no.htm">-an</A></TD> <TD><A href="ar_no.htm">Disable parsing of archive_name</A></TD></TR>
+<TR> <TD><A href="overwrite.htm">-ao</A></TD> <TD><A href="overwrite.htm">Overwrite mode</A></TD></TR>
+<TR> <TD><A href="ar_exclude.htm">-ax</A></TD> <TD><A href="ar_exclude.htm">Exclude archive filenames</A></TD></TR>
+<TR> <TD><A href="include.htm">-i</A></TD> <TD><A href="include.htm">Include filenames</A></TD></TR>
+<TR> <TD><A href="method.htm">-m</A></TD> <TD><A href="method.htm">Set Compression Method</A></TD></TR>
+<TR> <TD><A href="output_dir.htm">-o</A></TD> <TD><A href="output_dir.htm">Set Output directory</A></TD></TR>
+<TR> <TD><A href="password.htm">-p</A></TD> <TD><A href="password.htm">Set Password</A></TD></TR>
+<TR> <TD><A href="recurse.htm">-r</A></TD> <TD><A href="recurse.htm">Recurse subdirectories</A></TD></TR>
+<TR> <TD><A href="charset.htm">-scs</A></TD> <TD><A href="charset.htm">Set charset for list files</A></TD></TR>
+<TR> <TD><A href="large_pages.htm">-slp</A></TD> <TD><A href="large_pages.htm">Set Large Pages mode</A></TD></TR>
+<TR> <TD><A href="list_tech.htm">-slt</A></TD> <TD><A href="list_tech.htm">Show technical information</A></TD></TR>
+<TR> <TD><A href="sfx.htm">-sfx</A></TD> <TD><A href="sfx.htm">Create SFX archive</A></TD></TR>
+<TR> <TD><A href="stdin.htm">-si</A></TD> <TD><A href="stdin.htm">Read data from StdIn</A></TD></TR>
+<TR> <TD><A href="stdout.htm">-so</A></TD> <TD><A href="stdout.htm">Write data to StdOut</A></TD></TR>
+<TR> <TD><A href="ssc.htm">-ssc</A></TD> <TD><A href="ssc.htm">Set Sensitive Case mode</A></TD></TR>
+<TR> <TD><A href="type.htm">-t</A></TD> <TD><A href="type.htm">Type of archive</A></TD></TR>
+<TR> <TD><A href="update.htm">-u</A></TD> <TD><A href="update.htm">Update options</A></TD></TR>
+<TR> <TD><A href="volume.htm">-v</A></TD> <TD><A href="volume.htm">Create Volumes</A></TD></TR>
+<TR> <TD><A href="working_dir.htm">-w</A></TD> <TD><A href="working_dir.htm">Set Working directory</A></TD></TR>
+<TR> <TD><A href="exclude.htm">-x</A></TD> <TD><A href="exclude.htm">Exclude filenames</A></TD></TR>
+<TR> <TD><A href="yes.htm">-y</A></TD> <TD><A href="yes.htm">Assume Yes on all queries</A></TD></TR>
+</TABLE>
+
+</BODY>
+</HTML>
diff --git a/src/libs/7zip/unix/DOCS/MANUAL/switches/large_pages.htm b/src/libs/7zip/unix/DOCS/MANUAL/switches/large_pages.htm
new file mode 100644
index 000000000..82fd5b77d
--- /dev/null
+++ b/src/libs/7zip/unix/DOCS/MANUAL/switches/large_pages.htm
@@ -0,0 +1,50 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<HTML>
+<HEAD>
+ <META http-equiv="Content-Type" content="text/html; charset=Windows-1252">
+ <TITLE>-slp (Set Large Pages mode) switch</TITLE>
+ <LINK href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<H1>-slp (Set Large Pages mode) switch</H1>
+
+<P>Sets Large Pages mode.</P>
+
+<H4>Syntax</H4>
+
+<PRE class="syntax">
+-slp[-]
+</PRE>
+
+
+<TABLE>
+ <TR><TH width="80">Switch</TH> <TH>Description</TH></TR>
+ <TR><TD>-slp</TD> <TD>Enables Large Pages mode.</TD></TR>
+ <TR><TD>-slp-</TD> <TD>Disables Large Pages mode. This option is default for all commands.</TD></TR>
+</TABLE>
+
+<P>Large Pages mode increases the speed of compression.
+However, there is a pause at the start of compression while 7-Zip allocates the large pages in memory.
+If 7-Zip can't allocate large pages, it allocates usual small pages.
+Also, the Windows Task Manager doesn't show the real memory usage of the program, if 7-Zip uses large pages.
+This feature works only on Windows 2003 / XP x64.
+Also, it requires administrator's rights for your system.
+The recommended size of RAM for this feature is 1 GB or more.
+To install this feature, you must run the 7-Zip File Manager at least once,
+close it, and then reboot the system.</P>
+<P>Your system can hang for several seconds at compressing starting, if you use -slp mode.
+So it's not recommended to use -slp mode to compress small data sets (less than 100 MB).</P>
+
+
+<H4>Example</H4>
+
+<PRE class="example">
+7z a archive.7z -slp a.iso
+</PRE>
+
+<P>compresses <SPAN class="filename">a.iso</SPAN> file with Large Pages mode switched on.</P>
+
+</BODY>
+</HTML>
diff --git a/src/libs/7zip/unix/DOCS/MANUAL/switches/list_tech.htm b/src/libs/7zip/unix/DOCS/MANUAL/switches/list_tech.htm
new file mode 100644
index 000000000..aa8e522da
--- /dev/null
+++ b/src/libs/7zip/unix/DOCS/MANUAL/switches/list_tech.htm
@@ -0,0 +1,36 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<HTML>
+<HEAD>
+ <META http-equiv="Content-Type" content="text/html; charset=Windows-1252">
+ <TITLE>-slt (Show technical information) switch</TITLE>
+ <LINK href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<H1>-slt (Show technical information) switch</H1>
+
+<P>Sets technical mode for <A href="../commands/list.htm">l (List)</A> command.</P>
+
+<H4>Syntax</H4>
+
+<PRE class="syntax">
+-slt
+</PRE>
+
+<H4>Example</H4>
+
+<PRE class="example">
+7z l -slt archive.7z
+</PRE>
+
+<P>shows detailed technical information for the files in <SPAN class="filename">archive.7z</SPAN>.</P>
+
+<H4>Commands that can be used with this switch</H4>
+
+<P>
+ <A href="../commands/list.htm">l (List)</A>
+</P>
+
+</BODY>
+</HTML>
diff --git a/src/libs/7zip/unix/DOCS/MANUAL/switches/method.htm b/src/libs/7zip/unix/DOCS/MANUAL/switches/method.htm
new file mode 100644
index 000000000..448dbdf59
--- /dev/null
+++ b/src/libs/7zip/unix/DOCS/MANUAL/switches/method.htm
@@ -0,0 +1,625 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<HTML>
+<HEAD>
+ <META http-equiv="Content-Type" content="text/html; charset=Windows-1252">
+ <TITLE>-m (Set compression Method) switch</TITLE>
+ <LINK href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<H1>-m (Set compression Method) switch</H1>
+
+<P>Specifies the compression method.</P>
+
+<H4>Syntax</H4>
+
+<PRE class="syntax">
+-m&lt;method_parameters>
+
+</PRE>
+
+<P>The format for this switch depends on the archive type.</P>
+
+<UL>
+<LI><TD><A class="parameter" href="#Zip">Zip</A></TD>
+<LI><TD><A class="parameter" href="#GZ">GZip</A></TD>
+<LI><TD><A class="parameter" href="#BZ2">BZip2</A></TD>
+<LI><TD><A class="parameter" href="#7Z">7z</A></TD>
+<LI><TD><A class="parameter" href="#XZ">XZ</A></TD>
+</UL>
+
+<H2><A name="Zip"></A>Zip</H2>
+<TABLE>
+ <TR>
+ <TH width="160">Parameter</TH>
+ <TH align="center">Default</TH>
+ <TH>Description</TH> </TR>
+ <TR>
+ <TD><A class="parameter" href="#ZipX">x=[0 | 1 | 3 | 5 | 7 | 9 ]</A></TD>
+ <TD align="center">5</TD>
+ <TD>Sets level of compression.</TD> </TR>
+ <TR>
+ <TD>m={MethodID}</TD>
+ <TD align="center">Deflate</TD>
+ <TD>Sets a method: Copy, Deflate, Deflate64, BZip2, LZMA, PPMd.</TD> </TR>
+ <TR>
+ <TD><A class="parameter" href="#Deflate_FastBytes">fb={NumFastBytes}</A></TD>
+ <TD align="center">32</TD>
+ <TD>Sets number of Fast Bytes for Deflate encoder.</TD> </TR>
+ <TR>
+ <TD><A class="parameter" href="#Zip_Pass">pass={NumPasses}</A></TD>
+ <TD align="center">1</TD>
+ <TD>Sets number of Passes for Deflate encoder.</TD></TR>
+ <TR>
+ <TD><A class="parameter" href="#ZipDictionarySize">d={Size}[b|k|m]</A></TD>
+ <TD align="center">900000</TD>
+ <TD>Sets Dictionary size for BZip2</TD></TR>
+ <TR>
+ <TD><A class="parameter" href="#ZipMemorySize">mem={Size}[b|k|m]</A></TD>
+ <TD align="center">24</TD> <TD>Sets size of used memory for PPMd.</TD></TR>
+ <TR>
+ <TD><A class="parameter" href="#ZipOrder">o={Size}</A></TD>
+ <TD align="center">8</TD> <TD>Sets model order for PPMd.</TD></TR>
+ <TR>
+ <TD><A class="parameter" href="#ZipMultiThread">mt=[off | on | {N}]</A></TD>
+ <TD align="center">on</TD>
+ <TD>Sets multithreading mode.</TD></TR>
+ <TR>
+ <TD>em={EncryptionMethodID}</TD>
+ <TD align="center">ZipCrypto</TD>
+ <TD>Sets a encryption method: ZipCrypto, AES128, AES192, AES256</TD> </TR>
+ <TR> <TD><A class="parameter">tc=[off | on]</A></TD>
+ <TD align="center">off</TD> <TD>Stores NTFS timestamps for files: Modification time, Creation time, Last access time.</TD> </TR>
+ <TR> <TD><A class="parameter">cl=[off | on]</A></TD>
+ <TD align="center">off</TD> <TD>7-Zip always uses local code page for file names.</TD> </TR>
+ <TR> <TD><A class="parameter">cu=[off | on]</A></TD>
+ <TD align="center">off</TD> <TD>7-Zip uses UTF-8 for file names that contain non-ASCII symbols.</TD> </TR>
+</TABLE>
+
+<P>By default (if <B>cl</B> and <B>cu</B> switches are not specified), 7-Zip uses UTF-8 encoding
+only for file names that contain symbols unsupported by local code page.</P>
+
+<DL>
+ <DT><A name="ZipX"></A>x=[0 | 1 | 3 | 5 | 7 | 9 ]</DT>
+ <DD>
+ <P>Sets level of compression. x=0 means Copy mode (no compression).</P>
+ <P>Deflate / Deflate64 settings:</P>
+ <TABLE>
+ <TR> <TH>Level</TH> <TH>NumFastBytes</TH> <TH>NumPasses</TH> <TH>Description</TH> </TR>
+ <TR> <TD class="cc">1</TD> <TD class="cc" rowspan=3>32</TD> <TD class="cc" rowspan=3>1</TD> <TD>Fastest</TD> </TR>
+ <TR> <TD class="cc">3</TD> <TD>Fast</TR>
+ <TR> <TD class="cc">5</TD> <TD>Normal</TR>
+ <TR> <TD class="cc">7</TD> <TD class="cc">64</TD> <TD class="cc">3</TD> <TD>Maximum</TD> </TR>
+ <TR> <TD class="cc">9</TD> <TD class="cc">128</TD> <TD class="cc">10</TD> <TD>Ultra</TD> </TR>
+ </TABLE>
+
+ <P>x=1 and x=3 with Deflate method set fast mode for compression.</P>
+
+ <P>BZip2 settings:</P>
+ <TABLE>
+ <TR> <TH>Level</TH> <TH>Dictionary</TH> <TH>NumPasses</TH> <TH>Description</TH> </TR>
+ <TR> <TD class="cc">1</TD> <TD class="cc">100000</TD> <TD class="cc" rowspan=3>1</TD> <TD>Fastest</TD> </TR>
+ <TR> <TD class="cc">3</TD> <TD class="cc">500000</TD> <TD>Fast</TD> </TR>
+ <TR> <TD class="cc">5</TD> <TD class="cc" rowspan=3>900000</TD> <TD>Normal</TD> </TR>
+ <TR> <TD class="cc">7</TD> <TD align="center">2</TD> <TD>Maximum</TD> </TR>
+ <TR> <TD class="cc">9</TD> <TD align="center">7</TD> <TD>Ultra</TD> </TR>
+ </TABLE>
+ </DD>
+
+ <DT><A name="Deflate_FastBytes"></A>fb={NumFastBytes}</DT>
+ <DD>
+ <P>Sets the number of fast bytes for the Deflate/Deflate64 encoder.
+ It can be in the range from 3 to 258 (257 for Deflate64).
+ Usually, a big number gives a little bit better
+ compression ratio and a slower compression process.
+ A large fast bytes parameter can significantly increase the compression ratio
+ for files which contain long identical sequences of bytes.</P>
+ </DD>
+ <DT><A name="Zip_Pass"></A>pass={NumPasses}</DT>
+ <DD>
+ <P>Sets number of passes for Deflate encoder. It can be in the range from 1 to 15 for Deflate and
+ from 1 to 10 for BZip2. Usually, a big number gives a little bit better
+ compression ratio and a slower compression process.
+ </P>
+ </DD>
+ <DT><A name="ZipDictionarySize"></A>d={Size}[b|k|m]</DT>
+ <DD>
+ <P> Sets the Dictionary size for BZip2. You must specify the size in bytes, kilobytes, or megabytes.
+ The maximum value for the Dictionary size is 900000b. If you do not specify any symbol
+ from set [b|k|m], dictionary size will be calculated as DictionarySize = 2^Size bytes.</P>
+ </DD>
+
+ <DT><A name="ZipMemorySize"></A>mem={Size}[b|k|m]</DT>
+ <DD>
+ <P> Sets the size of memory used for PPMd. You must specify the size in bytes, kilobytes, or megabytes.
+ The maximum value is 256 MB = 2^28 bytes. The default value
+ is 24 (16MB). If you do not specify any symbol from the set [b|k|m], the
+ memory size will be calculated as (2^Size) bytes. PPMd uses the same
+ amount of memory for compression and decompression.</P>
+ </DD>
+
+ <DT><A name="ZipOrder"></A>o={Size}</DT>
+ <DD>
+ <P>Sets the model order for PPMd. The size must be in the range [2,16]. The default value is 8.</P>
+ </DD>
+
+ <DT><A name="ZipMultiThread"></A>mt=[off | on | {N}]</DT>
+ <DD>
+ <P>Sets multithread mode. If you have a multiprocessor or multicore system,
+ you can get a speed increase with
+ this switch. This option affects only compression (with any method) and
+ decompression of BZip2 streams.
+ Each thread in the multithread mode uses 32 MB of RAM for buffering.
+ If you specify {N}, 7-Zip tries to use N threads.</P>
+ </DD>
+</DL>
+
+<H2><A name="GZ"></A>GZip</H2>
+GZip uses the same parameters as Zip, but GZip compresses only with Deflate method.
+So GZip supports only the following parameters: x, fb, pass.
+
+<H2><A name="BZ2"></A>BZip2</H2>
+<TABLE>
+ <TR>
+ <TH width="160">Parameter</TH>
+ <TH align="center">Default</TH>
+ <TH>Description</TH> </TR>
+ <TR>
+ <TD><A class="parameter" href="#BZip2X">x=[1 | 3 | 5 | 7 | 9 ]</A></TD>
+ <TD align="center">5</TD>
+ <TD>Sets level of compression.</TD> </TR>
+ <TR>
+ <TD><A class="parameter" href="#BZip2Pass">pass={NumPasses}</A></TD>
+ <TD align="center">1</TD>
+ <TD>Sets number of Passes for Bzip2 encoder.</TD></TR>
+ <TR>
+ <TD><A class="parameter" href="#BZip2DictionarySize">d={Size}[b|k|m]</A></TD>
+ <TD align="center">900000</TD>
+ <TD>Sets Dictionary size for BZip2</TD></TR>
+ <TR>
+ <TD><A class="parameter" href="#BZip2MultiThread">mt=[off | on | {N}]</A></TD>
+ <TD align="center">on</TD>
+ <TD>Sets multithreading mode.</TD></TR>
+</TABLE>
+
+<DL>
+ <DT><A name="BZip2"></A>x=[1 | 3 | 5 | 7 | 9 ]</DT>
+ <DD>
+ <P>Sets level of compression</P>
+ <TABLE>
+ <TR> <TH>Level</TH> <TH>Dictionary</TH> <TH>NumPasses</TH> <TH>Description</TH> </TR>
+ <TR> <TD class="cc">1</TD> <TD class="cc">100000</TD> <TD class="cc" rowspan=3>1</TD> <TD>Fastest</TD> </TR>
+ <TR> <TD class="cc">3</TD> <TD class="cc">500000</TD> <TD>Fast</TD> </TR>
+ <TR> <TD class="cc">5</TD> <TD class="cc" rowspan=3>900000</TD> <TD>Normal</TD> </TR>
+ <TR> <TD class="cc">7</TD> <TD align="center">2</TD> <TD>Maximum</TD> </TR>
+ <TR> <TD class="cc">9</TD> <TD align="center">7</TD> <TD>Ultra</TD> </TR>
+ </TABLE>
+ </DD>
+
+ <DT><A name="BZip2DictionarySize"></A>d={Size}[b|k|m]</DT>
+ <DD>
+ <P> Sets the Dictionary size for BZip2. You must specify the size in bytes, kilobytes, or megabytes.
+ The maximum value for the Dictionary size is 900000b. If you do not specify any symbol
+ from set [b|k|m], dictionary size will be calculated as DictionarySize = 2^Size bytes.</P>
+ </DD>
+
+ <DT><A name="#BZip2Pass"></A>pass={NumPasses}</DT>
+ <DD>
+ <P>Sets the number of passes. It can be in the range from 1 to 10.
+ The default value is 1 for normal mode, 2 for maximum mode and 7 for ultra mode.
+ A bigger number can give a little bit better compression ratio and a slower compression process.
+ </P>
+ </DD>
+ <DT><A name="BZip2MultiThread"></A>mt=[off | on | {N}]</DT>
+ <DD>
+ <P>Sets multithread mode. If you have a multiprocessor or multicore system,
+ you can get a speed increase with
+ this switch. If you specify {N}, for example mt=4, 7-Zip tries to use 4 threads.</P>
+ </DD>
+</DL>
+
+<H2><A name="7Z"></A>7z</H2>
+<TABLE>
+ <TR> <TH width="80">Parameter</TH> <TH align="center">Default</TH> <TH>Description</TH> </TR>
+ <TR> <TD><A class="parameter" href="#SevenZipX">x=[0 | 1 | 3 | 5 | 7 | 9 ]</A></TD>
+ <TD align="center">5</TD><TD>Sets level of compression.</TD> </TR>
+ <TR> <TD><A class="parameter" href="#Solid">s=[off | on | [e] [{N}f] [{N}b | {N}k | {N}m | {N}g]</A></TD>
+ <TD align="center">on</TD> <TD>Sets solid mode.</TD> </TR>
+ <TR> <TD><A class="parameter" href="#Filter">f=[off | on]</A></TD>
+ <TD align="center">on</TD> <TD>Enables or disables compression filters for executable files.</TD> </TR>
+ <TR> <TD><A class="parameter" href="#HeaderCompress">hc=[off | on]</A></TD>
+ <TD align="center">on</TD> <TD>Enables or disables archive header compressing.</TD> </TR>
+ <TR> <TD><A class="parameter" href="#HeaderEncrypt">he=[off | on]</A></TD>
+ <TD align="center">off</TD> <TD>Enables or disables archive header encryption.</TD> </TR>
+ <TR> <TD><A class="parameter" href="#Bind">b{C1}[s{S1}]:{C2}[s{S2}]</A></TD>
+ <TD align="center"> </TD> <TD>Sets binding beetwen coders.</TD> </TR>
+ <TR> <TD><A class="parameter" href="#MethodID">{N}={MethodID}[:param1][:param2][..]</A></TD>
+ <TD align="center">LZMA</TD> <TD>Sets a method: LZMA, LZMA2, PPMd, BZip2, Deflate, Delta, BCJ, BCJ2, Copy.</TD> </TR>
+ <TR> <TD><A class="parameter" href="#MultiThread">mt=[off | on | {N}]</A></TD>
+ <TD align="center">on</TD> <TD>Sets multithreading mode.</TD> </TR>
+ <TR> <TD><A class="parameter">tc=[off | on]</A></TD>
+ <TD align="center">off</TD> <TD>Stores file creation timestamps.</TD> </TR>
+</TABLE>
+
+<DL>
+ <DT><A name="SevenZipX"></A>x=[0 | 1 | 3 | 5 | 7 | 9 ]</DT>
+ <DD>
+ <P>Sets level of compression</P>
+ <TABLE>
+ <TR> <TH>Level</TH> <TH>Method</TH> <TH>Dictionary</TH> <TH>FastBytes</TH> <TH>MatchFinder</TH> <TH>Filter</TH> <TH>Description</TH> </TR>
+ <TR> <TD align="center">0</TD> <TD align="center">Copy</TD> <TD align="center"></TD> <TD align="center"></TD> <TD align="center"></TD> <TD align="center"></TD> <TD>No compression.</TD> </TR>
+ <TR> <TD align="center">1</TD> <TD align="center">LZMA</TD> <TD align="center">64 KB</TD> <TD align="center">32</TD> <TD align="center">HC4</TD> <TD align="center">BCJ</TD> <TD>Fastest compressing</TD> </TR>
+ <TR> <TD align="center">3</TD> <TD align="center">LZMA</TD> <TD align="center">1 MB</TD> <TD align="center">32</TD> <TD align="center">HC4</TD> <TD align="center">BCJ</TD> <TD>Fast compressing</TD> </TR>
+ <TR> <TD align="center">5</TD> <TD align="center">LZMA</TD> <TD align="center">16 MB</TD> <TD align="center">32</TD> <TD align="center">BT4</TD> <TD align="center">BCJ</TD> <TD>Normal compressing</TD> </TR>
+ <TR> <TD align="center">7</TD> <TD align="center">LZMA</TD> <TD align="center">32 MB</TD> <TD align="center">64</TD> <TD align="center">BT4</TD> <TD align="center">BCJ</TD> <TD>Maximum compressing</TD> </TR>
+ <TR> <TD align="center">9</TD> <TD align="center">LZMA</TD> <TD align="center">64 MB</TD> <TD align="center">64</TD> <TD align="center">BT4</TD> <TD align="center">BCJ2</TD><TD>Ultra compressing</TD> </TR>
+ </TABLE>
+ <P>Note: "x" works as "x=9".</P>
+ </DD>
+
+ <DT><A name="Solid"></A>s=[off | on | [e] [{N}f] [{N}b | {N}k | {N}m | {N}g)]</DT>
+ <DD>
+ <P> Enables or disables solid mode. The default mode is s=on.
+ In solid mode, files are grouped together. Usually, compressing in
+ solid mode improves the compression ratio.</P>
+
+ <TABLE>
+ <TR> <TD>e</TD> <TD>Use a separate solid block for each new file extension</TD> </TR>
+ <TR> <TD>{N}f</TD> <TD>Set the limit for number of files in one solid block</TD> </TR>
+ <TR> <TD>{N}b | {N}k | {N}m | {N}g</TD> <TD>Set a limit for the total size of a solid block in bytes</TD> </TR>
+ </TABLE>
+
+ <P>These are the default limits for the solid block size:</P>
+
+ <TABLE>
+ <TR> <TH width="150">Compression Level</TH> <TH>Solid block size</TH> </TR>
+ <TR> <TD>Store</TD> <TD>0 B</TD> </TR>
+ <TR> <TD>Fastest</TD> <TD>16 MB</TD> </TR>
+ <TR> <TD>Fast</TD> <TD>128 MB</TD> </TR>
+ <TR> <TD>Normal</TD> <TD>2 GB</TD> </TR>
+ <TR> <TD>Maximum</TD> <TD>4 GB</TD> </TR>
+ <TR> <TD>Ultra</TD> <TD>4 GB</TD> </TR>
+ </TABLE>
+
+
+ <P>Limitation of the solid block size usually decreases compression ratio but gives the following advantages:</P>
+ <UL>
+ <LI>Decreases losses in case of future archive damage.
+ <LI>Decreases extraction time of a group of files (or just one
+ file), so long as the group doesn't contain the entire archive.</LI></LI>
+ </UL>
+ <P>The updating of solid .7z archives can be slow, since it
+ can require some recompression.</P>
+
+ <P>Example:</P>
+ <PRE class="example">
+ s=100f10m
+ </PRE>
+ <P>set solid mode with 100 files & 10 MB limits per one solid block.</P>
+
+ <DT><A name="Filter"></A>f=[off | on]</DT>
+ <DD>
+ <P>Enables or disables compression filters for executable files:
+ dll, exe, ocx, sfx, sys. It uses BCJ2 filter in Ultra mode and BCJ
+ filter in other modes. The default mode is f=on.
+ </P>
+ <DT><A name="HeaderCompress"></A>hc=[off | on]</DT>
+ <DD>
+ <P> Enables or disables archive header compressing. The default mode is hc=on.
+ If archive header compressing is enabled, some parts of archive header will
+ be compressed with LZMA method.
+ </P>
+ <DT><A name="HeaderEncrypt"></A>he=[off | on]</DT>
+ <DD>
+ <P> Enables or disables archive header encryption. The default mode is he=off.
+ </P>
+ <DT>{N}</DT>
+ <DD>
+ <P>Sets order of methods. It is used also to associate parameters with
+ methods. Numbers must begin from 0. Methods that have smaller numbers will be used
+ before others.</P>
+ </DD>
+
+ <DT><A name="Bind"></A>b{C1}[s{S1}]:{C2}[s{S2}]</DT>
+ <DD>
+ <P> Binds output stream S1 in coder C1 with input stream S2 in coder C2.
+ If stream number is not specified, stream with number 0 will be used.
+ </P>
+ <P> Usally coder has one input stream and
+ one output stream. In 7z some coders can have multiple input and output streams.</P>
+
+ <P>For example, <A class="parameter" href="#BCJ2">BCJ2</A> encoder has one
+ input stream and four output streams.</P>
+ </DD>
+
+ <DT><A name="MultiThread"></A>mt=[off | on | {N}]</DT>
+ <DD>
+ <P>Sets multithread mode. If you have a multiprocessor or multicore system,
+ you can get a increase with this switch.
+ 7-Zip supports multithread mode only for LZMA / LZMA2 compression and
+ BZip2 compression / decompression. If you specify {N}, for example mt=4,
+ 7-Zip tries to use 4 threads. LZMA compression uses only 2 threads.
+ </P>
+ </DD>
+
+ <DT><A name="MethodID"></A>{N}={MethodID}[:param1][:param2] ... [:paramN]</DT>
+ <DD>
+ <P>Sets compression method. You can use any number of methods.
+ The default method is LZMA. </P>
+ <P>Parameters must be in one of the following forms:</P>
+ <UL>
+ <LI>{ParamName}={ParamValue}.
+ <LI>{ParamName}{ParamValue}, if {ParamValue}
+ is number and {ParamName} doesn't contain numbers.
+ </UL>
+
+ <P>Supported methods:</P>
+ <TABLE>
+ <TR> <TH width="60">MethodID</TH> <TH>Description</TH> </TR>
+ <TR> <TD><A class="parameter" href="#LZMA">LZMA</A></TD> <TD>LZ-based algorithm</TD> </TR>
+ <TR> <TD><A class="parameter" href="#LZMA2">LZMA2</A></TD> <TD>LZMA-based algorithm</TD> </TR>
+ <TR> <TD><A class="parameter" href="#PPMd">PPMd</A></TD> <TD>Dmitry Shkarin's PPMdH with small changes</TD> </TR>
+ <TR> <TD>BZip2</TD> <TD>BWT algorithm</TD> </TR>
+ <TR> <TD>Deflate</TD> <TD>LZ+Huffman</TD> </TR>
+ <TR> <TD>Copy</TD> <TD>No compression</TD> </TR>
+ </TABLE>
+
+ <P>Supported filters:</P>
+ <TABLE>
+ <TR> <TH width="60">MethodID</TH> <TH>Description</TH> </TR>
+ <TR> <TD><A class="parameter" href="#Delta">Delta</A></TD> <TD>Delta filter</TD> </TR>
+ <TR> <TD>BCJ</TD> <TD>converter for x86 executables</TD> </TR>
+ <TR> <TD><A class="parameter" href="#BCJ2">BCJ2</A></TD> <TD>converter for x86 executables (version 2)</TD> </TR>
+ <TR> <TD>ARM</TD> <TD>converter for ARM (little endian) executables</TD> </TR>
+ <TR> <TD>ARMT</TD> <TD>converter for ARM Thumb (little endian) executables</TD> </TR>
+ <TR> <TD>IA64</TD> <TD>converter for IA-64 executables</TD> </TR>
+ <TR> <TD>PPC</TD> <TD>converter for PowerPC (big endian) executables</TD> </TR>
+ <TR> <TD>SPARC</TD> <TD>converter for SPARC executables</TD> </TR>
+ </TABLE>
+ <P>Filters increase the compression ratio for some types of files. Filters
+ must be used with one of the compression method (for example, BCJ + LZMA).</P>
+ </DD>
+
+ <H4><A name="LZMA"></A>LZMA</H4>
+ <P> LZMA is an algorithm based on Lempel-Ziv algorithm.
+ It provides very fast decompression (about 10-20 times faster than compression).
+ Memory requirements for compression and decompression also are different (see
+ <A class="parameter" href="#DictionarySize">d={Size}[b|k|m]</A> switch for details).</P>
+
+ <TABLE>
+ <TR> <TH width="80">Parameter</TH> <TH align="center">Default</TH> <TH>Description</TH> </TR>
+
+ <TR> <TD><A class="parameter" href="#LZMAMode">a=[0|1]</A></TD>
+ <TD align="center">1</TD> <TD>Sets compressing mode</TD> </TR>
+ <TR> <TD><A class="parameter" href="#DictionarySize">d={Size}[b|k|m]</A></TD>
+ <TD align="center">24</TD> <TD>Sets Dictionary size</TD> </TR>
+ <TR> <TD><A class="parameter" href="#MatchFinder">mf={MF_ID}</A></TD>
+ <TD align="center">bt4</TD> <TD>Sets Match Finder</TD> </TR>
+ <TR> <TD><A class="parameter" href="#FastBytes">fb={N}</A></TD>
+ <TD align="center">32</TD> <TD>Sets number of Fast Bytes</TD></TR>
+ <TR> <TD><A class="parameter" href="#MatchFinderCycles">mc={N}</A></TD>
+ <TD align="center">32</TD><TD>Sets Number of Cycles for Match Finder</TD> </TR>
+ <TR> <TD><A class="parameter" href="#LitContext">lc={N}</A></TD>
+ <TD align="center">3</TD> <TD>Sets number of Literal Context bits - [0, 8]</TD></TR>
+ <TR> <TD><A class="parameter" href="#LitPos">lp={N}</A></TD>
+ <TD align="center">0</TD> <TD>Sets number of Literal Pos bits - [0, 4]</TD></TR>
+ <TR> <TD><A class="parameter" href="#PosBits">pb={N}</A></TD>
+ <TD align="center">2</TD> <TD>Set number of Pos Bits - [0, 4]</TD></TR>
+ </TABLE>
+
+
+ <DL>
+ <DT><A name="#LZMAMode"></A>a=[0|1]</DT>
+ <DD>
+ <P> Sets compression mode: 0 = fast, 1 = normal.
+ Default value is 1.</P>
+ </DD>
+ <DT><A name="DictionarySize"></A>d={Size}[b|k|m]</DT>
+ <DD>
+ <P> Sets Dictionary size for LZMA. You must specify the size in bytes, kilobytes, or megabytes.
+ The maximum value for dictionary size is 1 GB = 2^30 bytes. Default values for LZMA
+ are 24 (16 MB) in normal mode, 25 (32 MB) in maximum mode (-mx=7)
+ and 26 (64 MB) in ultra mode (-mx=9).
+ If you do not specify any symbol from the set [b|k|m], the
+ dictionary size will be calculated as DictionarySize = 2^Size bytes.
+ For decompressing a file compressed by LZMA method with dictionary size N, you need
+ about N bytes of memory (RAM) available.
+ </P>
+ </DD>
+ <DT><A name="MatchFinder"></A>mf={MF_ID}</DT>
+ <DD>
+ <P> Sets Match Finder for LZMA. Default method is bt4.
+ Algorithms from hc* group don't provide a good compression ratio,
+ but they often work pretty fast in combination with fast mode (a=0).
+ Memory requirements depend on dictionary size (parameter "d" in table below).
+ </P>
+ <TABLE>
+ <TR> <TH>MF_ID</TH> <TH class="cc">Dictionary</TH> <TH class="cc" colspan = 2>Memory Usage</TH> <TH class="cc" colspan = 2>Description</TH> </TR>
+ <TR> <TD class="cc">bt2</TD> <TD></TD> <TD align="right"> 9.5 * d</TD> <TD class="cc" rowspan=6> + 4 MB</TD> <TD class="cc" rowspan=4>Binary Tree</TD> <TD>2 bytes hashing</TD> </TR>
+ <TR> <TD class="cc">bt3</TD> <TD></TD> <TD align="right">11.5 * d</TD> <TD>3 bytes hashing</TD> </TR>
+ <TR> <TD class="cc" rowspan=2>bt4</TD> <TD class="cc">64 KB ... 48 MB</TD> <TD align="right">11.5 * d</TD> <TD class="cc" rowspan=6>4 bytes hashing</TD> </TR>
+ <TR> <TD class="cc">64 MB ... 1024 MB</TD> <TD align="right">10.5 * d</TD> </TR>
+ <TR> <TD class="cc" rowspan=2>hc4</TD> <TD class="cc">64 KB ... 48 MB</TD> <TD align="right"> 7.5 * d</TD> <TD class="cc" rowspan=2>Hash Chain </TD></TR>
+ <TR> <TD class="cc">64 MB ... 1024 MB</TD> <TD align="right"> 6.5 * d</TD> </TR>
+ </TABLE>
+ <P>Note: Your operation system also needs some amount of physical memory for internal purposes.
+ So keep at least 32MB of physical memory unused.</P>
+ </DD>
+
+ <DT><A name="FastBytes"></A>fb={N}</DT>
+ <DD>
+ <P>Sets number of fast bytes for LZMA. It can be in the range from 5 to 273.
+ The default value is 32 for normal mode and 64 for maximum and ultra modes.
+ Usually, a big number gives a little bit better
+ compression ratio and slower compression process.
+ </P>
+ </DD>
+ <DT><A name="MatchFinderCycles"></A>mc={N}</DT>
+ <DD>
+ <P>Sets number of cycles (passes) for match finder. It can be in range from 0 to 1000000000.
+ Default value is (16 + number_of_fast_bytes / 2) for BT* match finders and
+ (8 + number_of_fast_bytes / 4) for HC4 match finder.
+ If you specify mc=0, LZMA will use default value.
+ Usually, a big number gives a little bit better compression ratio and slower
+ compression process. For example, mf=HC4 and mc=10000 can provide almost the same
+ compression ratio as mf=BT4.</P>
+ </DD>
+ <DT><A name="LitContext"></A>lc={N}</DT>
+ <DD>
+ <P>Sets the number of literal context bits (high bits of previous literal).
+ It can be in range from 0 to 8.
+ Default value is 3. Sometimes lc=4 gives gain for big files.</P>
+ </DD>
+ <DT><A name="LitPos"></A>lp={N}</DT>
+ <DD>
+ <P>Sets the number of literal pos bits (low bits of current position for literals).
+ It can be in the range from 0 to 4.
+ The default value is 0. The lp switch is intended for periodical data when the
+ period is equal to 2^value (where lp=value). For example, for 32-bit (4 bytes)
+ periodical data you can use lp=2. Often it's better to set lc=0,
+ if you change lp switch.</P>
+ </DD>
+ <DT><A name="PosBits"></A>pb={N}</DT>
+ <DD>
+ <P>Sets the number of pos bits (low bits of current position).
+ It can be in the range from 0 to 4.
+ The default value is 2. The pb switch is intended for periodical data when the
+ period is equal 2^value (where lp=value). </P>
+ </DD>
+
+ </DL>
+
+ <H4><A name="LZMA2"></A>LZMA2</H4>
+ <P>LZMA2 is modified version of LZMA. it provides the following advantages over LZMA:</P>
+ <UL>
+ <LI>Better compression ratio for data than can't be compressed. LZMA2 can store such
+ blocks of data in uncompressed form. Also it decompresses such data faster.
+ <LI>Better multithreading support. If you compress big file, LZMA2 can split
+ that file to chunks and compress these chunks in multiple threads.
+ </UL>
+
+ <TABLE>
+ <TR> <TH width="80">Parameter</TH> <TH align="center">Default</TH> <TH>Description</TH> </TR>
+
+ <TR> <TD><A class="parameter" href="#ChunkSize">c={Size}[b|k|m]</A></TD>
+ <TD align="center">dictSize * 4</TD> <TD>Sets Chunk size</TD> </TR>
+ </TABLE>
+
+ <P>If you don't specify ChunkSize, LZMA2 sets it to DictionarySize * 4.</P>
+
+ <P>LZMA2 also supports all LZMA parameters, but lp+lc cannot be larger than 4.</P>
+
+ <P>LZMA2 uses: 1 thread for each chunk in x1 and x3 modes; and
+ 2 threads for each chunk in x5, x7 and x9 modes.
+ If LZMA2 is set to use only such number of threads required for one chunk,
+ it doesn't split stream to chunks. So you can get different compression
+ ratio for different number of threads. You can get the best compression
+ ratio, when you use 1 or 2 threads.</P>
+
+ <H4><A name="PPMd"></A>PPMd</H4>
+ <P> PPMd is a PPM-based algorithm. This algorithm is mostly based
+ on Dmitry Shkarin's PPMdH source code. PPMd provides very good compression ratio for
+ plain text files. There is no difference between compression speed and
+ decompression speed. Memory requirements for compression and decompression
+ also are the same.</P>
+ <TABLE>
+ <TR> <TH width="80">Parameter</TH> <TH align="center">Default</TH> <TH>Description</TH> </TR>
+ <TR> <TD><A class="parameter" href="#MemorySize">mem={Size}[b|k|m]</A></TD>
+ <TD align="center">24</TD> <TD>Sets size of used memory for PPMd.</TD> </TR>
+ <TR> <TD><A class="parameter" href="#Order">o={Size}</A></TD>
+ <TD align="center">6</TD> <TD>Sets model order for PPMd.</TD> </TR>
+ </TABLE>
+ <DL>
+ <DT><A name="MemorySize"></A>mem={Size}[b|k|m]</DT>
+ <DD>
+ <P> Sets the size of memory used for PPMd. You must specify the size in bytes, kilobytes, or megabytes.
+ The maximum value is 2GB = 2^31 bytes. The default value
+ is 24 (16MB). If you do not specify any symbol from the set [b|k|m], the
+ memory size will be calculated as (2^Size) bytes. PPMd uses the same
+ amount of memory for compression and decompression.</P>
+ </DD>
+
+ <DT><A name="Order"></A>o={Size}</DT>
+ <DD>
+ <P>Sets the model order for PPMd. The size must be in the range [2,32]. The default value is 6.</P>
+ </DD>
+ </DL>
+
+ <H4><A name="BCJ2"></A>BCJ2</H4>
+ <P>BCJ2 is a Branch converter for 32-bit x86 executables (version 2).
+ It converts some branch instructions for increasing further compression.</P>
+ <P>A BCJ2 encoder has one input stream and four output streams:</P>
+ <UL>
+ <LI>s0: main stream. It requires further compression.</LI>
+ <LI>s1: stream for converted CALL values. It requires further compression.</LI>
+ <LI>s2: stream for converted JUMP values. It requires further compression.</LI>
+ <LI>s3: service stream. It is already compressed.</LI>
+ </UL>
+ <P>If LZMA is used, the size of the dictionary for streams
+ s1 and s2 can be much smaller (512 KB is enough for most cases)
+ than the dictionary size for stream s0.</P>
+
+ <H4><A name="Delta"></A>Delta</H4>
+ <P>It's possible to set delta offset in bytes. For example, to compress 16-bit stereo
+ WAV files, you can set "0=Delta:4". Default delta offset is 1.</P>
+</DL>
+
+<H2><A name="XZ"></A>XZ</H2>
+XZ supports only LZMA2 codec now. The switches are similar to switches for 7z format.
+
+<H4>Examples</H4>
+
+<PRE class="example">
+7z a -tzip archive.zip *.jpg -mx0
+</PRE>
+
+<P>adds <SPAN class="filename">*.jpg</SPAN> files to
+ <SPAN class="filename">archive.zip</SPAN> archive without compression.</P>
+
+<PRE class="example">
+7z a -t7z archive.7z *.exe *.dll -m0=BCJ -m1=LZMA:d=21 -ms -mmt
+</PRE>
+
+<P>adds <SPAN class="filename">*.exe</SPAN> and <SPAN class="filename">*.dll</SPAN>
+files to solid archive <SPAN class="filename">archive.7z</SPAN> using LZMA method with
+2 MB dictionary and BCJ converter. Compression will use multithreading optimization.</P>
+
+<PRE class="example">
+7z a -t7z archive.7z *.exe *.dll -m0=BCJ2 -m1=LZMA:d23 -m2=LZMA:d19 -m3=LZMA:d19
+ -mb0:1 -mb0s1:2 -mb0s2:3
+</PRE>
+
+<P>adds <SPAN class="filename">*.exe</SPAN> and <SPAN class="filename">*.dll</SPAN>
+ files to archive <SPAN class="filename">archive.7z</SPAN> using BCJ2 converter,
+ LZMA with 8 MB dictionary for main output stream (s0),
+ and LZMA with 512 KB dictionary for s1 and s2 output streams of BCJ2.</P>
+
+
+<PRE class="example">
+7z a -t7z archive.7z *.txt -m0=PPMd
+</PRE>
+
+<P>adds <SPAN class="filename">*.txt</SPAN> files to archive
+<SPAN class="filename">archive.7z</SPAN> using PPMd method.</P>
+
+
+
+
+<H4>Commands that can be used with this switch</H4>
+
+<P>
+ <A href="../commands/add.htm">a (Add)</A>,
+ <A href="../commands/delete.htm">d (Delete)</A>,
+ <A href="../commands/update.htm">u (Update)</A>,
+</P>
+
+<H4>See also</H4>
+
+<P>
+ <B>Switches:</B>
+ <A href="type.htm">-t (set Type of archive)</A>,
+</P>
+
+</BODY>
+</HTML>
diff --git a/src/libs/7zip/unix/DOCS/MANUAL/switches/output_dir.htm b/src/libs/7zip/unix/DOCS/MANUAL/switches/output_dir.htm
new file mode 100644
index 000000000..b4523493b
--- /dev/null
+++ b/src/libs/7zip/unix/DOCS/MANUAL/switches/output_dir.htm
@@ -0,0 +1,53 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<HTML>
+<HEAD>
+ <META http-equiv="Content-Type" content="text/html; charset=Windows-1252">
+ <TITLE>-o (set Output directory) switch</TITLE>
+ <LINK href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<H1>-o (set Output directory) switch</H1>
+
+<P>Specifies a destination directory where files are to be extracted.</P>
+<P>This switch can be used only with extraction commands.</P>
+
+<H4>Syntax</H4>
+
+<PRE class="syntax">
+-o{dir_path}
+</PRE>
+
+<DL>
+ <DT>{dir_path}</DT>
+ <DD>This is the destination directory path. It's not required to end with a backslash.
+ If you specify <B>*</B> in {dir_path}, 7-Zip substitutes that * character to archive name.</DD>
+</DL>
+
+
+<H4>Example</H4>
+
+<PRE class="example">
+7z x archive.zip -oc:\Doc
+</PRE>
+
+<P>extracts all files from the <SPAN class="filename">archive.zip</SPAN> archive
+to the <SPAN class="filename">c:\Doc</SPAN> directory.</P>
+
+<PRE class="example">
+7z x *.zip -o*
+</PRE>
+
+<P>extracts all <SPAN class="filename">*.zip</SPAN> archives to subfolders
+with names of these archives.</P>
+
+<H4>Commands that can be used with this switch</H4>
+
+<P>
+ <A href="../commands/extract.htm">e (Extract)</A>,
+ <A href="../commands/extract_full.htm">x (Extract with full paths)</A>
+</P>
+
+</BODY>
+</HTML>
diff --git a/src/libs/7zip/unix/DOCS/MANUAL/switches/overwrite.htm b/src/libs/7zip/unix/DOCS/MANUAL/switches/overwrite.htm
new file mode 100644
index 000000000..c71ae40d8
--- /dev/null
+++ b/src/libs/7zip/unix/DOCS/MANUAL/switches/overwrite.htm
@@ -0,0 +1,56 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<HTML>
+<HEAD>
+ <META http-equiv="Content-Type" content="text/html; charset=Windows-1252">
+ <TITLE>-ao (Overwrite mode) switch</TITLE>
+ <LINK href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<H1>-ao (Overwrite mode) switch</H1>
+
+<P>Specifies the overwrite mode during extraction, to overwrite files already present on disk.</P>
+
+<H4>Syntax</H4>
+
+<PRE class="syntax">
+-ao[a | s | t | u ]
+</PRE>
+
+
+<TABLE>
+ <TR> <TH width="80">Switch</TH> <TH>Description</TH> </TR>
+ <TR> <TD>-aoa</TD> <TD>Overwrite All existing files without prompt.</TD> </TR>
+ <TR> <TD>-aos</TD> <TD>Skip extracting of existing files.</TD> </TR>
+ <TR> <TD>-aou</TD> <TD>aUto rename extracting file (for example, name.txt will
+ be renamed to name_1.txt).</TD> </TR>
+ <TR> <TD>-aot</TD> <TD>auto rename existing file (for example, name.txt will
+ be renamed to name_1.txt).</TD> </TR>
+</TABLE>
+
+<H4>Examples</H4>
+
+<PRE class="example">
+7z x test.zip -aoa
+</PRE>
+
+<P>extracts all files from <SPAN class="filename">test.zip</SPAN> archive and overwrites
+existing files without any prompt.</P>
+
+<H4>Commands that can be used with this switch</H4>
+
+<P>
+ <A href="../commands/extract.htm">e (Extract)</A>,
+ <A href="../commands/extract_full.htm">x (Extract with full paths)</A>
+</P>
+
+<H4>See also</H4>
+
+<P>
+ <B>Switches:</B>
+ <A href="yes.htm">-y (assume Yes on all queries)</A>,
+</P>
+
+</BODY>
+</HTML>
diff --git a/src/libs/7zip/unix/DOCS/MANUAL/switches/password.htm b/src/libs/7zip/unix/DOCS/MANUAL/switches/password.htm
new file mode 100644
index 000000000..733dfc4a7
--- /dev/null
+++ b/src/libs/7zip/unix/DOCS/MANUAL/switches/password.htm
@@ -0,0 +1,54 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<HTML>
+<HEAD>
+ <META http-equiv="Content-Type" content="text/html; charset=Windows-1252">
+ <TITLE>-p (set Password) switch</TITLE>
+ <LINK href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<H1>-p (set Password) switch</H1>
+
+<P>Specifies password.</P>
+
+<H4>Syntax</H4>
+
+<PRE class="syntax">
+-p{password}
+</PRE>
+
+<DL>
+ <DT>{password}</DT>
+ <DD>Specifies password.</DD>
+</DL>
+
+
+<H4>Examples</H4>
+
+<PRE class="example">
+7z a archive.7z -psecret -mhe *.txt
+</PRE>
+<P>compresses *.txt files to <SPAN class="filename">archive.7z</SPAN> using password
+"secret". Also it encrypts archive headers (-mhe switch), so filenames will be encrypted.
+</P>
+
+<PRE class="example">
+7z x archive.zip -psecret
+</PRE>
+<P>extracts all files from <SPAN class="filename">archive.zip</SPAN> using password
+"secret".</P>
+
+<H4>Commands that can be used with this switch</H4>
+
+<P>
+ <A href="../commands/add.htm">a (Add)</A>,
+ <A href="../commands/delete.htm">d (Delete)</A>,
+ <A href="../commands/extract.htm">e (Extract)</A>,
+ <A href="../commands/test.htm">t (Test)</A>,
+ <A href="../commands/update.htm">u (Update)</A>,
+ <A href="../commands/extract_full.htm">x (Extract with full paths)</A>
+</P>
+
+</BODY>
+</HTML>
diff --git a/src/libs/7zip/unix/DOCS/MANUAL/switches/recurse.htm b/src/libs/7zip/unix/DOCS/MANUAL/switches/recurse.htm
new file mode 100644
index 000000000..08dba2a4a
--- /dev/null
+++ b/src/libs/7zip/unix/DOCS/MANUAL/switches/recurse.htm
@@ -0,0 +1,83 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<HTML>
+<HEAD>
+ <META http-equiv="Content-Type" content="text/html; charset=Windows-1252">
+ <TITLE>-r (Recurse subdirectories) switch</TITLE>
+ <LINK href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<H1>-r (Recurse subdirectories) switch</H1>
+
+<P>Specifies the method of treating wildcards and filenames on the command line.</P>
+
+<H4>Syntax</H4>
+
+<PRE class="syntax">
+-r[- | 0]
+</PRE>
+
+
+<TABLE>
+ <TR><TH width="80">Switch</TH> <TH>Description</TH></TR>
+ <TR><TD>-r</TD> <TD>Enable recurse subdirectories.</TD></TR>
+ <TR><TD>-r-</TD> <TD>Disable recurse subdirectories. This option is default for all commands.</TD></TR>
+ <TR><TD>-r0</TD> <TD>Enable recurse subdirectories only for wildcard names.</TD></TR>
+</TABLE>
+
+<H4>Examples</H4>
+
+<PRE class="example">
+7z l archive.zip *.doc -r-
+</PRE>
+
+<P>lists all <SPAN class="filename">*.doc</SPAN> files
+ that belong to the archived root directory
+ in the <SPAN class="filename">archive.zip</SPAN> archive.
+ </P>
+
+<PRE class="example">
+7z a -tzip archive.zip -r src\*.cpp src\*.h
+</PRE>
+
+<P>adds all <SPAN class="filename">*.cpp</SPAN> and <SPAN class="filename">*.h</SPAN>
+ files from directory <SPAN class="filename">src</SPAN> and all it's subdirectories
+ to the <SPAN class="filename">archive.zip</SPAN> archive.</P>
+
+<PRE class="example">
+7z a archive.7z folder1\
+</PRE>
+
+<P>adds all files from directory <SPAN class="filename">folder1</SPAN> and all it's subdirectories
+ to the <SPAN class="filename">archive.7z</SPAN> archive.</P>
+
+<PRE class="example">
+7z a archive.7z -r folder2\
+</PRE>
+
+<P>searches all <SPAN class="filename">folder2</SPAN> directories in all subdirectories,
+ and adds them (including all subdirectories) to the <SPAN class="filename">archive.7z</SPAN> archive.</P>
+
+<H4>Commands that can be used with this switch</H4>
+
+<P>
+ <A href="../commands/add.htm">a (Add)</A>,
+ <A href="../commands/delete.htm">d (Delete)</A>,
+ <A href="../commands/extract.htm">e (Extract)</A>,
+ <A href="../commands/list.htm">l (List)</A>,
+ <A href="../commands/test.htm">t (Test)</A>,
+ <A href="../commands/update.htm">u (Update)</A>,
+ <A href="../commands/extract_full.htm">x (Extract with full paths)</A>
+</P>
+
+<H4>See also</H4>
+
+<P>
+ <B>Switches:</B>
+ <A href="include.htm">-i (Include)</A>,
+ <A href="exclude.htm">-x (Exclude)</A>
+</P>
+
+</BODY>
+</HTML>
diff --git a/src/libs/7zip/unix/DOCS/MANUAL/switches/sfx.htm b/src/libs/7zip/unix/DOCS/MANUAL/switches/sfx.htm
new file mode 100644
index 000000000..126028963
--- /dev/null
+++ b/src/libs/7zip/unix/DOCS/MANUAL/switches/sfx.htm
@@ -0,0 +1,156 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<HTML>
+<HEAD>
+ <META http-equiv="Content-Type" content="text/html; charset=Windows-1252">
+ <TITLE>-sfx (Create SFX archive) switch</TITLE>
+ <LINK href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<H1>-sfx (Create SFX archive) switch</H1>
+
+<P>Creates self extracting archive.</P>
+
+<H4>Syntax</H4>
+
+<PRE class="syntax">
+-sfx[<A class="parameter" href="#SFX_Module">{SFX_Module}</A>]
+</PRE>
+
+<DL>
+ <DT><A name="SFX_Module"></A>{SFX_Module}</DT>
+ <DD>
+ <P>Specifies the SFX module that will be combined with the archive.
+ This module must be placed in the same directory as the 7z.exe.
+ If {SFX_Module} is not assigned, 7-Zip will use standard console
+ SFX module 7zCon.sfx.</P>
+ <TABLE>
+ <TR> <TH width="60">SFX_Module</TH> <TH>Description</TH> </TR>
+ <TR> <TD>7z.sfx</TD> <TD>Windows version.</TD> </TR>
+ <TR> <TD>7zCon.sfx</TD> <TD>Console version.</TD> </TR>
+ <TR> <TD>7zS.sfx</TD> <TD>Windows version for installers.</TD> </TR>
+ <TR> <TD>7zSD.sfx</TD> <TD>Windows version for installers (uses MSVCRT.dll).</TD> </TR>
+ </TABLE>
+ </DD>
+</DL>
+
+<P>
+All SFX modules are uncompressed. You can use UPX program
+(http://upx.sourceforge.net)
+to compresss such modules. After compressing by the UPX program, the size of the
+sfx module will be reduced to 40-50% of its original size.
+</P>
+
+<H4>SFX modules for installers</H4>
+<P>SFX modules for installers are included in an external package (7z_extra). You can download
+these modules from www.7-zip.org. SFX modules for installers (7zS.sfx and 7zSD.sfx)
+allow you to create your own installation program.
+Such a module extracts the archive to the user's temp folder, and runs a specified program,
+and removes the temp files after the program finishes.
+A self-extracting archive for installers must be created as joining 3 files:
+SFX_Module, Installer_Config, 7z_Archive.
+In addition, an optional file, Installer_Config, is allowed. You can use the following command to
+create an installer self-extracting archive:</P>
+<PRE class="example">
+copy /b 7zS.sfx + config.txt + archive.7z archive.exe
+</PRE>
+
+<P>An optimally small installation package size can be achieved,
+if the installation files are uncompressed before including them in the 7z archive.</P>
+
+<P><SPAN class="filename">-y</SPAN> switch for installer module specifies quiet mode extraction.</P>
+
+<H4>Installer Config file format</H4>
+<P>
+This config file contains commands for the Installer. The file begins with the string
+<B>;!@Install@!UTF-8!</B> and ends with <B>;!@InstallEnd@!</B>.
+The file must be written in UTF-8 encoding.
+The file contains any or all these string pairs:
+<P>ID_String="Value"</P>
+<P>
+ <TABLE>
+ <TR> <TH width="60">ID_String</TH> <TH>Description</TH> </TR>
+ <TR> <TD>Title</TD> <TD>Title for messages</TD> </TR>
+ <TR> <TD>BeginPrompt</TD> <TD>Begin Prompt message</TD> </TR>
+ <TR> <TD>Progress</TD> <TD>Value can be "yes" or "no". Default value is "yes".</TD> </TR>
+ <TR> <TD>RunProgram</TD> <TD>Command for executing. Default value is "setup.exe". Substring <B>%%T</B>
+ will be replaced with path to temporary folder, where files were extracted</TD> </TR>
+ <TR> <TD>Directory</TD> <TD>Directory prefix for "RunProgram". Default value is ".\\"</TD> </TR>
+ <TR> <TD>ExecuteFile</TD> <TD>Name of file for executing</TD> </TR>
+ <TR> <TD>ExecuteParameters</TD> <TD>Parameters for "ExecuteFile"</TD> </TR>
+ </TABLE>
+</P>
+<P>You may omit any pair.</P>
+
+<P>There are two ways to run a installation program: <B>RunProgram</B> and <B>ExecuteFile</B>.
+Use <B>RunProgram</B>, if you want to run a program from the .7z archive.
+Use <B>ExecuteFile</B>, if you want to open a document from the .7z archive, or
+if you want to execute a command from Windows.</P>
+
+<P>If you use <B>RunProgram</B>, and if you specify empty directory prefix: <B>Directory</B>="",
+the system searches for the executable file in the following sequence:</P>
+<OL>
+<LI>The directory from which the application (installer) loaded.
+<LI>The temporary folder, where files were extracted.
+<LI>The Windows system directory.
+</OL>
+
+<H4>Config file Examples</H4>
+
+<PRE class="example">
+;!@Install@!UTF-8!
+Title="7-Zip 4.00"
+BeginPrompt="Do you want to install the 7-Zip 4.00?"
+RunProgram="setup.exe"
+;!@InstallEnd@!
+</PRE>
+
+<BR>
+
+
+<PRE class="example">
+;!@Install@!UTF-8!
+Title="7-Zip 4.00"
+BeginPrompt="Do you want to install the 7-Zip 4.00?"
+ExecuteFile="7zip.msi"
+;!@InstallEnd@!
+</PRE>
+
+<BR>
+
+<PRE class="example">
+;!@Install@!UTF-8!
+Title="7-Zip 4.01 Update"
+BeginPrompt="Do you want to install the 7-Zip 4.01 Update?"
+ExecuteFile="msiexec.exe"
+ExecuteParameters="/i 7zip.msi REINSTALL=ALL REINSTALLMODE=vomus"
+;!@InstallEnd@!
+</PRE>
+
+<H4>Examples</H4>
+
+<PRE class="example">
+7z a -sfx a.exe *.txt
+</PRE>
+
+<P>adds <SPAN class="filename">*.txt</SPAN> files to self extracting
+ archive <SPAN class="filename">a.exe</SPAN> using the default console SFX module.</P>
+
+<PRE class="example">
+7z a -sfx7z.sfx a.exe *
+</PRE>
+
+<P>adds all files to self extracting archive <SPAN class="filename">a.exe</SPAN>
+with module <SPAN class="filename">7z.sfx</SPAN> using windows version of SFX mudule.</P>
+
+<H4>Commands that can be used with this switch</H4>
+
+<P>
+ <A href="../commands/add.htm">a (Add)</A>,
+ <A href="../commands/delete.htm">d (Delete)</A>,
+ <A href="../commands/update.htm">u (Update)</A>,
+</P>
+
+</BODY>
+</HTML>
diff --git a/src/libs/7zip/unix/DOCS/MANUAL/switches/ssc.htm b/src/libs/7zip/unix/DOCS/MANUAL/switches/ssc.htm
new file mode 100644
index 000000000..023dbf88b
--- /dev/null
+++ b/src/libs/7zip/unix/DOCS/MANUAL/switches/ssc.htm
@@ -0,0 +1,50 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<HTML>
+<HEAD>
+ <META http-equiv="Content-Type" content="text/html; charset=Windows-1252">
+ <TITLE>-ssc (Set Sensitive Case mode) switch</TITLE>
+ <LINK href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<H1>-ssc (Set Sensitive Case mode) switch</H1>
+
+<P>Sets sensitive case mode for file names.</P>
+
+<H4>Syntax</H4>
+
+<PRE class="syntax">
+-scs[-]
+</PRE>
+
+<TABLE>
+ <TR><TH width="80">Switch</TH> <TH>Description</TH></TR>
+ <TR><TD>-ssc</TD> <TD>Set case-sensitive mode. It's default for Posix/Linux systems.</TD></TR>
+ <TR><TD>-ssc-</TD> <TD>Set case-insensitive mode. It's default for Windows systems.</TD></TR>
+</TABLE>
+
+<H4>Example</H4>
+
+<PRE class="example">
+7z a archive.7z A*.txt -ssc -r
+</PRE>
+
+<P>compresses all <SPAN class="filename">A*.txt</SPAN> files
+ from current directory and all it's subdirectories. That command doesn't compress
+ <SPAN class="filename">a*.txt</SPAN> files.
+
+<H4>Commands that can be used with this switch</H4>
+
+<P>
+ <A href="../commands/add.htm">a (Add)</A>,
+ <A href="../commands/delete.htm">d (Delete)</A>,
+ <A href="../commands/extract.htm">e (Extract)</A>,
+ <A href="../commands/list.htm">l (List)</A>,
+ <A href="../commands/test.htm">t (Test)</A>,
+ <A href="../commands/update.htm">u (Update)</A>,
+ <A href="../commands/extract_full.htm">x (Extract with full paths)</A>
+</P>
+
+</BODY>
+</HTML>
diff --git a/src/libs/7zip/unix/DOCS/MANUAL/switches/stdin.htm b/src/libs/7zip/unix/DOCS/MANUAL/switches/stdin.htm
new file mode 100644
index 000000000..f16b4ebe2
--- /dev/null
+++ b/src/libs/7zip/unix/DOCS/MANUAL/switches/stdin.htm
@@ -0,0 +1,55 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<HTML>
+<HEAD>
+ <META http-equiv="Content-Type" content="text/html; charset=Windows-1252">
+ <TITLE>-si (read data from stdin) switch</TITLE>
+ <LINK href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<H1>-si (read data from stdin) switch</H1>
+
+<P>Causes 7-Zip to read data from stdin (standard input) instead of from disc files.</P>
+
+<H4>Syntax</H4>
+
+<PRE class="syntax">
+-si{file_name}
+</PRE>
+
+<DL>
+ <DT>{file_name}</DT>
+ <DD>Specifies a name that will be stored in the archive for the compressed data.
+ If file_name is not specified, data will be stored without a name.</DD>
+</DL>
+
+<P>Note: The current version of 7-Zip support reading of archives from stdin only for xz, lzma, tar, gzip and bzip2 archives.</P>
+
+<H4>Examples</H4>
+
+<PRE class="example">
+7z a archive.gz -tgzip -siDoc2.txt < Doc.txt
+</PRE>
+
+<P>compresses input stream from file Doc.txt to
+<SPAN class="filename">archive.gz</SPAN> archive
+using <SPAN class="filename">Doc2.txt</SPAN> file name.</P>
+
+<PRE class="example">
+7z x 7z905.tar.gz -so | 7z x -si -ttar
+</PRE>
+
+<P>decompresses <SPAN class="filename">tar.gz</SPAN> archive.</P>
+
+<H4>Commands that can be used with this switch</H4>
+
+<P>
+ <A href="../commands/add.htm">a (Add)</A>,
+ <A href="../commands/extract.htm">e (Extract)</A>,
+ <A href="../commands/update.htm">u (Update)</A>,
+ <A href="../commands/extract_full.htm">x (Extract with full paths)</A>
+</P>
+
+</BODY>
+</HTML>
diff --git a/src/libs/7zip/unix/DOCS/MANUAL/switches/stdout.htm b/src/libs/7zip/unix/DOCS/MANUAL/switches/stdout.htm
new file mode 100644
index 000000000..62e5a662a
--- /dev/null
+++ b/src/libs/7zip/unix/DOCS/MANUAL/switches/stdout.htm
@@ -0,0 +1,50 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<HTML>
+<HEAD>
+ <META http-equiv="Content-Type" content="text/html; charset=Windows-1252">
+ <TITLE>-so (write data to stdout) switch</TITLE>
+ <LINK href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<H1>-so (write data to stdout) switch</H1>
+
+<P>Causes 7-Zip to write output data to stdout (standard output stream).</P>
+
+<H4>Syntax</H4>
+
+<PRE class="syntax">
+-so
+</PRE>
+
+<H4>Examples</H4>
+
+<PRE class="example">
+7z x archive.gz -so > Doc.txt
+</PRE>
+
+<P>decompresses <SPAN class="filename">archive.gz</SPAN>
+archive to output stream and then redirects that stream to
+<SPAN class="filename">Doc.txt</SPAN> file.</P>
+
+
+<PRE class="example">
+7z a dummy -tgzip -so Doc.txt > archive.gz
+</PRE>
+
+<P>compresses the <SPAN class="filename">Doc.txt</SPAN> file to the 7-Zip standard
+output stream and writes that stream to
+<SPAN class="filename">archive.gz</SPAN> file.</P>
+
+<H4>Commands that can be used with this switch</H4>
+
+<P>
+ <A href="../commands/add.htm">a (Add)</A>,
+ <A href="../commands/extract.htm">e (Extract)</A>,
+ <A href="../commands/update.htm">u (Update)</A>,
+ <A href="../commands/extract_full.htm">x (Extract with full paths)</A>
+</P>
+
+</BODY>
+</HTML>
diff --git a/src/libs/7zip/unix/DOCS/MANUAL/switches/stop_switch.htm b/src/libs/7zip/unix/DOCS/MANUAL/switches/stop_switch.htm
new file mode 100644
index 000000000..12383e507
--- /dev/null
+++ b/src/libs/7zip/unix/DOCS/MANUAL/switches/stop_switch.htm
@@ -0,0 +1,31 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<HTML>
+<HEAD>
+ <META http-equiv="Content-Type" content="text/html; charset=Windows-1252">
+ <TITLE>-- (Stop switches parsing) switch</TITLE>
+ <LINK href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<H1>-- (Stop switches parsing) switch</H1>
+
+<P>Disables switch parsing after "--" on the command line.
+This is to allow 7-Zip to use file names that start with "-".
+
+<H4>Syntax</H4>
+
+<PRE class="syntax">
+--
+</PRE>
+
+<H4>Examples</H4>
+
+<PRE class="example">
+7z t -- -ArchiveName.7z
+</PRE>
+
+<P>tests <SPAN class="filename">-ArchiveName.7z</SPAN> archive.</P>
+
+</BODY>
+</HTML>
diff --git a/src/libs/7zip/unix/DOCS/MANUAL/switches/style.css b/src/libs/7zip/unix/DOCS/MANUAL/switches/style.css
new file mode 100644
index 000000000..13ebb79ce
--- /dev/null
+++ b/src/libs/7zip/unix/DOCS/MANUAL/switches/style.css
@@ -0,0 +1,232 @@
+body
+ {
+ padding: 0px 0px 0px 26px;
+ background: #ffffff;
+ color: #000000;
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 80%;
+ }
+
+div
+ {
+ width: 90%;
+ border: 2px solid #999999;
+ padding: 4px 8px;
+ background: #cccccc;
+ }
+
+h1, h2, h3, h4
+ {
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ margin-left: -26px;
+ }
+
+h1
+ {
+ font-size: 145%;
+ margin-top: .5em;
+ margin-bottom: 1em;
+ }
+
+h2
+ {
+ font-size: 130%;
+ margin-top: 1.5em;
+ margin-bottom: .6em;
+ }
+
+h3
+ {
+ font-size: 115%;
+ margin-top: 1.5em;
+ margin-bottom: .6em;
+ }
+
+h4
+ {
+ font-size: 100%;
+ margin-top: 1.5em;
+ margin-bottom: .6em;
+ }
+
+ul p, ol p, dl p
+ {
+ margin-left: 0em;
+ }
+
+p
+ {
+ margin-top: .6em;
+ margin-bottom: .6em;
+ }
+
+dl
+ {
+ /*margin-top: 0em; */
+ }
+
+dt
+ {
+ margin-top: .76em;
+ margin-bottom: .5em;
+ font-weight: bold;
+ }
+
+dd
+ {
+ margin-top: .5em;
+ margin-bottom: .5em;
+ margin-left: 1.9em;
+ }
+
+
+ul, ol
+ {
+ margin-top: .6em;
+ margin-bottom: 0em;
+ }
+
+ol
+ {
+ margin-left: 3.6em;
+ }
+
+ul
+ {
+ list-style-type: disc;
+ margin-left: 1.9em;
+ }
+
+li
+ {
+ margin-bottom: .6em;
+ }
+
+ul ol, ol ol
+ {
+ list-style-type: lower-alpha;
+ {
+
+ /*
+pre
+ {
+ margin-top: .6em;
+ margin-bottom: .6em;
+ }
+ */
+
+pre,code
+ {
+ font: 100% Courier New, Courier, mono;
+ color: #000000;
+ cursor: text;
+ }
+
+pre.syntax
+ {
+ background: #dddddd;
+ padding: 2pt,4pt
+ }
+
+pre.syntax
+ {
+ color: #000000;
+ }
+
+pre.example
+ {
+ margin-left: 2.0em;
+ /*margin-top: 12.0em;*/
+ /*margin-bottom: 1.0em;*/
+ color: #C00000;
+ /*padding: 10pt,20pt*/
+ }
+
+table
+ {
+ /* width: 90%; */
+ background: #999999;
+ margin-top: .6em;
+ margin-bottom: .3em;
+ }
+
+th
+ {
+ padding: 4px 8px;
+ background: #cccccc;
+ text-align: left;
+ font-size: 80%;
+ vertical-align: bottom;
+ }
+
+th.cc
+ {
+ text-align: center;
+ vertical-align: middle;
+ }
+
+td
+ {
+ padding: 4px 8px;
+ background: #ffffff;
+ vertical-align: top;
+ font-size: 80%;
+ }
+
+td.cc
+ {
+ text-align: center;
+ vertical-align: middle;
+ }
+
+
+blockquote
+ {
+ margin-left: 3.8em;
+ margin-right: 3.8em;
+ margin-top: .6em;
+ margin-bottom: .6em;
+ }
+
+a:link
+ {
+ color: #0066ff;
+ }
+
+a:visited
+ {
+ color: #996600;
+ }
+
+a:hover
+ {
+ color: #cc9900;
+ }
+
+a.parameter:link
+ {
+ color: #0066ff;
+ text-decoration:none;
+ }
+
+a.parameter:visited
+ {
+ text-decoration:none;
+ }
+
+div.footer
+ {
+ width: 100%;
+ border: none;
+ background: #ffffff;
+ margin-top: 18pt;
+ padding-bottom: 12pt;
+ color: #228B22;
+ text-align: center;
+ font-size: 70%;
+ }
+
+span.filename
+{
+ color: #F00000;
+}
diff --git a/src/libs/7zip/unix/DOCS/MANUAL/switches/type.htm b/src/libs/7zip/unix/DOCS/MANUAL/switches/type.htm
new file mode 100644
index 000000000..73af4e1a9
--- /dev/null
+++ b/src/libs/7zip/unix/DOCS/MANUAL/switches/type.htm
@@ -0,0 +1,83 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<HTML>
+<HEAD>
+ <META http-equiv="Content-Type" content="text/html; charset=Windows-1252">
+ <TITLE>-o (set Output directory) switch</TITLE>
+ <LINK href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<H1>-t (set Type of archive) switch</H1>
+
+<P>Specifies the type of archive.</P>
+
+<H4>Syntax</H4>
+
+<PRE class="syntax">
+-t{archive_type}
+</PRE>
+
+<DL>
+ <DT>{archive_type}</DT>
+ <DD>Specifies the type of archive. It can be: *, 7z, split, zip, gzip, bzip2, tar, ... , or
+ combination of them, like: mbr.vhd
+</DD>
+</DL>
+
+<P>If -t{archive_type} switch is not specified, 7-Zip uses extension of archive filename to
+ detect the type of archive. If you create new archive, -t{archive_type} switch is not
+ specified and there is no extension of archive, 7-Zip will create .7z archive.</P>
+
+<P>When you extract archive of some types that contains another
+archive without compression (for example, MBR in VHD), 7-Zip can open both
+levels in one step. If you want to open/extract just top
+level archive, use <SPAN class="filename">-t*</SPAN> switch.</P>
+
+<P>Note: gzip or bzip2 formats support only one file per archive.
+If you want to compress more than one file to these formats,
+create a tar archive first, and then compress it with your selected format.</P>
+
+<H4>Example</H4>
+
+<PRE class="example">
+7z a -tzip archive.zip *.txt
+</PRE>
+
+<P>adds all <SPAN class="filename">*.txt</SPAN> files from current directory
+to zip archive <SPAN class="filename">archive.zip</SPAN>.</P>
+
+<PRE class="example">
+7z t -t7z.split archive.7z.001
+</PRE>
+
+<P>tests all files in <SPAN class="filename">archive.7z.001</SPAN>. It also checks
+that archive is multivolume .7z archive.</P>
+
+<PRE class="example">
+7z x -tiso archive.iso
+</PRE>
+
+<P>extracts files from <SPAN class="filename">archive.iso</SPAN> open as ISO archive.
+
+<PRE class="example">
+7z x -tudf archive.iso
+</PRE>
+
+<P>extracts files from <SPAN class="filename">archive.iso</SPAN> open as UDF archive.
+
+
+<H4>Commands that can be used with this switch</H4>
+
+<P>
+ <A href="../commands/add.htm">a (Add)</A>,
+ <A href="../commands/delete.htm">d (Delete)</A>,
+ <A href="../commands/extract.htm">e (Extract)</A>,
+ <A href="../commands/list.htm">l (List)</A>,
+ <A href="../commands/test.htm">t (Test)</A>,
+ <A href="../commands/update.htm">u (Update)</A>,
+ <A href="../commands/extract_full.htm">x (Extract with full paths)</A>
+</P>
+
+</BODY>
+</HTML>
diff --git a/src/libs/7zip/unix/DOCS/MANUAL/switches/update.htm b/src/libs/7zip/unix/DOCS/MANUAL/switches/update.htm
new file mode 100644
index 000000000..3c707a784
--- /dev/null
+++ b/src/libs/7zip/unix/DOCS/MANUAL/switches/update.htm
@@ -0,0 +1,176 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<HTML>
+<HEAD>
+ <META http-equiv="Content-Type" content="text/html; charset=Windows-1252">
+ <TITLE>-u (Update options) switch</TITLE>
+ <LINK href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<H1>-u (Update options) switch</H1>
+
+<P>Specifies how to update files in an archive and (or) how to create new archives.</P>
+
+<H4>Syntax</H4>
+
+<PRE class="syntax">
+-u<A class="parameter" href="#disable_base_archive">[-]</A>&lt;action_set><A class="parameter" href="#new_archive_name">[!{new_archive_name}]</A>
+
+ &lt;action_set> ::= &lt;state_action>...
+
+ &lt;state_action> ::= <A class="parameter" href="#state">&lt;state></A><A class="parameter" href="#state">&lt;action></A>
+
+ <A class="parameter" href="#action">&lt;state></A> ::= p | q | r | x | y | z | w
+
+ <A class="parameter" href="#action">&lt;action></A> ::= 0 | 1 | 2 | 3
+</PRE>
+
+
+<H4>Parameters</H4>
+
+<DL>
+ <DT><A name="disable_base_archive"></A>dash (-)</DT>
+ <DD><P>Disables any updates in the base archive.</P>
+
+ <P>The term <B>base archive</B> means the archive assigned by "base_archive_name"
+ on the command line. See <A href="../syntax.htm">Command line syntax</A>
+ for more details.</P>
+ </DD>
+ <DT><A name="new_archive_name"></A>{new_archive_name}</DT>
+ <DD><P>Specifies the path name of the new archive to be created.
+ All options in this switch will refer to this new archive.</P>
+ <P>If not assigned, then all options in this switch will
+ refer to the base archive of the command.</P>
+ </DD>
+ <DT><A name="state"></A>&lt;state></DT>
+ <DD><P>Specifies the state of a particular file to be processed.</P>
+ <PRE class="syntax">&lt;state> ::= p | q | r | x | y | z | w</PRE>
+ <P>For each unique filename there are 6 variants of state:</P>
+ <TABLE>
+ <TR> <TH>&lt;state></TH> <TH>State condition</TH>
+ <TH width="20%">File on Disk</TH> <TH width="20%">File in Archive</TH> </TR>
+
+ <TR> <TD align="center">p</TD> <TD>File exists in archive, but is not matched with wildcard.</TD>
+ <TD>&nbsp;</TD> <TD>Exists, but is not matched</TD> </TR>
+
+ <TR> <TD align="center">q</TD> <TD>File exists in archive, but doesn't exist on disk.</TD>
+ <TD>Doesn't exist</TD> <TD>Exists</TD> </TR>
+
+ <TR> <TD align="center">r</TD> <TD>File doesn't exist in archive, but exists on disk.</TD>
+ <TD>Exists</TD> <TD>Doesn't exist</TD> </TR>
+
+ <TR> <TD align="center">x</TD> <TD>File in archive is newer than the file on disk.</TD>
+ <TD>Older</TD> <TD>Newer</TD> </TR>
+
+ <TR> <TD align="center">y</TD> <TD>File in archive is older than the file on disk.</TD>
+ <TD>Newer</TD> <TD>Older</TD> </TR>
+
+ <TR> <TD align="center">z</TD> <TD>File in archive is same as the file on disk</TD>
+ <TD>Same</TD> <TD>Same</TD> </TR>
+
+ <TR> <TD align="center">w</TD> <TD>Can not be detected what file is newer
+ (times are the same, sizes are different)</TD>
+ <TD>?</TD> <TD>?</TD> </TR>
+ </TABLE>
+ </DD>
+
+ <DT><A name="action"></A>&lt;action></DT>
+ <DD><P>Specifies the action for a given <A class="parameter" href="#state">&lt;state></A>.</P>
+ <PRE class="syntax">&lt;action> ::= 0 | 1 | 2 | 3</PRE>
+ <P>For each state you can specify one of the three variants of actions:</P>
+ <TABLE>
+ <TR> <TH>&lt;action></TH> <TH>Description</TH></TR>
+ <TR> <TD align="center">0</TD> <TD>Ignore file (don't create item in new archive for this file)</TD></TR>
+ <TR> <TD align="center">1</TD> <TD>Copy file (copy from old archive to new)</TD></TR>
+ <TR> <TD align="center">2</TD> <TD>Compress (compress file from disk to new archive)</TD></TR>
+ <TR> <TD align="center">3</TD> <TD>Create Anti-item (item that will delete file or directory during extracting). This feature is supported only in 7z format.</TD></TR>
+ </TABLE>
+ </DD>
+</DL>
+
+
+<H4>Remarks</H4>
+
+<P>Any update command (such as <A href="../commands/add.htm">a (Add)</A>,
+ <A href="../commands/delete.htm">d (Delete)</A>,
+ <A href="../commands/update.htm">u (Update)</A>) can be assigned in these terms.</P>
+<P>The following table shows action sets for update commands.</P>
+
+<TABLE>
+ <TR> <TH>command \ <A class="parameter" href="#state">&lt;state></A></TH>
+ <TH>p</TH> <TH>q</TH> <TH>r</TH> <TH>x</TH> <TH>y</TH> <TH>z</TH> <TH>w</TH></TR>
+ <TR> <TH><A href="../commands/delete.htm">d (Delete)</A></TH> <TD>1</TD> <TD>0</TD> <TD>0</TD> <TD>0</TD> <TD>0</TD> <TD>0</TD> <TD>0</TD></TR>
+ <TR> <TH><A href="../commands/add.htm">a (Add)</A></TH> <TD>1</TD> <TD>1</TD> <TD>2</TD> <TD>2</TD> <TD>2</TD> <TD>2</TD> <TD>2</TD></TR>
+ <TR> <TH><A href="../commands/update.htm">u (Update)</A></TH> <TD>1</TD> <TD>1</TD> <TD>2</TD> <TD>1</TD> <TD>2</TD> <TD>1</TD> <TD>2</TD></TR>
+ <TR> <TH>Freshen</TH> <TD>1</TD> <TD>1</TD> <TD>0</TD> <TD>1</TD> <TD>2</TD> <TD>1</TD> <TD>2</TD></TR>
+ <TR> <TH>Synchronize</TH> <TD>1</TD> <TD>0</TD> <TD>2</TD> <TD>1</TD> <TD>2</TD> <TD>1</TD> <TD>2</TD></TR>
+</TABLE>
+
+
+<P>If you don't specify a
+<A class="parameter" href="#new_archive_name"><I>!{new_archive_name}</I></A> option, then
+all options will refer to the main archive (the archive assigned on the command line after the 7z command).
+If you specify <A class="parameter" href="#new_archive_name"><I>!{new_archive_name}</I></A>
+option, then 7-Zip also will create a new archive with the specified name and all options
+will refer to that new archive.</P>
+
+<P>Multiple update switches are supported.
+7-Zip can create any number of new archives during one operation.</P>
+
+<P>By default, the action set for each new archive is assigned
+as the action set of the main command. There are 3 different
+action sets for commands: <A href="../commands/add.htm">a (Add)</A>,
+ <A href="../commands/delete.htm">d (Delete)</A>,
+ <A href="../commands/update.htm">u (Update)</A>.
+You can overload any &lt;state_action> pair.</P>
+
+<H4>Time zone notes</H4>
+<P>If you change time zone (when you move your computer to another time zone
+or if there are clock changes for daylight saving in your zone), you can have some problems
+with update commands that depend from file's modification time. It's strongly recommended to use only
+file system that uses Coordinated Universal Time (UTC) and archive format that also uses UTC.
+In that case you will have no problems with time zone changes.
+Also it's recommended to use only UTC formats in other cases, for example, if you send files to
+someone in another time zone.</P>
+
+<P>Also in some cases there are no problems, if both file system and archive format use local time, for example, FAT file system and ZIP format.</P>
+<UL>
+<LI>UTC file systems: NTFS
+<LI>UTC archive formats: .zip with -mtc switch, 7z, tar, gzip2, iso, wim
+<LI>Local time file systems : FAT, FAT32
+<LI>Local time archive formats : rar, zip, cab
+</UL>
+
+<H4>Examples</H4>
+
+<PRE class="example">
+7z u c:\1\exist.7z -u- -up0q3x2z0!c:\1\update.7z *
+</PRE>
+
+<P>creates a new archive <SPAN class="filename">update.7z</SPAN> and
+writes to this archive all files from current directory which differ from
+files in <SPAN class="filename">exist.7z</SPAN> archive.
+<SPAN class="filename">exist.7z</SPAN> archive will not be changed.</P>
+
+<PRE class="example">
+7z u c:\1\exist.7z -up0q3x2z0!c:\1\update.7z * -ms=off
+</PRE>
+
+<P>creates a new archive <SPAN class="filename">update.7z</SPAN> and
+writes to this archive all files from the current directory which differ from
+files in <SPAN class="filename">exist.7z</SPAN> archive.
+
+<P>Note: the updating of solid .7z archives can be slow, since it
+can require some recompression.</P>
+
+<H4>Commands that can be used with this switch</H4>
+
+<P>
+ <A href="../commands/add.htm">a (Add)</A>,
+ <A href="../commands/delete.htm">d (Delete)</A>,
+ <A href="../commands/update.htm">u (Update)</A>,
+</P>
+
+</BODY>
+</HTML>
diff --git a/src/libs/7zip/unix/DOCS/MANUAL/switches/volume.htm b/src/libs/7zip/unix/DOCS/MANUAL/switches/volume.htm
new file mode 100644
index 000000000..91ddc2924
--- /dev/null
+++ b/src/libs/7zip/unix/DOCS/MANUAL/switches/volume.htm
@@ -0,0 +1,49 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<HTML>
+<HEAD>
+ <META http-equiv="Content-Type" content="text/html; charset=Windows-1252">
+ <TITLE>-v (Create Volumes) switch</TITLE>
+ <LINK href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<H1>-v (Create Volumes) switch</H1>
+
+<P>Specifies volume sizes.</P>
+
+<H4>Syntax</H4>
+
+<PRE class="syntax">
+-v{Size}[b | k | m | g]
+
+</PRE>
+<DL>
+ <DT>{Size}[b | k | m | g]</DT>
+ <DD>Specifies volume size in Bytes, Kilobytes (1 Kilobyte = 1024 bytes),
+ Megabytes (1 Megabyte = 1024 Kilobytes) or Gigabytes (1 Gigabyte = 1024 Megabytes).
+ if you specify only {Size}, 7-zip will treat it as bytes.</DD>
+</DL>
+
+<P>It's possible to specify several -v switches.</P>
+
+<P><B>NOTE:</B> Please don't use volumes (and don't copy volumes) before finishing archiving.
+7-Zip can change any volume (including first volume) at the end of archiving operation.</P>
+
+<H4>Examples</H4>
+
+<PRE class="example">
+7z a a.7z *.txt -v10k -v15k -v2m
+</PRE>
+
+<P>creates multivolume <SPAN class="filename">a.7z</SPAN> archive.
+First volume will be 10 KB, second will be 15 KB, and all others will be 2 MB.</P>
+
+<H4>Commands that can be used with this switch</H4>
+
+<P>
+ <A href="../commands/add.htm">a (Add)</A>,
+</P>
+
+</BODY>
+</HTML>
diff --git a/src/libs/7zip/unix/DOCS/MANUAL/switches/working_dir.htm b/src/libs/7zip/unix/DOCS/MANUAL/switches/working_dir.htm
new file mode 100644
index 000000000..415c3971b
--- /dev/null
+++ b/src/libs/7zip/unix/DOCS/MANUAL/switches/working_dir.htm
@@ -0,0 +1,55 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<HTML>
+<HEAD>
+ <META http-equiv="Content-Type" content="text/html; charset=Windows-1252">
+ <TITLE>-w (set Working directory) switch</TITLE>
+ <LINK href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<H1>-w (set Working directory) switch</H1>
+
+<P>Sets the working directory for the temporary base archive. By
+default, 7-Zip builds a new base archive file in the same directory as the
+old base archive file. By specifying this switch, you can set the
+working directory where the temporary base archive file will be built.
+After the temporary base archive file is built, it is copied over the
+original archive; then, the temporary file is deleted.</P>
+
+<H4>Syntax</H4>
+
+<PRE class="syntax">
+-w[<A class="parameter" href="#dir_path">{dir_path}</A>]
+</PRE>
+
+<DL>
+ <DT><A name="dir_path"></A>{dir_path}</DT>
+ <DD>
+ <P>Specifies the destination directory path. It's not required that
+ a path end with a backslash.</P>
+ <P>If &lt;dir_path> is not assigned, then 7-Zip will use the Windows temporary directory.</P>
+ </DD>
+</DL>
+
+
+<H4>Example</H4>
+
+<PRE class="example">
+7z a -tzip archive.zip *.cpp -wc:\temp
+</PRE>
+
+<P>adds <SPAN class="filename">*.cpp</SPAN> files to the
+<SPAN class="filename">archive.zip</SPAN> archive, creating a temporary archive
+in <SPAN class="filename">c:\temp</SPAN> folder.</P>
+
+<H4>Commands that can be used with this switch</H4>
+
+<P>
+ <A href="../commands/add.htm">a (Add)</A>,
+ <A href="../commands/delete.htm">d (Delete)</A>,
+ <A href="../commands/update.htm">u (Update)</A>,
+</P>
+
+</BODY>
+</HTML>
diff --git a/src/libs/7zip/unix/DOCS/MANUAL/switches/yes.htm b/src/libs/7zip/unix/DOCS/MANUAL/switches/yes.htm
new file mode 100644
index 000000000..142ffd20c
--- /dev/null
+++ b/src/libs/7zip/unix/DOCS/MANUAL/switches/yes.htm
@@ -0,0 +1,48 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<HTML>
+<HEAD>
+ <META http-equiv="Content-Type" content="text/html; charset=Windows-1252">
+ <TITLE>-y (assume Yes on all queries) switch</TITLE>
+ <LINK href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<H1>-y (assume Yes on all queries) switch</H1>
+
+<P>Disables most of the normal user queries during 7-Zip
+execution. You can use this switch to suppress overwrite queries in the
+<A href="../commands/extract.htm">e (Extract)</A> and
+<A href="../commands/extract_full.htm">x (Extract with full paths)</A> commands.</P>
+
+<H4>Syntax</H4>
+
+<PRE class="syntax">-y</PRE>
+
+<H4>Examples</H4>
+
+<PRE class="example">
+7z x src.zip -y
+</PRE>
+
+<P>extracts all files from
+ <SPAN class="filename">src.zip</SPAN> archive. All overwrite queries will be
+suppressed and files on disk with same filenames as in archive will be
+overwritten.</P>
+
+<H4>Commands that can be used with this switch</H4>
+
+<P>
+ <A href="../commands/extract.htm">e (Extract)</A>,
+ <A href="../commands/extract_full.htm">x (Extract with full paths)</A>
+</P>
+
+<H4>See also</H4>
+
+<P>
+ <B>Switches:</B>
+ <A href="overwrite.htm">-ao (Overwrite mode)</A>,
+</P>
+
+</BODY>
+</HTML>
diff --git a/src/libs/7zip/unix/DOCS/MANUAL/syntax.htm b/src/libs/7zip/unix/DOCS/MANUAL/syntax.htm
new file mode 100644
index 000000000..63822e03b
--- /dev/null
+++ b/src/libs/7zip/unix/DOCS/MANUAL/syntax.htm
@@ -0,0 +1,120 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<HTML>
+<HEAD>
+ <META http-equiv="Content-Type" content="text/html; charset=Windows-1252">
+ <TITLE>Command Line Syntax</TITLE>
+ <LINK href="style.css" rel="stylesheet" type="text/css">
+</HEAD>
+
+<BODY>
+
+<H1>Command Line Syntax</H1>
+
+<PRE class = "syntax">
+7z <A href = "commands/index.htm">&lt;command></A> [<A href = "switches/index.htm">&lt;switch></A>...] &lt;base_archive_name> [&lt;arguments>...]
+</PRE>
+<PRE class = "syntax">
+&lt;arguments> ::= <A href = "switches/index.htm">&lt;switch></A> | &lt;wildcard> | &lt;filename> | &lt;list_file>
+<A href = "switches/index.htm">&lt;switch></A>::= &lt;switch_symbol>&lt;switch_characters>[&lt;option>]
+&lt;switch_symbol> ::= '/' | '-'
+&lt;list_file> ::= @{filename}
+</PRE>
+
+
+<P>Expressions in square brackets (between '[' and ']') are optional.</P>
+
+<P>Expressions in curly braces ('{' and '}') mean that instead of that
+Expression (including braces), the user must substitute some string.</P>
+
+<P>Expression</P>
+
+<PRE class = "syntax">
+expression1 | expression2 | ... | expressionN</DT>
+</PRE>
+
+<P>
+means that any (but only one) from these expressions must be specified.
+
+<P><A href = "commands/index.htm">Commands</A> and
+<A href = "switches/index.htm">switches</A> can be entered in upper or lower case.</P>
+
+<P>Command is the first non-switch argument.</P>
+
+<P>The "base_archive_name" must be the first filename on the command line
+after the command.</P>
+
+<P>The switches and other filenames can be in any order.</P>
+
+<P>Wildcards or filenames with spaces must be quoted:</P>
+
+<PRE>
+ "Dir\Program files\*"
+ Dir\"Program files"\*
+</PRE>
+
+<P>Switch options can be combined to save command line length. However, some
+switch options take optional string arguments and therefore, must be the
+last option in a combined argument token string because 7-Zip accepts the
+rest of the argument token as the optional argument.</P>
+
+<P>7-Zip uses wild name matching similar to Windows 95:</P>
+<UL>
+ <LI><B>'*'</B> means a sequence of arbitrary characters.</LI>
+ <LI><B>'?'</B> means any character.</LI>
+</UL>
+
+<P><B>
+7-Zip doesn't uses the system wildcard parser. 7-Zip doesn't
+follow the archaic rule by which *.* means any file. 7-Zip treats
+*.* as matching the name of any file that has an extension. To process all files, you must
+use a * wildcard.</B></P>
+
+<P>Examples:</P>
+<TABLE border = "0">
+ <TR><TD>*.txt</TD><TD>means all files with an extension of ".txt"</TD></TR>
+ <TR><TD>?a*</TD><TD>means all files with a second character of "a"</TD></TR>
+ <TR><TD>*1*</TD><TD>means all names that contains character "1"</TD></TR>
+ <TR><TD>*.*.*</TD><TD>means all names that contain two at least "." characters</TD></TR>
+</TABLE>
+
+
+<P>The default wildcard "*" will be used if there is no filename/wildcard in the
+command line.</P>
+
+<P>Slash ('\') at the end of a path means a directory. Without a Slash ('\') at
+the end of the path, the path can refer either to a file or a directory.
+
+
+<H2><A name = "ListFile"></A>List file</H2>
+
+<P>You can supply one or more filenames or wildcards for special list files
+(files containing lists of files). The filenames in such list file must be
+separated by new line symbol(s).</P>
+
+<P>For list files, 7-Zip uses UTF-8 encoding by default. You can change encoding
+using <A href = "switches/charset.htm">-scs</A> switch.</P>
+
+<P>Multiple list files are supported.</P>
+
+<P>For example, if the file "listfile.txt" contains the following:</P>
+
+<PRE>
+ My programs\*.cpp
+ Src\*.cpp
+</PRE>
+<P>then the command</P>
+
+<PRE>
+ 7z a -tzip archive.zip @listfile.txt
+</PRE>
+
+<P>adds to the archive "archive.zip" all "*.cpp" files from directories "My
+programs" and "Src".</P>
+
+<H2><A name = "ListFile"></A>Short and Long File Names</H2>
+
+<P>7-Zip supports short file names (like FILENA~1.TXT) in some cases.
+However, it's strongly recommended to use only the real (long) file names.</P>
+
+</BODY>
+</HTML>
diff --git a/src/libs/7zip/unix/DOCS/Methods.txt b/src/libs/7zip/unix/DOCS/Methods.txt
new file mode 100644
index 000000000..f52e7c315
--- /dev/null
+++ b/src/libs/7zip/unix/DOCS/Methods.txt
@@ -0,0 +1,152 @@
+7-Zip method IDs (9.18)
+-----------------------
+
+Each compression or crypto method in 7z has unique binary value (ID).
+The length of ID in bytes is arbitrary but it can not exceed 63 bits (8 bytes).
+
+If you want to add some new ID, you have two ways:
+1) Write request for allocating IDs to 7-zip developers.
+2) Generate 8-bytes ID:
+
+ 3F ZZ ZZ ZZ ZZ ZZ MM MM
+
+ 3F - Prefix for random IDs (1 byte)
+ ZZ ZZ ZZ ZZ ZZ - Developer ID (5 bytes). Use real random bytes.
+
+ MM MM - Method ID (2 bytes)
+
+ You can notify 7-Zip developers about your Developer ID / Method ID.
+
+ Note: Use new ID only if old codec can not decode data encoded with new version.
+
+
+List of defined IDs
+-------------------
+
+00 - Copy
+
+03 - Delta
+04 - x86 (BCJ)
+05 - PPC (Big Endian)
+06 - IA64
+07 - ARM (little endian)
+08 - ARM Thumb (little endian)
+09 - SPARC
+21 - LZMA2
+
+02.. - Common
+ 03 Swap
+ - 2 Swap2
+ - 4 Swap4
+
+03.. - 7z
+ 01 - LZMA
+ 01 - Version
+
+ 03 - Branch
+ 01 - x86
+ 03 - BCJ
+ 1B - BCJ2
+ 02 - PPC
+ 05 - PPC (Big Endian)
+ 03 - Alpha
+ 01 - Alpha
+ 04 - IA64
+ 01 - IA64
+ 05 - ARM
+ 01 - ARM
+ 06 - M68
+ 05 - M68 (Big Endian)
+ 07 - ARM Thumb
+ 01 - ARMT
+ 08 - SPARC
+ 05 - SPARC
+
+ 04 - PPMD
+ 01 - Version
+
+ 7F -
+ 01 - experimental methods.
+
+
+04.. - Misc
+ 00 - Reserved
+ 01 - Zip
+ 00 - Copy (not used). Use {00} instead
+ 01 - Shrink
+ 06 - Implode
+ 08 - Deflate
+ 09 - Deflate64
+ 10 - Imploding
+ 12 - BZip2 (not used). Use {04 02 02} instead
+ 14 - LZMA
+ 60 - Jpeg
+ 61 - WavPack
+ 62 - PPMd
+ 63 - wzAES
+ 02 - BZip
+ 02 - BZip2
+ 03 - Rar
+ 01 - Rar15
+ 02 - Rar20
+ 03 - Rar29
+ 04 - Arj
+ 01 - Arj (1,2,3)
+ 02 - Arj 4
+ 05 - Z
+ 06 - Lzh
+ 07 - Reserved for 7z
+ 08 - Cab
+ 09 - NSIS
+ 01 - DeflateNSIS
+ 02 - BZip2NSIS
+
+
+06.. - Crypto
+ 00 -
+ 01 - AES
+ 0x - AES-128
+ 4x - AES-192
+ 8x - AES-256
+ Cx - AES
+
+ x0 - ECB
+ x1 - CBC
+ x2 - CFB
+ x3 - OFB
+
+ 07 - Reserved
+ 0F - Reserved
+
+ F0 - Misc Ciphers (Real Ciphers without hashing algo)
+
+ F1 - Misc Ciphers (Combine)
+ 01 - Zip
+ 01 - Main Zip crypto algo
+ 03 - RAR
+ 02 -
+ 03 - Rar29 AES-128 + (modified SHA-1)
+ 07 - 7z
+ 01 - AES-256 + SHA-256
+
+07.. - Hash (subject to change)
+ 00 -
+ 01 - CRC
+ 02 - SHA-1
+ 03 - SHA-256
+ 04 - SHA-384
+ 05 - SHA-512
+
+ F0 - Misc Hash
+
+ F1 - Misc
+ 03 - RAR
+ 03 - Rar29 Password Hashing (modified SHA1)
+ 07 - 7z
+ 01 - SHA-256 Password Hashing
+
+
+
+
+---
+End of document
diff --git a/src/libs/7zip/unix/DOCS/copying.txt b/src/libs/7zip/unix/DOCS/copying.txt
new file mode 100644
index 000000000..4c3890127
--- /dev/null
+++ b/src/libs/7zip/unix/DOCS/copying.txt
@@ -0,0 +1,504 @@
+ GNU LESSER GENERAL PUBLIC LICENSE
+ Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL. It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+ This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it. You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations below.
+
+ When we speak of free software, we are referring to freedom of use,
+not price. Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+ To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights. These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+ For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you. You must make sure that they, too, receive or can get the source
+code. If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it. And you must show them these terms so they know their rights.
+
+ We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+ To protect each distributor, we want to make it very clear that
+there is no warranty for the free library. Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+
+ Finally, software patents pose a constant threat to the existence of
+any free program. We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder. Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+ Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License. This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License. We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+ When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library. The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom. The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+ We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License. It also provides other free software developers Less
+of an advantage over competing non-free programs. These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries. However, the Lesser license provides advantages in certain
+special circumstances.
+
+ For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it becomes
+a de-facto standard. To achieve this, non-free programs must be
+allowed to use the library. A more frequent case is that a free
+library does the same job as widely used non-free libraries. In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+ In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software. For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+ Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+ The precise terms and conditions for copying, distribution and
+modification follow. Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library". The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+
+ GNU LESSER GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+ A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+ The "Library", below, refers to any such software library or work
+which has been distributed under these terms. A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language. (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+ "Source code" for a work means the preferred form of the work for
+making modifications to it. For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+ Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it). Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+
+ 1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+ You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+ 2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) The modified work must itself be a software library.
+
+ b) You must cause the files modified to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ c) You must cause the whole of the work to be licensed at no
+ charge to all third parties under the terms of this License.
+
+ d) If a facility in the modified Library refers to a function or a
+ table of data to be supplied by an application program that uses
+ the facility, other than as an argument passed when the facility
+ is invoked, then you must make a good faith effort to ensure that,
+ in the event an application does not supply such function or
+ table, the facility still operates, and performs whatever part of
+ its purpose remains meaningful.
+
+ (For example, a function in a library to compute square roots has
+ a purpose that is entirely well-defined independent of the
+ application. Therefore, Subsection 2d requires that any
+ application-supplied function or table used by this function must
+ be optional: if the application does not supply it, the square
+ root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library. To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License. (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.) Do not make any other change in
+these notices.
+
+ Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+ This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+ 4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+ If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library". Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+ However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library". The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+ When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library. The
+threshold for this to be true is not precisely defined by law.
+
+ If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work. (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+ Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+ 6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+ You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License. You must supply a copy of this License. If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License. Also, you must do one
+of these things:
+
+ a) Accompany the work with the complete corresponding
+ machine-readable source code for the Library including whatever
+ changes were used in the work (which must be distributed under
+ Sections 1 and 2 above); and, if the work is an executable linked
+ with the Library, with the complete machine-readable "work that
+ uses the Library", as object code and/or source code, so that the
+ user can modify the Library and then relink to produce a modified
+ executable containing the modified Library. (It is understood
+ that the user who changes the contents of definitions files in the
+ Library will not necessarily be able to recompile the application
+ to use the modified definitions.)
+
+ b) Use a suitable shared library mechanism for linking with the
+ Library. A suitable mechanism is one that (1) uses at run time a
+ copy of the library already present on the user's computer system,
+ rather than copying library functions into the executable, and (2)
+ will operate properly with a modified version of the library, if
+ the user installs one, as long as the modified version is
+ interface-compatible with the version that the work was made with.
+
+ c) Accompany the work with a written offer, valid for at
+ least three years, to give the same user the materials
+ specified in Subsection 6a, above, for a charge no more
+ than the cost of performing this distribution.
+
+ d) If distribution of the work is made by offering access to copy
+ from a designated place, offer equivalent access to copy the above
+ specified materials from the same place.
+
+ e) Verify that the user has already received a copy of these
+ materials or that you have already sent this user a copy.
+
+ For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it. However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+ It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system. Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+ 7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+ a) Accompany the combined library with a copy of the same work
+ based on the Library, uncombined with any other library
+ facilities. This must be distributed under the terms of the
+ Sections above.
+
+ b) Give prominent notice with the combined library of the fact
+ that part of it is a work based on the Library, and explaining
+ where to find the accompanying uncombined form of the same work.
+
+ 8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License. Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License. However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+ 9. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Library or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+ 10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+
+ 11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all. For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded. In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+ 13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation. If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+ 14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission. For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this. Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+ NO WARRANTY
+
+ 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Libraries
+
+ If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change. You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms of the
+ordinary General Public License).
+
+ To apply these terms, attach the following notices to the library. It is
+safest to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the library's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the library, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the
+ library `Frob' (a library for tweaking knobs) written by James Random Hacker.
+
+ <signature of Ty Coon>, 1 April 1990
+ Ty Coon, President of Vice
+
+That's all there is to it!
+
+
diff --git a/src/libs/7zip/unix/DOCS/history.txt b/src/libs/7zip/unix/DOCS/history.txt
new file mode 100644
index 000000000..05a9a2165
--- /dev/null
+++ b/src/libs/7zip/unix/DOCS/history.txt
@@ -0,0 +1,456 @@
+Sources history of the 7-Zip
+----------------------------
+
+9.18 2010-11-02
+-------------------------
+- New small SFX module for installers (C/Util/SfxSetup).
+
+
+9.17 2010-10-04
+-------------------------
+- IStream.h::IOutStream::
+ STDMETHOD(SetSize)(Int64 newSize) PURE;
+ was changed to
+ STDMETHOD(SetSize)(UInt64 newSize) PURE;
+
+
+9.09 2009-12-12
+-------------------------
+- The bug was fixed:
+ Utf16_To_Utf8 funstions in UTFConvert.cpp and 7zMain.c
+ incorrectly converted surrogate characters (the code >= 0x10000) to UTF-8.
+
+
+9.05 2009-07-05
+-------------------------
+- FileMapping.h::CFileMapping now returns WRes
+
+
+9.04 2009-05-30
+-------------------------
+- ICoder.h: NCoderPropID::EEnum values were changed
+
+
+9.02 2009-04-23
+-------------------------
+- Bug was fixed: if swap2 filter was requests at compression,
+ 7-zip used swap4 filter instead (but id was swap2), so archives were incorrect.
+
+4.61 2008-11-23
+-------------------------
+- Bug in ver. 4.58+ was fixed:
+ 7-Zip didn't use any -m* switch after -mtc, -mcl or -mcu for .zip archives.
+- Bug in .CAB code was fixed. 7-Zip didn't show some empty files,
+ if .CAB archive contains more than one empty file.
+
+
+4.59 2008-07-27
+-------------------------
+- Bug was fixed:
+ LZMA Encoder in fast compression mode could access memory outside of
+ allocated range in some rare cases.
+
+
+4.59 alpha 2008-05-30
+-------------------------
+- BUGS was fixed:
+ 7zOut.cpp: 7-Zip incorrectly wrote size of property records in some cases.
+ 7zIn.cpp: 7-Zip incorrectly work with archive, containg archive properties.
+
+4.58 alpha 9 2008-04-29
+-------------------------
+- BUG was fixed: 7-Zip showed incorrect timestamps in ISO files.
+
+
+4.58 alpha 8 2008-04-15
+-------------------------
+- BUG in 4.58 alpha 5/6/7 was fixed:
+ LZMA encoder worked incorrectly, if lp != 0.
+- Unicode (UTF-8) support for filenames in .ZIP archives. Now there are 3 modes:
+ 1) Default mode: 7-Zip uses UTF-8, if the local code page doesn't contain required symbols.
+ 2) -mcu switch: 7-Zip uses UTF-8, if there are non-ASCII symbols.
+ 3) -mcl switch: 7-Zip uses local code page.
+- Now it's possible to use -mSW- and -mSW+ switches instead of -mSW=off and -mSW=on
+
+
+4.58 alpha 7 2008-04-08
+-------------------------
+- BUG was fixed: BZip2Encoder and BZip2Decoder used CEvent objects without
+ creating, when BZip2 code was called with one thread (with -mmt1 switch or with
+ default switches on single thread CPU).
+- .lzma support.
+- RPM and NSIS support was improved.
+- LZMA now stores only (2 << n) or (3 << n) dictionary size value to LZMA properties.
+
+
+4.58 alpha 6 2008-03-27
+-------------------------
+- NTFS time extra in ZIP.
+- New item property - kpidTimeType - VT_UI4 (0 - NTFS, 1 - Unix, 2 - DOS).
+- Static CRC table is not required now for Lzma Encoder (in Lz MatchFinder).
+
+
+4.58 alpha 5 2008-03-19
+-------------------------
+- Creation time (-mtc switch) for .7z archives
+- LZMA encoder was converted to ANSI-C
+
+
+4.58 alpha 3 2008-02-25
+-------------------------
+- Speed optimizations for LZMA decoding. Now it uses C code instead of C++.
+- 7-Zip now has 128 MB dictionary limit for 32-bit version:
+ It's for speed optimization: kNumLogBits = 9 + sizeof(size_t) / 2;
+- TAR: 'D' link flag support.
+- 7-Zip now can unpack multivolume RAR archives created with
+ "old style volume names" scheme (-vn switch) and names *.001, *.002, ...
+- Fixed bugs:
+ - 7-Zip FM could not copy / move files to root network folders like \\COMPNAME\FOLDERNAME\
+ In case of move it removed original files.
+ - SFX-WIN: if there are errors, it still could return 0.
+ - ZIP (.XPS file) isZip64 && thisDiskNumber16 == 0xFFFF.
+ - ZIP name updating:
+ If zip file contains extra field and you try to change properties of files,
+ 7-zip tries to delete all extra fileds (except for WzAES).
+ And that code could hang.
+ - 7-Zip GUI didn't suggest BZip2 dictionary size used in previous run.
+ - If creation time stamp was included in .RAR archive, 7-zip used creation time stamp
+ as modification time stamp.
+
+4.58 alpha 2 2007-12-31
+-------------------------
+- Small changes in Deflate and LZMA compression.
+- Some speed optimizations.
+
+
+4.57
+----
+- Bug was fixed:
+ Anti item is created for wrong file:
+ http://sourceforge.net/forum/forum.php?thread_id=1880366&forum_id=45798
+
+
+4.52 beta 2007-07-32
+-------------------------
+- 7-Zip could not decompress some cab files
+- "." dir creating at FAT was fixed / long names
+
+
+4.50 beta 2007-07-24
+-------------------------
+- 7-Zip now replaces unsupported filenames (like "nul", "com1") during extracting.
+- New switch for command line version:
+ -ssc[-] enables/disables case-sensitive mode.
+- 7z.exe l shows archive comment for zip archives
+- Some bugs were fixed: long paths names shorter than 4.
+- Speed optimizations for AES encryption.
+
+
+
+4.56 beta 2007-09-13
+-------------------------
+- some fixes in LZ encoder (LZMA and Deflate) code.
+ size_t was replaces to ptrdiff_t.
+ size_t version worked incorrectly with some compilers.
+
+
+4.46 beta 2007-05-25
+-------------------------
+- CPP Synchronization objects now return HRes (error code) instead of bool.
+
+
+4.45 beta 2007-04-16
+-------------------------
+- 7-Zip now uses C version of CRC, so you must call CrcGenerateTable at
+ stratup code, or you must add CPP/Common/CRC.cpp to your project.
+- Method ID in .7z now is 63-bit integer (UInt64).
+- Open error messages
+- unRar 1.5 fixed
+- unShrink fixed
+- BUG of 4.43 beta and 4.44 beta was fixed.
+ 7-Zip compressing to .zip in multi-threading mode didn't work in some cases.
+
+
+4.44 beta 2007-01-20
+-------------------------
+
+- Bug was fixed: LZMAEncoder.cpp::CEncoder::GetOptimumFast
+ it was:
+ data++
+ fixed version:
+ data = _matchFinder.GetPointerToCurrentPos(_matchFinderObj) - 1;
+ It could lead to very small cpmpression ratio decreasing when block needs move.
+
+
+4.30 beta 2005-11-18
+-------------------------
+- Security.h::AddLockMemoryPrivilege - installs "Large pages" feature
+- MemoryLock.h::EnableLockMemoryPrivilege - enables "Large pages" feature
+- Alloc.h::SetLargePageSize - sets optimal LargePageSize size
+
+
+4.27 2005-09-21
+-------------------------
+- Some GUIDs/interfaces were changed.
+ IStream.h:
+ ISequentialInStream::Read now works as old ReadPart
+ ISequentialOutStream::Write now works as old WritePart
+
+
+4.26 beta 2005-08-05
+-------------------------
+- MyAlloc(0)/BigAlloc(0) now return 0
+
+
+4.25 beta 2005-07-31
+-------------------------
+- More 64-bit compatibilty
+
+
+4.24 beta 2005-07-06
+-------------------------
+- Common\NewHandler.h: using throw() for code size optimization.
+
+
+4.23 2005-06-29
+-------------------------
+- Bug was fixed: memory leak in Cab decoder.
+
+
+4.19 beta 2005-05-21
+-------------------------
+- BZip2 code was rewritten. Now 7-Zip doesn't use original BZip2 code.
+ Old (original) version was moved to folder 7zip/Compress/BZip2Original/
+
+
+4.14 beta 2005-01-11
+-------------------------
+- STL using was reduced
+- 7za now supports Split(001) archves
+
+
+4.10 beta 2004-10-21
+-------------------------
+- Codecs now use new interface: ICompressSetDecoderProperties2
+
+
+4.07 beta 2004-10-03
+-------------------------
+- some interfaces were changed slightly to support
+ -stdin -stdout mode.
+- FilterCoder for simple filters
+- Wildcard censor class was changed.
+- Bug was fixed: when encrypted stream was multiple 16,
+ it used additional 16 empty bytes.
+
+
+3.11 2003-10-06
+-------------------------
+ File functions support unicode strings even
+ on Windows 95/98/ME.
+
+
+3.08.02 2003-09-20
+-------------------------
+ More compatible with GCC.
+
+
+3.08.02 beta 2003-08-20
+-------------------------
+ Extracting bug in 7zExtract.cpp was fixed.
+
+
+3.08 beta 2003-08-19
+-------------------------
+ Big source code reconstruction.
+
+
+2.30 Beta 32 2003-05-15
+-------------------------
+ Small changes in Deflate decoder.
+
+
+2.30 Beta 31 2003-04-29
+-------------------------
+ Common/NewHandler.cpp
+ HeapAlloc in (included to beta 30) was changed to malloc.
+ HeapAlloc worked slower in Win95/98/Me.
+
+
+2.30 Beta 30 2003-04-21
+-------------------------
+ new file: Common/String.cpp
+ Common/NewHandler.* were changed
+
+
+2.30 Beta 29 2003-04-07
+-------------------------
+ Small changes in LZMA code.
+
+
+2.30 Beta 28 2003-02-16
+-------------------------
+ Processing anti-files was corrected.
+
+
+2.30 Beta 27 2003-01-24
+-------------------------
+ Project/Archiver/Format/Common/ArchiveInterface.h:
+ new IArchiveOpenVolumeCallback interface.
+
+
+2.30 Beta 26 2003-01-12
+-------------------------
+ SDK/Interface/PropID.h:
+ kpidComment now is kpidCommented
+
+
+2.30 Beta 25 2003-01-02
+-------------------------
+ Main archive interfaces were changed.
+
+
+2.30 Beta 24 2002-11-01
+-------------------------
+ SDK/Windows/Synchronization.h
+ SDK/Windows/Synchronization.cpp
+ - some changes.
+
+
+2.30 Beta 23 2002-09-07
+-------------------------
+ Project/FileManager folder was added.
+ Notation of some source files was changed.
+
+
+2.30 Beta 22 2002-08-28
+-------------------------
+ Project/FileManager folder was added.
+ Notation of some source files was changed.
+
+
+
+2.30 Beta 21 2002-07-08
+-------------------------
+ Project/Compress/LZ/MatchFinder/BinTree/BinTree.h
+ Project/Compress/LZ/MatchFinder/BinTree/BinTreeMain.h
+ Project/Compress/LZ/MatchFinder/BinTree/HC.h
+ Project/Compress/LZ/MatchFinder/BinTree/HCMain.h
+ - RAM requirements for LZMA (7z) compression were reduced.
+
+
+2.30 Beta 20 2002-07-01
+-------------------------
+- SDK/Stream/WindowOut.h
+ now it uses only required memory (dictionary size).
+- Project/Archiver/Resource
+ contains common resurces
+
+
+2.30 Beta 19 2002-04-11
+-------------------------
+- SDK/Archive/Rar/Handler.cpp
+ supporting RAR29
+
+2.30 Beta 18 2002-03-25
+-------------------------
+- SDK/Archive/Cab/MSZipDecoder.cpp
+ SDK/Archive/Cab/LZXDecoder.cpp:
+ bug with corrupted archives was fixed
+- Project/Compress/LZ/MatchFinder/BinTree/BinTree.h
+- Project/Compress/LZ/MatchFinder/BinTree/BinTreeMain.h
+ some speed optimization (using prefetching)
+
+
+2.30 Beta 17 2002-03-03
+-------------------------
+- ARJ suppport.
+
+
+2.30 Beta 16 2002-02-24
+-------------------------
+- Project/Compress/LZ/LZMA/Decoder.cpp:
+ Bug was fixed: LZMA could not extract more than 4 GB.
+- RPM and CPIO formats.
+- Project/Compress/LZ/LZMA/Encoder.*
+ Project/Archiver/Format/7z/OutHandler.cpp
+ New fast compression mode for LZMA: -m0a=0.
+- New match finders for LZMA: bt4b, hc3, hc4.
+
+
+2.30 Beta 15 2002-02-17
+-------------------------
+- Compression ratio in LZMA was slightly improved:
+ Project/Compress/LZ/LZMA/Encoder.*
+ Project/Archiver/Format/7z/OutHandler.cpp
+
+
+2.30 Beta 14 2002-02-10
+-------------------------
+- Supporting multithreading for LZMA:
+ Project/Compress/LZ/MatchFinder/MT
+- Common/String.h:
+ CStringBase::Replace function was fixed.
+
+
+2.30 Beta 13 2002-01-27
+-------------------------
+- Compress/LZ/MatchFinder/BinTree3.h:
+ method
+- Compress/LZ/MatchFinder/BinTreemain.h:
+ - one VirtualAlloc array was splitted to
+ the for 3 arrays.
+ - Hash-functions were changed.
+
+
+
+2.30 Beta 12 2002-01-16
+-------------------------
+- Compress/LZ/MatchFinder/BinTreemain.h:
+ Compress/LZ/MatchFinder/Patricia.h:
+ Compress/PPM/PPMd/SubAlloc.h:
+ Beta 11 bugs were fixed:
+ - VirtualFree was used incorrectly
+ - checking WIN32 instead _WINDOWS.
+ Compress/LZ/MatchFinder/Patricia.h:
+ Beta 11 bug with deleting m_Hash2Descendants was fixed.
+
+
+2.30 Beta 11 2002-01-15
+-------------------------
+- Compress/LZ/MatchFinder/BinTreemain.h:
+ Compress/LZ/MatchFinder/Patricia.h:
+ Compress/PPM/PPMd/SubAlloc.h:
+ using VirtualAlloc for memory allocating
+- Exlorer/ContextMenu.cpp:
+ Testing supporting.
+ CreateProcess instead WinExec
+- Format/Common/IArchiveHandler.h:
+ Exlorer/ProxyHandler.cpp:
+ FAR/Plugin.cpp:
+ New properties names: Method, HostOS.
+- Exlorer/OverwriteDialog.cpp:
+ FAR/OverwriteDialog.cpp:
+ Windows/PropVariantConversions.h
+ Using National time format was eliminated.
+
+
+
+2.30 Beta 10 2002-01-11
+-------------------------
+- Exlorer/ContextMenu.cpp: bug with context menu on
+ Windows NT4 in Unicode version was fixed.
+- Format/7z/UpdateArchiveEngine.cpp: bug was fixed -
+ Updating in Beta 8 and 9 didn't work.
+- Exlorer/CCompressDialog.cpp: history growing bug was fixed.
+
+
+2.30 Beta 9 2002-01-08
+-------------------------
+- SDK/Common/Vector.h: sopporting sorted object vectors .
+- Lang features.
+- Two new match finders: pat3h and pat4h.
+- SDK/Archive/Zip/InEngine.cpp: bug was fixed.
+- SDK/Windows/FileDir.cpp: function CreateComplexDirectory
+ was changed.
+
diff --git a/src/libs/7zip/unix/DOCS/lzma.txt b/src/libs/7zip/unix/DOCS/lzma.txt
new file mode 100644
index 000000000..659323237
--- /dev/null
+++ b/src/libs/7zip/unix/DOCS/lzma.txt
@@ -0,0 +1,598 @@
+LZMA SDK 9.20
+-------------
+
+LZMA SDK provides the documentation, samples, header files, libraries,
+and tools you need to develop applications that use LZMA compression.
+
+LZMA is default and general compression method of 7z format
+in 7-Zip compression program (www.7-zip.org). LZMA provides high
+compression ratio and very fast decompression.
+
+LZMA is an improved version of famous LZ77 compression algorithm.
+It was improved in way of maximum increasing of compression ratio,
+keeping high decompression speed and low memory requirements for
+decompressing.
+
+
+
+LICENSE
+-------
+
+LZMA SDK is written and placed in the public domain by Igor Pavlov.
+
+Some code in LZMA SDK is based on public domain code from another developers:
+ 1) PPMd var.H (2001): Dmitry Shkarin
+ 2) SHA-256: Wei Dai (Crypto++ library)
+
+
+LZMA SDK Contents
+-----------------
+
+LZMA SDK includes:
+
+ - ANSI-C/C++/C#/Java source code for LZMA compressing and decompressing
+ - Compiled file->file LZMA compressing/decompressing program for Windows system
+
+
+UNIX/Linux version
+------------------
+To compile C++ version of file->file LZMA encoding, go to directory
+CPP/7zip/Bundles/LzmaCon
+and call make to recompile it:
+ make -f makefile.gcc clean all
+
+In some UNIX/Linux versions you must compile LZMA with static libraries.
+To compile with static libraries, you can use
+LIB = -lm -static
+
+
+Files
+---------------------
+lzma.txt - LZMA SDK description (this file)
+7zFormat.txt - 7z Format description
+7zC.txt - 7z ANSI-C Decoder description
+methods.txt - Compression method IDs for .7z
+lzma.exe - Compiled file->file LZMA encoder/decoder for Windows
+7zr.exe - 7-Zip with 7z/lzma/xz support.
+history.txt - history of the LZMA SDK
+
+
+Source code structure
+---------------------
+
+C/ - C files
+ 7zCrc*.* - CRC code
+ Alloc.* - Memory allocation functions
+ Bra*.* - Filters for x86, IA-64, ARM, ARM-Thumb, PowerPC and SPARC code
+ LzFind.* - Match finder for LZ (LZMA) encoders
+ LzFindMt.* - Match finder for LZ (LZMA) encoders for multithreading encoding
+ LzHash.h - Additional file for LZ match finder
+ LzmaDec.* - LZMA decoding
+ LzmaEnc.* - LZMA encoding
+ LzmaLib.* - LZMA Library for DLL calling
+ Types.h - Basic types for another .c files
+ Threads.* - The code for multithreading.
+
+ LzmaLib - LZMA Library (.DLL for Windows)
+
+ LzmaUtil - LZMA Utility (file->file LZMA encoder/decoder).
+
+ Archive - files related to archiving
+ 7z - 7z ANSI-C Decoder
+
+CPP/ -- CPP files
+
+ Common - common files for C++ projects
+ Windows - common files for Windows related code
+
+ 7zip - files related to 7-Zip Project
+
+ Common - common files for 7-Zip
+
+ Compress - files related to compression/decompression
+
+ Archive - files related to archiving
+
+ Common - common files for archive handling
+ 7z - 7z C++ Encoder/Decoder
+
+ Bundles - Modules that are bundles of other modules
+
+ Alone7z - 7zr.exe: Standalone version of 7z.exe that supports only 7z/LZMA/BCJ/BCJ2
+ LzmaCon - lzma.exe: LZMA compression/decompression
+ Format7zR - 7zr.dll: Reduced version of 7za.dll: extracting/compressing to 7z/LZMA/BCJ/BCJ2
+ Format7zExtractR - 7zxr.dll: Reduced version of 7zxa.dll: extracting from 7z/LZMA/BCJ/BCJ2.
+
+ UI - User Interface files
+
+ Client7z - Test application for 7za.dll, 7zr.dll, 7zxr.dll
+ Common - Common UI files
+ Console - Code for console archiver
+
+
+
+CS/ - C# files
+ 7zip
+ Common - some common files for 7-Zip
+ Compress - files related to compression/decompression
+ LZ - files related to LZ (Lempel-Ziv) compression algorithm
+ LZMA - LZMA compression/decompression
+ LzmaAlone - file->file LZMA compression/decompression
+ RangeCoder - Range Coder (special code of compression/decompression)
+
+Java/ - Java files
+ SevenZip
+ Compression - files related to compression/decompression
+ LZ - files related to LZ (Lempel-Ziv) compression algorithm
+ LZMA - LZMA compression/decompression
+ RangeCoder - Range Coder (special code of compression/decompression)
+
+
+C/C++ source code of LZMA SDK is part of 7-Zip project.
+7-Zip source code can be downloaded from 7-Zip's SourceForge page:
+
+ http://sourceforge.net/projects/sevenzip/
+
+
+
+LZMA features
+-------------
+ - Variable dictionary size (up to 1 GB)
+ - Estimated compressing speed: about 2 MB/s on 2 GHz CPU
+ - Estimated decompressing speed:
+ - 20-30 MB/s on 2 GHz Core 2 or AMD Athlon 64
+ - 1-2 MB/s on 200 MHz ARM, MIPS, PowerPC or other simple RISC
+ - Small memory requirements for decompressing (16 KB + DictionarySize)
+ - Small code size for decompressing: 5-8 KB
+
+LZMA decoder uses only integer operations and can be
+implemented in any modern 32-bit CPU (or on 16-bit CPU with some conditions).
+
+Some critical operations that affect the speed of LZMA decompression:
+ 1) 32*16 bit integer multiply
+ 2) Misspredicted branches (penalty mostly depends from pipeline length)
+ 3) 32-bit shift and arithmetic operations
+
+The speed of LZMA decompressing mostly depends from CPU speed.
+Memory speed has no big meaning. But if your CPU has small data cache,
+overall weight of memory speed will slightly increase.
+
+
+How To Use
+----------
+
+Using LZMA encoder/decoder executable
+--------------------------------------
+
+Usage: LZMA <e|d> inputFile outputFile [<switches>...]
+
+ e: encode file
+
+ d: decode file
+
+ b: Benchmark. There are two tests: compressing and decompressing
+ with LZMA method. Benchmark shows rating in MIPS (million
+ instructions per second). Rating value is calculated from
+ measured speed and it is normalized with Intel's Core 2 results.
+ Also Benchmark checks possible hardware errors (RAM
+ errors in most cases). Benchmark uses these settings:
+ (-a1, -d21, -fb32, -mfbt4). You can change only -d parameter.
+ Also you can change the number of iterations. Example for 30 iterations:
+ LZMA b 30
+ Default number of iterations is 10.
+
+<Switches>
+
+
+ -a{N}: set compression mode 0 = fast, 1 = normal
+ default: 1 (normal)
+
+ d{N}: Sets Dictionary size - [0, 30], default: 23 (8MB)
+ The maximum value for dictionary size is 1 GB = 2^30 bytes.
+ Dictionary size is calculated as DictionarySize = 2^N bytes.
+ For decompressing file compressed by LZMA method with dictionary
+ size D = 2^N you need about D bytes of memory (RAM).
+
+ -fb{N}: set number of fast bytes - [5, 273], default: 128
+ Usually big number gives a little bit better compression ratio
+ and slower compression process.
+
+ -lc{N}: set number of literal context bits - [0, 8], default: 3
+ Sometimes lc=4 gives gain for big files.
+
+ -lp{N}: set number of literal pos bits - [0, 4], default: 0
+ lp switch is intended for periodical data when period is
+ equal 2^N. For example, for 32-bit (4 bytes)
+ periodical data you can use lp=2. Often it's better to set lc0,
+ if you change lp switch.
+
+ -pb{N}: set number of pos bits - [0, 4], default: 2
+ pb switch is intended for periodical data
+ when period is equal 2^N.
+
+ -mf{MF_ID}: set Match Finder. Default: bt4.
+ Algorithms from hc* group doesn't provide good compression
+ ratio, but they often works pretty fast in combination with
+ fast mode (-a0).
+
+ Memory requirements depend from dictionary size
+ (parameter "d" in table below).
+
+ MF_ID Memory Description
+
+ bt2 d * 9.5 + 4MB Binary Tree with 2 bytes hashing.
+ bt3 d * 11.5 + 4MB Binary Tree with 3 bytes hashing.
+ bt4 d * 11.5 + 4MB Binary Tree with 4 bytes hashing.
+ hc4 d * 7.5 + 4MB Hash Chain with 4 bytes hashing.
+
+ -eos: write End Of Stream marker. By default LZMA doesn't write
+ eos marker, since LZMA decoder knows uncompressed size
+ stored in .lzma file header.
+
+ -si: Read data from stdin (it will write End Of Stream marker).
+ -so: Write data to stdout
+
+
+Examples:
+
+1) LZMA e file.bin file.lzma -d16 -lc0
+
+compresses file.bin to file.lzma with 64 KB dictionary (2^16=64K)
+and 0 literal context bits. -lc0 allows to reduce memory requirements
+for decompression.
+
+
+2) LZMA e file.bin file.lzma -lc0 -lp2
+
+compresses file.bin to file.lzma with settings suitable
+for 32-bit periodical data (for example, ARM or MIPS code).
+
+3) LZMA d file.lzma file.bin
+
+decompresses file.lzma to file.bin.
+
+
+Compression ratio hints
+-----------------------
+
+Recommendations
+---------------
+
+To increase the compression ratio for LZMA compressing it's desirable
+to have aligned data (if it's possible) and also it's desirable to locate
+data in such order, where code is grouped in one place and data is
+grouped in other place (it's better than such mixing: code, data, code,
+data, ...).
+
+
+Filters
+-------
+You can increase the compression ratio for some data types, using
+special filters before compressing. For example, it's possible to
+increase the compression ratio on 5-10% for code for those CPU ISAs:
+x86, IA-64, ARM, ARM-Thumb, PowerPC, SPARC.
+
+You can find C source code of such filters in C/Bra*.* files
+
+You can check the compression ratio gain of these filters with such
+7-Zip commands (example for ARM code):
+No filter:
+ 7z a a1.7z a.bin -m0=lzma
+
+With filter for little-endian ARM code:
+ 7z a a2.7z a.bin -m0=arm -m1=lzma
+
+It works in such manner:
+Compressing = Filter_encoding + LZMA_encoding
+Decompressing = LZMA_decoding + Filter_decoding
+
+Compressing and decompressing speed of such filters is very high,
+so it will not increase decompressing time too much.
+Moreover, it reduces decompression time for LZMA_decoding,
+since compression ratio with filtering is higher.
+
+These filters convert CALL (calling procedure) instructions
+from relative offsets to absolute addresses, so such data becomes more
+compressible.
+
+For some ISAs (for example, for MIPS) it's impossible to get gain from such filter.
+
+
+LZMA compressed file format
+---------------------------
+Offset Size Description
+ 0 1 Special LZMA properties (lc,lp, pb in encoded form)
+ 1 4 Dictionary size (little endian)
+ 5 8 Uncompressed size (little endian). -1 means unknown size
+ 13 Compressed data
+
+
+ANSI-C LZMA Decoder
+~~~~~~~~~~~~~~~~~~~
+
+Please note that interfaces for ANSI-C code were changed in LZMA SDK 4.58.
+If you want to use old interfaces you can download previous version of LZMA SDK
+from sourceforge.net site.
+
+To use ANSI-C LZMA Decoder you need the following files:
+1) LzmaDec.h + LzmaDec.c + Types.h
+LzmaUtil/LzmaUtil.c is example application that uses these files.
+
+
+Memory requirements for LZMA decoding
+-------------------------------------
+
+Stack usage of LZMA decoding function for local variables is not
+larger than 200-400 bytes.
+
+LZMA Decoder uses dictionary buffer and internal state structure.
+Internal state structure consumes
+ state_size = (4 + (1.5 << (lc + lp))) KB
+by default (lc=3, lp=0), state_size = 16 KB.
+
+
+How To decompress data
+----------------------
+
+LZMA Decoder (ANSI-C version) now supports 2 interfaces:
+1) Single-call Decompressing
+2) Multi-call State Decompressing (zlib-like interface)
+
+You must use external allocator:
+Example:
+void *SzAlloc(void *p, size_t size) { p = p; return malloc(size); }
+void SzFree(void *p, void *address) { p = p; free(address); }
+ISzAlloc alloc = { SzAlloc, SzFree };
+
+You can use p = p; operator to disable compiler warnings.
+
+
+Single-call Decompressing
+-------------------------
+When to use: RAM->RAM decompressing
+Compile files: LzmaDec.h + LzmaDec.c + Types.h
+Compile defines: no defines
+Memory Requirements:
+ - Input buffer: compressed size
+ - Output buffer: uncompressed size
+ - LZMA Internal Structures: state_size (16 KB for default settings)
+
+Interface:
+ int LzmaDecode(Byte *dest, SizeT *destLen, const Byte *src, SizeT *srcLen,
+ const Byte *propData, unsigned propSize, ELzmaFinishMode finishMode,
+ ELzmaStatus *status, ISzAlloc *alloc);
+ In:
+ dest - output data
+ destLen - output data size
+ src - input data
+ srcLen - input data size
+ propData - LZMA properties (5 bytes)
+ propSize - size of propData buffer (5 bytes)
+ finishMode - It has meaning only if the decoding reaches output limit (*destLen).
+ LZMA_FINISH_ANY - Decode just destLen bytes.
+ LZMA_FINISH_END - Stream must be finished after (*destLen).
+ You can use LZMA_FINISH_END, when you know that
+ current output buffer covers last bytes of stream.
+ alloc - Memory allocator.
+
+ Out:
+ destLen - processed output size
+ srcLen - processed input size
+
+ Output:
+ SZ_OK
+ status:
+ LZMA_STATUS_FINISHED_WITH_MARK
+ LZMA_STATUS_NOT_FINISHED
+ LZMA_STATUS_MAYBE_FINISHED_WITHOUT_MARK
+ SZ_ERROR_DATA - Data error
+ SZ_ERROR_MEM - Memory allocation error
+ SZ_ERROR_UNSUPPORTED - Unsupported properties
+ SZ_ERROR_INPUT_EOF - It needs more bytes in input buffer (src).
+
+ If LZMA decoder sees end_marker before reaching output limit, it returns OK result,
+ and output value of destLen will be less than output buffer size limit.
+
+ You can use multiple checks to test data integrity after full decompression:
+ 1) Check Result and "status" variable.
+ 2) Check that output(destLen) = uncompressedSize, if you know real uncompressedSize.
+ 3) Check that output(srcLen) = compressedSize, if you know real compressedSize.
+ You must use correct finish mode in that case. */
+
+
+Multi-call State Decompressing (zlib-like interface)
+----------------------------------------------------
+
+When to use: file->file decompressing
+Compile files: LzmaDec.h + LzmaDec.c + Types.h
+
+Memory Requirements:
+ - Buffer for input stream: any size (for example, 16 KB)
+ - Buffer for output stream: any size (for example, 16 KB)
+ - LZMA Internal Structures: state_size (16 KB for default settings)
+ - LZMA dictionary (dictionary size is encoded in LZMA properties header)
+
+1) read LZMA properties (5 bytes) and uncompressed size (8 bytes, little-endian) to header:
+ unsigned char header[LZMA_PROPS_SIZE + 8];
+ ReadFile(inFile, header, sizeof(header)
+
+2) Allocate CLzmaDec structures (state + dictionary) using LZMA properties
+
+ CLzmaDec state;
+ LzmaDec_Constr(&state);
+ res = LzmaDec_Allocate(&state, header, LZMA_PROPS_SIZE, &g_Alloc);
+ if (res != SZ_OK)
+ return res;
+
+3) Init LzmaDec structure before any new LZMA stream. And call LzmaDec_DecodeToBuf in loop
+
+ LzmaDec_Init(&state);
+ for (;;)
+ {
+ ...
+ int res = LzmaDec_DecodeToBuf(CLzmaDec *p, Byte *dest, SizeT *destLen,
+ const Byte *src, SizeT *srcLen, ELzmaFinishMode finishMode);
+ ...
+ }
+
+
+4) Free all allocated structures
+ LzmaDec_Free(&state, &g_Alloc);
+
+For full code example, look at C/LzmaUtil/LzmaUtil.c code.
+
+
+How To compress data
+--------------------
+
+Compile files: LzmaEnc.h + LzmaEnc.c + Types.h +
+LzFind.c + LzFind.h + LzFindMt.c + LzFindMt.h + LzHash.h
+
+Memory Requirements:
+ - (dictSize * 11.5 + 6 MB) + state_size
+
+Lzma Encoder can use two memory allocators:
+1) alloc - for small arrays.
+2) allocBig - for big arrays.
+
+For example, you can use Large RAM Pages (2 MB) in allocBig allocator for
+better compression speed. Note that Windows has bad implementation for
+Large RAM Pages.
+It's OK to use same allocator for alloc and allocBig.
+
+
+Single-call Compression with callbacks
+--------------------------------------
+
+Check C/LzmaUtil/LzmaUtil.c as example,
+
+When to use: file->file decompressing
+
+1) you must implement callback structures for interfaces:
+ISeqInStream
+ISeqOutStream
+ICompressProgress
+ISzAlloc
+
+static void *SzAlloc(void *p, size_t size) { p = p; return MyAlloc(size); }
+static void SzFree(void *p, void *address) { p = p; MyFree(address); }
+static ISzAlloc g_Alloc = { SzAlloc, SzFree };
+
+ CFileSeqInStream inStream;
+ CFileSeqOutStream outStream;
+
+ inStream.funcTable.Read = MyRead;
+ inStream.file = inFile;
+ outStream.funcTable.Write = MyWrite;
+ outStream.file = outFile;
+
+
+2) Create CLzmaEncHandle object;
+
+ CLzmaEncHandle enc;
+
+ enc = LzmaEnc_Create(&g_Alloc);
+ if (enc == 0)
+ return SZ_ERROR_MEM;
+
+
+3) initialize CLzmaEncProps properties;
+
+ LzmaEncProps_Init(&props);
+
+ Then you can change some properties in that structure.
+
+4) Send LZMA properties to LZMA Encoder
+
+ res = LzmaEnc_SetProps(enc, &props);
+
+5) Write encoded properties to header
+
+ Byte header[LZMA_PROPS_SIZE + 8];
+ size_t headerSize = LZMA_PROPS_SIZE;
+ UInt64 fileSize;
+ int i;
+
+ res = LzmaEnc_WriteProperties(enc, header, &headerSize);
+ fileSize = MyGetFileLength(inFile);
+ for (i = 0; i < 8; i++)
+ header[headerSize++] = (Byte)(fileSize >> (8 * i));
+ MyWriteFileAndCheck(outFile, header, headerSize)
+
+6) Call encoding function:
+ res = LzmaEnc_Encode(enc, &outStream.funcTable, &inStream.funcTable,
+ NULL, &g_Alloc, &g_Alloc);
+
+7) Destroy LZMA Encoder Object
+ LzmaEnc_Destroy(enc, &g_Alloc, &g_Alloc);
+
+
+If callback function return some error code, LzmaEnc_Encode also returns that code
+or it can return the code like SZ_ERROR_READ, SZ_ERROR_WRITE or SZ_ERROR_PROGRESS.
+
+
+Single-call RAM->RAM Compression
+--------------------------------
+
+Single-call RAM->RAM Compression is similar to Compression with callbacks,
+but you provide pointers to buffers instead of pointers to stream callbacks:
+
+HRes LzmaEncode(Byte *dest, SizeT *destLen, const Byte *src, SizeT srcLen,
+ CLzmaEncProps *props, Byte *propsEncoded, SizeT *propsSize, int writeEndMark,
+ ICompressProgress *progress, ISzAlloc *alloc, ISzAlloc *allocBig);
+
+Return code:
+ SZ_OK - OK
+ SZ_ERROR_MEM - Memory allocation error
+ SZ_ERROR_PARAM - Incorrect paramater
+ SZ_ERROR_OUTPUT_EOF - output buffer overflow
+ SZ_ERROR_THREAD - errors in multithreading functions (only for Mt version)
+
+
+
+Defines
+-------
+
+_LZMA_SIZE_OPT - Enable some optimizations in LZMA Decoder to get smaller executable code.
+
+_LZMA_PROB32 - It can increase the speed on some 32-bit CPUs, but memory usage for
+ some structures will be doubled in that case.
+
+_LZMA_UINT32_IS_ULONG - Define it if int is 16-bit on your compiler and long is 32-bit.
+
+_LZMA_NO_SYSTEM_SIZE_T - Define it if you don't want to use size_t type.
+
+
+_7ZIP_PPMD_SUPPPORT - Define it if you don't want to support PPMD method in AMSI-C .7z decoder.
+
+
+C++ LZMA Encoder/Decoder
+~~~~~~~~~~~~~~~~~~~~~~~~
+C++ LZMA code use COM-like interfaces. So if you want to use it,
+you can study basics of COM/OLE.
+C++ LZMA code is just wrapper over ANSI-C code.
+
+
+C++ Notes
+~~~~~~~~~~~~~~~~~~~~~~~~
+If you use some C++ code folders in 7-Zip (for example, C++ code for .7z handling),
+you must check that you correctly work with "new" operator.
+7-Zip can be compiled with MSVC 6.0 that doesn't throw "exception" from "new" operator.
+So 7-Zip uses "CPP\Common\NewHandler.cpp" that redefines "new" operator:
+operator new(size_t size)
+{
+ void *p = ::malloc(size);
+ if (p == 0)
+ throw CNewException();
+ return p;
+}
+If you use MSCV that throws exception for "new" operator, you can compile without
+"NewHandler.cpp". So standard exception will be used. Actually some code of
+7-Zip catches any exception in internal code and converts it to HRESULT code.
+So you don't need to catch CNewException, if you call COM interfaces of 7-Zip.
+
+---
+
+http://www.7-zip.org
+http://www.7-zip.org/sdk.html
+http://www.7-zip.org/support.html
diff --git a/src/libs/7zip/unix/DOCS/readme.txt b/src/libs/7zip/unix/DOCS/readme.txt
new file mode 100644
index 000000000..aad462642
--- /dev/null
+++ b/src/libs/7zip/unix/DOCS/readme.txt
@@ -0,0 +1,181 @@
+7-Zip 9.20 Sources
+------------------
+
+7-Zip is a file archiver for Windows.
+
+7-Zip Copyright (C) 1999-2010 Igor Pavlov.
+
+
+License Info
+------------
+
+7-Zip is free software distributed under the GNU LGPL
+(except for unRar code).
+read License.txt for more infomation about license.
+
+Notes about unRAR license:
+
+Please check main restriction from unRar license:
+
+ 2. The unRAR sources may be used in any software to handle RAR
+ archives without limitations free of charge, but cannot be used
+ to re-create the RAR compression algorithm, which is proprietary.
+ Distribution of modified unRAR sources in separate form or as a
+ part of other software is permitted, provided that it is clearly
+ stated in the documentation and source comments that the code may
+ not be used to develop a RAR (WinRAR) compatible archiver.
+
+In brief it means:
+1) You can compile and use compiled files under GNU LGPL rules, since
+ unRAR license almost has no restrictions for compiled files.
+ You can link these compiled files to LGPL programs.
+2) You can fix bugs in source code and use compiled fixed version.
+3) You can not use unRAR sources to re-create the RAR compression algorithm.
+
+
+LZMA SDK
+--------
+
+Also this package contains files from LZMA SDK
+you can download LZMA SDK from this page:
+http://www.7-zip.org/sdk.html
+read about addtional licenses for LZMA SDK in file
+DOC/lzma.txt
+
+
+How to compile
+--------------
+To compile sources you need Visual C++ 6.0.
+For compiling some files you also need
+new Platform SDK from Microsoft' Site:
+http://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdk-full.htm
+or
+http://www.microsoft.com/msdownload/platformsdk/sdkupdate/XPSP2FULLInstall.htm
+or
+http://www.microsoft.com/msdownload/platformsdk/sdkupdate/
+
+If you use MSVC6, specify SDK directories at top of directories lists:
+Tools / Options / Directories
+ - Include files
+ - Library files
+
+
+To compile 7-Zip for AMD64 and IA64 you need:
+ Windows Server 2003 SP1 Platform SDK from microsoft.com
+
+Also you need Microsoft Macro Assembler:
+ - ml.exe for x86
+ - ml64.exe for AMD64
+You can use ml.exe from Windows SDK for Windows Vista or some other version.
+
+
+Compiling under Unix/Linux
+--------------------------
+Check this site for Posix/Linux version:
+http://sourceforge.net/projects/p7zip/
+
+
+Notes:
+------
+7-Zip consists of COM modules (DLL files).
+But 7-Zip doesn't use standard COM interfaces for creating objects.
+Look at
+7zip\UI\Client7z folder for example of using DLL files of 7-Zip.
+Some DLL files can use other DLL files from 7-Zip.
+If you don't like it, you must use standalone version of DLL.
+To compile standalone version of DLL you must include all used parts
+to project and define some defs.
+For example, 7zip\Bundles\Format7z is a standalone version of 7z.dll
+that works with 7z format. So you can use such DLL in your project
+without additional DLL files.
+
+
+Description of 7-Zip sources package
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+DOC Documentation
+---
+ 7zFormat.txt - 7z format description
+ copying.txt - GNU LGPL license
+ unRarLicense.txt - License for unRAR part of source code
+ history.txt - Sources history
+ Methods.txt - Compression method IDs
+ readme.txt - Readme file
+ lzma.txt - LZMA SDK description
+ 7zip.nsi - installer script for NSIS
+
+
+C - Source code in C
+CPP - Source code in CPP
+
+Common Common modules
+Windows Win32 wrappers
+
+7zip
+-------
+ Common Common modules for 7-zip
+
+ Archive 7-Zip Archive Format Plugins
+ --------
+ Common
+ 7z
+ Arj
+ BZip2
+ Cab
+ Cpio
+ GZip
+ Rar
+ Rpm
+ Split
+ Tar
+ Zip
+
+ Bundle Modules that are bundles of other modules
+ ------
+ Alone 7za.exe: Standalone version of 7z
+ Alone7z 7zr.exe: Standalone version of 7z that supports only 7z/LZMA/BCJ/BCJ2
+ SFXCon 7zCon.sfx: Console 7z SFX module
+ SFXWin 7z.sfx: Windows 7z SFX module
+ SFXSetup 7zS.sfx: Windows 7z SFX module for Installers
+ Format7z 7za.dll: .7z support
+ Format7zExtract 7zxa.dll: .7z support, extracting only
+ Format7zR 7zr.dll: .7z support, LZMA/BCJ* only
+ Format7zExtractR 7zxr.dll: .7z support, LZMA/BCJ* only, extracting only
+ Format7zF 7z.dll: all formats
+
+ UI
+ --
+ Agent Intermediary modules for FAR plugin and Explorer plugin
+ Console 7z.exe Console version
+ Explorer Explorer plugin
+ Resource Resources
+ Far FAR plugin
+ Client7z Test application for 7za.dll
+
+ Compress
+ --------
+ BZip2 BZip2 compressor
+ Branch Branch converter
+ ByteSwap Byte Swap converter
+ Copy Copy coder
+ Deflate
+ Implode
+ Arj
+ LZMA
+ PPMd Dmitry Shkarin's PPMdH with small changes.
+ LZ Lempel - Ziv
+
+ Crypto Crypto modules
+ ------
+ 7zAES Cipher for 7z
+ AES AES Cipher
+ Rar20 Cipher for Rar 2.0
+ RarAES Cipher for Rar 3.0
+ Zip Cipher for Zip
+
+ FileManager File Manager
+
+
+---
+Igor Pavlov
+http://www.7-zip.org
diff --git a/src/libs/7zip/unix/DOCS/unRarLicense.txt b/src/libs/7zip/unix/DOCS/unRarLicense.txt
new file mode 100644
index 000000000..5f78b728d
--- /dev/null
+++ b/src/libs/7zip/unix/DOCS/unRarLicense.txt
@@ -0,0 +1,41 @@
+ ****** ***** ****** unRAR - free utility for RAR archives
+ ** ** ** ** ** ** ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ ****** ******* ****** License for use and distribution of
+ ** ** ** ** ** ** ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ ** ** ** ** ** ** FREE portable version
+ ~~~~~~~~~~~~~~~~~~~~~
+
+ The source code of unRAR utility is freeware. This means:
+
+ 1. All copyrights to RAR and the utility unRAR are exclusively
+ owned by the author - Alexander Roshal.
+
+ 2. The unRAR sources may be used in any software to handle RAR
+ archives without limitations free of charge, but cannot be used
+ to re-create the RAR compression algorithm, which is proprietary.
+ Distribution of modified unRAR sources in separate form or as a
+ part of other software is permitted, provided that it is clearly
+ stated in the documentation and source comments that the code may
+ not be used to develop a RAR (WinRAR) compatible archiver.
+
+ 3. The unRAR utility may be freely distributed. No person or company
+ may charge a fee for the distribution of unRAR without written
+ permission from the copyright holder.
+
+ 4. THE RAR ARCHIVER AND THE UNRAR UTILITY ARE DISTRIBUTED "AS IS".
+ NO WARRANTY OF ANY KIND IS EXPRESSED OR IMPLIED. YOU USE AT
+ YOUR OWN RISK. THE AUTHOR WILL NOT BE LIABLE FOR DATA LOSS,
+ DAMAGES, LOSS OF PROFITS OR ANY OTHER KIND OF LOSS WHILE USING
+ OR MISUSING THIS SOFTWARE.
+
+ 5. Installing and using the unRAR utility signifies acceptance of
+ these terms and conditions of the license.
+
+ 6. If you don't agree with terms of the license you must remove
+ unRAR files from your storage devices and cease to use the
+ utility.
+
+ Thank you for your interest in RAR and unRAR.
+
+
+ Alexander L. Roshal \ No newline at end of file