From a68a2d52dc593743018e6a592445c59a55ecacbd Mon Sep 17 00:00:00 2001 From: Timofey Solomko Date: Sun, 30 Apr 2017 18:20:35 +0300 Subject: [PATCH] Update Swift version in readme. --- README.md | 2 +- docs/Classes.html | 2 +- docs/Classes/BZip2.html | 3 +- docs/Classes/Deflate.html | 4 +-- docs/Classes/GzipArchive.html | 6 +--- docs/Classes/LZMA.html | 3 +- docs/Classes/LZMA2.html | 3 +- docs/Classes/XZArchive.html | 3 +- docs/Classes/ZipContainer.html | 12 +------ docs/Classes/ZlibArchive.html | 6 +--- docs/Enums.html | 2 +- docs/Enums/BZip2Error.html | 2 +- docs/Enums/DeflateError.html | 2 +- docs/Enums/GzipError.html | 2 +- docs/Enums/LZMA2Error.html | 2 +- docs/Enums/LZMAError.html | 2 +- docs/Enums/XZError.html | 2 +- docs/Enums/ZipError.html | 2 +- docs/Enums/ZlibError.html | 2 +- docs/Protocols.html | 2 +- docs/Protocols/Archive.html | 2 +- docs/Protocols/DecompressionAlgorithm.html | 2 +- docs/Structs.html | 2 +- docs/Structs/GzipHeader.html | 3 +- .../Structs/GzipHeader/CompressionMethod.html | 2 +- docs/Structs/GzipHeader/FileSystemType.html | 2 +- docs/Structs/ZipEntry.html | 2 +- docs/Structs/ZlibHeader.html | 3 +- docs/Structs/ZlibHeader/CompressionLevel.html | 2 +- .../Structs/ZlibHeader/CompressionMethod.html | 2 +- .../Contents/Resources/Documents/Classes.html | 2 +- .../Resources/Documents/Classes/BZip2.html | 3 +- .../Resources/Documents/Classes/Deflate.html | 4 +-- .../Documents/Classes/GzipArchive.html | 6 +--- .../Resources/Documents/Classes/LZMA.html | 3 +- .../Resources/Documents/Classes/LZMA2.html | 3 +- .../Documents/Classes/XZArchive.html | 3 +- .../Documents/Classes/ZipContainer.html | 12 +------ .../Documents/Classes/ZlibArchive.html | 6 +--- .../Contents/Resources/Documents/Enums.html | 2 +- .../Resources/Documents/Enums/BZip2Error.html | 2 +- .../Documents/Enums/DeflateError.html | 2 +- .../Resources/Documents/Enums/GzipError.html | 2 +- .../Resources/Documents/Enums/LZMA2Error.html | 2 +- .../Resources/Documents/Enums/LZMAError.html | 2 +- .../Resources/Documents/Enums/XZError.html | 2 +- .../Resources/Documents/Enums/ZipError.html | 2 +- .../Resources/Documents/Enums/ZlibError.html | 2 +- .../Resources/Documents/Protocols.html | 2 +- .../Documents/Protocols/Archive.html | 2 +- .../Protocols/DecompressionAlgorithm.html | 2 +- .../Contents/Resources/Documents/Structs.html | 2 +- .../Documents/Structs/GzipHeader.html | 3 +- .../Structs/GzipHeader/CompressionMethod.html | 2 +- .../Structs/GzipHeader/FileSystemType.html | 2 +- .../Resources/Documents/Structs/ZipEntry.html | 2 +- .../Documents/Structs/ZlibHeader.html | 3 +- .../Structs/ZlibHeader/CompressionLevel.html | 2 +- .../Structs/ZlibHeader/CompressionMethod.html | 2 +- .../Contents/Resources/Documents/index.html | 34 +++++++++--------- .../Contents/Resources/Documents/search.json | 2 +- .../Resources/Documents/undocumented.json | 6 ---- docs/docsets/SWCompression.tgz | Bin 99468 -> 99272 bytes docs/index.html | 34 +++++++++--------- docs/search.json | 2 +- 65 files changed, 95 insertions(+), 153 deletions(-) delete mode 100644 docs/docsets/SWCompression.docset/Contents/Resources/Documents/undocumented.json diff --git a/README.md b/README.md index 2901fce4..0a526f3f 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ # SWCompression -[![GitHub license](https://img.shields.io/badge/license-MIT-lightgrey.svg)](https://raw.githubusercontent.com/tsolomko/SWCompression/master/LICENSE) [![CocoaPods](https://img.shields.io/cocoapods/p/SWCompression.svg)](https://cocoapods.org/pods/SWCompression) [![Swift 3](https://img.shields.io/badge/Swift-3.0.2-lightgrey.svg)](https://developer.apple.com/swift/) +[![GitHub license](https://img.shields.io/badge/license-MIT-lightgrey.svg)](https://raw.githubusercontent.com/tsolomko/SWCompression/master/LICENSE) [![CocoaPods](https://img.shields.io/cocoapods/p/SWCompression.svg)](https://cocoapods.org/pods/SWCompression) [![Swift 3](https://img.shields.io/badge/Swift-3.1-lightgrey.svg)](https://developer.apple.com/swift/) [![Build Status](https://travis-ci.org/tsolomko/SWCompression.svg?branch=develop)](https://travis-ci.org/tsolomko/SWCompression) [![codecov](https://codecov.io/gh/tsolomko/SWCompression/branch/develop/graph/badge.svg)](https://codecov.io/gh/tsolomko/SWCompression) [![CocoaPods](https://img.shields.io/cocoapods/v/SWCompression.svg)](https://cocoapods.org/pods/SWCompression) diff --git a/docs/Classes.html b/docs/Classes.html index 4799dd80..a23bc05d 100644 --- a/docs/Classes.html +++ b/docs/Classes.html @@ -445,7 +445,7 @@ diff --git a/docs/Classes/BZip2.html b/docs/Classes/BZip2.html index 214f339a..67a9d601 100644 --- a/docs/Classes/BZip2.html +++ b/docs/Classes/BZip2.html @@ -183,7 +183,6 @@

Decompresses compressedData with BZip2 algortihm.

If data passed is not actually compressed with BZip2, BZip2Error will be thrown.

-

Throws

BZip2Error if unexpected byte (bit) sequence was encountered in compressedData. @@ -240,7 +239,7 @@ It may indicate that either the data is damaged or it might not be compressed wi

diff --git a/docs/Classes/Deflate.html b/docs/Classes/Deflate.html index ec4c1473..dbb7637a 100644 --- a/docs/Classes/Deflate.html +++ b/docs/Classes/Deflate.html @@ -183,7 +183,6 @@

Decompresses compressedData with DEFLATE algortihm.

If data passed is not actually compressed with DEFLATE, DeflateError will be thrown.

-

Throws

DeflateError if unexpected byte (bit) sequence was encountered in compressedData. @@ -247,7 +246,6 @@ It may indicate that either the data is damaged or it might not be compressed wi

Compresses data with DEFLATE algortihm.

If during compression something goes wrong DeflateError will be thrown.

-

Note

Currently, SWCompression creates only one block for all data @@ -281,7 +279,7 @@ static Huffman is used in all other cases.
diff --git a/docs/Classes/GzipArchive.html b/docs/Classes/GzipArchive.html index 6021e238..789b7b12 100644 --- a/docs/Classes/GzipArchive.html +++ b/docs/Classes/GzipArchive.html @@ -185,13 +185,11 @@

If data passed is not actually a gzip archive, GzipError will be thrown.

If data inside the archive is not actually compressed with DEFLATE algorithm, DeflateError will be thrown.

-

Note

This function is specification compliant.

-

Throws

DeflateError or GzipError depending on the type of inconsistency in data. @@ -258,13 +256,11 @@ Fields in the header of the resulting archive will be set to default values It will be also specified that the compressor used slowest DEFLATE algorithm.

If during compression something goes wrong DeflateError will be thrown.

-

Note

This function is specification compliant.

-

Throws

DeflateError if an error was encountered during compression.

@@ -320,7 +316,7 @@ It will be also specified that the compressor used slowest DEFLATE algorithm.

diff --git a/docs/Classes/LZMA.html b/docs/Classes/LZMA.html index 0521ad06..da30ab7b 100644 --- a/docs/Classes/LZMA.html +++ b/docs/Classes/LZMA.html @@ -183,7 +183,6 @@

Decompresses compressedData with LZMA algortihm.

If data passed is not actually compressed with LZMA, LZMAError will be thrown.

-

Throws

LZMAError if unexpected byte (bit) sequence was encountered in compressedData. @@ -240,7 +239,7 @@ It may indicate that either the data is damaged or it might not be compressed wi

diff --git a/docs/Classes/LZMA2.html b/docs/Classes/LZMA2.html index d56a66b1..01f74f7d 100644 --- a/docs/Classes/LZMA2.html +++ b/docs/Classes/LZMA2.html @@ -183,7 +183,6 @@

Decompresses compressedData with LZMA2 algortihm. LZMA2 is a modification of LZMA.

If data passed is not actually compressed with LZMA2, LZMA2Error or LZMAError will be thrown.

-

Throws

LZMA2Error or LZMAError if unexpected byte (bit) sequence was encountered in compressedData. @@ -240,7 +239,7 @@ It may indicate that either the data is damaged or it might not be compressed wi

diff --git a/docs/Classes/XZArchive.html b/docs/Classes/XZArchive.html index 91dd9b2e..3515e5fb 100644 --- a/docs/Classes/XZArchive.html +++ b/docs/Classes/XZArchive.html @@ -187,7 +187,6 @@ If filters other than LZMA2 are used in archive then LZMAError or LZMA2Error will be thrown.

-

Throws

LZMAError, LZMA2Error or XZError depending on the type of inconsistency in data. @@ -244,7 +243,7 @@ It may indicate that either the data is damaged or it might not be compressed wi

diff --git a/docs/Classes/ZipContainer.html b/docs/Classes/ZipContainer.html index 7b78eb6e..22fe4dce 100644 --- a/docs/Classes/ZipContainer.html +++ b/docs/Classes/ZipContainer.html @@ -212,7 +212,6 @@

Tries to open ZIP archive and parse its Central Directory. If parsing is successful then entries property will contain all directory or file entries found in archive.

-

Important

The order of entries is defined by ZIP archive and, particularly, creator of given ZIP container. @@ -220,7 +219,6 @@ It is likely that directories will be encountered earlier than files stored in t but one SHOULD NOT assume that this is the case.

-

Note

