=4L      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ 5(c) 2016-present, Facebook, Inc. All rights reserved.BSD3 bryano@fb.com experimentalGHCSafeCompression dictionary.(The result of a decompression operation.lEither the compressed frame was empty, or it was compressed in streaming mode and so its size is not known.An error occurred.*The payload was successfully decompressed.Smart constructor.   5(c) 2016-present, Facebook, Inc. All rights reserved.BSD3bos@serpentine.com experimentalGHCNoneATA streaming buffer type. The type parameter statically indicates whether the buffer is used to track an input or output buffer.mPointer to the start of the buffer. This can be set once by the caller, and read by the streaming function.kSize of the buffer (in bytes). This can be set once by the caller, and is read by the streaming function.Current offset into the buffer (in bytes). This must be initially set to zero by the caller, and is updated by the streaming function.A tag type to indicate that a  is used for tracking output.A tag type to indicate that a  is used for tracking input.:An opaque pre-digested decompression dictionary structure.8An opaque pre-digested compression dictionary structure.*An opaque decompression context structure.(An opaque compression context structure. Read the  value from a . Write to the  value in a . Read the  value from a . Write to the  value in a . Read the  value from a . Write to the  value in a .5(c) 2016-present, Facebook, Inc. All rights reserved.BSD3 bryano@fb.com experimentalGHCNoneB0&A context for streaming decompression.$A context for streaming compression.Free a pre-digested dictionary.Free a pre-digested dictionary.#Allocate a pre-digested dictionary. Free a pre-digested dictionary.!Free a pre-digested dictionary."#Allocate a pre-digested dictionary.#SReturn the identifier for the given dictionary, or zero if not a valid dictionary.$fTrain a dictionary from a collection of samples. Returns the number size of the resulting dictionary.%Free a  value. For use by a finalizer.&Free a  value.' Consume part or all of an input.(.Begin a new streaming decompression operation.)ECreate a streaming decompression context. This must be freed using & , or if using a finalizer, with %.*#Recommended size for output buffer.+"Recommended size for input buffer.,MEnd a compression stream. This performs a flush and writes a frame epilogue.- Consume part or all of an input.."Begin a new compression operation./Free a  value. For use by a finalizer.0Free a  value.1CCreate a streaming compression context. This must be freed using 0 , or if using a finalizer, with /.2#Recommended size for output buffer.3"Recommended size for input buffer.4HDecompress a buffer. The destination buffer must be already allocated.vReturns the number of bytes written into destination buffer, or an error code if it fails (which can be tested using F).56Free a decompression context. For use by a finalizer.6Free a decompression context.7!Allocate a decompression context.8sDecompress a buffer, using a pre-built, pre-digested dictionary. The destination buffer must be already allocated.vReturns the number of bytes written into destination buffer, or an error code if it fails (which can be tested using F).9eDecompress a buffer, using a prebuilt dictionary. The destination buffer must be already allocated.vReturns the number of bytes written into destination buffer, or an error code if it fails (which can be tested using F).:Compress bytes from source buffer into destination buffer, using a pre-built, pre-digested dictionary. The destination buffer must be already allocated.vReturns the number of bytes written into destination buffer, or an error code if it fails (which can be tested using F).;Compress bytes from source buffer into destination buffer, using a prebuilt dictionary. The destination buffer must be already allocated.vReturns the number of bytes written into destination buffer, or an error code if it fails (which can be tested using F).<mCompress bytes from source buffer into destination buffer. The destination buffer must be already allocated.vReturns the number of bytes written into destination buffer, or an error code if it fails (which can be tested using F).=4Free a compression context. For use by a finalizer.>Free a compression context.?Allocate a compression context.@MReturns the decompressed size of a compressed payload if known, 0 otherwise.9To discover precisely why a result is 0, follow up with getFrameParams.AHDecompress a buffer. The destination buffer must be already allocated.vReturns the number of bytes written into destination buffer, or an error code if it fails (which can be tested using F).4Gives the description associated with an error code.4Always returns a valid pointer to a constant string.B;Compute the maximum compressed size of given source buffer.C?Returns the maximum compression level supported by the library.DmCompress bytes from source buffer into destination buffer. The destination buffer must be already allocated.vReturns the number of bytes written into destination buffer, or an error code if it fails (which can be tested using F).E7The maximum compression level supported by the library.F2Indicates whether a return value is an error code.G4Gives the description associated with an error code.HJCheck that an allocating operation is successful. If it fails, throw an .ICheck whether a P has an error encoded in it (yuck!), and report success or failure more safely.1 Dictionary.Size of dictionary. !" Dictionary.Size of dictionary.Compression level.# Dictionary.Size of dictionary.$Preallocated dictionary buffer.Capacity of dictionary buffer.Concatenated samples.Array of sizes of samples.Number of samples.%&'()*+,-.Compression level./01234Decompression context.Destination buffer.Capacity of destination buffer.Source buffer.Size of compressed input. This must be exact, so for example supplying the size of a buffer that is larger than the compressed input will cause a failure.5678Decompression context.Destination buffer.Capacity of destination buffer.Source buffer.Size of compressed input. This must be exact, so for example supplying the size of a buffer that is larger than the compressed input will cause a failure. Dictionary.9Decompression context.Destination buffer.Capacity of destination buffer.Source buffer.Size of compressed input. This must be exact, so for example supplying the size of a buffer that is larger than the compressed input will cause a failure. Dictionary.Size of dictionary.:Compression context.Destination buffer.Capacity of destination buffer.Source buffer.Size of source buffer. Dictionary.;Compression context.Destination buffer.Capacity of destination buffer.Source buffer.Size of source buffer. Dictionary.Size of dictionary.Compression level.<Compression context.Destination buffer.Capacity of destination buffer.Source buffer.Size of source buffer.Compression level.=>?@ADestination buffer.Capacity of destination buffer.Source buffer.Size of compressed input. This must be exact, so for example supplying the size of a buffer that is larger than the compressed input will cause a failure.BSource buffer.CDDestination buffer.Capacity of destination buffer.Source buffer.Size of source buffer.Compression level.EFGHI: !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHI:DBEA@?>=<7654FGIH3210/.-,+*)('&%$#;9"! :8C1 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHI 5(c) 2016-present, Facebook, Inc. All rights reserved.BSD3 bryano@fb.com experimentalGHCNoneJDecompression context.KCompression context.LYReturn the decompressed size of a compressed payload, as stored in the payload's header.The returned value will be  if it is either not known (probably because the payload was compressed using a streaming API), empty, or too large to fit in an .Note:K this value should not be trusted, as it can be controlled by an attacker.M{Allocate a compression context, run an action that may reuse the context as many times as it needs, then free the context.N}Allocate a decompression context, run an action that may reuse the context as many times as it needs, then free the context.OHCreate and train a compression dictionary from a collection of samples.VTo create a well-trained dictionary, here are some useful guidelines to keep in mind:A reasonable dictionary size is in the region of 100 KB. (Trying to specify a dictionary size of less than a few hundred bytes will probably fail.)VTo train the dictionary well, it is best to supply a few thousand training samples.pThe combined size of all training samples should be 100 or more times larger than the size of the dictionary.P3Return the identifier for the given dictionary, or  if not a valid dictionary.JKLMNOfMaximum size of the compression dictionary to create. The actual dictionary returned may be smaller.Samples to train with.PJKLMNOP JKLMNOP5(c) 2016-present, Facebook, Inc. All rights reserved.BSD3 bryano@fb.com experimentalGHCNone\Q<The result of a streaming compression or decompression step.RA single frame of transformed data, and an action that when executed will yield the next step in the streaming operation. The action is ephemeral; you should discard it as soon as you use it.SProvide the function with more input for the streaming operation to continue. This function is ephemeral. You should call it exactly once, and discard it immediately after you call it.1To signal the end of a stream of data, supply an  input.TTAn error has occurred. If an error occurs, the streaming operation cannot continue.UeThe streaming operation has ended. This payload may be empty. If it is not, it must be written out.yA non-empty payload consists of a frame epilogue, possibly preceded by any data left over from the final streaming step.V(Begin a streaming compression operation.%The initial result will be either an T or a S.W*Begin a streaming decompression operation.%The initial result will be either an T or a S.QRSTUV'Compression level. Must be >= 1 and <= E.WXEQUTRSVWQRSTUVWE QRSTUVWX5(c) 2016-present, Facebook, Inc. All rights reserved.BSD3 bryano@fb.com experimentalGHCNone\YdCompress a payload. The input will be consumed lazily, and the compressed result generated lazily.Note:M if any error occurs, compression will fail part-way through with a call to .ZhDecompress a payload. The input will be consumed lazily, and the decompressed result generated lazily.Note:O if any error occurs, decompression will fail part-way through with a call to .Y'Compression level. Must be >= 1 and <= E.3Payload to compress. This will be consumed lazily.ZEYZYZEYZ 5(c) 2016-present, Facebook, Inc. All rights reserved.BSD3 bryano@fb.com experimentalGHCNone[(A pre-digested decompression dictionary.\&A pre-digested compression dictionary.[\[\[\5(c) 2016-present, Facebook, Inc. All rights reserved.BSD3 bryano@fb.com experimentalGHCNone]&A context for streaming decompression.^$A context for streaming compression._mCompress bytes from source buffer into destination buffer. The destination buffer must be already allocated.bReturns the number of bytes written into destination buffer, or an error description if it fails.`7The maximum compression level supported by the library.a;Compute the maximum compressed size of given source buffer.bHDecompress a buffer. The destination buffer must be already allocated.bReturns the number of bytes written into destination buffer, or an error description if it fails.c?Returns the decompressed size of a compressed payload if known.ATo discover precisely why a result is not known, follow up with  .d{Allocate a compression context, run an action that may reuse the context as many times as it needs, then free the context.emCompress bytes from source buffer into destination buffer. The destination buffer must be already allocated.bReturns the number of bytes written into destination buffer, or an error description if it fails.f}Allocate a decompression context, run an action that may reuse the context as many times as it needs, then free the context.gHDecompress a buffer. The destination buffer must be already allocated.bReturns the number of bytes written into destination buffer, or an error description if it fails.h"Recommended size for input buffer.i#Recommended size for output buffer.j Create a ^C value. After use, this will eventually be freed via a finalizer.k,Begin a new streaming compression operation.l Consume part or all of an input.mMEnd a compression stream. This performs a flush and writes a frame epilogue.n"Recommended size for input buffer.o#Recommended size for output buffer.peCreate a streaming decompression context. After use, this will eventually be freed via a finalizer.q.Begin a new streaming decompression operation.r Consume part or all of an input.sfTrain a dictionary from a collection of samples. Returns the number size of the resulting dictionary.t3Return the identifier for the given dictionary, or  if not a valid dictionary.umCompress bytes from source buffer into destination buffer. The destination buffer must be already allocated.bReturns the number of bytes written into destination buffer, or an error description if it fails.vHDecompress a buffer. The destination buffer must be already allocated.bReturns the number of bytes written into destination buffer, or an error description if it fails.wiCreate a pre-digested compression dictionary. After use, this will eventually be freed via a finalizer.xCompress bytes from source buffer into destination buffer, using a pre-digested dictionary. The destination buffer must be already allocated.bReturns the number of bytes written into destination buffer, or an error description if it fails.ykCreate a pre-digested decompression dictionary. After use, this will eventually be freed via a finalizer.zDecompress bytes from source buffer into destination buffer, using a pre-digested dictionary. The destination buffer must be already allocated.bReturns the number of bytes written into destination buffer, or an error description if it fails.!]^_Destination buffer.Capacity of destination buffer.Source buffer.Size of source buffer.Compression level.`aSource buffer.bDestination buffer.Capacity of destination buffer.Source buffer.Size of compressed input. This must be exact, so for example supplying the size of a buffer that is larger than the compressed input will cause a failure.cdeCompression context.Destination buffer.Capacity of destination buffer.Source buffer.Size of source buffer.Compression level.fgDecompression context.Destination buffer.Capacity of destination buffer.Source buffer.Size of compressed input. This must be exact, so for example supplying the size of a buffer that is larger than the compressed input will cause a failure.hijkCompression level.lmnopqrsPreallocated dictionary buffer.Capacity of dictionary buffer.Concatenated samples.Array of sizes of samples.Number of samples.tuDestination buffer.Capacity of destination buffer.Source buffer.Size of source buffer. Dictionary.Size of dictionary.Compression level.vDestination buffer.Capacity of destination buffer.Source buffer.Size of compressed input. This must be exact, so for example supplying the size of a buffer that is larger than the compressed input will cause a failure. Dictionary.Size of dictionary.w Dictionary.Size of dictionary.Compression level.xCompression context.Destination buffer.Capacity of destination buffer.Source buffer.Size of source buffer. Dictionary.y Dictionary.Size of dictionary.zCompression context.Destination buffer.Capacity of destination buffer.Source buffer.Size of source buffer. Dictionary.)[\]^_`abcdefghijklmnopqrstuvwxyz)_a`bcdefg^]hijklmnopqrstuv\wx[yz]^_`abcdefghijklmnopqrstuvwxyz5(c) 2016-present, Facebook, Inc. All rights reserved.BSD3 bryano@fb.com experimentalGHCNone{:Compress the given data as a single zstd compressed frame.|mDecompress a single-frame payload of known size. Typically this will be a payload that was compressed with compress.Note:n This function is not capable of decompressing a payload generated by the streaming or lazy compression APIs.}XCompress the given data as a single zstd compressed frame, using a prebuilt dictionary.~Decompress a single-frame payload of known size, using a prebuilt dictionary. Typically this will be a payload that was compressed with }.Note:n This function is not capable of decompressing a payload generated by the streaming or lazy compression APIs.-Create a pre-digested compression dictionary.gCompress the given data as a single zstd compressed frame, using a pre-built, pre-digested dictionary.-Create a pre-digested compression dictionary.Decompress a single-frame payload of known size, using a pre-built, pre-digested dictionary. Typically this will be a payload that was compressed with .Note:n This function is not capable of decompressing a payload generated by the streaming or lazy compression APIs.{Compression context.'Compression level. Must be >= 1 and <= E.Payload to compress.|Decompression context.Compressed payload.}Compression dictionary.'Compression level. Must be >= 1 and <= E.Payload to compress.~ Dictionary.Payload to decompress.Compression level. Dictionary.Compression context.Compression dictionary.Payload to compress. Dictionary.Decompression context.Decompression dictionary.Payload to compress.EJKLMNOP[\{|}~LEKM{JN|OP}~\[{|}~5(c) 2016-present, Facebook, Inc. All rights reserved.BSD3 bryano@fb.com experimentalGHCNone:Compress the given data as a single zstd compressed frame.mDecompress a single-frame payload of known size. Typically this will be a payload that was compressed with .Note:n This function is not capable of decompressing a payload generated by the streaming or lazy compression APIs.XCompress the given data as a single zstd compressed frame, using a prebuilt dictionary.Decompress a single-frame payload of known size, using a prebuilt dictionary. Typically this will be a payload that was compressed with .Note:n This function is not capable of decompressing a payload generated by the streaming or lazy compression APIs.'Compression level. Must be >= 1 and <= E.Payload to compress.Compression dictionary.'Compression level. Must be >= 1 and <= E.Payload to compress. Dictionary.Payload to decompress.ELOPLEOP   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRS # $ T U V W -XYZ[NK\NK ! "%&NOLKJUFV>=<;87654321.-EC,D)BF>EC,D)BNKEC]^_`abcdefgehijeklmno # p $ q r s t u vwxyz{|}~e  S#zstd-0.1.0.0-9x2F0iq0KrbDctFCHVJQZjCodec.Compression.Zstd.TypesCodec.Compression.Zstd.FFI Codec.Compression.Zstd.Efficient Codec.Compression.Zstd.StreamingCodec.Compression.Zstd.LazyCodec.Compression.Zstd.BaseCodec.Compression.Zstd Codec.Compression.Zstd.FFI.TypesCodec.Compression.Zstd.Internal!Codec.Compression.Zstd.Base.TypesFFIgetFrameParamsDictfromDict DecompressSkipErrormkDict $fNFDataDict $fReadDict $fShowDict$fEqDecompress$fReadDecompress$fShowDecompress$fEqDict $fOrdDictBufferbufPtrbufSizebufPosOutInDDictCDictDCtxCCtxDStreamCStream p_freeDDict freeDDict createDDict p_freeCDict freeCDict createCDict getDictIDtrainFromBuffer p_freeDStream freeDStreamdecompressStream initDStream createDStreamdstreamOutSize dstreamInSize endStreamcompressStream initCStream p_freeCStream freeCStream createCStreamcstreamOutSize cstreamInSizedecompressDCtx p_freeDCtxfreeDCtx createDCtxdecompressUsingDDictdecompressUsingDictcompressUsingCDictcompressUsingDict compressCCtx p_freeCCtxfreeCCtx createCCtxgetDecompressedSize decompress compressBound c_maxCLevelcompress maxCLevelisError getErrorName checkAlloc checkErrordecompressedSizewithCCtxwithDCtxtrainFromSamplesResultProduceConsumeDone $fShowResultpeekPtrpokePtrpeekSizepokeSizepeekPospokePos$fStorableBufferc_getErrorNamebaseGHC.IO.ExceptionIOErrorForeign.C.TypesCSize c_isErrorGHC.BaseNothingghc-prim GHC.TypesIntgetDCtxgetCCtx compressWithdecompressWithwithDict handleErrorbailbytestring-0.10.8.1Data.ByteStringemptyFinish ConsumeBlock streamingshrinkbuffercheckGHC.ErrerrorlazyDDCDDSCS