Currently, there is no universal (platform and file system independent) method to determine if entry is a directory. @@ -228,13 +226,11 @@ One can check this by looking at the size of entry’s data (it should be 0 the last character of entry’s name (it should be ‘/’). If all of these is true then entry is likely to be a directory.

-

Note

Only ZIP containers complying to ISO/IEC 21320-1 standard are supported.

-

Throws

ZipError or DeflateError depending on the type of inconsistency in data. @@ -291,14 +287,12 @@ It may indicate that either the container is damaged or it might not be ZIP cont

Returns data associated with provided ZipEntry.

-

Note

Returned Data object with the size of 0 can either indicate that the entry is an empty file or it is a directory.

-

Throws

ZipError or DeflateError depending on the type of inconsistency in data. @@ -356,7 +350,6 @@ An error can indicate that the container is damaged.

Processes ZIP archive (container) and returns an array of tuples (String, Data). First member of a tuple is entry’s name, second member is entry’s data.

-

Important

The order of entries is defined by ZIP archive and, particularly, creator of given ZIP container. @@ -364,7 +357,6 @@ It is likely that directories will be encountered earlier than files stored in t but one SHOULD NOT assume that this is the case.

-

Note

Currently, there is no universal (platform and file system independent) method to determine if entry is a directory. @@ -372,13 +364,11 @@ One can check this by looking at the size of entry’s data (it should be 0 the last character of entry’s name (it should be ‘/’). If all of these is true then entry is likely to be a directory.

-

Note

Only ZIP containers complying to ISO/IEC 21320-1 standard are supported.

-

Throws

ZipError or DeflateError depending on the type of inconsistency in data. @@ -435,7 +425,7 @@ It may indicate that either the container is damaged or it might not be ZIP cont

diff --git a/docs/Classes/ZlibArchive.html b/docs/Classes/ZlibArchive.html index 24b6533a..31976524 100644 --- a/docs/Classes/ZlibArchive.html +++ b/docs/Classes/ZlibArchive.html @@ -185,13 +185,11 @@

If data passed is not actually a zlib archive, ZlibError will be thrown.

If data inside the archive is not actually compressed with DEFLATE algorithm, DeflateError will be thrown.

-

Note

This function is specification compliant.

-

Throws

DeflateError or ZlibError depending on the type of inconsistency in data. @@ -256,13 +254,11 @@ It may indicate that either the data is damaged or it might not be compressed wi It will be specified in archive’s header that the compressor used slowest DEFLATE algorithm.

If during compression something goes wrong DeflateError will be thrown.

-

Note

This function is specification compliant.

-

Throws

DeflateError if an error was encountered during compression.

@@ -318,7 +314,7 @@ It will be specified in archive’s header that the compressor used slowest
diff --git a/docs/Enums.html b/docs/Enums.html index fddc52af..8197c768 100644 --- a/docs/Enums.html +++ b/docs/Enums.html @@ -542,7 +542,7 @@ Associated value contains already decompressed data.
diff --git a/docs/Enums/BZip2Error.html b/docs/Enums/BZip2Error.html index e73e31b0..66c7c342 100644 --- a/docs/Enums/BZip2Error.html +++ b/docs/Enums/BZip2Error.html @@ -491,7 +491,7 @@ It may indicate that either the data is damaged or it might not be compressed wi
diff --git a/docs/Enums/DeflateError.html b/docs/Enums/DeflateError.html index cefd3f8f..61ac45e6 100644 --- a/docs/Enums/DeflateError.html +++ b/docs/Enums/DeflateError.html @@ -316,7 +316,7 @@ It may indicate that either the data is damaged or it might not be compressed wi diff --git a/docs/Enums/GzipError.html b/docs/Enums/GzipError.html index cfd4b1ae..3ef9f7c0 100644 --- a/docs/Enums/GzipError.html +++ b/docs/Enums/GzipError.html @@ -389,7 +389,7 @@ Associated value contains already decompressed data.

diff --git a/docs/Enums/LZMA2Error.html b/docs/Enums/LZMA2Error.html index 412a195c..065a19f3 100644 --- a/docs/Enums/LZMA2Error.html +++ b/docs/Enums/LZMA2Error.html @@ -352,7 +352,7 @@ amount of compressed data read was different from the one stored in LZMA2 packet diff --git a/docs/Enums/LZMAError.html b/docs/Enums/LZMAError.html index dbaf4db5..98354d8c 100644 --- a/docs/Enums/LZMAError.html +++ b/docs/Enums/LZMAError.html @@ -424,7 +424,7 @@ than the repeat length. diff --git a/docs/Enums/XZError.html b/docs/Enums/XZError.html index e116b0af..93be1260 100644 --- a/docs/Enums/XZError.html +++ b/docs/Enums/XZError.html @@ -530,7 +530,7 @@ Associated value contains already decompressed data.

diff --git a/docs/Enums/ZipError.html b/docs/Enums/ZipError.html index 87325d62..40111133 100644 --- a/docs/Enums/ZipError.html +++ b/docs/Enums/ZipError.html @@ -527,7 +527,7 @@ It may indicate that either the data is damaged or it might not be ZIP archive ( diff --git a/docs/Enums/ZlibError.html b/docs/Enums/ZlibError.html index 03b6f299..75630825 100644 --- a/docs/Enums/ZlibError.html +++ b/docs/Enums/ZlibError.html @@ -353,7 +353,7 @@ Associated value contains already decompressed data.

diff --git a/docs/Protocols.html b/docs/Protocols.html index 04c23eb8..6ffccfd9 100644 --- a/docs/Protocols.html +++ b/docs/Protocols.html @@ -231,7 +231,7 @@ diff --git a/docs/Protocols/Archive.html b/docs/Protocols/Archive.html index 4054057f..46110cdf 100644 --- a/docs/Protocols/Archive.html +++ b/docs/Protocols/Archive.html @@ -206,7 +206,7 @@ diff --git a/docs/Protocols/DecompressionAlgorithm.html b/docs/Protocols/DecompressionAlgorithm.html index a19a8711..2f0fcecf 100644 --- a/docs/Protocols/DecompressionAlgorithm.html +++ b/docs/Protocols/DecompressionAlgorithm.html @@ -206,7 +206,7 @@ diff --git a/docs/Structs.html b/docs/Structs.html index be767b6d..9cdd6eaa 100644 --- a/docs/Structs.html +++ b/docs/Structs.html @@ -270,7 +270,7 @@ diff --git a/docs/Structs/GzipHeader.html b/docs/Structs/GzipHeader.html index 5e5a8b9c..35889f32 100644 --- a/docs/Structs/GzipHeader.html +++ b/docs/Structs/GzipHeader.html @@ -406,7 +406,6 @@

Initializes the structure with the values of first ‘member’ in gzip archive presented in archiveData.

If data passed is not actually a gzip archive, GzipError will be thrown.

-

Throws

GzipError. It may indicate that either the data is damaged or @@ -458,7 +457,7 @@ it might not be compressed with gzip at all.

diff --git a/docs/Structs/GzipHeader/CompressionMethod.html b/docs/Structs/GzipHeader/CompressionMethod.html index 3879855f..3016c2c0 100644 --- a/docs/Structs/GzipHeader/CompressionMethod.html +++ b/docs/Structs/GzipHeader/CompressionMethod.html @@ -206,7 +206,7 @@ diff --git a/docs/Structs/GzipHeader/FileSystemType.html b/docs/Structs/GzipHeader/FileSystemType.html index 92ede20c..5f731f1b 100644 --- a/docs/Structs/GzipHeader/FileSystemType.html +++ b/docs/Structs/GzipHeader/FileSystemType.html @@ -342,7 +342,7 @@ diff --git a/docs/Structs/ZipEntry.html b/docs/Structs/ZipEntry.html index ad8636ed..6a4eb919 100644 --- a/docs/Structs/ZipEntry.html +++ b/docs/Structs/ZipEntry.html @@ -266,7 +266,7 @@ diff --git a/docs/Structs/ZlibHeader.html b/docs/Structs/ZlibHeader.html index cf510324..27ae0edc 100644 --- a/docs/Structs/ZlibHeader.html +++ b/docs/Structs/ZlibHeader.html @@ -335,7 +335,6 @@

Initializes the structure with the values from zlib archive presented in archiveData.

If data passed is not actually a zlib archive, ZlibError will be thrown.

-

Throws

ZlibError. It may indicate that either the data is damaged or @@ -387,7 +386,7 @@ it might not be compressed with zlib at all.

diff --git a/docs/Structs/ZlibHeader/CompressionLevel.html b/docs/Structs/ZlibHeader/CompressionLevel.html index 15a82d40..8c6e8fbc 100644 --- a/docs/Structs/ZlibHeader/CompressionLevel.html +++ b/docs/Structs/ZlibHeader/CompressionLevel.html @@ -308,7 +308,7 @@ diff --git a/docs/Structs/ZlibHeader/CompressionMethod.html b/docs/Structs/ZlibHeader/CompressionMethod.html index 82996c2d..8a2bb3d7 100644 --- a/docs/Structs/ZlibHeader/CompressionMethod.html +++ b/docs/Structs/ZlibHeader/CompressionMethod.html @@ -206,7 +206,7 @@ diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes.html b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes.html index 4799dd80..a23bc05d 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes.html @@ -445,7 +445,7 @@ diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/BZip2.html b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/BZip2.html index 214f339a..67a9d601 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/BZip2.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/BZip2.html @@ -183,7 +183,6 @@

Decompresses compressedData with BZip2 algortihm.

If data passed is not actually compressed with BZip2, BZip2Error will be thrown.

-

Throws

BZip2Error if unexpected byte (bit) sequence was encountered in compressedData. @@ -240,7 +239,7 @@ It may indicate that either the data is damaged or it might not be compressed wi

diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/Deflate.html b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/Deflate.html index ec4c1473..dbb7637a 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/Deflate.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/Deflate.html @@ -183,7 +183,6 @@

Decompresses compressedData with DEFLATE algortihm.

If data passed is not actually compressed with DEFLATE, DeflateError will be thrown.

-

Throws

DeflateError if unexpected byte (bit) sequence was encountered in compressedData. @@ -247,7 +246,6 @@ It may indicate that either the data is damaged or it might not be compressed wi

Compresses data with DEFLATE algortihm.

If during compression something goes wrong DeflateError will be thrown.

-

Note

Currently, SWCompression creates only one block for all data @@ -281,7 +279,7 @@ static Huffman is used in all other cases.
diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/GzipArchive.html b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/GzipArchive.html index 6021e238..789b7b12 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/GzipArchive.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/GzipArchive.html @@ -185,13 +185,11 @@

If data passed is not actually a gzip archive, GzipError will be thrown.

If data inside the archive is not actually compressed with DEFLATE algorithm, DeflateError will be thrown.

-

Note

This function is specification compliant.

-

Throws

DeflateError or GzipError depending on the type of inconsistency in data. @@ -258,13 +256,11 @@ Fields in the header of the resulting archive will be set to default values It will be also specified that the compressor used slowest DEFLATE algorithm.

If during compression something goes wrong DeflateError will be thrown.

-

Note

This function is specification compliant.

-

Throws

DeflateError if an error was encountered during compression.

@@ -320,7 +316,7 @@ It will be also specified that the compressor used slowest DEFLATE algorithm.

diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/LZMA.html b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/LZMA.html index 0521ad06..da30ab7b 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/LZMA.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/LZMA.html @@ -183,7 +183,6 @@

Decompresses compressedData with LZMA algortihm.

If data passed is not actually compressed with LZMA, LZMAError will be thrown.

-

Throws

LZMAError if unexpected byte (bit) sequence was encountered in compressedData. @@ -240,7 +239,7 @@ It may indicate that either the data is damaged or it might not be compressed wi

diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/LZMA2.html b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/LZMA2.html index d56a66b1..01f74f7d 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/LZMA2.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/LZMA2.html @@ -183,7 +183,6 @@

Decompresses compressedData with LZMA2 algortihm. LZMA2 is a modification of LZMA.

If data passed is not actually compressed with LZMA2, LZMA2Error or LZMAError will be thrown.

-

Throws

LZMA2Error or LZMAError if unexpected byte (bit) sequence was encountered in compressedData. @@ -240,7 +239,7 @@ It may indicate that either the data is damaged or it might not be compressed wi

diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/XZArchive.html b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/XZArchive.html index 91dd9b2e..3515e5fb 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/XZArchive.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/XZArchive.html @@ -187,7 +187,6 @@ If filters other than LZMA2 are used in archive then LZMAError or LZMA2Error will be thrown.

-

Throws

LZMAError, LZMA2Error or XZError depending on the type of inconsistency in data. @@ -244,7 +243,7 @@ It may indicate that either the data is damaged or it might not be compressed wi

diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/ZipContainer.html b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/ZipContainer.html index 7b78eb6e..22fe4dce 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/ZipContainer.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/ZipContainer.html @@ -212,7 +212,6 @@

Tries to open ZIP archive and parse its Central Directory. If parsing is successful then entries property will contain all directory or file entries found in archive.

-

Important

The order of entries is defined by ZIP archive and, particularly, creator of given ZIP container. @@ -220,7 +219,6 @@ It is likely that directories will be encountered earlier than files stored in t but one SHOULD NOT assume that this is the case.

-

Note

Currently, there is no universal (platform and file system independent) method to determine if entry is a directory. @@ -228,13 +226,11 @@ One can check this by looking at the size of entry’s data (it should be 0 the last character of entry’s name (it should be ‘/’). If all of these is true then entry is likely to be a directory.

-

Note

Only ZIP containers complying to ISO/IEC 21320-1 standard are supported.

-

Throws

ZipError or DeflateError depending on the type of inconsistency in data. @@ -291,14 +287,12 @@ It may indicate that either the container is damaged or it might not be ZIP cont

Returns data associated with provided ZipEntry.

-

Note

Returned Data object with the size of 0 can either indicate that the entry is an empty file or it is a directory.

-

Throws

ZipError or DeflateError depending on the type of inconsistency in data. @@ -356,7 +350,6 @@ An error can indicate that the container is damaged.

Processes ZIP archive (container) and returns an array of tuples (String, Data). First member of a tuple is entry’s name, second member is entry’s data.

-

Important

The order of entries is defined by ZIP archive and, particularly, creator of given ZIP container. @@ -364,7 +357,6 @@ It is likely that directories will be encountered earlier than files stored in t but one SHOULD NOT assume that this is the case.

-

Note

Currently, there is no universal (platform and file system independent) method to determine if entry is a directory. @@ -372,13 +364,11 @@ One can check this by looking at the size of entry’s data (it should be 0 the last character of entry’s name (it should be ‘/’). If all of these is true then entry is likely to be a directory.

-

Note

Only ZIP containers complying to ISO/IEC 21320-1 standard are supported.

-

Throws

ZipError or DeflateError depending on the type of inconsistency in data. @@ -435,7 +425,7 @@ It may indicate that either the container is damaged or it might not be ZIP cont

diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/ZlibArchive.html b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/ZlibArchive.html index 24b6533a..31976524 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/ZlibArchive.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Classes/ZlibArchive.html @@ -185,13 +185,11 @@

If data passed is not actually a zlib archive, ZlibError will be thrown.

If data inside the archive is not actually compressed with DEFLATE algorithm, DeflateError will be thrown.

-

Note

This function is specification compliant.

-

Throws

DeflateError or ZlibError depending on the type of inconsistency in data. @@ -256,13 +254,11 @@ It may indicate that either the data is damaged or it might not be compressed wi It will be specified in archive’s header that the compressor used slowest DEFLATE algorithm.

If during compression something goes wrong DeflateError will be thrown.

-

Note

This function is specification compliant.

-

Throws

DeflateError if an error was encountered during compression.

@@ -318,7 +314,7 @@ It will be specified in archive’s header that the compressor used slowest
diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums.html b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums.html index fddc52af..8197c768 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums.html @@ -542,7 +542,7 @@ Associated value contains already decompressed data.
diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/BZip2Error.html b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/BZip2Error.html index e73e31b0..66c7c342 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/BZip2Error.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/BZip2Error.html @@ -491,7 +491,7 @@ It may indicate that either the data is damaged or it might not be compressed wi
diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/DeflateError.html b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/DeflateError.html index cefd3f8f..61ac45e6 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/DeflateError.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/DeflateError.html @@ -316,7 +316,7 @@ It may indicate that either the data is damaged or it might not be compressed wi diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/GzipError.html b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/GzipError.html index cfd4b1ae..3ef9f7c0 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/GzipError.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/GzipError.html @@ -389,7 +389,7 @@ Associated value contains already decompressed data.

diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/LZMA2Error.html b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/LZMA2Error.html index 412a195c..065a19f3 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/LZMA2Error.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/LZMA2Error.html @@ -352,7 +352,7 @@ amount of compressed data read was different from the one stored in LZMA2 packet diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/LZMAError.html b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/LZMAError.html index dbaf4db5..98354d8c 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/LZMAError.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/LZMAError.html @@ -424,7 +424,7 @@ than the repeat length. diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/XZError.html b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/XZError.html index e116b0af..93be1260 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/XZError.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/XZError.html @@ -530,7 +530,7 @@ Associated value contains already decompressed data.

diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/ZipError.html b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/ZipError.html index 87325d62..40111133 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/ZipError.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/ZipError.html @@ -527,7 +527,7 @@ It may indicate that either the data is damaged or it might not be ZIP archive ( diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/ZlibError.html b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/ZlibError.html index 03b6f299..75630825 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/ZlibError.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Enums/ZlibError.html @@ -353,7 +353,7 @@ Associated value contains already decompressed data.

diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Protocols.html b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Protocols.html index 04c23eb8..6ffccfd9 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Protocols.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Protocols.html @@ -231,7 +231,7 @@ diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Protocols/Archive.html b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Protocols/Archive.html index 4054057f..46110cdf 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Protocols/Archive.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Protocols/Archive.html @@ -206,7 +206,7 @@ diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Protocols/DecompressionAlgorithm.html b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Protocols/DecompressionAlgorithm.html index a19a8711..2f0fcecf 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Protocols/DecompressionAlgorithm.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Protocols/DecompressionAlgorithm.html @@ -206,7 +206,7 @@ diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs.html b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs.html index be767b6d..9cdd6eaa 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs.html @@ -270,7 +270,7 @@ diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs/GzipHeader.html b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs/GzipHeader.html index 5e5a8b9c..35889f32 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs/GzipHeader.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs/GzipHeader.html @@ -406,7 +406,6 @@

Initializes the structure with the values of first ‘member’ in gzip archive presented in archiveData.

If data passed is not actually a gzip archive, GzipError will be thrown.

-

Throws

GzipError. It may indicate that either the data is damaged or @@ -458,7 +457,7 @@ it might not be compressed with gzip at all.

diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs/GzipHeader/CompressionMethod.html b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs/GzipHeader/CompressionMethod.html index 3879855f..3016c2c0 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs/GzipHeader/CompressionMethod.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs/GzipHeader/CompressionMethod.html @@ -206,7 +206,7 @@ diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs/GzipHeader/FileSystemType.html b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs/GzipHeader/FileSystemType.html index 92ede20c..5f731f1b 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs/GzipHeader/FileSystemType.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs/GzipHeader/FileSystemType.html @@ -342,7 +342,7 @@ diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs/ZipEntry.html b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs/ZipEntry.html index ad8636ed..6a4eb919 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs/ZipEntry.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs/ZipEntry.html @@ -266,7 +266,7 @@ diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs/ZlibHeader.html b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs/ZlibHeader.html index cf510324..27ae0edc 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs/ZlibHeader.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs/ZlibHeader.html @@ -335,7 +335,6 @@

Initializes the structure with the values from zlib archive presented in archiveData.

If data passed is not actually a zlib archive, ZlibError will be thrown.

-

Throws

ZlibError. It may indicate that either the data is damaged or @@ -387,7 +386,7 @@ it might not be compressed with zlib at all.

diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs/ZlibHeader/CompressionLevel.html b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs/ZlibHeader/CompressionLevel.html index 15a82d40..8c6e8fbc 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs/ZlibHeader/CompressionLevel.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs/ZlibHeader/CompressionLevel.html @@ -308,7 +308,7 @@ diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs/ZlibHeader/CompressionMethod.html b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs/ZlibHeader/CompressionMethod.html index 82996c2d..8a2bb3d7 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs/ZlibHeader/CompressionMethod.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/Structs/ZlibHeader/CompressionMethod.html @@ -206,7 +206,7 @@ diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/index.html b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/index.html index ce7d301e..5061fe7f 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/index.html +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/index.html @@ -151,9 +151,9 @@
-

SWCompression

+

SWCompression

-

GitHub license CocoaPods Swift 3 +

GitHub license CocoaPods Swift 3 Build Status codecov

CocoaPods @@ -162,7 +162,7 @@

A framework which contains implementations of (de)compression algorithms.

Developed with Swift.

-

Why have you made this framework?

+

Why have you made this framework?

There are a couple of reasons for this.

@@ -176,7 +176,7 @@ that framework has a bit complicated API and somewhat questionable choice of sup And yes, it is also in Objective-C.

And here comes SWCompression: no Objective-C, pure Swift.

-

Features

+

Features

  • Containers: @@ -208,10 +208,10 @@ And yes, it is also in Objective-C.

By the way, it seems like GZip, Deflate and Zlib implementations are specification compliant.

-

Installation

+

Installation

SWCompression can be integrated into your project either using CocoaPods, Carthage or Swift Package Manager.

-
CocoaPods
+
CocoaPods

Add to your Podfile pod 'SWCompression'.

@@ -234,14 +234,14 @@ Available subspecs:

To complete installation, run pod install.

Note: Actually, there is one more subspec (SWCompression/Common) but it does not contain any end-user functions. It is included in every other subspec and should not be specified directly in Podfile.

-
Carthage
+
Carthage

Add to your Cartfile github "tsolomko/SWCompression".

Then run carthage update.

Finally, drag and drop SWCompression.framework from Carthage/Build folder into the Embedded Binaries section on your targets’ General tab.

-
Swift Package Manager
+
Swift Package Manager

Add to you package dependecies .Package(url: "https://github.com/tsolomko/SWCompression.git"), for example like this:

import PackageDescription
@@ -255,8 +255,8 @@ Available subspecs:

More info about SPM you can find at Swift Package Manager’s Documentation.

-

Usage

-

Basics

+

Usage

+

Basics

If you’d like to decompress deflated data just use:

let data = try! Data(contentsOf: URL(fileURLWithPath: "path/to/file"),
@@ -275,11 +275,11 @@ So, in case of GZip archive you should use:

One final note: every unarchive/decompress function can throw an error and you are responsible for handling them.

-

Documentation

+

Documentation

Every function or class of public API of SWCompression is documented. This documentation can be found at its own website.

-

Handling Errors

+

Handling Errors

If you look at list of available error types and their cases, you may be frightened by their number. @@ -297,11 +297,11 @@ For example:

<handle all other errors here> }
-

Sophisticated example

+

Sophisticated example

There is a small program, swcomp, which uses SWCompression for unarchiving several types of archives.

-

Why is it so slow?

+

Why is it so slow?

Version 2.0 came with a great performance improvement. Just look at the test results in ‘Tests/Test Result’. @@ -316,14 +316,14 @@ You can once again check test results if you want to convince yourself that this so some difference in speed is expected.

To sum up, it is highly recommended to build SWCompression with ‘Release’ configuration and use the latest version (at least 2.0).

-

Future plans

+

Future plans

  • Tar unarchiving.
  • BZip2 compression.
  • Something else…
-

References

+

References

  • pyflate
  • @@ -346,7 +346,7 @@ so some difference in speed is expected.

diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/search.json b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/search.json index cc901253..0ffc137c 100644 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/search.json +++ b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/search.json @@ -1 +1 @@ -{"Structs/ZlibHeader/CompressionLevel.html#/s:FOV13SWCompression10ZlibHeader16CompressionLevel16fastestAlgorithmFMS1_S1_":{"name":"fastestAlgorithm","abstract":"

Fastest algorithm.

","parent_name":"CompressionLevel"},"Structs/ZlibHeader/CompressionLevel.html#/s:FOV13SWCompression10ZlibHeader16CompressionLevel13fastAlgorithmFMS1_S1_":{"name":"fastAlgorithm","abstract":"

Fast algorithm.

","parent_name":"CompressionLevel"},"Structs/ZlibHeader/CompressionLevel.html#/s:FOV13SWCompression10ZlibHeader16CompressionLevel16defaultAlgorithmFMS1_S1_":{"name":"defaultAlgorithm","abstract":"

Default algorithm.

","parent_name":"CompressionLevel"},"Structs/ZlibHeader/CompressionLevel.html#/s:FOV13SWCompression10ZlibHeader16CompressionLevel13slowAlgorithmFMS1_S1_":{"name":"slowAlgorithm","abstract":"

Slowest algorithm but with maximum compression.

","parent_name":"CompressionLevel"},"Structs/ZlibHeader/CompressionMethod.html#/s:FOV13SWCompression10ZlibHeader17CompressionMethod7deflateFMS1_S1_":{"name":"deflate","abstract":"

The only one supported compression method (Deflate).

","parent_name":"CompressionMethod"},"Structs/ZlibHeader/CompressionMethod.html":{"name":"CompressionMethod","abstract":"

Supported compression methods in zlib archive.

","parent_name":"ZlibHeader"},"Structs/ZlibHeader/CompressionLevel.html":{"name":"CompressionLevel","abstract":"

Levels of compression which can be used to create zlib archive.

","parent_name":"ZlibHeader"},"Structs/ZlibHeader.html#/s:vV13SWCompression10ZlibHeader17compressionMethodOS0_17CompressionMethod":{"name":"compressionMethod","abstract":"

Compression method of archive. Always equals to .deflate.

","parent_name":"ZlibHeader"},"Structs/ZlibHeader.html#/s:vV13SWCompression10ZlibHeader16compressionLevelOS0_16CompressionLevel":{"name":"compressionLevel","abstract":"

Level of compression in the archive.

","parent_name":"ZlibHeader"},"Structs/ZlibHeader.html#/s:vV13SWCompression10ZlibHeader10windowSizeSi":{"name":"windowSize","abstract":"

Size of ‘window’: moving interval of data which was used to make the archive

","parent_name":"ZlibHeader"},"Structs/ZlibHeader.html#/s:FV13SWCompression10ZlibHeadercFzT11archiveDataV10Foundation4Data_S0_":{"name":"init(archiveData:)","abstract":"

Initializes the structure with the values from zlib archive presented in archiveData.

","parent_name":"ZlibHeader"},"Structs/ZipEntry.html#/s:vV13SWCompression8ZipEntry8fileNameGSqSS_":{"name":"fileName","abstract":"

Name of the file or directory.

","parent_name":"ZipEntry"},"Structs/ZipEntry.html#/s:vV13SWCompression8ZipEntry11fileCommentGSqSS_":{"name":"fileComment","abstract":"

Comment associated with the entry.

","parent_name":"ZipEntry"},"Structs/ZipEntry.html#/s:vV13SWCompression8ZipEntry14fileAttributesVs6UInt32":{"name":"fileAttributes","abstract":"

File or directory attributes related to the file system of archive’s creator.

","parent_name":"ZipEntry"},"Structs/GzipHeader/FileSystemType.html#/s:FOV13SWCompression10GzipHeader14FileSystemType4unixFMS1_S1_":{"name":"unix","abstract":"

One of many Linux systems. (It seems like modern macOS systems also fall into this category).

","parent_name":"FileSystemType"},"Structs/GzipHeader/FileSystemType.html#/s:FOV13SWCompression10GzipHeader14FileSystemType9macintoshFMS1_S1_":{"name":"macintosh","abstract":"

Older Macintosh (Mac OS, OS X) systems.

","parent_name":"FileSystemType"},"Structs/GzipHeader/FileSystemType.html#/s:FOV13SWCompression10GzipHeader14FileSystemType4ntfsFMS1_S1_":{"name":"ntfs","abstract":"

File system used in Microsoft™®© Windows™®©.

","parent_name":"FileSystemType"},"Structs/GzipHeader/FileSystemType.html#/s:FOV13SWCompression10GzipHeader14FileSystemType7unknownFMS1_S1_":{"name":"unknown","abstract":"

File system was unknown to the archiver.

","parent_name":"FileSystemType"},"Structs/GzipHeader/FileSystemType.html#/s:FOV13SWCompression10GzipHeader14FileSystemType5otherFMS1_S1_":{"name":"other","abstract":"

File system was one of the rare systems..

","parent_name":"FileSystemType"},"Structs/GzipHeader/CompressionMethod.html#/s:FOV13SWCompression10GzipHeader17CompressionMethod7deflateFMS1_S1_":{"name":"deflate","abstract":"

The only one supported compression method (Deflate).

","parent_name":"CompressionMethod"},"Structs/GzipHeader/CompressionMethod.html":{"name":"CompressionMethod","abstract":"

Supported compression methods in gzip archive.

","parent_name":"GzipHeader"},"Structs/GzipHeader/FileSystemType.html":{"name":"FileSystemType","abstract":"

Type of file system on which gzip archive was created.

","parent_name":"GzipHeader"},"Structs/GzipHeader.html#/s:vV13SWCompression10GzipHeader17compressionMethodOS0_17CompressionMethod":{"name":"compressionMethod","abstract":"

Compression method of archive. Always equals to .deflate.

","parent_name":"GzipHeader"},"Structs/GzipHeader.html#/s:vV13SWCompression10GzipHeader16modificationTimeV10Foundation4Date":{"name":"modificationTime","abstract":"

The most recent modification time of the original file.

","parent_name":"GzipHeader"},"Structs/GzipHeader.html#/s:vV13SWCompression10GzipHeader6osTypeOS0_14FileSystemType":{"name":"osType","abstract":"

Type of file system on which compression took place.

","parent_name":"GzipHeader"},"Structs/GzipHeader.html#/s:vV13SWCompression10GzipHeader16originalFileNameGSqSS_":{"name":"originalFileName","abstract":"

Name of the original file.

","parent_name":"GzipHeader"},"Structs/GzipHeader.html#/s:vV13SWCompression10GzipHeader7commentGSqSS_":{"name":"comment","abstract":"

Comment inside the archive.

","parent_name":"GzipHeader"},"Structs/GzipHeader.html#/s:FV13SWCompression10GzipHeadercFzT11archiveDataV10Foundation4Data_S0_":{"name":"init(archiveData:)","abstract":"

Initializes the structure with the values of first ‘member’ in gzip archive presented in archiveData.

","parent_name":"GzipHeader"},"Structs/GzipHeader.html":{"name":"GzipHeader","abstract":"

A structure which provides information about gzip archive.

"},"Structs/ZipEntry.html":{"name":"ZipEntry","abstract":"

Represents either a file or directory entry inside ZIP archive.

"},"Structs/ZlibHeader.html":{"name":"ZlibHeader","abstract":"

A structure which provides information about zlib archive.

"},"Protocols/DecompressionAlgorithm.html#/s:ZFP13SWCompression22DecompressionAlgorithm10decompressFzT14compressedDataV10Foundation4Data_S2_":{"name":"decompress(compressedData:)","abstract":"

Abstract decompress function.

","parent_name":"DecompressionAlgorithm"},"Protocols/Archive.html#/s:ZFP13SWCompression7Archive9unarchiveFzT11archiveDataV10Foundation4Data_S2_":{"name":"unarchive(archiveData:)","abstract":"

Abstract unarchive function.

","parent_name":"Archive"},"Protocols/Archive.html":{"name":"Archive","abstract":"

Abstract archive class which supports unarchiving.

"},"Protocols/DecompressionAlgorithm.html":{"name":"DecompressionAlgorithm","abstract":"

Abstract decompression algorithm class which supports decompression.

"},"Enums/XZError.html#/s:FO13SWCompression7XZError10WrongMagicFMS0_S0_":{"name":"WrongMagic","abstract":"

Either magic number in header or footer was not equal to predefined value.

","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError16WrongArchiveInfoFMS0_S0_":{"name":"WrongArchiveInfo","abstract":"

One of special fields of archive had an incorrect value.

","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError18FieldReservedValueFMS0_S0_":{"name":"FieldReservedValue","abstract":"

One of special fields of archive had a reserved value.

","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError12WrongInfoCRCFMS0_S0_":{"name":"WrongInfoCRC","abstract":"

Checksum of one of special fields of archive was incorrect.

","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError13WrongFilterIDFMS0_S0_":{"name":"WrongFilterID","abstract":"

ID of filter(s) used in archvie was unsupported.

","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError15CheckTypeSHA256FMS0_S0_":{"name":"CheckTypeSHA256","abstract":"

Type of checksum of archive was SHA-256.

","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError13WrongDataSizeFMS0_S0_":{"name":"WrongDataSize","abstract":"

Either size of decompressed data was not equal to specified one in block header or","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError10WrongCheckFMS0_FV10Foundation4DataS0_":{"name":"WrongCheck","abstract":"

Computed checksum of uncompressed data didn’t match the value stored in the archive.","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError12WrongPaddingFMS0_S0_":{"name":"WrongPadding","abstract":"

Unsupported padding of a structure in the archive.

","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError21MultiByteIntegerErrorFMS0_S0_":{"name":"MultiByteIntegerError","abstract":"

Either null byte encountered or exceeded maximum amount bytes during reading multi byte number.

","parent_name":"XZError"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error10WrongMagicFMS0_S0_":{"name":"WrongMagic","abstract":"

Magic number was not 0x425a.

","parent_name":"BZip2Error"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error22WrongCompressionMethodFMS0_S0_":{"name":"WrongCompressionMethod","abstract":"

Compression method was not type ‘h’ (not Huffman).

","parent_name":"BZip2Error"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error14WrongBlockSizeFMS0_S0_":{"name":"WrongBlockSize","abstract":"

Unknown block size (not from ‘0’ to ‘9’).

","parent_name":"BZip2Error"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error14WrongBlockTypeFMS0_S0_":{"name":"WrongBlockType","abstract":"

Unknown block type (was neither ‘pi’ nor ‘sqrt(pi)’).

","parent_name":"BZip2Error"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error15RandomizedBlockFMS0_S0_":{"name":"RandomizedBlock","abstract":"

Block is randomized.

","parent_name":"BZip2Error"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error18WrongHuffmanGroupsFMS0_S0_":{"name":"WrongHuffmanGroups","abstract":"

Wrong number of Huffman tables/groups (should be between 2 and 6).

","parent_name":"BZip2Error"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error13WrongSelectorFMS0_S0_":{"name":"WrongSelector","abstract":"

Selector was greater than total number of Huffman tables/groups.

","parent_name":"BZip2Error"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error22WrongHuffmanLengthCodeFMS0_S0_":{"name":"WrongHuffmanLengthCode","abstract":"

Wrong code of Huffman length (should be between 0 and 20).

","parent_name":"BZip2Error"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error14SymbolNotFoundFMS0_S0_":{"name":"SymbolNotFound","abstract":"

Symbol was not found in Huffman tree.

","parent_name":"BZip2Error"},"Enums/DeflateError.html#/s:FO13SWCompression12DeflateError29WrongUncompressedBlockLengthsFMS0_S0_":{"name":"WrongUncompressedBlockLengths","abstract":"

Uncompressed block’ length and nlength bytes were not compatible.

","parent_name":"DeflateError"},"Enums/DeflateError.html#/s:FO13SWCompression12DeflateError14WrongBlockTypeFMS0_S0_":{"name":"WrongBlockType","abstract":"

Unknown block type (not from 0 to 2).

","parent_name":"DeflateError"},"Enums/DeflateError.html#/s:FO13SWCompression12DeflateError11WrongSymbolFMS0_S0_":{"name":"WrongSymbol","abstract":"

Decoded symbol was found in Huffman tree but is unknown.

","parent_name":"DeflateError"},"Enums/DeflateError.html#/s:FO13SWCompression12DeflateError14SymbolNotFoundFMS0_S0_":{"name":"SymbolNotFound","abstract":"

Symbol was not found in Huffman tree.

","parent_name":"DeflateError"},"Enums/ZlibError.html#/s:FO13SWCompression9ZlibError22WrongCompressionMethodFMS0_S0_":{"name":"WrongCompressionMethod","abstract":"

Compression method was other than 8 which is the only supported one.

","parent_name":"ZlibError"},"Enums/ZlibError.html#/s:FO13SWCompression9ZlibError20WrongCompressionInfoFMS0_S0_":{"name":"WrongCompressionInfo","abstract":"

Compression info was greater than 7 which is uncompatible number 8 compression method.

","parent_name":"ZlibError"},"Enums/ZlibError.html#/s:FO13SWCompression9ZlibError11WrongFcheckFMS0_S0_":{"name":"WrongFcheck","abstract":"

First two bytes were inconsistent with each other.

","parent_name":"ZlibError"},"Enums/ZlibError.html#/s:FO13SWCompression9ZlibError21WrongCompressionLevelFMS0_S0_":{"name":"WrongCompressionLevel","abstract":"

Compression level was other than 0, 1, 2, 3.

","parent_name":"ZlibError"},"Enums/ZlibError.html#/s:FO13SWCompression9ZlibError12WrongAdler32FMS0_FV10Foundation4DataS0_":{"name":"WrongAdler32","abstract":"

Computed Adler-32 sum of uncompressed data didn’t match the value stored in the archive.","parent_name":"ZlibError"},"Enums/LZMAError.html#/s:FO13SWCompression9LZMAError15WrongPropertiesFMS0_S0_":{"name":"WrongProperties","abstract":"

Properties byte was greater than 225.

","parent_name":"LZMAError"},"Enums/LZMAError.html#/s:FO13SWCompression9LZMAError21RangeDecoderInitErrorFMS0_S0_":{"name":"RangeDecoderInitError","abstract":"

Unable to initialize RanderDecorer.

","parent_name":"LZMAError"},"Enums/LZMAError.html#/s:FO13SWCompression9LZMAError24ExceededUncompressedSizeFMS0_S0_":{"name":"ExceededUncompressedSize","abstract":"

The number of uncompressed bytes hit limit in the middle of decoding.

","parent_name":"LZMAError"},"Enums/LZMAError.html#/s:FO13SWCompression9LZMAError13WindowIsEmptyFMS0_S0_":{"name":"WindowIsEmpty","abstract":"

Unable to perfrom repeat-distance decoding because there is nothing to repeat.

","parent_name":"LZMAError"},"Enums/LZMAError.html#/s:FO13SWCompression9LZMAError23RangeDecoderFinishErrorFMS0_S0_":{"name":"RangeDecoderFinishError","abstract":"

End of stream marker is reached, but range decoder is in incorrect state.

","parent_name":"LZMAError"},"Enums/LZMAError.html#/s:FO13SWCompression9LZMAError16RepeatWillExceedFMS0_S0_":{"name":"RepeatWillExceed","abstract":"

The number of bytes to repeat is greater than the amount bytes that is left to decode.

","parent_name":"LZMAError"},"Enums/LZMAError.html#/s:FO13SWCompression9LZMAError17NotEnoughToRepeatFMS0_S0_":{"name":"NotEnoughToRepeat","abstract":"

The amount of already decoded bytes is smaller than repeat length.

","parent_name":"LZMAError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError27NotFoundCentralDirectoryEndFMS0_S0_":{"name":"NotFoundCentralDirectoryEnd","abstract":"

End of Central Directoty record was not found.

","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError14WrongSignatureFMS0_S0_":{"name":"WrongSignature","abstract":"

Wrong signature of one of ZIP container’s structures.

","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError9WrongSizeFMS0_S0_":{"name":"WrongSize","abstract":"

Wrong either compressed or uncompressed size of a ZIP container’s entry.

","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError12WrongVersionFMS0_S0_":{"name":"WrongVersion","abstract":"

Wrong number of version needed to extract ZIP container.

","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError24MultiVolumesNotSupportedFMS0_S0_":{"name":"MultiVolumesNotSupported","abstract":"

Archive either spanned or consists of several volumes. This feature is not supported.

","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError22EncryptionNotSupportedFMS0_S0_":{"name":"EncryptionNotSupported","abstract":"

Entry or record is encrypted. This feature is not supported.

","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError20PatchingNotSupportedFMS0_S0_":{"name":"PatchingNotSupported","abstract":"

Entry contains patched data. This feature is not supported.

","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError23CompressionNotSupportedFMS0_S0_":{"name":"CompressionNotSupported","abstract":"

Wrong compression method of an entry.

","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError16WrongLocalHeaderFMS0_S0_":{"name":"WrongLocalHeader","abstract":"

Wrong local header of an entry.

","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError10WrongCRC32FMS0_S0_":{"name":"WrongCRC32","abstract":"

Wrong computed CRC32 of an entry.

","parent_name":"ZipError"},"Enums/GzipError.html#/s:FO13SWCompression9GzipError10WrongMagicFMS0_S0_":{"name":"WrongMagic","abstract":"

First two bytes of archive were not 31 and 139.

","parent_name":"GzipError"},"Enums/GzipError.html#/s:FO13SWCompression9GzipError22WrongCompressionMethodFMS0_S0_":{"name":"WrongCompressionMethod","abstract":"

Compression method was other than 8 which is the only supported one.

","parent_name":"GzipError"},"Enums/GzipError.html#/s:FO13SWCompression9GzipError10WrongFlagsFMS0_S0_":{"name":"WrongFlags","abstract":"

Reserved flags bits were not equal to 0.

","parent_name":"GzipError"},"Enums/GzipError.html#/s:FO13SWCompression9GzipError14WrongHeaderCRCFMS0_S0_":{"name":"WrongHeaderCRC","abstract":"

Computed CRC of header didn’t match the value stored in the archive.

","parent_name":"GzipError"},"Enums/GzipError.html#/s:FO13SWCompression9GzipError8WrongCRCFMS0_FV10Foundation4DataS0_":{"name":"WrongCRC","abstract":"

Computed CRC of uncompressed data didn’t match the value stored in the archive.","parent_name":"GzipError"},"Enums/GzipError.html#/s:FO13SWCompression9GzipError10WrongISizeFMS0_S0_":{"name":"WrongISize","abstract":"

Computed isize didn’t match the value stored in the archive.

","parent_name":"GzipError"},"Enums/LZMA2Error.html#/s:FO13SWCompression10LZMA2Error15WrongPropertiesFMS0_S0_":{"name":"WrongProperties","abstract":"

Reserved bits of LZMA2 properties byte were not equal to zero.

","parent_name":"LZMA2Error"},"Enums/LZMA2Error.html#/s:FO13SWCompression10LZMA2Error19WrongDictionarySizeFMS0_S0_":{"name":"WrongDictionarySize","abstract":"

Dictionary size was too big.

","parent_name":"LZMA2Error"},"Enums/LZMA2Error.html#/s:FO13SWCompression10LZMA2Error16WrongControlByteFMS0_S0_":{"name":"WrongControlByte","abstract":"

Unknown conrol byte value of LZMA2 packet.

","parent_name":"LZMA2Error"},"Enums/LZMA2Error.html#/s:FO13SWCompression10LZMA2Error10WrongResetFMS0_S0_":{"name":"WrongReset","abstract":"

Unknown reset instruction encounetered in LZMA2 packet.

","parent_name":"LZMA2Error"},"Enums/LZMA2Error.html#/s:FO13SWCompression10LZMA2Error10WrongSizesFMS0_S0_":{"name":"WrongSizes","abstract":"

Either size of decompressed data was not equal to specified one in LZMA2 packet or","parent_name":"LZMA2Error"},"Enums/LZMA2Error.html":{"name":"LZMA2Error","abstract":"

Error happened during LZMA2 decompression."},"Enums/GzipError.html":{"name":"GzipError","abstract":"

Error happened during unarchiving gzip archive."},"Enums/ZipError.html":{"name":"ZipError","abstract":"

Error happened during processing ZIP archive (container)."},"Enums/LZMAError.html":{"name":"LZMAError","abstract":"

Error happened during LZMA decompression."},"Enums/ZlibError.html":{"name":"ZlibError","abstract":"

Error happened during unarchiving Zlib archive."},"Enums/DeflateError.html":{"name":"DeflateError","abstract":"

Error happened during deflate decompression."},"Enums/BZip2Error.html":{"name":"BZip2Error","abstract":"

Error happened during bzip2 decompression."},"Enums/XZError.html":{"name":"XZError","abstract":"

Error happened during unarchiving XZ archive."},"Classes/XZArchive.html#/s:ZFC13SWCompression9XZArchive9unarchiveFzT11archiveDataV10Foundation4Data_S2_":{"name":"unarchive(archiveData:)","abstract":"

Unarchives xz archive stored in archiveData.

","parent_name":"XZArchive"},"Classes/BZip2.html#/s:ZFC13SWCompression5BZip210decompressFzT14compressedDataV10Foundation4Data_S2_":{"name":"decompress(compressedData:)","abstract":"

Decompresses compressedData with BZip2 algortihm.

","parent_name":"BZip2"},"Classes/Deflate.html#/s:ZFC13SWCompression7Deflate10decompressFzT14compressedDataV10Foundation4Data_S2_":{"name":"decompress(compressedData:)","abstract":"

Decompresses compressedData with DEFLATE algortihm.

","parent_name":"Deflate"},"Classes/Deflate.html#/s:ZFC13SWCompression7Deflate8compressFzT4dataV10Foundation4Data_S2_":{"name":"compress(data:)","abstract":"

Compresses data with DEFLATE algortihm.

","parent_name":"Deflate"},"Classes/ZlibArchive.html#/s:ZFC13SWCompression11ZlibArchive9unarchiveFzT11archiveDataV10Foundation4Data_S2_":{"name":"unarchive(archiveData:)","abstract":"

Unarchives Zlib archive stored in archiveData.

","parent_name":"ZlibArchive"},"Classes/ZlibArchive.html#/s:ZFC13SWCompression11ZlibArchive7archiveFzT4dataV10Foundation4Data_S2_":{"name":"archive(data:)","abstract":"

Archives data into Zlib archive. Data will be also compressed with DEFLTATE algorithm.","parent_name":"ZlibArchive"},"Classes/LZMA.html#/s:ZFC13SWCompression4LZMA10decompressFzT14compressedDataV10Foundation4Data_S2_":{"name":"decompress(compressedData:)","abstract":"

Decompresses compressedData with LZMA algortihm.

","parent_name":"LZMA"},"Classes/ZipContainer.html#/s:vC13SWCompression12ZipContainer7entriesGSaVS_8ZipEntry_":{"name":"entries","abstract":"

All file and directory entries found in ZIP archive (in its Central Directory).

","parent_name":"ZipContainer"},"Classes/ZipContainer.html#/s:FC13SWCompression12ZipContainercFzT13containerDataV10Foundation4Data_S0_":{"name":"init(containerData:)","abstract":"

Tries to open ZIP archive and parse its Central Directory.","parent_name":"ZipContainer"},"Classes/ZipContainer.html#/s:FC13SWCompression12ZipContainer4dataFzT3forVS_8ZipEntry_V10Foundation4Data":{"name":"data(for:)","abstract":"

Returns data associated with provided ZipEntry.

","parent_name":"ZipContainer"},"Classes/ZipContainer.html#/s:ZFC13SWCompression12ZipContainer4openFzT13containerDataV10Foundation4Data_GSaT9entryNameSS9entryDataS2___":{"name":"open(containerData:)","abstract":"

Processes ZIP archive (container) and returns an array of tuples (String, Data).","parent_name":"ZipContainer"},"Classes/GzipArchive.html#/s:ZFC13SWCompression11GzipArchive9unarchiveFzT11archiveDataV10Foundation4Data_S2_":{"name":"unarchive(archiveData:)","abstract":"

Unarchives gzip archive stored in archiveData.

","parent_name":"GzipArchive"},"Classes/GzipArchive.html#/s:ZFC13SWCompression11GzipArchive7archiveFzT4dataV10Foundation4Data_S2_":{"name":"archive(data:)","abstract":"

Archives data into GZip archive. Data will be also compressed with DEFLTATE algorithm.","parent_name":"GzipArchive"},"Classes/LZMA2.html#/s:ZFC13SWCompression5LZMA210decompressFzT14compressedDataV10Foundation4Data_S2_":{"name":"decompress(compressedData:)","abstract":"

Decompresses compressedData with LZMA2 algortihm. LZMA2 is a modification of LZMA.

","parent_name":"LZMA2"},"Classes/LZMA2.html":{"name":"LZMA2","abstract":"

Provides function to decompress data, which were compressed with LZMA2

"},"Classes/GzipArchive.html":{"name":"GzipArchive","abstract":"

Provides unarchive function for GZip archives.

"},"Classes/ZipContainer.html":{"name":"ZipContainer","abstract":"

Provides function to open ZIP archives (containers).

"},"Classes/LZMA.html":{"name":"LZMA","abstract":"

Provides function to decompress data, which were compressed with LZMA

"},"Classes/ZlibArchive.html":{"name":"ZlibArchive","abstract":"

Provides unarchive function for Zlib archives.

"},"Classes/Deflate.html":{"name":"Deflate","abstract":"

Provides function to decompress data, which were compressed with DEFLATE.

"},"Classes/BZip2.html":{"name":"BZip2","abstract":"

Provides function to decompress data, which were compressed using BZip2.

"},"Classes/XZArchive.html":{"name":"XZArchive","abstract":"

Provides unarchive function for XZ archives.

"},"Classes.html":{"name":"Classes","abstract":"The following classes are available globally."},"Enums.html":{"name":"Enums","abstract":"The following enums are available globally."},"Protocols.html":{"name":"Protocols","abstract":"The following protocols are available globally."},"Structs.html":{"name":"Structs","abstract":"The following structs are available globally."}} \ No newline at end of file +{"Structs/ZlibHeader/CompressionLevel.html#/s:FOV13SWCompression10ZlibHeader16CompressionLevel16fastestAlgorithmFMS1_S1_":{"name":"fastestAlgorithm","abstract":"

Fastest algorithm.

","parent_name":"CompressionLevel"},"Structs/ZlibHeader/CompressionLevel.html#/s:FOV13SWCompression10ZlibHeader16CompressionLevel13fastAlgorithmFMS1_S1_":{"name":"fastAlgorithm","abstract":"

Fast algorithm.

","parent_name":"CompressionLevel"},"Structs/ZlibHeader/CompressionLevel.html#/s:FOV13SWCompression10ZlibHeader16CompressionLevel16defaultAlgorithmFMS1_S1_":{"name":"defaultAlgorithm","abstract":"

Default algorithm.

","parent_name":"CompressionLevel"},"Structs/ZlibHeader/CompressionLevel.html#/s:FOV13SWCompression10ZlibHeader16CompressionLevel13slowAlgorithmFMS1_S1_":{"name":"slowAlgorithm","abstract":"

Slowest algorithm but with maximum compression.

","parent_name":"CompressionLevel"},"Structs/ZlibHeader/CompressionMethod.html#/s:FOV13SWCompression10ZlibHeader17CompressionMethod7deflateFMS1_S1_":{"name":"deflate","abstract":"

The only one supported compression method (Deflate).

","parent_name":"CompressionMethod"},"Structs/ZlibHeader/CompressionMethod.html":{"name":"CompressionMethod","abstract":"

Supported compression methods in zlib archive.

","parent_name":"ZlibHeader"},"Structs/ZlibHeader/CompressionLevel.html":{"name":"CompressionLevel","abstract":"

Levels of compression which can be used to create zlib archive.

","parent_name":"ZlibHeader"},"Structs/ZlibHeader.html#/s:vV13SWCompression10ZlibHeader17compressionMethodOS0_17CompressionMethod":{"name":"compressionMethod","abstract":"

Compression method of archive. Always equals to .deflate.

","parent_name":"ZlibHeader"},"Structs/ZlibHeader.html#/s:vV13SWCompression10ZlibHeader16compressionLevelOS0_16CompressionLevel":{"name":"compressionLevel","abstract":"

Level of compression in the archive.

","parent_name":"ZlibHeader"},"Structs/ZlibHeader.html#/s:vV13SWCompression10ZlibHeader10windowSizeSi":{"name":"windowSize","abstract":"

Size of ‘window’: moving interval of data which was used to make the archive

","parent_name":"ZlibHeader"},"Structs/ZlibHeader.html#/s:FV13SWCompression10ZlibHeadercFzT11archiveDataV10Foundation4Data_S0_":{"name":"init(archiveData:)","abstract":"

Initializes the structure with the values from zlib archive presented in archiveData.

","parent_name":"ZlibHeader"},"Structs/ZipEntry.html#/s:vV13SWCompression8ZipEntry8fileNameGSqSS_":{"name":"fileName","abstract":"

Name of the file or directory.

","parent_name":"ZipEntry"},"Structs/ZipEntry.html#/s:vV13SWCompression8ZipEntry11fileCommentGSqSS_":{"name":"fileComment","abstract":"

Comment associated with the entry.

","parent_name":"ZipEntry"},"Structs/ZipEntry.html#/s:vV13SWCompression8ZipEntry14fileAttributesVs6UInt32":{"name":"fileAttributes","abstract":"

File or directory attributes related to the file system of archive’s creator.

","parent_name":"ZipEntry"},"Structs/GzipHeader/FileSystemType.html#/s:FOV13SWCompression10GzipHeader14FileSystemType4unixFMS1_S1_":{"name":"unix","abstract":"

One of many Linux systems. (It seems like modern macOS systems also fall into this category).

","parent_name":"FileSystemType"},"Structs/GzipHeader/FileSystemType.html#/s:FOV13SWCompression10GzipHeader14FileSystemType9macintoshFMS1_S1_":{"name":"macintosh","abstract":"

Older Macintosh (Mac OS, OS X) systems.

","parent_name":"FileSystemType"},"Structs/GzipHeader/FileSystemType.html#/s:FOV13SWCompression10GzipHeader14FileSystemType4ntfsFMS1_S1_":{"name":"ntfs","abstract":"

File system used in Microsoft™®© Windows™®©.

","parent_name":"FileSystemType"},"Structs/GzipHeader/FileSystemType.html#/s:FOV13SWCompression10GzipHeader14FileSystemType7unknownFMS1_S1_":{"name":"unknown","abstract":"

File system was unknown to the archiver.

","parent_name":"FileSystemType"},"Structs/GzipHeader/FileSystemType.html#/s:FOV13SWCompression10GzipHeader14FileSystemType5otherFMS1_S1_":{"name":"other","abstract":"

File system was one of the rare systems..

","parent_name":"FileSystemType"},"Structs/GzipHeader/CompressionMethod.html#/s:FOV13SWCompression10GzipHeader17CompressionMethod7deflateFMS1_S1_":{"name":"deflate","abstract":"

The only one supported compression method (Deflate).

","parent_name":"CompressionMethod"},"Structs/GzipHeader/CompressionMethod.html":{"name":"CompressionMethod","abstract":"

Supported compression methods in gzip archive.

","parent_name":"GzipHeader"},"Structs/GzipHeader/FileSystemType.html":{"name":"FileSystemType","abstract":"

Type of file system on which gzip archive was created.

","parent_name":"GzipHeader"},"Structs/GzipHeader.html#/s:vV13SWCompression10GzipHeader17compressionMethodOS0_17CompressionMethod":{"name":"compressionMethod","abstract":"

Compression method of archive. Always equals to .deflate.

","parent_name":"GzipHeader"},"Structs/GzipHeader.html#/s:vV13SWCompression10GzipHeader16modificationTimeV10Foundation4Date":{"name":"modificationTime","abstract":"

The most recent modification time of the original file.

","parent_name":"GzipHeader"},"Structs/GzipHeader.html#/s:vV13SWCompression10GzipHeader6osTypeOS0_14FileSystemType":{"name":"osType","abstract":"

Type of file system on which compression took place.

","parent_name":"GzipHeader"},"Structs/GzipHeader.html#/s:vV13SWCompression10GzipHeader16originalFileNameGSqSS_":{"name":"originalFileName","abstract":"

Name of the original file.

","parent_name":"GzipHeader"},"Structs/GzipHeader.html#/s:vV13SWCompression10GzipHeader7commentGSqSS_":{"name":"comment","abstract":"

Comment inside the archive.

","parent_name":"GzipHeader"},"Structs/GzipHeader.html#/s:FV13SWCompression10GzipHeadercFzT11archiveDataV10Foundation4Data_S0_":{"name":"init(archiveData:)","abstract":"

Initializes the structure with the values of first ‘member’ in gzip archive presented in archiveData.

","parent_name":"GzipHeader"},"Structs/GzipHeader.html":{"name":"GzipHeader","abstract":"

A structure which provides information about gzip archive.

"},"Structs/ZipEntry.html":{"name":"ZipEntry","abstract":"

Represents either a file or directory entry inside ZIP archive.

"},"Structs/ZlibHeader.html":{"name":"ZlibHeader","abstract":"

A structure which provides information about zlib archive.

"},"Protocols/DecompressionAlgorithm.html#/s:ZFP13SWCompression22DecompressionAlgorithm10decompressFzT14compressedDataV10Foundation4Data_S2_":{"name":"decompress(compressedData:)","abstract":"

Abstract decompress function.

","parent_name":"DecompressionAlgorithm"},"Protocols/Archive.html#/s:ZFP13SWCompression7Archive9unarchiveFzT11archiveDataV10Foundation4Data_S2_":{"name":"unarchive(archiveData:)","abstract":"

Abstract unarchive function.

","parent_name":"Archive"},"Protocols/Archive.html":{"name":"Archive","abstract":"

Abstract archive class which supports unarchiving.

"},"Protocols/DecompressionAlgorithm.html":{"name":"DecompressionAlgorithm","abstract":"

Abstract decompression algorithm class which supports decompression.

"},"Enums/XZError.html#/s:FO13SWCompression7XZError10WrongMagicFMS0_S0_":{"name":"WrongMagic","abstract":"

Either magic number in header or footer was not equal to predefined value.

","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError16WrongArchiveInfoFMS0_S0_":{"name":"WrongArchiveInfo","abstract":"

One of special fields of archive had an incorrect value.

","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError18FieldReservedValueFMS0_S0_":{"name":"FieldReservedValue","abstract":"

One of special fields of archive had a reserved value.

","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError12WrongInfoCRCFMS0_S0_":{"name":"WrongInfoCRC","abstract":"

Checksum of one of special fields of archive was incorrect.

","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError13WrongFilterIDFMS0_S0_":{"name":"WrongFilterID","abstract":"

ID of filter(s) used in archvie was unsupported.

","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError15CheckTypeSHA256FMS0_S0_":{"name":"CheckTypeSHA256","abstract":"

Type of checksum of archive was SHA-256.

","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError13WrongDataSizeFMS0_S0_":{"name":"WrongDataSize","abstract":"

Either size of decompressed data was not equal to specified one in block header or","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError10WrongCheckFMS0_FV10Foundation4DataS0_":{"name":"WrongCheck","abstract":"

Computed checksum of uncompressed data didn’t match the value stored in the archive.","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError12WrongPaddingFMS0_S0_":{"name":"WrongPadding","abstract":"

Unsupported padding of a structure in the archive.

","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError21MultiByteIntegerErrorFMS0_S0_":{"name":"MultiByteIntegerError","abstract":"

Either null byte encountered or exceeded maximum amount bytes during reading multi byte number.

","parent_name":"XZError"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error10WrongMagicFMS0_S0_":{"name":"WrongMagic","abstract":"

Magic number was not 0x425a.

","parent_name":"BZip2Error"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error22WrongCompressionMethodFMS0_S0_":{"name":"WrongCompressionMethod","abstract":"

Compression method was not type ‘h’ (not Huffman).

","parent_name":"BZip2Error"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error14WrongBlockSizeFMS0_S0_":{"name":"WrongBlockSize","abstract":"

Unknown block size (not from ‘0’ to ‘9’).

","parent_name":"BZip2Error"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error14WrongBlockTypeFMS0_S0_":{"name":"WrongBlockType","abstract":"

Unknown block type (was neither ‘pi’ nor ‘sqrt(pi)’).

","parent_name":"BZip2Error"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error15RandomizedBlockFMS0_S0_":{"name":"RandomizedBlock","abstract":"

Block is randomized.

","parent_name":"BZip2Error"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error18WrongHuffmanGroupsFMS0_S0_":{"name":"WrongHuffmanGroups","abstract":"

Wrong number of Huffman tables/groups (should be between 2 and 6).

","parent_name":"BZip2Error"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error13WrongSelectorFMS0_S0_":{"name":"WrongSelector","abstract":"

Selector was greater than total number of Huffman tables/groups.

","parent_name":"BZip2Error"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error22WrongHuffmanLengthCodeFMS0_S0_":{"name":"WrongHuffmanLengthCode","abstract":"

Wrong code of Huffman length (should be between 0 and 20).

","parent_name":"BZip2Error"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error14SymbolNotFoundFMS0_S0_":{"name":"SymbolNotFound","abstract":"

Symbol was not found in Huffman tree.

","parent_name":"BZip2Error"},"Enums/DeflateError.html#/s:FO13SWCompression12DeflateError29WrongUncompressedBlockLengthsFMS0_S0_":{"name":"WrongUncompressedBlockLengths","abstract":"

Uncompressed block’ length and nlength bytes were not compatible.

","parent_name":"DeflateError"},"Enums/DeflateError.html#/s:FO13SWCompression12DeflateError14WrongBlockTypeFMS0_S0_":{"name":"WrongBlockType","abstract":"

Unknown block type (not from 0 to 2).

","parent_name":"DeflateError"},"Enums/DeflateError.html#/s:FO13SWCompression12DeflateError11WrongSymbolFMS0_S0_":{"name":"WrongSymbol","abstract":"

Decoded symbol was found in Huffman tree but is unknown.

","parent_name":"DeflateError"},"Enums/DeflateError.html#/s:FO13SWCompression12DeflateError14SymbolNotFoundFMS0_S0_":{"name":"SymbolNotFound","abstract":"

Symbol was not found in Huffman tree.

","parent_name":"DeflateError"},"Enums/ZlibError.html#/s:FO13SWCompression9ZlibError22WrongCompressionMethodFMS0_S0_":{"name":"WrongCompressionMethod","abstract":"

Compression method was other than 8 which is the only supported one.

","parent_name":"ZlibError"},"Enums/ZlibError.html#/s:FO13SWCompression9ZlibError20WrongCompressionInfoFMS0_S0_":{"name":"WrongCompressionInfo","abstract":"

Compression info was greater than 7 which is uncompatible number 8 compression method.

","parent_name":"ZlibError"},"Enums/ZlibError.html#/s:FO13SWCompression9ZlibError11WrongFcheckFMS0_S0_":{"name":"WrongFcheck","abstract":"

First two bytes were inconsistent with each other.

","parent_name":"ZlibError"},"Enums/ZlibError.html#/s:FO13SWCompression9ZlibError21WrongCompressionLevelFMS0_S0_":{"name":"WrongCompressionLevel","abstract":"

Compression level was other than 0, 1, 2, 3.

","parent_name":"ZlibError"},"Enums/ZlibError.html#/s:FO13SWCompression9ZlibError12WrongAdler32FMS0_FV10Foundation4DataS0_":{"name":"WrongAdler32","abstract":"

Computed Adler-32 sum of uncompressed data didn’t match the value stored in the archive.","parent_name":"ZlibError"},"Enums/LZMAError.html#/s:FO13SWCompression9LZMAError15WrongPropertiesFMS0_S0_":{"name":"WrongProperties","abstract":"

Properties byte was greater than 225.

","parent_name":"LZMAError"},"Enums/LZMAError.html#/s:FO13SWCompression9LZMAError21RangeDecoderInitErrorFMS0_S0_":{"name":"RangeDecoderInitError","abstract":"

Unable to initialize RanderDecorer.

","parent_name":"LZMAError"},"Enums/LZMAError.html#/s:FO13SWCompression9LZMAError24ExceededUncompressedSizeFMS0_S0_":{"name":"ExceededUncompressedSize","abstract":"

The number of uncompressed bytes hit limit in the middle of decoding.

","parent_name":"LZMAError"},"Enums/LZMAError.html#/s:FO13SWCompression9LZMAError13WindowIsEmptyFMS0_S0_":{"name":"WindowIsEmpty","abstract":"

Unable to perfrom repeat-distance decoding because there is nothing to repeat.

","parent_name":"LZMAError"},"Enums/LZMAError.html#/s:FO13SWCompression9LZMAError23RangeDecoderFinishErrorFMS0_S0_":{"name":"RangeDecoderFinishError","abstract":"

End of stream marker is reached, but range decoder is in incorrect state.

","parent_name":"LZMAError"},"Enums/LZMAError.html#/s:FO13SWCompression9LZMAError16RepeatWillExceedFMS0_S0_":{"name":"RepeatWillExceed","abstract":"

The number of bytes to repeat is greater than the amount bytes that is left to decode.

","parent_name":"LZMAError"},"Enums/LZMAError.html#/s:FO13SWCompression9LZMAError17NotEnoughToRepeatFMS0_S0_":{"name":"NotEnoughToRepeat","abstract":"

The amount of already decoded bytes is smaller than repeat length.

","parent_name":"LZMAError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError27NotFoundCentralDirectoryEndFMS0_S0_":{"name":"NotFoundCentralDirectoryEnd","abstract":"

End of Central Directoty record was not found.

","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError14WrongSignatureFMS0_S0_":{"name":"WrongSignature","abstract":"

Wrong signature of one of ZIP container’s structures.

","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError9WrongSizeFMS0_S0_":{"name":"WrongSize","abstract":"

Wrong either compressed or uncompressed size of a ZIP container’s entry.

","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError12WrongVersionFMS0_S0_":{"name":"WrongVersion","abstract":"

Wrong number of version needed to extract ZIP container.

","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError24MultiVolumesNotSupportedFMS0_S0_":{"name":"MultiVolumesNotSupported","abstract":"

Archive either spanned or consists of several volumes. This feature is not supported.

","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError22EncryptionNotSupportedFMS0_S0_":{"name":"EncryptionNotSupported","abstract":"

Entry or record is encrypted. This feature is not supported.

","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError20PatchingNotSupportedFMS0_S0_":{"name":"PatchingNotSupported","abstract":"

Entry contains patched data. This feature is not supported.

","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError23CompressionNotSupportedFMS0_S0_":{"name":"CompressionNotSupported","abstract":"

Wrong compression method of an entry.

","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError16WrongLocalHeaderFMS0_S0_":{"name":"WrongLocalHeader","abstract":"

Wrong local header of an entry.

","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError10WrongCRC32FMS0_S0_":{"name":"WrongCRC32","abstract":"

Wrong computed CRC32 of an entry.

","parent_name":"ZipError"},"Enums/GzipError.html#/s:FO13SWCompression9GzipError10WrongMagicFMS0_S0_":{"name":"WrongMagic","abstract":"

First two bytes of archive were not 31 and 139.

","parent_name":"GzipError"},"Enums/GzipError.html#/s:FO13SWCompression9GzipError22WrongCompressionMethodFMS0_S0_":{"name":"WrongCompressionMethod","abstract":"

Compression method was other than 8 which is the only supported one.

","parent_name":"GzipError"},"Enums/GzipError.html#/s:FO13SWCompression9GzipError10WrongFlagsFMS0_S0_":{"name":"WrongFlags","abstract":"

Reserved flags bits were not equal to 0.

","parent_name":"GzipError"},"Enums/GzipError.html#/s:FO13SWCompression9GzipError14WrongHeaderCRCFMS0_S0_":{"name":"WrongHeaderCRC","abstract":"

Computed CRC of header didn’t match the value stored in the archive.

","parent_name":"GzipError"},"Enums/GzipError.html#/s:FO13SWCompression9GzipError8WrongCRCFMS0_FV10Foundation4DataS0_":{"name":"WrongCRC","abstract":"

Computed CRC of uncompressed data didn’t match the value stored in the archive.","parent_name":"GzipError"},"Enums/GzipError.html#/s:FO13SWCompression9GzipError10WrongISizeFMS0_S0_":{"name":"WrongISize","abstract":"

Computed isize didn’t match the value stored in the archive.

","parent_name":"GzipError"},"Enums/LZMA2Error.html#/s:FO13SWCompression10LZMA2Error15WrongPropertiesFMS0_S0_":{"name":"WrongProperties","abstract":"

Reserved bits of LZMA2 properties byte were not equal to zero.

","parent_name":"LZMA2Error"},"Enums/LZMA2Error.html#/s:FO13SWCompression10LZMA2Error19WrongDictionarySizeFMS0_S0_":{"name":"WrongDictionarySize","abstract":"

Dictionary size was too big.

","parent_name":"LZMA2Error"},"Enums/LZMA2Error.html#/s:FO13SWCompression10LZMA2Error16WrongControlByteFMS0_S0_":{"name":"WrongControlByte","abstract":"

Unknown conrol byte value of LZMA2 packet.

","parent_name":"LZMA2Error"},"Enums/LZMA2Error.html#/s:FO13SWCompression10LZMA2Error10WrongResetFMS0_S0_":{"name":"WrongReset","abstract":"

Unknown reset instruction encounetered in LZMA2 packet.

","parent_name":"LZMA2Error"},"Enums/LZMA2Error.html#/s:FO13SWCompression10LZMA2Error10WrongSizesFMS0_S0_":{"name":"WrongSizes","abstract":"

Either size of decompressed data was not equal to specified one in LZMA2 packet or","parent_name":"LZMA2Error"},"Enums/LZMA2Error.html":{"name":"LZMA2Error","abstract":"

Error happened during LZMA2 decompression."},"Enums/GzipError.html":{"name":"GzipError","abstract":"

Error happened during unarchiving gzip archive."},"Enums/ZipError.html":{"name":"ZipError","abstract":"

Error happened during processing ZIP archive (container)."},"Enums/LZMAError.html":{"name":"LZMAError","abstract":"

Error happened during LZMA decompression."},"Enums/ZlibError.html":{"name":"ZlibError","abstract":"

Error happened during unarchiving Zlib archive."},"Enums/DeflateError.html":{"name":"DeflateError","abstract":"

Error happened during deflate decompression."},"Enums/BZip2Error.html":{"name":"BZip2Error","abstract":"

Error happened during bzip2 decompression."},"Enums/XZError.html":{"name":"XZError","abstract":"

Error happened during unarchiving XZ archive."},"Classes/XZArchive.html#/s:ZFC13SWCompression9XZArchive9unarchiveFzT11archiveDataV10Foundation4Data_S2_":{"name":"unarchive(archiveData:)","abstract":"

Unarchives xz archive stored in archiveData.

","parent_name":"XZArchive"},"Classes/BZip2.html#/s:ZFC13SWCompression5BZip210decompressFzT14compressedDataV10Foundation4Data_S2_":{"name":"decompress(compressedData:)","abstract":"

Decompresses compressedData with BZip2 algortihm.

","parent_name":"BZip2"},"Classes/Deflate.html#/s:ZFC13SWCompression7Deflate10decompressFzT14compressedDataV10Foundation4Data_S2_":{"name":"decompress(compressedData:)","abstract":"

Decompresses compressedData with DEFLATE algortihm.

","parent_name":"Deflate"},"Classes/Deflate.html#/s:ZFC13SWCompression7Deflate8compressFzT4dataV10Foundation4Data_S2_":{"name":"compress(data:)","abstract":"

Compresses data with DEFLATE algortihm.

","parent_name":"Deflate"},"Classes/ZlibArchive.html#/s:ZFC13SWCompression11ZlibArchive9unarchiveFzT11archiveDataV10Foundation4Data_S2_":{"name":"unarchive(archiveData:)","abstract":"

Unarchives Zlib archive stored in archiveData.

","parent_name":"ZlibArchive"},"Classes/ZlibArchive.html#/s:ZFC13SWCompression11ZlibArchive7archiveFzT4dataV10Foundation4Data_S2_":{"name":"archive(data:)","abstract":"

Archives data into Zlib archive. Data will be also compressed with DEFLTATE algorithm.","parent_name":"ZlibArchive"},"Classes/LZMA.html#/s:ZFC13SWCompression4LZMA10decompressFzT14compressedDataV10Foundation4Data_S2_":{"name":"decompress(compressedData:)","abstract":"

Decompresses compressedData with LZMA algortihm.

","parent_name":"LZMA"},"Classes/ZipContainer.html#/s:vC13SWCompression12ZipContainer7entriesGSaVS_8ZipEntry_":{"name":"entries","abstract":"

All file and directory entries found in ZIP archive (in its Central Directory).

","parent_name":"ZipContainer"},"Classes/ZipContainer.html#/s:FC13SWCompression12ZipContainercFzT13containerDataV10Foundation4Data_S0_":{"name":"init(containerData:)","abstract":"

Tries to open ZIP archive and parse its Central Directory.","parent_name":"ZipContainer"},"Classes/ZipContainer.html#/s:FC13SWCompression12ZipContainer4dataFzT3forVS_8ZipEntry_V10Foundation4Data":{"name":"data(for:)","abstract":"

Returns data associated with provided ZipEntry.

","parent_name":"ZipContainer"},"Classes/ZipContainer.html#/s:ZFC13SWCompression12ZipContainer4openFzT13containerDataV10Foundation4Data_GSaT9entryNameSS9entryDataS2___":{"name":"open(containerData:)","abstract":"

Processes ZIP archive (container) and returns an array of tuples (String, Data).","parent_name":"ZipContainer"},"Classes/GzipArchive.html#/s:ZFC13SWCompression11GzipArchive9unarchiveFzT11archiveDataV10Foundation4Data_S2_":{"name":"unarchive(archiveData:)","abstract":"

Unarchives gzip archive stored in archiveData.

","parent_name":"GzipArchive"},"Classes/GzipArchive.html#/s:ZFC13SWCompression11GzipArchive7archiveFzT4dataV10Foundation4Data_S2_":{"name":"archive(data:)","abstract":"

Archives data into GZip archive. Data will be also compressed with DEFLTATE algorithm.","parent_name":"GzipArchive"},"Classes/LZMA2.html#/s:ZFC13SWCompression5LZMA210decompressFzT14compressedDataV10Foundation4Data_S2_":{"name":"decompress(compressedData:)","abstract":"

Decompresses compressedData with LZMA2 algortihm. LZMA2 is a modification of LZMA.

","parent_name":"LZMA2"},"Classes/LZMA2.html":{"name":"LZMA2","abstract":"

Provides function to decompress data, which were compressed with LZMA2

"},"Classes/GzipArchive.html":{"name":"GzipArchive","abstract":"

Provides unarchive function for GZip archives.

"},"Classes/ZipContainer.html":{"name":"ZipContainer","abstract":"

Provides function to open ZIP archives (containers).

"},"Classes/LZMA.html":{"name":"LZMA","abstract":"

Provides function to decompress data, which were compressed with LZMA

"},"Classes/ZlibArchive.html":{"name":"ZlibArchive","abstract":"

Provides unarchive function for Zlib archives.

"},"Classes/Deflate.html":{"name":"Deflate","abstract":"

Provides function to decompress data, which were compressed with DEFLATE.

"},"Classes/BZip2.html":{"name":"BZip2","abstract":"

Provides function to decompress data, which were compressed using BZip2.

"},"Classes/XZArchive.html":{"name":"XZArchive","abstract":"

Provides unarchive function for XZ archives.

"},"Classes.html":{"name":"Classes","abstract":"

The following classes are available globally.

"},"Enums.html":{"name":"Enums","abstract":"

The following enums are available globally.

"},"Protocols.html":{"name":"Protocols","abstract":"

The following protocols are available globally.

"},"Structs.html":{"name":"Structs","abstract":"

The following structs are available globally.

"}} \ No newline at end of file diff --git a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/undocumented.json b/docs/docsets/SWCompression.docset/Contents/Resources/Documents/undocumented.json deleted file mode 100644 index 1862018e..00000000 --- a/docs/docsets/SWCompression.docset/Contents/Resources/Documents/undocumented.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "warnings": [ - - ], - "source_directory": "/Users/timofeysolomko/Developer/SWCompression" -} \ No newline at end of file diff --git a/docs/docsets/SWCompression.tgz b/docs/docsets/SWCompression.tgz index 84bc15c114de3131720da21e94dc14b1da0f130f..eb74fb5ad91831c2ed41d8ca5e7a90806609c28b 100644 GIT binary patch delta 98933 zcmbTdRa_oT(6@=ZCqQs_4eo9s5Q4i0cXtMNPw?RG?(XjH?iSqddwJe{_uGR#+mrcq z_f*yN986F3^{oDSEiGp*x_72SDH@7x@<$QNoK=?1-Fw=5*T zT9{aCO0tcN$R%PPwbY$8Q7&a({3W@X12C(Z=mMoFX`79k>x)!1t+X9+^i0ZHLBbMq z^VjGwG4E?42gR;lwzL$&*b39D3g|7dwr3=Zk!J5l$O9=q3E2q!rx5kQ{2$@X)P2XzIDk?OnSJkO{~(17(ewBJ+NXUpr@l=O;t7=9J_mx!{%o z%>YCpz81iI0?rkTg1`W~)^8MWD2v||xLcX(vYiAOEZl<9IX36< zj&6MKrVC!NUTFf=tuX3?_uMZ#A9HgM;1kep0hV}q6Rd!IwffTX%Z=~e?H!rziSBkD zmzN6*p$uzTf?A(gIT2!od;uq8NkE2j?&P)FdG2K4LUm{6aB#8FZ&jvfNk|qUyw!rs zu4pbaG}PHYuK*1@`i?@^O15=nQzDvb2EL?JQ$E{P=8V}s=?G@WR<$zaAN2cr^6D7F z*;UhgDY=abX6h)X=ImAB&O4!@o*SyN^gkA8GY{%c@0A~Tq1d70SA`ZWT|iH4f5_+M zKUNtq9Mz?&jg+_X|~1*vJODt6+MZ&pMn zjj`tYdY3cR|J&;`F&ftb&P)6uuV1K#0P z;2Ht#txbtDaX0E@wXvo5 zNeE=Vw?fQ&`Aa6@hA@$hszfw^eAqh&%q2I=1w4&EnIgVQTC6 zlyW@~c=38=S6Op0F{V1d@vsVS6&oxa%T2rvyrurDXqdu*J(gP5dv#8~lLW*Kvx67+p)2iY!=-XozrJs}E|OTA zxK4vJJJ|`^JP(e~n&14JY1CiN$@c0E8s2vrQkQ47v&v=1GeABj3UelPo9_8mg@D@3 z=QDi@A{}(MclPkq<;12W+BcAb1!Sd{^WmxW`DD5@Ns~%^du9>1GNRDkYsdfBVuR(s zCcoXeducsFi$tonf&1jO6~?*K-`1wORwb%45(~)xOwAaYoc`dL8Z+2|cC}Rr>O9Uu zRZv3;`$%D+lgD6zgbAJwsAgEVDWC^~rBm=z+sk1_QAGPI86oIYyKu8KWxq>m)gu-% z4IIf{)3nJboS1G^TGAxwa-yx{bj`GW3D0t1`m=4)OXsyLD>K?;OW-A`eAIM$J=i_ZHu%)gYIVec*!<`GkN(-XA6rX>FUnKluMH z54gV?S)o?YFYO}{&)Rr=3G>jtn@Ds1+$BKpz02j!#*}Os*{XVTtdsid%>nk+nb%fI zI8*y|s@G4y@Rzn9Z48DoYMVexc)`~4H7CJrKozl}PmwQH{AD6V3;n`p4(30J(x6QH zr^&sY*IGG#aUJ2dK+xmvSzXPTdW_KAcx!&BI0h>mX6qw{E~cB&{o5@7X$+S9zM{Ar;akK(cw!bjtsc)-_)>)|1hqJ~WE*8(sf^%CZ#U&~*s z*d_7PuH+_CF%Rv-YLR7f5NDIG744AWQC>OOO}p@y`%?RNEZE8?ZM8(}o{jlWd3V<# zmWNLKxTeNSadLjUi3Tmx-?=pliF%8KeSEkc7PY1I%YugkiM6^^oxb^1O-lbRB;Fw= zm(S3`EI4sHiVFyrx&$z6km~!Go(o7gfgwnNm6F5>9vhpHE#c6EN$3y-J6ZSyHhUH- zyU3L5WHkZ1*j+P<(acP;Fh;M-tkiI-t*2gOd1ere0k0hQA+Y0gUCuB2JEs9Y_dP;qw(?+Ht1G8vS4pR*a?n>>y~zuz;^>&*27c! zFW-|*nH$Y;73}&uqu#HIwuJ7BiokDgcH?goOIy76n*$9i;3u)eUE$7p;Bx8k@bE!_ zWb!?*4m>js?5^xvX;;0!vkxEx+#t89iLB?1+p>6c81OQLvjOj6 zK7fJvdIAS9c=6Fp)G%DZ91Nb@N)5gMyaCErFvBXNHF$4t6%1DK`7c8J6?p3n3qw0n z;p3STdCGO!0RuG6;I4Loz>mAWkKiqh4AE0{@9K9jfpn3X=zD~MBN+VqLUS23G}HwK zzo`4Y<6e)PgTcK!jOYG)dz)b3f>sE54g9qK02UTiBzXjZ69oS29|MnI+%E3_n!^uZ zT%q*;=JfOmUZRkl!@K}bU5)oX2n&_IgV$O7);+pwK{c1)DajvOPK4D)2~AeRu;N1Pa6tVYKRca~S69#X)KgJ0YGlY?rzJwuvh zL@oWv`7EHTD3L#9d{}Li$iH3Xo-#gbXF#(fY7s=NU9<<8R1%xK01%VPP?i#)2%(*uk}aOBG5Pw%ZPc` zJf8)B2Jg<=>1#z-=|t$idEuh7yb;vrfqR0xyn!97>-{tE<{9!4*y62=7wmNeaDvjW z0SC~^^WzaHw1wsfH05+(2M~8TKd4XY@!j^Zk1S_RfHuz;$HDAQtWMVr`oP8Fi7?Om za|z&cTJ`s(WY`Sq?m2iRkwN?LSnbm`7y+uCDeRX3e934tY&$* zdf?^$`i*W%HP$1xi~xr1N#MvTPNa|ks2gCAw%8JRjWPG67?S(xg~Pe2x>IZ#{-Bvm z{|ZgCu#IECb_Q|@-RyjYb#_a2eRQYFa-zVI60!{ry1-bij`NsL@i`lvA!@r1t3N?W z(>+RBkbu__QZvJ~ez@+;ReiX=jJo)ZrIKu0$J?maxNSQvcDcxYY@4I(mNMK1xFk7P z2D>EQyTDq`Ot%IMmRGXv@g)ePbod^aM?Wa5Qf_?r>?kj>jR;zS+~6eA8b|VxBcL{vK$t(4OZG!YpW@v!$Bs2qG~0mZ*7ww$rE?$_$_U(Uf@F- zn|?i{q>MG8@JmwDOEEtG6hd4BxM?)GZ;)E>AIfc|>3OD^P2-A73lcu->eJz>7A;$P zy;$K_kBO+%TZ(rLab1UgNJqDrJ@rsc^?4kfX`6OZwaVty94K?D_F(kXs^c3IgkO2E zeTz5GZ78|S3E#BjOi#1*q^^US zMk`sbgiD&OVQYb8RO|86uO3c^7u*pJUK-i=*)!{!DJ?Hjsl_^w*m$j=A9m`9`GB^j zeVWVJ7kw0W&o<%o4o7DI)rW;{VJLy@1YYSrytqDJD0q(v_`Vpo`GhrGL`XxZSn6BO z$IUOavPD2ZAJkxR|L%+YfNPPzuYTwHDgWpv0ypk@=E9k&s{)nKuLhvr7`ax4=k} z2|V17PZjXk*%AUTvE=K6`&w3(3hKZEC173tJJ*lu5+#E6|aqGO>pP^z? zni0KBJUyY+Y%$tj^>$rp=z+<6^nS%E+XYjjCPeTFs3aY$H+8933H6zjUyaW^kTNH{G!yZ7_m7m_>HWsb;h}$4cgt(v0&VY@VcVT78QFHG z_vZThu^XLiS4WIhQ{`M-gV^wfa_ibqHO|>)LD^1qDH7*m`r97dk=j9#z`!aqy}u5t)nSlR_*0 zym_8$A?P)k61W-Fs5q%KUfEi@6c?YEIj2wfRV&Yv%6%I(1s1U#roMbZUyoP-;jDE6 zTeb~Z54w$ITS@-aCp+kFMt7)>i`C|L& zCB9xMmme*2l|SH0TYMkCVFT6#%gP~j^Otx0krA(Yk6ql&3DjP>HRZ4S)G8J+RBI76 zW=aEfSAHVyTg{)g7WX}?EH2!`w=P-&_<_;8OhBMovWHr@PBOOgEVmlG5_yGGIq{+7 z^4AVYui__W39mNlQML&U!S%pp?J!@T|b6ez`~EngQdV5cWuX>-c z8a)vfe!sa>$b3QnQLqa(c{4KxqMYFFZoC`)sa}_)?FaPUF~WbGc^m#xKi>jF*!Wcu zGRcotD`-l$KaT=4z3wQlnH7duoxEts%eZBAUs## zCO_%khM(%D%|G$e)GUV2nqTN^@YQx@%s<<<)c#sGL+?zIE!}?E!2?A+0*=jrz(x*g zyXC8QltW@#yO>Gp+E%}%f7*GRf54jpfkQHt2VGvjQ=c$X6b0J+SI!z7o>sd-zk@!p z0Xr-3W>s0w+-9I;_Aal(<8d0Zo4PLES7r7tw%hw9-|L3dITi(dzWZc_jOeTELFxxW z-T8kL?ge`jPY|Zzg8Fe=KjTl|4p}z$e5wJ9S9)B+v0b1ysN2fS$cTI2+$^* z8i(!LC7k&A`Sm$5>O4M{2}Dg=k_lQ?;D>aU9M9*l_E@{YNLHR&r_kMNIUyrEx5N7wL_wWlyXHT7A#5b!h7ql>P<~*l1IOqo zPO5U0S(4;fP0s);>vz`zy%P$>)Nox7inWHux7M8oSyTaxEYbF?NkS`#%?uoaK>`OF|{q*N# z_gcmq8b51i@85okH*}POnX$(iAY-l53Hh287yYQ=4c++)GqsYa_zXu&GBrp_i;lOW zIJ944v)A$7py);J?G}mGfay+7C=lcQnO|k7@5(p5#|nlRW6L9Gt;<^ezjL?d7~m!M4lp>Xk)Q;!?eX$tVjVv4ql0(!->GuEvf+6+Y@q~A=ubx17YqHF@z}}0 z>eW;EI5&ape(aar*&{({_TD+A@X&N#epEy!>WpT?UXQQTfA=k&pQWTS=}o*f^|wLb z-QfG*_c-JhNYDQ-+WKG0b@zOz&R)Y%a|Vew;QMl9W@I;nBgPi-zMsrqGgedf#Ec7u z?|MJ{zOE%ARTIo*d2yrkC%Z{qKf92{jGv06%{T0&Mdv)po6&>yQ=99v-hA_-U6bi= zKV0HZvbL@qkL}WHgP6obzANXpKK!-6Yj8gUdOWu;T}~kVEcHXs$aczZpt4scgX zzkAvJKlE+r3D2d}**95urR^;fcl6BTvl%6yW)piIv?NR*AxPr}Y|>t_Lc)VJ&YgQ6Qts<8vsC zlaaThgALGoZ&O;TiZUYCcSp_|b!R*>t>p=;C~aw`T2>FilV_HbHS%k8AlDDf6c4bs zKt1DTij^?_x?Pdu(q~To4omi%;n49QB@WLYYS&9EgzgmKv$Cx@XNiq@#NskK&p(m> zFMbG*U!BK*Jg9yi8?z&AQ`+dRd6q*&s5K8HD_a@-SPT35L@O*5$nzqu` zrq$3Pz%8wX1uKyHhz0Wakqy^xqE!`xju(tH-~I*QM) zJ-{~`KhlW6EK-iq@6M;3u<9cOL;{Fm-|>DpL6qn^2&Iqc;FkW0{3})zbEl6swvV__GYSgmMgw6RcMp}eM{ApUiOKb9S z@79XJZk-W_OD-L?jjREw3^c+RS&BqTAZdN;xcCM~`rw7Lrvlem#l~l>O^e@b6ZKYX zI`UA5(Sizfj<9ikFp)@eUiT`>8{hLcwglq~#3AJ`;A??rL#yQAgbY3I%b;q^24%5^ zP($1xZ%I2&SJcp-l7I!qObcD~jyKmA#t3XhTzNR&H|{}&YRo&9DqaHIn=*QmWmK%x zzXJ2|mHn0Ms`Y2tSvSNvc&6rBNXnV(eTEAgw-v*k_}^5mWj5(P2bQ%Q2dbiDCFR?* z3}9p@6q*C)1erqO*@2~-PPpo>7PL$UZFI1DT2bd5ql9-sC~(Ag-} zgWY1=I(@gF?d>m|y(5airy|-WQE{Uckk_o=GjsZ^ga!5Ds4J93c zMP=h+fh7kb8OFUW7Y-S!bJ5eoYn__W=*;GY)F=y%@I(Nm^#v>;`oYeTItk3kBH^^KX`rf zY)s4^(reBn+sRWYBYvOru^k|copCIr!>ztAclsRc+lHJzw&wD!*uvg~w(Jf;fel76 z8RlB#54Hm?WP6c$TW)T>^5pa1V3L49$qb;Ejn6tI&HeN%_ET^eh25`ykA%ixR}59& z&j>EimT|U$n|WBnj|57TNTkeHR3CbSL6(JQ!SwSUM-krtLy?u9K3rjX~bkGoh?G z9-r@BFWD?4EFaZn@bQThif~5V5R^V1{YCza$aeyajReY^oD)&DRa>4@4bq^`JP%hK ztKI2H*~eO(m;k+V@i+&1ay^s7R2fj?DO7zWBmo`mj)18Wfliu}l+wq>*4G-eCr8EK^l@MawOccXmW;lARx+cew37r$1 z4LkdB$ojh`i^zOykb@m)?UTc;&R_y8 z&UB2>-dR5lc3kzzWkGT$#|?cGYh5H19w&6p8fJt$V`W#Dvo*D2a`-QT7`4_)5j>6P4jw1X2_u~GaX&+t@f^t#WH*6XFSIq_rEZC9VpM2U-#>F!sM*NH4a%@ z_D#QzRe@wS!j~hA+<+d@UsM(bDhaazEaUNixrPh&H41)>L3r8j9&hEv{mO;5$MpCs zL8XHGZiP2>&Gd`NWItkJP+R6-&ql9%)m-Np+-gKrF zrdIv~#=0K0#h8CHA+J%^7FJ6RCTp@5&%$FF)tVRSV!N(Ik)B{V{79B45EUb&hEbk> zByHWBWY!u#W+3EL^7PLZEu*T5vO*LF?bv~zLV@o*!}+!aY^*Gi0n0hU^F)^vR93qD z?kLzf-*QTwm4^rhIpW)uT2YyYDc;Br~Y7V7{c# zA@I>P*h>qHVbjzk^fC-qqW|~CV(js<1LjdvM)$ev0pG4*9f6HKc)&+*T}Af_@q*h}MmV-YC%!<5*5CagSu zb1xiIRQ1M^0^|OWtS;~x>6YYii3_Kb`5JuWi%0nw>E+xh`k9w0sT!h5K4_6p8lK2C%)>CC%$$F zk`;Vq*ulg;wXd&`Rn1wQHKg0^F>UwWarCt9`;2d-9k)=bBbx5qQyy7JN;dFwcE%1- zKM{e=9frGKa304}T`H?P8>!S3sf`Tq_yseMqP6E7z6A>kR)f2rd6rn37tC+qqU!J5 z79i;AV9Hjbe1~|$`89`8k8e|IvGmz>4MFOkjGEo?;BAuY&}Ti_)+F+`*}1;bs3NiX zHSL@4BbNo1T{tLrdOV*|4Hc3x9{g&Hky@?}oqCvh3a%T)`Z*+kz#p>~|9oBB9-b9r(%txO=5ZV)_t}LO z#vJ~TBsz|LQv@4smmCV8E00cfKP~EXq!byc%#E?R_nYduJ6dnX&fo0t^o0yYm72~|fvC3MjaakrCpx-C6;oA^KQhG5+QN7dV2F&*Ev5dmmZ=d0EZ=y|jo zHKDLJX0If=!iKZ#)Tr2$s47;}2Pd|wteAxisWpZTAjL_jR`O+VNz^F~u^+!fSSgcH ztWYpAEtHAg!}P8D^i9*(9-IGh-pGlrhvMS2>59QYc?$V{-7qgG?2cNos>JazF-{%9 z5|2!6p2`FH#H67x5}T+$lkQ_g)y>s@PzyS2x*W)x3~7UE!OAvKH!y$Xtg>!Z-C){3$rQ0s`<`Pa zKKLk*k1Q*q^#>oVx#YE&Lu$|Chmtd;&!K%B6@|7MhFiyqce0-HoU6FUX_X#6dTR?p zI!BCBgKoW7c6b`0e+!W`&yE?nF16eAQfkd|%<%Gb0WOPl4lWtK>Q_cN+Y*bW&1Vc> zm)c3ShO}%7_7fa^)#Z6~*%~h;Y{on+^w{*F`pfWw-8Lix@y$Rr zd_DqIm5WYuCEC~+H=lI0SPln!+Tof;^(9*0-%GKF{$wc1_FSpZ(2r1Xu|Vv%lMxL2 zVs}5>Dgc)f^-{mq*huXZ>XKi$Yf;im+2V$dpa#vkz2q<*WD!a*sFi2Y2yH)KK#k9g zG*GF6sSP*I^j9@+MB)>CTE244o<^lH>3Uv?I4>kV8M^v|3>8+eE~X8!Ty|a`-)t}9 zQ&{(%k5(jFSeG!$AWdyVpN`Lx9bc|6q{^NNFNFE4L;Y)flDCY0^S48va_pFxVo+ zTos3VboRylI`t*lNRPu%aVc+kmo(R4s#0L>oGMB}Rf=159NB?4 zvBxgHQDv?n&kgi!k(M;PROK-ERe%{2+Wb`~5kG-mm8wrL8Q4ebVv>2#&>4@4@N=?i)?DZei$yY~3mOL2pwg(-Q{ z-C_G;^{ExE#_Gsw@j})MmZ&^QqV0<){DBW7NN z4a_z~^hGJl{Q${jpcSifK~J+Low^Y@b0=jV-%ulmjM@RQTs#i<#V&yj*q+Bt4;J%e^RaN!n@mBa9yNvV_q7RAY&~OP;Ct zBb*?daa0mWb^QpmxwY@Bp8%o`fR{azx6*rCIx*pR7n)U5hm!5F&es-ATKkL7OBq3~T7{zU@Y8Y? zI8p^ke54`pGWpStKF%<12|s=u=M?AvaOybCQE}>}FE040$WO}IZ-oOv+F~Zi+%|iQ zqr@gBFQTHBXjyBi8ygJhti&(sE+xkZhY@uK@uj;P_6%ATx1}-C$uvk#8&TORb}R1V z`c%Jg#=1P+e7zU-h1ys#xLbVI3EITuRLMZ#B9ej)3B0EzJ_?IF)7KOYCMe4gU!J#T zGBi#+_TZ@uM*Vgu$$Vx<#4i$<)^)%0u2ZwGvoIT}`RY`D7FY;`(o-u=#61a`Yr^oc zqSNT161T;nrkwc-Os5)Kdbg8=t5)x!{2iyJGnN^>-UuKw*hY5M4v>*12n)RY*1ATl zjP%P7qPa*|zSu9~mozK6uY9*3qp8FLqm+JY2g7Gp_46Xxnx=cS$_42ko>^^)>x{%* zexd?LJ~99e^^qU|{4L6Q%W^cXD*7*}`#ZAl0qUv|5CF4Jf!F6=LZeJO?q|F}M@Dp6 z2hUkU*LMTpi*fgvmtz{RQ}_`;Jk@tA+_m~&K_)!-%HiHk8yqY~x3>TuO;w7o0y_x! z900CG;s+kt`WFJzhIJFSqU_r@-qQjkccjnReK;$?-)PL|0Yb>z_Gtl@J4(M@j~p-P z(4*i(j~rO=!sjXEiCeKpNWv-P4SoXw7U$1#?t12#xM@eh#ArtOeXkwMm=UWnNhLn-Tf=N;f@&u2@^1=O;@1 zCWPlyFp6KVsD{6mh?K?ed3JG{!-nhDl;nhP`mmr1x0^NT_SB@yaBpm}b(f1|NEiS3 zLa0j0fnXuW5@^^ShOV>^*~2w3;!RHg@DMhu49{61>w^oKiHD_X$@d%(_=g_Eu@3nC zb~|)+RT%EQJ}V&2zcOi-AZZtxH;PHajYlx7LTR%0lt^$hX1`f++q0YEiv{ozQ9ZkDg zdn%wx27X;ke}PDuRbX9Ahx{+t zuM=Y%IZb5nWmm8t$q6RYhERe4NSGu|4cd_KPqB`JF5PwLOq8&5Ufl1MmK8t0$F7wpq3PqSNFR` z3Lz)NbwIZuS}0zg@^f}*XxlW`st1)i&fzqK2mgvBO0QgQ#QA%i;6q8vlz~$9BN0T0 z!XWxYHk~<-D%xG-5HfxUqgZ6|Hz&-rpO1+Tgq2s*Cb}G?DlKwGa&*h^)%5E?{SNWl z5z|QbZ>Z}I1{c)uFXy74fG_|2bJkm4S)mhZWQsIYP$t-sCiBH~<$e}_<%nT+wb%a1 z`A{aAgLsn7IBJHlIU2lAbMB&LG*fkuX->jN(3IK~XJA2#} z44t#F^HSg1{RGGBD_a@Oz)o(BZqJce*aS1_b~icXDSA}^)v9r_3i!8ueOz(|UzLJS zl#AY==c{gUi{t$#1jLB8+w7Z}ZDfyyOBwt+=See#0}APFRQy1$&q_HKKv%R+2igEv zA(nUoKAhH%*8~VwMlBD$ucEu#O?rojR$IGK^N}&t7_xKb*K6%F@(f|v>AAVvqrRRi z2C_t%N1ZJdVf4-2Kmg4Z@%6QcFeffa&65-|jYnPZO0L0ojDEObQb8<+*MGbI#kqhp z@-jKxB2J>O%!L$Yiezg_DG%fqIG98~L5_P`X?X6vHV2#qBid6bIDfP;ihV*CEN|;P3!R1dN96TBN<-S0xMGMJ0EOpT={2R^T-#e@gFRhP>9_rM@tOipepNtai6;iY%#98sf5DZdD zEy#BNdMKLp?Zk$8Fe9l(50XNL5+(HJ<<^%jo|EI%8ppOdEFiImJ%l7MZPN;}&dEvS zk*6kfSB6W90(K=R+4bYn)Yap{vvMa~dfUD45i4Q~)1HlW)_!AD?z~!`n8w@SKfT+U zpF$1O8$hYbvzhOUkEhS<+I{3sl;_pf^lVDKa5xOk2-RohK??|k$g7tqW3{b|Vx`>o znr`hj;ZA-~%>OR^YnF&~3n9m1lAhFv@Jwk<7l~$+K59(NsZ!hm8l04H>XB4UsTuu( z)aoKmR+W8p)kcohT^!K&^cEVZ- z;&d&bj{?0G8xzsgcyuyqthq&F5nZ#gGfrvU5nV?r+uJCwyTtNsB2lLYk&zEzv-kT6 zdSYy$0J{NDHnQ19rBJ2#q8yUKS#~F*HhjYI@)-t43PPIM;`L$J`X|8%$Pox^(*cNP z$j%PfthG5Yl`@-TR1EVpiDF&!m;}O%<@Tx^P?fFWCiUIW>54OIu`vn;ElC=kOBG-Y z{Z$X-FOG$KC!f(~y&QWby}Ds8{!#Fhp+CFV0LE2Gg-Sj3tKwJ1+fI!p`e)|ZN}^0s zBs3(|VYFVvIhn;xYhPZ5s>p=qocXgX(5pH3`yHA0BZH^u#Dn!Uf^+me+G}Q3f$SX> zNKSbSH%>~mMqNhdKb^##`tFK2 zpfO5B^tMJcUk=R@$9_V0CXNBJbo=#5@cJZFak=}|coj&jrHDq{hWMKzrCDjD76mOO zV3k8eh1KZeSTR`+=Xo4IMVTbu;lnBLr+m(6KUfmoGCH&&vk$`i&Ao1EQv_2a%O~LY zEFNJe%S&fg{!Vdqes=oDa)hqN9UILffZ2&l?PxSjfQ+(dPhTBus$6P2-`KD9C0QFm zXJ}(M7?G=XmF6U<`&O@MyI*uG7)>-fxWUa4rTgpZ-{MND1?b4T;|qz@#>QFqoZtPu z(Qw0Kr5%xQXkr}4Tnjl6hx5k0LBv?KvMne6$5KvMsGnhwnw*^B>1lsF!4IV(0p<}r zh7C15W*8S0rM%ZxBA?(w(BOaW|EnO&>5yET@e`g$GbAv`;A>DZ@RCg@Oxl4K#k&}Z zgMt`2rrd~NQwTiBZX|O=92s196*IB1ho?FW`@gcbNFb2%TJFXZO7) zf@iUAP+XW`i_N_ls--8q4k^;#79g{ETA4GlIty<=sH?OJ?#l$W#~2|D6!T$G0HH&ZCMYz&wmrD?qz$9foQ=fAQ|Qz?nwF$POH-8r{u|SQYy{ zYkeY*+D?%&;WMVuud&m|4tPg}EHe;OB(Q%9RP2GLq~ycfw;FO^9EJ_Bt;wnPLHnDg z?Z%bkQ2e*Y~q3*muR>Ec;t?PIrwNsST#oa?VtB%{*0W5h^p9G=RmIc*pA5Qezg# zH&gOuz%N(nBk9!%nwsZFGh?+t5y~Xan3$zNsR+Nr{jH-#Q&Nr0Lt$E`$u=`X*I2=i z6rZ0N;?*XoYt1MXnJ*nRj5W5ePv~kBqXAKma>c}jvusVNccvCi%lJb>mEwSXH!eEg zni`eKf_BxgdI4@d2uQ(L#42Sq#lI{5FV(vjhJ5mg)1yi<*P=5No5lNHI!Xt} z;>B%kABrq2T44EyZbiW0#E%G{CZ?;BCtGdK#Kt;Y>1cecuPBfkx`7J)g3TO#UkwH8 z)Na4@7l)xSxC3!N8Dyia<16+*u_|Xjz^ya2Tve1m51f24Uqs5M2u$<8)!Y`28;$1H zWH?E5+iEbKB^7mYsWt4y)FLv5Ykway)=adT7sp4KG7m_KdWqNLC_wrawWDJq_IX`x zZuL!CV3Jh%q!7h*Q}EYLnp68+HQRdNv?#PK=BdD>4m$9_8>WFPP)N^IE&YuPTM?B_ zy{7<*`97`OI+9r^;bu9q`jAI%CCTQLk`5uUHJ{e;7R@WzMzl~HbPQ>~(s?RW+^*f< z*Vm__Y)wZej#-u>u;W`Krlg)r{St<_|VYj#&Bg z+{;_}Ne6f!d2dLeVA|cwAmd0Tn=l;1HfI*Is;_apDOm5Xz+3Pc%#dH!ddF#*jX@wf zU(|lhEyhY;z-5^MCsb$27!ey&*M-I6ApFe|xILUW~e>CbjOPt4Q+^#hiY)#rU9710L^8y>}Juc2WB+Dlya z5rLn*s<&IWD5Y$wKkww%c`4WC7)nfcS={9mn|m=?6w#;VM#&#;m3`UI-qxf0J@M<) z7;|0quf{Py3;AzUqDdNUW^d%tg#@51#sY2nH)=4f3ruCr>@2b}t}=`KqMF#vX8`Zy$47y|!Oq(U@6TN9`cy(@Nz!o(b}a0E z25V&cKLP!;-GW2lNwZp3@Q2~f&UF`{Zv(e=@KKT=9Rs=P@qUD~A~!My9(yMI?>yg2 z1lZ;`MC|)}#1IHA&4Tzb9Wr_7{m`KcKKzxazWdPHdYFay)(Zx*hE`7CkUREy!q`^< zftC0+edz7*YnR9Pl_JETv9B~_`2W-Yp#T44b(^v!aQHYsLk+|}%YV@Sa=(zLjY=b| z*v7)11u`BKeG@3Q8 z%c6e{ev-|j7K^r`db0eadDj;cajA zgXx0WknHD&TnhZ(dMT+)&wrv*(-6Afu2Rs8m!oVhha{ElXIsyp#V;vwL*vlv%os=*S=Y<_xF?$%y;t=Diu zybO8#AQZvhI^oGNR*KqK;A?;|DgqWJerlWqKH`H_h!G!V&g2^Ll((Bf(oYQjACmJP zH_D=Jy%FB%QoDUb`%1wo)E$!Y^nW`jK28R4)qRL=jZudMm0y>1-!XH>PAGTXL}f>U zV8j4s-1akqpCUmVAEmaKF_Qa&6`brkfA5%nl=kE-1r9`(IbJ~(&WXY$b1T!>^(O6v ze->_$b7WWl%Y41Jp%3T1?lL#9p{}p{s0u=Px-$k(eQA_D%`$Jo%IK6Jw2&{v$ z*1(VTATQnjL?$}rNnCGGmiK$?(KFi(698##zeFN*ZS7EpchqJ*@@m+q5}5K7VsW;3 zhTd4qe+-1L=~MrcJi7>Lk~NxH+1dCZ5=E!fv(jpK0HbOZ!ACwqv>MZN+piv(C&`Q+ z=hj!wuB9BRTtdIlpEQffWQR>+T9)5CPnI0YYM;UCl=wQmDptVE=N!<(*^ld(2P|N; zhr)|@r?%)v`8lsVnxw+9qi4#{UXvj$8Sp%@{<1)tJXz|tLB5@rvCUy*#6q^6gxw~Hp#`69scgP7ET0w4;9l&zj6m&vhmPMx-J> z)I8S#p)>X02)8g2TN78PP`BcX7^JUiA4Ns9iBfL>i*?49Fa$4I=DEJKwSq!jI##Eks# zB=@Byz;ZDPqJ7(i)k8U9fE>c16W&pB38ljHLzpX@%^+y4cRP}jv}(LU$TDa#diqWs z?b1?kS+<&kFSFU4PXSzNz$ADsS{9CR|LTZAuOp9{CHBMh-NI&&ZwL;GnFA@&6G2pL zK5(I!4w>7{ZA5t#d!=_I|2Qo%FemcM{X_trXJ+IRC|ft(ERoVsW9Z+ia{~$#+fPM++iZ8=8&-xbz4A1>SVe---1CztPLpcXq@}jd}^FA;%jQ6->fA0?u>u|pXku)I@9%)YE3XQhIHJ+984^Y z1qWr;B#7|>s^gvaq10y0UN1URoPe#v8=^<0Z8dloRWg9ZbeXI`(j*yg>q5!Cgec?X zFEL=f4o=}|4GCyyLmS*+tI)5lvzF9s<88|QVdbXT%>_g}!0WQsmxII=jr^)lLtIyX zJ9zyHFd{`rjYashk?cX~ckE_Iz1r>;V-amVI1&@a@fZ~f&mSz5y@a4|F7lBgBCIFC z<@6$A^aLPVrN%kJSs7)Akzth2Bc$-cD{ur?k^GVUV#)VP5T+VLHmHKg&yj=YU~vj3 z)%W?-2pgD<9Hsve7f5Z#F}$u7nn^-oT23OfKr<~3@qe-PR#9~{UAs2!?jGFT-6aHf zcL=V*C5^j=;32rXyF+kycXtU6>*smi_xty^$Ji&ms%KZ#L62S~bI$87{`W6_@}DdNDT(n-m$W9C^U%U!y5 zYQJb0sS7$XF2Qnxy#_E&OCb5k3A$cIdD4nOZ$4jruhd2m?N*~u2Y@Qp#NJq;XU2$5 z!s($P!GNeA)d@`_eM`w=EILa>$#>)fqg7TT#Of%VVbs=I)ATPWd4$w1!GyaxgQ*oS zRQ6!C&EL0RT0&6iQ}M-n=Yt$SVzkF?gz<>e(-{dcg~!3{%l5rj_`MW02=L{-UlVa& zlwX&0$i)-qdd!EcVgZ$l=Vw@v6u&7|`KPzWi2QK6b6NiH#QrkI9jqtndXeO3xg&}s zuB0NL3G@@<@5)!CQA{BtoelEQ>s|4{GtD6}38tv5LkpE+Lpx|#mAAmmITS12-NIqZ zZ;YAR$D+h5X<_;+Optbh@^Cewth{yP69ejjTyJfHzsA8w&6BI z5eKYj<2bCZmym5I{S4;_;HOc)@-Sn=yr@Hojha=<*>N<(HD7+?d`Ku>=Wyq|EVnW%}>*ALI6Z340=R>=B2MUT*Xl7p+b7C zSh+S(J(p1)xY1&<6)AeXkS}a`6WbPwU&&nuLgrDoVxxbD>*No>3_H`NiF#v17Dcyf ztwT$)@C8#&uqsbc&zO7kDfa6i!4hUo55el)TZpdgi(9#dYn#J=>e<5?v2e2X-)4~) z(_kgiMF#TK?06YgJr44+Qiqv3jTzU-E+AC2YfqyUy!xrZC8^hPX#mb+j!rg@dm$?| z0*4`Pv{HN)n9PY8!Fm2%_`!$o(^~FRlx^z0bc`mR3|qZ^oZ+(?O@=j1+hQ^TN!CB466t4fM*+1xQvp^*Vx`CNY>jInaIqA-a}Oujvr|wRl65= z%KR~rgiA?aZuxKc8V#{~Ns9)}A`*&-oxy2hr7&Jk4m(FOFBGl+*fZV$P%*#L&&h_Y zX|vE6PGXYsf*xa&w3ug~)J9aV6qrNFGt5!K$W6FjBizda>JC#Mgu=&5UfB2yE6XfIe^Y(_!!(9zwUlEUEDp+$- zLRMg|&heb_(`1)!HU=3+%sd5INz6>5I)k?P0H#jsjP#w5l>p;!51;xGvPM&wX`;*1W^X)itlIY)s8$_;31v}^?8 zn4LLoA@JGBmK*Lp%=urBO6;>E8u{)(QZ4Njio%)oA z*(|0~fZ0$P?vwKZ`03*rcga;W+bA=hjZl9>aMWuwmxkh2Ssgk#Gd{4;f)n{A79wiy ziv8e>#(@FlsKd~TOPC2~6?<@G{aL+vTGn|TZcg9+)x10-*6CUBI8MA0EK|3SSFvsp z&(Of?+3D6e|3cW}mZ>e}M`eg3bVpN=P@Z%nei?gXF3w+fK!$@)iwQ*h!$960w;M+R z*%@f*3z+SO`$@Yg4WX>oZBGBIVO2xC>N5UEXlZ;2>Cc0)pW4eQ{6q}M(QrDvqBLT# zD2gVuSH{s%#BNuOSbLZ?u!-Sfc)E;c15j3!t_54YDye$4v@mIU(xUMJNhRk&*c%9L zLk9?YoHhzFK&uDgYM8TXoRJdCI_m|DgVAran7Q47SqY_ZF%2-(yTt2d^n>$`zvA>~ z+2b6s9Vli;wBEJRE$czg!~;d;a>`+HwkcgO-^7S2WKNU_BGY+Bb7%3*5HKpr3?y;3 ze;$ok9p0Jhc-#wr&k}ZvF?51a+YzhZ(I7edVs=IL3@nve!m${x?42E9c064!$Jg-+ zL_`E#GwmSk-XVVzj6z$1l6c@rhDPah__Ku$kgK5}f`>8GXxA;r1zj`G($7Xcovb_` zyqz~VG^+_d_r2o;dFK#78xgMBu*NbNB9-;^jb_O5;5FGLm+)*zjoqAgrm#W2`46QK z&*dpp0wGRAYa2~hcaw~4aUW#jtw5r2hxqNxHIK`5yW&oybw#A5GnOz;cBu${1tQ^k-F+g za39uqoGynN^!nGYtEn;Fr|5GuYi;GnDy|(V69ulGm>1lay*m9 zm4+cR|J?H#cIpQ0dH|7N`&X59tF6PEb{%ER`!5+IsI4b$cD+`c_=*@FaRN7^DuhOX z_bp6CG;V z`zJvQ_f`oEce1>IhwDsNPkoct0pha0SzLBq!3$;4JKwTCYvrqIPgL2!WKQ@llMt(F zBoDZ;)MF;yfX~}=vjRTNItR4A_%tAUrUGk zg_NXlaRme`A*I;I4(UJRb>kzF%~QF?8p-k9WZ5x!e*rxmQ014d1FYrp4M#Mxff>Cl zvwqwrhmr38Wn8w)H``OJ(i-+Ef|FjFaz_=^SnozU`Z=KbZj1<@oRzl zD9*YY0~<11nzX^tYehqI4>1h;Na#aL_T{<#(Bh^v$wftaGu^mxE5@>LwZwJyjJM^1 zE~x$jBx+2~j27?zMYjkD{NHp7?hZI&D-4CyA3n11NB{n3LYiUM03R*Q45q}KU8o3l z!$nd)0FJ=q0qeg1BUg3hmv{3u=K^q3sWsc&yFG-p^5;Nx(}Ya*pSwprrDwsoW@-W40>k9 z4BmugP*1Kly4$pQd>>%;3PmUex=F8dChJNCpsumW6BEPuQQmcoixmRUYJ`F5+*ozm29y3d0rW(-FLcvRwO-x+>3Wao~v; z6F`yqFti;lmL7ZS*={H{=O;4>irw^abQeei1=V_S203 z-!8iBKtk5tuO24hs7BqX77yVK8V*W-`8x1I7cOf^*8oC>PpeucL zbt%hQiO>^fC;zn8scx@C8J&n4hCB$dMd)@}9%h;CqDK6&T4VNftUi@ANMrVa$UJ*i z9u|6j6iPiEKX?Avhc5%4b^+2EVR02dF*RS@RLs_tkb~^A=ef7_XQIYo^ zBWzy_H7E~d6e*kNkxY^mCKtL!(!AHVIXj%si#EkE}!L@(q4t&oWMRr<8QYm_UCiv zv%XfFi4eYjsFeQ~l;UOezo8Vwxme!j&sd`R8*=$EtC^}?Gf^QE3i;Pu*C^!I_0F`5 z^4_?^)my+H3Faxk`5Q0ad%3?Nl|`p)8xPYQ_GaL;6^q@IZZSv}WaeLEC9uNrLmXTh{QYR-)@u{@F9dC;rb2%e0x>8^>5U(HZ*j0E9z^7 zPvV%#iGC3n_azQ>#`Z6**wbKzw{2+V6ZGp<)X5nY22z!zU&A+85IarTr+WqpeFC=W zUHQn++)8HUJ$^+MWA4)gUF2gw88RZ*?9BcTQgVxM|C6|`(KaK**M&pRQ2d+PVk%+v zdt$Z<761uP)0UtTK@Bs8QYvVlELZTmUt^++$9}QAt{PN8!Y+>Va$T{JOuF{f%{3dvkJZAg1(og_$Q=Fwo zznMRen4ZrMAh~niFwV@Eqh%0J7TqEH+Q%G%`T*L0@A9hv4mR54J_)^m4mbwHBVItU zyZ9)e%QK{aJHa=(22lt4*+P3$(5uAW#J|C86`#_-jP#1p4qc`#pj9 z)s*~}Lbu_5eJKdr`pA&R2gZo;xMsp+Sl>!zii~eG9KZMMWxVSL>CpPzq5QE&9>5#4 ziG0TQ$SxY@BgzZlHxwR(Grn+N%UER_yLR;^@hPqX4$UG><3Y}07Ce@D(%*?CWXyvf z5u6V*OpVN8hmM_Pz8a^~$C<-ambiZTx|M;^WsWMTww*rK&FQu=3?SL5on()Rd$#-j zMBke|FSG;ajrl#o{b4P)>*H~IAK^AvJE}bkv@dN>wjU}Sab6C!8SzaaZjOz6VGn%r z^kl8`S4_dIL#);6jl(zLe5)KoiJv_hCxTnQb|OHA@f-0=$ImVrt4Is6dlt-q%n@*R z9eK;J9`{}tcxh(_Cd5%;8WQZyik3gIPH}S#(HN&H7OkNR=F0T-DQ?U!*T&7>9qxni zw`AoZkI(0LQ06)*uP{9X9xWr9md)GQ@TanHj5JPlLn6zyu!LRzp5wbfVRP_+8#>0K z=YU8iL?^bB>SuBcYpl*mr|F9$?|y67{>Z2wo!ysa!`>+Ywl*G-NHYYHV`NyLx-VPf z>JEaU@(rahkZAM&^l$9IkeF$IksNikFcHE+&dHVA^5aOgLRhK%*21abGTgS+tQ^Vs z^Gn*^S3V!|kQuSVbLoMyGr_fyGbDS4zn>S=e>gPGb~=PoH-v^}RZ-(wOJG?ubar6F z@d{+z|Kn5#{^M1Lp{$~s%PiF`lu(quW(^&HR;+@csVV>5BV&0Yw&i`KvUAr&h$4K! zTa$a5gp#&X5$cE|K*F(7`}Jk}q;GZcTN><6XYhN1!ri9|c(}+f^pZba*~MvsB+{|7 zRm8ZVi+YB3Mhb&%*F}-i!@M_q0_85uCA!7+>3~n1_TUd#VuvfU?wzYT$teW78kNJ? zV{uLUp?8!SI*YnC*j=>c;x6|+^;nLuW~!>>WCs;}4T&ZW&8O8_T=HTm^gnD6&WsVM z3G9_M$M}OC5+BU#Z>|=8l~MFQ&Y_FEJru{3n+o0J+o03jN;Xn#GFihAQxE2CK2 z^8w-nByo2~;m~xuxu*J-b!W)ACDt$fda6^&z9hg08=B6_l^4$Dp%^_(G2|4mWvYizxTlo07UFJBDGP3+4 z#P@z9B8i~sG3i&_bZ-oHzbam2dA2@U1-eK(r4Vt<2K=jQqzS7 zWqcB4RtTk4;GVh~$tCaliNyE?FAS%?{<`b~rpZzD-6|j~bdq5E-Bd4tTv7ut9P_xo zhAnRgSWnneB#cjc}mq9ZdZgyEMZ){s!RC;w8XMR2Fc z!X#n114vXXf}GMNQJ4Bi?vQT)`!iHHZXAL5IDfEYfhWQ6Q4Y8UmhBikzO#i1??|97 z#V>lv%1PJ`Sf<_vYVWRbgcmC^`8+ndidd!5BYEsNG+9o{{-tPUNs}GPQmllJbc;(H z7Jju5S#i|RMSp(pLj>i5m5MJiCYPnuTx%a%REoQKVm9@>UB=v-iJ$)TV9p%`-gl~WEiIfDG}nS5!whM?=JAi0mHvpt&qoyR zK4hb}K=k4E^`_VBL+1i8H@|8BcBo>#(f0lg|6>_`bB7IDPxmHy%aj2w`Bod|(PG|6 zzQ_sQ2*kZkP;|vn-}nGWxfyln6kVyAY;i9n%1MKMht8W`YaS#Ie!tLenlJlEbU%v9 zkDhA}-%WO%H}fP0b~|sIF9k1NK8FYXpW1JpQ*?1JiXZV}q>e5Zl}+NgP@>zn8c78` z^F3{CaKSqo#doXG256%Umd=;qH4~ z-ruahOzIcxR7i;|G|8xvLUR_SfBY<8n*O?GGV28_$PJJ0R2;M4|7zwP`Wi5y8G0l> zTF(Phf(9pY8;KZ(&O4i{R38~V4%m0ml=nG_)TO$-3reK399aWdGAcoVx*h@f=tode9@p?As0VlJ@PXn#ngZ`YR5tV3lnAbU z(xmq{mvunL`?o&t>vE83Cmv?xE}s9#)-0?KB=F*YzYQ`7d^&sukUl2t z?+y6ADVBJzK=mVP2n3e*uE<`?J5O?v2*}arqy?7u0qnusf3+Wd9TpJ$^}89D_W|P2 zaEsyw0@cX<8@J6K?gJz$Z2U{WHxZ``*bP|uHB?_xxRy_k)nUmm0jLO{9w0Aqxi4Tz zi0Ln2C*Hb0o_u@^|E>OU9|xQ1BI2Zr`Pz-2?)_J=2Y)a04DoxGLP~HQz~go=eFN9oYl|9oLIg3%Vi2U0kYHx_^?S<%y@c@& zVCe4Tuu~Yf{5_(q-EL;>+#w+!(_wc*qucwD5whb7@P*5Vc+z{#4{v{_nVItpRs%yo zcQv;)Y_>Yl;M_(Z80OKLmi#%6V9M9_V~RbziOikqr!+-bsvkP8#w>m5(aG))`quo` z4|pJ1DL?<_>1W#mDRvdiofAVHNBvvUIqT)=S6AWNx1GbX;r&%7$ZAh+{pb|mFU?g% zk@gbt!0#qWO6Y`mihpLmdr3Qz<9Nm9q2pyA!-T-e*=`?UW1%}*=jT;&*sOqG+S3{% zPBr_Rnd*WoXa^?}EAG(n726ISp~1hJNN~0LHsZY=%xWXeIwY6foSiw@o#!^+i>efy zwsHoClce~VqkPZ!ztNUyoIA;Vr?Vf1{6bU&l&}pGpk7TF=_e!IZonhchW{W$h=q}s zP78%;W8$ob)LF-LT7)G}=G)SgLIt5n^$9=OhQDAi_&2}eXT6%Fz=(K7F|#AksG661 z?6fBRD|TzpS7ucrGW>O+Az61ot_;l4J$_^}i;+z4p#Gl#_UyoUNRI5!?X3gYcp&N* zS>!Kd&i2}3Qg;jEh#ovv9p|`&a_gL#^hz%M6j=xb-vD!zl}ofhOX?9n99RPtuX)L> z9-h!_8|r4FCbU&+#N4uLsTI<)7@6wmqD=BFZ0L*LvDW`g3tL-~MC#$9#G@;`lD&4j z{EBvM2REc!1;NOe@YbKz zI)uawl3e&goY|44F??j$%#UFdkMjiE(qt}v!bd_@P?cQMd0(cs^Fmn9`}6Dhg%xr+ zGz7&dr{mFX*;~;<=q~sdDt%g)Hs%do3lS276XB}B-R>r^v%fUxCB*^|>lz9+%{2Np zl8?0NPA#@>VH^bX#6{61i~V=FL)NX@7`&`9M`Z%0#nOX1lKYu-;2K~%-dwKxE_5wA zhUv_HX|QWT*Weyu7$CL=OwVqc4<_Zc%amJd=eq09&DA3y_`aEa+O_+SG|6p<9rLLU zD8was5JWUOtM#F80{9|UN0F!^b?1bD6KPU*cLssq6Qfp7#`{A`LlYSocatcrR~%S5 zbu;&KPlE*vvPqMoVlFAAc9+Cr@s1e>5br>{>qLCx{;{`s9gXj)-wUH?z1K~LLgIn1yJkhF43Jq+j94R92wMr`b4V}_*YoZ4eX zV1304P5A4?GpNdZsAm_$&FKUZmE>|MXprl5OI?Qa*E4DGpa2RPsuUhxJ1S5nX^g|+ zyycpWy3yVs7J%U`gxn7NEk$#oh>(64Db9Rji5t=t>|b) zDX7^+Ov;2C(G?0b88ys^L+jlSL9(Vvs{wXTwP%YB=kGqn{Q-bN7(G(X+oZbbB1%pOEG510;QJNn}VUWb}kd`CMrq^r68k zfg@8%P18()AU6ItT`tEYG+dnGls^U2U60y%)FGT@Pr9s!WceF96_SdiS8=P>(@&9> zn-bTvJxmWx)Z;3f?UNc7+DEivo_;jCE+o zILtx!HJc7!cR0!c~)P6BC6?;GibE*M@j`tJif`goXSL7S)2q6`$)^LEhxAaqkP+JzVTP4{ce$g7JysRfEpaiT~}fxX^g zj@-iqnx4+#D4L!!iLBNRnt<%)ah9ehWT=GISCw-Ck|@Tz#$y78 zizL`#sPi|=sGQ#Wbs23$|c^02FoD9E{YPpV2*&HCxiE6ZdlSsM0SSz*~zbD?t)Tyuu3+)O7o(iUqwsK(IqwaIbZ&`TONztC&K=_+J{~F5 zDz3UQy9DQuw5y0;Xq@at4kR+TJ2=+_ohoK6(bidv z=s@L4_n72QIf4?o2p%d~|p#z8jr(Hi(s z_6{~3!w!GOL2`mo*DzDQKhD~*7HG-GG2QIz+gh>CXV@fw=K!Rg(CO#CU0mk^*#Rr7 zB`m@wvM|LKCFH9!IJ#yf0{)N#UC0*)RmL(OLA%H<%5=B04{d*vvKjWwc`94qf`3;$ zZyogMJO5Sqm#={KtgA~poz+afDz9H(6r7#>SnuFZqF|1rX}36^qs7?TqZp$$D%+Oe zF#`@t40j`k$jy96hqtV?J@<`Vp(_%BHsi1zTBsPKV>?HDBwAr{IDsNx7&F`q1d!YS z`HdxxOUaYV`9@TCMciUHr^ca*pcXgQCY0ZumaH$EC^Sa$pZxX!M(3AJHlcsVs{5Ar zyo&dW`>ug#$2VMdi+@5icNQQ*!E0cRC^Z8THWd;UQ_lQ!YpDKDOh`)&D-RAyOpVi? z6t5-4m+#K2+fHCD=d4Y{2aSDx-Tn4quz~TbC~#_YrXr_!3c zXS(QNW1ob7^eW1?)oqnklrZ=-t*M{9Nb@Q>I9ki^P}9OZ6;L_^KpXuxJu^VItMN~Z z{#Cmr$3%RPjziD0L}~00*z&RC#`@ytnE0@dzyW2m+YN1bVkY?E!SIFBpvCXAG102~ z;S20ug`X0iEfC~?e)Dq39aH$J^ee*U@*bG%zFMrcjhusBdc%$qS^^!6gxLLF1;y-d z|1*F$E&kn{J-KWJ-oHKB^|ZYw9BrQhM3ZES>8a$V_rI_96~rNU93>RJB%W;)E8%aA zmy711baCB_d*^+673%qZ+E_VibhMEAMo8vcV5Qc6pCaO-V=NRA_c7ZxxJv^=UX%R0 z+(~y#hW2qR$#}x|628>JB7fwy&7ektT%D51A|rqI^kiIb;1nO2Z#Zpn)%7eE&kM{Y zYa~lu+4xPqUC!`HWCQDj6-;BfxPGVy1p-?W?ZojS(+e>$1dH|OeS3pN22DJKt`?*> zO+la&=?O$J$LdPh)Tq#Q=2OPbp=3h~UArxKr4@ENp`3~KMn~G?&OtBnn*Xiy$lQL1 zkZhKcI#x?9kkyUdnf`+CCdbwv1`EO5knnSxcBDr^z3d3YPT&@yE`ynUIeb#64rzx; z=K@v}-&?`E^aYj`hI@pVb%Cm`pbUx|7Km=qNkK;9YNt}pZq(8}x4A1>nHak9p<-}t!c=|nm^dG zLRwApp}gIZ6`2l!Rz4Z>J3{d2tAeL&AzUaVHfgCtQ94szXGnjXIdW)~@%v~MPDln1 zu5+0=3^Y8GyzZs~?1K}NE$uZ{KAJ^uSDC7U9i1l-Ij{Vk1@P5A+F!H_2am zUe&D%hXIZ>JYlbLeADhYvcP92g-b`Z^pBhVO!Hf<;3A%LPng|pay zA@`8VQp|2Swi!%bL>+*0cjL3iQ0k0sS(K6gO|MF{lxc>0WmPo~exd3%{3bznZvl{k zzF~)^{YV0`@3A5)SnfpI_*yFvC0%a+Q{p3>Cpn!*1|6!@G zj4q=pmuzS6{&7K@DM1!ZSc3EK2=^Cxi87M>s<{y8;C0aXa?xgK&Z8oyS(%Vf1MA6> z%kvju=H*>bc&7I>+B3_*N9 ziUEBN=|yCYXn|AtowA+Zvk}P4qlL0)_|$k&i#_$MYl+RiTk=bbfmQqT$pqa{ur5xi zw1J>-yf13IyFxU`OFPV?X-rIHH4HZnMLmoO?V?cuv)@u&yOLDkS83E+hMNWX_*XQ~ zmDyycBF)PERsZG@`Pxc~e`(U7_;jnvQ>}7Gbf^}+uAdrn zB?%|8qKBQ4m)mpGbCMquTF0nXMv50^u^T?DA!k=*Q#i9rDaAD9#$n*anJ^ef#=*O& zfxdU8r6n+|Ou4DaoeS#hKzw*&S3H+qvf~DC6E$mcX_L?=lUyl z0@8bL^PXvGenU*Y-Px}e$p;w`vG|hj{+=mRWd(ogZfB_gpC3p$tyhBPBDHhBWk4f6 z_4|Ikce2T!92*X3Ue?W!qd66oQAi(jN&3u|cluoD4*9=q}0{kZF z+u9Y?r^90QX`pV)N-1C)lBE+%Msn3Zb0*DdwCZ5u7kmX=;rY7KXQ9KK9^DIZrgvqr zr*na&c4OzZ)`ASFcF_I&bKCmYj7t>9IbsAR3MHH|wX))s$_o*gu9L|HbuZ^F9-4;O z%J09|&KyaEL1(v>V0g(%R}XXjl=-6*2^eELrf*}+pq$T(K|nKJYWQ3@NqV2~yqJ@G6Im54I7r zvBtXgDxbXljBm4oP>j^>MZikU5n)Wpq$NSE+-3WsxI=M0jE#JZhPC-hkoi1 z$!70=Y_AyFk0054U{bp%PyLc-xOQ9fOP06#*5K6An;5xueUG15$unT~nDdvs${W9c zz!#v+c+kwu9$cD$xi@VElK{b*Vm6Mvl0Z$y!&gjhE=*yWKgx6P*tSSP(}aFZXqwDM zI%7j|&zx0=#9D?Wm(1SpWeMqx`vggbBfHwXPUqmdRWkL~VX-UbAZY}rwbqbD85v1H zghcDj6x4FOD9B6l#+Q@muN#*ec#?s*#SAdB1gSW8;N_6_R@CObw$G@dWg9I^)pQO8 z@un-)(p9L(W_i&>s=8LK4xsA3IpE{krrGkF6q}rtnobgCl0fw=DII}0^?PHSoAf%P zgPfz2kj}p~F@KknkiJdOfdwT~r_m!DIYgeBX8ZI>9hHD*d$l;dQxJ2q<=iNL!UhZ{ zjqW>RQKQ~b;c6^%R04$ES^i zDPxTz&I;YyNn55;T1jCD7?&iDW5VwDoPB(j;cJ-Kop9iZJsL}zMKL=&M9uk0?~8jY??9pG%IjH3jy-_fm!{XVMM9>sortZ}DC!+3n@pnG` zU0KB;4pLnu?C;<8d>la|-Q)q_$oh_n&EFP*Hhv5Z@-$L>j$7CjFfumGA4JZBvvfDHo4S zEAUG|^Ab$W5j9FS4kJCok14dOFI}Cir%l+QizP?!>V`7~@z;BnHqHF5uRE-d zB_86QGkH>M)zcE(KaEoztbm45SHCl#5Hr1&+qBSR?G|tBn zJA0R}-L5K^0tC+B3%fZ(y*cFNpjK=fv4dkJLNwXaOU&F@fwu1tYd`nJVLk8^yVTL%z#k7B@-$e-fc5uZt)%Fi_EhUVS1uaJ;&8q}?((yqwD2KFac-WL^+Ej2yDzY`G z`M4>gCN!~pe{)Oo>5$`iJ1L;RP^q$tYA*yFbG^g`kE?*2+nQJ3nTfi=BYv?R_7fxs zsna*>y&=B2TdT)unaR)-jvdq!^6<%;OAwyl#->B#3F52xkL!Y#M@)n8?%he(f)GND zlew+2g{cRhkpobW9cMU#SQ$vnsk<(dvg9;Er_*h@jbt%G7b&Nabc84 zhKWD7QPo=v^UiHg!NI{$gm`U@$icy#hvzgSV|h+(Q}VY6isMn&djdjx>n{=-5w)J4 ztsn1yf~==*=bEN@?$PcHy+(Zg3Isk~l3yNt-TB)ITzDz@Ry`<8A{Nv8iFn=I`V3Bp z6z$SZDgD`g`Mx|i`RE4_2*PiOY%bVyqZ>m6H#7ID*B*8UeYr`^`0$cZ}js zr!muKoih91BT2e^Ni;X!6qVRI-tNlcjM|Gk3j&fayFia|^G%)_L3k%!SfL|S<$res z0t<1o-mYF(pAk=Pii~`pG%9R!CPgPOGAYaf?!mt%0YFMKJoDR6xbU;)w3?1s7z`mj zRyJXW+GtJ3844@Z*Nlua*=pfrr&6OMAMbSv(rUF)ux)Hkj3Hi|U6@xuYS&i@SLe{H z5u{FO{kJBEU+19uOyfK7Yc|zfav!YBESqp8Q-}4SQh@k&aC*=3DcHTKZ%oAfGE6pQ8TV9xVf zgbbVT2%7cfH5^#44n~8jZUT>|LeVL(e<|{MwS0-Z4p|xl7mStLbZW;)NNTU}AmR)6$EO1kHh;B%rf1Ir7N z&E{0oi>St>a8~n!^lw{Kt8t@4*FS#vLM|QKhpltX-Z0-ynrRC%6vDY}3R=v7u)PIW zcR^XXUOqgXAAALB$F8-KLyX(Y1-Aw#>C@;eu&<%0_gW`haM~jHG-%*^0(oBrND{9s zL~lE(VbZ;&)yb#vY)`~sG(XqWOJF8xelm&s{M8`zt^tst{EULcDK|tz)BW1O?M*KGF@5ON84yecXxBi$b(SHMZ0;S;weygs(0K^HC~f$D znk0kjCZfF%n(V8iYe>+P`)(r`72YdwdyrYN`~wf!4ZB?z^c{7f@te{&z;7Sy*_%|Hg-kqdF@H5?UYVI_TFXT`8C}pJm+z4ppc#F<4gd?E!p@|YlD_LsC8&m# z|3NEGd+F9eD*ycAZ6c-TtTczJ@bY5lxOuygW$0;xZ(n+LbaTVLB%eHMwb`cRs}G&0 zrSdD)*{v-j7-utp2*Q^DST6+H=oW-c%D@tD_`!Z#jUAK;GyF8PdYc}s4>P(IM8NRG z6#O0jqo6`zQ?+9St&H1drLuLWmj(I@pt0d2@k_ehV-y+LMpyD_OXz&JU#Vt*iRaH$ z%6<2Meh@STxyIR3>w2`eT)Pr`#LJ5mo4_M@jXx%{K#a?5O1_;7kkCwCHQe_z+|6|C z{Dqv3FVjt=fZ{0L7VWm9-18VZ&*h#!6VIig5Nk&MXB(dX+0DdK4fqp+G(^!EY1?Xk zBqtY*$6a9IFLIjhp(W*qD9=o$TUq|$qF|-bl?(a?DzLvu0>m^=ud;D_&MH$WQBV9nGxeyZ{RA;cFeh;w? z_+2%SJBx>8VJ!Wcv63bw`+-0^VcE=bFXH#6k%(_uW2!F_wVQpRZG+uub{Tcq^G*a(g;+Y%oD!_!k0`3BA=^k-a#HNgLGX%SJx6avKc1S{O((pd1} zBWCG($KQ_e=dmWVK6V1*==L}S*kpaNuD`o6;Se+@Mee@Ki@}pBW`w-IDhQ8h7t*#G z^eLv4co@X8T^Uaf(j_65WRNGvHP4qxI%tXvzQ=w!at9{=mTS+pLw1r+UQ>CBd^Z|Q zFBNR39WzrJ@H=qvly7M98F{=#!iTsoH zGcyy(+o-C0Pnon;Wf%&ox2upw9?{%PF0PhlOn$D#3fA{3j-jEGhf<^okxmKo)v|BI zA|n_fr2>AC*336B>m}CrJ~{J4=Ts>H0=*#U@sW4~c`L#}I4+!z!{cH#3imDAeTUq% zk}h^0K7rV5HkG*CN0!t%af>4p1}*6vDBK*93M}J!BE8S;pm_(Zm1?W6ril(XG@YSH zF;!u$ZBWP>IO6eVY~9(-Ea4UW?oif2Eb{(uUjPXkKb#RJ?TMfjld*?K3Olg~*%Mb5 zPqMB?*|H;vd@S5DA;Ld}qo#x%N{^;>*jdy}g8PNI%tqh zvmENGM zoj$FvMtJPmJf!0b1>!8BN3E%TJxrDzi?&0901t~HyX;&&LquW8L5V-)9pL@4FO1i; zC4BH#F4>Z3akv$&Tt#(%fiV%I=B#qprljjrxU8~he5R~EmYGNVIXQ>07HSU?>=#VT$}jI$07m5 zn^(tYllNNE)9QKRDIa+KME5z+sW{YNtQ8MYcv1}E5MT3XO=eA*`_H3GDx(HLei#ec znRm&Ku`eGICSB4m2B~$zP>)>^#3f*JS}Wx~-J1taiVIi+Y6r^_3PsGo^ zBHMo3peyXq-QB<=;tFu2L)r@VnANQpkxV#o06tnWjA@jb19Q3i5P6)DGE{vR-E+C1 zYMkLOk*cyjCA~~kR5;bh(YX+z=sHzey)ax69+8{DtxIyQove#}@e`+laEm~{AvFwQ zBZGksHPUp%Ye16PQ^Y_?jD>ZO0>!6T9br4`flohiJ3t#~AM(60o1#ngw5z+$i{}?m zAWCpzbY9y#gYF&fWlf*KS0wVp-5Tg^2xAV0He!hJpQvA+>I&-Xpgcan0VQH8+6gU`I>QDo?j5%yI+TYAzeE8!H_%z0Mz#3U3;lESY?Io)>{OIAe zG!V74g=;T`|HLIgI4Pb&_=i8n_6+JA9xs-2_zB8#x4difz?zNW#!e8^TiBeA_|N1) z2{v`!HpTT0^7!2;B6A5d$wHgp`q<(?m6v-$7q_AKcF1Cs#g|VD&?_K(3S5p9H)tH&aI}bt?oUo1Gk*P4nA|9a3!a@Q*o6 z33_sP+>H(z@6CYr>eo76S@cQ{ykO{*YWoqgyqvUGlKUs7Q2c~LoqWseRCJ8X&(&DL zTkoVI5}o_F3NIY@HnWC+1`cs6>T)t;tbV5-R@_xLwp3w9__#;R%3d1h8+em`jm;}z zvf)V5?Vncq%Dg>FwHlDlD|@(SDe)vuY)lpT0&dRGA!{#54G_e_67` z3YR5(EmYiFP-_X;b!Au_Fn2e78fgNt6Awm)>8614xCP7G-y z^4ANc{sPu5x&~c>WD1We@8oBgb<+zE9SRv&&()gJ_5&5qg7pXu^VCQhOXAjye%&w| z7uI%Mri9^F8%DR^&1HY1X+Na5{L#i(H<(hbagU=IP0xk^!3xg5Cy8hnYq%x`jn7yOOxW*lNt{|}Q2(I06y$h`NKYQ! zTl&c<^BAK8ZQxa$a2+)Jat{Ms=m8r(7Xksf7*GWzzzI34-PwNhr;`Sv^$Fs*mXMEO z+;J%BZ@U~z@K9!UafD`cSVALDI9?R1kY*r{$~noI(b{3kr*6oh*#)6BOpYwxC3Yd2 zU20EPerB01Fm7+v&m#2FG1Ew;VKs-p>geReb1dIO({{nG0e8EHmh!~P%xx=7d+X!{xyJYCl3|4=J^bNe2WJ~| zOofA8pF?HT%a_#u4`@J_zj?l%LJhMI9`B<2$paxgA3yAhbsOCg70iYn>*y8;EQ(%r zySH=_s8!{`(|@U2f?U0KjAAD1sU2;vM=zK3e;PHlu!`2vAb@CPyV?3|=TRMKx7+Kj zs5tY0kLX1-c}2^%nvTRlz|tOjc0KbG>3X8O9)NmB$E1q^dOMts975!`^yyz*9NlT| zlE0J=Eu9Ww2rD|VWK>n3h1F%0)10!9WcBYbA{h|ze}9$1Y3bB*!a3I6pgNf<+Vf&% z5cUb-K@Vzdf^%Mb#CVD_lBjB_KqzXf=A*8UnbOY|41cC7eh2lV+#d5@8D*ObHlu*vgKMhW zAH7~JL%cu->hI*ab(0~wt=b%{Gh(sBFG<1}$E4u~>te^c)ksi^9cij0VMN#%1t3bt zKLQz33B6msw{J;cj01m=@Qy0CNI0fs(jdrQcUOu`hdEA-kBV-hU>bo)QUyU;LWa#LLzVu=MSUel;9A{JyPE(|8cx zS-Izkh!=KlBt{_XTXB{lWP(S(LkyyyM=!)+dl9fiBxkefg{~%t$V2m>$KxVU+MRJm z^}^~3Q5L9*?`;(@zayqs8>On56n_*Uaw`7hT&Y8&U9b+lY}9hSvKDhVzJHmC3_8@@ zPeeJ|7LUhUx+Tm`FL34Oc=qmI%#~JX5Q%xFbts=w?bB@Mc%k2ii*YH-3c_D$v5LUX z{;33u`=sfp<~Rd*o^@5rdhE<8BKOjyr1VBis%{nu9iKY{10qc4h(E!H5Mlnh)IKG0 z@|1ix$lh5g4QDrA&Bi5;YJb;iTVnl1jWM4~PZ%n}AI%sb=go>+YNj()*J1UxRZ;W# zPJuHoq8ihv2y9um*6l7VZ@Yk4)RAk0*NqksC!z{)A-9U3HT&Y&uLGjed4J_Y4CE7cyMGO7rnYKDyfLa*yC@wKsQI&T9Bzm!55|*eI1lgH#G9ydA1<|A zl9v58qK|iKO*j6n!o=dmU36Ooggfw#OTtliJfpkGny$b;-s`Jnzs~{J>5}7qns%nG5)%Rqxm~N_iv-z=+9?r8GnQ;JSVmfF6NV4baRd$ z^ij6yjzevP+loQAIFtWbU2u)ZB z4+IYQokL(^U*SL`fQBu=0MpfO4=beQ0vZ6dJX7e;HbMh)zPdC)nkxdq((C<;2ue_D zci=rlU<18EP=CVQoh}|O^+j-+j%L@zsL;V2ssk+a00U}}`bXGjMMrHQ0QZl`H)awm&3pW3eYDk zEd;B5ip!@`<(M{M=y@k6_L1?8p|!p)y4_c0l?70YqJK`xQ!8AyPx(L%PAfyTnzNaE zSVGn7s_%!DmN$^y;^GUp}j{O#qX zn!$=g7iS!_?M3&B3Zf(1YFml4wejJ4h^9(i_V#+9Ewt_lx$LOZ$K#&=`uK_dDBG%_ zb7Bwdu@6oLB^2-lqb>p+@9pYP?`)_N0A9sdfPd<-%6J(Y9bpH;-6wkxval}*XQtdD znu+lg^|6)8*473bjpSp8#_rGnMGH1(uf7tVjA0NBcoq@7A|MOFDI|^7o*>N4)rhL4 z_Fm&`!-+SuD)T6IOoxk7nO^m<9mP3o7CZGZJWWVf&t|){i0!l zxPLP4cD#nS(FWAh#?f`s8E@9$DN&kVKF99%?^uNpXvW$a-iv36>r1u84zXzFmUYyO zX4s@JDh>7hJA<=a20<&zVO~V1HoZ|DYgm?#)~v*>$mLXtGHwkEASAUJ=c$N(>bw5m z#*>g3sM?`j(7K|Z7;OQOxgE$dx~rf|P=C3rNCpEJMUKs~dh3{s3*)Uh)7o7bwd3Zk zIb{nq#2}5loe?4&Xydx8D4<2VNUI zr@Y^Zh{*AFsmg{>9y}_snu$n?jw}_GjPl1SlO-L~Mwc^twO!Ie+}!&E%%9 zrcd6xDn%Ht%)AmBssxxytVU(kM~ttE>4!rgcTDs*1se-kN}Tu@N*Z>ZE%j7s_wwUr zJS^_uOKX8@s}y3{L|j9_(DI2TBHq?A4SKCZQ_@Lv9Sx)xCsWaxI2cg-IZ7QmiM?>W zA%q31891GYY{TGjwvi~=27iI8y4@{Xsf>x^4~ZqM7NN%VAdEhrZD{a^prcYbC$FcX_=RynpTeg0OFc)OyyE2qeX)5 zM=}L~ER=VoAW^Lo`SoyY_8hEnQa*_c`Nf6J-MDhsV~e~nMyx+=(0|o3yS3I{={Uy{ zXk!>~Ajww!%3D7i1RQ6zP36Wv%y>sN^(L+HW( zXma!F=ErI8I+*-?J$-W2ab=!x7@3bF8xXvmik48SE-ZC+#cDsgJ>?F_%OZf0HBtx$Q z4LU*Ch}oRjcP#QTK}?9$>FbKSNfPbIJj?+o$jxb-N+aK14VtHhb%q#V2^vG6ORDxAoI;#e*p*?2R7JUZo z)ToR?4YTI~oP(nsNEdhPpSOC6_2b_w#SMIudt^7Qo$>vzw!&(#p&GP05){&zP ztHe-yQFGUe6&P%7yE~uh*V9A!Pif z4Fv~Qb6z4si;As{5p#B*Lu_Ndry5<64e^uy$`? z7E)0+dg*iNX0{>9+1c?#9}GM0zH(IUI{xZoi+`nwG4N=*hbG!x%RS_@$B@QsZKGU4 zdkJ@1M|Bz4FBk`&GvRLg6y}105nI~AOjHbPgOgy*b7kv>#JX+*ink7>rHOZaa;Bx< zHh#A~o&ePL8>g;rDvi%Il0LIu`YpT&%ZW#xh`^B{fTL3O#CmHzuIK?DnWL@sBO_2i z-+znQj>EK!W0S?*@x3#TBm%FcZbP#j3CqTAG(fm%RJJwF5g7d1r;c*h$&Qkg%!bEP zUa^G#FksDQ%CuAihh?ndv}`DARb8?M!fyXlwg~2O8l#}pC#9qgQd}ZsUgkSCP|`Ix z98X{f{m-JSn-{&Sx%xbMbW9WeSnli3F@NGmD>~PBAQp`8f5y^Rcb*8MIQBSBJCzXL z_>}njgj%fzCnk=!iN8PRfuZrRq*zW$`$|?~8RJYW;Fi51iksChw`KiHIZ$CvvC3DQ z-J5QANe3&8exMpev~L`;#$rPy^lF62;X1}Q4EQHAqd8mRAX$R;X3ItPAv|oh-+!(@ zkC%HQfnn^T&o|C4vOu(qabdalTfZ>kW@0YK=z4f(3>?{h>@Iq&93m18(GX^)nViYZ>!nC)>3HNL9g3PDu@Zzjqn#lz)9v2DxRX<*EX*+-vW2PXcu8i!Lj$fPM8G)F zz7^a_tl0}EK#4MS3j)wR>EX7A*ne&tAOxUn5b_pla${(VVVRRWRSRfJh$aaZ z))f;1aD<%BuhHWi8Z5q=U0y_gg*gkRb~?U}K4}yLbsNrdB*q<8+R&@p zTCj-HNC@d_;g%#qoyAElH!d+?>nThfM2b7mq^rb7trZq*t(gB<94c8R%70*eG+vls z6l^M$^6qBm0Bv|YHU`K9E5yK#3ky2D?z(w2(bDI;zG=Ij?8*7At=FCGWHHd4n^fmH zf^F|w4TC2WZZ5YkxkQVp2WCa^Vv;iyrrf_|P_GDWSjRtN6{n zuaQo^RMrOuc~uaO9otJkkU^(?y5yOn-YGAkUj}yNnCd zvQ|m3HUj>|bl zXjwY&5GZz($+SisKo2JkU%0cJMuanx$?)fRO5Yj8Ku@0XJrDyi;XEM@B~!vw>s00A zENtJg)$-IYv%@*amw%ZtC|}u$6SDqX<*YY+waD8n#bE~7NG!pb4J|*+q6ebr&cjO{ z;*e*j`EeXNkPVB@GZe6WoP&fRsz-D1bXCuqMx1J+i($^bA_Xzb0(Xq(&_H;3IXfQb z24d}V0tr^vv)=uB$V_^{mcMce4gt*9GPhT2@SwmYS||%c~$RLY#^&d@-_+DkkjbC`7tgI zA<#dS!U&S2cRymY<{IqMi#FUddO^pg!;8xb!K@bA}9BW54Cg=ujh35{s~ppO6f`h$2#jz)PHNg+3n*|S_Cq}bK@5RQvd`# z#EUmF(=X5}xS%f~SkcSRc3~BOD`8U9gPkux_kR&pkj44>+aSPruQt0MG#|Zf#+zlG z=@xUpH}x2(XJ))s%FMU~U5a#ex->Exb!MQgH`tqcFfbilhuGc|vkKYfMY`K8moU&W zE0_!a;(u-+Zo?L)(d4s(X97i+D8ZT2TzyCzwz7h!lW+NoFD%+ff)kJB&z0mdU$Hvy zE2uw?`ZFD|JUC|B^oW1n1&6(29Q*zoGWQ$E_N~i-T97D`arz>?DLuba(^Cg{)Te7!3~QXu0^C^I)& z(GggzsX^PJErBm2`oryO-8o#L%5dnNpYk|*##(Q}X#@yA;zLjke(Llo8gfiuH&}Sa z27f*cI^MN6cNwF(NaH?w4A|X?Eypr09zeXHD>9GhS;Q~^zd}jgd)RioTmBq z@H{@mErC}dw8E>2<2)x(8*1U7keAj`vDo0?LrFLa{Y;8HQmn$%Cr)b!3>zkv_sZ8= zpZh4v+$T4u#cP=3!3`tR3nneJM119Bd44%YX&)tz8!`h7D4Vf08B6Kd2-uJ!>>)i zm$6pH{^`ZH->~4r2^+TRqvv|8V$^Op_LF7H?4*2GIv_e3G-36}6Trc{p&jd2l7Ey6 zv&6258}xyTwfKM7X8uy<`d~d%31ATK8%K4bZrRWWFv&g~W>JWeENILeeJPBIkSxY< z;Rx}k+g*(Q4YrI3t#HR)7I2=roANva$D>t)W-YoWYjk->#Eq#p(k|>};@YNs*xs}8ZGddUb2W3kiT+wK zrfON=OuIkWH6`BASZ? zu_O145=PI_qi8h? z0UPbvAYyVDit@+ZE18z3en>mxTXCd=vtj^#vb7I9OGa9wFPfQ_MK#P)C5JT9BNkB( z!jiNIHs1XqCr}P&V}EoPmW8^Pao_|OZ(HxG9=q8@`BB+Jfd>N&_Ye6)-hjA@QE!YK z@9f_K_DdTRmTXyvWb}ZGeX-fx?QH~|%0lF2J*N>&tACBG8N4wAc3ELYunG4` zA03Ibjf{y+>wZf`1@FyRxutSrmpf-)%MO$%*kG*xU?CsGpiW=gGb`))=Mr8iXg0H) zGJ#<4)T5|Z&db~D(oXu=ff{PrEI6R1`YM%dFLnIVwsg|@r$&j}u(n~A4taGks|x#H z)i=^d>DVl|L4Q#;_C5zQ+`3W$KXn*lv3YE6Yu-Y)>GbJ!QRvFC!51zv!aWyAVry~ zAI_!UCHwiE@GTpz z`K51x$tM=%QJM=2z6Gtl-d_&O+Vkob1tEM zEF2f1i;Itz#rp2*`Xlz^y8h@&{~E8TtN8uv7=BUWOvIT;qW4YL--mP29RWZL$TigmaV+-{0BZHS{bG^XJ`1V^6wD^5jB1@*`zNjm?fJ(MgTc91S|PU6YW z{pk}YD0A)2PJJ_4MI?4ihDUc(oW5s(Fn zPOqJGZ!c$=xsxz9h}0of1}teacWug5P4FP}=%2NsT&vAQo5(Tg1eX~nNK*pj0Xqqb zk;Yx0dcJZL|0gAnBF+oJoEG6r#~je}V6IS;@hsR6UgrQtTud<>+(h@B34d5^BTk_! zm1${F-}n#*YQupLOc&YlGG0zLQy7_2B@hMjUY*kh#OV^=_7h^gSsZ;lZq(Utm!*vG zk;6Z2)P|;r>$n$rNv8BdhIH!FQiZZ`$}DM^S96B5Rs0!eOPyki@Drg{J|V-c_K)tv z!ndGxUPp849oAT`IF5}S-G8T>2Lj)Lx&@f~ z+zDk?PIfFNgfRU`D_fezg}-?RYZ)6`%+~fZ4ehSni{RzY!1-+*&VO$us?(wb^;-wj z7aG(TZv%Bils*sX*?3un^ko&&*U=r9<~U9ZP9IPU(0+5%54@fMJGvtr+<$TdP6PrI zA6E$3j%X9nx;i`NJ%HmwTrB<#v1i~ehC5#9K3!vE+ocm3A% zne%Dr1s@HN!kp087J3OsI1YCd+8nFCtmalV)lcvf1?{~5Ub+_LTqf;eY)*w_zxWoFL&K;@(*O(i(9fVZ@%%mrzF;Lyna7E)@}`g2GYVHBie| zPzyZx?#%qdq*!0teCVm{0Esz*&EEk*E_5eL%!|EvRzN}XD7I{O6;yRRZk1l~qPNAa zMs!8T|7=7&cJ;}|M3AF{dND$Xbs~amZnAF>n?#=$ZhvCq<8i60l71n?&1r2T7E$Ay z$r>SxsP|Z4#5j-V9Ci7{VMEMQMzExFSFf*!<08DXs1`$+MZP&U7Uf1{x0i{0HZ2bp zDj{2#U_>+(Jgo~D&&^;IyMU~ze1k6?6(A=Yu`p2i+CCNMgoORS;Q1mm;Rl-8=W%Qq zZS!#T`+x7GGzJTq_#O3EUH}HnwQf%b(Wh30o2YdXo0dkB5lA%wf{+46xCBz83lYbt zCRw@_hK%a)je*dPb@KIsdL!5hmsTrcX5_@C^-RoGO$6;8m=&*m$GfEBThg>ay)749 z9PF!WF66Wvz0GZA-#(rs#w2?z$K?i*J$Ii>plk>sP(`K zM}OPTAvw&pN{!nO+ZR{2mJ(MWXPj`iveCzAyX+5U-QaNJ-dEO9#U;#|IX$oSG+{cE zD(S;ASUC&$AntYx*Lj=fU7~2iY?7rb9m4|}A!jF&m<+_Qx{iG8C95N@R;ny)oOU)o zYO7es7v#ukgV92JSRn+;Y|572ZZr*L6@MhTC{*zSlEGo2#w$9@xJTMCxd3UPBcAA2 zI@e!ebN#{O9Tny_h;(jAKpnF55nvD&<@Dz#yON8KlJ?@~^-Sav{MLmu`-Od3iR{*2<%jss`I`uF{Pne(Yd6aA+&V(58F9I+h1%{zFJ2y~ z+(ja?vx^kbJC*?Fi}bKt;#CC)UVrfB|Bm=ZC?vU!3l961XSx8BqIfKQyf_rA{KX+& zZ7*IDL4pXz>B4i2VU$@#$f3%m(cMFglMDR$lm>Z0ukjDpwJK_nXB-`nvFhc9c^3J~ z1oZ8j%E#p;0kLicN!U)x0VUHf!6Fy(L({e_Xj*>Kzkk1&?KUgDq!(h#`G1rC{rd%> z$^0k&`}d1|y36zRPx|-o7l)1h>fOV0EkF{D)i_(M)Apz~2i&xYoe8-y_nPf7EKJoY zOO9()Gl6EL1=WPob(WR&5Hy2WBDQjdc20A|?t?*aDW&8ar*LdT!MB{$_-f;8IMJRCeI%jsBrTYpQAAG^?&TD?b% zt5r2oPq<-;tSO;BP_K!HBf5`DhYSJ#F4uXz%*u;BND`8qPVM|*Ez9ImEmeoDGCYn@ zFOV66?kd*t(r9*SPx{h2E2->vFt1blV)d}BctL7WUg=}6CAH2e1fvm_R>Z2z(<2!B5}X_A}bZ!P$Mui6=IDQ(b$z?ZIkC~Eb!8P~PXtu8j0%Qnv& zHma-V)-D~tMTs=3xY{6Qk+y)4l+u6Z995a&!m55bVD&i!oDAV?Xp>67D=9qo+0E}z z25G9Sf(g;Ytf;1Q_(5}iBO3|QK5~#v^QFvI30WZ7$8i!SiGQYGq)m8-TQHJn4LUl4 zJ*p!ag1LpnZ%sU`um@tyQ<88HMF$lbl9)#7J14@^V{?quIn~B~$@8~xQ7BLay{3C_ zbM{APr#fLji#mHVZt^=}b&>&ws>T5QD?MqBtn5pzS`&4l!fHYH&NQ1GBN5x0qEy@5 z{VN@N%iQZ8N`G(K%DwHK_RnvQgb{~C*kOVT3$qJ7z9tN?^Mnpt=JCtiJf`D8X-%vy zuJ7aneWO1yulO{ohc&55DyGq6i5wjE6{$+p-iXZ z$_wCS!l=m92g@%hz-Ms(7pWNJI;S-^4?I<$w!~6c2tighmskQo@K5?^tXe|B{$}#a5GNYL{S?uAN8JdDZv^Dy?4@aNopn@DZ! z`|V`k@#wL&PUT^Jd8MOUow8Fp(Er7Fg}MvlX#*XJsad7d%=eOjSvvU3?Zf_{Yswhi zmLlB7CTMH0SxbF|TN@gd&6F!|>eoU}?u|qJHh=piR4to^PzCKBtZvGYUY#;CaNz7S z+KrXfZ|pN$puMe54Q3$;b%mJopL*UT5zhvubKG5!6a{>z|YS~2L5?yYt&05@@ z!+*w7CCZ}ts_KDPYE(aglW7aS5b|DVma3RSpSxzcGZ>5K$bi!@^oYeFM>$0moc#tt zZ+He*{!7hX4oC1wDl5+sLcNuZak}DYv{4C%F{m2pS5itg>^rJv#$^oQrmG@np-YcP zm;h@Na5m7JiHV(za?R-vQWZl&oi}3RYJUZ*NRkjm#?K-I5VbXi`UT7xTD$`@whl98 z^{vw(h-F!;L)9iWq(CRDL``-gcjr3pR@NG1!EGUHyJW0vTcsB*YM{xyEIL+ zHk|@$_!YKCDf+R^?b;rnsxz2%cC(VkReZX-!1ctbgg( zWHvHKE1y{sv*-1_p7Sa!U#U_}L6=5>q(oWL4t%WkaKVb&&1qanr&NV0O%W%N7?_;% zcC7#jhniuf6g^Jfu|h6xjO`LNWKoUKrRVB1!V@eLD`K4LbeNJ>hZ^k&Q>I^NtB|pR z!TfGGlPoEZr`&p!9@)@6eygE-T7R|7)v1V#MklDfMv@aw6<@{>X7N)Jd2y2Lj`8kL zq|5vm?+ZGz;|DtNj!9M=i4%Pp?~m+Gj6X}lbVtZlisk+|E9Pm;`G#@%u*;9L%?2j4 zl8g7am=kNZJ+9*2-Eo!U#X5d@q|*k5xyGyKxX*bij{Aodm3(uAkmC4~x__}D!Xk;T zE^hyV;I=neFY^2`3K?d%ZmAdBNo7W`A`(^@!#0kX0|b`uS$x zyHW*RQLzq;fsYBSeV0deZ9Oh_$6_@NF+$S3VcL_52rl|5FgxJU0=-$ zb<36MH&^Now`|~lRj4Iyj(^?Xjc;D{MptSj?S}hwS8NYQ4*tNc1XOlSFE!DMaP;GF z@^dsjMs#hA&HE^}!6@E4-ds_M+xTUC%+pmINR9M*i`NJuKn40ws6Y2I>L(v{V30id z^!dl%e|$4JUS0-AJeb~0aeYlC-lMtPCDEf~j}9k8<$WZ$;ernPLw~U)e(8O4^**x5 zd~_x6uf3@vTto+&d^IcbWk$!mlqv6~3NtQcR`FI|^Tky06w52YIr7$ABQF90loSvL z4t}pM>Gdw0Jhks+1#}UZ3%b8d#xN#N98urxi4fIZD{VX5tmJd)6i%d8hOv%T7OMiV$~aX zAwYuLItQC~Bt>Gg{n^WSNla%_I{R{FTKBCR0_#?Mims%KQU>zcU2*V0aha61{smmBN$szEb{m@x*; zqoe^Bw&LLA$#LpQ44{PbQ;FdZtaSX>NP^zisW3Rv)EhhrLdPRC9amDyv5lkkwSz>; zTn805K7Ww@)|rh3GSt15>(D6XlBL6&Qyx7K*{XEBie}KE8kR|{gP-fX#|gi9xO~O! zz0^ug{^gNwH6c$Uwe<>i=8E^`GOoW2eW#Oz!i`rJ-^=J+cfY8bI4!6|D_J(VF(;sm zn1x4g^#ta0^3DQC-~`D&#u+I(bDb#A`^f9LL4U2T33);RP;t`>{X=zeO8?4(0Xe~< zbYi;L81g;84()XxNl8uOW(OHoAJlpu=$-z6oS=j)aB>H1=%{fU5Wt*pTdy|{GR`Ug z3FqnLhp?^X#2H-6B3c}eQUTk*OPwus%?X8kT-L&DKI6TaMbXkDWwsfD!j<_?f5lnb zDSx_MrZa3AG`om$*6XU-NhJ?7Yla(Y;m8dxw{W0t;T}->a&JIYB`~xnYT+K^xW4Cv zvqZ7%St+Y#PqWkcmqTKUDmYCvj8tUu`Gh2yXpb zeZbAcCkHfQz_~;#I1(A1Ck36-M5Y-cQ-3WSAVh%o-pqz7D-t3u-y0Hb`rcE5;ocHK zc=HIc;GL*NuvWL;u1s6C_&|5N3p==OcPoUG84yD1@wQmlVIX@dBXy<`XpJIGw-68) z$K#!?Y;0+KdV~H~UJk-VxNs?%TteiOFyZ5FBOP5z zE$fcdgdu7&>ymFk5QKnZC19SI=BxM!NCMmpS#vpP(=CE^Fo|R6u)xaB?2|PC;J7Bw zf(SUQQZE?F+)^*7xl}dcPAyG%FSKu%sjN=rFfY}3>K8$X&tzilgtv&R4}WK}&HPPd za4m02%a*Yu`s9+@bcMr<_$FkhZvx7c>53W-G4*W_bDBZPh*ytPgOo#D@frKKezsYC z9j}XRYmNp>rCSAy4prIm><{%vhDRZuP20hbl3DxHjOM->c)yYDXShV@Tf4HbmRz+2W;W|NJ4IF`k=^dR`t~jK9!e0|X-U-hZ6qoV z!I+JwS}9O=i(@aH?0-5PrPv=bNvTXyT~gxLfGlAkt3-hTHj4&M;M-H8cYf`}iQjs9 z=nhv?$~3Z!IEtTlVx$B!QMYQSjfe4vPAj2%pjicj615?r^pm~J3|4o7uW4F>gQCF% z_G~OO>$c5ChNkzmtpk@d(Xt|$m=3b8vXZ$XNM2TAnXScYZhsRkFNefrad4>nYFd>o zGnx0t;}Y4w8Y<;2d*YVCdAi-T2ET0(oLA>rgJB|D?vW?zo^65$(`f5>rlnAK68Li# zvCLUC-q+~Yk^`Qs`V~%7B~IFz}_uFE5VBMX^XfR}!zZh5#f z&F0T1rn$>ueUQ?}xq6epXLK-{+5XH?m7(7=mwxY*RudJmXyrIV#w&~kPE#uY%ly11;xM^kiI!z9Gvyl`ugfkdM)xaXenB!4`IBk?G&oEl>E#ilZXAim#( zo?Ll`R>LEG=_!|b2(=lOdHOMvEgn-Zp1~!^jp#XerNw5omWnTK=1}FVsT|5}5tWNI zT3kmW!6jOQpl;zH0|5}WO7Z6q=F$=F!$DhbYDCrIe4Q1lpf$1Hr-^!=RC4NlmiVsV zje6ElJbwoU<9@%Pm(2aM^(?iijUGPTtcW$uvllwEKz9DEpR*u=_!twgUm^hFu@eN) zhN{y(00?hYN~b?}Gzo8L(>_OH9IF`T9ATe{09ywd6z^HQ`80{>A04K?_mSjfyx_l* zCLnr$@csoS2jDBoU4Y9gI_sQiNb2ra9CYYYq<`10=5stAD-X?P49YC#N&nT3&S+mp z4P&uT+5JxwI{|^>VKU-5H6rni?)v)$q2Rk8ckz~!80_76l-fe5Q_>~KUfda$KAvSF z`hO*j#Q6WREE1Qm^5m{KTqc{>m;2&ZwSnRiKAzoTGonYhKe%w>&b*(`y(t4q?1?bi>h(P&%W1t(ena-+}XYkCh_I3 z|32-#rwuf|Ow^we^=EwU(;6LjSg&KkK|zmLE(B6ztWZG*WB<#f%|fiMr*r~nH0q$8 zBEit92aOP#RZ&tbQ&qw`p@c8BU_Bi(8h`yx8yK_3f}rPkM4GD5q&0;39MH*}*}n6- z367MulIA3fGEJwBH$DD?-YcMygDY>g2C(O*2*pR-(Ll1x`nwz91?^gK{_#-)qe$t zjB#hP^XK|>0^-E!<6$jMQ`8{MDEp!EOJqQh%cwd4eg<(czw>6a#xID&;yBe~ZT<`5`a4CCwJfkIUlduEufOGUp)Gx<-ExJ`(IRZqf7KP7{bnZL%ub4T#&_maKUY4N z@;P{QsrqX^csQc;*{>Gz)uLjBSyTYH_`fn2)^DLzq{UWJ#d+2Kw2e@?L`R4JKGHvW zKp;?>WXlJ5TAu?C`aMoR&41|!8)rAi%=U)=jw97?z9!y;k9G-`gA4$($fJe;?r$$H zed4n8rJRgK^qa^jRn%ts{~#)H;Mv}-%FPlLRT6OES!mHuhI~Rr9ZuQ7$j)z@zrvkv zr-7gzsM%Og?&x0zgrD)nL9VnJrMC1e&Z721hIo$Pk7^VAmI<&^#ea+)j2IxKVVMr& zv@dv%L0#!PHS3RnmkY=^Yfs-=S6gbgljKv|zlyhw81y5t|4m>nMjtn`gW1Y>z{n{ywiY$w)v!@a19WS?w_{N|79890wz~J~BdZ-V*oBb2m zBg@O+N`1?uItG5^g?}Qd{xY59@igee6#Ba}w159eU`YPI)QccbKoIGYy3k*f=+R;Y zuS5$ki+zz4OPto;f{!FmnU(c;7kDT2f<7j)=8*4RU=XzY0BulYKME%GKH$7W-zU+; zlf#di{g(dG@koDHdv97E5e^aYU%RwyFjyK7q{P)twMUUa)Za4fyIwW>Z({H%0n3y_30 zkMN!H>AZE@?SJG>fZJLv`8d^Lq0Es9LGmZ!*1`EHNt{+11Mpg&w#+~>*3;yLQdcQi za|};^OsXL+zSHWIq%@Tpe;pr~@A3yKBeZjg)L?@k==qt1+9j+Ugh^TFPl@YDW*}o0 zr5s{%>jR9hAL^PbJPk@mjlfVl%W zx2tUI+e%H@%Q8EMM!#O=8&h|uSzdRPiz5v;I;cM*kZ^j@R&)8V)9CeEYc>-4X%+CTvNP^eDdf|(y1Bk ziovz>mVc=sgXUc(H@7;Ie3XGW_nrP2!W?-GbJppW737g~;v>AV%@vvV46s2|(FR)3 z5CzQJx@MdEy$-u&n5`SJN5pE) zu>(09L9twZtJ}iuGJpNY-R70Ke!)^tNn2pg1%J9jGS@Hc-KMNSC{E33ZFa-h1}7}V#+T6&VBR)bW@8!%+Spu5{R%E%iJ!erL@8d7y$3I z#D8AFmo~T(LF$~<4zLq|joCO43#yRSQ8qWKlZldZPUg{HG@48UaUb+^m^coDCpn?S zo&&9BS3z_}RR5Zx!;>5u9Tw+nJY`;WINTS1CZHtqkoF?RvrUE^7+wye0SilQaORRB zN2CiM!-{D9i+qO&3##K|PWH7q0g6sJZh!cJ-H0(s&%!k zhs3+rSwqEdS?%iDA|t3-(gC!aB{WFBP>r`>@Jt8eZWS-}x-zx%BH=Rq zegz55w3p~W?44<)XjW51f`rF+$SyafDsSQm&rHOe;OuEb<>m}8s^cQpzc(F!tADX+ zGv^e6q6Bbq&VsR!_f+n$iE2tC{%+>t6omHL#s=88^h3ghW!)~HDP}>LjG*^pjgB+* zUpQ(I4lD=Yr)sLE8pn(0TES|iH>U`QXT$KLz=z~SX(>p4~9>i z^%nM^|K5;}5-&^`<$GRZhU|G^pno^3iDlWRzl4`07<(qdD6en@UPP1&-a=O&4x+ck*s&Ttd;~sXZ*z=YkkUFNntSEmx0qr-k zZI4qY4rho!t{-UMr<`j3ev(a5{fvH(NBVpDlz#^fyL?iAbS$C#TF-#LqaTx?ZarH^ z*yoMKYAO#51SC1TQ zY;a)?(G#rR8irEW94l=>sf z2o??d+ME~-nCrTW{}0m0cqPB)J98_aau&^!+y6&}l`Vd(LWO9mWzleT@xriaAqBPiSJs1e-ObeR;!YVNXNjTvpGslFoZqC`XD{_uNZqv z7zVM2j1m)wE#4iB&F?F@NI9&hRI<*ZOfDa&9~|V=C41887_2LZo_`}s<6+k{fRn*( z1?+7v%b>_O01#l6|9@($Z}*!r2EToOQoDzBW&O28{#}j9lMRhNawnsoJ?uCR9W3m5 z+9u8vPK~{9z4Vh<4b-sxT@V^0VE|e{rN5e0-^}G@Ip+bLALU)OlKmmyYC}Z#QE8AR z5!+4u#-fb13^bGc_pLK&-z%|aQVmFT0MdP@-1?$N>#bfp>GgutBM^V1*OOS51onuy zH{uj+GvYimCC7&2@ME2di=X45L^Mm$aDu8HCq$Qo)n@9aKU+?{=IONcH=ZC*an$k{>S2zWREs>vJ$BhW zeo(O)Z)@B{WMm}rh@*cy-nH3=#x%n~FD>u-A6~LlD&5f1J>kpmz6`FOa?P{XQ3L3d zT?t6D0YdL3>K8gnQpu?&i2n$jd;}&&D!nAFiH66amJS~SBS{tml2V+UQhjAgTdE{W zqe+oYRh~wV-V-mJoQvLK{7QhieVfQy5GEb0sgcWR{r}|Iw1$5$;}T)gQC)i_V!96V zIXwtKO@#vfsfM2b27Nt8p3Drl_M05Tk1~EnK-3v3eD|80F2#ap_^0Fw?ud|gzs!x&L{CGrL$O0;-1yTdk z2?D-*JnvQb@34P|zc4VHIyQo{v^?+$l)o=l2=nP4(C?WLKtwgYmqa=?Z7GGDr`3$g zk6IH-a0)jI&PFNHOQPoTQQnK5UM4{reGd=6Y+?kBJ)~Wjlp;gAjV)u$Ca8uP$h6`M z9B8K5TwaZ^AHID=VUN z8Z6QVIaqOM)mGL-A#N?>b6*hz{Q&CF$?S;C+SqDdKwJ!O7fx7IPteY3=C%3Eg4Ug1 zBKB8#!+v!OCw01VZ(QTS@|)wa0HLMIC%v9p_v7WO_|4u0h_+|tN0*nX%sbCrwf69f zYA$yUo>+f(RPl{a0BSMXJ0cli9T_uZh%`G}(h)z|+G|x_{^VT$eJT!xHF1K^wbT z|9Gp})^J-YYbp#JI}MqkajG&q6;{dCv=fEgxNU#EoUhATVL9PUrTb>+zWKZR=IQhl zI6)rRGaWHLvMHS+f=qL9wlpbk@rtpgC&vqB5h4J>fA?dIC5OC~_W^$=*ED5F7`Ag_ za_?X;4Uu-Se#l4n2pYRVi1A&wyJH@)WSBCY9q%?OJ#p&k?>0f;tg-I^NgWm>Rh(I; zTk(G>f834DLeMtFHeH7ZJR4(M1l0p6pK3dfw~{Vg52;y>wX3caW^I!-Ws+@ zHQx&%*ht%FQHx0re6a~!hH?YR-pN_XO)!rLsosw}yrDJl@el%0rls#W z_6QCh^F;qT+8DwwW^3aP=RqYZ$!+x*5p;iA21khnFS~-%lqmp#CZv8*B?~?ibqnWt zm6s9Z1hj>8GItI|KQrkQQJ^MI%|w7Ik_?ui;;5f%S7k^#?YG&q?B*4 z0?CRL>jXP)=o{)ZF>}td&OkkC=kb5fn9N3w1|+mIVTiSTaFOrB#6J917{V}Bc4|U9 zd1gMs)J~0(5r>F%Rno4N6q!b0sU;FLwp;L>dlogwWxvup-hMtB`V=}HSRmiw7uf+P41X`Veb^No-n94E^ov2RDWm1GmLOcdqtvr8K#+&Dk zAcj|r+oHXH*E;T?N|j})CChG!dN$vb)S2m(_(R>PMT$&x72h_~42uMi%ecHXDOmXv z;)`Hhyz?#i6w1I_ye?Km5ipe#>Kgdw#F>gs^hDE^xeo+a>!-LjgHAWAE%tEGpT)(} zl)$y!@A{eCL74S1b%Ft|jQ4+Zhtwoks75%<$`r(iIfPVzkx;@RoIp##>!|M56!&Y9 zs3i0jF>j36Qg#TP=zAgrB|T~)ZuG6$l#+3l+JeOUXF9e)tVQAk1bNnOX^vzW&FH6N zcjHrqk7h}G$D7*IB|*?15d zU8U_+S!`ThhUFzr3Sq!8-2K?Oo|L7KRMkE&BgyEfz?oqb^aZQm#AQ$Jgi-Zh zMQzOr)W8r!pfGR%GT?s`<~NG}X^N`Ot#>34hZyW|U-=dH76u$d(eVR7m@F$Y;lliRW)g+x3PBYRfToiM zjolG*SOQu7R=Iy($0YrX^whp>UO9P(Ghd+3CT4a$2&2kdne1tGwzF|oQUFZ98pxy- zGaS5*sDLGwOmIB6^6U6)!+$j?CpM9ZO=MzqgcHnXGPUp?v$0{~&L?|Fo4HJQE=71W zASxi?xE2}v3E{8qY~{wmQ3mMEpiV)>@IW)3N?1!JOlN=H{6L5%_WMnyBmL_hN)_#s zNZe`RT2x}`nQQ~Ryat`kQ$$Qa+B#8JIXc<>lKS@?Ve+YvW{nj;{9((Fxc~am_oA%B zV?9ioR>Hquu1mWvspG`YzkN73FSsUop(`ri>FQ4Jc8zW#cQeYwplTkTKqJgzHNlnM z)sZjafLMR9O|?L=ltYeEn<$kj)i?sTrD6y^a3xzeF<_NmUJ_u95-XF^0&q?;T}nC~ z`mdH|K{{fn6|`ft88I@!hh+&=sVm|{NH61MG<>GY((XuqA*A8|l0^Ib@TD&7+bOA5 z5|~=iYqt)zfU;lzLhR2k5<@+w-0jrlBTawlL^8X*Fc7Q z=dt<|qFpK^zI$f2x@!DRd(bdiFYCftE z)KsKR9nVp}P0|B4N393Xv5`J&+)x{-q4#P&Y6LE0=~@QMF(+<|G1&n2L6~W+qR7WI zGOx)U(eoZ&lu|owBrVK)-WIgZ#D}8KV)kne_;jEa9RmcN^}hbNJ(Tg3HQL(VGjV@x zU=ypeSGh7vYf@p$`sRU-NMofZmCocXJ;~qNjd`;h9EBNn7-c5{2**;|AF^v&&8UpM z*)rwuQ#ykT<}EeR107JZR^QB^wwo5zmahn`lllbbbLairpC zZN~V5We#Tdv(Yx2i}8a?EtQXTESrD9bquA76&{-K)I)xTStf3M2T$@UWvAzhvox+`=8`!0`Oq1^-)j4~;&#s)7?u{YX9Jlvv-*@DIlOTND>eF6)sU1b<5B5!F%w@4`gzK>8Kw_T z28@#0LBQ1&%b<-tCCBXK5M7l(7odta~7iW5151vGy_E5_?ITvhDt z({Wbf`pg(&!RaE?7WxT$T<}ro;@l*#N2*j7=7B{=TiTkI)^9;qTq8IOZ{(Oi1HG?+%F(8^3DAB(D)gyNnK&yWR)W_d$N_T7R> zB=~koztQ~LOquoMBZjstE#Y~uTbs;QDluUbL*I~-kT;zKAFk6TYQqMxWC#lsYwJkM z+d6^OwmbJJ`d(cU`t%+1n<6na(%>3g-CV`}=3$rS8al3SUj2VR?7a(kBv*MLI^ze% z1{){5*(A4B7US+wsnxB~yjs&EYcv{Wz~dQ@2HPOXa&>pLRHIgx+*Li2Jgr~@;T6bo zvztJ;Ng$hSE{`NjvIG+H;C&4tfshA*EPLaSg^*45VlLTlNiGZb|Nrx-bE-~Nx5i_K zWZm$#)z^N4$jkV(>iqYhi&4f>N*5n%TiaL_lLo!q` z#yn1Dov(ka1si6Krl1fPvS^zn`9rA}6qxErL+^=xGX#I2iBPLf9v#^TYe@SGDw0_f z)shD!pl2;Qc>Q|OYrtGmz&!k}`+lbpnB_#1@j1#HM^!5nr0pB0YvdyMP^dxIUwJBorv~8>CzzsIthDVGD^OVU6W;QA4J(o>&L^m-t z3|nYmBrSif)Z;ACibOtc+L=5+m`-qXgp_cbDhLKb496K$A#oXq_Cl3qA@qGrgs!;+ z;1*mBIT00bN{K~|V{}qagf{81DeW@ERH<#wdR)UOig8`e+l3&Q?#rFPpK(&`Mac z$hPgocw-8WW=d?CQDV!C5?dCOShHGY?$w4g8jEzGYRbrQ_pgyrSY%s(+5?I$j2lrq zu1f7NzEMQ&G+=K=3(blf(Ohmsb7A&~=3<%IpvB?u)R@)qV7Fq(PL`&Yq98#AbEhcM zQMrFqs04Kp{zqz*^?G44k)n-uT$C)2mbba}pUz{G0fgrnTg|qDPTjD$RVZexyJdY% zPedk%k}F3mSy6-+H@Ot(ILa+oRpzb5ZufdfCiO|r$OvFvl*1f8C@T!gJev5zq>IUvFEkh93_uvc3@+0&E}#-$ zLv{XqA!&7oQdyx6sW1dH962LSabBP3MqXtFa!V(JGNL4)S!Lu>xC=x++7aR(RNfO|O;BmDNmq}^ zDjdx*sq~Q&>Q0PQ+0*2*uo!Ki`mJn;?QLpbV3X7R+;gu&mo-OZuN*r((5mc8&YaS} z@9D`)nLGAqnn7erp{k3hNxrf9j8cEV6E>%4+q$!9WirtCv??|$d}@S-MM4@}Qyr>f zkT$0G5iO*G>Ly-K;}0`sCsjvsO^YqSZrU}ODCkBj$ z06f4k+UDZyU_8HoH4j%bR~ro6O5A9;HKrDuN526t(WK`r=$zi)$g2?3wOM~!lCPGQ ztT^Vzo~!yJ5LfJ)Ofrb{TAArPg_Pi9GPAI&h-eNWS~7fuP^45M!=SF5YWD!8MRN9< zkT_3#Nuk?YniNXD%JFE`THQ{r2^X?}{Y4dJ{Pw$HuH`$8T*nQ7lE^VOZLZs<#CprC zujU%H7W=X0!;#p4yB+)0U1xvaIHl|t8UyfOP%r(!OAAkf`Gk!16{o!n4Y9z*LASQ% zg}GICi|U2%b<~i=A5gv9>G-gi@W9;+VH50Hih80+`9Rmpi0;Y>3cSQt8;PQMe2F?= zTp}cRt&oVWw1NZ72wNVF7@5Y=pivbFBUvC#n0B2P{bAxVc1O3n?L>c(Sb=6!mY_%y zEaZG24LcgPP?hVpQ%cD)Wy3Kvr8IBtrTD-i0jkExzk4mlW*{QwVqGX|*c&LwoEoz? z;X7{^dijO<-X-|j?kyI27RA-J78a1)S?nz=%;WE|TC?2=@v%F<&~QeZ)1xOAFHLM0 z_F4g~kX*(JsPwuYh&Cvx{h?I7JCWOc7cB z;<+<-RMq1V?=VG7Me-ZJSw87mT}jL1JyS;9U@^K}K`*d(k=34v80yN^yjj=%3Xp+$ z#4RA3H(1_wiOeM&68Yh^2#AxR=ID@X)2>vQl4pU%3!`TV(nNouWt6v0wJ*YTp^?L$ zS8~XcLdF0M0j^-$==oSEPE9SMIHZ1HO~3&MOYvcx;_)-5&thGjDd;a+hROtTQ^(we zbo{kBstb7qxT?oC*DwSxjta|6Ll-W(_i(LD>$C^^QQ$YjB3=^DoJP(<(FwNN^{PeF zjmI`_Rqz^FI8lE@nYvKnQTZ-0*Vix`^%T_!>TQPrrx>m!KncwqyX(NnsDCsV9S5(ZFmhBN}&Rc&hp|fnmyk; zIXitEt#wae+QQhv*qHqydOg3e0TnHdRB&0~3tD*#V^g;*?!67x3j1AwUcrk>9@a~t z2mi+GlXbLZJVk$B4D+ye%n~M*819>};emR!<=07VnXamQUS0xw$^!&hKgS2RkZuT*cP9t$H;5?ttw#K_wija@GY z`cp_TtP!T`BAra)VrWRuk`xi$W>!ZInWmvZs!)Kh<2s1FBROwfHIO=8k1I2i7ZoI8 zPSqoLETh~N-+OZRLEllN)JZgfL$0OfH7)@!a-n~^!j+)Y6ofDIdd*(XoxiX+)tnm2 zd({hq;a9=H89+lJITOgCT`1Vg_y^5)3brT3)@o)n%tD`$WQ?$9&oZG?H10d%hG8gt zyWnijxnT%>3yRH_6LKRRbZ)EKB1YOA09cs(ybIs3m$En_mtgxusMjctc(h@t217_6 zs3CvJ&zP-#(V-FJ4+P}9O%9Gz#xNxAezxEh8E6!Vpv#>Du6b)b>>TNQoO6S97?gX` zbs9igSUif(=y?{3ooSws*Gv{Z9Ak}BuweWvoeN&_|kgIFc)YtN`6tRnYR)#X?2Tmlq>Ys2wg`m|u?bWAp*RW>Q@hlOjT& z7Kjk&@EJJaxvfUPf_v8I4e5YH1qzPbK)M0Dc!I1Mh_R_AAeAJCK;eX&w$eOBG$wys zY2w7lV8xJzU}WkkO%}VfdSTw9$!MZ+7_1)pX%8(&(M&H8P9RG(BA-_PRNU)ZRK*I; zr>upZ0CSefnq&&Ixr-J2gF5OZas`KZ>{U6VSZhH+uVuSg2K( zQ7l3O!y|(|^Mj%#qa*|&5~kXDY}0>NWqGPqvF`A5Yzpx(%r$|$K%|7Bgg!!HdwW~2 zC+ODeaKEr@1bwBZ1}k@n^r)0<4Dfr}Z;*hd0?6iu4q6D>>Sj~9)a|q?aMY7f*n*SR zvc2GTIP+SSRDtDku5j7Q6UZ}>i(nJm@nUi?fK;rq1(}rPpLQFix6JyOLjo{d3qZ;m@IyQIg zqHr9^Ma61#jCR+#xhzIq=0ooFR_%852vxU~sHm;th5Ng1XA9kSwdksW!H{iVvsAX% z;c>=kwa|a%CK`0L>uzq%UGqEWh2ehO^k8vzgBhrn0!nspix2Qm2sBx@YSkSmf;x5f z#p)&G?r+V}axU44)6w7y3HF|G_XuZ9wCxbHB%SS&*6lqC1Ya(RWQD|U4yO9 ziM`oY?m#GRCC$UyHuh<{)zZ6Vio!vinrdeUHR8HN{g2(4Y%O~gHC{3F7104S47h(J1GclLaYp2jBPDAk4A(2fj75(^)}fMB zu_h+=0riP4GPV-gwi5ZMbsXTHJ*!3KB#hYL@^T^aafnoDcXkAT5Xh)sg$ROHF!pKO zFYQ$z7cUlUw$g>q#K{#@fusZ2USa-UF(y17^dlog;8R$4!Sb_cBSf2=XfD~89xHzU z1+Y%Q$?)pXEI;sBRy5uq;A^>Paq(gC_aoK(hO|zcvi1O|rmVsUA0?OLvnQH4xU?|~ zQGyI2>anPJ#7{Z~7&=^Ds#+r#k<(mpM~ux_G6z{RGzG;&@q1Mgh%72E7UTO<-a6GB z6?sPIJlLTvJ5iE2&_F+BRdNR`MD%}GR$sBA+|a9hgf9^s@kybV$W{`UnUYp8x1`;g zY^|1pZ7MKLbd{wpRl2^c7CFT=ufJKGN_{iJ33okt%Cdn-eQ|xnn#|o_Efq`THn&iT zsv)!d=pqY%V5dpJ&|fr<;jif)i?^X7i+DN*1TOO@FCUpOsAXTYR|{1JM7Do)S?51_yUCuy%?R~)iN&2c5DGs z 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 z z88{&}fLw&B$+?@58-K{AaA6m#74aY#7BJg<`W{>B2#ux~w(Nj&4f9(!GJSWQ<$N*jm36Jqd*1#s)xZu>GiB~y~sRbyb zLWR+sq$hIcq0Zczvz4nma52fjhE;31Ye8;f#ck)f-gH1%u!3rhu(cN#+LlcxN;Eco zfyHPUktwmWF09dT?4JU7acydg3msnc*ocL!GJh z^2AQHG}%51$M48URMM}8fAgJ1JAilIQP>;vzFKrXSj_u2TqqQm`#uko;TI+YsA)3! z0(UFIT3=eixv5YK+;G5SAu1L6y1P!DugyoDO4AIw2>F(~O_On#TSvko(bF|&x$TAB z23JI6jCH6)s8=hT_G&4rsE8^)8g)(BP6i5%&1xvEXsXd%mzY zRG(=4bABgu8*_$jMJz*p>*Q8ke4CNQ(yj@FEod<;=@(f;e`pKczGw?}^-43z3Mfw~ z5d!eTBk_CPWC+`=qPhn668neQRv}L~p#0P^iKB!Kn>%7Xfl8tU8!xGoDm?U(LMmwP zeCQJal(zLo?K6*zY1P2q9AhmQYr!o%a8ct*lQk9^`vZ~|YOj#@?yKMv&ESdHw z`lWD3Xel;Ze?FA)#>NY_uNQ!W77p1m+ths3Pf=$wJnEAlgASBBN_t!Pb0<}c&5bIa z>R_yxlyNEu@%WGRu@6ivI4BOog8HU9BV`#dD{U%Kv(l~WtW_~UaV3!@aoa=sNVLvJ z8_3Y8wxf5;MqirZVUo?Lchny(_j;Y9!DzWa{x2t;e|Zl*Wv;*|rttR>`sIy`RPgC2 zKJD29^jIa&?jx8Az!@2_kw}yN<VTUWB}h05jq}0%m)za z$BTK}f65{lWfNGOg`7>$c}+4jL^7K_lc#F0!9z`mi*)R&YxA>~3jZlPd?vm7e_QE3PHHzzc99UqU^XwHz8(VMVhPoVWMON))K~yZV ze@0lWRV_1XSRE(7Ah-G+^UEa`<2ON8@rtu@;*(5Jh)pxwD4Dm>c9of;hjz{P1Eg{3 zyVomk>ohk5C%f9Vg)V=xJ%n`{9ZM4trWQ3b`!iU9*^Fa}6a5&2j>;O0s=N%gpjAlj zHg4*8HCmYNt?YtIK49ZponLk5B@mI_e<5Xs?Wv(sr9G+5l1W&j2&yFOv(s(o<2}wp zL*$nLJz0C=ceOnkaZO5-{*ksgj(p^(P>{)Ld)^0vg^s46klerdi*3%$GaL{Uw9vOZ z(MgEBnczrAG#04r8>iZdNTpzrf{1k?fA@$63|_P=`q`?gujjjqcD?G&x7axCe`ZxU z31Uk0vNeqTv<|g5kFHOyLtXXxb@UbL?AgZXzLqn+^zZ{)QYDCSb6m*|^EYN6*Cvyaz)< z2umsj^qA2VK>>v6(*m@B;qq+V21gnKo*AU;645goZ486zcEYX5LsUdn*sktrOuj%l zfU=|&0N4F)8yN;bS(fD{NPZ(Bfn7OT{;~-R7~YQoBG`$>s-9`Uf$MbCe>TF{4E!}WpLPH#KthBM1p*Q$Fo?v( z2JHi+?E_)7P#zPz%3i}xv)8v7Uja6wc(cq}nOQ*U!)n8>cZqGUEBdY}7#$rP;R@my z{_IxEb}Mn)fq`^}Q1s0We-osd_C8zep`&7+(YI-NOyWbmu zcG!g~-+~E=jR^8EnxiWxOKkm_h!I_a^W=(2s!?m4afu(aF^6^le}H!@p2C#VmkC2t zRHhJz7$BVLNJi}gtPZShG-Th~#vMbiIpxBhvLCy&ej*8nwv>DlYWUjm9G#Z_qPWz@ z<})b3S}%r8j>3d(c>NGKkv!A|dcr>L>|K%f_KumvGhan7ak{=DDSw+SsfxP3Y?>r- zxY?0RKEAau8qwAue^xO7k##3uup=N;;y{sk)InF0V37I5rdQFoK=Iyuf(0hw*`S&_ zu8cpz=_=LMnREO?O}xlY<$zMfrB@ZyM0b}ok+yd0k{lFaCd8{&HwKrbnRY%;u9^0{ zw`jT$QBmR#!7b;KkXy4}s;5yHqXKAPY_I2BVjHw4O(hM2RAmTgf~hEni7u$qH#%A{)tkETf(Ys9r_HLVC{+^1a-GT~`{ELDQyq+` zLc|e&AU!_YZP&dDhIEEE4*hoMH?3L={#tge1*sTG+6KJF3@t1cwy0bPzv-7{``rM4 z!50>%MtKeVe>XLc3Q*!F+|JfmeI5{V=;hWz6KT8IZLuf#LG`jHsu>D}o+v~=sYuOZ z>C{g+Ea4~owa^Ur5<2j3Azz((a?!YF!2|u?f(O{uN5s3W#l05F2}k&Qd&X<2O7G zTd=Li-(s1rmg;fB;+(rYySbhxH>%3>3fh$`&km9R%5xVf01WasGF8Y2LC-6=!SEQ6 z0wQhx-e9qSNy{S1bsO-wCUdxr9$c(3a^F^UtcZ>}t7Ca5?A2O5?*UBSP#d)J0zj?c zfyKhYe?oZ}BN%8|?#0o05|kU8TZ@=!lQ$`#U)X}mYqB34w|o2x(Yc3s+(QJ0-oO(e zZIAG^2bkI;EbVdp?1{gAr$^Y>s|DX@2Lb;1Xg3ke4;u&<8?E10>@E_s;%GUt zPkJ+B$d0|VIsvnp*DNRBJq*aYas zSY~+KDpVZto~n#;I3fpDwG36QMOCp8oUaDVc?w*XgKA5>K95dPpt7L4WyhLC=S#vv zs}rxxk(GH>tOJ^C*gTiVdgnpf9IWdNSjDTh6OC-73j1bdMU&3{E`PDrVU4A=vwilp~hJ1@I}jz(mSLo4F9te&rnpn8Uy52D#r zvDiHK@r9%4AL|RJExEzxw~<~>*GA1tS^?c5(hp>d0xi`>#btL+v(_-FjAdW!kQL$D zAyI*%PbOMx&mJU=P=5k36$*LjcEVbun$|J&fscOd>BP4v6fJ&}vpW2NDu?*pYSG^{ zbmWge0w2HD=#SrC#_u-$Y0%#-{M(@_sTwR)bLkIpndz5{C2G`Q4GYw%iaIIl;Sayt z!rB_HgI#EN^x)GU7i)FBaD{s3QjB2By~v&}l7X_-B!B%FEq@TcSR8_7s(1w*vBKYg z{*u&dh5hNUzx2Xeqrddq-(Y`v3m*P&;-5DCL2oe@<@7@OgFi2H2~;iD;otPvTXp$Y z3;Vd{&|gejV+Q;d2k{y!zJ~AHa-?ma{;;3;-fz+$_BSMm`s@$YPdR;F*zeNc4SWxn zz!C$8;2Kaz;D0Z6Js@xdD|`Y17WT)YIY-8mg>eOFvfwMEFP7$d9rnG(zE~Ew!`}w{ zdyBpZU?KbK(;xb~LGyw{s~F_f?7#LkV=PO5rk#LWZhskXNOFG~yLaL4kufdW*chY? zQ&OfnykZ+>@gLM|B$G?rgFC(t7a25@tX$eQ+=gS~yn*zisLqhS(iEhWYEz^_Ts4wk zyZH^4szfz$8D`nWeN04ImihpA+k`TCx>L*1u~6zAsh5Cn$wG9Vgm<{Pk^>R-vRs8D zpduON9e?Z;-o;bL5WoK-dsV3W43#HiI(Rf5RR3!q5%8I8BiD-TPv+$~+l9rb4!5em z;m6=me7>~Hd`$0D?--An{Fpihb)zc>m_wR9=jz znKDSfX=#-jg-s|&O7JK-YL+Iw2x6XqSYCp~D}Nwr3cqr|W-5tH00sFCW}DK9N}e`^HO8uKy?EGq!gKoo^^J8stjFa=BQ> zWb_9TRK~`Z;j-67m)mP&;Rb2Cs5lVlet$m3VIoK2&;Hzbme zo$K{-WA`oudxyCrPb`wzbe&aL)ZZKJ1r$^Sq)R{rLApDJ?vU>8kcOeZAR-OY4bsv- zx?8%t8ITxy=$c{X_J?5b9WDJ_e%zO!D-aYQ$1C3UKd$bd(!Fy&a`ceiL;fBURc zn%FUFE#3KP7o&CG{T>_~9COU|`zHk4c`-7z|37v;lFIY<{OBMqAWIelJ6ofL)n)J;J+OsorwYy* zGZqn%P_d*ONVzX|oDxH|YlU^@X)73kMh0^4QEU=91g!{?Tu)6$p@;dgs;xMcusPeA z3p<`TP72{tbzOVzE7F+ewhlb@_*WvA zhK^D%Oq@F`}eVvU6C@IPAg|WNH^4_v!TALWn49(L%xXl50~D*msS? z&3zzKmO4w0h}dW`x#;@R-&PefCjnObO8<&aR7g3!6t%3Q==MU&3;(OliDy;@YeGJx zC#&w@3-wY#PJ6>dPufaf9c8XVN5lxvlPV1X5SRQt!TQavKd-K0n1#(JMKP15;Rv*` zIyEBjS1Ktzp5}Q=8T#9>Bm&`Yb*eKVI{4aT9E_V$Yc5XfhPv+Pb^`jLp_Xd28JS-- zH5DT|>9eJaPwbsrc!Rx+2R1fI3G)$6O9i@hDA+N~!odjlZ zOC9KI#ufS-a*^EW_K$zc;gqo?@t9hA4J^dfybx~2z0QGxUu@FD>A2GQCqnS`%P?OI z580C*@#i1j2MNwu^i1VcBKWpl=Y79_kad@?A7+}6aOO!HGAeX$V5FVr$M?v+A54rJ zQ0I^9d1w9M3Rj0X2y??{zEx%I;@o4!keC98BH%@&5_f{`?fvX>zfOU`0lCewUfGX1~xq`Sc^I z-$&;<7xbs@`Np30uieOnZ>^w{h-`j_sRErYeBR^O*oTZ%oTkB`9oW^h=( zE)j7btm#<;nWhQkMP`H;K-Bezl~=7Y>wa{4;MF$-+Q*CQ^3^80?Av!$i!-#A>DvcY zKW1hzU6}`c=Eruh)yXi#H{0fbUb=+-|1@?*-n$Q-TSt08?vt6I!8wM!|9p7XR~6A; z^0XVwo{?H+1@=ZH*V&=mW`wxky!g4)BDu#>{L|+ny)oPC+4O9B1W(7av-}o*zpq+O z@2VORkL4-S!u=El+`n9~tkUH?usC>(CYg#mii2GbYxG^q$-4*m?4sZ*K<$#omCIz6 z02x2GZR3--K_0@ZRJDV&LgX#oz4?P46kY0Vq5cHVI~q@F^Pk*T0@;s8?pRW2nS)}k zX|UVA6k$YC=){h-XVA~M|2qGUnyI&H`EBogn8mQ794kL)*LdlHNp8rjY@8qXIJbTM zd_atxp{(;yz;L|Xl$jtfNkkDm*k z=Y}e?T1c3vG8u-Xe;wxh-;h^uqq3U;6NFZISi8|A)68$9hG9iWZRXvS!_Pnk1*T4aL!sUe_A06)k3Hn>w3u-rIX~+G~ z4Ahje?s~c3(7!8;MvRbu@#NnnHQurQnm%ONyer)^z;!)rl<;6Yr1X1D@nwA@!>k>Z zx8bv%Z4q8;q2?Eo(Ivn~oK*oE_TKOP12TKPbxxk$s^$bZl<9;00yq8R-9}=P;rIlv zDCPeI{Q2+YTj#6j7xon(C#LtZCcC0K#%&VrOmgBJef2lA>1h{aM6-iaK9=;K&m|`Q zB{m4?tmX*Z$H5ph2AdWewF38#@iwF6qGt3jGyJi>m0-?OjRLSljYDb9imHCdk?goRdun7BgS>=o#rv7?|U9Jv+1Ct`K3~Vi(kcwoRmE1>VOlyqjsfc z>3!Z-vuc9sz#IQjN2(fe)lRy8kTiP{0eWjmA<^>QUw%<8VM{*`b(9?*4*^px#mYDN zrayDFqB|Pqnqu8{^bPMWgj!id=blH^y##Ccv2P}Ad6s`Vl-DOq8qK3suIvxzZilww60o#W(rL7uv{jF5Oswtud{ z1nX-@_K#+70EVi$QdOusQ;OHVeZ$}Nak*II1S-ZAW5cw(5_?SsH>Jgu-3`7ZbFX;` zr^a%yTXLI3Sc#jE=9J|HYNdOO-LF zp#58(_!wUVu3UW%{V5-#=fI07x33Q&ScLW~R&Qi%{9@8laL|;+k8!ERzRp!l>&reE zg(Yu~_=l_VVWZ`io&12l*5?OqK))9r47=CM8+5!_10! zEcWr_8#JZk9LviqHMr~EBK&GM-OQnT^q3r0apR1XNv6rm$_*5HU76 z*>`<%ET^eL(74+aRhJr3E~$oV-;gwn<7F2X62v8yrG+EIx6vd6^IGgxdY)rmH5%nM z$JlRUIXz3;1C-+9|D`PzM{|G}OD}F>u@Xed-K!spH9fc~OSKt79tr}dT)8;l4TJh7 z>CQTQYqtA+>57FJl_aOKSL}y&+#mmBTE!$3TdZrS;=T+VzHTl2Z?k|YpNx6+H7m>f zNI?Q2*fhih#Cyn0NCLlUNNot0hF6+&R_vB^ebC{*! z^iCgkt>p6@$;kD+bG3~&XoJaL=ZR<34zuNdDxQaVl7;oFvdZqo(0sRgrpw|>Ltpre zJ2$S;Gd-T|RK}NPagH8j?-wccStAB}oO>&mX6{7yV0jVC90g3ZMSBi;^KrtF1ulwH9nv5|ul{eMaNgR|aHV zWivy7qVI^UeA$ikduv7A+3Ac~xL3u<=rxSwB&h{%N3~=Bxm+c`QD=iy^)o}$+Jkws zeB7O@+&4(YNo>eFi!rMS`~JtRL=`sZ_|>C2Zq`RtBGG3ba~Jy833H*(zAz6HG5zpE z6Cp8Y`K@c_EIjx3)s}CRy#?d6l_9w857yf_Kquu|wWPq50{Lmllc^lH1%DviB9qkG zD6o|Eg~wte0p{)5k8oWn^%UQ;pOX3Y4T+D5aawc7MwQsX{ZhYwxvjeRsNiw*3Y^}X zZ&SH&bnJBeK+B>`52Rpz^;;|kIm`3&E<@(4_UE~@E`!-OP`$+=9&>rm4D&yZz&iA! z12E*YpW_Gc;(~CUt|T>oK<597|PmBDU6d&Z<`Y z*W!m?>|4SfwpLaB5TYgt>4slJj7P*ynR<@0Xujf&&t5+ZA<=u3X8(M})}rdV?g;Q1?|xhF{2Qh`Hu8Q^BRV0KFhM4lQhKEF z;h=->&BXe<3biuRPx>!>Bj&Jb1`227VxG6Y&(9AgXZ}H!Jp5ME(f?QIT)|_Z@A$iV zhfd-~haZ2;s$7N`3)8b=yP9?m_Vo;&xDsbcp65{Ee`ykUO6oKVi@;5*)r?jG z3YhvkqlgPg5{rHM%LaUa#240bn$c0%ewAB{B??&@${V#DB`gFZ18<#21J++CexlH( zn|rJG$aI|S(+^LtE5?yo?QS7uQj_xt=T?_Lq=65t30t?!Y%?U;lhklhV9bv0CgK81 zWf|*jgx}d5+1+hY?2BWisM6=pT+VWUWP3YWmB4x}xLPY#EP(5~R1D{Y4fy&4>t% z0ZlXQI}w`lJ0^iOx2(g%Wv)fc@or4e-^U{x8Xk5NlZH-LNjFRkd09EENs2t z>C?1@BoXdQWH_#xS>8mX#_ObPTH`{nZH80rg|ev*OeDtcz0fIqn=03JQABG*v-L;1*lH1JYA-fsS8o4#&WI%1 zAf*a3fpcSwHHT=`wDC*nB58sFwmN?M7clRPeAj|?%uWtsDV*2O$hi zVj2!9iV|{OZ-dQDQVsH3?ANFKRy#gwsW`!vLj$zp5#1IqduhywvnVvx@f`%&sjpts zuhe3y+;E8Go7CqG6c=-3I}04!O$%EqPZsuN`gxocfMql28xer}*2c0$_;NJ`N~+|pt+gw#2<3J75|ilGF8+E) zXA(?weI2dED^~8!tmrOw=pORGXcp+b!y;{@exUda9;$KpD}CQzaNz~9BL<&YCw1Ev zVLZ=(Bi`AckrI1WPs1v@{JchiFu|CT0-G-p1i|n0KE1Zv#Cbyt6fu=WG>BaEI}M=a z&b-#}jb#!aB^31MFeOQGl57;6Tg{sh!r#X%nY1<`PAUGBPB)Vg!gO^2cMBHFw${H2 zmFMMNBZ4lykKOFOx^?8Opcf)lNvqi<)=VpxjWZ~)u0-3k`3MzTWf

kl;x@|6`Gn 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

ROBKoiEJo{Oz#bt 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⪙dy!-3 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 diff --git a/docs/index.html b/docs/index.html index ce7d301e..5061fe7f 100644 --- a/docs/index.html +++ b/docs/index.html @@ -151,9 +151,9 @@

-

SWCompression

+

SWCompression

-

GitHub license CocoaPods Swift 3 +

GitHub license CocoaPods Swift 3 Build Status codecov

CocoaPods @@ -162,7 +162,7 @@

A framework which contains implementations of (de)compression algorithms.

Developed with Swift.

-

Why have you made this framework?

+

Why have you made this framework?

There are a couple of reasons for this.

@@ -176,7 +176,7 @@ that framework has a bit complicated API and somewhat questionable choice of sup And yes, it is also in Objective-C.

And here comes SWCompression: no Objective-C, pure Swift.

-

Features

+

Features

  • Containers: @@ -208,10 +208,10 @@ And yes, it is also in Objective-C.

By the way, it seems like GZip, Deflate and Zlib implementations are specification compliant.

-

Installation

+

Installation

SWCompression can be integrated into your project either using CocoaPods, Carthage or Swift Package Manager.

-
CocoaPods
+
CocoaPods

Add to your Podfile pod 'SWCompression'.

@@ -234,14 +234,14 @@ Available subspecs:

To complete installation, run pod install.

Note: Actually, there is one more subspec (SWCompression/Common) but it does not contain any end-user functions. It is included in every other subspec and should not be specified directly in Podfile.

-
Carthage
+
Carthage

Add to your Cartfile github "tsolomko/SWCompression".

Then run carthage update.

Finally, drag and drop SWCompression.framework from Carthage/Build folder into the Embedded Binaries section on your targets’ General tab.

-
Swift Package Manager
+
Swift Package Manager

Add to you package dependecies .Package(url: "https://github.com/tsolomko/SWCompression.git"), for example like this:

import PackageDescription
@@ -255,8 +255,8 @@ Available subspecs:

More info about SPM you can find at Swift Package Manager’s Documentation.

-

Usage

-

Basics

+

Usage

+

Basics

If you’d like to decompress deflated data just use:

let data = try! Data(contentsOf: URL(fileURLWithPath: "path/to/file"),
@@ -275,11 +275,11 @@ So, in case of GZip archive you should use:

One final note: every unarchive/decompress function can throw an error and you are responsible for handling them.

-

Documentation

+

Documentation

Every function or class of public API of SWCompression is documented. This documentation can be found at its own website.

-

Handling Errors

+

Handling Errors

If you look at list of available error types and their cases, you may be frightened by their number. @@ -297,11 +297,11 @@ For example:

<handle all other errors here> }
-

Sophisticated example

+

Sophisticated example

There is a small program, swcomp, which uses SWCompression for unarchiving several types of archives.

-

Why is it so slow?

+

Why is it so slow?

Version 2.0 came with a great performance improvement. Just look at the test results in ‘Tests/Test Result’. @@ -316,14 +316,14 @@ You can once again check test results if you want to convince yourself that this so some difference in speed is expected.

To sum up, it is highly recommended to build SWCompression with ‘Release’ configuration and use the latest version (at least 2.0).

-

Future plans

+

Future plans

  • Tar unarchiving.
  • BZip2 compression.
  • Something else…
-

References

+

References

  • pyflate
  • @@ -346,7 +346,7 @@ so some difference in speed is expected.

diff --git a/docs/search.json b/docs/search.json index cc901253..0ffc137c 100644 --- a/docs/search.json +++ b/docs/search.json @@ -1 +1 @@ -{"Structs/ZlibHeader/CompressionLevel.html#/s:FOV13SWCompression10ZlibHeader16CompressionLevel16fastestAlgorithmFMS1_S1_":{"name":"fastestAlgorithm","abstract":"

Fastest algorithm.

","parent_name":"CompressionLevel"},"Structs/ZlibHeader/CompressionLevel.html#/s:FOV13SWCompression10ZlibHeader16CompressionLevel13fastAlgorithmFMS1_S1_":{"name":"fastAlgorithm","abstract":"

Fast algorithm.

","parent_name":"CompressionLevel"},"Structs/ZlibHeader/CompressionLevel.html#/s:FOV13SWCompression10ZlibHeader16CompressionLevel16defaultAlgorithmFMS1_S1_":{"name":"defaultAlgorithm","abstract":"

Default algorithm.

","parent_name":"CompressionLevel"},"Structs/ZlibHeader/CompressionLevel.html#/s:FOV13SWCompression10ZlibHeader16CompressionLevel13slowAlgorithmFMS1_S1_":{"name":"slowAlgorithm","abstract":"

Slowest algorithm but with maximum compression.

","parent_name":"CompressionLevel"},"Structs/ZlibHeader/CompressionMethod.html#/s:FOV13SWCompression10ZlibHeader17CompressionMethod7deflateFMS1_S1_":{"name":"deflate","abstract":"

The only one supported compression method (Deflate).

","parent_name":"CompressionMethod"},"Structs/ZlibHeader/CompressionMethod.html":{"name":"CompressionMethod","abstract":"

Supported compression methods in zlib archive.

","parent_name":"ZlibHeader"},"Structs/ZlibHeader/CompressionLevel.html":{"name":"CompressionLevel","abstract":"

Levels of compression which can be used to create zlib archive.

","parent_name":"ZlibHeader"},"Structs/ZlibHeader.html#/s:vV13SWCompression10ZlibHeader17compressionMethodOS0_17CompressionMethod":{"name":"compressionMethod","abstract":"

Compression method of archive. Always equals to .deflate.

","parent_name":"ZlibHeader"},"Structs/ZlibHeader.html#/s:vV13SWCompression10ZlibHeader16compressionLevelOS0_16CompressionLevel":{"name":"compressionLevel","abstract":"

Level of compression in the archive.

","parent_name":"ZlibHeader"},"Structs/ZlibHeader.html#/s:vV13SWCompression10ZlibHeader10windowSizeSi":{"name":"windowSize","abstract":"

Size of ‘window’: moving interval of data which was used to make the archive

","parent_name":"ZlibHeader"},"Structs/ZlibHeader.html#/s:FV13SWCompression10ZlibHeadercFzT11archiveDataV10Foundation4Data_S0_":{"name":"init(archiveData:)","abstract":"

Initializes the structure with the values from zlib archive presented in archiveData.

","parent_name":"ZlibHeader"},"Structs/ZipEntry.html#/s:vV13SWCompression8ZipEntry8fileNameGSqSS_":{"name":"fileName","abstract":"

Name of the file or directory.

","parent_name":"ZipEntry"},"Structs/ZipEntry.html#/s:vV13SWCompression8ZipEntry11fileCommentGSqSS_":{"name":"fileComment","abstract":"

Comment associated with the entry.

","parent_name":"ZipEntry"},"Structs/ZipEntry.html#/s:vV13SWCompression8ZipEntry14fileAttributesVs6UInt32":{"name":"fileAttributes","abstract":"

File or directory attributes related to the file system of archive’s creator.

","parent_name":"ZipEntry"},"Structs/GzipHeader/FileSystemType.html#/s:FOV13SWCompression10GzipHeader14FileSystemType4unixFMS1_S1_":{"name":"unix","abstract":"

One of many Linux systems. (It seems like modern macOS systems also fall into this category).

","parent_name":"FileSystemType"},"Structs/GzipHeader/FileSystemType.html#/s:FOV13SWCompression10GzipHeader14FileSystemType9macintoshFMS1_S1_":{"name":"macintosh","abstract":"

Older Macintosh (Mac OS, OS X) systems.

","parent_name":"FileSystemType"},"Structs/GzipHeader/FileSystemType.html#/s:FOV13SWCompression10GzipHeader14FileSystemType4ntfsFMS1_S1_":{"name":"ntfs","abstract":"

File system used in Microsoft™®© Windows™®©.

","parent_name":"FileSystemType"},"Structs/GzipHeader/FileSystemType.html#/s:FOV13SWCompression10GzipHeader14FileSystemType7unknownFMS1_S1_":{"name":"unknown","abstract":"

File system was unknown to the archiver.

","parent_name":"FileSystemType"},"Structs/GzipHeader/FileSystemType.html#/s:FOV13SWCompression10GzipHeader14FileSystemType5otherFMS1_S1_":{"name":"other","abstract":"

File system was one of the rare systems..

","parent_name":"FileSystemType"},"Structs/GzipHeader/CompressionMethod.html#/s:FOV13SWCompression10GzipHeader17CompressionMethod7deflateFMS1_S1_":{"name":"deflate","abstract":"

The only one supported compression method (Deflate).

","parent_name":"CompressionMethod"},"Structs/GzipHeader/CompressionMethod.html":{"name":"CompressionMethod","abstract":"

Supported compression methods in gzip archive.

","parent_name":"GzipHeader"},"Structs/GzipHeader/FileSystemType.html":{"name":"FileSystemType","abstract":"

Type of file system on which gzip archive was created.

","parent_name":"GzipHeader"},"Structs/GzipHeader.html#/s:vV13SWCompression10GzipHeader17compressionMethodOS0_17CompressionMethod":{"name":"compressionMethod","abstract":"

Compression method of archive. Always equals to .deflate.

","parent_name":"GzipHeader"},"Structs/GzipHeader.html#/s:vV13SWCompression10GzipHeader16modificationTimeV10Foundation4Date":{"name":"modificationTime","abstract":"

The most recent modification time of the original file.

","parent_name":"GzipHeader"},"Structs/GzipHeader.html#/s:vV13SWCompression10GzipHeader6osTypeOS0_14FileSystemType":{"name":"osType","abstract":"

Type of file system on which compression took place.

","parent_name":"GzipHeader"},"Structs/GzipHeader.html#/s:vV13SWCompression10GzipHeader16originalFileNameGSqSS_":{"name":"originalFileName","abstract":"

Name of the original file.

","parent_name":"GzipHeader"},"Structs/GzipHeader.html#/s:vV13SWCompression10GzipHeader7commentGSqSS_":{"name":"comment","abstract":"

Comment inside the archive.

","parent_name":"GzipHeader"},"Structs/GzipHeader.html#/s:FV13SWCompression10GzipHeadercFzT11archiveDataV10Foundation4Data_S0_":{"name":"init(archiveData:)","abstract":"

Initializes the structure with the values of first ‘member’ in gzip archive presented in archiveData.

","parent_name":"GzipHeader"},"Structs/GzipHeader.html":{"name":"GzipHeader","abstract":"

A structure which provides information about gzip archive.

"},"Structs/ZipEntry.html":{"name":"ZipEntry","abstract":"

Represents either a file or directory entry inside ZIP archive.

"},"Structs/ZlibHeader.html":{"name":"ZlibHeader","abstract":"

A structure which provides information about zlib archive.

"},"Protocols/DecompressionAlgorithm.html#/s:ZFP13SWCompression22DecompressionAlgorithm10decompressFzT14compressedDataV10Foundation4Data_S2_":{"name":"decompress(compressedData:)","abstract":"

Abstract decompress function.

","parent_name":"DecompressionAlgorithm"},"Protocols/Archive.html#/s:ZFP13SWCompression7Archive9unarchiveFzT11archiveDataV10Foundation4Data_S2_":{"name":"unarchive(archiveData:)","abstract":"

Abstract unarchive function.

","parent_name":"Archive"},"Protocols/Archive.html":{"name":"Archive","abstract":"

Abstract archive class which supports unarchiving.

"},"Protocols/DecompressionAlgorithm.html":{"name":"DecompressionAlgorithm","abstract":"

Abstract decompression algorithm class which supports decompression.

"},"Enums/XZError.html#/s:FO13SWCompression7XZError10WrongMagicFMS0_S0_":{"name":"WrongMagic","abstract":"

Either magic number in header or footer was not equal to predefined value.

","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError16WrongArchiveInfoFMS0_S0_":{"name":"WrongArchiveInfo","abstract":"

One of special fields of archive had an incorrect value.

","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError18FieldReservedValueFMS0_S0_":{"name":"FieldReservedValue","abstract":"

One of special fields of archive had a reserved value.

","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError12WrongInfoCRCFMS0_S0_":{"name":"WrongInfoCRC","abstract":"

Checksum of one of special fields of archive was incorrect.

","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError13WrongFilterIDFMS0_S0_":{"name":"WrongFilterID","abstract":"

ID of filter(s) used in archvie was unsupported.

","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError15CheckTypeSHA256FMS0_S0_":{"name":"CheckTypeSHA256","abstract":"

Type of checksum of archive was SHA-256.

","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError13WrongDataSizeFMS0_S0_":{"name":"WrongDataSize","abstract":"

Either size of decompressed data was not equal to specified one in block header or","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError10WrongCheckFMS0_FV10Foundation4DataS0_":{"name":"WrongCheck","abstract":"

Computed checksum of uncompressed data didn’t match the value stored in the archive.","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError12WrongPaddingFMS0_S0_":{"name":"WrongPadding","abstract":"

Unsupported padding of a structure in the archive.

","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError21MultiByteIntegerErrorFMS0_S0_":{"name":"MultiByteIntegerError","abstract":"

Either null byte encountered or exceeded maximum amount bytes during reading multi byte number.

","parent_name":"XZError"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error10WrongMagicFMS0_S0_":{"name":"WrongMagic","abstract":"

Magic number was not 0x425a.

","parent_name":"BZip2Error"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error22WrongCompressionMethodFMS0_S0_":{"name":"WrongCompressionMethod","abstract":"

Compression method was not type ‘h’ (not Huffman).

","parent_name":"BZip2Error"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error14WrongBlockSizeFMS0_S0_":{"name":"WrongBlockSize","abstract":"

Unknown block size (not from ‘0’ to ‘9’).

","parent_name":"BZip2Error"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error14WrongBlockTypeFMS0_S0_":{"name":"WrongBlockType","abstract":"

Unknown block type (was neither ‘pi’ nor ‘sqrt(pi)’).

","parent_name":"BZip2Error"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error15RandomizedBlockFMS0_S0_":{"name":"RandomizedBlock","abstract":"

Block is randomized.

","parent_name":"BZip2Error"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error18WrongHuffmanGroupsFMS0_S0_":{"name":"WrongHuffmanGroups","abstract":"

Wrong number of Huffman tables/groups (should be between 2 and 6).

","parent_name":"BZip2Error"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error13WrongSelectorFMS0_S0_":{"name":"WrongSelector","abstract":"

Selector was greater than total number of Huffman tables/groups.

","parent_name":"BZip2Error"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error22WrongHuffmanLengthCodeFMS0_S0_":{"name":"WrongHuffmanLengthCode","abstract":"

Wrong code of Huffman length (should be between 0 and 20).

","parent_name":"BZip2Error"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error14SymbolNotFoundFMS0_S0_":{"name":"SymbolNotFound","abstract":"

Symbol was not found in Huffman tree.

","parent_name":"BZip2Error"},"Enums/DeflateError.html#/s:FO13SWCompression12DeflateError29WrongUncompressedBlockLengthsFMS0_S0_":{"name":"WrongUncompressedBlockLengths","abstract":"

Uncompressed block’ length and nlength bytes were not compatible.

","parent_name":"DeflateError"},"Enums/DeflateError.html#/s:FO13SWCompression12DeflateError14WrongBlockTypeFMS0_S0_":{"name":"WrongBlockType","abstract":"

Unknown block type (not from 0 to 2).

","parent_name":"DeflateError"},"Enums/DeflateError.html#/s:FO13SWCompression12DeflateError11WrongSymbolFMS0_S0_":{"name":"WrongSymbol","abstract":"

Decoded symbol was found in Huffman tree but is unknown.

","parent_name":"DeflateError"},"Enums/DeflateError.html#/s:FO13SWCompression12DeflateError14SymbolNotFoundFMS0_S0_":{"name":"SymbolNotFound","abstract":"

Symbol was not found in Huffman tree.

","parent_name":"DeflateError"},"Enums/ZlibError.html#/s:FO13SWCompression9ZlibError22WrongCompressionMethodFMS0_S0_":{"name":"WrongCompressionMethod","abstract":"

Compression method was other than 8 which is the only supported one.

","parent_name":"ZlibError"},"Enums/ZlibError.html#/s:FO13SWCompression9ZlibError20WrongCompressionInfoFMS0_S0_":{"name":"WrongCompressionInfo","abstract":"

Compression info was greater than 7 which is uncompatible number 8 compression method.

","parent_name":"ZlibError"},"Enums/ZlibError.html#/s:FO13SWCompression9ZlibError11WrongFcheckFMS0_S0_":{"name":"WrongFcheck","abstract":"

First two bytes were inconsistent with each other.

","parent_name":"ZlibError"},"Enums/ZlibError.html#/s:FO13SWCompression9ZlibError21WrongCompressionLevelFMS0_S0_":{"name":"WrongCompressionLevel","abstract":"

Compression level was other than 0, 1, 2, 3.

","parent_name":"ZlibError"},"Enums/ZlibError.html#/s:FO13SWCompression9ZlibError12WrongAdler32FMS0_FV10Foundation4DataS0_":{"name":"WrongAdler32","abstract":"

Computed Adler-32 sum of uncompressed data didn’t match the value stored in the archive.","parent_name":"ZlibError"},"Enums/LZMAError.html#/s:FO13SWCompression9LZMAError15WrongPropertiesFMS0_S0_":{"name":"WrongProperties","abstract":"

Properties byte was greater than 225.

","parent_name":"LZMAError"},"Enums/LZMAError.html#/s:FO13SWCompression9LZMAError21RangeDecoderInitErrorFMS0_S0_":{"name":"RangeDecoderInitError","abstract":"

Unable to initialize RanderDecorer.

","parent_name":"LZMAError"},"Enums/LZMAError.html#/s:FO13SWCompression9LZMAError24ExceededUncompressedSizeFMS0_S0_":{"name":"ExceededUncompressedSize","abstract":"

The number of uncompressed bytes hit limit in the middle of decoding.

","parent_name":"LZMAError"},"Enums/LZMAError.html#/s:FO13SWCompression9LZMAError13WindowIsEmptyFMS0_S0_":{"name":"WindowIsEmpty","abstract":"

Unable to perfrom repeat-distance decoding because there is nothing to repeat.

","parent_name":"LZMAError"},"Enums/LZMAError.html#/s:FO13SWCompression9LZMAError23RangeDecoderFinishErrorFMS0_S0_":{"name":"RangeDecoderFinishError","abstract":"

End of stream marker is reached, but range decoder is in incorrect state.

","parent_name":"LZMAError"},"Enums/LZMAError.html#/s:FO13SWCompression9LZMAError16RepeatWillExceedFMS0_S0_":{"name":"RepeatWillExceed","abstract":"

The number of bytes to repeat is greater than the amount bytes that is left to decode.

","parent_name":"LZMAError"},"Enums/LZMAError.html#/s:FO13SWCompression9LZMAError17NotEnoughToRepeatFMS0_S0_":{"name":"NotEnoughToRepeat","abstract":"

The amount of already decoded bytes is smaller than repeat length.

","parent_name":"LZMAError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError27NotFoundCentralDirectoryEndFMS0_S0_":{"name":"NotFoundCentralDirectoryEnd","abstract":"

End of Central Directoty record was not found.

","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError14WrongSignatureFMS0_S0_":{"name":"WrongSignature","abstract":"

Wrong signature of one of ZIP container’s structures.

","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError9WrongSizeFMS0_S0_":{"name":"WrongSize","abstract":"

Wrong either compressed or uncompressed size of a ZIP container’s entry.

","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError12WrongVersionFMS0_S0_":{"name":"WrongVersion","abstract":"

Wrong number of version needed to extract ZIP container.

","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError24MultiVolumesNotSupportedFMS0_S0_":{"name":"MultiVolumesNotSupported","abstract":"

Archive either spanned or consists of several volumes. This feature is not supported.

","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError22EncryptionNotSupportedFMS0_S0_":{"name":"EncryptionNotSupported","abstract":"

Entry or record is encrypted. This feature is not supported.

","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError20PatchingNotSupportedFMS0_S0_":{"name":"PatchingNotSupported","abstract":"

Entry contains patched data. This feature is not supported.

","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError23CompressionNotSupportedFMS0_S0_":{"name":"CompressionNotSupported","abstract":"

Wrong compression method of an entry.

","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError16WrongLocalHeaderFMS0_S0_":{"name":"WrongLocalHeader","abstract":"

Wrong local header of an entry.

","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError10WrongCRC32FMS0_S0_":{"name":"WrongCRC32","abstract":"

Wrong computed CRC32 of an entry.

","parent_name":"ZipError"},"Enums/GzipError.html#/s:FO13SWCompression9GzipError10WrongMagicFMS0_S0_":{"name":"WrongMagic","abstract":"

First two bytes of archive were not 31 and 139.

","parent_name":"GzipError"},"Enums/GzipError.html#/s:FO13SWCompression9GzipError22WrongCompressionMethodFMS0_S0_":{"name":"WrongCompressionMethod","abstract":"

Compression method was other than 8 which is the only supported one.

","parent_name":"GzipError"},"Enums/GzipError.html#/s:FO13SWCompression9GzipError10WrongFlagsFMS0_S0_":{"name":"WrongFlags","abstract":"

Reserved flags bits were not equal to 0.

","parent_name":"GzipError"},"Enums/GzipError.html#/s:FO13SWCompression9GzipError14WrongHeaderCRCFMS0_S0_":{"name":"WrongHeaderCRC","abstract":"

Computed CRC of header didn’t match the value stored in the archive.

","parent_name":"GzipError"},"Enums/GzipError.html#/s:FO13SWCompression9GzipError8WrongCRCFMS0_FV10Foundation4DataS0_":{"name":"WrongCRC","abstract":"

Computed CRC of uncompressed data didn’t match the value stored in the archive.","parent_name":"GzipError"},"Enums/GzipError.html#/s:FO13SWCompression9GzipError10WrongISizeFMS0_S0_":{"name":"WrongISize","abstract":"

Computed isize didn’t match the value stored in the archive.

","parent_name":"GzipError"},"Enums/LZMA2Error.html#/s:FO13SWCompression10LZMA2Error15WrongPropertiesFMS0_S0_":{"name":"WrongProperties","abstract":"

Reserved bits of LZMA2 properties byte were not equal to zero.

","parent_name":"LZMA2Error"},"Enums/LZMA2Error.html#/s:FO13SWCompression10LZMA2Error19WrongDictionarySizeFMS0_S0_":{"name":"WrongDictionarySize","abstract":"

Dictionary size was too big.

","parent_name":"LZMA2Error"},"Enums/LZMA2Error.html#/s:FO13SWCompression10LZMA2Error16WrongControlByteFMS0_S0_":{"name":"WrongControlByte","abstract":"

Unknown conrol byte value of LZMA2 packet.

","parent_name":"LZMA2Error"},"Enums/LZMA2Error.html#/s:FO13SWCompression10LZMA2Error10WrongResetFMS0_S0_":{"name":"WrongReset","abstract":"

Unknown reset instruction encounetered in LZMA2 packet.

","parent_name":"LZMA2Error"},"Enums/LZMA2Error.html#/s:FO13SWCompression10LZMA2Error10WrongSizesFMS0_S0_":{"name":"WrongSizes","abstract":"

Either size of decompressed data was not equal to specified one in LZMA2 packet or","parent_name":"LZMA2Error"},"Enums/LZMA2Error.html":{"name":"LZMA2Error","abstract":"

Error happened during LZMA2 decompression."},"Enums/GzipError.html":{"name":"GzipError","abstract":"

Error happened during unarchiving gzip archive."},"Enums/ZipError.html":{"name":"ZipError","abstract":"

Error happened during processing ZIP archive (container)."},"Enums/LZMAError.html":{"name":"LZMAError","abstract":"

Error happened during LZMA decompression."},"Enums/ZlibError.html":{"name":"ZlibError","abstract":"

Error happened during unarchiving Zlib archive."},"Enums/DeflateError.html":{"name":"DeflateError","abstract":"

Error happened during deflate decompression."},"Enums/BZip2Error.html":{"name":"BZip2Error","abstract":"

Error happened during bzip2 decompression."},"Enums/XZError.html":{"name":"XZError","abstract":"

Error happened during unarchiving XZ archive."},"Classes/XZArchive.html#/s:ZFC13SWCompression9XZArchive9unarchiveFzT11archiveDataV10Foundation4Data_S2_":{"name":"unarchive(archiveData:)","abstract":"

Unarchives xz archive stored in archiveData.

","parent_name":"XZArchive"},"Classes/BZip2.html#/s:ZFC13SWCompression5BZip210decompressFzT14compressedDataV10Foundation4Data_S2_":{"name":"decompress(compressedData:)","abstract":"

Decompresses compressedData with BZip2 algortihm.

","parent_name":"BZip2"},"Classes/Deflate.html#/s:ZFC13SWCompression7Deflate10decompressFzT14compressedDataV10Foundation4Data_S2_":{"name":"decompress(compressedData:)","abstract":"

Decompresses compressedData with DEFLATE algortihm.

","parent_name":"Deflate"},"Classes/Deflate.html#/s:ZFC13SWCompression7Deflate8compressFzT4dataV10Foundation4Data_S2_":{"name":"compress(data:)","abstract":"

Compresses data with DEFLATE algortihm.

","parent_name":"Deflate"},"Classes/ZlibArchive.html#/s:ZFC13SWCompression11ZlibArchive9unarchiveFzT11archiveDataV10Foundation4Data_S2_":{"name":"unarchive(archiveData:)","abstract":"

Unarchives Zlib archive stored in archiveData.

","parent_name":"ZlibArchive"},"Classes/ZlibArchive.html#/s:ZFC13SWCompression11ZlibArchive7archiveFzT4dataV10Foundation4Data_S2_":{"name":"archive(data:)","abstract":"

Archives data into Zlib archive. Data will be also compressed with DEFLTATE algorithm.","parent_name":"ZlibArchive"},"Classes/LZMA.html#/s:ZFC13SWCompression4LZMA10decompressFzT14compressedDataV10Foundation4Data_S2_":{"name":"decompress(compressedData:)","abstract":"

Decompresses compressedData with LZMA algortihm.

","parent_name":"LZMA"},"Classes/ZipContainer.html#/s:vC13SWCompression12ZipContainer7entriesGSaVS_8ZipEntry_":{"name":"entries","abstract":"

All file and directory entries found in ZIP archive (in its Central Directory).

","parent_name":"ZipContainer"},"Classes/ZipContainer.html#/s:FC13SWCompression12ZipContainercFzT13containerDataV10Foundation4Data_S0_":{"name":"init(containerData:)","abstract":"

Tries to open ZIP archive and parse its Central Directory.","parent_name":"ZipContainer"},"Classes/ZipContainer.html#/s:FC13SWCompression12ZipContainer4dataFzT3forVS_8ZipEntry_V10Foundation4Data":{"name":"data(for:)","abstract":"

Returns data associated with provided ZipEntry.

","parent_name":"ZipContainer"},"Classes/ZipContainer.html#/s:ZFC13SWCompression12ZipContainer4openFzT13containerDataV10Foundation4Data_GSaT9entryNameSS9entryDataS2___":{"name":"open(containerData:)","abstract":"

Processes ZIP archive (container) and returns an array of tuples (String, Data).","parent_name":"ZipContainer"},"Classes/GzipArchive.html#/s:ZFC13SWCompression11GzipArchive9unarchiveFzT11archiveDataV10Foundation4Data_S2_":{"name":"unarchive(archiveData:)","abstract":"

Unarchives gzip archive stored in archiveData.

","parent_name":"GzipArchive"},"Classes/GzipArchive.html#/s:ZFC13SWCompression11GzipArchive7archiveFzT4dataV10Foundation4Data_S2_":{"name":"archive(data:)","abstract":"

Archives data into GZip archive. Data will be also compressed with DEFLTATE algorithm.","parent_name":"GzipArchive"},"Classes/LZMA2.html#/s:ZFC13SWCompression5LZMA210decompressFzT14compressedDataV10Foundation4Data_S2_":{"name":"decompress(compressedData:)","abstract":"

Decompresses compressedData with LZMA2 algortihm. LZMA2 is a modification of LZMA.

","parent_name":"LZMA2"},"Classes/LZMA2.html":{"name":"LZMA2","abstract":"

Provides function to decompress data, which were compressed with LZMA2

"},"Classes/GzipArchive.html":{"name":"GzipArchive","abstract":"

Provides unarchive function for GZip archives.

"},"Classes/ZipContainer.html":{"name":"ZipContainer","abstract":"

Provides function to open ZIP archives (containers).

"},"Classes/LZMA.html":{"name":"LZMA","abstract":"

Provides function to decompress data, which were compressed with LZMA

"},"Classes/ZlibArchive.html":{"name":"ZlibArchive","abstract":"

Provides unarchive function for Zlib archives.

"},"Classes/Deflate.html":{"name":"Deflate","abstract":"

Provides function to decompress data, which were compressed with DEFLATE.

"},"Classes/BZip2.html":{"name":"BZip2","abstract":"

Provides function to decompress data, which were compressed using BZip2.

"},"Classes/XZArchive.html":{"name":"XZArchive","abstract":"

Provides unarchive function for XZ archives.

"},"Classes.html":{"name":"Classes","abstract":"The following classes are available globally."},"Enums.html":{"name":"Enums","abstract":"The following enums are available globally."},"Protocols.html":{"name":"Protocols","abstract":"The following protocols are available globally."},"Structs.html":{"name":"Structs","abstract":"The following structs are available globally."}} \ No newline at end of file +{"Structs/ZlibHeader/CompressionLevel.html#/s:FOV13SWCompression10ZlibHeader16CompressionLevel16fastestAlgorithmFMS1_S1_":{"name":"fastestAlgorithm","abstract":"

Fastest algorithm.

","parent_name":"CompressionLevel"},"Structs/ZlibHeader/CompressionLevel.html#/s:FOV13SWCompression10ZlibHeader16CompressionLevel13fastAlgorithmFMS1_S1_":{"name":"fastAlgorithm","abstract":"

Fast algorithm.

","parent_name":"CompressionLevel"},"Structs/ZlibHeader/CompressionLevel.html#/s:FOV13SWCompression10ZlibHeader16CompressionLevel16defaultAlgorithmFMS1_S1_":{"name":"defaultAlgorithm","abstract":"

Default algorithm.

","parent_name":"CompressionLevel"},"Structs/ZlibHeader/CompressionLevel.html#/s:FOV13SWCompression10ZlibHeader16CompressionLevel13slowAlgorithmFMS1_S1_":{"name":"slowAlgorithm","abstract":"

Slowest algorithm but with maximum compression.

","parent_name":"CompressionLevel"},"Structs/ZlibHeader/CompressionMethod.html#/s:FOV13SWCompression10ZlibHeader17CompressionMethod7deflateFMS1_S1_":{"name":"deflate","abstract":"

The only one supported compression method (Deflate).

","parent_name":"CompressionMethod"},"Structs/ZlibHeader/CompressionMethod.html":{"name":"CompressionMethod","abstract":"

Supported compression methods in zlib archive.

","parent_name":"ZlibHeader"},"Structs/ZlibHeader/CompressionLevel.html":{"name":"CompressionLevel","abstract":"

Levels of compression which can be used to create zlib archive.

","parent_name":"ZlibHeader"},"Structs/ZlibHeader.html#/s:vV13SWCompression10ZlibHeader17compressionMethodOS0_17CompressionMethod":{"name":"compressionMethod","abstract":"

Compression method of archive. Always equals to .deflate.

","parent_name":"ZlibHeader"},"Structs/ZlibHeader.html#/s:vV13SWCompression10ZlibHeader16compressionLevelOS0_16CompressionLevel":{"name":"compressionLevel","abstract":"

Level of compression in the archive.

","parent_name":"ZlibHeader"},"Structs/ZlibHeader.html#/s:vV13SWCompression10ZlibHeader10windowSizeSi":{"name":"windowSize","abstract":"

Size of ‘window’: moving interval of data which was used to make the archive

","parent_name":"ZlibHeader"},"Structs/ZlibHeader.html#/s:FV13SWCompression10ZlibHeadercFzT11archiveDataV10Foundation4Data_S0_":{"name":"init(archiveData:)","abstract":"

Initializes the structure with the values from zlib archive presented in archiveData.

","parent_name":"ZlibHeader"},"Structs/ZipEntry.html#/s:vV13SWCompression8ZipEntry8fileNameGSqSS_":{"name":"fileName","abstract":"

Name of the file or directory.

","parent_name":"ZipEntry"},"Structs/ZipEntry.html#/s:vV13SWCompression8ZipEntry11fileCommentGSqSS_":{"name":"fileComment","abstract":"

Comment associated with the entry.

","parent_name":"ZipEntry"},"Structs/ZipEntry.html#/s:vV13SWCompression8ZipEntry14fileAttributesVs6UInt32":{"name":"fileAttributes","abstract":"

File or directory attributes related to the file system of archive’s creator.

","parent_name":"ZipEntry"},"Structs/GzipHeader/FileSystemType.html#/s:FOV13SWCompression10GzipHeader14FileSystemType4unixFMS1_S1_":{"name":"unix","abstract":"

One of many Linux systems. (It seems like modern macOS systems also fall into this category).

","parent_name":"FileSystemType"},"Structs/GzipHeader/FileSystemType.html#/s:FOV13SWCompression10GzipHeader14FileSystemType9macintoshFMS1_S1_":{"name":"macintosh","abstract":"

Older Macintosh (Mac OS, OS X) systems.

","parent_name":"FileSystemType"},"Structs/GzipHeader/FileSystemType.html#/s:FOV13SWCompression10GzipHeader14FileSystemType4ntfsFMS1_S1_":{"name":"ntfs","abstract":"

File system used in Microsoft™®© Windows™®©.

","parent_name":"FileSystemType"},"Structs/GzipHeader/FileSystemType.html#/s:FOV13SWCompression10GzipHeader14FileSystemType7unknownFMS1_S1_":{"name":"unknown","abstract":"

File system was unknown to the archiver.

","parent_name":"FileSystemType"},"Structs/GzipHeader/FileSystemType.html#/s:FOV13SWCompression10GzipHeader14FileSystemType5otherFMS1_S1_":{"name":"other","abstract":"

File system was one of the rare systems..

","parent_name":"FileSystemType"},"Structs/GzipHeader/CompressionMethod.html#/s:FOV13SWCompression10GzipHeader17CompressionMethod7deflateFMS1_S1_":{"name":"deflate","abstract":"

The only one supported compression method (Deflate).

","parent_name":"CompressionMethod"},"Structs/GzipHeader/CompressionMethod.html":{"name":"CompressionMethod","abstract":"

Supported compression methods in gzip archive.

","parent_name":"GzipHeader"},"Structs/GzipHeader/FileSystemType.html":{"name":"FileSystemType","abstract":"

Type of file system on which gzip archive was created.

","parent_name":"GzipHeader"},"Structs/GzipHeader.html#/s:vV13SWCompression10GzipHeader17compressionMethodOS0_17CompressionMethod":{"name":"compressionMethod","abstract":"

Compression method of archive. Always equals to .deflate.

","parent_name":"GzipHeader"},"Structs/GzipHeader.html#/s:vV13SWCompression10GzipHeader16modificationTimeV10Foundation4Date":{"name":"modificationTime","abstract":"

The most recent modification time of the original file.

","parent_name":"GzipHeader"},"Structs/GzipHeader.html#/s:vV13SWCompression10GzipHeader6osTypeOS0_14FileSystemType":{"name":"osType","abstract":"

Type of file system on which compression took place.

","parent_name":"GzipHeader"},"Structs/GzipHeader.html#/s:vV13SWCompression10GzipHeader16originalFileNameGSqSS_":{"name":"originalFileName","abstract":"

Name of the original file.

","parent_name":"GzipHeader"},"Structs/GzipHeader.html#/s:vV13SWCompression10GzipHeader7commentGSqSS_":{"name":"comment","abstract":"

Comment inside the archive.

","parent_name":"GzipHeader"},"Structs/GzipHeader.html#/s:FV13SWCompression10GzipHeadercFzT11archiveDataV10Foundation4Data_S0_":{"name":"init(archiveData:)","abstract":"

Initializes the structure with the values of first ‘member’ in gzip archive presented in archiveData.

","parent_name":"GzipHeader"},"Structs/GzipHeader.html":{"name":"GzipHeader","abstract":"

A structure which provides information about gzip archive.

"},"Structs/ZipEntry.html":{"name":"ZipEntry","abstract":"

Represents either a file or directory entry inside ZIP archive.

"},"Structs/ZlibHeader.html":{"name":"ZlibHeader","abstract":"

A structure which provides information about zlib archive.

"},"Protocols/DecompressionAlgorithm.html#/s:ZFP13SWCompression22DecompressionAlgorithm10decompressFzT14compressedDataV10Foundation4Data_S2_":{"name":"decompress(compressedData:)","abstract":"

Abstract decompress function.

","parent_name":"DecompressionAlgorithm"},"Protocols/Archive.html#/s:ZFP13SWCompression7Archive9unarchiveFzT11archiveDataV10Foundation4Data_S2_":{"name":"unarchive(archiveData:)","abstract":"

Abstract unarchive function.

","parent_name":"Archive"},"Protocols/Archive.html":{"name":"Archive","abstract":"

Abstract archive class which supports unarchiving.

"},"Protocols/DecompressionAlgorithm.html":{"name":"DecompressionAlgorithm","abstract":"

Abstract decompression algorithm class which supports decompression.

"},"Enums/XZError.html#/s:FO13SWCompression7XZError10WrongMagicFMS0_S0_":{"name":"WrongMagic","abstract":"

Either magic number in header or footer was not equal to predefined value.

","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError16WrongArchiveInfoFMS0_S0_":{"name":"WrongArchiveInfo","abstract":"

One of special fields of archive had an incorrect value.

","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError18FieldReservedValueFMS0_S0_":{"name":"FieldReservedValue","abstract":"

One of special fields of archive had a reserved value.

","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError12WrongInfoCRCFMS0_S0_":{"name":"WrongInfoCRC","abstract":"

Checksum of one of special fields of archive was incorrect.

","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError13WrongFilterIDFMS0_S0_":{"name":"WrongFilterID","abstract":"

ID of filter(s) used in archvie was unsupported.

","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError15CheckTypeSHA256FMS0_S0_":{"name":"CheckTypeSHA256","abstract":"

Type of checksum of archive was SHA-256.

","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError13WrongDataSizeFMS0_S0_":{"name":"WrongDataSize","abstract":"

Either size of decompressed data was not equal to specified one in block header or","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError10WrongCheckFMS0_FV10Foundation4DataS0_":{"name":"WrongCheck","abstract":"

Computed checksum of uncompressed data didn’t match the value stored in the archive.","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError12WrongPaddingFMS0_S0_":{"name":"WrongPadding","abstract":"

Unsupported padding of a structure in the archive.

","parent_name":"XZError"},"Enums/XZError.html#/s:FO13SWCompression7XZError21MultiByteIntegerErrorFMS0_S0_":{"name":"MultiByteIntegerError","abstract":"

Either null byte encountered or exceeded maximum amount bytes during reading multi byte number.

","parent_name":"XZError"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error10WrongMagicFMS0_S0_":{"name":"WrongMagic","abstract":"

Magic number was not 0x425a.

","parent_name":"BZip2Error"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error22WrongCompressionMethodFMS0_S0_":{"name":"WrongCompressionMethod","abstract":"

Compression method was not type ‘h’ (not Huffman).

","parent_name":"BZip2Error"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error14WrongBlockSizeFMS0_S0_":{"name":"WrongBlockSize","abstract":"

Unknown block size (not from ‘0’ to ‘9’).

","parent_name":"BZip2Error"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error14WrongBlockTypeFMS0_S0_":{"name":"WrongBlockType","abstract":"

Unknown block type (was neither ‘pi’ nor ‘sqrt(pi)’).

","parent_name":"BZip2Error"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error15RandomizedBlockFMS0_S0_":{"name":"RandomizedBlock","abstract":"

Block is randomized.

","parent_name":"BZip2Error"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error18WrongHuffmanGroupsFMS0_S0_":{"name":"WrongHuffmanGroups","abstract":"

Wrong number of Huffman tables/groups (should be between 2 and 6).

","parent_name":"BZip2Error"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error13WrongSelectorFMS0_S0_":{"name":"WrongSelector","abstract":"

Selector was greater than total number of Huffman tables/groups.

","parent_name":"BZip2Error"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error22WrongHuffmanLengthCodeFMS0_S0_":{"name":"WrongHuffmanLengthCode","abstract":"

Wrong code of Huffman length (should be between 0 and 20).

","parent_name":"BZip2Error"},"Enums/BZip2Error.html#/s:FO13SWCompression10BZip2Error14SymbolNotFoundFMS0_S0_":{"name":"SymbolNotFound","abstract":"

Symbol was not found in Huffman tree.

","parent_name":"BZip2Error"},"Enums/DeflateError.html#/s:FO13SWCompression12DeflateError29WrongUncompressedBlockLengthsFMS0_S0_":{"name":"WrongUncompressedBlockLengths","abstract":"

Uncompressed block’ length and nlength bytes were not compatible.

","parent_name":"DeflateError"},"Enums/DeflateError.html#/s:FO13SWCompression12DeflateError14WrongBlockTypeFMS0_S0_":{"name":"WrongBlockType","abstract":"

Unknown block type (not from 0 to 2).

","parent_name":"DeflateError"},"Enums/DeflateError.html#/s:FO13SWCompression12DeflateError11WrongSymbolFMS0_S0_":{"name":"WrongSymbol","abstract":"

Decoded symbol was found in Huffman tree but is unknown.

","parent_name":"DeflateError"},"Enums/DeflateError.html#/s:FO13SWCompression12DeflateError14SymbolNotFoundFMS0_S0_":{"name":"SymbolNotFound","abstract":"

Symbol was not found in Huffman tree.

","parent_name":"DeflateError"},"Enums/ZlibError.html#/s:FO13SWCompression9ZlibError22WrongCompressionMethodFMS0_S0_":{"name":"WrongCompressionMethod","abstract":"

Compression method was other than 8 which is the only supported one.

","parent_name":"ZlibError"},"Enums/ZlibError.html#/s:FO13SWCompression9ZlibError20WrongCompressionInfoFMS0_S0_":{"name":"WrongCompressionInfo","abstract":"

Compression info was greater than 7 which is uncompatible number 8 compression method.

","parent_name":"ZlibError"},"Enums/ZlibError.html#/s:FO13SWCompression9ZlibError11WrongFcheckFMS0_S0_":{"name":"WrongFcheck","abstract":"

First two bytes were inconsistent with each other.

","parent_name":"ZlibError"},"Enums/ZlibError.html#/s:FO13SWCompression9ZlibError21WrongCompressionLevelFMS0_S0_":{"name":"WrongCompressionLevel","abstract":"

Compression level was other than 0, 1, 2, 3.

","parent_name":"ZlibError"},"Enums/ZlibError.html#/s:FO13SWCompression9ZlibError12WrongAdler32FMS0_FV10Foundation4DataS0_":{"name":"WrongAdler32","abstract":"

Computed Adler-32 sum of uncompressed data didn’t match the value stored in the archive.","parent_name":"ZlibError"},"Enums/LZMAError.html#/s:FO13SWCompression9LZMAError15WrongPropertiesFMS0_S0_":{"name":"WrongProperties","abstract":"

Properties byte was greater than 225.

","parent_name":"LZMAError"},"Enums/LZMAError.html#/s:FO13SWCompression9LZMAError21RangeDecoderInitErrorFMS0_S0_":{"name":"RangeDecoderInitError","abstract":"

Unable to initialize RanderDecorer.

","parent_name":"LZMAError"},"Enums/LZMAError.html#/s:FO13SWCompression9LZMAError24ExceededUncompressedSizeFMS0_S0_":{"name":"ExceededUncompressedSize","abstract":"

The number of uncompressed bytes hit limit in the middle of decoding.

","parent_name":"LZMAError"},"Enums/LZMAError.html#/s:FO13SWCompression9LZMAError13WindowIsEmptyFMS0_S0_":{"name":"WindowIsEmpty","abstract":"

Unable to perfrom repeat-distance decoding because there is nothing to repeat.

","parent_name":"LZMAError"},"Enums/LZMAError.html#/s:FO13SWCompression9LZMAError23RangeDecoderFinishErrorFMS0_S0_":{"name":"RangeDecoderFinishError","abstract":"

End of stream marker is reached, but range decoder is in incorrect state.

","parent_name":"LZMAError"},"Enums/LZMAError.html#/s:FO13SWCompression9LZMAError16RepeatWillExceedFMS0_S0_":{"name":"RepeatWillExceed","abstract":"

The number of bytes to repeat is greater than the amount bytes that is left to decode.

","parent_name":"LZMAError"},"Enums/LZMAError.html#/s:FO13SWCompression9LZMAError17NotEnoughToRepeatFMS0_S0_":{"name":"NotEnoughToRepeat","abstract":"

The amount of already decoded bytes is smaller than repeat length.

","parent_name":"LZMAError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError27NotFoundCentralDirectoryEndFMS0_S0_":{"name":"NotFoundCentralDirectoryEnd","abstract":"

End of Central Directoty record was not found.

","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError14WrongSignatureFMS0_S0_":{"name":"WrongSignature","abstract":"

Wrong signature of one of ZIP container’s structures.

","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError9WrongSizeFMS0_S0_":{"name":"WrongSize","abstract":"

Wrong either compressed or uncompressed size of a ZIP container’s entry.

","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError12WrongVersionFMS0_S0_":{"name":"WrongVersion","abstract":"

Wrong number of version needed to extract ZIP container.

","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError24MultiVolumesNotSupportedFMS0_S0_":{"name":"MultiVolumesNotSupported","abstract":"

Archive either spanned or consists of several volumes. This feature is not supported.

","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError22EncryptionNotSupportedFMS0_S0_":{"name":"EncryptionNotSupported","abstract":"

Entry or record is encrypted. This feature is not supported.

","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError20PatchingNotSupportedFMS0_S0_":{"name":"PatchingNotSupported","abstract":"

Entry contains patched data. This feature is not supported.

","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError23CompressionNotSupportedFMS0_S0_":{"name":"CompressionNotSupported","abstract":"

Wrong compression method of an entry.

","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError16WrongLocalHeaderFMS0_S0_":{"name":"WrongLocalHeader","abstract":"

Wrong local header of an entry.

","parent_name":"ZipError"},"Enums/ZipError.html#/s:FO13SWCompression8ZipError10WrongCRC32FMS0_S0_":{"name":"WrongCRC32","abstract":"

Wrong computed CRC32 of an entry.

","parent_name":"ZipError"},"Enums/GzipError.html#/s:FO13SWCompression9GzipError10WrongMagicFMS0_S0_":{"name":"WrongMagic","abstract":"

First two bytes of archive were not 31 and 139.

","parent_name":"GzipError"},"Enums/GzipError.html#/s:FO13SWCompression9GzipError22WrongCompressionMethodFMS0_S0_":{"name":"WrongCompressionMethod","abstract":"

Compression method was other than 8 which is the only supported one.

","parent_name":"GzipError"},"Enums/GzipError.html#/s:FO13SWCompression9GzipError10WrongFlagsFMS0_S0_":{"name":"WrongFlags","abstract":"

Reserved flags bits were not equal to 0.

","parent_name":"GzipError"},"Enums/GzipError.html#/s:FO13SWCompression9GzipError14WrongHeaderCRCFMS0_S0_":{"name":"WrongHeaderCRC","abstract":"

Computed CRC of header didn’t match the value stored in the archive.

","parent_name":"GzipError"},"Enums/GzipError.html#/s:FO13SWCompression9GzipError8WrongCRCFMS0_FV10Foundation4DataS0_":{"name":"WrongCRC","abstract":"

Computed CRC of uncompressed data didn’t match the value stored in the archive.","parent_name":"GzipError"},"Enums/GzipError.html#/s:FO13SWCompression9GzipError10WrongISizeFMS0_S0_":{"name":"WrongISize","abstract":"

Computed isize didn’t match the value stored in the archive.

","parent_name":"GzipError"},"Enums/LZMA2Error.html#/s:FO13SWCompression10LZMA2Error15WrongPropertiesFMS0_S0_":{"name":"WrongProperties","abstract":"

Reserved bits of LZMA2 properties byte were not equal to zero.

","parent_name":"LZMA2Error"},"Enums/LZMA2Error.html#/s:FO13SWCompression10LZMA2Error19WrongDictionarySizeFMS0_S0_":{"name":"WrongDictionarySize","abstract":"

Dictionary size was too big.

","parent_name":"LZMA2Error"},"Enums/LZMA2Error.html#/s:FO13SWCompression10LZMA2Error16WrongControlByteFMS0_S0_":{"name":"WrongControlByte","abstract":"

Unknown conrol byte value of LZMA2 packet.

","parent_name":"LZMA2Error"},"Enums/LZMA2Error.html#/s:FO13SWCompression10LZMA2Error10WrongResetFMS0_S0_":{"name":"WrongReset","abstract":"

Unknown reset instruction encounetered in LZMA2 packet.

","parent_name":"LZMA2Error"},"Enums/LZMA2Error.html#/s:FO13SWCompression10LZMA2Error10WrongSizesFMS0_S0_":{"name":"WrongSizes","abstract":"

Either size of decompressed data was not equal to specified one in LZMA2 packet or","parent_name":"LZMA2Error"},"Enums/LZMA2Error.html":{"name":"LZMA2Error","abstract":"

Error happened during LZMA2 decompression."},"Enums/GzipError.html":{"name":"GzipError","abstract":"

Error happened during unarchiving gzip archive."},"Enums/ZipError.html":{"name":"ZipError","abstract":"

Error happened during processing ZIP archive (container)."},"Enums/LZMAError.html":{"name":"LZMAError","abstract":"

Error happened during LZMA decompression."},"Enums/ZlibError.html":{"name":"ZlibError","abstract":"

Error happened during unarchiving Zlib archive."},"Enums/DeflateError.html":{"name":"DeflateError","abstract":"

Error happened during deflate decompression."},"Enums/BZip2Error.html":{"name":"BZip2Error","abstract":"

Error happened during bzip2 decompression."},"Enums/XZError.html":{"name":"XZError","abstract":"

Error happened during unarchiving XZ archive."},"Classes/XZArchive.html#/s:ZFC13SWCompression9XZArchive9unarchiveFzT11archiveDataV10Foundation4Data_S2_":{"name":"unarchive(archiveData:)","abstract":"

Unarchives xz archive stored in archiveData.

","parent_name":"XZArchive"},"Classes/BZip2.html#/s:ZFC13SWCompression5BZip210decompressFzT14compressedDataV10Foundation4Data_S2_":{"name":"decompress(compressedData:)","abstract":"

Decompresses compressedData with BZip2 algortihm.

","parent_name":"BZip2"},"Classes/Deflate.html#/s:ZFC13SWCompression7Deflate10decompressFzT14compressedDataV10Foundation4Data_S2_":{"name":"decompress(compressedData:)","abstract":"

Decompresses compressedData with DEFLATE algortihm.

","parent_name":"Deflate"},"Classes/Deflate.html#/s:ZFC13SWCompression7Deflate8compressFzT4dataV10Foundation4Data_S2_":{"name":"compress(data:)","abstract":"

Compresses data with DEFLATE algortihm.

","parent_name":"Deflate"},"Classes/ZlibArchive.html#/s:ZFC13SWCompression11ZlibArchive9unarchiveFzT11archiveDataV10Foundation4Data_S2_":{"name":"unarchive(archiveData:)","abstract":"

Unarchives Zlib archive stored in archiveData.

","parent_name":"ZlibArchive"},"Classes/ZlibArchive.html#/s:ZFC13SWCompression11ZlibArchive7archiveFzT4dataV10Foundation4Data_S2_":{"name":"archive(data:)","abstract":"

Archives data into Zlib archive. Data will be also compressed with DEFLTATE algorithm.","parent_name":"ZlibArchive"},"Classes/LZMA.html#/s:ZFC13SWCompression4LZMA10decompressFzT14compressedDataV10Foundation4Data_S2_":{"name":"decompress(compressedData:)","abstract":"

Decompresses compressedData with LZMA algortihm.

","parent_name":"LZMA"},"Classes/ZipContainer.html#/s:vC13SWCompression12ZipContainer7entriesGSaVS_8ZipEntry_":{"name":"entries","abstract":"

All file and directory entries found in ZIP archive (in its Central Directory).

","parent_name":"ZipContainer"},"Classes/ZipContainer.html#/s:FC13SWCompression12ZipContainercFzT13containerDataV10Foundation4Data_S0_":{"name":"init(containerData:)","abstract":"

Tries to open ZIP archive and parse its Central Directory.","parent_name":"ZipContainer"},"Classes/ZipContainer.html#/s:FC13SWCompression12ZipContainer4dataFzT3forVS_8ZipEntry_V10Foundation4Data":{"name":"data(for:)","abstract":"

Returns data associated with provided ZipEntry.

","parent_name":"ZipContainer"},"Classes/ZipContainer.html#/s:ZFC13SWCompression12ZipContainer4openFzT13containerDataV10Foundation4Data_GSaT9entryNameSS9entryDataS2___":{"name":"open(containerData:)","abstract":"

Processes ZIP archive (container) and returns an array of tuples (String, Data).","parent_name":"ZipContainer"},"Classes/GzipArchive.html#/s:ZFC13SWCompression11GzipArchive9unarchiveFzT11archiveDataV10Foundation4Data_S2_":{"name":"unarchive(archiveData:)","abstract":"

Unarchives gzip archive stored in archiveData.

","parent_name":"GzipArchive"},"Classes/GzipArchive.html#/s:ZFC13SWCompression11GzipArchive7archiveFzT4dataV10Foundation4Data_S2_":{"name":"archive(data:)","abstract":"

Archives data into GZip archive. Data will be also compressed with DEFLTATE algorithm.","parent_name":"GzipArchive"},"Classes/LZMA2.html#/s:ZFC13SWCompression5LZMA210decompressFzT14compressedDataV10Foundation4Data_S2_":{"name":"decompress(compressedData:)","abstract":"

Decompresses compressedData with LZMA2 algortihm. LZMA2 is a modification of LZMA.

","parent_name":"LZMA2"},"Classes/LZMA2.html":{"name":"LZMA2","abstract":"

Provides function to decompress data, which were compressed with LZMA2

"},"Classes/GzipArchive.html":{"name":"GzipArchive","abstract":"

Provides unarchive function for GZip archives.

"},"Classes/ZipContainer.html":{"name":"ZipContainer","abstract":"

Provides function to open ZIP archives (containers).

"},"Classes/LZMA.html":{"name":"LZMA","abstract":"

Provides function to decompress data, which were compressed with LZMA

"},"Classes/ZlibArchive.html":{"name":"ZlibArchive","abstract":"

Provides unarchive function for Zlib archives.

"},"Classes/Deflate.html":{"name":"Deflate","abstract":"

Provides function to decompress data, which were compressed with DEFLATE.

"},"Classes/BZip2.html":{"name":"BZip2","abstract":"

Provides function to decompress data, which were compressed using BZip2.

"},"Classes/XZArchive.html":{"name":"XZArchive","abstract":"

Provides unarchive function for XZ archives.

"},"Classes.html":{"name":"Classes","abstract":"

The following classes are available globally.

"},"Enums.html":{"name":"Enums","abstract":"

The following enums are available globally.

"},"Protocols.html":{"name":"Protocols","abstract":"

The following protocols are available globally.

"},"Structs.html":{"name":"Structs","abstract":"

The following structs are available globally.

"}} \ No newline at end of file