diff --git a/.gitignore b/.gitignore
index affb62697..528cca487 100644
--- a/.gitignore
+++ b/.gitignore
@@ -25,7 +25,8 @@ Thumbs.db
/.metadata/
# Build
-/cmake-build*
+cmake-build*/
+!/**/TKLiveSync/**/cmake-build
/build.log
/dist/
/junit-result.xml
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 51410bfc5..a8d109df4 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -35,14 +35,17 @@ if(RULE_LAUNCH_COMPILE AND CMAKE_GENERATOR STREQUAL "Xcode")
set(CMAKE_XCODE_ATTRIBUTE_CXX "${CMAKE_BINARY_DIR}/launch-cxx")
set(CMAKE_XCODE_ATTRIBUTE_LD "${CMAKE_BINARY_DIR}/launch-c")
set(CMAKE_XCODE_ATTRIBUTE_LDPLUSPLUS "${CMAKE_BINARY_DIR}/launch-cxx")
-endif()
-set(CMAKE_XCODE_ATTRIBUTE_SDKROOT "iphoneos")
-set(CMAKE_XCODE_ATTRIBUTE_SUPPORTED_PLATFORMS "iphoneos iphonesimulator")
-set(CMAKE_XCODE_EFFECTIVE_PLATFORMS "-iphoneos;-iphonesimulator")
-set(CMAKE_XCODE_ATTRIBUTE_ENABLE_BITCODE "NO")
+ set(CMAKE_XCODE_ATTRIBUTE_SDKROOT "iphoneos")
+ set(CMAKE_XCODE_ATTRIBUTE_SUPPORTED_PLATFORMS "iphoneos iphonesimulator")
+ set(CMAKE_XCODE_EFFECTIVE_PLATFORMS "-iphoneos;-iphonesimulator")
+ set(CMAKE_XCODE_ATTRIBUTE_ENABLE_BITCODE "NO")
-set(CMAKE_XCODE_ATTRIBUTE_IPHONEOS_DEPLOYMENT_TARGET "8.0")
+ set(CMAKE_XCODE_ATTRIBUTE_IPHONEOS_DEPLOYMENT_TARGET "8.0")
+ set(CMAKE_XCODE_ATTRIBUTE_SUPPORTS_UIKITFORMAC "YES")
+ set(CMAKE_XCODE_ATTRIBUTE_TARGETED_DEVICE_FAMILY "1,2")
+ set(CMAKE_XCODE_ATTRIBUTE_CODE_SIGN_ENTITLEMENTS "$(SRCROOT)/src/Entitlements.plist")
+endif()
# TODO: Versions, license, etc
diff --git a/Gameraww.entitlements b/Gameraww.entitlements
new file mode 100644
index 000000000..a1c430a57
--- /dev/null
+++ b/Gameraww.entitlements
@@ -0,0 +1,8 @@
+
+
+
+
+ com.apple.security.cs.allow-unsigned-executable-memory
+
+
+
diff --git a/README.md b/README.md
index 2df3e4b1e..7fcf0ee26 100644
--- a/README.md
+++ b/README.md
@@ -19,14 +19,15 @@ git clone --recursive git@github.com:NativeScript/ios-runtime.git
## Requirements
-- OS X 10.11+
-- [Xcode 10+](https://developer.apple.com/xcode/)
-- CMake 3.12 or later. Tested with versions up to 3.14.4 (https://github.com/Kitware/CMake/releases/download/v3.14.4/cmake-3.14.4-Darwin-x86_64.dmg) - after installing CMake.app add a symlink to cmake in `usr/local/bin` using the following command `ln -s /Applications/CMake.app/Contents/bin/cmake /usr/local/bin`
-- [LLVM 8.0](http://releases.llvm.org/download.html#8.0.0) - used to build the [metadata generator](https://github.com/NativeScript/ios-metadata-generator) submodule. Be sure to have the folder containing `llvm-config` in `PATH` or make a symlink to in `/usr/local/bin/`.
-- [Automake](https://www.gnu.org/software/automake/) - available in [Homebrew](http://brew.sh) as `automake`.
-- [GNU Libtool](http://www.gnu.org/software/libtool/) - available in [Homebrew](http://brew.sh) as `libtool`.
-- [Perl (installed on macOS by default but deprecated since macOS X 10.15)](https://www.perl.org/get.html#osx)
-- Checkout all git submodules using `git submodule update --init`.
+## Requirements
+ - OS X 10.15+
+ - [Xcode 11+](https://developer.apple.com/xcode/)
+ - [CMake 3.14.4](https://github.com/Kitware/CMake/releases/download/v3.14.4/cmake-3.14.4-Darwin-x86_64.dmg) or later. After installing CMake.app add a symlink to cmake in `usr/local/bin` using the following command `ln -s /Applications/CMake.app/Contents/bin/cmake /usr/local/bin`
+ - [LLVM 8.0](http://releases.llvm.org/download.html#8.0.0) - used to build the [metadata generator](https://github.com/NativeScript/ios-metadata-generator) submodule. Be sure to have the folder containing `llvm-config` in `PATH` or make a symlink to in `/usr/local/bin/`.
+ - [Automake](https://www.gnu.org/software/automake/) - available in [Homebrew](http://brew.sh) as `automake`.
+ - [GNU Libtool](http://www.gnu.org/software/libtool/) - available in [Homebrew](http://brew.sh) as `libtool`.
+ - [Perl (installed on macOS by default but deprecated since macOS X 10.15)](https://www.perl.org/get.html#osx)
+ - Checkout all git submodules using `git submodule update --init`.
## Architecture Diagram
diff --git a/build/project-template/__PROJECT_NAME__.xcodeproj/project.pbxproj b/build/project-template/__PROJECT_NAME__.xcodeproj/project.pbxproj
index 1f56e0615..46a23fdc0 100644
--- a/build/project-template/__PROJECT_NAME__.xcodeproj/project.pbxproj
+++ b/build/project-template/__PROJECT_NAME__.xcodeproj/project.pbxproj
@@ -3,10 +3,12 @@
archiveVersion = 1;
classes = {
};
- objectVersion = 46;
+ objectVersion = 51;
objects = {
/* Begin PBXBuildFile section */
+ 39940D9122C4EF600050DDE1 /* NativeScript.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 39940D8C22C4EAAA0050DDE1 /* NativeScript.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
+ 39940E1C22C5DFFF0050DDE1 /* TKLiveSync.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 39940E1B22C5DFFF0050DDE1 /* TKLiveSync.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
858B842D18CA22B800AB12DE /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 858B833A18CA111C00AB12DE /* InfoPlist.strings */; };
CD45EE7C18DC2D5800FB50C0 /* app in Resources */ = {isa = PBXBuildFile; fileRef = CD45EE7A18DC2D5800FB50C0 /* app */; };
CD62955D1BB2678900AE3A93 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = CD62955C1BB2678900AE3A93 /* main.m */; };
@@ -19,6 +21,8 @@
dstPath = "";
dstSubfolderSpec = 10;
files = (
+ 39940D9122C4EF600050DDE1 /* NativeScript.xcframework in Embed Frameworks */,
+ 39940E1C22C5DFFF0050DDE1 /* TKLiveSync.xcframework in Embed Frameworks */,
);
name = "Embed Frameworks";
runOnlyForDeploymentPostprocessing = 0;
@@ -36,6 +40,9 @@
42C751E4232B769100186695 /* nsld.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; name = nsld.sh; path = internal/nsld.sh; sourceTree = SOURCE_ROOT; };
42C751E5232B769100186695 /* nativescript-post-build */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "nativescript-post-build"; path = "internal/nativescript-post-build"; sourceTree = SOURCE_ROOT; };
42C751E6232B769100186695 /* nativescript-pre-build */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "nativescript-pre-build"; path = "internal/nativescript-pre-build"; sourceTree = SOURCE_ROOT; };
+ 39940D8122C4E84C0050DDE1 /* __PROJECT_NAME__.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = __PROJECT_NAME__.entitlements; sourceTree = ""; };
+ 39940D8C22C4EAAA0050DDE1 /* NativeScript.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = NativeScript.xcframework; path = internal/NativeScript.xcframework; sourceTree = ""; };
+ 39940E1B22C5DFFF0050DDE1 /* TKLiveSync.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = TKLiveSync.xcframework; path = internal/TKLiveSync.xcframework; sourceTree = ""; };
858B832E18CA111C00AB12DE /* __PROJECT_NAME__.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = __PROJECT_NAME__.app; sourceTree = BUILT_PRODUCTS_DIR; };
858B833918CA111C00AB12DE /* __PROJECT_NAME__-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "__PROJECT_NAME__-Info.plist"; sourceTree = ""; };
858B833B18CA111C00AB12DE /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; };
@@ -72,6 +79,17 @@
name = "Build Scripts";
sourceTree = "";
};
+ 39940D8E22C4EBCC0050DDE1 /* Sources */ = {
+ isa = PBXGroup;
+ children = (
+ 391174B321F1CBD300BA2583 /* TNSDebugging.h */,
+ 391174B421F1CBD300BA2583 /* TNSExceptionHandler.h */,
+ CD62955C1BB2678900AE3A93 /* main.m */,
+ 858B833F18CA111C00AB12DE /* __PROJECT_NAME__-Prefix.pch */,
+ );
+ name = Sources;
+ sourceTree = "";
+ };
858B832518CA111C00AB12DE = {
isa = PBXGroup;
children = (
@@ -94,6 +112,8 @@
858B833018CA111C00AB12DE /* Frameworks */ = {
isa = PBXGroup;
children = (
+ 39940E1B22C5DFFF0050DDE1 /* TKLiveSync.xcframework */,
+ 39940D8C22C4EAAA0050DDE1 /* NativeScript.xcframework */,
);
name = Frameworks;
sourceTree = "";
@@ -101,6 +121,8 @@
858B833718CA111C00AB12DE /* __PROJECT_NAME__ */ = {
isa = PBXGroup;
children = (
+ 39940D8E22C4EBCC0050DDE1 /* Sources */,
+ 39940D8122C4E84C0050DDE1 /* __PROJECT_NAME__.entitlements */,
CD45EE7A18DC2D5800FB50C0 /* app */,
858B833818CA111C00AB12DE /* Supporting Files */,
);
@@ -113,16 +135,12 @@
42C751E1232B767700186695 /* Build Scripts */,
391174B821F1D99900BA2583 /* plugins-debug.xcconfig */,
391174B721F1D99900BA2583 /* plugins-release.xcconfig */,
- 391174B321F1CBD300BA2583 /* TNSDebugging.h */,
- 391174B421F1CBD300BA2583 /* TNSExceptionHandler.h */,
CDF4743E1BA4855C0087EA85 /* build.xcconfig */,
CDD59A261BB43B5D00EC2671 /* build-debug.xcconfig */,
CDD59A271BB43B5D00EC2671 /* build-release.xcconfig */,
391174B521F1D7BF00BA2583 /* nativescript-build.xcconfig */,
858B833918CA111C00AB12DE /* __PROJECT_NAME__-Info.plist */,
858B833A18CA111C00AB12DE /* InfoPlist.strings */,
- CD62955C1BB2678900AE3A93 /* main.m */,
- 858B833F18CA111C00AB12DE /* __PROJECT_NAME__-Prefix.pch */,
930F05DB22671AE300D269DC /* Swift-ObjC-Bridging-Header.h */,
);
name = "Supporting Files";
@@ -227,7 +245,7 @@
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
- shellScript = "\"$SRCROOT/internal/nativescript-post-build\"";
+ shellScript = "\"$SRCROOT/internal/nativescript-post-build\"\n";
showEnvVarsInLog = 0;
};
CD62955B1BB2651D00AE3A93 /* NativeScript PreLink */ = {
@@ -289,6 +307,7 @@
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = NO;
+ DERIVE_UIKITFORMAC_PRODUCT_BUNDLE_IDENTIFIER = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_DYNAMIC_NO_PIC = NO;
GCC_OPTIMIZATION_LEVEL = 0;
@@ -303,6 +322,7 @@
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
STRIP_SWIFT_SYMBOLS = NO;
+ SUPPORTS_UIKITFORMAC = YES;
SWIFT_OBJC_BRIDGING_HEADER = "$SRCROOT/internal/Swift-ObjC-Bridging-Header.h";
SWIFT_VERSION = 4.2;
TARGETED_DEVICE_FAMILY = "1,2";
@@ -328,6 +348,7 @@
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = YES;
+ DERIVE_UIKITFORMAC_PRODUCT_BUNDLE_IDENTIFIER = YES;
ENABLE_NS_ASSERTIONS = NO;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
@@ -339,6 +360,7 @@
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
SDKROOT = iphoneos;
STRIP_SWIFT_SYMBOLS = NO;
+ SUPPORTS_UIKITFORMAC = YES;
SWIFT_OBJC_BRIDGING_HEADER = "$SRCROOT/internal/Swift-ObjC-Bridging-Header.h";
SWIFT_VERSION = 4.2;
TARGETED_DEVICE_FAMILY = "1,2";
@@ -351,7 +373,9 @@
baseConfigurationReference = CDD59A261BB43B5D00EC2671 /* build-debug.xcconfig */;
buildSettings = {
ARCHS = "$(ARCHS_STANDARD)";
+ CODE_SIGN_ENTITLEMENTS = __PROJECT_NAME__/__PROJECT_NAME__.entitlements;
ENABLE_BITCODE = NO;
+ "ENABLE_HARDENED_RUNTIME[sdk=macosx*]" = YES;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "__PROJECT_NAME__/__PROJECT_NAME__-Prefix.pch";
GCC_PREPROCESSOR_DEFINITIONS = (
@@ -364,8 +388,12 @@
"\"$(SRCROOT)/internal\"",
);
INFOPLIST_FILE = "$(SRCROOT)/__PROJECT_NAME__/__PROJECT_NAME__-Info.plist";
- LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
+ LD_RUNPATH_SEARCH_PATHS = (
+ "$(inherited)",
+ "@executable_path/Frameworks",
+ );
PRODUCT_NAME = __PROJECT_NAME__;
+ TARGETED_DEVICE_FAMILY = "1,2";
WRAPPER_EXTENSION = app;
};
name = Debug;
@@ -375,7 +403,9 @@
baseConfigurationReference = CDD59A271BB43B5D00EC2671 /* build-release.xcconfig */;
buildSettings = {
ARCHS = "$(ARCHS_STANDARD)";
+ CODE_SIGN_ENTITLEMENTS = __PROJECT_NAME__/__PROJECT_NAME__.entitlements;
ENABLE_BITCODE = NO;
+ "ENABLE_HARDENED_RUNTIME[sdk=macosx*]" = YES;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "__PROJECT_NAME__/__PROJECT_NAME__-Prefix.pch";
HEADER_SEARCH_PATHS = (
@@ -384,8 +414,12 @@
"$(SRCROOT)/internal",
);
INFOPLIST_FILE = "$(SRCROOT)/__PROJECT_NAME__/__PROJECT_NAME__-Info.plist";
- LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
+ LD_RUNPATH_SEARCH_PATHS = (
+ "$(inherited)",
+ "@executable_path/Frameworks",
+ );
PRODUCT_NAME = __PROJECT_NAME__;
+ TARGETED_DEVICE_FAMILY = "1,2";
WRAPPER_EXTENSION = app;
};
name = Release;
diff --git a/build/project-template/__PROJECT_NAME__/__PROJECT_NAME__.entitlements b/build/project-template/__PROJECT_NAME__/__PROJECT_NAME__.entitlements
new file mode 100644
index 000000000..a1c430a57
--- /dev/null
+++ b/build/project-template/__PROJECT_NAME__/__PROJECT_NAME__.entitlements
@@ -0,0 +1,8 @@
+
+
+
+
+ com.apple.security.cs.allow-unsigned-executable-memory
+
+
+
diff --git a/build/project-template/internal/main.m b/build/project-template/internal/main.m
index 6e92556f8..37d8c9663 100644
--- a/build/project-template/internal/main.m
+++ b/build/project-template/internal/main.m
@@ -8,55 +8,55 @@
#include
#if DEBUG
+#include "TKLiveSync/TKLiveSync.h"
#include "TNSDebugging.h"
-#include "TKLiveSync/include/TKLiveSync.h"
#endif
-int main(int argc, char *argv[]) {
- @autoreleasepool {
- TNSRuntime *runtime = [TNSRuntimeInstrumentation
- profile:@"main"
- withBlock:^{
- __block NSString *applicationPath = [NSBundle mainBundle].bundlePath;
+int main(int argc, char* argv[]) {
+ @autoreleasepool {
+ TNSRuntime* runtime = [TNSRuntimeInstrumentation
+ profile:@"main"
+ withBlock:^{
+ __block NSString* applicationPath = [NSString stringWithUTF8String:[NSBundle mainBundle].resourceURL.fileSystemRepresentation];
#if DEBUG
- [TNSRuntimeInstrumentation
- profile:@"Debug: Lifesync & Syslog"
- withBlock:^{
- TNSInitializeLiveSync();
- if (getenv("TNSApplicationPath")) {
- applicationPath = @(getenv("TNSApplicationPath"));
- }
- [TNSRuntimeInstrumentation
- initWithApplicationPath:applicationPath];
- [TNSRuntimeInspector setLogsToSystemConsole:YES];
- return (id)nil;
- }];
+ [TNSRuntimeInstrumentation
+ profile:@"Debug: Lifesync & Syslog"
+ withBlock:^{
+ TNSInitializeLiveSync();
+ if (getenv("TNSApplicationPath")) {
+ applicationPath = @(getenv("TNSApplicationPath"));
+ }
+ [TNSRuntimeInstrumentation
+ initWithApplicationPath:applicationPath];
+ [TNSRuntimeInspector setLogsToSystemConsole:YES];
+ return (id)nil;
+ }];
#endif
- extern char startOfMetadataSection __asm(
- "section$start$__DATA$__TNSMetadata");
- [TNSRuntime initializeMetadata:&startOfMetadataSection];
- TNSRuntime *runtime =
- [[TNSRuntime alloc] initWithApplicationPath:applicationPath];
- [runtime scheduleInRunLoop:[NSRunLoop currentRunLoop]
- forMode:NSRunLoopCommonModes];
+ extern char startOfMetadataSection __asm(
+ "section$start$__DATA$__TNSMetadata");
+ [TNSRuntime initializeMetadata:&startOfMetadataSection];
+ TNSRuntime* runtime =
+ [[TNSRuntime alloc] initWithApplicationPath:applicationPath];
+ [runtime scheduleInRunLoop:[NSRunLoop currentRunLoop]
+ forMode:NSRunLoopCommonModes];
#if DEBUG
- [TNSRuntimeInstrumentation
- profile:@"Debug: Wait for JavaScript debugger"
- withBlock:^{
- TNSEnableRemoteInspector(argc, argv, runtime);
- return (id)nil;
- }];
+ [TNSRuntimeInstrumentation
+ profile:@"Debug: Wait for JavaScript debugger"
+ withBlock:^{
+ TNSEnableRemoteInspector(argc, argv, runtime);
+ return (id)nil;
+ }];
#endif
- TNSInstallExceptionHandler();
- return runtime;
- }];
+ TNSInstallExceptionHandler();
+ return runtime;
+ }];
- [runtime executeModule:@"./"];
+ [runtime executeModule:@"./"];
- return 0;
- }
+ return 0;
+ }
}
diff --git a/build/project-template/internal/nativescript-build.xcconfig b/build/project-template/internal/nativescript-build.xcconfig
index c7fb108e5..aaa52a9a3 100644
--- a/build/project-template/internal/nativescript-build.xcconfig
+++ b/build/project-template/internal/nativescript-build.xcconfig
@@ -1,7 +1,6 @@
// * NativeScript build related flags
// * Add [sdk=*] after each one to avoid conflict with CocoaPods flags
-OTHER_LDFLAGS[sdk=*] = $(inherited) -ObjC -sectcreate __DATA __TNSMetadata "$(CONFIGURATION_BUILD_DIR)/metadata-$(CURRENT_ARCH).bin" -framework NativeScript -F"$(SRCROOT)/internal" -licucore -lz -lc++ -framework Foundation -framework UIKit -framework CoreGraphics -framework MobileCoreServices -framework Security
-OTHER_LDFLAGS[config=Debug] = $(inherited) "$(SRCROOT)/internal/TKLiveSync/TKLiveSync"
+OTHER_LDFLAGS[sdk=*] = $(inherited) -ObjC -sectcreate __DATA __TNSMetadata "$(CONFIGURATION_BUILD_DIR)/metadata-$(CURRENT_ARCH).bin" -framework NativeScript -framework TKLiveSync -F"$(SRCROOT)/internal" -licucore -lz -lc++ -framework Foundation -framework UIKit -framework CoreGraphics -framework MobileCoreServices -framework Security
// We need to add CONFIGURATION_BUILD_DIR here so that we can explicitly quote-escape any paths in it, because the implicitly added path by Xcode is not always escaped
FRAMEWORK_SEARCH_PATHS[sdk=*] = $(inherited) "$(SRCROOT)/internal/" "$(CONFIGURATION_BUILD_DIR)"
diff --git a/build/project-template/internal/nativescript-post-build b/build/project-template/internal/nativescript-post-build
index f3dd489a2..a9ed8f914 100755
--- a/build/project-template/internal/nativescript-post-build
+++ b/build/project-template/internal/nativescript-post-build
@@ -1,15 +1,6 @@
#!/usr/bin/env bash
set -e
-function add_embedded_framework() {
- local FRAMEWORK_NAME=$(basename "$1")
- rsync --archive "$1" "${BUILT_PRODUCTS_DIR}/${FRAMEWORKS_FOLDER_PATH}" \
- --exclude "/$FRAMEWORK_NAME/Headers" \
- --exclude "/$FRAMEWORK_NAME/Modules"
-}
-
-add_embedded_framework "${SRCROOT}/internal/NativeScript.framework"
-
pushd "$SRCROOT/internal"
./strip-dynamic-framework-architectures.sh
popd
diff --git a/build/scripts/build-livesync-static-lib.sh b/build/scripts/build-livesync-static-lib.sh
index 8653d073d..ac8fd04d6 100755
--- a/build/scripts/build-livesync-static-lib.sh
+++ b/build/scripts/build-livesync-static-lib.sh
@@ -12,35 +12,48 @@ rm -rf "build"
pod install
+export OTHER_CFLAGS='$(inherited) -Wno-implicit-retain-self -Wno-strict-prototypes'
+
+echo "Building TKLiveSync for iphonesimulator"
xcodebuild \
-workspace "./TKLiveSync.xcworkspace" \
-scheme "TKLiveSync" \
-configuration "Release" \
-sdk "iphonesimulator" \
build \
- CONFIGURATION_BUILD_DIR="$(pwd)/build/Release-iphonesimulator" \
+ BUILD_DIR="$(pwd)/build" \
ARCHS="i386 x86_64" VALID_ARCHS="i386 x86_64" \
-quiet
+echo "Building TKLiveSync for iphoneos"
xcodebuild \
-workspace "./TKLiveSync.xcworkspace" \
-scheme "TKLiveSync" \
-configuration "Release" \
-sdk "iphoneos" \
build \
- CONFIGURATION_BUILD_DIR="$(pwd)/build/Release-iphoneos" \
+ BUILD_DIR="$(pwd)/build" \
ARCHS="armv7 arm64" VALID_ARCHS="armv7 arm64" \
-quiet
-checkpoint "Packaging TKLiveSync.framework"
-rm -rf "$WORKSPACE/dist/TKLiveSync"
-mkdir -p "$WORKSPACE/dist/TKLiveSync/"
-cp -r "build/Release-iphoneos/TKLiveSync.framework/Headers" "$WORKSPACE/dist/TKLiveSync"
-mv "$WORKSPACE/dist/TKLiveSync/Headers" "$WORKSPACE/dist/TKLiveSync/include"
-lipo -create -output "$WORKSPACE/dist/TKLiveSync/TKLiveSync" \
- "build/Release-iphonesimulator/TKLiveSync.framework/TKLiveSync" \
- "build/Release-iphoneos/TKLiveSync.framework/TKLiveSync"
-chmod +x "$WORKSPACE/dist/TKLiveSync/TKLiveSync"
+echo "Building TKLiveSync for Catalyst"
+xcodebuild \
+ -workspace "./TKLiveSync.xcworkspace" \
+ -scheme "TKLiveSync" \
+ -configuration "Release" \
+ -destination "variant=Mac Catalyst,arch=x86_64" -UseModernBuildSystem=YES \
+ build \
+ BUILD_DIR="$(pwd)/build" \
+ -quiet
+
+checkpoint "Packaging TKLiveSync.xcframework"
+
+rm -rf "$WORKSPACE/dist/TKLiveSync.xcframework"
+# suppress GCDWebServer
+xcodebuild -create-xcframework -output "$WORKSPACE/dist/TKLiveSync.xcframework" \
+ -framework "build/Release-iphonesimulator/TKLiveSync.framework" \
+ -framework "build/Release-iphoneos/TKLiveSync.framework" \
+ -framework "build/Release-maccatalyst/TKLiveSync.framework"
popd
checkpoint "Finished building TKLiveSync - $WORKSPACE/dist/TKLiveSync"
diff --git a/build/scripts/build-nativescript-framework.sh b/build/scripts/build-nativescript-framework.sh
index 3a56d5f56..3a9e0bc46 100755
--- a/build/scripts/build-nativescript-framework.sh
+++ b/build/scripts/build-nativescript-framework.sh
@@ -18,35 +18,47 @@ rm -f "$WORKSPACE/cmake-build/CMakeCache.txt"
# the performance of Jenkins builds. After building the {N} framework, we
# build TestRunner for device and thus, it is best to build NativeScript.framework
# for device last.
+checkpoint "Building NativeScript.framework - UIKit for Mac"
+xcodebuild -configuration $CONFIGURATION -destination "variant=UIKit for Mac,arch=x86_64" -scheme "NativeScript" -project $NATIVESCRIPT_XCODEPROJ -quiet
checkpoint "Building NativeScript.framework - iphonesimulator SDK"
-xcodebuild -configuration $CONFIGURATION -sdk "iphonesimulator" -target "NativeScript" -project $NATIVESCRIPT_XCODEPROJ -quiet
+xcodebuild -configuration $CONFIGURATION -sdk "iphonesimulator" -scheme "NativeScript" -project $NATIVESCRIPT_XCODEPROJ -quiet
checkpoint "Building NativeScript.framework - iphoneos SDK"
-xcodebuild -configuration $CONFIGURATION -sdk "iphoneos" -target "NativeScript" -project $NATIVESCRIPT_XCODEPROJ -quiet
+xcodebuild -configuration $CONFIGURATION -sdk "iphoneos" -scheme "NativeScript" -project $NATIVESCRIPT_XCODEPROJ -quiet
+
+checkpoint "Creating NativeScript.xcframework"
-checkpoint "Creating fat NativeScript.framework"
mkdir -p "$DIST_DIR" && pushd "$_"
-cp -r "$WORKSPACE/cmake-build/src/NativeScript/$CONFIGURATION-iphoneos/NativeScript.framework" "."
-rm "NativeScript.framework/NativeScript"
+
+SRC_SIMULATOR="$WORKSPACE/cmake-build/src/NativeScript/$CONFIGURATION-iphonesimulator/NativeScript.framework"
+SRC_IPHONEOS="$WORKSPACE/cmake-build/src/NativeScript/$CONFIGURATION-iphoneos/NativeScript.framework"
+SRC_MACOS="$WORKSPACE/cmake-build/src/NativeScript/$CONFIGURATION-maccatalyst/NativeScript.framework"
+XCFRAMEWORK_PATH="$DIST_DIR/NativeScript.xcframework"
+IOS_DSYM="$DIST_DIR/NativeScript.ios.framework.dSYM"
+MACOS_DSYM="$DIST_DIR/NativeScript.macos.framework.dSYM"
# Strip debug information, dSYM package must be used for debugging and symbolicating
-strip -S "$WORKSPACE/cmake-build/src/NativeScript/$CONFIGURATION-iphonesimulator/NativeScript.framework/NativeScript" \
- "$WORKSPACE/cmake-build/src/NativeScript/$CONFIGURATION-iphoneos/NativeScript.framework/NativeScript"
-echo "CodeSign $WORKSPACE/cmake-build/src/NativeScript/$CONFIGURATION-iphonesimulator/NativeScript.framework/NativeScript"
+strip -S "$SRC_SIMULATOR/NativeScript" "$SRC_IPHONEOS/NativeScript" # "$SRC_MACOS/NativeScript" # don't strip macos binary for now
+
+rm -rf $XCFRAMEWORK_PATH
+xcodebuild -create-xcframework -framework "$SRC_IPHONEOS" -framework "$SRC_SIMULATOR" -framework "$SRC_MACOS" -output "$XCFRAMEWORK_PATH"
+
+checkpoint "Creating dSYM packages"
+
+cp -r $SRC_IPHONEOS.dSYM $IOS_DSYM
+rm "$IOS_DSYM/Contents/Resources/DWARF/NativeScript"
-/usr/bin/codesign --force --sign - --timestamp=none "$WORKSPACE/cmake-build/src/NativeScript/$CONFIGURATION-iphonesimulator/NativeScript.framework/NativeScript"
+lipo -create -output "$IOS_DSYM/Contents/Resources/DWARF/NativeScript" \
+ "$SRC_SIMULATOR.dSYM/Contents/Resources/DWARF/NativeScript" \
+ "$SRC_IPHONEOS.dSYM/Contents/Resources/DWARF/NativeScript"
-lipo -create -output "NativeScript.framework/NativeScript" \
- "$WORKSPACE/cmake-build/src/NativeScript/$CONFIGURATION-iphonesimulator/NativeScript.framework/NativeScript" \
- "$WORKSPACE/cmake-build/src/NativeScript/$CONFIGURATION-iphoneos/NativeScript.framework/NativeScript"
+echo "Archiving iOS dSYM at $IOS_DSYM.zip"
+(cd $DIST_DIR && zip -qr NativeScript.ios.framework.dSYM.zip NativeScript.ios.framework.dSYM && rm -rf NativeScript.ios.framework.dSYM)
-cp -r "$WORKSPACE/cmake-build/src/NativeScript/$CONFIGURATION-iphoneos/NativeScript.framework.dSYM" "."
-rm "NativeScript.framework.dSYM/Contents/Resources/DWARF/NativeScript"
-lipo -create -output "NativeScript.framework.dSYM/Contents/Resources/DWARF/NativeScript" \
- "$WORKSPACE/cmake-build/src/NativeScript/$CONFIGURATION-iphonesimulator/NativeScript.framework.dSYM/Contents/Resources/DWARF/NativeScript" \
- "$WORKSPACE/cmake-build/src/NativeScript/$CONFIGURATION-iphoneos/NativeScript.framework.dSYM/Contents/Resources/DWARF/NativeScript"
+echo "TODO: Copying macOS dSYM at $MACOS_DSYM"
+# cp -r $SRC_MACOS.dSYM $MACOS_DSYM
-zip -qr NativeScript.framework.dSYM.zip NativeScript.framework.dSYM
-rm -rf NativeScript.framework.dSYM
+echo "TODO: Archiving macOS dSYM at $MACOS_DSYM.zip"
+# (cd $DIST_DIR && zip -qr NativeScript.macos.framework.dSYM.zip NativeScript.macos.framework.dSYM)
popd
diff --git a/build/scripts/build-step-libffi.sh b/build/scripts/build-step-libffi.sh
index 9f2966ebe..b008d6435 100755
--- a/build/scripts/build-step-libffi.sh
+++ b/build/scripts/build-step-libffi.sh
@@ -31,6 +31,11 @@ function build {
local COMPILER_FLAGS="-arch $ARCH -isysroot $SDKROOT -$DEPLOYMENT_TARGET_CLANG_FLAG_NAME=${!DEPLOYMENT_TARGET_CLANG_ENV_NAME}"
+ # Add compiler flags for "Mac Catalyst". See https://github.com/CocoaPods/CocoaPods/issues/8877#issuecomment-499752865
+ if [ "$(echo ${IS_UIKITFORMAC-} | tr '[:upper:]' '[:lower:]')" = "yes" -o "$(echo ${IS_UIKITFORMAC-} | tr '[:upper:]' '[:lower:]')" = "true" -o "${IS_UIKITFORMAC-}" = "1" ]; then
+ COMPILER_FLAGS="-isysroot $SDKROOT -Wno-overriding-t-option -target x86_64-apple-ios-macabi -miphoneos-version-min=13.0"
+ fi
+
(
export CC="clang $COMPILER_FLAGS"
export CXX="clang++ $COMPILER_FLAGS"
diff --git a/build/scripts/build-step-metadata-generator.py b/build/scripts/build-step-metadata-generator.py
index 320da0ba0..397e0113b 100755
--- a/build/scripts/build-step-metadata-generator.py
+++ b/build/scripts/build-step-metadata-generator.py
@@ -44,6 +44,8 @@ def map_and_list(func, iterable):
header_search_paths_parsed = map_and_list((lambda s: "-I" + s), shlex.split(header_search_paths))
framework_search_paths = env_or_empty("FRAMEWORK_SEARCH_PATHS")
framework_search_paths_parsed = map_and_list((lambda s: "-F" + s), shlex.split(framework_search_paths))
+system_framework_search_paths = env_or_empty("SYSTEM_FRAMEWORK_SEARCH_PATHS")
+system_framework_search_paths_parsed = map_and_list((lambda s: "-F" + s), shlex.split(system_framework_search_paths))
other_cflags = env_or_empty("OTHER_CFLAGS")
other_cflags_parsed = shlex.split(other_cflags)
enable_modules = env_bool("CLANG_ENABLE_MODULES")
@@ -100,12 +102,17 @@ def generate_metadata(arch):
# clang arguments
generator_call.extend(["Xclang",
"-isysroot", sdk_root,
- "-arch", arch,
"-" + deployment_target_flag_name + "=" + deployment_target,
"-std=" + std])
+ if env_or_empty("IS_UIKITFORMAC").capitalize() is "YES":
+ generator_call.extend(["-arch", arch])
+ else:
+ generator_call.extend(["-target", "{}-apple-ios13.0-macabi".format(arch)])
+
generator_call.extend(header_search_paths_parsed) # HEADER_SEARCH_PATHS
generator_call.extend(framework_search_paths_parsed) # FRAMEWORK_SEARCH_PATHS
+ generator_call.extend(system_framework_search_paths_parsed) # SYSTEM_FRAMEWORK_SEARCH_PATHS
generator_call.extend(other_cflags_parsed) # OTHER_CFLAGS
generator_call.extend(preprocessor_defs_parsed) # GCC_PREPROCESSOR_DEFINITIONS
diff --git a/build/scripts/build-step-webkit.sh b/build/scripts/build-step-webkit.sh
index dc5757c99..6bcc77541 100755
--- a/build/scripts/build-step-webkit.sh
+++ b/build/scripts/build-step-webkit.sh
@@ -3,10 +3,25 @@
# This script is added as a run script phase in the CMake generated Xcode project.
# Environment variables are provided by Xcode during build.
# See the WebKit.cmake configuration file for more info.
-xcodebuild -target JavaScriptCore \
- -sdk "$SDKROOT" \
+
+if [ "$(echo $IS_UIKITFORMAC | tr '[:upper:]' '[:lower:]')" = "yes" -o "$(echo $IS_UIKITFORMAC | tr '[:upper:]' '[:lower:]')" = "true" -o "$IS_UIKITFORMAC" = "1" ]; then
+ # Add compiler flags for "UIKit for Mac". See https://github.com/CocoaPods/CocoaPods/issues/8877#issuecomment-499752865
+ # Taken from the output of `xcodebuild -scheme JavaScriptCore -showdestinations`
+ DESTINATION_ARGS=(-destination "variant=UIKit for Mac,arch=x86_64" -UseModernBuildSystem=YES)
+ echo "info: Launching xcodebuild of JavaScriptCore with 1 retry attempt"
+ # retry once as a workaround of sporadic error: Build input file cannot be found: ...cmake-build/WebKit-prefix/src/WebKit-build/DerivedSources/WTF/mach_excServer.c' when using Xcode's new build system
+ set +e
+else
+ DESTINATION_ARGS=(-sdk "$SDKROOT")
+ set -e
+fi
+
+for i in 1 2; do
+ xcodebuild build -scheme JavaScriptCore \
+ "${DESTINATION_ARGS[@]}" \
-configuration "$CONFIGURATION" \
ARCHS="$ARCHS" \
ONLY_ACTIVE_ARCH="$ONLY_ACTIVE_ARCH" \
$DEPLOYMENT_TARGET_SETTING_NAME="${!DEPLOYMENT_TARGET_CLANG_ENV_NAME}" \
GCC_WARN_INHIBIT_ALL_WARNINGS="YES"
+done
diff --git a/build/scripts/package-tns-ios.sh b/build/scripts/package-tns-ios.sh
index 5ea2b3814..e79370eb1 100755
--- a/build/scripts/package-tns-ios.sh
+++ b/build/scripts/package-tns-ios.sh
@@ -15,10 +15,19 @@ rm -rf $PACKAGE_DIR
mkdir -p "$INTERNAL_DIR"
"$WORKSPACE/build/scripts/build-livesync-static-lib.sh"
-cp -R "$DIST_DIR/TKLiveSync" "$INTERNAL_DIR"
+cp -R "$DIST_DIR/TKLiveSync.xcframework" "$INTERNAL_DIR"
"$WORKSPACE/build/scripts/build-nativescript-framework.sh"
-cp -R "$DIST_DIR/NativeScript.framework" "$INTERNAL_DIR/NativeScript.framework"
+cp -R "$DIST_DIR/NativeScript.xcframework" "$INTERNAL_DIR/NativeScript.xcframework"
+
+# Add xcframeworks to .zip (NPM modules do not support symlinks, unzipping is done by {N} CLI)
+(
+ set -e
+ cd $INTERNAL_DIR
+ zip -qr --symlinks XCFrameworks.zip *.xcframework
+ rm -rf *.xcframework
+)
+
"$WORKSPACE/build/scripts/build-metadata-generator.sh"
cp -R "$DIST_DIR/metadataGenerator" "$INTERNAL_DIR/metadata-generator"
diff --git a/cmake-gen.sh b/cmake-gen.sh
index af27e0814..90c73d988 100755
--- a/cmake-gen.sh
+++ b/cmake-gen.sh
@@ -3,3 +3,6 @@ cmake -DBUILD_SHARED_LIBS=1 -GXcode . -Bcmake-build
# Workaround for https://cmake.org/pipermail/cmake/2015-April/060484.html
sed -i bak -e 's/Versions\/A\///g' cmake-build/NativeScript.xcodeproj/project.pbxproj
+# Manually switch to Modern build system because CMake currently doesn't fully support it (luckily our build works with it!)
+# see https://gitlab.kitware.com/cmake/cmake/issues/18088
+sed -i bak -e 's/>BuildSystemType>BuildSystemType_REVERTED"; };
39838D144633636813BC3093 /* libPods-TKLiveSync.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-TKLiveSync.a"; sourceTree = BUILT_PRODUCTS_DIR; };
- 39B710EC215E11050086A3A0 /* libGCDWebServer.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libGCDWebServer.a; path = libGCDWebServer.a; sourceTree = BUILT_PRODUCTS_DIR; };
- C93EC6F61E9FEF2C009644C0 /* libzip_iOS */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libzip_iOS; path = libzip_iOS.framework/libzip_iOS; sourceTree = ""; };
+ 39940E1722C525B50050DDE1 /* libzip_iOS.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; path = libzip_iOS.xcframework; sourceTree = ""; };
+ 39940E6E22C63BEA0050DDE1 /* libbz2.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libbz2.tbd; path = usr/lib/libbz2.tbd; sourceTree = SDKROOT; };
+ 39B710EC215E11050086A3A0 /* libGCDWebServer.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libGCDWebServer.a; sourceTree = BUILT_PRODUCTS_DIR; };
CD0F75A91D4B7DB20095538D /* unzip.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = unzip.cpp; sourceTree = ""; };
CD0F75AA1D4B7DB20095538D /* unzip.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = unzip.h; sourceTree = ""; };
CD56430B1D181F240083EF6A /* TKLiveSync.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework.static; includeInIndex = 0; path = TKLiveSync.framework; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -28,7 +30,6 @@
CD5643101D181F240083EF6A /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
CD56432B1D1820330083EF6A /* TKLiveSync.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TKLiveSync.m; sourceTree = ""; };
CD5C757D1D489D8600BD4EFA /* libzip_iOS.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = libzip_iOS.framework; sourceTree = ""; };
- CD5C75801D489DF000BD4EFA /* libz.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; };
DA4701457EEE40CC2EE59163 /* Pods-TKLiveSync.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-TKLiveSync.debug.xcconfig"; path = "Pods/Target Support Files/Pods-TKLiveSync/Pods-TKLiveSync.debug.xcconfig"; sourceTree = ""; };
/* End PBXFileReference section */
@@ -37,9 +38,10 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
- C93EC6F71E9FEF2C009644C0 /* libzip_iOS in Frameworks */,
39B710ED215E11050086A3A0 /* libGCDWebServer.a in Frameworks */,
+ 39940E1822C525B50050DDE1 /* libzip_iOS.xcframework in Frameworks */,
71699D914198EFE42C45AB83 /* libPods-TKLiveSync.a in Frameworks */,
+ 39940E6F22C63BF40050DDE1 /* libbz2.tbd in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -88,9 +90,9 @@
CD5C757F1D489DC200BD4EFA /* Frameworks */ = {
isa = PBXGroup;
children = (
+ 39940E6E22C63BEA0050DDE1 /* libbz2.tbd */,
+ 39940E1722C525B50050DDE1 /* libzip_iOS.xcframework */,
39B710EC215E11050086A3A0 /* libGCDWebServer.a */,
- C93EC6F61E9FEF2C009644C0 /* libzip_iOS */,
- CD5C75801D489DF000BD4EFA /* libz.tbd */,
CD5C757D1D489D8600BD4EFA /* libzip_iOS.framework */,
39838D144633636813BC3093 /* libPods-TKLiveSync.a */,
);
@@ -150,6 +152,7 @@
developmentRegion = English;
hasScannedForEncodings = 0;
knownRegions = (
+ English,
en,
);
mainGroup = CD5643011D181F240083EF6A;
@@ -308,14 +311,23 @@
"$(inherited)",
"$(PROJECT_DIR)",
);
+ HEADER_SEARCH_PATHS = (
+ "$(SRCROOT)/TKLiveSync/libzip_iOS",
+ "$(inherited)",
+ "\"${PODS_ROOT}/Headers/Public\"",
+ "\"${PODS_ROOT}/Headers/Public/GCDWebServer\"",
+ );
INFOPLIST_FILE = TKLiveSync/Info.plist;
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
- LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
- LIBRARY_SEARCH_PATHS = (
+ LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
- "$(PROJECT_DIR)/libzip_iOS.framework",
+ "@executable_path/Frameworks",
+ "@loader_path/Frameworks",
);
+ LD_DYLIB_INSTALL_NAME = "@rpath/TKLiveSync.framework/TKLiveSync";
+ LIBRARY_SEARCH_PATHS = "$(inherited)";
+ MACH_O_TYPE = mh_dylib;
PRODUCT_BUNDLE_IDENTIFIER = org.nativescript.TKLiveSync;
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
@@ -336,14 +348,23 @@
"$(inherited)",
"$(PROJECT_DIR)",
);
+ HEADER_SEARCH_PATHS = (
+ "$(SRCROOT)/TKLiveSync/libzip_iOS",
+ "$(inherited)",
+ "\"${PODS_ROOT}/Headers/Public\"",
+ "\"${PODS_ROOT}/Headers/Public/GCDWebServer\"",
+ );
INFOPLIST_FILE = TKLiveSync/Info.plist;
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
- LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
- LIBRARY_SEARCH_PATHS = (
+ LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
- "$(PROJECT_DIR)/libzip_iOS.framework",
+ "@executable_path/Frameworks",
+ "@loader_path/Frameworks",
);
+ LD_DYLIB_INSTALL_NAME = "@rpath/TKLiveSync.framework/TKLiveSync";
+ LIBRARY_SEARCH_PATHS = "$(inherited)";
+ MACH_O_TYPE = mh_dylib;
PRODUCT_BUNDLE_IDENTIFIER = org.nativescript.TKLiveSync;
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
diff --git a/plugins/TKLiveSync/build-libzip_iOS-framework.sh b/plugins/TKLiveSync/build-libzip_iOS-framework.sh
new file mode 100755
index 000000000..57afb0793
--- /dev/null
+++ b/plugins/TKLiveSync/build-libzip_iOS-framework.sh
@@ -0,0 +1,37 @@
+#!/bin/bash
+set -e
+cd libzip_iOS/cmake-build
+
+echo "Building libzip_iOS for iphonesimulator"
+xcodebuild -scheme "libzip_iOS" \
+ -configuration "Release" \
+ -sdk "iphonesimulator" \
+ BUILD_DIR="$PWD/xcframework-build" \
+ ARCHS="i386 x86_64" \
+ VALID_ARCHS="i386 x86_64" \
+ -quiet
+
+echo "Building libzip_iOS for iphoneos"
+xcodebuild -scheme "libzip_iOS" \
+ -configuration "Release" \
+ -sdk "iphoneos" \
+ BUILD_DIR="$PWD/xcframework-build" \
+ ARCHS="armv7 arm64" \
+ VALID_ARCHS="armv7 arm64" \
+ -quiet
+
+echo "Building libzip_iOS for UIKit for Mac"
+xcodebuild -scheme "libzip_iOS" \
+ -configuration "Release" \
+ -destination "variant=UIKit for Mac,arch=x86_64" \
+ -UseModernBuildSystem=YES \
+ BUILD_DIR="$PWD/xcframework-build" \
+ -quiet
+
+echo "Packaging libzip_iOS.xcframework"
+rm -rf ../../libzip_iOS.xcframework
+xcodebuild -create-xcframework \
+ -framework "xcframework-build/Release-iphoneos/libzip_iOS.framework" \
+ -framework "xcframework-build/Release-iphonesimulator/libzip_iOS.framework" \
+ -framework "xcframework-build/Release-maccatalyst/libzip_iOS.framework" \
+ -output "../../libzip_iOS.xcframework" \
diff --git a/plugins/TKLiveSync/libzip_iOS.framework/Headers/zip.h b/plugins/TKLiveSync/libzip_iOS.framework/Headers/zip.h
deleted file mode 100644
index 455810eee..000000000
--- a/plugins/TKLiveSync/libzip_iOS.framework/Headers/zip.h
+++ /dev/null
@@ -1,422 +0,0 @@
-#ifndef _HAD_ZIP_H
-#define _HAD_ZIP_H
-
-/*
- zip.h -- exported declarations.
- Copyright (C) 1999-2015 Dieter Baron and Thomas Klausner
-
- This file is part of libzip, a library to manipulate ZIP archives.
- The authors can be contacted at
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions
- are met:
- 1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
- 3. The names of the authors may not be used to endorse or promote
- products derived from this software without specific prior
- written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS
- OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
- DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
- GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
- IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-#ifndef ZIP_EXTERN
-# ifndef ZIP_STATIC
-# ifdef _WIN32
-# define ZIP_EXTERN __declspec(dllimport)
-# elif defined(__GNUC__) && __GNUC__ >= 4
-# define ZIP_EXTERN __attribute__ ((visibility ("default")))
-# else
-# define ZIP_EXTERN
-# endif
-# else
-# define ZIP_EXTERN
-# endif
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#if 0
-} /* fix autoindent */
-#endif
-#endif
-
-#include
-
-#include
-#include
-#include
-
-/* flags for zip_open */
-
-#define ZIP_CREATE 1
-#define ZIP_EXCL 2
-#define ZIP_CHECKCONS 4
-#define ZIP_TRUNCATE 8
-#define ZIP_RDONLY 16
-
-
-/* flags for zip_name_locate, zip_fopen, zip_stat, ... */
-
-#define ZIP_FL_NOCASE 1u /* ignore case on name lookup */
-#define ZIP_FL_NODIR 2u /* ignore directory component */
-#define ZIP_FL_COMPRESSED 4u /* read compressed data */
-#define ZIP_FL_UNCHANGED 8u /* use original data, ignoring changes */
-#define ZIP_FL_RECOMPRESS 16u /* force recompression of data */
-#define ZIP_FL_ENCRYPTED 32u /* read encrypted data (implies ZIP_FL_COMPRESSED) */
-#define ZIP_FL_ENC_GUESS 0u /* guess string encoding (is default) */
-#define ZIP_FL_ENC_RAW 64u /* get unmodified string */
-#define ZIP_FL_ENC_STRICT 128u /* follow specification strictly */
-#define ZIP_FL_LOCAL 256u /* in local header */
-#define ZIP_FL_CENTRAL 512u /* in central directory */
-/* 1024u reserved for internal use */
-#define ZIP_FL_ENC_UTF_8 2048u /* string is UTF-8 encoded */
-#define ZIP_FL_ENC_CP437 4096u /* string is CP437 encoded */
-#define ZIP_FL_OVERWRITE 8192u /* zip_file_add: if file with name exists, overwrite (replace) it */
-
-/* archive global flags flags */
-
-#define ZIP_AFL_RDONLY 2u /* read only -- cannot be cleared */
-
-
-/* create a new extra field */
-
-#define ZIP_EXTRA_FIELD_ALL ZIP_UINT16_MAX
-#define ZIP_EXTRA_FIELD_NEW ZIP_UINT16_MAX
-
-
-/* libzip error codes */
-
-#define ZIP_ER_OK 0 /* N No error */
-#define ZIP_ER_MULTIDISK 1 /* N Multi-disk zip archives not supported */
-#define ZIP_ER_RENAME 2 /* S Renaming temporary file failed */
-#define ZIP_ER_CLOSE 3 /* S Closing zip archive failed */
-#define ZIP_ER_SEEK 4 /* S Seek error */
-#define ZIP_ER_READ 5 /* S Read error */
-#define ZIP_ER_WRITE 6 /* S Write error */
-#define ZIP_ER_CRC 7 /* N CRC error */
-#define ZIP_ER_ZIPCLOSED 8 /* N Containing zip archive was closed */
-#define ZIP_ER_NOENT 9 /* N No such file */
-#define ZIP_ER_EXISTS 10 /* N File already exists */
-#define ZIP_ER_OPEN 11 /* S Can't open file */
-#define ZIP_ER_TMPOPEN 12 /* S Failure to create temporary file */
-#define ZIP_ER_ZLIB 13 /* Z Zlib error */
-#define ZIP_ER_MEMORY 14 /* N Malloc failure */
-#define ZIP_ER_CHANGED 15 /* N Entry has been changed */
-#define ZIP_ER_COMPNOTSUPP 16 /* N Compression method not supported */
-#define ZIP_ER_EOF 17 /* N Premature end of file */
-#define ZIP_ER_INVAL 18 /* N Invalid argument */
-#define ZIP_ER_NOZIP 19 /* N Not a zip archive */
-#define ZIP_ER_INTERNAL 20 /* N Internal error */
-#define ZIP_ER_INCONS 21 /* N Zip archive inconsistent */
-#define ZIP_ER_REMOVE 22 /* S Can't remove file */
-#define ZIP_ER_DELETED 23 /* N Entry has been deleted */
-#define ZIP_ER_ENCRNOTSUPP 24 /* N Encryption method not supported */
-#define ZIP_ER_RDONLY 25 /* N Read-only archive */
-#define ZIP_ER_NOPASSWD 26 /* N No password provided */
-#define ZIP_ER_WRONGPASSWD 27 /* N Wrong password provided */
-#define ZIP_ER_OPNOTSUPP 28 /* N Operation not supported */
-#define ZIP_ER_INUSE 29 /* N Resource still in use */
-#define ZIP_ER_TELL 30 /* S Tell error */
-
-/* type of system error value */
-
-#define ZIP_ET_NONE 0 /* sys_err unused */
-#define ZIP_ET_SYS 1 /* sys_err is errno */
-#define ZIP_ET_ZLIB 2 /* sys_err is zlib error code */
-
-/* compression methods */
-
-#define ZIP_CM_DEFAULT -1 /* better of deflate or store */
-#define ZIP_CM_STORE 0 /* stored (uncompressed) */
-#define ZIP_CM_SHRINK 1 /* shrunk */
-#define ZIP_CM_REDUCE_1 2 /* reduced with factor 1 */
-#define ZIP_CM_REDUCE_2 3 /* reduced with factor 2 */
-#define ZIP_CM_REDUCE_3 4 /* reduced with factor 3 */
-#define ZIP_CM_REDUCE_4 5 /* reduced with factor 4 */
-#define ZIP_CM_IMPLODE 6 /* imploded */
-/* 7 - Reserved for Tokenizing compression algorithm */
-#define ZIP_CM_DEFLATE 8 /* deflated */
-#define ZIP_CM_DEFLATE64 9 /* deflate64 */
-#define ZIP_CM_PKWARE_IMPLODE 10 /* PKWARE imploding */
-/* 11 - Reserved by PKWARE */
-#define ZIP_CM_BZIP2 12 /* compressed using BZIP2 algorithm */
-/* 13 - Reserved by PKWARE */
-#define ZIP_CM_LZMA 14 /* LZMA (EFS) */
-/* 15-17 - Reserved by PKWARE */
-#define ZIP_CM_TERSE 18 /* compressed using IBM TERSE (new) */
-#define ZIP_CM_LZ77 19 /* IBM LZ77 z Architecture (PFS) */
-#define ZIP_CM_WAVPACK 97 /* WavPack compressed data */
-#define ZIP_CM_PPMD 98 /* PPMd version I, Rev 1 */
-
-/* encryption methods */
-
-#define ZIP_EM_NONE 0 /* not encrypted */
-#define ZIP_EM_TRAD_PKWARE 1 /* traditional PKWARE encryption */
-#if 0 /* Strong Encryption Header not parsed yet */
-#define ZIP_EM_DES 0x6601 /* strong encryption: DES */
-#define ZIP_EM_RC2_OLD 0x6602 /* strong encryption: RC2, version < 5.2 */
-#define ZIP_EM_3DES_168 0x6603
-#define ZIP_EM_3DES_112 0x6609
-#define ZIP_EM_AES_128 0x660e
-#define ZIP_EM_AES_192 0x660f
-#define ZIP_EM_AES_256 0x6610
-#define ZIP_EM_RC2 0x6702 /* strong encryption: RC2, version >= 5.2 */
-#define ZIP_EM_RC4 0x6801
-#endif
-#define ZIP_EM_UNKNOWN 0xffff /* unknown algorithm */
-
-#define ZIP_OPSYS_DOS 0x00u
-#define ZIP_OPSYS_AMIGA 0x01u
-#define ZIP_OPSYS_OPENVMS 0x02u
-#define ZIP_OPSYS_UNIX 0x03u
-#define ZIP_OPSYS_VM_CMS 0x04u
-#define ZIP_OPSYS_ATARI_ST 0x05u
-#define ZIP_OPSYS_OS_2 0x06u
-#define ZIP_OPSYS_MACINTOSH 0x07u
-#define ZIP_OPSYS_Z_SYSTEM 0x08u
-#define ZIP_OPSYS_CPM 0x09u
-#define ZIP_OPSYS_WINDOWS_NTFS 0x0au
-#define ZIP_OPSYS_MVS 0x0bu
-#define ZIP_OPSYS_VSE 0x0cu
-#define ZIP_OPSYS_ACORN_RISC 0x0du
-#define ZIP_OPSYS_VFAT 0x0eu
-#define ZIP_OPSYS_ALTERNATE_MVS 0x0fu
-#define ZIP_OPSYS_BEOS 0x10u
-#define ZIP_OPSYS_TANDEM 0x11u
-#define ZIP_OPSYS_OS_400 0x12u
-#define ZIP_OPSYS_OS_X 0x13u
-
-#define ZIP_OPSYS_DEFAULT ZIP_OPSYS_UNIX
-
-
-enum zip_source_cmd {
- ZIP_SOURCE_OPEN, /* prepare for reading */
- ZIP_SOURCE_READ, /* read data */
- ZIP_SOURCE_CLOSE, /* reading is done */
- ZIP_SOURCE_STAT, /* get meta information */
- ZIP_SOURCE_ERROR, /* get error information */
- ZIP_SOURCE_FREE, /* cleanup and free resources */
- ZIP_SOURCE_SEEK, /* set position for reading */
- ZIP_SOURCE_TELL, /* get read position */
- ZIP_SOURCE_BEGIN_WRITE, /* prepare for writing */
- ZIP_SOURCE_COMMIT_WRITE, /* writing is done */
- ZIP_SOURCE_ROLLBACK_WRITE, /* discard written changes */
- ZIP_SOURCE_WRITE, /* write data */
- ZIP_SOURCE_SEEK_WRITE, /* set position for writing */
- ZIP_SOURCE_TELL_WRITE, /* get write position */
- ZIP_SOURCE_SUPPORTS, /* check whether source supports command */
- ZIP_SOURCE_REMOVE /* remove file */
-};
-typedef enum zip_source_cmd zip_source_cmd_t;
-
-#define ZIP_SOURCE_MAKE_COMMAND_BITMASK(cmd) (1<<(cmd))
-
-#define ZIP_SOURCE_SUPPORTS_READABLE (ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_OPEN) \
- | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_READ) \
- | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_CLOSE) \
- | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_STAT) \
- | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_ERROR) \
- | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_FREE))
-
-#define ZIP_SOURCE_SUPPORTS_SEEKABLE (ZIP_SOURCE_SUPPORTS_READABLE \
- | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_SEEK) \
- | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_TELL) \
- | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_SUPPORTS))
-
-#define ZIP_SOURCE_SUPPORTS_WRITABLE (ZIP_SOURCE_SUPPORTS_SEEKABLE \
- | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_BEGIN_WRITE) \
- | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_COMMIT_WRITE) \
- | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_ROLLBACK_WRITE) \
- | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_WRITE) \
- | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_SEEK_WRITE) \
- | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_TELL_WRITE) \
- | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_REMOVE))
-
-/* for use by sources */
-struct zip_source_args_seek {
- zip_int64_t offset;
- int whence;
-};
-
-typedef struct zip_source_args_seek zip_source_args_seek_t;
-#define ZIP_SOURCE_GET_ARGS(type, data, len, error) ((len) < sizeof(type) ? zip_error_set((error), ZIP_ER_INVAL, 0), (type *)NULL : (type *)(data))
-
-
-/* error information */
-/* use zip_error_*() to access */
-struct zip_error {
- int zip_err; /* libzip error code (ZIP_ER_*) */
- int sys_err; /* copy of errno (E*) or zlib error code */
- char *str; /* string representation or NULL */
-};
-
-#define ZIP_STAT_NAME 0x0001u
-#define ZIP_STAT_INDEX 0x0002u
-#define ZIP_STAT_SIZE 0x0004u
-#define ZIP_STAT_COMP_SIZE 0x0008u
-#define ZIP_STAT_MTIME 0x0010u
-#define ZIP_STAT_CRC 0x0020u
-#define ZIP_STAT_COMP_METHOD 0x0040u
-#define ZIP_STAT_ENCRYPTION_METHOD 0x0080u
-#define ZIP_STAT_FLAGS 0x0100u
-
-struct zip_stat {
- zip_uint64_t valid; /* which fields have valid values */
- const char *name; /* name of the file */
- zip_uint64_t index; /* index within archive */
- zip_uint64_t size; /* size of file (uncompressed) */
- zip_uint64_t comp_size; /* size of file (compressed) */
- time_t mtime; /* modification time */
- zip_uint32_t crc; /* crc of file data */
- zip_uint16_t comp_method; /* compression method used */
- zip_uint16_t encryption_method; /* encryption method used */
- zip_uint32_t flags; /* reserved for future use */
-};
-
-struct zip;
-struct zip_file;
-struct zip_source;
-
-typedef struct zip zip_t;
-typedef struct zip_error zip_error_t;
-typedef struct zip_file zip_file_t;
-typedef struct zip_source zip_source_t;
-typedef struct zip_stat zip_stat_t;
-
-typedef zip_uint32_t zip_flags_t;
-
-typedef zip_int64_t (*zip_source_callback)(void *, void *, zip_uint64_t, zip_source_cmd_t);
-
-
-#ifndef ZIP_DISABLE_DEPRECATED
-ZIP_EXTERN zip_int64_t zip_add(zip_t *, const char *, zip_source_t *); /* use zip_file_add */
-ZIP_EXTERN zip_int64_t zip_add_dir(zip_t *, const char *); /* use zip_dir_add */
-ZIP_EXTERN const char *zip_get_file_comment(zip_t *, zip_uint64_t, int *, int); /* use zip_file_get_comment */
-ZIP_EXTERN int zip_get_num_files(zip_t *); /* use zip_get_num_entries instead */
-ZIP_EXTERN int zip_rename(zip_t *, zip_uint64_t, const char *); /* use zip_file_rename */
-ZIP_EXTERN int zip_replace(zip_t *, zip_uint64_t, zip_source_t *); /* use zip_file_replace */
-ZIP_EXTERN int zip_set_file_comment(zip_t *, zip_uint64_t, const char *, int); /* use zip_file_set_comment */
-ZIP_EXTERN int zip_error_get_sys_type(int); /* use zip_error_system_type */
-ZIP_EXTERN void zip_error_get(zip_t *, int *, int *); /* use zip_get_error, zip_error_code_zip / zip_error_code_system */
-ZIP_EXTERN int zip_error_to_str(char *, zip_uint64_t, int, int);
-ZIP_EXTERN void zip_file_error_get(zip_file_t *, int *, int *); /* use zip_file_get_error, zip_error_code_zip / zip_error_code_system */
-#endif
-
-ZIP_EXTERN int zip_archive_set_tempdir(zip_t *, const char *);
-ZIP_EXTERN int zip_close(zip_t *);
-ZIP_EXTERN int zip_delete(zip_t *, zip_uint64_t);
-ZIP_EXTERN zip_int64_t zip_dir_add(zip_t *, const char *, zip_flags_t);
-ZIP_EXTERN void zip_discard(zip_t *);
-
-ZIP_EXTERN zip_error_t *zip_get_error(zip_t *);
-ZIP_EXTERN void zip_error_clear(zip_t *);
-ZIP_EXTERN int zip_error_code_zip(const zip_error_t *);
-ZIP_EXTERN int zip_error_code_system(const zip_error_t *);
-ZIP_EXTERN void zip_error_fini(zip_error_t *);
-ZIP_EXTERN void zip_error_init(zip_error_t *);
-ZIP_EXTERN void zip_error_init_with_code(zip_error_t *, int);
-ZIP_EXTERN void zip_error_set(zip_error_t *, int, int);
-ZIP_EXTERN const char *zip_error_strerror(zip_error_t *);
-ZIP_EXTERN int zip_error_system_type(const zip_error_t *);
-ZIP_EXTERN zip_int64_t zip_error_to_data(const zip_error_t *, void *, zip_uint64_t);
-
-ZIP_EXTERN int zip_fclose(zip_file_t *);
-ZIP_EXTERN zip_t *zip_fdopen(int, int, int *);
-ZIP_EXTERN zip_int64_t zip_file_add(zip_t *, const char *, zip_source_t *, zip_flags_t);
-ZIP_EXTERN void zip_file_error_clear(zip_file_t *);
-ZIP_EXTERN int zip_file_extra_field_delete(zip_t *, zip_uint64_t, zip_uint16_t, zip_flags_t);
-ZIP_EXTERN int zip_file_extra_field_delete_by_id(zip_t *, zip_uint64_t, zip_uint16_t, zip_uint16_t, zip_flags_t);
-ZIP_EXTERN int zip_file_extra_field_set(zip_t *, zip_uint64_t, zip_uint16_t, zip_uint16_t, const zip_uint8_t *, zip_uint16_t, zip_flags_t);
-ZIP_EXTERN zip_int16_t zip_file_extra_fields_count(zip_t *, zip_uint64_t, zip_flags_t);
-ZIP_EXTERN zip_int16_t zip_file_extra_fields_count_by_id(zip_t *, zip_uint64_t, zip_uint16_t, zip_flags_t);
-ZIP_EXTERN const zip_uint8_t *zip_file_extra_field_get(zip_t *, zip_uint64_t, zip_uint16_t, zip_uint16_t *, zip_uint16_t *, zip_flags_t);
-ZIP_EXTERN const zip_uint8_t *zip_file_extra_field_get_by_id(zip_t *, zip_uint64_t, zip_uint16_t, zip_uint16_t, zip_uint16_t *, zip_flags_t);
-ZIP_EXTERN const char *zip_file_get_comment(zip_t *, zip_uint64_t, zip_uint32_t *, zip_flags_t);
-ZIP_EXTERN zip_error_t *zip_file_get_error(zip_file_t *);
-ZIP_EXTERN int zip_file_get_external_attributes(zip_t *, zip_uint64_t, zip_flags_t, zip_uint8_t *, zip_uint32_t *);
-ZIP_EXTERN int zip_file_rename(zip_t *, zip_uint64_t, const char *, zip_flags_t);
-ZIP_EXTERN int zip_file_replace(zip_t *, zip_uint64_t, zip_source_t *, zip_flags_t);
-ZIP_EXTERN int zip_file_set_comment(zip_t *, zip_uint64_t, const char *, zip_uint16_t, zip_flags_t);
-ZIP_EXTERN int zip_file_set_external_attributes(zip_t *, zip_uint64_t, zip_flags_t, zip_uint8_t, zip_uint32_t);
-ZIP_EXTERN int zip_file_set_mtime(zip_t *, zip_uint64_t, time_t, zip_flags_t);
-ZIP_EXTERN const char *zip_file_strerror(zip_file_t *);
-ZIP_EXTERN zip_file_t *zip_fopen(zip_t *, const char *, zip_flags_t);
-ZIP_EXTERN zip_file_t *zip_fopen_encrypted(zip_t *, const char *, zip_flags_t, const char *);
-ZIP_EXTERN zip_file_t *zip_fopen_index(zip_t *, zip_uint64_t, zip_flags_t);
-ZIP_EXTERN zip_file_t *zip_fopen_index_encrypted(zip_t *, zip_uint64_t, zip_flags_t, const char *);
-ZIP_EXTERN zip_int64_t zip_fread(zip_file_t *, void *, zip_uint64_t);
-ZIP_EXTERN const char *zip_get_archive_comment(zip_t *, int *, zip_flags_t);
-ZIP_EXTERN int zip_get_archive_flag(zip_t *, zip_flags_t, zip_flags_t);
-ZIP_EXTERN const char *zip_get_name(zip_t *, zip_uint64_t, zip_flags_t);
-ZIP_EXTERN zip_int64_t zip_get_num_entries(zip_t *, zip_flags_t);
-ZIP_EXTERN zip_int64_t zip_name_locate(zip_t *, const char *, zip_flags_t);
-ZIP_EXTERN zip_t *zip_open(const char *, int, int *);
-ZIP_EXTERN zip_t *zip_open_from_source(zip_source_t *, int, zip_error_t *);
-ZIP_EXTERN int zip_set_archive_comment(zip_t *, const char *, zip_uint16_t);
-ZIP_EXTERN int zip_set_archive_flag(zip_t *, zip_flags_t, int);
-ZIP_EXTERN int zip_set_default_password(zip_t *, const char *);
-ZIP_EXTERN int zip_set_file_compression(zip_t *, zip_uint64_t, zip_int32_t, zip_uint32_t);
-ZIP_EXTERN int zip_source_begin_write(zip_source_t *);
-ZIP_EXTERN zip_source_t *zip_source_buffer(zip_t *, const void *, zip_uint64_t, int);
-ZIP_EXTERN zip_source_t *zip_source_buffer_create(const void *, zip_uint64_t, int, zip_error_t *);
-ZIP_EXTERN int zip_source_close(zip_source_t *);
-ZIP_EXTERN int zip_source_commit_write(zip_source_t *);
-ZIP_EXTERN zip_error_t *zip_source_error(zip_source_t *src);
-ZIP_EXTERN zip_source_t *zip_source_file(zip_t *, const char *, zip_uint64_t, zip_int64_t);
-ZIP_EXTERN zip_source_t *zip_source_file_create(const char *, zip_uint64_t, zip_int64_t, zip_error_t *);
-ZIP_EXTERN zip_source_t *zip_source_filep(zip_t *, FILE *, zip_uint64_t, zip_int64_t);
-ZIP_EXTERN zip_source_t *zip_source_filep_create(FILE *, zip_uint64_t, zip_int64_t, zip_error_t *);
-ZIP_EXTERN void zip_source_free(zip_source_t *);
-ZIP_EXTERN zip_source_t *zip_source_function(zip_t *, zip_source_callback, void *);
-ZIP_EXTERN zip_source_t *zip_source_function_create(zip_source_callback, void *, zip_error_t *);
-ZIP_EXTERN int zip_source_is_deleted(zip_source_t *);
-ZIP_EXTERN void zip_source_keep(zip_source_t *);
-ZIP_EXTERN zip_int64_t zip_source_make_command_bitmap(zip_source_cmd_t, ...);
-ZIP_EXTERN int zip_source_open(zip_source_t *);
-ZIP_EXTERN zip_int64_t zip_source_read(zip_source_t *, void *, zip_uint64_t);
-ZIP_EXTERN void zip_source_rollback_write(zip_source_t *);
-ZIP_EXTERN int zip_source_seek(zip_source_t *, zip_int64_t, int);
-ZIP_EXTERN zip_int64_t zip_source_seek_compute_offset(zip_uint64_t, zip_uint64_t, void *, zip_uint64_t, zip_error_t *);
-ZIP_EXTERN int zip_source_seek_write(zip_source_t *, zip_int64_t, int);
-ZIP_EXTERN int zip_source_stat(zip_source_t *, zip_stat_t *);
-ZIP_EXTERN zip_int64_t zip_source_tell(zip_source_t *);
-ZIP_EXTERN zip_int64_t zip_source_tell_write(zip_source_t *);
-#ifdef _WIN32
-ZIP_EXTERN zip_source_t *zip_source_win32a(zip_t *, const char *, zip_uint64_t, zip_int64_t);
-ZIP_EXTERN zip_source_t *zip_source_win32a_create(const char *, zip_uint64_t, zip_int64_t, zip_error_t *);
-ZIP_EXTERN zip_source_t *zip_source_win32handle(zip_t *, void *, zip_uint64_t, zip_int64_t);
-ZIP_EXTERN zip_source_t *zip_source_win32handle_create(void *, zip_uint64_t, zip_int64_t, zip_error_t *);
-ZIP_EXTERN zip_source_t *zip_source_win32w(zip_t *, const wchar_t *, zip_uint64_t, zip_int64_t);
-ZIP_EXTERN zip_source_t *zip_source_win32w_create(const wchar_t *, zip_uint64_t, zip_int64_t, zip_error_t *);
-#endif
-ZIP_EXTERN zip_int64_t zip_source_write(zip_source_t *, const void *, zip_uint64_t);
-ZIP_EXTERN zip_source_t *zip_source_zip(zip_t *, zip_t *, zip_uint64_t, zip_flags_t, zip_uint64_t, zip_int64_t);
-ZIP_EXTERN int zip_stat(zip_t *, const char *, zip_flags_t, zip_stat_t *);
-ZIP_EXTERN int zip_stat_index(zip_t *, zip_uint64_t, zip_flags_t, zip_stat_t *);
-ZIP_EXTERN void zip_stat_init(zip_stat_t *);
-ZIP_EXTERN const char *zip_strerror(zip_t *);
-ZIP_EXTERN int zip_unchange(zip_t *, zip_uint64_t);
-ZIP_EXTERN int zip_unchange_all(zip_t *);
-ZIP_EXTERN int zip_unchange_archive(zip_t *);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _HAD_ZIP_H */
diff --git a/plugins/TKLiveSync/libzip_iOS.framework/Headers/zipconf.h b/plugins/TKLiveSync/libzip_iOS.framework/Headers/zipconf.h
deleted file mode 100644
index 763f0ec7d..000000000
--- a/plugins/TKLiveSync/libzip_iOS.framework/Headers/zipconf.h
+++ /dev/null
@@ -1,47 +0,0 @@
-#ifndef _HAD_ZIPCONF_H
-#define _HAD_ZIPCONF_H
-
-/*
- zipconf.h -- platform specific include file
-
- This file was generated automatically by ./make_zipconf.sh
- based on ../config.h.
- */
-
-#define LIBZIP_VERSION "0.11"
-#define LIBZIP_VERSION_MAJOR 0
-#define LIBZIP_VERSION_MINOR 11
-#define LIBZIP_VERSION_MICRO 0
-
-#include
-
-typedef int8_t zip_int8_t;
-#define ZIP_INT8_MIN INT8_MIN
-#define ZIP_INT8_MAX INT8_MAX
-
-typedef uint8_t zip_uint8_t;
-#define ZIP_UINT8_MAX UINT8_MAX
-
-typedef int16_t zip_int16_t;
-#define ZIP_INT16_MIN INT16_MIN
-#define ZIP_INT16_MAX INT16_MAX
-
-typedef uint16_t zip_uint16_t;
-#define ZIP_UINT16_MAX UINT16_MAX
-
-typedef int32_t zip_int32_t;
-#define ZIP_INT32_MIN INT32_MIN
-#define ZIP_INT32_MAX INT32_MAX
-
-typedef uint32_t zip_uint32_t;
-#define ZIP_UINT32_MAX UINT32_MAX
-
-typedef int64_t zip_int64_t;
-#define ZIP_INT64_MIN INT64_MIN
-#define ZIP_INT64_MAX INT64_MAX
-
-typedef uint64_t zip_uint64_t;
-#define ZIP_UINT64_MAX UINT64_MAX
-
-
-#endif /* zipconf.h */
diff --git a/plugins/TKLiveSync/libzip_iOS.framework/Info.plist b/plugins/TKLiveSync/libzip_iOS.framework/Info.plist
deleted file mode 100644
index 2df80df02..000000000
--- a/plugins/TKLiveSync/libzip_iOS.framework/Info.plist
+++ /dev/null
@@ -1,72 +0,0 @@
-
-
-
-
- BuildMachineOSBuild
- 15G31
- CFBundleDevelopmentRegion
- English
- CFBundleExecutable
- libzip_iOS
- CFBundleIdentifier
- at.nih.libzip-iOS
- CFBundleInfoDictionaryVersion
- 6.0
- CFBundleName
- libzip_iOS
- CFBundlePackageType
- BNDL
- CFBundleShortVersionString
- 1.1.3
- CFBundleSignature
- ????
- CFBundleSupportedPlatforms
-
- iPhoneOS
-
- CFBundleVersion
- 1
- CFPlugInDynamicRegisterFunction
-
- CFPlugInDynamicRegistration
- NO
- CFPlugInFactories
-
- 00000000-0000-0000-0000-000000000000
- MyFactoryFunction
-
- CFPlugInTypes
-
- 00000000-0000-0000-0000-000000000000
-
- 00000000-0000-0000-0000-000000000000
-
-
- CFPlugInUnloadFunction
-
- DTCompiler
- com.apple.compilers.llvm.clang.1_0
- DTPlatformBuild
- 13E230
- DTPlatformName
- iphoneos
- DTPlatformVersion
- 9.3
- DTSDKBuild
- 13E230
- DTSDKName
- iphoneos9.3
- DTXcode
- 0730
- DTXcodeBuild
- 7D175
- MinimumOSVersion
- 5.1
- NSHumanReadableCopyright
- Copyright © 2014 Dieter Baron and Thomas Klausner
- UIDeviceFamily
-
- 1
-
-
-
diff --git a/plugins/TKLiveSync/libzip_iOS.framework/README.md b/plugins/TKLiveSync/libzip_iOS.framework/README.md
deleted file mode 100644
index 8ad18b3f6..000000000
--- a/plugins/TKLiveSync/libzip_iOS.framework/README.md
+++ /dev/null
@@ -1 +0,0 @@
-Version: 1.1.3 released on 2016-05-28 - https://nih.at/libzip/
diff --git a/plugins/TKLiveSync/libzip_iOS.framework/libzip_iOS b/plugins/TKLiveSync/libzip_iOS.framework/libzip_iOS
deleted file mode 100644
index 0c9ff18c7..000000000
Binary files a/plugins/TKLiveSync/libzip_iOS.framework/libzip_iOS and /dev/null differ
diff --git a/plugins/TKLiveSync/libzip_iOS.xcframework/Info.plist b/plugins/TKLiveSync/libzip_iOS.xcframework/Info.plist
new file mode 100644
index 000000000..bf9879ae0
--- /dev/null
+++ b/plugins/TKLiveSync/libzip_iOS.xcframework/Info.plist
@@ -0,0 +1,55 @@
+
+
+
+
+ AvailableLibraries
+
+
+ LibraryIdentifier
+ ios-armv7_arm64
+ LibraryPath
+ libzip_iOS.framework
+ SupportedArchitectures
+
+ armv7
+ arm64
+
+ SupportedPlatform
+ ios
+
+
+ LibraryIdentifier
+ ios-x86_64-maccatalyst
+ LibraryPath
+ libzip_iOS.framework
+ SupportedArchitectures
+
+ x86_64
+
+ SupportedPlatform
+ ios
+ SupportedPlatformVariant
+ maccatalyst
+
+
+ LibraryIdentifier
+ ios-i386_x86_64-simulator
+ LibraryPath
+ libzip_iOS.framework
+ SupportedArchitectures
+
+ i386
+ x86_64
+
+ SupportedPlatform
+ ios
+ SupportedPlatformVariant
+ simulator
+
+
+ CFBundlePackageType
+ XFWK
+ XCFrameworkFormatVersion
+ 1.0
+
+
diff --git a/plugins/TKLiveSync/libzip_iOS.xcframework/ios-armv7_arm64/libzip_iOS.framework/Headers/compat.h b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-armv7_arm64/libzip_iOS.framework/Headers/compat.h
new file mode 100644
index 000000000..132f2cdaf
--- /dev/null
+++ b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-armv7_arm64/libzip_iOS.framework/Headers/compat.h
@@ -0,0 +1,206 @@
+#ifndef _HAD_LIBZIP_COMPAT_H
+#define _HAD_LIBZIP_COMPAT_H
+
+/*
+ compat.h -- compatibility defines.
+ Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
+
+ This file is part of libzip, a library to manipulate ZIP archives.
+ The authors can be contacted at
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+ 3. The names of the authors may not be used to endorse or promote
+ products derived from this software without specific prior
+ written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS
+ OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
+ DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+ GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+ IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+ IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include "zipconf.h"
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+/* to have *_MAX definitions for all types when compiling with g++ */
+#define __STDC_LIMIT_MACROS
+
+#ifdef _WIN32
+#ifndef ZIP_EXTERN
+#ifndef ZIP_STATIC
+#define ZIP_EXTERN __declspec(dllexport)
+#endif
+#endif
+/* for dup(), close(), etc. */
+#include
+#endif
+
+#ifdef HAVE_STDBOOL_H
+#include
+#else
+typedef char bool;
+#define true 1
+#define false 0
+#endif
+
+#include
+
+/* at least MinGW does not provide EOPNOTSUPP, see
+ * http://sourceforge.net/p/mingw/bugs/263/
+ */
+#ifndef EOPNOTSUPP
+#define EOPNOTSUPP EINVAL
+#endif
+
+/* at least MinGW does not provide EOVERFLOW, see
+ * http://sourceforge.net/p/mingw/bugs/242/
+ */
+#ifndef EOVERFLOW
+#define EOVERFLOW EFBIG
+#endif
+
+#ifdef _WIN32
+#if defined(HAVE__CHMOD)
+#define chmod _chmod
+#endif
+#if defined(HAVE__CLOSE)
+#define close _close
+#endif
+#if defined(HAVE__DUP)
+#define dup _dup
+#endif
+/* crashes reported when using fdopen instead of _fdopen on Windows/Visual Studio 10/Win64 */
+#if defined(HAVE__FDOPEN)
+#define fdopen _fdopen
+#endif
+#if !defined(HAVE_FILENO) && defined(HAVE__FILENO)
+#define fileno _fileno
+#endif
+/* Windows' open() doesn't understand Unix permissions */
+#if defined(HAVE__OPEN)
+#define open(a, b, c) _open((a), (b))
+#endif
+#if defined(HAVE__SNPRINTF)
+#define snprintf _snprintf
+#endif
+#if defined(HAVE__STRDUP)
+#if !defined(HAVE_STRDUP) || defined(_WIN32)
+#undef strdup
+#define strdup _strdup
+#endif
+#endif
+#if !defined(HAVE__SETMODE) && defined(HAVE_SETMODE)
+#define _setmode setmode
+#endif
+#if !defined(HAVE_STRTOLL) && defined(HAVE__STRTOI64)
+#define strtoll _strtoi64
+#endif
+#if !defined(HAVE_STRTOULL) && defined(HAVE__STRTOUI64)
+#define strtoull _strtoui64
+#endif
+#if defined(HAVE__UMASK)
+#define umask _umask
+#endif
+#if defined(HAVE__UNLINK)
+#define unlink _unlink
+#endif
+#endif
+
+#ifndef HAVE_FSEEKO
+#define fseeko(s, o, w) (fseek((s), (long int)(o), (w)))
+#endif
+
+#ifndef HAVE_FTELLO
+#define ftello(s) ((long)ftell((s)))
+#endif
+
+#ifndef HAVE_MKSTEMP
+int _zip_mkstemp(char*);
+#define mkstemp _zip_mkstemp
+#endif
+
+#if !defined(HAVE_STRCASECMP)
+#if defined(HAVE__STRICMP)
+#define strcasecmp _stricmp
+#elif defined(HAVE_STRICMP)
+#define strcasecmp stricmp
+#endif
+#endif
+
+#ifndef SIZEOF_OFF_T
+#error asdf
+#endif
+
+#if SIZEOF_OFF_T == 8
+#define ZIP_OFF_MAX ZIP_INT64_MAX
+#define ZIP_OFF_MIN ZIP_INT64_MIN
+#elif SIZEOF_OFF_T == 4
+#define ZIP_OFF_MAX ZIP_INT32_MAX
+#define ZIP_OFF_MIN ZIP_INT32_MIN
+#elif SIZEOF_OFF_T == 2
+#define ZIP_OFF_MAX ZIP_INT16_MAX
+#define ZIP_OFF_MIN ZIP_INT16_MIN
+#else
+#error unsupported size of off_t
+#endif
+
+#if defined(HAVE_FTELLO) && defined(HAVE_FSEEKO)
+#define ZIP_FSEEK_MAX ZIP_OFF_MAX
+#define ZIP_FSEEK_MIN ZIP_OFF_MIN
+#else
+#include
+#define ZIP_FSEEK_MAX LONG_MAX
+#define ZIP_FSEEK_MIN LONG_MIN
+#endif
+
+#ifndef SIZE_MAX
+#if SIZEOF_SIZE_T == 8
+#define SIZE_MAX ZIP_INT64_MAX
+#elif SIZEOF_SIZE_T == 4
+#define SIZE_MAX ZIP_INT32_MAX
+#elif SIZEOF_SIZE_T == 2
+#define SIZE_MAX ZIP_INT16_MAX
+#else
+#error unsupported size of size_t
+#endif
+#endif
+
+#ifndef PRId64
+#ifdef _MSC_VER
+#define PRId64 "I64d"
+#else
+#define PRId64 "lld"
+#endif
+#endif
+
+#ifndef PRIu64
+#ifdef _MSC_VER
+#define PRIu64 "I64u"
+#else
+#define PRIu64 "llu"
+#endif
+#endif
+
+#ifndef S_ISDIR
+#define S_ISDIR(mode) (((mode)&S_IFMT) == S_IFDIR)
+#endif
+
+#endif /* compat.h */
diff --git a/plugins/TKLiveSync/libzip_iOS.xcframework/ios-armv7_arm64/libzip_iOS.framework/Headers/config.h b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-armv7_arm64/libzip_iOS.framework/Headers/config.h
new file mode 100644
index 000000000..7bc9af833
--- /dev/null
+++ b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-armv7_arm64/libzip_iOS.framework/Headers/config.h
@@ -0,0 +1,92 @@
+#ifndef HAD_CONFIG_H
+#define HAD_CONFIG_H
+#ifndef _HAD_ZIPCONF_H
+#include "zipconf.h"
+#endif
+/* BEGIN DEFINES */
+/* #undef HAVE___PROGNAME */
+/* #undef HAVE__CHMOD */
+/* #undef HAVE__CLOSE */
+/* #undef HAVE__DUP */
+/* #undef HAVE__FDOPEN */
+/* #undef HAVE__FILENO */
+/* #undef HAVE__OPEN */
+/* #undef HAVE__SETMODE */
+/* #undef HAVE__SNPRINTF */
+/* #undef HAVE__STRDUP */
+/* #undef HAVE__STRICMP */
+/* #undef HAVE__STRTOI64 */
+/* #undef HAVE__STRTOUI64 */
+/* #undef HAVE__UMASK */
+/* #undef HAVE__UNLINK */
+#define HAVE_CLONEFILE
+#define HAVE_COMMONCRYPTO
+#define HAVE_CRYPTO
+/* #undef HAVE_FICLONERANGE */
+#define HAVE_FILENO
+#define HAVE_FSEEKO
+#define HAVE_FTELLO
+#define HAVE_GETPROGNAME
+/* #undef HAVE_GNUTLS */
+#define HAVE_LIBBZ2
+/* #undef HAVE_MBEDTLS */
+#define HAVE_MKSTEMP
+#define HAVE_NULLABLE
+#define HAVE_OPEN
+/* #undef HAVE_OPENSSL */
+#define HAVE_SETMODE
+#define HAVE_SNPRINTF
+#define HAVE_SSIZE_T_LIBZIP
+#define HAVE_STRCASECMP
+#define HAVE_STRDUP
+/* #undef HAVE_STRICMP */
+#define HAVE_STRTOLL
+#define HAVE_STRTOULL
+/* #undef HAVE_STRUCT_TM_TM_ZONE */
+#define HAVE_STDBOOL_H
+#define HAVE_STRINGS_H
+#define HAVE_UNISTD_H
+/* #undef HAVE_WINDOWS_CRYPTO */
+/* #undef __INT8_LIBZIP */
+#define INT8_T_LIBZIP 1
+#define UINT8_T_LIBZIP 1
+/* #undef __INT16_LIBZIP */
+#define INT16_T_LIBZIP 2
+#define UINT16_T_LIBZIP 2
+/* #undef __INT32_LIBZIP */
+#define INT32_T_LIBZIP 4
+#define UINT32_T_LIBZIP 4
+/* #undef __INT64_LIBZIP */
+#define INT64_T_LIBZIP 8
+#define UINT64_T_LIBZIP 8
+#define SHORT_LIBZIP 2
+#define INT_LIBZIP 4
+#define LONG_LIBZIP 8
+#define LONG_LONG_LIBZIP 8
+#define SIZEOF_OFF_T 8
+#define SIZE_T_LIBZIP 8
+#define SSIZE_T_LIBZIP 8
+/* #undef HAVE_DIRENT_H */
+#define HAVE_FTS_H
+/* #undef HAVE_NDIR_H */
+/* #undef HAVE_SYS_DIR_H */
+/* #undef HAVE_SYS_NDIR_H */
+/* #undef WORDS_BIGENDIAN */
+/* #undef HAVE_SHARED */
+/* END DEFINES */
+#define PACKAGE "libzip"
+#define VERSION "1.5.2"
+
+#ifndef HAVE_SSIZE_T_LIBZIP
+#if SIZE_T_LIBZIP == INT_LIBZIP
+typedef int ssize_t;
+#elif SIZE_T_LIBZIP == LONG_LIBZIP
+typedef long ssize_t;
+#elif SIZE_T_LIBZIP == LONG_LONG_LIBZIP
+typedef long long ssize_t;
+#else
+#error no suitable type for ssize_t found
+#endif
+#endif
+
+#endif /* HAD_CONFIG_H */
diff --git a/plugins/TKLiveSync/libzip_iOS.xcframework/ios-armv7_arm64/libzip_iOS.framework/Headers/zip.h b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-armv7_arm64/libzip_iOS.framework/Headers/zip.h
new file mode 100644
index 000000000..6d702128e
--- /dev/null
+++ b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-armv7_arm64/libzip_iOS.framework/Headers/zip.h
@@ -0,0 +1,444 @@
+#ifndef _HAD_ZIP_H
+#define _HAD_ZIP_H
+
+/*
+ zip.h -- exported declarations.
+ Copyright (C) 1999-2019 Dieter Baron and Thomas Klausner
+
+ This file is part of libzip, a library to manipulate ZIP archives.
+ The authors can be contacted at
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+ 3. The names of the authors may not be used to endorse or promote
+ products derived from this software without specific prior
+ written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS
+ OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
+ DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+ GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+ IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+ IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#ifdef __cplusplus
+extern "C" {
+#if 0
+} /* fix autoindent */
+#endif
+#endif
+
+#include "zipconf.h"
+
+#ifndef ZIP_EXTERN
+#ifndef ZIP_STATIC
+#ifdef _WIN32
+#define ZIP_EXTERN __declspec(dllimport)
+#elif defined(__GNUC__) && __GNUC__ >= 4
+#define ZIP_EXTERN __attribute__((visibility("default")))
+#else
+#define ZIP_EXTERN
+#endif
+#else
+#define ZIP_EXTERN
+#endif
+#endif
+
+#include
+#include
+#include
+
+/* flags for zip_open */
+
+#define ZIP_CREATE 1
+#define ZIP_EXCL 2
+#define ZIP_CHECKCONS 4
+#define ZIP_TRUNCATE 8
+#define ZIP_RDONLY 16
+
+/* flags for zip_name_locate, zip_fopen, zip_stat, ... */
+
+#define ZIP_FL_NOCASE 1u /* ignore case on name lookup */
+#define ZIP_FL_NODIR 2u /* ignore directory component */
+#define ZIP_FL_COMPRESSED 4u /* read compressed data */
+#define ZIP_FL_UNCHANGED 8u /* use original data, ignoring changes */
+#define ZIP_FL_RECOMPRESS 16u /* force recompression of data */
+#define ZIP_FL_ENCRYPTED 32u /* read encrypted data (implies ZIP_FL_COMPRESSED) */
+#define ZIP_FL_ENC_GUESS 0u /* guess string encoding (is default) */
+#define ZIP_FL_ENC_RAW 64u /* get unmodified string */
+#define ZIP_FL_ENC_STRICT 128u /* follow specification strictly */
+#define ZIP_FL_LOCAL 256u /* in local header */
+#define ZIP_FL_CENTRAL 512u /* in central directory */
+/* 1024u reserved for internal use */
+#define ZIP_FL_ENC_UTF_8 2048u /* string is UTF-8 encoded */
+#define ZIP_FL_ENC_CP437 4096u /* string is CP437 encoded */
+#define ZIP_FL_OVERWRITE 8192u /* zip_file_add: if file with name exists, overwrite (replace) it */
+
+/* archive global flags flags */
+
+#define ZIP_AFL_RDONLY 2u /* read only -- cannot be cleared */
+
+/* create a new extra field */
+
+#define ZIP_EXTRA_FIELD_ALL ZIP_UINT16_MAX
+#define ZIP_EXTRA_FIELD_NEW ZIP_UINT16_MAX
+
+/* libzip error codes */
+
+#define ZIP_ER_OK 0 /* N No error */
+#define ZIP_ER_MULTIDISK 1 /* N Multi-disk zip archives not supported */
+#define ZIP_ER_RENAME 2 /* S Renaming temporary file failed */
+#define ZIP_ER_CLOSE 3 /* S Closing zip archive failed */
+#define ZIP_ER_SEEK 4 /* S Seek error */
+#define ZIP_ER_READ 5 /* S Read error */
+#define ZIP_ER_WRITE 6 /* S Write error */
+#define ZIP_ER_CRC 7 /* N CRC error */
+#define ZIP_ER_ZIPCLOSED 8 /* N Containing zip archive was closed */
+#define ZIP_ER_NOENT 9 /* N No such file */
+#define ZIP_ER_EXISTS 10 /* N File already exists */
+#define ZIP_ER_OPEN 11 /* S Can't open file */
+#define ZIP_ER_TMPOPEN 12 /* S Failure to create temporary file */
+#define ZIP_ER_ZLIB 13 /* Z Zlib error */
+#define ZIP_ER_MEMORY 14 /* N Malloc failure */
+#define ZIP_ER_CHANGED 15 /* N Entry has been changed */
+#define ZIP_ER_COMPNOTSUPP 16 /* N Compression method not supported */
+#define ZIP_ER_EOF 17 /* N Premature end of file */
+#define ZIP_ER_INVAL 18 /* N Invalid argument */
+#define ZIP_ER_NOZIP 19 /* N Not a zip archive */
+#define ZIP_ER_INTERNAL 20 /* N Internal error */
+#define ZIP_ER_INCONS 21 /* N Zip archive inconsistent */
+#define ZIP_ER_REMOVE 22 /* S Can't remove file */
+#define ZIP_ER_DELETED 23 /* N Entry has been deleted */
+#define ZIP_ER_ENCRNOTSUPP 24 /* N Encryption method not supported */
+#define ZIP_ER_RDONLY 25 /* N Read-only archive */
+#define ZIP_ER_NOPASSWD 26 /* N No password provided */
+#define ZIP_ER_WRONGPASSWD 27 /* N Wrong password provided */
+#define ZIP_ER_OPNOTSUPP 28 /* N Operation not supported */
+#define ZIP_ER_INUSE 29 /* N Resource still in use */
+#define ZIP_ER_TELL 30 /* S Tell error */
+#define ZIP_ER_COMPRESSED_DATA 31 /* N Compressed data invalid */
+
+/* type of system error value */
+
+#define ZIP_ET_NONE 0 /* sys_err unused */
+#define ZIP_ET_SYS 1 /* sys_err is errno */
+#define ZIP_ET_ZLIB 2 /* sys_err is zlib error code */
+
+/* compression methods */
+
+#define ZIP_CM_DEFAULT -1 /* better of deflate or store */
+#define ZIP_CM_STORE 0 /* stored (uncompressed) */
+#define ZIP_CM_SHRINK 1 /* shrunk */
+#define ZIP_CM_REDUCE_1 2 /* reduced with factor 1 */
+#define ZIP_CM_REDUCE_2 3 /* reduced with factor 2 */
+#define ZIP_CM_REDUCE_3 4 /* reduced with factor 3 */
+#define ZIP_CM_REDUCE_4 5 /* reduced with factor 4 */
+#define ZIP_CM_IMPLODE 6 /* imploded */
+/* 7 - Reserved for Tokenizing compression algorithm */
+#define ZIP_CM_DEFLATE 8 /* deflated */
+#define ZIP_CM_DEFLATE64 9 /* deflate64 */
+#define ZIP_CM_PKWARE_IMPLODE 10 /* PKWARE imploding */
+/* 11 - Reserved by PKWARE */
+#define ZIP_CM_BZIP2 12 /* compressed using BZIP2 algorithm */
+/* 13 - Reserved by PKWARE */
+#define ZIP_CM_LZMA 14 /* LZMA (EFS) */
+/* 15-17 - Reserved by PKWARE */
+#define ZIP_CM_TERSE 18 /* compressed using IBM TERSE (new) */
+#define ZIP_CM_LZ77 19 /* IBM LZ77 z Architecture (PFS) */
+#define ZIP_CM_XZ 95 /* XZ compressed data */
+#define ZIP_CM_JPEG 96 /* Compressed Jpeg data */
+#define ZIP_CM_WAVPACK 97 /* WavPack compressed data */
+#define ZIP_CM_PPMD 98 /* PPMd version I, Rev 1 */
+
+/* encryption methods */
+
+#define ZIP_EM_NONE 0 /* not encrypted */
+#define ZIP_EM_TRAD_PKWARE 1 /* traditional PKWARE encryption */
+#if 0 /* Strong Encryption Header not parsed yet */
+#define ZIP_EM_DES 0x6601 /* strong encryption: DES */
+#define ZIP_EM_RC2_OLD 0x6602 /* strong encryption: RC2, version < 5.2 */
+#define ZIP_EM_3DES_168 0x6603
+#define ZIP_EM_3DES_112 0x6609
+#define ZIP_EM_PKZIP_AES_128 0x660e
+#define ZIP_EM_PKZIP_AES_192 0x660f
+#define ZIP_EM_PKZIP_AES_256 0x6610
+#define ZIP_EM_RC2 0x6702 /* strong encryption: RC2, version >= 5.2 */
+#define ZIP_EM_RC4 0x6801
+#endif
+#define ZIP_EM_AES_128 0x0101 /* Winzip AES encryption */
+#define ZIP_EM_AES_192 0x0102
+#define ZIP_EM_AES_256 0x0103
+#define ZIP_EM_UNKNOWN 0xffff /* unknown algorithm */
+
+#define ZIP_OPSYS_DOS 0x00u
+#define ZIP_OPSYS_AMIGA 0x01u
+#define ZIP_OPSYS_OPENVMS 0x02u
+#define ZIP_OPSYS_UNIX 0x03u
+#define ZIP_OPSYS_VM_CMS 0x04u
+#define ZIP_OPSYS_ATARI_ST 0x05u
+#define ZIP_OPSYS_OS_2 0x06u
+#define ZIP_OPSYS_MACINTOSH 0x07u
+#define ZIP_OPSYS_Z_SYSTEM 0x08u
+#define ZIP_OPSYS_CPM 0x09u
+#define ZIP_OPSYS_WINDOWS_NTFS 0x0au
+#define ZIP_OPSYS_MVS 0x0bu
+#define ZIP_OPSYS_VSE 0x0cu
+#define ZIP_OPSYS_ACORN_RISC 0x0du
+#define ZIP_OPSYS_VFAT 0x0eu
+#define ZIP_OPSYS_ALTERNATE_MVS 0x0fu
+#define ZIP_OPSYS_BEOS 0x10u
+#define ZIP_OPSYS_TANDEM 0x11u
+#define ZIP_OPSYS_OS_400 0x12u
+#define ZIP_OPSYS_OS_X 0x13u
+
+#define ZIP_OPSYS_DEFAULT ZIP_OPSYS_UNIX
+
+enum zip_source_cmd {
+ ZIP_SOURCE_OPEN, /* prepare for reading */
+ ZIP_SOURCE_READ, /* read data */
+ ZIP_SOURCE_CLOSE, /* reading is done */
+ ZIP_SOURCE_STAT, /* get meta information */
+ ZIP_SOURCE_ERROR, /* get error information */
+ ZIP_SOURCE_FREE, /* cleanup and free resources */
+ ZIP_SOURCE_SEEK, /* set position for reading */
+ ZIP_SOURCE_TELL, /* get read position */
+ ZIP_SOURCE_BEGIN_WRITE, /* prepare for writing */
+ ZIP_SOURCE_COMMIT_WRITE, /* writing is done */
+ ZIP_SOURCE_ROLLBACK_WRITE, /* discard written changes */
+ ZIP_SOURCE_WRITE, /* write data */
+ ZIP_SOURCE_SEEK_WRITE, /* set position for writing */
+ ZIP_SOURCE_TELL_WRITE, /* get write position */
+ ZIP_SOURCE_SUPPORTS, /* check whether source supports command */
+ ZIP_SOURCE_REMOVE, /* remove file */
+ ZIP_SOURCE_GET_COMPRESSION_FLAGS, /* get compression flags, internal only */
+ ZIP_SOURCE_BEGIN_WRITE_CLONING /* like ZIP_SOURCE_BEGIN_WRITE, but keep part of original file */
+};
+typedef enum zip_source_cmd zip_source_cmd_t;
+
+#define ZIP_SOURCE_MAKE_COMMAND_BITMASK(cmd) (((zip_int64_t)1) << (cmd))
+
+// clang-format off
+
+#define ZIP_SOURCE_SUPPORTS_READABLE (ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_OPEN) \
+ | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_READ) \
+ | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_CLOSE) \
+ | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_STAT) \
+ | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_ERROR) \
+ | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_FREE))
+
+#define ZIP_SOURCE_SUPPORTS_SEEKABLE (ZIP_SOURCE_SUPPORTS_READABLE \
+ | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_SEEK) \
+ | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_TELL) \
+ | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_SUPPORTS))
+
+#define ZIP_SOURCE_SUPPORTS_WRITABLE (ZIP_SOURCE_SUPPORTS_SEEKABLE \
+ | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_BEGIN_WRITE) \
+ | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_COMMIT_WRITE) \
+ | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_ROLLBACK_WRITE) \
+ | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_WRITE) \
+ | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_SEEK_WRITE) \
+ | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_TELL_WRITE) \
+ | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_REMOVE))
+
+// clang-format on
+
+/* for use by sources */
+struct zip_source_args_seek {
+ zip_int64_t offset;
+ int whence;
+};
+
+typedef struct zip_source_args_seek zip_source_args_seek_t;
+#define ZIP_SOURCE_GET_ARGS(type, data, len, error) ((len) < sizeof(type) ? zip_error_set((error), ZIP_ER_INVAL, 0), (type*)NULL : (type*)(data))
+
+/* error information */
+/* use zip_error_*() to access */
+struct zip_error {
+ int zip_err; /* libzip error code (ZIP_ER_*) */
+ int sys_err; /* copy of errno (E*) or zlib error code */
+ char* _Nullable str; /* string representation or NULL */
+};
+
+#define ZIP_STAT_NAME 0x0001u
+#define ZIP_STAT_INDEX 0x0002u
+#define ZIP_STAT_SIZE 0x0004u
+#define ZIP_STAT_COMP_SIZE 0x0008u
+#define ZIP_STAT_MTIME 0x0010u
+#define ZIP_STAT_CRC 0x0020u
+#define ZIP_STAT_COMP_METHOD 0x0040u
+#define ZIP_STAT_ENCRYPTION_METHOD 0x0080u
+#define ZIP_STAT_FLAGS 0x0100u
+
+struct zip_stat {
+ zip_uint64_t valid; /* which fields have valid values */
+ const char* _Nullable name; /* name of the file */
+ zip_uint64_t index; /* index within archive */
+ zip_uint64_t size; /* size of file (uncompressed) */
+ zip_uint64_t comp_size; /* size of file (compressed) */
+ time_t mtime; /* modification time */
+ zip_uint32_t crc; /* crc of file data */
+ zip_uint16_t comp_method; /* compression method used */
+ zip_uint16_t encryption_method; /* encryption method used */
+ zip_uint32_t flags; /* reserved for future use */
+};
+
+struct zip_buffer_fragment {
+ zip_uint8_t* _Nonnull data;
+ zip_uint64_t length;
+};
+
+struct zip;
+struct zip_file;
+struct zip_source;
+
+typedef struct zip zip_t;
+typedef struct zip_error zip_error_t;
+typedef struct zip_file zip_file_t;
+typedef struct zip_source zip_source_t;
+typedef struct zip_stat zip_stat_t;
+typedef struct zip_buffer_fragment zip_buffer_fragment_t;
+
+typedef zip_uint32_t zip_flags_t;
+
+typedef zip_int64_t (*zip_source_callback)(void* _Nullable, void* _Nullable, zip_uint64_t, zip_source_cmd_t);
+typedef void (*zip_progress_callback)(zip_t* _Nonnull, double, void* _Nullable);
+
+#ifndef ZIP_DISABLE_DEPRECATED
+typedef void (*zip_progress_callback_t)(double);
+ZIP_EXTERN void zip_register_progress_callback(zip_t* _Nonnull, zip_progress_callback_t _Nullable); /* use zip_register_progress_callback_with_state */
+
+ZIP_EXTERN zip_int64_t zip_add(zip_t* _Nonnull, const char* _Nonnull, zip_source_t* _Nonnull); /* use zip_file_add */
+ZIP_EXTERN zip_int64_t zip_add_dir(zip_t* _Nonnull, const char* _Nonnull); /* use zip_dir_add */
+ZIP_EXTERN const char* _Nullable zip_get_file_comment(zip_t* _Nonnull, zip_uint64_t, int* _Nullable, int); /* use zip_file_get_comment */
+ZIP_EXTERN int zip_get_num_files(zip_t* _Nonnull); /* use zip_get_num_entries instead */
+ZIP_EXTERN int zip_rename(zip_t* _Nonnull, zip_uint64_t, const char* _Nonnull); /* use zip_file_rename */
+ZIP_EXTERN int zip_replace(zip_t* _Nonnull, zip_uint64_t, zip_source_t* _Nonnull); /* use zip_file_replace */
+ZIP_EXTERN int zip_set_file_comment(zip_t* _Nonnull, zip_uint64_t, const char* _Nullable, int); /* use zip_file_set_comment */
+ZIP_EXTERN int zip_error_get_sys_type(int); /* use zip_error_system_type */
+ZIP_EXTERN void zip_error_get(zip_t* _Nonnull, int* _Nullable, int* _Nullable); /* use zip_get_error, zip_error_code_zip / zip_error_code_system */
+ZIP_EXTERN int zip_error_to_str(char* _Nonnull, zip_uint64_t, int, int); /* use zip_error_init_with_code / zip_error_strerror */
+ZIP_EXTERN void zip_file_error_get(zip_file_t* _Nonnull, int* _Nullable, int* _Nullable); /* use zip_file_get_error, zip_error_code_zip / zip_error_code_system */
+#endif
+
+ZIP_EXTERN int zip_close(zip_t* _Nonnull);
+ZIP_EXTERN int zip_delete(zip_t* _Nonnull, zip_uint64_t);
+ZIP_EXTERN zip_int64_t zip_dir_add(zip_t* _Nonnull, const char* _Nonnull, zip_flags_t);
+ZIP_EXTERN void zip_discard(zip_t* _Nonnull);
+
+ZIP_EXTERN zip_error_t* _Nonnull zip_get_error(zip_t* _Nonnull);
+ZIP_EXTERN void zip_error_clear(zip_t* _Nonnull);
+ZIP_EXTERN int zip_error_code_zip(const zip_error_t* _Nonnull);
+ZIP_EXTERN int zip_error_code_system(const zip_error_t* _Nonnull);
+ZIP_EXTERN void zip_error_fini(zip_error_t* _Nonnull);
+ZIP_EXTERN void zip_error_init(zip_error_t* _Nonnull);
+ZIP_EXTERN void zip_error_init_with_code(zip_error_t* _Nonnull, int);
+ZIP_EXTERN void zip_error_set(zip_error_t* _Nullable, int, int);
+ZIP_EXTERN const char* _Nonnull zip_error_strerror(zip_error_t* _Nonnull);
+ZIP_EXTERN int zip_error_system_type(const zip_error_t* _Nonnull);
+ZIP_EXTERN zip_int64_t zip_error_to_data(const zip_error_t* _Nonnull, void* _Nonnull, zip_uint64_t);
+
+ZIP_EXTERN int zip_fclose(zip_file_t* _Nonnull);
+ZIP_EXTERN zip_t* _Nullable zip_fdopen(int, int, int* _Nullable);
+ZIP_EXTERN zip_int64_t zip_file_add(zip_t* _Nonnull, const char* _Nonnull, zip_source_t* _Nonnull, zip_flags_t);
+ZIP_EXTERN void zip_file_error_clear(zip_file_t* _Nonnull);
+ZIP_EXTERN int zip_file_extra_field_delete(zip_t* _Nonnull, zip_uint64_t, zip_uint16_t, zip_flags_t);
+ZIP_EXTERN int zip_file_extra_field_delete_by_id(zip_t* _Nonnull, zip_uint64_t, zip_uint16_t, zip_uint16_t, zip_flags_t);
+ZIP_EXTERN int zip_file_extra_field_set(zip_t* _Nonnull, zip_uint64_t, zip_uint16_t, zip_uint16_t, const zip_uint8_t* _Nullable, zip_uint16_t, zip_flags_t);
+ZIP_EXTERN zip_int16_t zip_file_extra_fields_count(zip_t* _Nonnull, zip_uint64_t, zip_flags_t);
+ZIP_EXTERN zip_int16_t zip_file_extra_fields_count_by_id(zip_t* _Nonnull, zip_uint64_t, zip_uint16_t, zip_flags_t);
+ZIP_EXTERN const zip_uint8_t* _Nullable zip_file_extra_field_get(zip_t* _Nonnull, zip_uint64_t, zip_uint16_t, zip_uint16_t* _Nullable, zip_uint16_t* _Nullable, zip_flags_t);
+ZIP_EXTERN const zip_uint8_t* _Nullable zip_file_extra_field_get_by_id(zip_t* _Nonnull, zip_uint64_t, zip_uint16_t, zip_uint16_t, zip_uint16_t* _Nullable, zip_flags_t);
+ZIP_EXTERN const char* _Nullable zip_file_get_comment(zip_t* _Nonnull, zip_uint64_t, zip_uint32_t* _Nullable, zip_flags_t);
+ZIP_EXTERN zip_error_t* _Nonnull zip_file_get_error(zip_file_t* _Nonnull);
+ZIP_EXTERN int zip_file_get_external_attributes(zip_t* _Nonnull, zip_uint64_t, zip_flags_t, zip_uint8_t* _Nullable, zip_uint32_t* _Nullable);
+ZIP_EXTERN int zip_file_rename(zip_t* _Nonnull, zip_uint64_t, const char* _Nonnull, zip_flags_t);
+ZIP_EXTERN int zip_file_replace(zip_t* _Nonnull, zip_uint64_t, zip_source_t* _Nonnull, zip_flags_t);
+ZIP_EXTERN int zip_file_set_comment(zip_t* _Nonnull, zip_uint64_t, const char* _Nullable, zip_uint16_t, zip_flags_t);
+ZIP_EXTERN int zip_file_set_encryption(zip_t* _Nonnull, zip_uint64_t, zip_uint16_t, const char* _Nullable);
+ZIP_EXTERN int zip_file_set_external_attributes(zip_t* _Nonnull, zip_uint64_t, zip_flags_t, zip_uint8_t, zip_uint32_t);
+ZIP_EXTERN int zip_file_set_mtime(zip_t* _Nonnull, zip_uint64_t, time_t, zip_flags_t);
+ZIP_EXTERN const char* _Nonnull zip_file_strerror(zip_file_t* _Nonnull);
+ZIP_EXTERN zip_file_t* _Nullable zip_fopen(zip_t* _Nonnull, const char* _Nonnull, zip_flags_t);
+ZIP_EXTERN zip_file_t* _Nullable zip_fopen_encrypted(zip_t* _Nonnull, const char* _Nonnull, zip_flags_t, const char* _Nullable);
+ZIP_EXTERN zip_file_t* _Nullable zip_fopen_index(zip_t* _Nonnull, zip_uint64_t, zip_flags_t);
+ZIP_EXTERN zip_file_t* _Nullable zip_fopen_index_encrypted(zip_t* _Nonnull, zip_uint64_t, zip_flags_t, const char* _Nullable);
+ZIP_EXTERN zip_int64_t zip_fread(zip_file_t* _Nonnull, void* _Nonnull, zip_uint64_t);
+ZIP_EXTERN zip_int8_t zip_fseek(zip_file_t* _Nonnull, zip_int64_t, int);
+ZIP_EXTERN zip_int64_t zip_ftell(zip_file_t* _Nonnull);
+ZIP_EXTERN const char* _Nullable zip_get_archive_comment(zip_t* _Nonnull, int* _Nullable, zip_flags_t);
+ZIP_EXTERN int zip_get_archive_flag(zip_t* _Nonnull, zip_flags_t, zip_flags_t);
+ZIP_EXTERN const char* _Nullable zip_get_name(zip_t* _Nonnull, zip_uint64_t, zip_flags_t);
+ZIP_EXTERN zip_int64_t zip_get_num_entries(zip_t* _Nonnull, zip_flags_t);
+ZIP_EXTERN const char* _Nonnull zip_libzip_version(void);
+ZIP_EXTERN zip_int64_t zip_name_locate(zip_t* _Nonnull, const char* _Nonnull, zip_flags_t);
+ZIP_EXTERN zip_t* _Nullable zip_open(const char* _Nonnull, int, int* _Nullable);
+ZIP_EXTERN zip_t* _Nullable zip_open_from_source(zip_source_t* _Nonnull, int, zip_error_t* _Nullable);
+ZIP_EXTERN int zip_register_progress_callback_with_state(zip_t* _Nonnull, double, zip_progress_callback _Nullable, void (*_Nullable)(void* _Nullable), void* _Nullable);
+ZIP_EXTERN int zip_set_archive_comment(zip_t* _Nonnull, const char* _Nullable, zip_uint16_t);
+ZIP_EXTERN int zip_set_archive_flag(zip_t* _Nonnull, zip_flags_t, int);
+ZIP_EXTERN int zip_set_default_password(zip_t* _Nonnull, const char* _Nullable);
+ZIP_EXTERN int zip_set_file_compression(zip_t* _Nonnull, zip_uint64_t, zip_int32_t, zip_uint32_t);
+ZIP_EXTERN int zip_source_begin_write(zip_source_t* _Nonnull);
+ZIP_EXTERN int zip_source_begin_write_cloning(zip_source_t* _Nonnull, zip_uint64_t);
+ZIP_EXTERN zip_source_t* _Nullable zip_source_buffer(zip_t* _Nonnull, const void* _Nullable, zip_uint64_t, int);
+ZIP_EXTERN zip_source_t* _Nullable zip_source_buffer_create(const void* _Nullable, zip_uint64_t, int, zip_error_t* _Nullable);
+ZIP_EXTERN zip_source_t* _Nullable zip_source_buffer_fragment(zip_t* _Nonnull, const zip_buffer_fragment_t* _Nonnull, zip_uint64_t, int);
+ZIP_EXTERN zip_source_t* _Nullable zip_source_buffer_fragment_create(const zip_buffer_fragment_t* _Nonnull, zip_uint64_t, int, zip_error_t* _Nullable);
+ZIP_EXTERN int zip_source_close(zip_source_t* _Nonnull);
+ZIP_EXTERN int zip_source_commit_write(zip_source_t* _Nonnull);
+ZIP_EXTERN zip_error_t* _Nonnull zip_source_error(zip_source_t* _Nonnull);
+ZIP_EXTERN zip_source_t* _Nullable zip_source_file(zip_t* _Nonnull, const char* _Nonnull, zip_uint64_t, zip_int64_t);
+ZIP_EXTERN zip_source_t* _Nullable zip_source_file_create(const char* _Nonnull, zip_uint64_t, zip_int64_t, zip_error_t* _Nullable);
+ZIP_EXTERN zip_source_t* _Nullable zip_source_filep(zip_t* _Nonnull, FILE* _Nonnull, zip_uint64_t, zip_int64_t);
+ZIP_EXTERN zip_source_t* _Nullable zip_source_filep_create(FILE* _Nonnull, zip_uint64_t, zip_int64_t, zip_error_t* _Nullable);
+ZIP_EXTERN void zip_source_free(zip_source_t* _Nullable);
+ZIP_EXTERN zip_source_t* _Nullable zip_source_function(zip_t* _Nonnull, zip_source_callback _Nonnull, void* _Nullable);
+ZIP_EXTERN zip_source_t* _Nullable zip_source_function_create(zip_source_callback _Nonnull, void* _Nullable, zip_error_t* _Nullable);
+ZIP_EXTERN int zip_source_is_deleted(zip_source_t* _Nonnull);
+ZIP_EXTERN void zip_source_keep(zip_source_t* _Nonnull);
+ZIP_EXTERN zip_int64_t zip_source_make_command_bitmap(zip_source_cmd_t, ...);
+ZIP_EXTERN int zip_source_open(zip_source_t* _Nonnull);
+ZIP_EXTERN zip_int64_t zip_source_read(zip_source_t* _Nonnull, void* _Nonnull, zip_uint64_t);
+ZIP_EXTERN void zip_source_rollback_write(zip_source_t* _Nonnull);
+ZIP_EXTERN int zip_source_seek(zip_source_t* _Nonnull, zip_int64_t, int);
+ZIP_EXTERN zip_int64_t zip_source_seek_compute_offset(zip_uint64_t, zip_uint64_t, void* _Nonnull, zip_uint64_t, zip_error_t* _Nullable);
+ZIP_EXTERN int zip_source_seek_write(zip_source_t* _Nonnull, zip_int64_t, int);
+ZIP_EXTERN int zip_source_stat(zip_source_t* _Nonnull, zip_stat_t* _Nonnull);
+ZIP_EXTERN zip_int64_t zip_source_tell(zip_source_t* _Nonnull);
+ZIP_EXTERN zip_int64_t zip_source_tell_write(zip_source_t* _Nonnull);
+#ifdef _WIN32
+ZIP_EXTERN zip_source_t* zip_source_win32a(zip_t*, const char*, zip_uint64_t, zip_int64_t);
+ZIP_EXTERN zip_source_t* zip_source_win32a_create(const char*, zip_uint64_t, zip_int64_t, zip_error_t*);
+ZIP_EXTERN zip_source_t* zip_source_win32handle(zip_t*, void*, zip_uint64_t, zip_int64_t);
+ZIP_EXTERN zip_source_t* zip_source_win32handle_create(void*, zip_uint64_t, zip_int64_t, zip_error_t*);
+ZIP_EXTERN zip_source_t* zip_source_win32w(zip_t*, const wchar_t*, zip_uint64_t, zip_int64_t);
+ZIP_EXTERN zip_source_t* zip_source_win32w_create(const wchar_t*, zip_uint64_t, zip_int64_t, zip_error_t*);
+#endif
+ZIP_EXTERN zip_int64_t zip_source_write(zip_source_t* _Nonnull, const void* _Nullable, zip_uint64_t);
+ZIP_EXTERN zip_source_t* _Nullable zip_source_zip(zip_t* _Nonnull, zip_t* _Nonnull, zip_uint64_t, zip_flags_t, zip_uint64_t, zip_int64_t);
+ZIP_EXTERN int zip_stat(zip_t* _Nonnull, const char* _Nonnull, zip_flags_t, zip_stat_t* _Nonnull);
+ZIP_EXTERN int zip_stat_index(zip_t* _Nonnull, zip_uint64_t, zip_flags_t, zip_stat_t* _Nonnull);
+ZIP_EXTERN void zip_stat_init(zip_stat_t* _Nonnull);
+ZIP_EXTERN const char* _Nonnull zip_strerror(zip_t* _Nonnull);
+ZIP_EXTERN int zip_unchange(zip_t* _Nonnull, zip_uint64_t);
+ZIP_EXTERN int zip_unchange_all(zip_t* _Nonnull);
+ZIP_EXTERN int zip_unchange_archive(zip_t* _Nonnull);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _HAD_ZIP_H */
diff --git a/plugins/TKLiveSync/libzip_iOS.xcframework/ios-armv7_arm64/libzip_iOS.framework/Headers/zip_crypto.h b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-armv7_arm64/libzip_iOS.framework/Headers/zip_crypto.h
new file mode 100644
index 000000000..585de211c
--- /dev/null
+++ b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-armv7_arm64/libzip_iOS.framework/Headers/zip_crypto.h
@@ -0,0 +1,54 @@
+/*
+ zip_crypto.h -- crypto definitions
+ Copyright (C) 2017-2018 Dieter Baron and Thomas Klausner
+
+ This file is part of libzip, a library to manipulate ZIP archives.
+ The authors can be contacted at
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+ 3. The names of the authors may not be used to endorse or promote
+ products derived from this software without specific prior
+ written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS
+ OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
+ DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+ GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+ IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+ IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#ifndef HAD_ZIP_CRYPTO_H
+#define HAD_ZIP_CRYPTO_H
+
+#define ZIP_CRYPTO_SHA1_LENGTH 20
+#define ZIP_CRYPTO_AES_BLOCK_LENGTH 16
+
+#if defined(HAVE_WINDOWS_CRYPTO)
+#include "zip_crypto_win.h"
+#elif defined(HAVE_COMMONCRYPTO)
+#include "zip_crypto_commoncrypto.h"
+#elif defined(HAVE_GNUTLS)
+#include "zip_crypto_gnutls.h"
+#elif defined(HAVE_OPENSSL)
+#include "zip_crypto_openssl.h"
+#elif defined(HAVE_MBEDTLS)
+#include "zip_crypto_mbedtls.h"
+#else
+#error "no crypto backend found"
+#endif
+
+#endif /* HAD_ZIP_CRYPTO_H */
diff --git a/plugins/TKLiveSync/libzip_iOS.xcframework/ios-armv7_arm64/libzip_iOS.framework/Headers/zip_crypto_commoncrypto.h b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-armv7_arm64/libzip_iOS.framework/Headers/zip_crypto_commoncrypto.h
new file mode 100644
index 000000000..aa42d3724
--- /dev/null
+++ b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-armv7_arm64/libzip_iOS.framework/Headers/zip_crypto_commoncrypto.h
@@ -0,0 +1,53 @@
+/*
+ zip_crypto_commoncrypto.h -- definitions for CommonCrypto wrapper.
+ Copyright (C) 2018 Dieter Baron and Thomas Klausner
+
+ This file is part of libzip, a library to manipulate ZIP archives.
+ The authors can be contacted at
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+ 3. The names of the authors may not be used to endorse or promote
+ products derived from this software without specific prior
+ written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS
+ OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
+ DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+ GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+ IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+ IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#ifndef HAD_ZIP_CRYPTO_COMMONCRYPTO_H
+#define HAD_ZIP_CRYPTO_COMMONCRYPTO_H
+
+#include
+
+#define _zip_crypto_aes_t struct _CCCryptor
+#define _zip_crypto_hmac_t CCHmacContext
+
+void _zip_crypto_aes_free(_zip_crypto_aes_t* aes);
+bool _zip_crypto_aes_encrypt_block(_zip_crypto_aes_t* aes, const zip_uint8_t* in, zip_uint8_t* out);
+_zip_crypto_aes_t* _zip_crypto_aes_new(const zip_uint8_t* key, zip_uint16_t key_size, zip_error_t* error);
+
+#define _zip_crypto_hmac(hmac, data, length) (CCHmacUpdate((hmac), (data), (length)), true)
+void _zip_crypto_hmac_free(_zip_crypto_hmac_t* hmac);
+_zip_crypto_hmac_t* _zip_crypto_hmac_new(const zip_uint8_t* secret, zip_uint64_t secret_length, zip_error_t* error);
+#define _zip_crypto_hmac_output(hmac, data) (CCHmacFinal((hmac), (data)), true)
+
+#define _zip_crypto_pbkdf2(key, key_length, salt, salt_length, iterations, output, output_length) (CCKeyDerivationPBKDF(kCCPBKDF2, (const char*)(key), (key_length), (salt), (salt_length), kCCPRFHmacAlgSHA1, (iterations), (output), (output_length)) == kCCSuccess)
+
+#endif /* HAD_ZIP_CRYPTO_COMMONCRYPTO_H */
diff --git a/plugins/TKLiveSync/libzip_iOS.xcframework/ios-armv7_arm64/libzip_iOS.framework/Headers/zip_crypto_gnutls.h b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-armv7_arm64/libzip_iOS.framework/Headers/zip_crypto_gnutls.h
new file mode 100644
index 000000000..01d854f72
--- /dev/null
+++ b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-armv7_arm64/libzip_iOS.framework/Headers/zip_crypto_gnutls.h
@@ -0,0 +1,65 @@
+/*
+ zip_crypto_gnutls.h -- definitions for GnuTLS wrapper.
+ Copyright (C) 2018 Dieter Baron and Thomas Klausner
+
+ This file is part of libzip, a library to manipulate ZIP archives.
+ The authors can be contacted at
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+ 3. The names of the authors may not be used to endorse or promote
+ products derived from this software without specific prior
+ written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS
+ OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
+ DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+ GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+ IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+ IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#ifndef HAD_ZIP_CRYPTO_GNUTLS_H
+#define HAD_ZIP_CRYPTO_GNUTLS_H
+
+#include
+#include
+
+#include
+#include
+
+typedef struct {
+ union {
+ struct aes128_ctx ctx_128;
+ struct aes192_ctx ctx_192;
+ struct aes256_ctx ctx_256;
+ } ctx;
+ zip_uint16_t key_size;
+} _zip_crypto_aes_t;
+
+#define _zip_crypto_hmac_t gnutls_hmac_hd_t
+
+void _zip_crypto_aes_free(_zip_crypto_aes_t* aes);
+bool _zip_crypto_aes_encrypt_block(_zip_crypto_aes_t* aes, const zip_uint8_t* in, zip_uint8_t* out);
+_zip_crypto_aes_t* _zip_crypto_aes_new(const zip_uint8_t* key, zip_uint16_t key_size, zip_error_t* error);
+
+#define _zip_crypto_hmac(hmac, data, length) (gnutls_hmac(*(hmac), (data), (length)) == 0)
+void _zip_crypto_hmac_free(_zip_crypto_hmac_t* hmac);
+_zip_crypto_hmac_t* _zip_crypto_hmac_new(const zip_uint8_t* secret, zip_uint64_t secret_length, zip_error_t* error);
+#define _zip_crypto_hmac_output(hmac, data) (gnutls_hmac_output(*(hmac), (data)), true)
+
+#define _zip_crypto_pbkdf2(key, key_length, salt, salt_length, iterations, output, output_length) (pbkdf2_hmac_sha1((key_length), (key), (iterations), (salt_length), (salt), (output_length), (output)), true)
+
+#endif /* HAD_ZIP_CRYPTO_GNUTLS_H */
diff --git a/plugins/TKLiveSync/libzip_iOS.xcframework/ios-armv7_arm64/libzip_iOS.framework/Headers/zip_crypto_mbedtls.h b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-armv7_arm64/libzip_iOS.framework/Headers/zip_crypto_mbedtls.h
new file mode 100644
index 000000000..259f174db
--- /dev/null
+++ b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-armv7_arm64/libzip_iOS.framework/Headers/zip_crypto_mbedtls.h
@@ -0,0 +1,54 @@
+/*
+ zip_crypto_mbedtls.h -- definitions for mbedtls wrapper
+ Copyright (C) 2018 Dieter Baron and Thomas Klausner
+
+ This file is part of libzip, a library to manipulate ZIP archives.
+ The authors can be contacted at
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+ 3. The names of the authors may not be used to endorse or promote
+ products derived from this software without specific prior
+ written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS
+ OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
+ DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+ GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+ IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+ IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#ifndef HAD_ZIP_CRYPTO_MBEDTLS_H
+#define HAD_ZIP_CRYPTO_MBEDTLS_H
+
+#include
+#include
+
+#define _zip_crypto_aes_t mbedtls_aes_context
+#define _zip_crypto_hmac_t mbedtls_md_context_t
+
+_zip_crypto_aes_t* _zip_crypto_aes_new(const zip_uint8_t* key, zip_uint16_t key_size, zip_error_t* error);
+#define _zip_crypto_aes_encrypt_block(aes, in, out) (mbedtls_aes_crypt_ecb((aes), MBEDTLS_AES_ENCRYPT, (in), (out)) == 0)
+void _zip_crypto_aes_free(_zip_crypto_aes_t* aes);
+
+_zip_crypto_hmac_t* _zip_crypto_hmac_new(const zip_uint8_t* secret, zip_uint64_t secret_length, zip_error_t* error);
+#define _zip_crypto_hmac(hmac, data, length) (mbedtls_md_hmac_update((hmac), (data), (length)) == 0)
+#define _zip_crypto_hmac_output(hmac, data) (mbedtls_md_hmac_finish((hmac), (data)) == 0)
+void _zip_crypto_hmac_free(_zip_crypto_hmac_t* hmac);
+
+bool _zip_crypto_pbkdf2(const zip_uint8_t* key, zip_uint64_t key_length, const zip_uint8_t* salt, zip_uint16_t salt_length, int iterations, zip_uint8_t* output, zip_uint64_t output_length);
+
+#endif /* HAD_ZIP_CRYPTO_MBEDTLS_H */
diff --git a/plugins/TKLiveSync/libzip_iOS.xcframework/ios-armv7_arm64/libzip_iOS.framework/Headers/zip_crypto_openssl.h b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-armv7_arm64/libzip_iOS.framework/Headers/zip_crypto_openssl.h
new file mode 100644
index 000000000..742efb40f
--- /dev/null
+++ b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-armv7_arm64/libzip_iOS.framework/Headers/zip_crypto_openssl.h
@@ -0,0 +1,54 @@
+/*
+ zip_crypto_openssl.h -- definitions for OpenSSL wrapper.
+ Copyright (C) 2018 Dieter Baron and Thomas Klausner
+
+ This file is part of libzip, a library to manipulate ZIP archives.
+ The authors can be contacted at
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+ 3. The names of the authors may not be used to endorse or promote
+ products derived from this software without specific prior
+ written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS
+ OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
+ DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+ GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+ IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+ IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#ifndef HAD_ZIP_CRYPTO_OPENSSL_H
+#define HAD_ZIP_CRYPTO_OPENSSL_H
+
+#include
+#include
+
+#define _zip_crypto_aes_t AES_KEY
+#define _zip_crypto_hmac_t HMAC_CTX
+
+void _zip_crypto_aes_free(_zip_crypto_aes_t* aes);
+#define _zip_crypto_aes_encrypt_block(aes, in, out) (AES_encrypt((in), (out), (aes)), true)
+_zip_crypto_aes_t* _zip_crypto_aes_new(const zip_uint8_t* key, zip_uint16_t key_size, zip_error_t* error);
+
+#define _zip_crypto_hmac(hmac, data, length) (HMAC_Update((hmac), (data), (length)) == 1)
+void _zip_crypto_hmac_free(_zip_crypto_hmac_t* hmac);
+_zip_crypto_hmac_t* _zip_crypto_hmac_new(const zip_uint8_t* secret, zip_uint64_t secret_length, zip_error_t* error);
+bool _zip_crypto_hmac_output(_zip_crypto_hmac_t* hmac, zip_uint8_t* data);
+
+#define _zip_crypto_pbkdf2(key, key_length, salt, salt_length, iterations, output, output_length) (PKCS5_PBKDF2_HMAC_SHA1((const char*)(key), (key_length), (salt), (salt_length), (iterations), (output_length), (output)))
+
+#endif /* HAD_ZIP_CRYPTO_OPENSSL_H */
diff --git a/plugins/TKLiveSync/libzip_iOS.xcframework/ios-armv7_arm64/libzip_iOS.framework/Headers/zip_crypto_win.h b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-armv7_arm64/libzip_iOS.framework/Headers/zip_crypto_win.h
new file mode 100644
index 000000000..f7635e09b
--- /dev/null
+++ b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-armv7_arm64/libzip_iOS.framework/Headers/zip_crypto_win.h
@@ -0,0 +1,51 @@
+/*
+ zip_crypto_win.h -- Windows Crypto API wrapper.
+ Copyright (C) 2018 Dieter Baron and Thomas Klausner
+
+ This file is part of libzip, a library to manipulate ZIP archives.
+ The authors can be contacted at
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+ 3. The names of the authors may not be used to endorse or promote
+ products derived from this software without specific prior
+ written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS
+ OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
+ DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+ GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+ IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+ IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#ifndef HAD_ZIP_CRYPTO_WIN_H
+#define HAD_ZIP_CRYPTO_WIN_H
+
+typedef struct _zip_crypto_aes_s _zip_crypto_aes_t;
+typedef struct _zip_crypto_hmac_s _zip_crypto_hmac_t;
+
+void _zip_crypto_aes_free(_zip_crypto_aes_t* aes);
+_zip_crypto_aes_t* _zip_crypto_aes_new(const zip_uint8_t* key, zip_uint16_t key_size, zip_error_t* error);
+bool _zip_crypto_aes_encrypt_block(_zip_crypto_aes_t* aes, const zip_uint8_t* in, zip_uint8_t* out);
+
+bool _zip_crypto_pbkdf2(const zip_uint8_t* key, zip_uint64_t key_length, const zip_uint8_t* salt, zip_uint16_t salt_length, zip_uint16_t iterations, zip_uint8_t* output, zip_uint16_t output_length);
+
+_zip_crypto_hmac_t* _zip_crypto_hmac_new(const zip_uint8_t* secret, zip_uint64_t secret_length, zip_error_t* error);
+void _zip_crypto_hmac_free(_zip_crypto_hmac_t* hmac);
+bool _zip_crypto_hmac(_zip_crypto_hmac_t* hmac, zip_uint8_t* data, zip_uint64_t length);
+bool _zip_crypto_hmac_output(_zip_crypto_hmac_t* hmac, zip_uint8_t* data);
+
+#endif /* HAD_ZIP_CRYPTO_WIN_H */
diff --git a/plugins/TKLiveSync/libzip_iOS.xcframework/ios-armv7_arm64/libzip_iOS.framework/Headers/zipconf.h b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-armv7_arm64/libzip_iOS.framework/Headers/zipconf.h
new file mode 100644
index 000000000..4585bf329
--- /dev/null
+++ b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-armv7_arm64/libzip_iOS.framework/Headers/zipconf.h
@@ -0,0 +1,45 @@
+#ifndef _HAD_ZIPCONF_H
+#define _HAD_ZIPCONF_H
+
+/*
+ zipconf.h -- platform specific include file
+
+ This file was generated automatically by CMake
+ based on ../cmake-zipconf.h.in.
+ */
+
+#define LIBZIP_VERSION "1.5.2"
+#define LIBZIP_VERSION_MAJOR 1
+#define LIBZIP_VERSION_MINOR 5
+#define LIBZIP_VERSION_MICRO 2
+
+#define ZIP_STATIC
+
+#include
+
+typedef int8_t zip_int8_t;
+typedef uint8_t zip_uint8_t;
+typedef int16_t zip_int16_t;
+typedef uint16_t zip_uint16_t;
+typedef int32_t zip_int32_t;
+typedef uint32_t zip_uint32_t;
+typedef int64_t zip_int64_t;
+typedef uint64_t zip_uint64_t;
+
+#define ZIP_INT8_MIN (-ZIP_INT8_MAX - 1)
+#define ZIP_INT8_MAX 0x7f
+#define ZIP_UINT8_MAX 0xff
+
+#define ZIP_INT16_MIN (-ZIP_INT16_MAX - 1)
+#define ZIP_INT16_MAX 0x7fff
+#define ZIP_UINT16_MAX 0xffff
+
+#define ZIP_INT32_MIN (-ZIP_INT32_MAX - 1L)
+#define ZIP_INT32_MAX 0x7fffffffL
+#define ZIP_UINT32_MAX 0xffffffffLU
+
+#define ZIP_INT64_MIN (-ZIP_INT64_MAX - 1LL)
+#define ZIP_INT64_MAX 0x7fffffffffffffffLL
+#define ZIP_UINT64_MAX 0xffffffffffffffffULL
+
+#endif /* zipconf.h */
diff --git a/plugins/TKLiveSync/libzip_iOS.xcframework/ios-armv7_arm64/libzip_iOS.framework/Headers/zipint.h b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-armv7_arm64/libzip_iOS.framework/Headers/zipint.h
new file mode 100644
index 000000000..48609d972
--- /dev/null
+++ b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-armv7_arm64/libzip_iOS.framework/Headers/zipint.h
@@ -0,0 +1,579 @@
+#ifndef _HAD_ZIPINT_H
+#define _HAD_ZIPINT_H
+
+/*
+ zipint.h -- internal declarations.
+ Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
+
+ This file is part of libzip, a library to manipulate ZIP archives.
+ The authors can be contacted at
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+ 3. The names of the authors may not be used to endorse or promote
+ products derived from this software without specific prior
+ written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS
+ OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
+ DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+ GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+ IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+ IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "compat.h"
+
+#ifdef ZIP_ALLOCATE_BUFFER
+#include
+#endif
+
+#include
+
+#ifndef _ZIP_COMPILING_DEPRECATED
+#define ZIP_DISABLE_DEPRECATED
+#endif
+
+#include "zip.h"
+
+#define CENTRAL_MAGIC "PK\1\2"
+#define LOCAL_MAGIC "PK\3\4"
+#define EOCD_MAGIC "PK\5\6"
+#define DATADES_MAGIC "PK\7\10"
+#define EOCD64LOC_MAGIC "PK\6\7"
+#define EOCD64_MAGIC "PK\6\6"
+#define CDENTRYSIZE 46u
+#define LENTRYSIZE 30
+#define MAXCOMLEN 65536
+#define MAXEXTLEN 65536
+#define EOCDLEN 22
+#define EOCD64LOCLEN 20
+#define EOCD64LEN 56
+#define CDBUFSIZE (MAXCOMLEN + EOCDLEN + EOCD64LOCLEN)
+#define BUFSIZE 8192
+#define EFZIP64SIZE 28
+#define EF_WINZIP_AES_SIZE 7
+
+#define ZIP_CM_REPLACED_DEFAULT (-2)
+#define ZIP_CM_WINZIP_AES 99 /* Winzip AES encrypted */
+
+#define WINZIP_AES_PASSWORD_VERIFY_LENGTH 2
+#define WINZIP_AES_MAX_HEADER_LENGTH (16 + WINZIP_AES_PASSWORD_VERIFY_LENGTH)
+#define AES_BLOCK_SIZE 16
+#define HMAC_LENGTH 10
+#define SHA1_LENGTH 20
+#define SALT_LENGTH(method) ((method) == ZIP_EM_AES_128 ? 8 : ((method) == ZIP_EM_AES_192 ? 12 : 16))
+
+#define ZIP_CM_IS_DEFAULT(x) ((x) == ZIP_CM_DEFAULT || (x) == ZIP_CM_REPLACED_DEFAULT)
+#define ZIP_CM_ACTUAL(x) ((zip_uint16_t)(ZIP_CM_IS_DEFAULT(x) ? ZIP_CM_DEFLATE : (x)))
+
+#define ZIP_EF_UTF_8_COMMENT 0x6375
+#define ZIP_EF_UTF_8_NAME 0x7075
+#define ZIP_EF_WINZIP_AES 0x9901
+#define ZIP_EF_ZIP64 0x0001
+
+#define ZIP_EF_IS_INTERNAL(id) ((id) == ZIP_EF_UTF_8_COMMENT || (id) == ZIP_EF_UTF_8_NAME || (id) == ZIP_EF_WINZIP_AES || (id) == ZIP_EF_ZIP64)
+
+/* according to unzip-6.0's zipinfo.c, this corresponds to a regular file with rw permissions for everyone */
+#define ZIP_EXT_ATTRIB_DEFAULT (0100666u << 16)
+/* according to unzip-6.0's zipinfo.c, this corresponds to a directory with rwx permissions for everyone */
+#define ZIP_EXT_ATTRIB_DEFAULT_DIR (0040777u << 16)
+
+#define ZIP_MAX(a, b) ((a) > (b) ? (a) : (b))
+#define ZIP_MIN(a, b) ((a) < (b) ? (a) : (b))
+
+/* This section contains API that won't materialize like this. It's
+ placed in the internal section, pending cleanup. */
+
+/* flags for compression and encryption sources */
+
+#define ZIP_CODEC_DECODE 0 /* decompress/decrypt (encode flag not set) */
+#define ZIP_CODEC_ENCODE 1 /* compress/encrypt */
+
+typedef zip_source_t* (*zip_encryption_implementation)(zip_t*, zip_source_t*, zip_uint16_t, int, const char*);
+
+zip_encryption_implementation _zip_get_encryption_implementation(zip_uint16_t method, int operation);
+
+// clang-format off
+enum zip_compression_status {
+ ZIP_COMPRESSION_OK,
+ ZIP_COMPRESSION_END,
+ ZIP_COMPRESSION_ERROR,
+ ZIP_COMPRESSION_NEED_DATA
+};
+// clang-format on
+typedef enum zip_compression_status zip_compression_status_t;
+
+struct zip_compression_algorithm {
+ /* called once to create new context */
+ void* (*allocate)(zip_uint16_t method, int compression_flags, zip_error_t* error);
+ /* called once to free context */
+ void (*deallocate)(void* ctx);
+
+ /* get compression specific general purpose bitflags */
+ int (*compression_flags)(void* ctx);
+
+ /* start processing */
+ bool (*start)(void* ctx);
+ /* stop processing */
+ bool (*end)(void* ctx);
+
+ /* provide new input data, remains valid until next call to input or end */
+ bool (*input)(void* ctx, zip_uint8_t* data, zip_uint64_t length);
+
+ /* all input data has been provided */
+ void (*end_of_input)(void* ctx);
+
+ /* process input data, writing to data, which has room for length bytes, update length to number of bytes written */
+ zip_compression_status_t (*process)(void* ctx, zip_uint8_t* data, zip_uint64_t* length);
+};
+typedef struct zip_compression_algorithm zip_compression_algorithm_t;
+
+extern zip_compression_algorithm_t zip_algorithm_bzip2_compress;
+extern zip_compression_algorithm_t zip_algorithm_bzip2_decompress;
+extern zip_compression_algorithm_t zip_algorithm_deflate_compress;
+extern zip_compression_algorithm_t zip_algorithm_deflate_decompress;
+
+bool zip_compression_method_supported(zip_int32_t method, bool compress);
+
+/* This API is not final yet, but we need it internally, so it's private for now. */
+
+const zip_uint8_t* zip_get_extra_field_by_id(zip_t*, int, int, zip_uint16_t, int, zip_uint16_t*);
+
+/* This section contains API that is of limited use until support for
+ user-supplied compression/encryption implementation is finished.
+ Thus we will keep it private for now. */
+
+typedef zip_int64_t (*zip_source_layered_callback)(zip_source_t*, void*, void*, zip_uint64_t, enum zip_source_cmd);
+zip_source_t* zip_source_compress(zip_t* za, zip_source_t* src, zip_int32_t cm, int compression_flags);
+zip_source_t* zip_source_crc(zip_t*, zip_source_t*, int);
+zip_source_t* zip_source_decompress(zip_t* za, zip_source_t* src, zip_int32_t cm);
+zip_source_t* zip_source_layered(zip_t*, zip_source_t*, zip_source_layered_callback, void*);
+zip_source_t* zip_source_layered_create(zip_source_t* src, zip_source_layered_callback cb, void* ud, zip_error_t* error);
+zip_source_t* zip_source_pkware(zip_t*, zip_source_t*, zip_uint16_t, int, const char*);
+int zip_source_remove(zip_source_t*);
+zip_int64_t zip_source_supports(zip_source_t* src);
+zip_source_t* zip_source_window(zip_t*, zip_source_t*, zip_uint64_t, zip_uint64_t);
+zip_source_t* zip_source_winzip_aes_decode(zip_t*, zip_source_t*, zip_uint16_t, int, const char*);
+zip_source_t* zip_source_winzip_aes_encode(zip_t*, zip_source_t*, zip_uint16_t, int, const char*);
+
+/* error source for layered sources */
+
+enum zip_les { ZIP_LES_NONE,
+ ZIP_LES_UPPER,
+ ZIP_LES_LOWER,
+ ZIP_LES_INVAL };
+
+/* directory entry: general purpose bit flags */
+
+#define ZIP_GPBF_ENCRYPTED 0x0001u /* is encrypted */
+#define ZIP_GPBF_DATA_DESCRIPTOR 0x0008u /* crc/size after file data */
+#define ZIP_GPBF_STRONG_ENCRYPTION 0x0040u /* uses strong encryption */
+#define ZIP_GPBF_ENCODING_UTF_8 0x0800u /* file name encoding is UTF-8 */
+
+/* extra fields */
+#define ZIP_EF_LOCAL ZIP_FL_LOCAL /* include in local header */
+#define ZIP_EF_CENTRAL ZIP_FL_CENTRAL /* include in central directory */
+#define ZIP_EF_BOTH (ZIP_EF_LOCAL | ZIP_EF_CENTRAL) /* include in both */
+
+#define ZIP_FL_FORCE_ZIP64 1024 /* force zip64 extra field (_zip_dirent_write) */
+
+#define ZIP_FL_ENCODING_ALL (ZIP_FL_ENC_GUESS | ZIP_FL_ENC_CP437 | ZIP_FL_ENC_UTF_8)
+
+/* encoding type */
+enum zip_encoding_type {
+ ZIP_ENCODING_UNKNOWN, /* not yet analyzed */
+ ZIP_ENCODING_ASCII, /* plain ASCII */
+ ZIP_ENCODING_UTF8_KNOWN, /* is UTF-8 */
+ ZIP_ENCODING_UTF8_GUESSED, /* possibly UTF-8 */
+ ZIP_ENCODING_CP437, /* Code Page 437 */
+ ZIP_ENCODING_ERROR /* should be UTF-8 but isn't */
+};
+
+typedef enum zip_encoding_type zip_encoding_type_t;
+
+struct zip_hash;
+struct zip_progress;
+
+typedef struct zip_cdir zip_cdir_t;
+typedef struct zip_dirent zip_dirent_t;
+typedef struct zip_entry zip_entry_t;
+typedef struct zip_extra_field zip_extra_field_t;
+typedef struct zip_string zip_string_t;
+typedef struct zip_buffer zip_buffer_t;
+typedef struct zip_hash zip_hash_t;
+typedef struct zip_progress zip_progress_t;
+
+/* zip archive, part of API */
+
+struct zip {
+ zip_source_t* src; /* data source for archive */
+ unsigned int open_flags; /* flags passed to zip_open */
+ zip_error_t error; /* error information */
+
+ unsigned int flags; /* archive global flags */
+ unsigned int ch_flags; /* changed archive global flags */
+
+ char* default_password; /* password used when no other supplied */
+
+ zip_string_t* comment_orig; /* archive comment */
+ zip_string_t* comment_changes; /* changed archive comment */
+ bool comment_changed; /* whether archive comment was changed */
+
+ zip_uint64_t nentry; /* number of entries */
+ zip_uint64_t nentry_alloc; /* number of entries allocated */
+ zip_entry_t* entry; /* entries */
+
+ unsigned int nopen_source; /* number of open sources using archive */
+ unsigned int nopen_source_alloc; /* number of sources allocated */
+ zip_source_t** open_source; /* open sources using archive */
+
+ zip_hash_t* names; /* hash table for name lookup */
+
+ zip_progress_t* progress; /* progress callback for zip_close() */
+};
+
+/* file in zip archive, part of API */
+
+struct zip_file {
+ zip_t* za; /* zip archive containing this file */
+ zip_error_t error; /* error information */
+ bool eof;
+ zip_source_t* src; /* data source */
+};
+
+/* zip archive directory entry (central or local) */
+
+#define ZIP_DIRENT_COMP_METHOD 0x0001u
+#define ZIP_DIRENT_FILENAME 0x0002u
+#define ZIP_DIRENT_COMMENT 0x0004u
+#define ZIP_DIRENT_EXTRA_FIELD 0x0008u
+#define ZIP_DIRENT_ATTRIBUTES 0x0010u
+#define ZIP_DIRENT_LAST_MOD 0x0020u
+#define ZIP_DIRENT_ENCRYPTION_METHOD 0x0040u
+#define ZIP_DIRENT_PASSWORD 0x0080u
+#define ZIP_DIRENT_ALL ZIP_UINT32_MAX
+
+struct zip_dirent {
+ zip_uint32_t changed;
+ bool local_extra_fields_read; /* whether we already read in local header extra fields */
+ bool cloned; /* whether this instance is cloned, and thus shares non-changed strings */
+
+ bool crc_valid; /* if CRC is valid (sometimes not for encrypted archives) */
+
+ zip_uint16_t version_madeby; /* (c) version of creator */
+ zip_uint16_t version_needed; /* (cl) version needed to extract */
+ zip_uint16_t bitflags; /* (cl) general purpose bit flag */
+ zip_int32_t comp_method; /* (cl) compression method used (uint16 and ZIP_CM_DEFAULT (-1)) */
+ time_t last_mod; /* (cl) time of last modification */
+ zip_uint32_t crc; /* (cl) CRC-32 of uncompressed data */
+ zip_uint64_t comp_size; /* (cl) size of compressed data */
+ zip_uint64_t uncomp_size; /* (cl) size of uncompressed data */
+ zip_string_t* filename; /* (cl) file name (NUL-terminated) */
+ zip_extra_field_t* extra_fields; /* (cl) extra fields, parsed */
+ zip_string_t* comment; /* (c) file comment */
+ zip_uint32_t disk_number; /* (c) disk number start */
+ zip_uint16_t int_attrib; /* (c) internal file attributes */
+ zip_uint32_t ext_attrib; /* (c) external file attributes */
+ zip_uint64_t offset; /* (c) offset of local header */
+
+ zip_uint16_t compression_level; /* level of compression to use (never valid in orig) */
+ zip_uint16_t encryption_method; /* encryption method, computed from other fields */
+ char* password; /* file specific encryption password */
+};
+
+/* zip archive central directory */
+
+struct zip_cdir {
+ zip_entry_t* entry; /* directory entries */
+ zip_uint64_t nentry; /* number of entries */
+ zip_uint64_t nentry_alloc; /* number of entries allocated */
+
+ zip_uint64_t size; /* size of central directory */
+ zip_uint64_t offset; /* offset of central directory in file */
+ zip_string_t* comment; /* zip archive comment */
+ bool is_zip64; /* central directory in zip64 format */
+};
+
+struct zip_extra_field {
+ zip_extra_field_t* next;
+ zip_flags_t flags; /* in local/central header */
+ zip_uint16_t id; /* header id */
+ zip_uint16_t size; /* data size */
+ zip_uint8_t* data;
+};
+
+enum zip_source_write_state {
+ ZIP_SOURCE_WRITE_CLOSED, /* write is not in progress */
+ ZIP_SOURCE_WRITE_OPEN, /* write is in progress */
+ ZIP_SOURCE_WRITE_FAILED, /* commit failed, only rollback allowed */
+ ZIP_SOURCE_WRITE_REMOVED /* file was removed */
+};
+typedef enum zip_source_write_state zip_source_write_state_t;
+
+struct zip_source {
+ zip_source_t* src;
+ union {
+ zip_source_callback f;
+ zip_source_layered_callback l;
+ } cb;
+ void* ud;
+ zip_error_t error;
+ zip_int64_t supports; /* supported commands */
+ unsigned int open_count; /* number of times source was opened (directly or as lower layer) */
+ zip_source_write_state_t write_state; /* whether source is open for writing */
+ bool source_closed; /* set if source archive is closed */
+ zip_t* source_archive; /* zip archive we're reading from, NULL if not from archive */
+ unsigned int refcount;
+ bool eof; /* EOF reached */
+ bool had_read_error; /* a previous ZIP_SOURCE_READ reported an error */
+};
+
+#define ZIP_SOURCE_IS_OPEN_READING(src) ((src)->open_count > 0)
+#define ZIP_SOURCE_IS_OPEN_WRITING(src) ((src)->write_state == ZIP_SOURCE_WRITE_OPEN)
+#define ZIP_SOURCE_IS_LAYERED(src) ((src)->src != NULL)
+
+/* entry in zip archive directory */
+
+struct zip_entry {
+ zip_dirent_t* orig;
+ zip_dirent_t* changes;
+ zip_source_t* source;
+ bool deleted;
+};
+
+/* file or archive comment, or filename */
+
+struct zip_string {
+ zip_uint8_t* raw; /* raw string */
+ zip_uint16_t length; /* length of raw string */
+ enum zip_encoding_type encoding; /* autorecognized encoding */
+ zip_uint8_t* converted; /* autoconverted string */
+ zip_uint32_t converted_length; /* length of converted */
+};
+
+/* byte array */
+
+/* For performance, we usually keep 8k byte arrays on the stack.
+ However, there are (embedded) systems with a stack size of 12k;
+ for those, use malloc()/free() */
+
+#ifdef ZIP_ALLOCATE_BUFFER
+#define DEFINE_BYTE_ARRAY(buf, size) zip_uint8_t* buf
+#define byte_array_init(buf, size) (((buf) = (zip_uint8_t*)malloc(size)) != NULL)
+#define byte_array_fini(buf) (free(buf))
+#else
+#define DEFINE_BYTE_ARRAY(buf, size) zip_uint8_t buf[size]
+#define byte_array_init(buf, size) (1)
+#define byte_array_fini(buf) ((void)0)
+#endif
+
+/* bounds checked access to memory buffer */
+
+struct zip_buffer {
+ bool ok;
+ bool free_data;
+
+ zip_uint8_t* data;
+ zip_uint64_t size;
+ zip_uint64_t offset;
+};
+
+/* which files to write in which order */
+
+struct zip_filelist {
+ zip_uint64_t idx;
+ /* TODO const char *name; */
+};
+
+typedef struct zip_filelist zip_filelist_t;
+
+struct _zip_winzip_aes;
+typedef struct _zip_winzip_aes zip_winzip_aes_t;
+
+extern const char* const _zip_err_str[];
+extern const int _zip_nerr_str;
+extern const int _zip_err_type[];
+
+#define ZIP_MAX(a, b) ((a) > (b) ? (a) : (b))
+#define ZIP_MIN(a, b) ((a) < (b) ? (a) : (b))
+
+#define ZIP_ENTRY_CHANGED(e, f) ((e)->changes && ((e)->changes->changed & (f)))
+#define ZIP_ENTRY_DATA_CHANGED(x) ((x)->source != NULL)
+#define ZIP_ENTRY_HAS_CHANGES(e) (ZIP_ENTRY_DATA_CHANGED(e) || (e)->deleted || ZIP_ENTRY_CHANGED((e), ZIP_DIRENT_ALL))
+
+#define ZIP_IS_RDONLY(za) ((za)->ch_flags & ZIP_AFL_RDONLY)
+
+#ifdef HAVE_EXPLICIT_MEMSET
+#define _zip_crypto_clear(b, l) explicit_memset((b), 0, (l))
+#else
+#ifdef HAVE_EXPLICIT_BZERO
+#define _zip_crypto_clear(b, l) explicit_bzero((b), (l))
+#else
+#include
+#define _zip_crypto_clear(b, l) memset((b), 0, (l))
+#endif
+#endif
+
+zip_int64_t _zip_add_entry(zip_t*);
+
+zip_uint8_t* _zip_buffer_data(zip_buffer_t* buffer);
+bool _zip_buffer_eof(zip_buffer_t* buffer);
+void _zip_buffer_free(zip_buffer_t* buffer);
+zip_uint8_t* _zip_buffer_get(zip_buffer_t* buffer, zip_uint64_t length);
+zip_uint16_t _zip_buffer_get_16(zip_buffer_t* buffer);
+zip_uint32_t _zip_buffer_get_32(zip_buffer_t* buffer);
+zip_uint64_t _zip_buffer_get_64(zip_buffer_t* buffer);
+zip_uint8_t _zip_buffer_get_8(zip_buffer_t* buffer);
+zip_uint64_t _zip_buffer_left(zip_buffer_t* buffer);
+zip_buffer_t* _zip_buffer_new(zip_uint8_t* data, zip_uint64_t size);
+zip_buffer_t* _zip_buffer_new_from_source(zip_source_t* src, zip_uint64_t size, zip_uint8_t* buf, zip_error_t* error);
+zip_uint64_t _zip_buffer_offset(zip_buffer_t* buffer);
+bool _zip_buffer_ok(zip_buffer_t* buffer);
+zip_uint8_t* _zip_buffer_peek(zip_buffer_t* buffer, zip_uint64_t length);
+int _zip_buffer_put(zip_buffer_t* buffer, const void* src, size_t length);
+int _zip_buffer_put_16(zip_buffer_t* buffer, zip_uint16_t i);
+int _zip_buffer_put_32(zip_buffer_t* buffer, zip_uint32_t i);
+int _zip_buffer_put_64(zip_buffer_t* buffer, zip_uint64_t i);
+int _zip_buffer_put_8(zip_buffer_t* buffer, zip_uint8_t i);
+zip_uint64_t _zip_buffer_read(zip_buffer_t* buffer, zip_uint8_t* data, zip_uint64_t length);
+int _zip_buffer_skip(zip_buffer_t* buffer, zip_uint64_t length);
+int _zip_buffer_set_offset(zip_buffer_t* buffer, zip_uint64_t offset);
+zip_uint64_t _zip_buffer_size(zip_buffer_t* buffer);
+
+int _zip_cdir_compute_crc(zip_t*, uLong*);
+void _zip_cdir_free(zip_cdir_t*);
+bool _zip_cdir_grow(zip_cdir_t* cd, zip_uint64_t additional_entries, zip_error_t* error);
+zip_cdir_t* _zip_cdir_new(zip_uint64_t, zip_error_t*);
+zip_int64_t _zip_cdir_write(zip_t* za, const zip_filelist_t* filelist, zip_uint64_t survivors);
+void _zip_deregister_source(zip_t* za, zip_source_t* src);
+
+zip_dirent_t* _zip_dirent_clone(const zip_dirent_t*);
+void _zip_dirent_free(zip_dirent_t*);
+void _zip_dirent_finalize(zip_dirent_t*);
+void _zip_dirent_init(zip_dirent_t*);
+bool _zip_dirent_needs_zip64(const zip_dirent_t*, zip_flags_t);
+zip_dirent_t* _zip_dirent_new(void);
+zip_int64_t _zip_dirent_read(zip_dirent_t* zde, zip_source_t* src, zip_buffer_t* buffer, bool local, zip_error_t* error);
+void _zip_dirent_set_version_needed(zip_dirent_t* de, bool force_zip64);
+zip_int32_t _zip_dirent_size(zip_source_t* src, zip_uint16_t, zip_error_t*);
+int _zip_dirent_write(zip_t* za, zip_dirent_t* dirent, zip_flags_t flags);
+
+zip_extra_field_t* _zip_ef_clone(const zip_extra_field_t*, zip_error_t*);
+zip_extra_field_t* _zip_ef_delete_by_id(zip_extra_field_t*, zip_uint16_t, zip_uint16_t, zip_flags_t);
+void _zip_ef_free(zip_extra_field_t*);
+const zip_uint8_t* _zip_ef_get_by_id(const zip_extra_field_t*, zip_uint16_t*, zip_uint16_t, zip_uint16_t, zip_flags_t, zip_error_t*);
+zip_extra_field_t* _zip_ef_merge(zip_extra_field_t*, zip_extra_field_t*);
+zip_extra_field_t* _zip_ef_new(zip_uint16_t, zip_uint16_t, const zip_uint8_t*, zip_flags_t);
+bool _zip_ef_parse(const zip_uint8_t*, zip_uint16_t, zip_flags_t, zip_extra_field_t**, zip_error_t*);
+zip_extra_field_t* _zip_ef_remove_internal(zip_extra_field_t*);
+zip_uint16_t _zip_ef_size(const zip_extra_field_t*, zip_flags_t);
+int _zip_ef_write(zip_t* za, const zip_extra_field_t* ef, zip_flags_t flags);
+
+void _zip_entry_finalize(zip_entry_t*);
+void _zip_entry_init(zip_entry_t*);
+
+void _zip_error_clear(zip_error_t*);
+void _zip_error_get(const zip_error_t*, int*, int*);
+
+void _zip_error_copy(zip_error_t* dst, const zip_error_t* src);
+void _zip_error_set_from_source(zip_error_t*, zip_source_t*);
+
+const zip_uint8_t* _zip_extract_extra_field_by_id(zip_error_t*, zip_uint16_t, int, const zip_uint8_t*, zip_uint16_t, zip_uint16_t*);
+
+int _zip_file_extra_field_prepare_for_change(zip_t*, zip_uint64_t);
+int _zip_file_fillbuf(void*, size_t, zip_file_t*);
+zip_uint64_t _zip_file_get_end(const zip_t* za, zip_uint64_t index, zip_error_t* error);
+zip_uint64_t _zip_file_get_offset(const zip_t*, zip_uint64_t, zip_error_t*);
+
+int _zip_filerange_crc(zip_source_t* src, zip_uint64_t offset, zip_uint64_t length, uLong* crcp, zip_error_t* error);
+
+zip_dirent_t* _zip_get_dirent(zip_t*, zip_uint64_t, zip_flags_t, zip_error_t*);
+
+enum zip_encoding_type _zip_guess_encoding(zip_string_t*, enum zip_encoding_type);
+zip_uint8_t* _zip_cp437_to_utf8(const zip_uint8_t* const, zip_uint32_t, zip_uint32_t*, zip_error_t*);
+
+bool _zip_hash_add(zip_hash_t* hash, const zip_uint8_t* name, zip_uint64_t index, zip_flags_t flags, zip_error_t* error);
+bool _zip_hash_delete(zip_hash_t* hash, const zip_uint8_t* key, zip_error_t* error);
+void _zip_hash_free(zip_hash_t* hash);
+zip_int64_t _zip_hash_lookup(zip_hash_t* hash, const zip_uint8_t* name, zip_flags_t flags, zip_error_t* error);
+zip_hash_t* _zip_hash_new(zip_error_t* error);
+bool _zip_hash_reserve_capacity(zip_hash_t* hash, zip_uint64_t capacity, zip_error_t* error);
+bool _zip_hash_revert(zip_hash_t* hash, zip_error_t* error);
+
+zip_t* _zip_open(zip_source_t*, unsigned int, zip_error_t*);
+
+void _zip_progress_end(zip_progress_t* progress);
+void _zip_progress_free(zip_progress_t* progress);
+zip_progress_t* _zip_progress_new(zip_t* za, double precision, zip_progress_callback callback, void (*ud_free)(void*), void* ud);
+void _zip_progress_start(zip_progress_t* progress);
+void _zip_progress_subrange(zip_progress_t* progress, double start, double end);
+void _zip_progress_update(zip_progress_t* progress, double value);
+
+ZIP_EXTERN bool zip_random(zip_uint8_t* buffer, zip_uint16_t length);
+
+int _zip_read(zip_source_t* src, zip_uint8_t* data, zip_uint64_t length, zip_error_t* error);
+int _zip_read_at_offset(zip_source_t* src, zip_uint64_t offset, unsigned char* b, size_t length, zip_error_t* error);
+zip_uint8_t* _zip_read_data(zip_buffer_t* buffer, zip_source_t* src, size_t length, bool nulp, zip_error_t* error);
+int _zip_read_local_ef(zip_t*, zip_uint64_t);
+zip_string_t* _zip_read_string(zip_buffer_t* buffer, zip_source_t* src, zip_uint16_t lenght, bool nulp, zip_error_t* error);
+int _zip_register_source(zip_t* za, zip_source_t* src);
+
+void _zip_set_open_error(int* zep, const zip_error_t* err, int ze);
+
+zip_int64_t _zip_source_call(zip_source_t* src, void* data, zip_uint64_t length, zip_source_cmd_t command);
+bool _zip_source_eof(zip_source_t*);
+zip_source_t* _zip_source_file_or_p(const char*, FILE*, zip_uint64_t, zip_int64_t, const zip_stat_t*, zip_error_t* error);
+zip_int8_t zip_source_get_compression_flags(zip_source_t*);
+bool _zip_source_had_error(zip_source_t*);
+void _zip_source_invalidate(zip_source_t* src);
+zip_source_t* _zip_source_new(zip_error_t* error);
+int _zip_source_set_source_archive(zip_source_t*, zip_t*);
+zip_source_t* _zip_source_window_new(zip_source_t* src, zip_uint64_t start, zip_uint64_t length, zip_stat_t* st, zip_int8_t compression_flags, zip_t* source_archive, zip_uint64_t source_index, zip_error_t* error);
+zip_source_t* _zip_source_zip_new(zip_t*, zip_t*, zip_uint64_t, zip_flags_t, zip_uint64_t, zip_uint64_t, const char*);
+
+int _zip_stat_merge(zip_stat_t* dst, const zip_stat_t* src, zip_error_t* error);
+int _zip_string_equal(const zip_string_t*, const zip_string_t*);
+void _zip_string_free(zip_string_t*);
+zip_uint32_t _zip_string_crc32(const zip_string_t*);
+const zip_uint8_t* _zip_string_get(zip_string_t*, zip_uint32_t*, zip_flags_t, zip_error_t*);
+zip_uint16_t _zip_string_length(const zip_string_t*);
+zip_string_t* _zip_string_new(const zip_uint8_t*, zip_uint16_t, zip_flags_t, zip_error_t*);
+int _zip_string_write(zip_t* za, const zip_string_t* string);
+bool _zip_winzip_aes_decrypt(zip_winzip_aes_t* ctx, zip_uint8_t* data, zip_uint64_t length);
+bool _zip_winzip_aes_encrypt(zip_winzip_aes_t* ctx, zip_uint8_t* data, zip_uint64_t length);
+bool _zip_winzip_aes_finish(zip_winzip_aes_t* ctx, zip_uint8_t* hmac);
+void _zip_winzip_aes_free(zip_winzip_aes_t* ctx);
+zip_winzip_aes_t* _zip_winzip_aes_new(const zip_uint8_t* password, zip_uint64_t password_length, const zip_uint8_t* salt, zip_uint16_t key_size, zip_uint8_t* password_verify, zip_error_t* error);
+
+int _zip_changed(const zip_t*, zip_uint64_t*);
+const char* _zip_get_name(zip_t*, zip_uint64_t, zip_flags_t, zip_error_t*);
+int _zip_local_header_read(zip_t*, int);
+void* _zip_memdup(const void*, size_t, zip_error_t*);
+zip_int64_t _zip_name_locate(zip_t*, const char*, zip_flags_t, zip_error_t*);
+zip_t* _zip_new(zip_error_t*);
+
+zip_int64_t _zip_file_replace(zip_t*, zip_uint64_t, const char*, zip_source_t*, zip_flags_t);
+int _zip_set_name(zip_t*, zip_uint64_t, const char*, zip_flags_t);
+void _zip_u2d_time(time_t, zip_uint16_t*, zip_uint16_t*);
+int _zip_unchange(zip_t*, zip_uint64_t, int);
+void _zip_unchange_data(zip_entry_t*);
+int _zip_write(zip_t* za, const void* data, zip_uint64_t length);
+
+#endif /* zipint.h */
diff --git a/plugins/TKLiveSync/libzip_iOS.xcframework/ios-armv7_arm64/libzip_iOS.framework/Headers/zipwin32.h b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-armv7_arm64/libzip_iOS.framework/Headers/zipwin32.h
new file mode 100644
index 000000000..cd4362fdf
--- /dev/null
+++ b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-armv7_arm64/libzip_iOS.framework/Headers/zipwin32.h
@@ -0,0 +1,85 @@
+#ifndef _HAD_ZIPWIN32_H
+#define _HAD_ZIPWIN32_H
+
+/*
+ zipwin32.h -- internal declarations for Windows.
+ Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
+
+ This file is part of libzip, a library to manipulate ZIP archives.
+ The authors can be contacted at
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+ 3. The names of the authors may not be used to endorse or promote
+ products derived from this software without specific prior
+ written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS
+ OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
+ DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+ GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+ IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+ IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+/* 0x0501 => Windows XP; needs to be at least this value because of GetFileSizeEx */
+#if !defined(MS_UWP) && !defined(_WIN32_WINNT)
+#define _WIN32_WINNT 0x0501
+#endif
+
+#include
+
+/* context for Win32 source */
+
+struct _zip_source_win32_file_ops;
+
+struct _zip_source_win32_read_file {
+ zip_error_t error; /* last error information */
+ zip_int64_t supports;
+
+ /* operations */
+ struct _zip_source_win32_file_ops* ops;
+
+ /* reading */
+ void* fname; /* name of file to read from - ANSI (char *) or Unicode (wchar_t *) */
+ void* h; /* HANDLE for file to read from */
+ int closep; /* whether to close f on ZIP_CMD_FREE */
+ struct zip_stat st; /* stat information passed in */
+ zip_uint64_t start; /* start offset of data to read */
+ zip_uint64_t end; /* end offset of data to read, 0 for up to EOF */
+ zip_uint64_t current; /* current offset */
+
+ /* writing */
+ void* tmpname; /* name of temp file - ANSI (char *) or Unicode (wchar_t *) */
+ void* hout; /* HANDLE for output file */
+};
+
+typedef struct _zip_source_win32_read_file _zip_source_win32_read_file_t;
+
+/* internal operations for Win32 source */
+
+struct _zip_source_win32_file_ops {
+ void* (*op_strdup)(const void*);
+ void* (*op_open)(_zip_source_win32_read_file_t*);
+ void* (*op_create_temp)(_zip_source_win32_read_file_t*, void**, zip_uint32_t, PSECURITY_ATTRIBUTES);
+ int (*op_rename_temp)(_zip_source_win32_read_file_t*);
+ int (*op_remove)(const void*);
+};
+
+typedef struct _zip_source_win32_file_ops _zip_source_win32_file_ops_t;
+
+zip_source_t* _zip_source_win32_handle_or_name(const void*, void*, zip_uint64_t, zip_int64_t, int, const zip_stat_t*, _zip_source_win32_file_ops_t*, zip_error_t*);
+
+#endif /* zipwin32.h */
diff --git a/plugins/TKLiveSync/libzip_iOS.xcframework/ios-armv7_arm64/libzip_iOS.framework/Info.plist b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-armv7_arm64/libzip_iOS.framework/Info.plist
new file mode 100644
index 000000000..b78ec90e0
Binary files /dev/null and b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-armv7_arm64/libzip_iOS.framework/Info.plist differ
diff --git a/plugins/TKLiveSync/libzip_iOS.xcframework/ios-armv7_arm64/libzip_iOS.framework/libzip_iOS b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-armv7_arm64/libzip_iOS.framework/libzip_iOS
new file mode 100644
index 000000000..1f3e45080
Binary files /dev/null and b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-armv7_arm64/libzip_iOS.framework/libzip_iOS differ
diff --git a/plugins/TKLiveSync/libzip_iOS.xcframework/ios-i386_x86_64-simulator/libzip_iOS.framework/Headers/compat.h b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-i386_x86_64-simulator/libzip_iOS.framework/Headers/compat.h
new file mode 100644
index 000000000..132f2cdaf
--- /dev/null
+++ b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-i386_x86_64-simulator/libzip_iOS.framework/Headers/compat.h
@@ -0,0 +1,206 @@
+#ifndef _HAD_LIBZIP_COMPAT_H
+#define _HAD_LIBZIP_COMPAT_H
+
+/*
+ compat.h -- compatibility defines.
+ Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
+
+ This file is part of libzip, a library to manipulate ZIP archives.
+ The authors can be contacted at
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+ 3. The names of the authors may not be used to endorse or promote
+ products derived from this software without specific prior
+ written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS
+ OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
+ DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+ GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+ IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+ IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include "zipconf.h"
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+/* to have *_MAX definitions for all types when compiling with g++ */
+#define __STDC_LIMIT_MACROS
+
+#ifdef _WIN32
+#ifndef ZIP_EXTERN
+#ifndef ZIP_STATIC
+#define ZIP_EXTERN __declspec(dllexport)
+#endif
+#endif
+/* for dup(), close(), etc. */
+#include
+#endif
+
+#ifdef HAVE_STDBOOL_H
+#include
+#else
+typedef char bool;
+#define true 1
+#define false 0
+#endif
+
+#include
+
+/* at least MinGW does not provide EOPNOTSUPP, see
+ * http://sourceforge.net/p/mingw/bugs/263/
+ */
+#ifndef EOPNOTSUPP
+#define EOPNOTSUPP EINVAL
+#endif
+
+/* at least MinGW does not provide EOVERFLOW, see
+ * http://sourceforge.net/p/mingw/bugs/242/
+ */
+#ifndef EOVERFLOW
+#define EOVERFLOW EFBIG
+#endif
+
+#ifdef _WIN32
+#if defined(HAVE__CHMOD)
+#define chmod _chmod
+#endif
+#if defined(HAVE__CLOSE)
+#define close _close
+#endif
+#if defined(HAVE__DUP)
+#define dup _dup
+#endif
+/* crashes reported when using fdopen instead of _fdopen on Windows/Visual Studio 10/Win64 */
+#if defined(HAVE__FDOPEN)
+#define fdopen _fdopen
+#endif
+#if !defined(HAVE_FILENO) && defined(HAVE__FILENO)
+#define fileno _fileno
+#endif
+/* Windows' open() doesn't understand Unix permissions */
+#if defined(HAVE__OPEN)
+#define open(a, b, c) _open((a), (b))
+#endif
+#if defined(HAVE__SNPRINTF)
+#define snprintf _snprintf
+#endif
+#if defined(HAVE__STRDUP)
+#if !defined(HAVE_STRDUP) || defined(_WIN32)
+#undef strdup
+#define strdup _strdup
+#endif
+#endif
+#if !defined(HAVE__SETMODE) && defined(HAVE_SETMODE)
+#define _setmode setmode
+#endif
+#if !defined(HAVE_STRTOLL) && defined(HAVE__STRTOI64)
+#define strtoll _strtoi64
+#endif
+#if !defined(HAVE_STRTOULL) && defined(HAVE__STRTOUI64)
+#define strtoull _strtoui64
+#endif
+#if defined(HAVE__UMASK)
+#define umask _umask
+#endif
+#if defined(HAVE__UNLINK)
+#define unlink _unlink
+#endif
+#endif
+
+#ifndef HAVE_FSEEKO
+#define fseeko(s, o, w) (fseek((s), (long int)(o), (w)))
+#endif
+
+#ifndef HAVE_FTELLO
+#define ftello(s) ((long)ftell((s)))
+#endif
+
+#ifndef HAVE_MKSTEMP
+int _zip_mkstemp(char*);
+#define mkstemp _zip_mkstemp
+#endif
+
+#if !defined(HAVE_STRCASECMP)
+#if defined(HAVE__STRICMP)
+#define strcasecmp _stricmp
+#elif defined(HAVE_STRICMP)
+#define strcasecmp stricmp
+#endif
+#endif
+
+#ifndef SIZEOF_OFF_T
+#error asdf
+#endif
+
+#if SIZEOF_OFF_T == 8
+#define ZIP_OFF_MAX ZIP_INT64_MAX
+#define ZIP_OFF_MIN ZIP_INT64_MIN
+#elif SIZEOF_OFF_T == 4
+#define ZIP_OFF_MAX ZIP_INT32_MAX
+#define ZIP_OFF_MIN ZIP_INT32_MIN
+#elif SIZEOF_OFF_T == 2
+#define ZIP_OFF_MAX ZIP_INT16_MAX
+#define ZIP_OFF_MIN ZIP_INT16_MIN
+#else
+#error unsupported size of off_t
+#endif
+
+#if defined(HAVE_FTELLO) && defined(HAVE_FSEEKO)
+#define ZIP_FSEEK_MAX ZIP_OFF_MAX
+#define ZIP_FSEEK_MIN ZIP_OFF_MIN
+#else
+#include
+#define ZIP_FSEEK_MAX LONG_MAX
+#define ZIP_FSEEK_MIN LONG_MIN
+#endif
+
+#ifndef SIZE_MAX
+#if SIZEOF_SIZE_T == 8
+#define SIZE_MAX ZIP_INT64_MAX
+#elif SIZEOF_SIZE_T == 4
+#define SIZE_MAX ZIP_INT32_MAX
+#elif SIZEOF_SIZE_T == 2
+#define SIZE_MAX ZIP_INT16_MAX
+#else
+#error unsupported size of size_t
+#endif
+#endif
+
+#ifndef PRId64
+#ifdef _MSC_VER
+#define PRId64 "I64d"
+#else
+#define PRId64 "lld"
+#endif
+#endif
+
+#ifndef PRIu64
+#ifdef _MSC_VER
+#define PRIu64 "I64u"
+#else
+#define PRIu64 "llu"
+#endif
+#endif
+
+#ifndef S_ISDIR
+#define S_ISDIR(mode) (((mode)&S_IFMT) == S_IFDIR)
+#endif
+
+#endif /* compat.h */
diff --git a/plugins/TKLiveSync/libzip_iOS.xcframework/ios-i386_x86_64-simulator/libzip_iOS.framework/Headers/config.h b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-i386_x86_64-simulator/libzip_iOS.framework/Headers/config.h
new file mode 100644
index 000000000..7bc9af833
--- /dev/null
+++ b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-i386_x86_64-simulator/libzip_iOS.framework/Headers/config.h
@@ -0,0 +1,92 @@
+#ifndef HAD_CONFIG_H
+#define HAD_CONFIG_H
+#ifndef _HAD_ZIPCONF_H
+#include "zipconf.h"
+#endif
+/* BEGIN DEFINES */
+/* #undef HAVE___PROGNAME */
+/* #undef HAVE__CHMOD */
+/* #undef HAVE__CLOSE */
+/* #undef HAVE__DUP */
+/* #undef HAVE__FDOPEN */
+/* #undef HAVE__FILENO */
+/* #undef HAVE__OPEN */
+/* #undef HAVE__SETMODE */
+/* #undef HAVE__SNPRINTF */
+/* #undef HAVE__STRDUP */
+/* #undef HAVE__STRICMP */
+/* #undef HAVE__STRTOI64 */
+/* #undef HAVE__STRTOUI64 */
+/* #undef HAVE__UMASK */
+/* #undef HAVE__UNLINK */
+#define HAVE_CLONEFILE
+#define HAVE_COMMONCRYPTO
+#define HAVE_CRYPTO
+/* #undef HAVE_FICLONERANGE */
+#define HAVE_FILENO
+#define HAVE_FSEEKO
+#define HAVE_FTELLO
+#define HAVE_GETPROGNAME
+/* #undef HAVE_GNUTLS */
+#define HAVE_LIBBZ2
+/* #undef HAVE_MBEDTLS */
+#define HAVE_MKSTEMP
+#define HAVE_NULLABLE
+#define HAVE_OPEN
+/* #undef HAVE_OPENSSL */
+#define HAVE_SETMODE
+#define HAVE_SNPRINTF
+#define HAVE_SSIZE_T_LIBZIP
+#define HAVE_STRCASECMP
+#define HAVE_STRDUP
+/* #undef HAVE_STRICMP */
+#define HAVE_STRTOLL
+#define HAVE_STRTOULL
+/* #undef HAVE_STRUCT_TM_TM_ZONE */
+#define HAVE_STDBOOL_H
+#define HAVE_STRINGS_H
+#define HAVE_UNISTD_H
+/* #undef HAVE_WINDOWS_CRYPTO */
+/* #undef __INT8_LIBZIP */
+#define INT8_T_LIBZIP 1
+#define UINT8_T_LIBZIP 1
+/* #undef __INT16_LIBZIP */
+#define INT16_T_LIBZIP 2
+#define UINT16_T_LIBZIP 2
+/* #undef __INT32_LIBZIP */
+#define INT32_T_LIBZIP 4
+#define UINT32_T_LIBZIP 4
+/* #undef __INT64_LIBZIP */
+#define INT64_T_LIBZIP 8
+#define UINT64_T_LIBZIP 8
+#define SHORT_LIBZIP 2
+#define INT_LIBZIP 4
+#define LONG_LIBZIP 8
+#define LONG_LONG_LIBZIP 8
+#define SIZEOF_OFF_T 8
+#define SIZE_T_LIBZIP 8
+#define SSIZE_T_LIBZIP 8
+/* #undef HAVE_DIRENT_H */
+#define HAVE_FTS_H
+/* #undef HAVE_NDIR_H */
+/* #undef HAVE_SYS_DIR_H */
+/* #undef HAVE_SYS_NDIR_H */
+/* #undef WORDS_BIGENDIAN */
+/* #undef HAVE_SHARED */
+/* END DEFINES */
+#define PACKAGE "libzip"
+#define VERSION "1.5.2"
+
+#ifndef HAVE_SSIZE_T_LIBZIP
+#if SIZE_T_LIBZIP == INT_LIBZIP
+typedef int ssize_t;
+#elif SIZE_T_LIBZIP == LONG_LIBZIP
+typedef long ssize_t;
+#elif SIZE_T_LIBZIP == LONG_LONG_LIBZIP
+typedef long long ssize_t;
+#else
+#error no suitable type for ssize_t found
+#endif
+#endif
+
+#endif /* HAD_CONFIG_H */
diff --git a/plugins/TKLiveSync/libzip_iOS.xcframework/ios-i386_x86_64-simulator/libzip_iOS.framework/Headers/zip.h b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-i386_x86_64-simulator/libzip_iOS.framework/Headers/zip.h
new file mode 100644
index 000000000..6d702128e
--- /dev/null
+++ b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-i386_x86_64-simulator/libzip_iOS.framework/Headers/zip.h
@@ -0,0 +1,444 @@
+#ifndef _HAD_ZIP_H
+#define _HAD_ZIP_H
+
+/*
+ zip.h -- exported declarations.
+ Copyright (C) 1999-2019 Dieter Baron and Thomas Klausner
+
+ This file is part of libzip, a library to manipulate ZIP archives.
+ The authors can be contacted at
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+ 3. The names of the authors may not be used to endorse or promote
+ products derived from this software without specific prior
+ written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS
+ OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
+ DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+ GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+ IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+ IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#ifdef __cplusplus
+extern "C" {
+#if 0
+} /* fix autoindent */
+#endif
+#endif
+
+#include "zipconf.h"
+
+#ifndef ZIP_EXTERN
+#ifndef ZIP_STATIC
+#ifdef _WIN32
+#define ZIP_EXTERN __declspec(dllimport)
+#elif defined(__GNUC__) && __GNUC__ >= 4
+#define ZIP_EXTERN __attribute__((visibility("default")))
+#else
+#define ZIP_EXTERN
+#endif
+#else
+#define ZIP_EXTERN
+#endif
+#endif
+
+#include
+#include
+#include
+
+/* flags for zip_open */
+
+#define ZIP_CREATE 1
+#define ZIP_EXCL 2
+#define ZIP_CHECKCONS 4
+#define ZIP_TRUNCATE 8
+#define ZIP_RDONLY 16
+
+/* flags for zip_name_locate, zip_fopen, zip_stat, ... */
+
+#define ZIP_FL_NOCASE 1u /* ignore case on name lookup */
+#define ZIP_FL_NODIR 2u /* ignore directory component */
+#define ZIP_FL_COMPRESSED 4u /* read compressed data */
+#define ZIP_FL_UNCHANGED 8u /* use original data, ignoring changes */
+#define ZIP_FL_RECOMPRESS 16u /* force recompression of data */
+#define ZIP_FL_ENCRYPTED 32u /* read encrypted data (implies ZIP_FL_COMPRESSED) */
+#define ZIP_FL_ENC_GUESS 0u /* guess string encoding (is default) */
+#define ZIP_FL_ENC_RAW 64u /* get unmodified string */
+#define ZIP_FL_ENC_STRICT 128u /* follow specification strictly */
+#define ZIP_FL_LOCAL 256u /* in local header */
+#define ZIP_FL_CENTRAL 512u /* in central directory */
+/* 1024u reserved for internal use */
+#define ZIP_FL_ENC_UTF_8 2048u /* string is UTF-8 encoded */
+#define ZIP_FL_ENC_CP437 4096u /* string is CP437 encoded */
+#define ZIP_FL_OVERWRITE 8192u /* zip_file_add: if file with name exists, overwrite (replace) it */
+
+/* archive global flags flags */
+
+#define ZIP_AFL_RDONLY 2u /* read only -- cannot be cleared */
+
+/* create a new extra field */
+
+#define ZIP_EXTRA_FIELD_ALL ZIP_UINT16_MAX
+#define ZIP_EXTRA_FIELD_NEW ZIP_UINT16_MAX
+
+/* libzip error codes */
+
+#define ZIP_ER_OK 0 /* N No error */
+#define ZIP_ER_MULTIDISK 1 /* N Multi-disk zip archives not supported */
+#define ZIP_ER_RENAME 2 /* S Renaming temporary file failed */
+#define ZIP_ER_CLOSE 3 /* S Closing zip archive failed */
+#define ZIP_ER_SEEK 4 /* S Seek error */
+#define ZIP_ER_READ 5 /* S Read error */
+#define ZIP_ER_WRITE 6 /* S Write error */
+#define ZIP_ER_CRC 7 /* N CRC error */
+#define ZIP_ER_ZIPCLOSED 8 /* N Containing zip archive was closed */
+#define ZIP_ER_NOENT 9 /* N No such file */
+#define ZIP_ER_EXISTS 10 /* N File already exists */
+#define ZIP_ER_OPEN 11 /* S Can't open file */
+#define ZIP_ER_TMPOPEN 12 /* S Failure to create temporary file */
+#define ZIP_ER_ZLIB 13 /* Z Zlib error */
+#define ZIP_ER_MEMORY 14 /* N Malloc failure */
+#define ZIP_ER_CHANGED 15 /* N Entry has been changed */
+#define ZIP_ER_COMPNOTSUPP 16 /* N Compression method not supported */
+#define ZIP_ER_EOF 17 /* N Premature end of file */
+#define ZIP_ER_INVAL 18 /* N Invalid argument */
+#define ZIP_ER_NOZIP 19 /* N Not a zip archive */
+#define ZIP_ER_INTERNAL 20 /* N Internal error */
+#define ZIP_ER_INCONS 21 /* N Zip archive inconsistent */
+#define ZIP_ER_REMOVE 22 /* S Can't remove file */
+#define ZIP_ER_DELETED 23 /* N Entry has been deleted */
+#define ZIP_ER_ENCRNOTSUPP 24 /* N Encryption method not supported */
+#define ZIP_ER_RDONLY 25 /* N Read-only archive */
+#define ZIP_ER_NOPASSWD 26 /* N No password provided */
+#define ZIP_ER_WRONGPASSWD 27 /* N Wrong password provided */
+#define ZIP_ER_OPNOTSUPP 28 /* N Operation not supported */
+#define ZIP_ER_INUSE 29 /* N Resource still in use */
+#define ZIP_ER_TELL 30 /* S Tell error */
+#define ZIP_ER_COMPRESSED_DATA 31 /* N Compressed data invalid */
+
+/* type of system error value */
+
+#define ZIP_ET_NONE 0 /* sys_err unused */
+#define ZIP_ET_SYS 1 /* sys_err is errno */
+#define ZIP_ET_ZLIB 2 /* sys_err is zlib error code */
+
+/* compression methods */
+
+#define ZIP_CM_DEFAULT -1 /* better of deflate or store */
+#define ZIP_CM_STORE 0 /* stored (uncompressed) */
+#define ZIP_CM_SHRINK 1 /* shrunk */
+#define ZIP_CM_REDUCE_1 2 /* reduced with factor 1 */
+#define ZIP_CM_REDUCE_2 3 /* reduced with factor 2 */
+#define ZIP_CM_REDUCE_3 4 /* reduced with factor 3 */
+#define ZIP_CM_REDUCE_4 5 /* reduced with factor 4 */
+#define ZIP_CM_IMPLODE 6 /* imploded */
+/* 7 - Reserved for Tokenizing compression algorithm */
+#define ZIP_CM_DEFLATE 8 /* deflated */
+#define ZIP_CM_DEFLATE64 9 /* deflate64 */
+#define ZIP_CM_PKWARE_IMPLODE 10 /* PKWARE imploding */
+/* 11 - Reserved by PKWARE */
+#define ZIP_CM_BZIP2 12 /* compressed using BZIP2 algorithm */
+/* 13 - Reserved by PKWARE */
+#define ZIP_CM_LZMA 14 /* LZMA (EFS) */
+/* 15-17 - Reserved by PKWARE */
+#define ZIP_CM_TERSE 18 /* compressed using IBM TERSE (new) */
+#define ZIP_CM_LZ77 19 /* IBM LZ77 z Architecture (PFS) */
+#define ZIP_CM_XZ 95 /* XZ compressed data */
+#define ZIP_CM_JPEG 96 /* Compressed Jpeg data */
+#define ZIP_CM_WAVPACK 97 /* WavPack compressed data */
+#define ZIP_CM_PPMD 98 /* PPMd version I, Rev 1 */
+
+/* encryption methods */
+
+#define ZIP_EM_NONE 0 /* not encrypted */
+#define ZIP_EM_TRAD_PKWARE 1 /* traditional PKWARE encryption */
+#if 0 /* Strong Encryption Header not parsed yet */
+#define ZIP_EM_DES 0x6601 /* strong encryption: DES */
+#define ZIP_EM_RC2_OLD 0x6602 /* strong encryption: RC2, version < 5.2 */
+#define ZIP_EM_3DES_168 0x6603
+#define ZIP_EM_3DES_112 0x6609
+#define ZIP_EM_PKZIP_AES_128 0x660e
+#define ZIP_EM_PKZIP_AES_192 0x660f
+#define ZIP_EM_PKZIP_AES_256 0x6610
+#define ZIP_EM_RC2 0x6702 /* strong encryption: RC2, version >= 5.2 */
+#define ZIP_EM_RC4 0x6801
+#endif
+#define ZIP_EM_AES_128 0x0101 /* Winzip AES encryption */
+#define ZIP_EM_AES_192 0x0102
+#define ZIP_EM_AES_256 0x0103
+#define ZIP_EM_UNKNOWN 0xffff /* unknown algorithm */
+
+#define ZIP_OPSYS_DOS 0x00u
+#define ZIP_OPSYS_AMIGA 0x01u
+#define ZIP_OPSYS_OPENVMS 0x02u
+#define ZIP_OPSYS_UNIX 0x03u
+#define ZIP_OPSYS_VM_CMS 0x04u
+#define ZIP_OPSYS_ATARI_ST 0x05u
+#define ZIP_OPSYS_OS_2 0x06u
+#define ZIP_OPSYS_MACINTOSH 0x07u
+#define ZIP_OPSYS_Z_SYSTEM 0x08u
+#define ZIP_OPSYS_CPM 0x09u
+#define ZIP_OPSYS_WINDOWS_NTFS 0x0au
+#define ZIP_OPSYS_MVS 0x0bu
+#define ZIP_OPSYS_VSE 0x0cu
+#define ZIP_OPSYS_ACORN_RISC 0x0du
+#define ZIP_OPSYS_VFAT 0x0eu
+#define ZIP_OPSYS_ALTERNATE_MVS 0x0fu
+#define ZIP_OPSYS_BEOS 0x10u
+#define ZIP_OPSYS_TANDEM 0x11u
+#define ZIP_OPSYS_OS_400 0x12u
+#define ZIP_OPSYS_OS_X 0x13u
+
+#define ZIP_OPSYS_DEFAULT ZIP_OPSYS_UNIX
+
+enum zip_source_cmd {
+ ZIP_SOURCE_OPEN, /* prepare for reading */
+ ZIP_SOURCE_READ, /* read data */
+ ZIP_SOURCE_CLOSE, /* reading is done */
+ ZIP_SOURCE_STAT, /* get meta information */
+ ZIP_SOURCE_ERROR, /* get error information */
+ ZIP_SOURCE_FREE, /* cleanup and free resources */
+ ZIP_SOURCE_SEEK, /* set position for reading */
+ ZIP_SOURCE_TELL, /* get read position */
+ ZIP_SOURCE_BEGIN_WRITE, /* prepare for writing */
+ ZIP_SOURCE_COMMIT_WRITE, /* writing is done */
+ ZIP_SOURCE_ROLLBACK_WRITE, /* discard written changes */
+ ZIP_SOURCE_WRITE, /* write data */
+ ZIP_SOURCE_SEEK_WRITE, /* set position for writing */
+ ZIP_SOURCE_TELL_WRITE, /* get write position */
+ ZIP_SOURCE_SUPPORTS, /* check whether source supports command */
+ ZIP_SOURCE_REMOVE, /* remove file */
+ ZIP_SOURCE_GET_COMPRESSION_FLAGS, /* get compression flags, internal only */
+ ZIP_SOURCE_BEGIN_WRITE_CLONING /* like ZIP_SOURCE_BEGIN_WRITE, but keep part of original file */
+};
+typedef enum zip_source_cmd zip_source_cmd_t;
+
+#define ZIP_SOURCE_MAKE_COMMAND_BITMASK(cmd) (((zip_int64_t)1) << (cmd))
+
+// clang-format off
+
+#define ZIP_SOURCE_SUPPORTS_READABLE (ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_OPEN) \
+ | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_READ) \
+ | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_CLOSE) \
+ | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_STAT) \
+ | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_ERROR) \
+ | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_FREE))
+
+#define ZIP_SOURCE_SUPPORTS_SEEKABLE (ZIP_SOURCE_SUPPORTS_READABLE \
+ | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_SEEK) \
+ | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_TELL) \
+ | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_SUPPORTS))
+
+#define ZIP_SOURCE_SUPPORTS_WRITABLE (ZIP_SOURCE_SUPPORTS_SEEKABLE \
+ | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_BEGIN_WRITE) \
+ | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_COMMIT_WRITE) \
+ | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_ROLLBACK_WRITE) \
+ | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_WRITE) \
+ | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_SEEK_WRITE) \
+ | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_TELL_WRITE) \
+ | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_REMOVE))
+
+// clang-format on
+
+/* for use by sources */
+struct zip_source_args_seek {
+ zip_int64_t offset;
+ int whence;
+};
+
+typedef struct zip_source_args_seek zip_source_args_seek_t;
+#define ZIP_SOURCE_GET_ARGS(type, data, len, error) ((len) < sizeof(type) ? zip_error_set((error), ZIP_ER_INVAL, 0), (type*)NULL : (type*)(data))
+
+/* error information */
+/* use zip_error_*() to access */
+struct zip_error {
+ int zip_err; /* libzip error code (ZIP_ER_*) */
+ int sys_err; /* copy of errno (E*) or zlib error code */
+ char* _Nullable str; /* string representation or NULL */
+};
+
+#define ZIP_STAT_NAME 0x0001u
+#define ZIP_STAT_INDEX 0x0002u
+#define ZIP_STAT_SIZE 0x0004u
+#define ZIP_STAT_COMP_SIZE 0x0008u
+#define ZIP_STAT_MTIME 0x0010u
+#define ZIP_STAT_CRC 0x0020u
+#define ZIP_STAT_COMP_METHOD 0x0040u
+#define ZIP_STAT_ENCRYPTION_METHOD 0x0080u
+#define ZIP_STAT_FLAGS 0x0100u
+
+struct zip_stat {
+ zip_uint64_t valid; /* which fields have valid values */
+ const char* _Nullable name; /* name of the file */
+ zip_uint64_t index; /* index within archive */
+ zip_uint64_t size; /* size of file (uncompressed) */
+ zip_uint64_t comp_size; /* size of file (compressed) */
+ time_t mtime; /* modification time */
+ zip_uint32_t crc; /* crc of file data */
+ zip_uint16_t comp_method; /* compression method used */
+ zip_uint16_t encryption_method; /* encryption method used */
+ zip_uint32_t flags; /* reserved for future use */
+};
+
+struct zip_buffer_fragment {
+ zip_uint8_t* _Nonnull data;
+ zip_uint64_t length;
+};
+
+struct zip;
+struct zip_file;
+struct zip_source;
+
+typedef struct zip zip_t;
+typedef struct zip_error zip_error_t;
+typedef struct zip_file zip_file_t;
+typedef struct zip_source zip_source_t;
+typedef struct zip_stat zip_stat_t;
+typedef struct zip_buffer_fragment zip_buffer_fragment_t;
+
+typedef zip_uint32_t zip_flags_t;
+
+typedef zip_int64_t (*zip_source_callback)(void* _Nullable, void* _Nullable, zip_uint64_t, zip_source_cmd_t);
+typedef void (*zip_progress_callback)(zip_t* _Nonnull, double, void* _Nullable);
+
+#ifndef ZIP_DISABLE_DEPRECATED
+typedef void (*zip_progress_callback_t)(double);
+ZIP_EXTERN void zip_register_progress_callback(zip_t* _Nonnull, zip_progress_callback_t _Nullable); /* use zip_register_progress_callback_with_state */
+
+ZIP_EXTERN zip_int64_t zip_add(zip_t* _Nonnull, const char* _Nonnull, zip_source_t* _Nonnull); /* use zip_file_add */
+ZIP_EXTERN zip_int64_t zip_add_dir(zip_t* _Nonnull, const char* _Nonnull); /* use zip_dir_add */
+ZIP_EXTERN const char* _Nullable zip_get_file_comment(zip_t* _Nonnull, zip_uint64_t, int* _Nullable, int); /* use zip_file_get_comment */
+ZIP_EXTERN int zip_get_num_files(zip_t* _Nonnull); /* use zip_get_num_entries instead */
+ZIP_EXTERN int zip_rename(zip_t* _Nonnull, zip_uint64_t, const char* _Nonnull); /* use zip_file_rename */
+ZIP_EXTERN int zip_replace(zip_t* _Nonnull, zip_uint64_t, zip_source_t* _Nonnull); /* use zip_file_replace */
+ZIP_EXTERN int zip_set_file_comment(zip_t* _Nonnull, zip_uint64_t, const char* _Nullable, int); /* use zip_file_set_comment */
+ZIP_EXTERN int zip_error_get_sys_type(int); /* use zip_error_system_type */
+ZIP_EXTERN void zip_error_get(zip_t* _Nonnull, int* _Nullable, int* _Nullable); /* use zip_get_error, zip_error_code_zip / zip_error_code_system */
+ZIP_EXTERN int zip_error_to_str(char* _Nonnull, zip_uint64_t, int, int); /* use zip_error_init_with_code / zip_error_strerror */
+ZIP_EXTERN void zip_file_error_get(zip_file_t* _Nonnull, int* _Nullable, int* _Nullable); /* use zip_file_get_error, zip_error_code_zip / zip_error_code_system */
+#endif
+
+ZIP_EXTERN int zip_close(zip_t* _Nonnull);
+ZIP_EXTERN int zip_delete(zip_t* _Nonnull, zip_uint64_t);
+ZIP_EXTERN zip_int64_t zip_dir_add(zip_t* _Nonnull, const char* _Nonnull, zip_flags_t);
+ZIP_EXTERN void zip_discard(zip_t* _Nonnull);
+
+ZIP_EXTERN zip_error_t* _Nonnull zip_get_error(zip_t* _Nonnull);
+ZIP_EXTERN void zip_error_clear(zip_t* _Nonnull);
+ZIP_EXTERN int zip_error_code_zip(const zip_error_t* _Nonnull);
+ZIP_EXTERN int zip_error_code_system(const zip_error_t* _Nonnull);
+ZIP_EXTERN void zip_error_fini(zip_error_t* _Nonnull);
+ZIP_EXTERN void zip_error_init(zip_error_t* _Nonnull);
+ZIP_EXTERN void zip_error_init_with_code(zip_error_t* _Nonnull, int);
+ZIP_EXTERN void zip_error_set(zip_error_t* _Nullable, int, int);
+ZIP_EXTERN const char* _Nonnull zip_error_strerror(zip_error_t* _Nonnull);
+ZIP_EXTERN int zip_error_system_type(const zip_error_t* _Nonnull);
+ZIP_EXTERN zip_int64_t zip_error_to_data(const zip_error_t* _Nonnull, void* _Nonnull, zip_uint64_t);
+
+ZIP_EXTERN int zip_fclose(zip_file_t* _Nonnull);
+ZIP_EXTERN zip_t* _Nullable zip_fdopen(int, int, int* _Nullable);
+ZIP_EXTERN zip_int64_t zip_file_add(zip_t* _Nonnull, const char* _Nonnull, zip_source_t* _Nonnull, zip_flags_t);
+ZIP_EXTERN void zip_file_error_clear(zip_file_t* _Nonnull);
+ZIP_EXTERN int zip_file_extra_field_delete(zip_t* _Nonnull, zip_uint64_t, zip_uint16_t, zip_flags_t);
+ZIP_EXTERN int zip_file_extra_field_delete_by_id(zip_t* _Nonnull, zip_uint64_t, zip_uint16_t, zip_uint16_t, zip_flags_t);
+ZIP_EXTERN int zip_file_extra_field_set(zip_t* _Nonnull, zip_uint64_t, zip_uint16_t, zip_uint16_t, const zip_uint8_t* _Nullable, zip_uint16_t, zip_flags_t);
+ZIP_EXTERN zip_int16_t zip_file_extra_fields_count(zip_t* _Nonnull, zip_uint64_t, zip_flags_t);
+ZIP_EXTERN zip_int16_t zip_file_extra_fields_count_by_id(zip_t* _Nonnull, zip_uint64_t, zip_uint16_t, zip_flags_t);
+ZIP_EXTERN const zip_uint8_t* _Nullable zip_file_extra_field_get(zip_t* _Nonnull, zip_uint64_t, zip_uint16_t, zip_uint16_t* _Nullable, zip_uint16_t* _Nullable, zip_flags_t);
+ZIP_EXTERN const zip_uint8_t* _Nullable zip_file_extra_field_get_by_id(zip_t* _Nonnull, zip_uint64_t, zip_uint16_t, zip_uint16_t, zip_uint16_t* _Nullable, zip_flags_t);
+ZIP_EXTERN const char* _Nullable zip_file_get_comment(zip_t* _Nonnull, zip_uint64_t, zip_uint32_t* _Nullable, zip_flags_t);
+ZIP_EXTERN zip_error_t* _Nonnull zip_file_get_error(zip_file_t* _Nonnull);
+ZIP_EXTERN int zip_file_get_external_attributes(zip_t* _Nonnull, zip_uint64_t, zip_flags_t, zip_uint8_t* _Nullable, zip_uint32_t* _Nullable);
+ZIP_EXTERN int zip_file_rename(zip_t* _Nonnull, zip_uint64_t, const char* _Nonnull, zip_flags_t);
+ZIP_EXTERN int zip_file_replace(zip_t* _Nonnull, zip_uint64_t, zip_source_t* _Nonnull, zip_flags_t);
+ZIP_EXTERN int zip_file_set_comment(zip_t* _Nonnull, zip_uint64_t, const char* _Nullable, zip_uint16_t, zip_flags_t);
+ZIP_EXTERN int zip_file_set_encryption(zip_t* _Nonnull, zip_uint64_t, zip_uint16_t, const char* _Nullable);
+ZIP_EXTERN int zip_file_set_external_attributes(zip_t* _Nonnull, zip_uint64_t, zip_flags_t, zip_uint8_t, zip_uint32_t);
+ZIP_EXTERN int zip_file_set_mtime(zip_t* _Nonnull, zip_uint64_t, time_t, zip_flags_t);
+ZIP_EXTERN const char* _Nonnull zip_file_strerror(zip_file_t* _Nonnull);
+ZIP_EXTERN zip_file_t* _Nullable zip_fopen(zip_t* _Nonnull, const char* _Nonnull, zip_flags_t);
+ZIP_EXTERN zip_file_t* _Nullable zip_fopen_encrypted(zip_t* _Nonnull, const char* _Nonnull, zip_flags_t, const char* _Nullable);
+ZIP_EXTERN zip_file_t* _Nullable zip_fopen_index(zip_t* _Nonnull, zip_uint64_t, zip_flags_t);
+ZIP_EXTERN zip_file_t* _Nullable zip_fopen_index_encrypted(zip_t* _Nonnull, zip_uint64_t, zip_flags_t, const char* _Nullable);
+ZIP_EXTERN zip_int64_t zip_fread(zip_file_t* _Nonnull, void* _Nonnull, zip_uint64_t);
+ZIP_EXTERN zip_int8_t zip_fseek(zip_file_t* _Nonnull, zip_int64_t, int);
+ZIP_EXTERN zip_int64_t zip_ftell(zip_file_t* _Nonnull);
+ZIP_EXTERN const char* _Nullable zip_get_archive_comment(zip_t* _Nonnull, int* _Nullable, zip_flags_t);
+ZIP_EXTERN int zip_get_archive_flag(zip_t* _Nonnull, zip_flags_t, zip_flags_t);
+ZIP_EXTERN const char* _Nullable zip_get_name(zip_t* _Nonnull, zip_uint64_t, zip_flags_t);
+ZIP_EXTERN zip_int64_t zip_get_num_entries(zip_t* _Nonnull, zip_flags_t);
+ZIP_EXTERN const char* _Nonnull zip_libzip_version(void);
+ZIP_EXTERN zip_int64_t zip_name_locate(zip_t* _Nonnull, const char* _Nonnull, zip_flags_t);
+ZIP_EXTERN zip_t* _Nullable zip_open(const char* _Nonnull, int, int* _Nullable);
+ZIP_EXTERN zip_t* _Nullable zip_open_from_source(zip_source_t* _Nonnull, int, zip_error_t* _Nullable);
+ZIP_EXTERN int zip_register_progress_callback_with_state(zip_t* _Nonnull, double, zip_progress_callback _Nullable, void (*_Nullable)(void* _Nullable), void* _Nullable);
+ZIP_EXTERN int zip_set_archive_comment(zip_t* _Nonnull, const char* _Nullable, zip_uint16_t);
+ZIP_EXTERN int zip_set_archive_flag(zip_t* _Nonnull, zip_flags_t, int);
+ZIP_EXTERN int zip_set_default_password(zip_t* _Nonnull, const char* _Nullable);
+ZIP_EXTERN int zip_set_file_compression(zip_t* _Nonnull, zip_uint64_t, zip_int32_t, zip_uint32_t);
+ZIP_EXTERN int zip_source_begin_write(zip_source_t* _Nonnull);
+ZIP_EXTERN int zip_source_begin_write_cloning(zip_source_t* _Nonnull, zip_uint64_t);
+ZIP_EXTERN zip_source_t* _Nullable zip_source_buffer(zip_t* _Nonnull, const void* _Nullable, zip_uint64_t, int);
+ZIP_EXTERN zip_source_t* _Nullable zip_source_buffer_create(const void* _Nullable, zip_uint64_t, int, zip_error_t* _Nullable);
+ZIP_EXTERN zip_source_t* _Nullable zip_source_buffer_fragment(zip_t* _Nonnull, const zip_buffer_fragment_t* _Nonnull, zip_uint64_t, int);
+ZIP_EXTERN zip_source_t* _Nullable zip_source_buffer_fragment_create(const zip_buffer_fragment_t* _Nonnull, zip_uint64_t, int, zip_error_t* _Nullable);
+ZIP_EXTERN int zip_source_close(zip_source_t* _Nonnull);
+ZIP_EXTERN int zip_source_commit_write(zip_source_t* _Nonnull);
+ZIP_EXTERN zip_error_t* _Nonnull zip_source_error(zip_source_t* _Nonnull);
+ZIP_EXTERN zip_source_t* _Nullable zip_source_file(zip_t* _Nonnull, const char* _Nonnull, zip_uint64_t, zip_int64_t);
+ZIP_EXTERN zip_source_t* _Nullable zip_source_file_create(const char* _Nonnull, zip_uint64_t, zip_int64_t, zip_error_t* _Nullable);
+ZIP_EXTERN zip_source_t* _Nullable zip_source_filep(zip_t* _Nonnull, FILE* _Nonnull, zip_uint64_t, zip_int64_t);
+ZIP_EXTERN zip_source_t* _Nullable zip_source_filep_create(FILE* _Nonnull, zip_uint64_t, zip_int64_t, zip_error_t* _Nullable);
+ZIP_EXTERN void zip_source_free(zip_source_t* _Nullable);
+ZIP_EXTERN zip_source_t* _Nullable zip_source_function(zip_t* _Nonnull, zip_source_callback _Nonnull, void* _Nullable);
+ZIP_EXTERN zip_source_t* _Nullable zip_source_function_create(zip_source_callback _Nonnull, void* _Nullable, zip_error_t* _Nullable);
+ZIP_EXTERN int zip_source_is_deleted(zip_source_t* _Nonnull);
+ZIP_EXTERN void zip_source_keep(zip_source_t* _Nonnull);
+ZIP_EXTERN zip_int64_t zip_source_make_command_bitmap(zip_source_cmd_t, ...);
+ZIP_EXTERN int zip_source_open(zip_source_t* _Nonnull);
+ZIP_EXTERN zip_int64_t zip_source_read(zip_source_t* _Nonnull, void* _Nonnull, zip_uint64_t);
+ZIP_EXTERN void zip_source_rollback_write(zip_source_t* _Nonnull);
+ZIP_EXTERN int zip_source_seek(zip_source_t* _Nonnull, zip_int64_t, int);
+ZIP_EXTERN zip_int64_t zip_source_seek_compute_offset(zip_uint64_t, zip_uint64_t, void* _Nonnull, zip_uint64_t, zip_error_t* _Nullable);
+ZIP_EXTERN int zip_source_seek_write(zip_source_t* _Nonnull, zip_int64_t, int);
+ZIP_EXTERN int zip_source_stat(zip_source_t* _Nonnull, zip_stat_t* _Nonnull);
+ZIP_EXTERN zip_int64_t zip_source_tell(zip_source_t* _Nonnull);
+ZIP_EXTERN zip_int64_t zip_source_tell_write(zip_source_t* _Nonnull);
+#ifdef _WIN32
+ZIP_EXTERN zip_source_t* zip_source_win32a(zip_t*, const char*, zip_uint64_t, zip_int64_t);
+ZIP_EXTERN zip_source_t* zip_source_win32a_create(const char*, zip_uint64_t, zip_int64_t, zip_error_t*);
+ZIP_EXTERN zip_source_t* zip_source_win32handle(zip_t*, void*, zip_uint64_t, zip_int64_t);
+ZIP_EXTERN zip_source_t* zip_source_win32handle_create(void*, zip_uint64_t, zip_int64_t, zip_error_t*);
+ZIP_EXTERN zip_source_t* zip_source_win32w(zip_t*, const wchar_t*, zip_uint64_t, zip_int64_t);
+ZIP_EXTERN zip_source_t* zip_source_win32w_create(const wchar_t*, zip_uint64_t, zip_int64_t, zip_error_t*);
+#endif
+ZIP_EXTERN zip_int64_t zip_source_write(zip_source_t* _Nonnull, const void* _Nullable, zip_uint64_t);
+ZIP_EXTERN zip_source_t* _Nullable zip_source_zip(zip_t* _Nonnull, zip_t* _Nonnull, zip_uint64_t, zip_flags_t, zip_uint64_t, zip_int64_t);
+ZIP_EXTERN int zip_stat(zip_t* _Nonnull, const char* _Nonnull, zip_flags_t, zip_stat_t* _Nonnull);
+ZIP_EXTERN int zip_stat_index(zip_t* _Nonnull, zip_uint64_t, zip_flags_t, zip_stat_t* _Nonnull);
+ZIP_EXTERN void zip_stat_init(zip_stat_t* _Nonnull);
+ZIP_EXTERN const char* _Nonnull zip_strerror(zip_t* _Nonnull);
+ZIP_EXTERN int zip_unchange(zip_t* _Nonnull, zip_uint64_t);
+ZIP_EXTERN int zip_unchange_all(zip_t* _Nonnull);
+ZIP_EXTERN int zip_unchange_archive(zip_t* _Nonnull);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _HAD_ZIP_H */
diff --git a/plugins/TKLiveSync/libzip_iOS.xcframework/ios-i386_x86_64-simulator/libzip_iOS.framework/Headers/zip_crypto.h b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-i386_x86_64-simulator/libzip_iOS.framework/Headers/zip_crypto.h
new file mode 100644
index 000000000..585de211c
--- /dev/null
+++ b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-i386_x86_64-simulator/libzip_iOS.framework/Headers/zip_crypto.h
@@ -0,0 +1,54 @@
+/*
+ zip_crypto.h -- crypto definitions
+ Copyright (C) 2017-2018 Dieter Baron and Thomas Klausner
+
+ This file is part of libzip, a library to manipulate ZIP archives.
+ The authors can be contacted at
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+ 3. The names of the authors may not be used to endorse or promote
+ products derived from this software without specific prior
+ written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS
+ OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
+ DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+ GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+ IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+ IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#ifndef HAD_ZIP_CRYPTO_H
+#define HAD_ZIP_CRYPTO_H
+
+#define ZIP_CRYPTO_SHA1_LENGTH 20
+#define ZIP_CRYPTO_AES_BLOCK_LENGTH 16
+
+#if defined(HAVE_WINDOWS_CRYPTO)
+#include "zip_crypto_win.h"
+#elif defined(HAVE_COMMONCRYPTO)
+#include "zip_crypto_commoncrypto.h"
+#elif defined(HAVE_GNUTLS)
+#include "zip_crypto_gnutls.h"
+#elif defined(HAVE_OPENSSL)
+#include "zip_crypto_openssl.h"
+#elif defined(HAVE_MBEDTLS)
+#include "zip_crypto_mbedtls.h"
+#else
+#error "no crypto backend found"
+#endif
+
+#endif /* HAD_ZIP_CRYPTO_H */
diff --git a/plugins/TKLiveSync/libzip_iOS.xcframework/ios-i386_x86_64-simulator/libzip_iOS.framework/Headers/zip_crypto_commoncrypto.h b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-i386_x86_64-simulator/libzip_iOS.framework/Headers/zip_crypto_commoncrypto.h
new file mode 100644
index 000000000..aa42d3724
--- /dev/null
+++ b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-i386_x86_64-simulator/libzip_iOS.framework/Headers/zip_crypto_commoncrypto.h
@@ -0,0 +1,53 @@
+/*
+ zip_crypto_commoncrypto.h -- definitions for CommonCrypto wrapper.
+ Copyright (C) 2018 Dieter Baron and Thomas Klausner
+
+ This file is part of libzip, a library to manipulate ZIP archives.
+ The authors can be contacted at
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+ 3. The names of the authors may not be used to endorse or promote
+ products derived from this software without specific prior
+ written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS
+ OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
+ DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+ GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+ IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+ IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#ifndef HAD_ZIP_CRYPTO_COMMONCRYPTO_H
+#define HAD_ZIP_CRYPTO_COMMONCRYPTO_H
+
+#include
+
+#define _zip_crypto_aes_t struct _CCCryptor
+#define _zip_crypto_hmac_t CCHmacContext
+
+void _zip_crypto_aes_free(_zip_crypto_aes_t* aes);
+bool _zip_crypto_aes_encrypt_block(_zip_crypto_aes_t* aes, const zip_uint8_t* in, zip_uint8_t* out);
+_zip_crypto_aes_t* _zip_crypto_aes_new(const zip_uint8_t* key, zip_uint16_t key_size, zip_error_t* error);
+
+#define _zip_crypto_hmac(hmac, data, length) (CCHmacUpdate((hmac), (data), (length)), true)
+void _zip_crypto_hmac_free(_zip_crypto_hmac_t* hmac);
+_zip_crypto_hmac_t* _zip_crypto_hmac_new(const zip_uint8_t* secret, zip_uint64_t secret_length, zip_error_t* error);
+#define _zip_crypto_hmac_output(hmac, data) (CCHmacFinal((hmac), (data)), true)
+
+#define _zip_crypto_pbkdf2(key, key_length, salt, salt_length, iterations, output, output_length) (CCKeyDerivationPBKDF(kCCPBKDF2, (const char*)(key), (key_length), (salt), (salt_length), kCCPRFHmacAlgSHA1, (iterations), (output), (output_length)) == kCCSuccess)
+
+#endif /* HAD_ZIP_CRYPTO_COMMONCRYPTO_H */
diff --git a/plugins/TKLiveSync/libzip_iOS.xcframework/ios-i386_x86_64-simulator/libzip_iOS.framework/Headers/zip_crypto_gnutls.h b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-i386_x86_64-simulator/libzip_iOS.framework/Headers/zip_crypto_gnutls.h
new file mode 100644
index 000000000..01d854f72
--- /dev/null
+++ b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-i386_x86_64-simulator/libzip_iOS.framework/Headers/zip_crypto_gnutls.h
@@ -0,0 +1,65 @@
+/*
+ zip_crypto_gnutls.h -- definitions for GnuTLS wrapper.
+ Copyright (C) 2018 Dieter Baron and Thomas Klausner
+
+ This file is part of libzip, a library to manipulate ZIP archives.
+ The authors can be contacted at
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+ 3. The names of the authors may not be used to endorse or promote
+ products derived from this software without specific prior
+ written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS
+ OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
+ DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+ GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+ IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+ IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#ifndef HAD_ZIP_CRYPTO_GNUTLS_H
+#define HAD_ZIP_CRYPTO_GNUTLS_H
+
+#include
+#include
+
+#include
+#include
+
+typedef struct {
+ union {
+ struct aes128_ctx ctx_128;
+ struct aes192_ctx ctx_192;
+ struct aes256_ctx ctx_256;
+ } ctx;
+ zip_uint16_t key_size;
+} _zip_crypto_aes_t;
+
+#define _zip_crypto_hmac_t gnutls_hmac_hd_t
+
+void _zip_crypto_aes_free(_zip_crypto_aes_t* aes);
+bool _zip_crypto_aes_encrypt_block(_zip_crypto_aes_t* aes, const zip_uint8_t* in, zip_uint8_t* out);
+_zip_crypto_aes_t* _zip_crypto_aes_new(const zip_uint8_t* key, zip_uint16_t key_size, zip_error_t* error);
+
+#define _zip_crypto_hmac(hmac, data, length) (gnutls_hmac(*(hmac), (data), (length)) == 0)
+void _zip_crypto_hmac_free(_zip_crypto_hmac_t* hmac);
+_zip_crypto_hmac_t* _zip_crypto_hmac_new(const zip_uint8_t* secret, zip_uint64_t secret_length, zip_error_t* error);
+#define _zip_crypto_hmac_output(hmac, data) (gnutls_hmac_output(*(hmac), (data)), true)
+
+#define _zip_crypto_pbkdf2(key, key_length, salt, salt_length, iterations, output, output_length) (pbkdf2_hmac_sha1((key_length), (key), (iterations), (salt_length), (salt), (output_length), (output)), true)
+
+#endif /* HAD_ZIP_CRYPTO_GNUTLS_H */
diff --git a/plugins/TKLiveSync/libzip_iOS.xcframework/ios-i386_x86_64-simulator/libzip_iOS.framework/Headers/zip_crypto_mbedtls.h b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-i386_x86_64-simulator/libzip_iOS.framework/Headers/zip_crypto_mbedtls.h
new file mode 100644
index 000000000..259f174db
--- /dev/null
+++ b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-i386_x86_64-simulator/libzip_iOS.framework/Headers/zip_crypto_mbedtls.h
@@ -0,0 +1,54 @@
+/*
+ zip_crypto_mbedtls.h -- definitions for mbedtls wrapper
+ Copyright (C) 2018 Dieter Baron and Thomas Klausner
+
+ This file is part of libzip, a library to manipulate ZIP archives.
+ The authors can be contacted at
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+ 3. The names of the authors may not be used to endorse or promote
+ products derived from this software without specific prior
+ written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS
+ OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
+ DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+ GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+ IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+ IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#ifndef HAD_ZIP_CRYPTO_MBEDTLS_H
+#define HAD_ZIP_CRYPTO_MBEDTLS_H
+
+#include
+#include
+
+#define _zip_crypto_aes_t mbedtls_aes_context
+#define _zip_crypto_hmac_t mbedtls_md_context_t
+
+_zip_crypto_aes_t* _zip_crypto_aes_new(const zip_uint8_t* key, zip_uint16_t key_size, zip_error_t* error);
+#define _zip_crypto_aes_encrypt_block(aes, in, out) (mbedtls_aes_crypt_ecb((aes), MBEDTLS_AES_ENCRYPT, (in), (out)) == 0)
+void _zip_crypto_aes_free(_zip_crypto_aes_t* aes);
+
+_zip_crypto_hmac_t* _zip_crypto_hmac_new(const zip_uint8_t* secret, zip_uint64_t secret_length, zip_error_t* error);
+#define _zip_crypto_hmac(hmac, data, length) (mbedtls_md_hmac_update((hmac), (data), (length)) == 0)
+#define _zip_crypto_hmac_output(hmac, data) (mbedtls_md_hmac_finish((hmac), (data)) == 0)
+void _zip_crypto_hmac_free(_zip_crypto_hmac_t* hmac);
+
+bool _zip_crypto_pbkdf2(const zip_uint8_t* key, zip_uint64_t key_length, const zip_uint8_t* salt, zip_uint16_t salt_length, int iterations, zip_uint8_t* output, zip_uint64_t output_length);
+
+#endif /* HAD_ZIP_CRYPTO_MBEDTLS_H */
diff --git a/plugins/TKLiveSync/libzip_iOS.xcframework/ios-i386_x86_64-simulator/libzip_iOS.framework/Headers/zip_crypto_openssl.h b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-i386_x86_64-simulator/libzip_iOS.framework/Headers/zip_crypto_openssl.h
new file mode 100644
index 000000000..742efb40f
--- /dev/null
+++ b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-i386_x86_64-simulator/libzip_iOS.framework/Headers/zip_crypto_openssl.h
@@ -0,0 +1,54 @@
+/*
+ zip_crypto_openssl.h -- definitions for OpenSSL wrapper.
+ Copyright (C) 2018 Dieter Baron and Thomas Klausner
+
+ This file is part of libzip, a library to manipulate ZIP archives.
+ The authors can be contacted at
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+ 3. The names of the authors may not be used to endorse or promote
+ products derived from this software without specific prior
+ written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS
+ OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
+ DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+ GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+ IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+ IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#ifndef HAD_ZIP_CRYPTO_OPENSSL_H
+#define HAD_ZIP_CRYPTO_OPENSSL_H
+
+#include
+#include
+
+#define _zip_crypto_aes_t AES_KEY
+#define _zip_crypto_hmac_t HMAC_CTX
+
+void _zip_crypto_aes_free(_zip_crypto_aes_t* aes);
+#define _zip_crypto_aes_encrypt_block(aes, in, out) (AES_encrypt((in), (out), (aes)), true)
+_zip_crypto_aes_t* _zip_crypto_aes_new(const zip_uint8_t* key, zip_uint16_t key_size, zip_error_t* error);
+
+#define _zip_crypto_hmac(hmac, data, length) (HMAC_Update((hmac), (data), (length)) == 1)
+void _zip_crypto_hmac_free(_zip_crypto_hmac_t* hmac);
+_zip_crypto_hmac_t* _zip_crypto_hmac_new(const zip_uint8_t* secret, zip_uint64_t secret_length, zip_error_t* error);
+bool _zip_crypto_hmac_output(_zip_crypto_hmac_t* hmac, zip_uint8_t* data);
+
+#define _zip_crypto_pbkdf2(key, key_length, salt, salt_length, iterations, output, output_length) (PKCS5_PBKDF2_HMAC_SHA1((const char*)(key), (key_length), (salt), (salt_length), (iterations), (output_length), (output)))
+
+#endif /* HAD_ZIP_CRYPTO_OPENSSL_H */
diff --git a/plugins/TKLiveSync/libzip_iOS.xcframework/ios-i386_x86_64-simulator/libzip_iOS.framework/Headers/zip_crypto_win.h b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-i386_x86_64-simulator/libzip_iOS.framework/Headers/zip_crypto_win.h
new file mode 100644
index 000000000..f7635e09b
--- /dev/null
+++ b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-i386_x86_64-simulator/libzip_iOS.framework/Headers/zip_crypto_win.h
@@ -0,0 +1,51 @@
+/*
+ zip_crypto_win.h -- Windows Crypto API wrapper.
+ Copyright (C) 2018 Dieter Baron and Thomas Klausner
+
+ This file is part of libzip, a library to manipulate ZIP archives.
+ The authors can be contacted at
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+ 3. The names of the authors may not be used to endorse or promote
+ products derived from this software without specific prior
+ written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS
+ OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
+ DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+ GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+ IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+ IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#ifndef HAD_ZIP_CRYPTO_WIN_H
+#define HAD_ZIP_CRYPTO_WIN_H
+
+typedef struct _zip_crypto_aes_s _zip_crypto_aes_t;
+typedef struct _zip_crypto_hmac_s _zip_crypto_hmac_t;
+
+void _zip_crypto_aes_free(_zip_crypto_aes_t* aes);
+_zip_crypto_aes_t* _zip_crypto_aes_new(const zip_uint8_t* key, zip_uint16_t key_size, zip_error_t* error);
+bool _zip_crypto_aes_encrypt_block(_zip_crypto_aes_t* aes, const zip_uint8_t* in, zip_uint8_t* out);
+
+bool _zip_crypto_pbkdf2(const zip_uint8_t* key, zip_uint64_t key_length, const zip_uint8_t* salt, zip_uint16_t salt_length, zip_uint16_t iterations, zip_uint8_t* output, zip_uint16_t output_length);
+
+_zip_crypto_hmac_t* _zip_crypto_hmac_new(const zip_uint8_t* secret, zip_uint64_t secret_length, zip_error_t* error);
+void _zip_crypto_hmac_free(_zip_crypto_hmac_t* hmac);
+bool _zip_crypto_hmac(_zip_crypto_hmac_t* hmac, zip_uint8_t* data, zip_uint64_t length);
+bool _zip_crypto_hmac_output(_zip_crypto_hmac_t* hmac, zip_uint8_t* data);
+
+#endif /* HAD_ZIP_CRYPTO_WIN_H */
diff --git a/plugins/TKLiveSync/libzip_iOS.xcframework/ios-i386_x86_64-simulator/libzip_iOS.framework/Headers/zipconf.h b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-i386_x86_64-simulator/libzip_iOS.framework/Headers/zipconf.h
new file mode 100644
index 000000000..4585bf329
--- /dev/null
+++ b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-i386_x86_64-simulator/libzip_iOS.framework/Headers/zipconf.h
@@ -0,0 +1,45 @@
+#ifndef _HAD_ZIPCONF_H
+#define _HAD_ZIPCONF_H
+
+/*
+ zipconf.h -- platform specific include file
+
+ This file was generated automatically by CMake
+ based on ../cmake-zipconf.h.in.
+ */
+
+#define LIBZIP_VERSION "1.5.2"
+#define LIBZIP_VERSION_MAJOR 1
+#define LIBZIP_VERSION_MINOR 5
+#define LIBZIP_VERSION_MICRO 2
+
+#define ZIP_STATIC
+
+#include
+
+typedef int8_t zip_int8_t;
+typedef uint8_t zip_uint8_t;
+typedef int16_t zip_int16_t;
+typedef uint16_t zip_uint16_t;
+typedef int32_t zip_int32_t;
+typedef uint32_t zip_uint32_t;
+typedef int64_t zip_int64_t;
+typedef uint64_t zip_uint64_t;
+
+#define ZIP_INT8_MIN (-ZIP_INT8_MAX - 1)
+#define ZIP_INT8_MAX 0x7f
+#define ZIP_UINT8_MAX 0xff
+
+#define ZIP_INT16_MIN (-ZIP_INT16_MAX - 1)
+#define ZIP_INT16_MAX 0x7fff
+#define ZIP_UINT16_MAX 0xffff
+
+#define ZIP_INT32_MIN (-ZIP_INT32_MAX - 1L)
+#define ZIP_INT32_MAX 0x7fffffffL
+#define ZIP_UINT32_MAX 0xffffffffLU
+
+#define ZIP_INT64_MIN (-ZIP_INT64_MAX - 1LL)
+#define ZIP_INT64_MAX 0x7fffffffffffffffLL
+#define ZIP_UINT64_MAX 0xffffffffffffffffULL
+
+#endif /* zipconf.h */
diff --git a/plugins/TKLiveSync/libzip_iOS.xcframework/ios-i386_x86_64-simulator/libzip_iOS.framework/Headers/zipint.h b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-i386_x86_64-simulator/libzip_iOS.framework/Headers/zipint.h
new file mode 100644
index 000000000..48609d972
--- /dev/null
+++ b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-i386_x86_64-simulator/libzip_iOS.framework/Headers/zipint.h
@@ -0,0 +1,579 @@
+#ifndef _HAD_ZIPINT_H
+#define _HAD_ZIPINT_H
+
+/*
+ zipint.h -- internal declarations.
+ Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
+
+ This file is part of libzip, a library to manipulate ZIP archives.
+ The authors can be contacted at
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+ 3. The names of the authors may not be used to endorse or promote
+ products derived from this software without specific prior
+ written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS
+ OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
+ DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+ GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+ IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+ IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "compat.h"
+
+#ifdef ZIP_ALLOCATE_BUFFER
+#include
+#endif
+
+#include
+
+#ifndef _ZIP_COMPILING_DEPRECATED
+#define ZIP_DISABLE_DEPRECATED
+#endif
+
+#include "zip.h"
+
+#define CENTRAL_MAGIC "PK\1\2"
+#define LOCAL_MAGIC "PK\3\4"
+#define EOCD_MAGIC "PK\5\6"
+#define DATADES_MAGIC "PK\7\10"
+#define EOCD64LOC_MAGIC "PK\6\7"
+#define EOCD64_MAGIC "PK\6\6"
+#define CDENTRYSIZE 46u
+#define LENTRYSIZE 30
+#define MAXCOMLEN 65536
+#define MAXEXTLEN 65536
+#define EOCDLEN 22
+#define EOCD64LOCLEN 20
+#define EOCD64LEN 56
+#define CDBUFSIZE (MAXCOMLEN + EOCDLEN + EOCD64LOCLEN)
+#define BUFSIZE 8192
+#define EFZIP64SIZE 28
+#define EF_WINZIP_AES_SIZE 7
+
+#define ZIP_CM_REPLACED_DEFAULT (-2)
+#define ZIP_CM_WINZIP_AES 99 /* Winzip AES encrypted */
+
+#define WINZIP_AES_PASSWORD_VERIFY_LENGTH 2
+#define WINZIP_AES_MAX_HEADER_LENGTH (16 + WINZIP_AES_PASSWORD_VERIFY_LENGTH)
+#define AES_BLOCK_SIZE 16
+#define HMAC_LENGTH 10
+#define SHA1_LENGTH 20
+#define SALT_LENGTH(method) ((method) == ZIP_EM_AES_128 ? 8 : ((method) == ZIP_EM_AES_192 ? 12 : 16))
+
+#define ZIP_CM_IS_DEFAULT(x) ((x) == ZIP_CM_DEFAULT || (x) == ZIP_CM_REPLACED_DEFAULT)
+#define ZIP_CM_ACTUAL(x) ((zip_uint16_t)(ZIP_CM_IS_DEFAULT(x) ? ZIP_CM_DEFLATE : (x)))
+
+#define ZIP_EF_UTF_8_COMMENT 0x6375
+#define ZIP_EF_UTF_8_NAME 0x7075
+#define ZIP_EF_WINZIP_AES 0x9901
+#define ZIP_EF_ZIP64 0x0001
+
+#define ZIP_EF_IS_INTERNAL(id) ((id) == ZIP_EF_UTF_8_COMMENT || (id) == ZIP_EF_UTF_8_NAME || (id) == ZIP_EF_WINZIP_AES || (id) == ZIP_EF_ZIP64)
+
+/* according to unzip-6.0's zipinfo.c, this corresponds to a regular file with rw permissions for everyone */
+#define ZIP_EXT_ATTRIB_DEFAULT (0100666u << 16)
+/* according to unzip-6.0's zipinfo.c, this corresponds to a directory with rwx permissions for everyone */
+#define ZIP_EXT_ATTRIB_DEFAULT_DIR (0040777u << 16)
+
+#define ZIP_MAX(a, b) ((a) > (b) ? (a) : (b))
+#define ZIP_MIN(a, b) ((a) < (b) ? (a) : (b))
+
+/* This section contains API that won't materialize like this. It's
+ placed in the internal section, pending cleanup. */
+
+/* flags for compression and encryption sources */
+
+#define ZIP_CODEC_DECODE 0 /* decompress/decrypt (encode flag not set) */
+#define ZIP_CODEC_ENCODE 1 /* compress/encrypt */
+
+typedef zip_source_t* (*zip_encryption_implementation)(zip_t*, zip_source_t*, zip_uint16_t, int, const char*);
+
+zip_encryption_implementation _zip_get_encryption_implementation(zip_uint16_t method, int operation);
+
+// clang-format off
+enum zip_compression_status {
+ ZIP_COMPRESSION_OK,
+ ZIP_COMPRESSION_END,
+ ZIP_COMPRESSION_ERROR,
+ ZIP_COMPRESSION_NEED_DATA
+};
+// clang-format on
+typedef enum zip_compression_status zip_compression_status_t;
+
+struct zip_compression_algorithm {
+ /* called once to create new context */
+ void* (*allocate)(zip_uint16_t method, int compression_flags, zip_error_t* error);
+ /* called once to free context */
+ void (*deallocate)(void* ctx);
+
+ /* get compression specific general purpose bitflags */
+ int (*compression_flags)(void* ctx);
+
+ /* start processing */
+ bool (*start)(void* ctx);
+ /* stop processing */
+ bool (*end)(void* ctx);
+
+ /* provide new input data, remains valid until next call to input or end */
+ bool (*input)(void* ctx, zip_uint8_t* data, zip_uint64_t length);
+
+ /* all input data has been provided */
+ void (*end_of_input)(void* ctx);
+
+ /* process input data, writing to data, which has room for length bytes, update length to number of bytes written */
+ zip_compression_status_t (*process)(void* ctx, zip_uint8_t* data, zip_uint64_t* length);
+};
+typedef struct zip_compression_algorithm zip_compression_algorithm_t;
+
+extern zip_compression_algorithm_t zip_algorithm_bzip2_compress;
+extern zip_compression_algorithm_t zip_algorithm_bzip2_decompress;
+extern zip_compression_algorithm_t zip_algorithm_deflate_compress;
+extern zip_compression_algorithm_t zip_algorithm_deflate_decompress;
+
+bool zip_compression_method_supported(zip_int32_t method, bool compress);
+
+/* This API is not final yet, but we need it internally, so it's private for now. */
+
+const zip_uint8_t* zip_get_extra_field_by_id(zip_t*, int, int, zip_uint16_t, int, zip_uint16_t*);
+
+/* This section contains API that is of limited use until support for
+ user-supplied compression/encryption implementation is finished.
+ Thus we will keep it private for now. */
+
+typedef zip_int64_t (*zip_source_layered_callback)(zip_source_t*, void*, void*, zip_uint64_t, enum zip_source_cmd);
+zip_source_t* zip_source_compress(zip_t* za, zip_source_t* src, zip_int32_t cm, int compression_flags);
+zip_source_t* zip_source_crc(zip_t*, zip_source_t*, int);
+zip_source_t* zip_source_decompress(zip_t* za, zip_source_t* src, zip_int32_t cm);
+zip_source_t* zip_source_layered(zip_t*, zip_source_t*, zip_source_layered_callback, void*);
+zip_source_t* zip_source_layered_create(zip_source_t* src, zip_source_layered_callback cb, void* ud, zip_error_t* error);
+zip_source_t* zip_source_pkware(zip_t*, zip_source_t*, zip_uint16_t, int, const char*);
+int zip_source_remove(zip_source_t*);
+zip_int64_t zip_source_supports(zip_source_t* src);
+zip_source_t* zip_source_window(zip_t*, zip_source_t*, zip_uint64_t, zip_uint64_t);
+zip_source_t* zip_source_winzip_aes_decode(zip_t*, zip_source_t*, zip_uint16_t, int, const char*);
+zip_source_t* zip_source_winzip_aes_encode(zip_t*, zip_source_t*, zip_uint16_t, int, const char*);
+
+/* error source for layered sources */
+
+enum zip_les { ZIP_LES_NONE,
+ ZIP_LES_UPPER,
+ ZIP_LES_LOWER,
+ ZIP_LES_INVAL };
+
+/* directory entry: general purpose bit flags */
+
+#define ZIP_GPBF_ENCRYPTED 0x0001u /* is encrypted */
+#define ZIP_GPBF_DATA_DESCRIPTOR 0x0008u /* crc/size after file data */
+#define ZIP_GPBF_STRONG_ENCRYPTION 0x0040u /* uses strong encryption */
+#define ZIP_GPBF_ENCODING_UTF_8 0x0800u /* file name encoding is UTF-8 */
+
+/* extra fields */
+#define ZIP_EF_LOCAL ZIP_FL_LOCAL /* include in local header */
+#define ZIP_EF_CENTRAL ZIP_FL_CENTRAL /* include in central directory */
+#define ZIP_EF_BOTH (ZIP_EF_LOCAL | ZIP_EF_CENTRAL) /* include in both */
+
+#define ZIP_FL_FORCE_ZIP64 1024 /* force zip64 extra field (_zip_dirent_write) */
+
+#define ZIP_FL_ENCODING_ALL (ZIP_FL_ENC_GUESS | ZIP_FL_ENC_CP437 | ZIP_FL_ENC_UTF_8)
+
+/* encoding type */
+enum zip_encoding_type {
+ ZIP_ENCODING_UNKNOWN, /* not yet analyzed */
+ ZIP_ENCODING_ASCII, /* plain ASCII */
+ ZIP_ENCODING_UTF8_KNOWN, /* is UTF-8 */
+ ZIP_ENCODING_UTF8_GUESSED, /* possibly UTF-8 */
+ ZIP_ENCODING_CP437, /* Code Page 437 */
+ ZIP_ENCODING_ERROR /* should be UTF-8 but isn't */
+};
+
+typedef enum zip_encoding_type zip_encoding_type_t;
+
+struct zip_hash;
+struct zip_progress;
+
+typedef struct zip_cdir zip_cdir_t;
+typedef struct zip_dirent zip_dirent_t;
+typedef struct zip_entry zip_entry_t;
+typedef struct zip_extra_field zip_extra_field_t;
+typedef struct zip_string zip_string_t;
+typedef struct zip_buffer zip_buffer_t;
+typedef struct zip_hash zip_hash_t;
+typedef struct zip_progress zip_progress_t;
+
+/* zip archive, part of API */
+
+struct zip {
+ zip_source_t* src; /* data source for archive */
+ unsigned int open_flags; /* flags passed to zip_open */
+ zip_error_t error; /* error information */
+
+ unsigned int flags; /* archive global flags */
+ unsigned int ch_flags; /* changed archive global flags */
+
+ char* default_password; /* password used when no other supplied */
+
+ zip_string_t* comment_orig; /* archive comment */
+ zip_string_t* comment_changes; /* changed archive comment */
+ bool comment_changed; /* whether archive comment was changed */
+
+ zip_uint64_t nentry; /* number of entries */
+ zip_uint64_t nentry_alloc; /* number of entries allocated */
+ zip_entry_t* entry; /* entries */
+
+ unsigned int nopen_source; /* number of open sources using archive */
+ unsigned int nopen_source_alloc; /* number of sources allocated */
+ zip_source_t** open_source; /* open sources using archive */
+
+ zip_hash_t* names; /* hash table for name lookup */
+
+ zip_progress_t* progress; /* progress callback for zip_close() */
+};
+
+/* file in zip archive, part of API */
+
+struct zip_file {
+ zip_t* za; /* zip archive containing this file */
+ zip_error_t error; /* error information */
+ bool eof;
+ zip_source_t* src; /* data source */
+};
+
+/* zip archive directory entry (central or local) */
+
+#define ZIP_DIRENT_COMP_METHOD 0x0001u
+#define ZIP_DIRENT_FILENAME 0x0002u
+#define ZIP_DIRENT_COMMENT 0x0004u
+#define ZIP_DIRENT_EXTRA_FIELD 0x0008u
+#define ZIP_DIRENT_ATTRIBUTES 0x0010u
+#define ZIP_DIRENT_LAST_MOD 0x0020u
+#define ZIP_DIRENT_ENCRYPTION_METHOD 0x0040u
+#define ZIP_DIRENT_PASSWORD 0x0080u
+#define ZIP_DIRENT_ALL ZIP_UINT32_MAX
+
+struct zip_dirent {
+ zip_uint32_t changed;
+ bool local_extra_fields_read; /* whether we already read in local header extra fields */
+ bool cloned; /* whether this instance is cloned, and thus shares non-changed strings */
+
+ bool crc_valid; /* if CRC is valid (sometimes not for encrypted archives) */
+
+ zip_uint16_t version_madeby; /* (c) version of creator */
+ zip_uint16_t version_needed; /* (cl) version needed to extract */
+ zip_uint16_t bitflags; /* (cl) general purpose bit flag */
+ zip_int32_t comp_method; /* (cl) compression method used (uint16 and ZIP_CM_DEFAULT (-1)) */
+ time_t last_mod; /* (cl) time of last modification */
+ zip_uint32_t crc; /* (cl) CRC-32 of uncompressed data */
+ zip_uint64_t comp_size; /* (cl) size of compressed data */
+ zip_uint64_t uncomp_size; /* (cl) size of uncompressed data */
+ zip_string_t* filename; /* (cl) file name (NUL-terminated) */
+ zip_extra_field_t* extra_fields; /* (cl) extra fields, parsed */
+ zip_string_t* comment; /* (c) file comment */
+ zip_uint32_t disk_number; /* (c) disk number start */
+ zip_uint16_t int_attrib; /* (c) internal file attributes */
+ zip_uint32_t ext_attrib; /* (c) external file attributes */
+ zip_uint64_t offset; /* (c) offset of local header */
+
+ zip_uint16_t compression_level; /* level of compression to use (never valid in orig) */
+ zip_uint16_t encryption_method; /* encryption method, computed from other fields */
+ char* password; /* file specific encryption password */
+};
+
+/* zip archive central directory */
+
+struct zip_cdir {
+ zip_entry_t* entry; /* directory entries */
+ zip_uint64_t nentry; /* number of entries */
+ zip_uint64_t nentry_alloc; /* number of entries allocated */
+
+ zip_uint64_t size; /* size of central directory */
+ zip_uint64_t offset; /* offset of central directory in file */
+ zip_string_t* comment; /* zip archive comment */
+ bool is_zip64; /* central directory in zip64 format */
+};
+
+struct zip_extra_field {
+ zip_extra_field_t* next;
+ zip_flags_t flags; /* in local/central header */
+ zip_uint16_t id; /* header id */
+ zip_uint16_t size; /* data size */
+ zip_uint8_t* data;
+};
+
+enum zip_source_write_state {
+ ZIP_SOURCE_WRITE_CLOSED, /* write is not in progress */
+ ZIP_SOURCE_WRITE_OPEN, /* write is in progress */
+ ZIP_SOURCE_WRITE_FAILED, /* commit failed, only rollback allowed */
+ ZIP_SOURCE_WRITE_REMOVED /* file was removed */
+};
+typedef enum zip_source_write_state zip_source_write_state_t;
+
+struct zip_source {
+ zip_source_t* src;
+ union {
+ zip_source_callback f;
+ zip_source_layered_callback l;
+ } cb;
+ void* ud;
+ zip_error_t error;
+ zip_int64_t supports; /* supported commands */
+ unsigned int open_count; /* number of times source was opened (directly or as lower layer) */
+ zip_source_write_state_t write_state; /* whether source is open for writing */
+ bool source_closed; /* set if source archive is closed */
+ zip_t* source_archive; /* zip archive we're reading from, NULL if not from archive */
+ unsigned int refcount;
+ bool eof; /* EOF reached */
+ bool had_read_error; /* a previous ZIP_SOURCE_READ reported an error */
+};
+
+#define ZIP_SOURCE_IS_OPEN_READING(src) ((src)->open_count > 0)
+#define ZIP_SOURCE_IS_OPEN_WRITING(src) ((src)->write_state == ZIP_SOURCE_WRITE_OPEN)
+#define ZIP_SOURCE_IS_LAYERED(src) ((src)->src != NULL)
+
+/* entry in zip archive directory */
+
+struct zip_entry {
+ zip_dirent_t* orig;
+ zip_dirent_t* changes;
+ zip_source_t* source;
+ bool deleted;
+};
+
+/* file or archive comment, or filename */
+
+struct zip_string {
+ zip_uint8_t* raw; /* raw string */
+ zip_uint16_t length; /* length of raw string */
+ enum zip_encoding_type encoding; /* autorecognized encoding */
+ zip_uint8_t* converted; /* autoconverted string */
+ zip_uint32_t converted_length; /* length of converted */
+};
+
+/* byte array */
+
+/* For performance, we usually keep 8k byte arrays on the stack.
+ However, there are (embedded) systems with a stack size of 12k;
+ for those, use malloc()/free() */
+
+#ifdef ZIP_ALLOCATE_BUFFER
+#define DEFINE_BYTE_ARRAY(buf, size) zip_uint8_t* buf
+#define byte_array_init(buf, size) (((buf) = (zip_uint8_t*)malloc(size)) != NULL)
+#define byte_array_fini(buf) (free(buf))
+#else
+#define DEFINE_BYTE_ARRAY(buf, size) zip_uint8_t buf[size]
+#define byte_array_init(buf, size) (1)
+#define byte_array_fini(buf) ((void)0)
+#endif
+
+/* bounds checked access to memory buffer */
+
+struct zip_buffer {
+ bool ok;
+ bool free_data;
+
+ zip_uint8_t* data;
+ zip_uint64_t size;
+ zip_uint64_t offset;
+};
+
+/* which files to write in which order */
+
+struct zip_filelist {
+ zip_uint64_t idx;
+ /* TODO const char *name; */
+};
+
+typedef struct zip_filelist zip_filelist_t;
+
+struct _zip_winzip_aes;
+typedef struct _zip_winzip_aes zip_winzip_aes_t;
+
+extern const char* const _zip_err_str[];
+extern const int _zip_nerr_str;
+extern const int _zip_err_type[];
+
+#define ZIP_MAX(a, b) ((a) > (b) ? (a) : (b))
+#define ZIP_MIN(a, b) ((a) < (b) ? (a) : (b))
+
+#define ZIP_ENTRY_CHANGED(e, f) ((e)->changes && ((e)->changes->changed & (f)))
+#define ZIP_ENTRY_DATA_CHANGED(x) ((x)->source != NULL)
+#define ZIP_ENTRY_HAS_CHANGES(e) (ZIP_ENTRY_DATA_CHANGED(e) || (e)->deleted || ZIP_ENTRY_CHANGED((e), ZIP_DIRENT_ALL))
+
+#define ZIP_IS_RDONLY(za) ((za)->ch_flags & ZIP_AFL_RDONLY)
+
+#ifdef HAVE_EXPLICIT_MEMSET
+#define _zip_crypto_clear(b, l) explicit_memset((b), 0, (l))
+#else
+#ifdef HAVE_EXPLICIT_BZERO
+#define _zip_crypto_clear(b, l) explicit_bzero((b), (l))
+#else
+#include
+#define _zip_crypto_clear(b, l) memset((b), 0, (l))
+#endif
+#endif
+
+zip_int64_t _zip_add_entry(zip_t*);
+
+zip_uint8_t* _zip_buffer_data(zip_buffer_t* buffer);
+bool _zip_buffer_eof(zip_buffer_t* buffer);
+void _zip_buffer_free(zip_buffer_t* buffer);
+zip_uint8_t* _zip_buffer_get(zip_buffer_t* buffer, zip_uint64_t length);
+zip_uint16_t _zip_buffer_get_16(zip_buffer_t* buffer);
+zip_uint32_t _zip_buffer_get_32(zip_buffer_t* buffer);
+zip_uint64_t _zip_buffer_get_64(zip_buffer_t* buffer);
+zip_uint8_t _zip_buffer_get_8(zip_buffer_t* buffer);
+zip_uint64_t _zip_buffer_left(zip_buffer_t* buffer);
+zip_buffer_t* _zip_buffer_new(zip_uint8_t* data, zip_uint64_t size);
+zip_buffer_t* _zip_buffer_new_from_source(zip_source_t* src, zip_uint64_t size, zip_uint8_t* buf, zip_error_t* error);
+zip_uint64_t _zip_buffer_offset(zip_buffer_t* buffer);
+bool _zip_buffer_ok(zip_buffer_t* buffer);
+zip_uint8_t* _zip_buffer_peek(zip_buffer_t* buffer, zip_uint64_t length);
+int _zip_buffer_put(zip_buffer_t* buffer, const void* src, size_t length);
+int _zip_buffer_put_16(zip_buffer_t* buffer, zip_uint16_t i);
+int _zip_buffer_put_32(zip_buffer_t* buffer, zip_uint32_t i);
+int _zip_buffer_put_64(zip_buffer_t* buffer, zip_uint64_t i);
+int _zip_buffer_put_8(zip_buffer_t* buffer, zip_uint8_t i);
+zip_uint64_t _zip_buffer_read(zip_buffer_t* buffer, zip_uint8_t* data, zip_uint64_t length);
+int _zip_buffer_skip(zip_buffer_t* buffer, zip_uint64_t length);
+int _zip_buffer_set_offset(zip_buffer_t* buffer, zip_uint64_t offset);
+zip_uint64_t _zip_buffer_size(zip_buffer_t* buffer);
+
+int _zip_cdir_compute_crc(zip_t*, uLong*);
+void _zip_cdir_free(zip_cdir_t*);
+bool _zip_cdir_grow(zip_cdir_t* cd, zip_uint64_t additional_entries, zip_error_t* error);
+zip_cdir_t* _zip_cdir_new(zip_uint64_t, zip_error_t*);
+zip_int64_t _zip_cdir_write(zip_t* za, const zip_filelist_t* filelist, zip_uint64_t survivors);
+void _zip_deregister_source(zip_t* za, zip_source_t* src);
+
+zip_dirent_t* _zip_dirent_clone(const zip_dirent_t*);
+void _zip_dirent_free(zip_dirent_t*);
+void _zip_dirent_finalize(zip_dirent_t*);
+void _zip_dirent_init(zip_dirent_t*);
+bool _zip_dirent_needs_zip64(const zip_dirent_t*, zip_flags_t);
+zip_dirent_t* _zip_dirent_new(void);
+zip_int64_t _zip_dirent_read(zip_dirent_t* zde, zip_source_t* src, zip_buffer_t* buffer, bool local, zip_error_t* error);
+void _zip_dirent_set_version_needed(zip_dirent_t* de, bool force_zip64);
+zip_int32_t _zip_dirent_size(zip_source_t* src, zip_uint16_t, zip_error_t*);
+int _zip_dirent_write(zip_t* za, zip_dirent_t* dirent, zip_flags_t flags);
+
+zip_extra_field_t* _zip_ef_clone(const zip_extra_field_t*, zip_error_t*);
+zip_extra_field_t* _zip_ef_delete_by_id(zip_extra_field_t*, zip_uint16_t, zip_uint16_t, zip_flags_t);
+void _zip_ef_free(zip_extra_field_t*);
+const zip_uint8_t* _zip_ef_get_by_id(const zip_extra_field_t*, zip_uint16_t*, zip_uint16_t, zip_uint16_t, zip_flags_t, zip_error_t*);
+zip_extra_field_t* _zip_ef_merge(zip_extra_field_t*, zip_extra_field_t*);
+zip_extra_field_t* _zip_ef_new(zip_uint16_t, zip_uint16_t, const zip_uint8_t*, zip_flags_t);
+bool _zip_ef_parse(const zip_uint8_t*, zip_uint16_t, zip_flags_t, zip_extra_field_t**, zip_error_t*);
+zip_extra_field_t* _zip_ef_remove_internal(zip_extra_field_t*);
+zip_uint16_t _zip_ef_size(const zip_extra_field_t*, zip_flags_t);
+int _zip_ef_write(zip_t* za, const zip_extra_field_t* ef, zip_flags_t flags);
+
+void _zip_entry_finalize(zip_entry_t*);
+void _zip_entry_init(zip_entry_t*);
+
+void _zip_error_clear(zip_error_t*);
+void _zip_error_get(const zip_error_t*, int*, int*);
+
+void _zip_error_copy(zip_error_t* dst, const zip_error_t* src);
+void _zip_error_set_from_source(zip_error_t*, zip_source_t*);
+
+const zip_uint8_t* _zip_extract_extra_field_by_id(zip_error_t*, zip_uint16_t, int, const zip_uint8_t*, zip_uint16_t, zip_uint16_t*);
+
+int _zip_file_extra_field_prepare_for_change(zip_t*, zip_uint64_t);
+int _zip_file_fillbuf(void*, size_t, zip_file_t*);
+zip_uint64_t _zip_file_get_end(const zip_t* za, zip_uint64_t index, zip_error_t* error);
+zip_uint64_t _zip_file_get_offset(const zip_t*, zip_uint64_t, zip_error_t*);
+
+int _zip_filerange_crc(zip_source_t* src, zip_uint64_t offset, zip_uint64_t length, uLong* crcp, zip_error_t* error);
+
+zip_dirent_t* _zip_get_dirent(zip_t*, zip_uint64_t, zip_flags_t, zip_error_t*);
+
+enum zip_encoding_type _zip_guess_encoding(zip_string_t*, enum zip_encoding_type);
+zip_uint8_t* _zip_cp437_to_utf8(const zip_uint8_t* const, zip_uint32_t, zip_uint32_t*, zip_error_t*);
+
+bool _zip_hash_add(zip_hash_t* hash, const zip_uint8_t* name, zip_uint64_t index, zip_flags_t flags, zip_error_t* error);
+bool _zip_hash_delete(zip_hash_t* hash, const zip_uint8_t* key, zip_error_t* error);
+void _zip_hash_free(zip_hash_t* hash);
+zip_int64_t _zip_hash_lookup(zip_hash_t* hash, const zip_uint8_t* name, zip_flags_t flags, zip_error_t* error);
+zip_hash_t* _zip_hash_new(zip_error_t* error);
+bool _zip_hash_reserve_capacity(zip_hash_t* hash, zip_uint64_t capacity, zip_error_t* error);
+bool _zip_hash_revert(zip_hash_t* hash, zip_error_t* error);
+
+zip_t* _zip_open(zip_source_t*, unsigned int, zip_error_t*);
+
+void _zip_progress_end(zip_progress_t* progress);
+void _zip_progress_free(zip_progress_t* progress);
+zip_progress_t* _zip_progress_new(zip_t* za, double precision, zip_progress_callback callback, void (*ud_free)(void*), void* ud);
+void _zip_progress_start(zip_progress_t* progress);
+void _zip_progress_subrange(zip_progress_t* progress, double start, double end);
+void _zip_progress_update(zip_progress_t* progress, double value);
+
+ZIP_EXTERN bool zip_random(zip_uint8_t* buffer, zip_uint16_t length);
+
+int _zip_read(zip_source_t* src, zip_uint8_t* data, zip_uint64_t length, zip_error_t* error);
+int _zip_read_at_offset(zip_source_t* src, zip_uint64_t offset, unsigned char* b, size_t length, zip_error_t* error);
+zip_uint8_t* _zip_read_data(zip_buffer_t* buffer, zip_source_t* src, size_t length, bool nulp, zip_error_t* error);
+int _zip_read_local_ef(zip_t*, zip_uint64_t);
+zip_string_t* _zip_read_string(zip_buffer_t* buffer, zip_source_t* src, zip_uint16_t lenght, bool nulp, zip_error_t* error);
+int _zip_register_source(zip_t* za, zip_source_t* src);
+
+void _zip_set_open_error(int* zep, const zip_error_t* err, int ze);
+
+zip_int64_t _zip_source_call(zip_source_t* src, void* data, zip_uint64_t length, zip_source_cmd_t command);
+bool _zip_source_eof(zip_source_t*);
+zip_source_t* _zip_source_file_or_p(const char*, FILE*, zip_uint64_t, zip_int64_t, const zip_stat_t*, zip_error_t* error);
+zip_int8_t zip_source_get_compression_flags(zip_source_t*);
+bool _zip_source_had_error(zip_source_t*);
+void _zip_source_invalidate(zip_source_t* src);
+zip_source_t* _zip_source_new(zip_error_t* error);
+int _zip_source_set_source_archive(zip_source_t*, zip_t*);
+zip_source_t* _zip_source_window_new(zip_source_t* src, zip_uint64_t start, zip_uint64_t length, zip_stat_t* st, zip_int8_t compression_flags, zip_t* source_archive, zip_uint64_t source_index, zip_error_t* error);
+zip_source_t* _zip_source_zip_new(zip_t*, zip_t*, zip_uint64_t, zip_flags_t, zip_uint64_t, zip_uint64_t, const char*);
+
+int _zip_stat_merge(zip_stat_t* dst, const zip_stat_t* src, zip_error_t* error);
+int _zip_string_equal(const zip_string_t*, const zip_string_t*);
+void _zip_string_free(zip_string_t*);
+zip_uint32_t _zip_string_crc32(const zip_string_t*);
+const zip_uint8_t* _zip_string_get(zip_string_t*, zip_uint32_t*, zip_flags_t, zip_error_t*);
+zip_uint16_t _zip_string_length(const zip_string_t*);
+zip_string_t* _zip_string_new(const zip_uint8_t*, zip_uint16_t, zip_flags_t, zip_error_t*);
+int _zip_string_write(zip_t* za, const zip_string_t* string);
+bool _zip_winzip_aes_decrypt(zip_winzip_aes_t* ctx, zip_uint8_t* data, zip_uint64_t length);
+bool _zip_winzip_aes_encrypt(zip_winzip_aes_t* ctx, zip_uint8_t* data, zip_uint64_t length);
+bool _zip_winzip_aes_finish(zip_winzip_aes_t* ctx, zip_uint8_t* hmac);
+void _zip_winzip_aes_free(zip_winzip_aes_t* ctx);
+zip_winzip_aes_t* _zip_winzip_aes_new(const zip_uint8_t* password, zip_uint64_t password_length, const zip_uint8_t* salt, zip_uint16_t key_size, zip_uint8_t* password_verify, zip_error_t* error);
+
+int _zip_changed(const zip_t*, zip_uint64_t*);
+const char* _zip_get_name(zip_t*, zip_uint64_t, zip_flags_t, zip_error_t*);
+int _zip_local_header_read(zip_t*, int);
+void* _zip_memdup(const void*, size_t, zip_error_t*);
+zip_int64_t _zip_name_locate(zip_t*, const char*, zip_flags_t, zip_error_t*);
+zip_t* _zip_new(zip_error_t*);
+
+zip_int64_t _zip_file_replace(zip_t*, zip_uint64_t, const char*, zip_source_t*, zip_flags_t);
+int _zip_set_name(zip_t*, zip_uint64_t, const char*, zip_flags_t);
+void _zip_u2d_time(time_t, zip_uint16_t*, zip_uint16_t*);
+int _zip_unchange(zip_t*, zip_uint64_t, int);
+void _zip_unchange_data(zip_entry_t*);
+int _zip_write(zip_t* za, const void* data, zip_uint64_t length);
+
+#endif /* zipint.h */
diff --git a/plugins/TKLiveSync/libzip_iOS.xcframework/ios-i386_x86_64-simulator/libzip_iOS.framework/Headers/zipwin32.h b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-i386_x86_64-simulator/libzip_iOS.framework/Headers/zipwin32.h
new file mode 100644
index 000000000..cd4362fdf
--- /dev/null
+++ b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-i386_x86_64-simulator/libzip_iOS.framework/Headers/zipwin32.h
@@ -0,0 +1,85 @@
+#ifndef _HAD_ZIPWIN32_H
+#define _HAD_ZIPWIN32_H
+
+/*
+ zipwin32.h -- internal declarations for Windows.
+ Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
+
+ This file is part of libzip, a library to manipulate ZIP archives.
+ The authors can be contacted at
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+ 3. The names of the authors may not be used to endorse or promote
+ products derived from this software without specific prior
+ written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS
+ OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
+ DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+ GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+ IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+ IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+/* 0x0501 => Windows XP; needs to be at least this value because of GetFileSizeEx */
+#if !defined(MS_UWP) && !defined(_WIN32_WINNT)
+#define _WIN32_WINNT 0x0501
+#endif
+
+#include
+
+/* context for Win32 source */
+
+struct _zip_source_win32_file_ops;
+
+struct _zip_source_win32_read_file {
+ zip_error_t error; /* last error information */
+ zip_int64_t supports;
+
+ /* operations */
+ struct _zip_source_win32_file_ops* ops;
+
+ /* reading */
+ void* fname; /* name of file to read from - ANSI (char *) or Unicode (wchar_t *) */
+ void* h; /* HANDLE for file to read from */
+ int closep; /* whether to close f on ZIP_CMD_FREE */
+ struct zip_stat st; /* stat information passed in */
+ zip_uint64_t start; /* start offset of data to read */
+ zip_uint64_t end; /* end offset of data to read, 0 for up to EOF */
+ zip_uint64_t current; /* current offset */
+
+ /* writing */
+ void* tmpname; /* name of temp file - ANSI (char *) or Unicode (wchar_t *) */
+ void* hout; /* HANDLE for output file */
+};
+
+typedef struct _zip_source_win32_read_file _zip_source_win32_read_file_t;
+
+/* internal operations for Win32 source */
+
+struct _zip_source_win32_file_ops {
+ void* (*op_strdup)(const void*);
+ void* (*op_open)(_zip_source_win32_read_file_t*);
+ void* (*op_create_temp)(_zip_source_win32_read_file_t*, void**, zip_uint32_t, PSECURITY_ATTRIBUTES);
+ int (*op_rename_temp)(_zip_source_win32_read_file_t*);
+ int (*op_remove)(const void*);
+};
+
+typedef struct _zip_source_win32_file_ops _zip_source_win32_file_ops_t;
+
+zip_source_t* _zip_source_win32_handle_or_name(const void*, void*, zip_uint64_t, zip_int64_t, int, const zip_stat_t*, _zip_source_win32_file_ops_t*, zip_error_t*);
+
+#endif /* zipwin32.h */
diff --git a/plugins/TKLiveSync/libzip_iOS.xcframework/ios-i386_x86_64-simulator/libzip_iOS.framework/Info.plist b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-i386_x86_64-simulator/libzip_iOS.framework/Info.plist
new file mode 100644
index 000000000..3caaefc5b
Binary files /dev/null and b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-i386_x86_64-simulator/libzip_iOS.framework/Info.plist differ
diff --git a/plugins/TKLiveSync/libzip_iOS.xcframework/ios-i386_x86_64-simulator/libzip_iOS.framework/_CodeSignature/CodeDirectory b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-i386_x86_64-simulator/libzip_iOS.framework/_CodeSignature/CodeDirectory
new file mode 100644
index 000000000..73251b86e
Binary files /dev/null and b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-i386_x86_64-simulator/libzip_iOS.framework/_CodeSignature/CodeDirectory differ
diff --git a/plugins/TKLiveSync/libzip_iOS.xcframework/ios-i386_x86_64-simulator/libzip_iOS.framework/_CodeSignature/CodeRequirements b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-i386_x86_64-simulator/libzip_iOS.framework/_CodeSignature/CodeRequirements
new file mode 100644
index 000000000..dbf9d6144
Binary files /dev/null and b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-i386_x86_64-simulator/libzip_iOS.framework/_CodeSignature/CodeRequirements differ
diff --git a/plugins/TKLiveSync/libzip_iOS.xcframework/ios-i386_x86_64-simulator/libzip_iOS.framework/_CodeSignature/CodeRequirements-1 b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-i386_x86_64-simulator/libzip_iOS.framework/_CodeSignature/CodeRequirements-1
new file mode 100644
index 000000000..1006eff05
Binary files /dev/null and b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-i386_x86_64-simulator/libzip_iOS.framework/_CodeSignature/CodeRequirements-1 differ
diff --git a/plugins/TKLiveSync/libzip_iOS.xcframework/ios-i386_x86_64-simulator/libzip_iOS.framework/_CodeSignature/CodeResources b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-i386_x86_64-simulator/libzip_iOS.framework/_CodeSignature/CodeResources
new file mode 100644
index 000000000..210f205e5
--- /dev/null
+++ b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-i386_x86_64-simulator/libzip_iOS.framework/_CodeSignature/CodeResources
@@ -0,0 +1,282 @@
+
+
+
+
+ files
+
+ Headers/compat.h
+
+ HDJ4RGAUsO8YKWt+chXFnrd8psY=
+
+ Headers/config.h
+
+ 2kTU2a5N1JaXk+nEc+ben/mVngg=
+
+ Headers/zip.h
+
+ 0mJRUdMKUDhzc2/aQhBciPUw2Ec=
+
+ Headers/zip_crypto.h
+
+ oqoyC7NU8WDwX3SvMcdyazfIQ84=
+
+ Headers/zip_crypto_commoncrypto.h
+
+ 2zH5ayCaPC244JtobtW292rT1fY=
+
+ Headers/zip_crypto_gnutls.h
+
+ pL9/aa6HukgVg/A5dmG/uwOVH3c=
+
+ Headers/zip_crypto_mbedtls.h
+
+ R45S+Qw6tcZpCIpliCr7Hff7D0o=
+
+ Headers/zip_crypto_openssl.h
+
+ er07Rty1K8WnAAnOiPkXVCO/KKg=
+
+ Headers/zip_crypto_win.h
+
+ TTKVlyBHkuNi2MHJO3Ycg5UyPAM=
+
+ Headers/zipconf.h
+
+ 9pU7cViazuak6a91kc/mWuvR3bQ=
+
+ Headers/zipint.h
+
+ rrUV277k9B8zrw/uY4woEoCuJxo=
+
+ Headers/zipwin32.h
+
+ Rg3mbpKpD9DOhwjt9KqIblwgTkw=
+
+ Info.plist
+
+ 2IKF81OL9R+1X1JZKEde1ELIAlU=
+
+
+ files2
+
+ Headers/compat.h
+
+ hash
+
+ HDJ4RGAUsO8YKWt+chXFnrd8psY=
+
+ hash2
+
+ 85S+enDw8BqPrKhDzELAxGHEGOtt1thcmRzSX21Syws=
+
+
+ Headers/config.h
+
+ hash
+
+ 2kTU2a5N1JaXk+nEc+ben/mVngg=
+
+ hash2
+
+ 39YslxY54izgajEzuLaEQ/YbtGfvmC+xn1HclXfcnZ8=
+
+
+ Headers/zip.h
+
+ hash
+
+ 0mJRUdMKUDhzc2/aQhBciPUw2Ec=
+
+ hash2
+
+ t9+4bHr5nZJJehMXz339B3gi5Dwb+GsflCF0FAGY9d8=
+
+
+ Headers/zip_crypto.h
+
+ hash
+
+ oqoyC7NU8WDwX3SvMcdyazfIQ84=
+
+ hash2
+
+ pNnzq1EvyskgouKItwQnWDe4suFEi1j5iBEipcrVEVg=
+
+
+ Headers/zip_crypto_commoncrypto.h
+
+ hash
+
+ 2zH5ayCaPC244JtobtW292rT1fY=
+
+ hash2
+
+ cYK6rsfR/MfWg3HzBePxpV2w5M9lbitnGD6eeDmtiik=
+
+
+ Headers/zip_crypto_gnutls.h
+
+ hash
+
+ pL9/aa6HukgVg/A5dmG/uwOVH3c=
+
+ hash2
+
+ 7tuGRXEd12XxJdWlYz49SUNPc7sPjAzKrzc93NiqM9M=
+
+
+ Headers/zip_crypto_mbedtls.h
+
+ hash
+
+ R45S+Qw6tcZpCIpliCr7Hff7D0o=
+
+ hash2
+
+ OG40Sbu9bTu3ZCqaCJbYPoHCn22W/J1qiKlHkdGuTCs=
+
+
+ Headers/zip_crypto_openssl.h
+
+ hash
+
+ er07Rty1K8WnAAnOiPkXVCO/KKg=
+
+ hash2
+
+ MW+frNSY9+h1NPzvUS4jGeUstgg+4dvih2MWpnSr5Rs=
+
+
+ Headers/zip_crypto_win.h
+
+ hash
+
+ TTKVlyBHkuNi2MHJO3Ycg5UyPAM=
+
+ hash2
+
+ alH1c9BoSOR0CPVeSJrj5N9I+TH+vJ8q0jQIj7Naig4=
+
+
+ Headers/zipconf.h
+
+ hash
+
+ 9pU7cViazuak6a91kc/mWuvR3bQ=
+
+ hash2
+
+ TiIBkoknuKrnu7MNZFbtkR86b1bCJszqOlQVxVV+HY0=
+
+
+ Headers/zipint.h
+
+ hash
+
+ rrUV277k9B8zrw/uY4woEoCuJxo=
+
+ hash2
+
+ M9aCgHZxcSXqM8NyYbMW7IibHSz+III5oC6MtBEk6Io=
+
+
+ Headers/zipwin32.h
+
+ hash
+
+ Rg3mbpKpD9DOhwjt9KqIblwgTkw=
+
+ hash2
+
+ kZ4Hka6L6Pq7cAjQCWlZJgUvxSHpwXMsG07seMo7FtQ=
+
+
+
+ rules
+
+ ^.*
+
+ ^.*\.lproj/
+
+ optional
+
+ weight
+ 1000
+
+ ^.*\.lproj/locversion.plist$
+
+ omit
+
+ weight
+ 1100
+
+ ^Base\.lproj/
+
+ weight
+ 1010
+
+ ^version.plist$
+
+
+ rules2
+
+ .*\.dSYM($|/)
+
+ weight
+ 11
+
+ ^(.*/)?\.DS_Store$
+
+ omit
+
+ weight
+ 2000
+
+ ^.*
+
+ ^.*\.lproj/
+
+ optional
+
+ weight
+ 1000
+
+ ^.*\.lproj/locversion.plist$
+
+ omit
+
+ weight
+ 1100
+
+ ^Base\.lproj/
+
+ weight
+ 1010
+
+ ^Info\.plist$
+
+ omit
+
+ weight
+ 20
+
+ ^PkgInfo$
+
+ omit
+
+ weight
+ 20
+
+ ^embedded\.provisionprofile$
+
+ weight
+ 20
+
+ ^version\.plist$
+
+ weight
+ 20
+
+
+
+
diff --git a/plugins/TKLiveSync/libzip_iOS.xcframework/ios-i386_x86_64-simulator/libzip_iOS.framework/_CodeSignature/CodeSignature b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-i386_x86_64-simulator/libzip_iOS.framework/_CodeSignature/CodeSignature
new file mode 100644
index 000000000..e69de29bb
diff --git a/plugins/TKLiveSync/libzip_iOS.xcframework/ios-i386_x86_64-simulator/libzip_iOS.framework/libzip_iOS b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-i386_x86_64-simulator/libzip_iOS.framework/libzip_iOS
new file mode 100644
index 000000000..35d61f22c
Binary files /dev/null and b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-i386_x86_64-simulator/libzip_iOS.framework/libzip_iOS differ
diff --git a/plugins/TKLiveSync/libzip_iOS.xcframework/ios-x86_64-maccatalyst/libzip_iOS.framework/Headers b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-x86_64-maccatalyst/libzip_iOS.framework/Headers
new file mode 120000
index 000000000..a177d2a6b
--- /dev/null
+++ b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-x86_64-maccatalyst/libzip_iOS.framework/Headers
@@ -0,0 +1 @@
+Versions/Current/Headers
\ No newline at end of file
diff --git a/plugins/TKLiveSync/libzip_iOS.xcframework/ios-x86_64-maccatalyst/libzip_iOS.framework/Resources b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-x86_64-maccatalyst/libzip_iOS.framework/Resources
new file mode 120000
index 000000000..953ee36f3
--- /dev/null
+++ b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-x86_64-maccatalyst/libzip_iOS.framework/Resources
@@ -0,0 +1 @@
+Versions/Current/Resources
\ No newline at end of file
diff --git a/plugins/TKLiveSync/libzip_iOS.xcframework/ios-x86_64-maccatalyst/libzip_iOS.framework/Versions/A/Headers/compat.h b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-x86_64-maccatalyst/libzip_iOS.framework/Versions/A/Headers/compat.h
new file mode 100644
index 000000000..132f2cdaf
--- /dev/null
+++ b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-x86_64-maccatalyst/libzip_iOS.framework/Versions/A/Headers/compat.h
@@ -0,0 +1,206 @@
+#ifndef _HAD_LIBZIP_COMPAT_H
+#define _HAD_LIBZIP_COMPAT_H
+
+/*
+ compat.h -- compatibility defines.
+ Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
+
+ This file is part of libzip, a library to manipulate ZIP archives.
+ The authors can be contacted at
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+ 3. The names of the authors may not be used to endorse or promote
+ products derived from this software without specific prior
+ written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS
+ OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
+ DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+ GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+ IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+ IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include "zipconf.h"
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+/* to have *_MAX definitions for all types when compiling with g++ */
+#define __STDC_LIMIT_MACROS
+
+#ifdef _WIN32
+#ifndef ZIP_EXTERN
+#ifndef ZIP_STATIC
+#define ZIP_EXTERN __declspec(dllexport)
+#endif
+#endif
+/* for dup(), close(), etc. */
+#include
+#endif
+
+#ifdef HAVE_STDBOOL_H
+#include
+#else
+typedef char bool;
+#define true 1
+#define false 0
+#endif
+
+#include
+
+/* at least MinGW does not provide EOPNOTSUPP, see
+ * http://sourceforge.net/p/mingw/bugs/263/
+ */
+#ifndef EOPNOTSUPP
+#define EOPNOTSUPP EINVAL
+#endif
+
+/* at least MinGW does not provide EOVERFLOW, see
+ * http://sourceforge.net/p/mingw/bugs/242/
+ */
+#ifndef EOVERFLOW
+#define EOVERFLOW EFBIG
+#endif
+
+#ifdef _WIN32
+#if defined(HAVE__CHMOD)
+#define chmod _chmod
+#endif
+#if defined(HAVE__CLOSE)
+#define close _close
+#endif
+#if defined(HAVE__DUP)
+#define dup _dup
+#endif
+/* crashes reported when using fdopen instead of _fdopen on Windows/Visual Studio 10/Win64 */
+#if defined(HAVE__FDOPEN)
+#define fdopen _fdopen
+#endif
+#if !defined(HAVE_FILENO) && defined(HAVE__FILENO)
+#define fileno _fileno
+#endif
+/* Windows' open() doesn't understand Unix permissions */
+#if defined(HAVE__OPEN)
+#define open(a, b, c) _open((a), (b))
+#endif
+#if defined(HAVE__SNPRINTF)
+#define snprintf _snprintf
+#endif
+#if defined(HAVE__STRDUP)
+#if !defined(HAVE_STRDUP) || defined(_WIN32)
+#undef strdup
+#define strdup _strdup
+#endif
+#endif
+#if !defined(HAVE__SETMODE) && defined(HAVE_SETMODE)
+#define _setmode setmode
+#endif
+#if !defined(HAVE_STRTOLL) && defined(HAVE__STRTOI64)
+#define strtoll _strtoi64
+#endif
+#if !defined(HAVE_STRTOULL) && defined(HAVE__STRTOUI64)
+#define strtoull _strtoui64
+#endif
+#if defined(HAVE__UMASK)
+#define umask _umask
+#endif
+#if defined(HAVE__UNLINK)
+#define unlink _unlink
+#endif
+#endif
+
+#ifndef HAVE_FSEEKO
+#define fseeko(s, o, w) (fseek((s), (long int)(o), (w)))
+#endif
+
+#ifndef HAVE_FTELLO
+#define ftello(s) ((long)ftell((s)))
+#endif
+
+#ifndef HAVE_MKSTEMP
+int _zip_mkstemp(char*);
+#define mkstemp _zip_mkstemp
+#endif
+
+#if !defined(HAVE_STRCASECMP)
+#if defined(HAVE__STRICMP)
+#define strcasecmp _stricmp
+#elif defined(HAVE_STRICMP)
+#define strcasecmp stricmp
+#endif
+#endif
+
+#ifndef SIZEOF_OFF_T
+#error asdf
+#endif
+
+#if SIZEOF_OFF_T == 8
+#define ZIP_OFF_MAX ZIP_INT64_MAX
+#define ZIP_OFF_MIN ZIP_INT64_MIN
+#elif SIZEOF_OFF_T == 4
+#define ZIP_OFF_MAX ZIP_INT32_MAX
+#define ZIP_OFF_MIN ZIP_INT32_MIN
+#elif SIZEOF_OFF_T == 2
+#define ZIP_OFF_MAX ZIP_INT16_MAX
+#define ZIP_OFF_MIN ZIP_INT16_MIN
+#else
+#error unsupported size of off_t
+#endif
+
+#if defined(HAVE_FTELLO) && defined(HAVE_FSEEKO)
+#define ZIP_FSEEK_MAX ZIP_OFF_MAX
+#define ZIP_FSEEK_MIN ZIP_OFF_MIN
+#else
+#include
+#define ZIP_FSEEK_MAX LONG_MAX
+#define ZIP_FSEEK_MIN LONG_MIN
+#endif
+
+#ifndef SIZE_MAX
+#if SIZEOF_SIZE_T == 8
+#define SIZE_MAX ZIP_INT64_MAX
+#elif SIZEOF_SIZE_T == 4
+#define SIZE_MAX ZIP_INT32_MAX
+#elif SIZEOF_SIZE_T == 2
+#define SIZE_MAX ZIP_INT16_MAX
+#else
+#error unsupported size of size_t
+#endif
+#endif
+
+#ifndef PRId64
+#ifdef _MSC_VER
+#define PRId64 "I64d"
+#else
+#define PRId64 "lld"
+#endif
+#endif
+
+#ifndef PRIu64
+#ifdef _MSC_VER
+#define PRIu64 "I64u"
+#else
+#define PRIu64 "llu"
+#endif
+#endif
+
+#ifndef S_ISDIR
+#define S_ISDIR(mode) (((mode)&S_IFMT) == S_IFDIR)
+#endif
+
+#endif /* compat.h */
diff --git a/plugins/TKLiveSync/libzip_iOS.xcframework/ios-x86_64-maccatalyst/libzip_iOS.framework/Versions/A/Headers/config.h b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-x86_64-maccatalyst/libzip_iOS.framework/Versions/A/Headers/config.h
new file mode 100644
index 000000000..7bc9af833
--- /dev/null
+++ b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-x86_64-maccatalyst/libzip_iOS.framework/Versions/A/Headers/config.h
@@ -0,0 +1,92 @@
+#ifndef HAD_CONFIG_H
+#define HAD_CONFIG_H
+#ifndef _HAD_ZIPCONF_H
+#include "zipconf.h"
+#endif
+/* BEGIN DEFINES */
+/* #undef HAVE___PROGNAME */
+/* #undef HAVE__CHMOD */
+/* #undef HAVE__CLOSE */
+/* #undef HAVE__DUP */
+/* #undef HAVE__FDOPEN */
+/* #undef HAVE__FILENO */
+/* #undef HAVE__OPEN */
+/* #undef HAVE__SETMODE */
+/* #undef HAVE__SNPRINTF */
+/* #undef HAVE__STRDUP */
+/* #undef HAVE__STRICMP */
+/* #undef HAVE__STRTOI64 */
+/* #undef HAVE__STRTOUI64 */
+/* #undef HAVE__UMASK */
+/* #undef HAVE__UNLINK */
+#define HAVE_CLONEFILE
+#define HAVE_COMMONCRYPTO
+#define HAVE_CRYPTO
+/* #undef HAVE_FICLONERANGE */
+#define HAVE_FILENO
+#define HAVE_FSEEKO
+#define HAVE_FTELLO
+#define HAVE_GETPROGNAME
+/* #undef HAVE_GNUTLS */
+#define HAVE_LIBBZ2
+/* #undef HAVE_MBEDTLS */
+#define HAVE_MKSTEMP
+#define HAVE_NULLABLE
+#define HAVE_OPEN
+/* #undef HAVE_OPENSSL */
+#define HAVE_SETMODE
+#define HAVE_SNPRINTF
+#define HAVE_SSIZE_T_LIBZIP
+#define HAVE_STRCASECMP
+#define HAVE_STRDUP
+/* #undef HAVE_STRICMP */
+#define HAVE_STRTOLL
+#define HAVE_STRTOULL
+/* #undef HAVE_STRUCT_TM_TM_ZONE */
+#define HAVE_STDBOOL_H
+#define HAVE_STRINGS_H
+#define HAVE_UNISTD_H
+/* #undef HAVE_WINDOWS_CRYPTO */
+/* #undef __INT8_LIBZIP */
+#define INT8_T_LIBZIP 1
+#define UINT8_T_LIBZIP 1
+/* #undef __INT16_LIBZIP */
+#define INT16_T_LIBZIP 2
+#define UINT16_T_LIBZIP 2
+/* #undef __INT32_LIBZIP */
+#define INT32_T_LIBZIP 4
+#define UINT32_T_LIBZIP 4
+/* #undef __INT64_LIBZIP */
+#define INT64_T_LIBZIP 8
+#define UINT64_T_LIBZIP 8
+#define SHORT_LIBZIP 2
+#define INT_LIBZIP 4
+#define LONG_LIBZIP 8
+#define LONG_LONG_LIBZIP 8
+#define SIZEOF_OFF_T 8
+#define SIZE_T_LIBZIP 8
+#define SSIZE_T_LIBZIP 8
+/* #undef HAVE_DIRENT_H */
+#define HAVE_FTS_H
+/* #undef HAVE_NDIR_H */
+/* #undef HAVE_SYS_DIR_H */
+/* #undef HAVE_SYS_NDIR_H */
+/* #undef WORDS_BIGENDIAN */
+/* #undef HAVE_SHARED */
+/* END DEFINES */
+#define PACKAGE "libzip"
+#define VERSION "1.5.2"
+
+#ifndef HAVE_SSIZE_T_LIBZIP
+#if SIZE_T_LIBZIP == INT_LIBZIP
+typedef int ssize_t;
+#elif SIZE_T_LIBZIP == LONG_LIBZIP
+typedef long ssize_t;
+#elif SIZE_T_LIBZIP == LONG_LONG_LIBZIP
+typedef long long ssize_t;
+#else
+#error no suitable type for ssize_t found
+#endif
+#endif
+
+#endif /* HAD_CONFIG_H */
diff --git a/plugins/TKLiveSync/libzip_iOS.xcframework/ios-x86_64-maccatalyst/libzip_iOS.framework/Versions/A/Headers/zip.h b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-x86_64-maccatalyst/libzip_iOS.framework/Versions/A/Headers/zip.h
new file mode 100644
index 000000000..6d702128e
--- /dev/null
+++ b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-x86_64-maccatalyst/libzip_iOS.framework/Versions/A/Headers/zip.h
@@ -0,0 +1,444 @@
+#ifndef _HAD_ZIP_H
+#define _HAD_ZIP_H
+
+/*
+ zip.h -- exported declarations.
+ Copyright (C) 1999-2019 Dieter Baron and Thomas Klausner
+
+ This file is part of libzip, a library to manipulate ZIP archives.
+ The authors can be contacted at
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+ 3. The names of the authors may not be used to endorse or promote
+ products derived from this software without specific prior
+ written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS
+ OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
+ DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+ GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+ IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+ IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#ifdef __cplusplus
+extern "C" {
+#if 0
+} /* fix autoindent */
+#endif
+#endif
+
+#include "zipconf.h"
+
+#ifndef ZIP_EXTERN
+#ifndef ZIP_STATIC
+#ifdef _WIN32
+#define ZIP_EXTERN __declspec(dllimport)
+#elif defined(__GNUC__) && __GNUC__ >= 4
+#define ZIP_EXTERN __attribute__((visibility("default")))
+#else
+#define ZIP_EXTERN
+#endif
+#else
+#define ZIP_EXTERN
+#endif
+#endif
+
+#include
+#include
+#include
+
+/* flags for zip_open */
+
+#define ZIP_CREATE 1
+#define ZIP_EXCL 2
+#define ZIP_CHECKCONS 4
+#define ZIP_TRUNCATE 8
+#define ZIP_RDONLY 16
+
+/* flags for zip_name_locate, zip_fopen, zip_stat, ... */
+
+#define ZIP_FL_NOCASE 1u /* ignore case on name lookup */
+#define ZIP_FL_NODIR 2u /* ignore directory component */
+#define ZIP_FL_COMPRESSED 4u /* read compressed data */
+#define ZIP_FL_UNCHANGED 8u /* use original data, ignoring changes */
+#define ZIP_FL_RECOMPRESS 16u /* force recompression of data */
+#define ZIP_FL_ENCRYPTED 32u /* read encrypted data (implies ZIP_FL_COMPRESSED) */
+#define ZIP_FL_ENC_GUESS 0u /* guess string encoding (is default) */
+#define ZIP_FL_ENC_RAW 64u /* get unmodified string */
+#define ZIP_FL_ENC_STRICT 128u /* follow specification strictly */
+#define ZIP_FL_LOCAL 256u /* in local header */
+#define ZIP_FL_CENTRAL 512u /* in central directory */
+/* 1024u reserved for internal use */
+#define ZIP_FL_ENC_UTF_8 2048u /* string is UTF-8 encoded */
+#define ZIP_FL_ENC_CP437 4096u /* string is CP437 encoded */
+#define ZIP_FL_OVERWRITE 8192u /* zip_file_add: if file with name exists, overwrite (replace) it */
+
+/* archive global flags flags */
+
+#define ZIP_AFL_RDONLY 2u /* read only -- cannot be cleared */
+
+/* create a new extra field */
+
+#define ZIP_EXTRA_FIELD_ALL ZIP_UINT16_MAX
+#define ZIP_EXTRA_FIELD_NEW ZIP_UINT16_MAX
+
+/* libzip error codes */
+
+#define ZIP_ER_OK 0 /* N No error */
+#define ZIP_ER_MULTIDISK 1 /* N Multi-disk zip archives not supported */
+#define ZIP_ER_RENAME 2 /* S Renaming temporary file failed */
+#define ZIP_ER_CLOSE 3 /* S Closing zip archive failed */
+#define ZIP_ER_SEEK 4 /* S Seek error */
+#define ZIP_ER_READ 5 /* S Read error */
+#define ZIP_ER_WRITE 6 /* S Write error */
+#define ZIP_ER_CRC 7 /* N CRC error */
+#define ZIP_ER_ZIPCLOSED 8 /* N Containing zip archive was closed */
+#define ZIP_ER_NOENT 9 /* N No such file */
+#define ZIP_ER_EXISTS 10 /* N File already exists */
+#define ZIP_ER_OPEN 11 /* S Can't open file */
+#define ZIP_ER_TMPOPEN 12 /* S Failure to create temporary file */
+#define ZIP_ER_ZLIB 13 /* Z Zlib error */
+#define ZIP_ER_MEMORY 14 /* N Malloc failure */
+#define ZIP_ER_CHANGED 15 /* N Entry has been changed */
+#define ZIP_ER_COMPNOTSUPP 16 /* N Compression method not supported */
+#define ZIP_ER_EOF 17 /* N Premature end of file */
+#define ZIP_ER_INVAL 18 /* N Invalid argument */
+#define ZIP_ER_NOZIP 19 /* N Not a zip archive */
+#define ZIP_ER_INTERNAL 20 /* N Internal error */
+#define ZIP_ER_INCONS 21 /* N Zip archive inconsistent */
+#define ZIP_ER_REMOVE 22 /* S Can't remove file */
+#define ZIP_ER_DELETED 23 /* N Entry has been deleted */
+#define ZIP_ER_ENCRNOTSUPP 24 /* N Encryption method not supported */
+#define ZIP_ER_RDONLY 25 /* N Read-only archive */
+#define ZIP_ER_NOPASSWD 26 /* N No password provided */
+#define ZIP_ER_WRONGPASSWD 27 /* N Wrong password provided */
+#define ZIP_ER_OPNOTSUPP 28 /* N Operation not supported */
+#define ZIP_ER_INUSE 29 /* N Resource still in use */
+#define ZIP_ER_TELL 30 /* S Tell error */
+#define ZIP_ER_COMPRESSED_DATA 31 /* N Compressed data invalid */
+
+/* type of system error value */
+
+#define ZIP_ET_NONE 0 /* sys_err unused */
+#define ZIP_ET_SYS 1 /* sys_err is errno */
+#define ZIP_ET_ZLIB 2 /* sys_err is zlib error code */
+
+/* compression methods */
+
+#define ZIP_CM_DEFAULT -1 /* better of deflate or store */
+#define ZIP_CM_STORE 0 /* stored (uncompressed) */
+#define ZIP_CM_SHRINK 1 /* shrunk */
+#define ZIP_CM_REDUCE_1 2 /* reduced with factor 1 */
+#define ZIP_CM_REDUCE_2 3 /* reduced with factor 2 */
+#define ZIP_CM_REDUCE_3 4 /* reduced with factor 3 */
+#define ZIP_CM_REDUCE_4 5 /* reduced with factor 4 */
+#define ZIP_CM_IMPLODE 6 /* imploded */
+/* 7 - Reserved for Tokenizing compression algorithm */
+#define ZIP_CM_DEFLATE 8 /* deflated */
+#define ZIP_CM_DEFLATE64 9 /* deflate64 */
+#define ZIP_CM_PKWARE_IMPLODE 10 /* PKWARE imploding */
+/* 11 - Reserved by PKWARE */
+#define ZIP_CM_BZIP2 12 /* compressed using BZIP2 algorithm */
+/* 13 - Reserved by PKWARE */
+#define ZIP_CM_LZMA 14 /* LZMA (EFS) */
+/* 15-17 - Reserved by PKWARE */
+#define ZIP_CM_TERSE 18 /* compressed using IBM TERSE (new) */
+#define ZIP_CM_LZ77 19 /* IBM LZ77 z Architecture (PFS) */
+#define ZIP_CM_XZ 95 /* XZ compressed data */
+#define ZIP_CM_JPEG 96 /* Compressed Jpeg data */
+#define ZIP_CM_WAVPACK 97 /* WavPack compressed data */
+#define ZIP_CM_PPMD 98 /* PPMd version I, Rev 1 */
+
+/* encryption methods */
+
+#define ZIP_EM_NONE 0 /* not encrypted */
+#define ZIP_EM_TRAD_PKWARE 1 /* traditional PKWARE encryption */
+#if 0 /* Strong Encryption Header not parsed yet */
+#define ZIP_EM_DES 0x6601 /* strong encryption: DES */
+#define ZIP_EM_RC2_OLD 0x6602 /* strong encryption: RC2, version < 5.2 */
+#define ZIP_EM_3DES_168 0x6603
+#define ZIP_EM_3DES_112 0x6609
+#define ZIP_EM_PKZIP_AES_128 0x660e
+#define ZIP_EM_PKZIP_AES_192 0x660f
+#define ZIP_EM_PKZIP_AES_256 0x6610
+#define ZIP_EM_RC2 0x6702 /* strong encryption: RC2, version >= 5.2 */
+#define ZIP_EM_RC4 0x6801
+#endif
+#define ZIP_EM_AES_128 0x0101 /* Winzip AES encryption */
+#define ZIP_EM_AES_192 0x0102
+#define ZIP_EM_AES_256 0x0103
+#define ZIP_EM_UNKNOWN 0xffff /* unknown algorithm */
+
+#define ZIP_OPSYS_DOS 0x00u
+#define ZIP_OPSYS_AMIGA 0x01u
+#define ZIP_OPSYS_OPENVMS 0x02u
+#define ZIP_OPSYS_UNIX 0x03u
+#define ZIP_OPSYS_VM_CMS 0x04u
+#define ZIP_OPSYS_ATARI_ST 0x05u
+#define ZIP_OPSYS_OS_2 0x06u
+#define ZIP_OPSYS_MACINTOSH 0x07u
+#define ZIP_OPSYS_Z_SYSTEM 0x08u
+#define ZIP_OPSYS_CPM 0x09u
+#define ZIP_OPSYS_WINDOWS_NTFS 0x0au
+#define ZIP_OPSYS_MVS 0x0bu
+#define ZIP_OPSYS_VSE 0x0cu
+#define ZIP_OPSYS_ACORN_RISC 0x0du
+#define ZIP_OPSYS_VFAT 0x0eu
+#define ZIP_OPSYS_ALTERNATE_MVS 0x0fu
+#define ZIP_OPSYS_BEOS 0x10u
+#define ZIP_OPSYS_TANDEM 0x11u
+#define ZIP_OPSYS_OS_400 0x12u
+#define ZIP_OPSYS_OS_X 0x13u
+
+#define ZIP_OPSYS_DEFAULT ZIP_OPSYS_UNIX
+
+enum zip_source_cmd {
+ ZIP_SOURCE_OPEN, /* prepare for reading */
+ ZIP_SOURCE_READ, /* read data */
+ ZIP_SOURCE_CLOSE, /* reading is done */
+ ZIP_SOURCE_STAT, /* get meta information */
+ ZIP_SOURCE_ERROR, /* get error information */
+ ZIP_SOURCE_FREE, /* cleanup and free resources */
+ ZIP_SOURCE_SEEK, /* set position for reading */
+ ZIP_SOURCE_TELL, /* get read position */
+ ZIP_SOURCE_BEGIN_WRITE, /* prepare for writing */
+ ZIP_SOURCE_COMMIT_WRITE, /* writing is done */
+ ZIP_SOURCE_ROLLBACK_WRITE, /* discard written changes */
+ ZIP_SOURCE_WRITE, /* write data */
+ ZIP_SOURCE_SEEK_WRITE, /* set position for writing */
+ ZIP_SOURCE_TELL_WRITE, /* get write position */
+ ZIP_SOURCE_SUPPORTS, /* check whether source supports command */
+ ZIP_SOURCE_REMOVE, /* remove file */
+ ZIP_SOURCE_GET_COMPRESSION_FLAGS, /* get compression flags, internal only */
+ ZIP_SOURCE_BEGIN_WRITE_CLONING /* like ZIP_SOURCE_BEGIN_WRITE, but keep part of original file */
+};
+typedef enum zip_source_cmd zip_source_cmd_t;
+
+#define ZIP_SOURCE_MAKE_COMMAND_BITMASK(cmd) (((zip_int64_t)1) << (cmd))
+
+// clang-format off
+
+#define ZIP_SOURCE_SUPPORTS_READABLE (ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_OPEN) \
+ | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_READ) \
+ | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_CLOSE) \
+ | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_STAT) \
+ | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_ERROR) \
+ | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_FREE))
+
+#define ZIP_SOURCE_SUPPORTS_SEEKABLE (ZIP_SOURCE_SUPPORTS_READABLE \
+ | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_SEEK) \
+ | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_TELL) \
+ | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_SUPPORTS))
+
+#define ZIP_SOURCE_SUPPORTS_WRITABLE (ZIP_SOURCE_SUPPORTS_SEEKABLE \
+ | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_BEGIN_WRITE) \
+ | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_COMMIT_WRITE) \
+ | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_ROLLBACK_WRITE) \
+ | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_WRITE) \
+ | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_SEEK_WRITE) \
+ | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_TELL_WRITE) \
+ | ZIP_SOURCE_MAKE_COMMAND_BITMASK(ZIP_SOURCE_REMOVE))
+
+// clang-format on
+
+/* for use by sources */
+struct zip_source_args_seek {
+ zip_int64_t offset;
+ int whence;
+};
+
+typedef struct zip_source_args_seek zip_source_args_seek_t;
+#define ZIP_SOURCE_GET_ARGS(type, data, len, error) ((len) < sizeof(type) ? zip_error_set((error), ZIP_ER_INVAL, 0), (type*)NULL : (type*)(data))
+
+/* error information */
+/* use zip_error_*() to access */
+struct zip_error {
+ int zip_err; /* libzip error code (ZIP_ER_*) */
+ int sys_err; /* copy of errno (E*) or zlib error code */
+ char* _Nullable str; /* string representation or NULL */
+};
+
+#define ZIP_STAT_NAME 0x0001u
+#define ZIP_STAT_INDEX 0x0002u
+#define ZIP_STAT_SIZE 0x0004u
+#define ZIP_STAT_COMP_SIZE 0x0008u
+#define ZIP_STAT_MTIME 0x0010u
+#define ZIP_STAT_CRC 0x0020u
+#define ZIP_STAT_COMP_METHOD 0x0040u
+#define ZIP_STAT_ENCRYPTION_METHOD 0x0080u
+#define ZIP_STAT_FLAGS 0x0100u
+
+struct zip_stat {
+ zip_uint64_t valid; /* which fields have valid values */
+ const char* _Nullable name; /* name of the file */
+ zip_uint64_t index; /* index within archive */
+ zip_uint64_t size; /* size of file (uncompressed) */
+ zip_uint64_t comp_size; /* size of file (compressed) */
+ time_t mtime; /* modification time */
+ zip_uint32_t crc; /* crc of file data */
+ zip_uint16_t comp_method; /* compression method used */
+ zip_uint16_t encryption_method; /* encryption method used */
+ zip_uint32_t flags; /* reserved for future use */
+};
+
+struct zip_buffer_fragment {
+ zip_uint8_t* _Nonnull data;
+ zip_uint64_t length;
+};
+
+struct zip;
+struct zip_file;
+struct zip_source;
+
+typedef struct zip zip_t;
+typedef struct zip_error zip_error_t;
+typedef struct zip_file zip_file_t;
+typedef struct zip_source zip_source_t;
+typedef struct zip_stat zip_stat_t;
+typedef struct zip_buffer_fragment zip_buffer_fragment_t;
+
+typedef zip_uint32_t zip_flags_t;
+
+typedef zip_int64_t (*zip_source_callback)(void* _Nullable, void* _Nullable, zip_uint64_t, zip_source_cmd_t);
+typedef void (*zip_progress_callback)(zip_t* _Nonnull, double, void* _Nullable);
+
+#ifndef ZIP_DISABLE_DEPRECATED
+typedef void (*zip_progress_callback_t)(double);
+ZIP_EXTERN void zip_register_progress_callback(zip_t* _Nonnull, zip_progress_callback_t _Nullable); /* use zip_register_progress_callback_with_state */
+
+ZIP_EXTERN zip_int64_t zip_add(zip_t* _Nonnull, const char* _Nonnull, zip_source_t* _Nonnull); /* use zip_file_add */
+ZIP_EXTERN zip_int64_t zip_add_dir(zip_t* _Nonnull, const char* _Nonnull); /* use zip_dir_add */
+ZIP_EXTERN const char* _Nullable zip_get_file_comment(zip_t* _Nonnull, zip_uint64_t, int* _Nullable, int); /* use zip_file_get_comment */
+ZIP_EXTERN int zip_get_num_files(zip_t* _Nonnull); /* use zip_get_num_entries instead */
+ZIP_EXTERN int zip_rename(zip_t* _Nonnull, zip_uint64_t, const char* _Nonnull); /* use zip_file_rename */
+ZIP_EXTERN int zip_replace(zip_t* _Nonnull, zip_uint64_t, zip_source_t* _Nonnull); /* use zip_file_replace */
+ZIP_EXTERN int zip_set_file_comment(zip_t* _Nonnull, zip_uint64_t, const char* _Nullable, int); /* use zip_file_set_comment */
+ZIP_EXTERN int zip_error_get_sys_type(int); /* use zip_error_system_type */
+ZIP_EXTERN void zip_error_get(zip_t* _Nonnull, int* _Nullable, int* _Nullable); /* use zip_get_error, zip_error_code_zip / zip_error_code_system */
+ZIP_EXTERN int zip_error_to_str(char* _Nonnull, zip_uint64_t, int, int); /* use zip_error_init_with_code / zip_error_strerror */
+ZIP_EXTERN void zip_file_error_get(zip_file_t* _Nonnull, int* _Nullable, int* _Nullable); /* use zip_file_get_error, zip_error_code_zip / zip_error_code_system */
+#endif
+
+ZIP_EXTERN int zip_close(zip_t* _Nonnull);
+ZIP_EXTERN int zip_delete(zip_t* _Nonnull, zip_uint64_t);
+ZIP_EXTERN zip_int64_t zip_dir_add(zip_t* _Nonnull, const char* _Nonnull, zip_flags_t);
+ZIP_EXTERN void zip_discard(zip_t* _Nonnull);
+
+ZIP_EXTERN zip_error_t* _Nonnull zip_get_error(zip_t* _Nonnull);
+ZIP_EXTERN void zip_error_clear(zip_t* _Nonnull);
+ZIP_EXTERN int zip_error_code_zip(const zip_error_t* _Nonnull);
+ZIP_EXTERN int zip_error_code_system(const zip_error_t* _Nonnull);
+ZIP_EXTERN void zip_error_fini(zip_error_t* _Nonnull);
+ZIP_EXTERN void zip_error_init(zip_error_t* _Nonnull);
+ZIP_EXTERN void zip_error_init_with_code(zip_error_t* _Nonnull, int);
+ZIP_EXTERN void zip_error_set(zip_error_t* _Nullable, int, int);
+ZIP_EXTERN const char* _Nonnull zip_error_strerror(zip_error_t* _Nonnull);
+ZIP_EXTERN int zip_error_system_type(const zip_error_t* _Nonnull);
+ZIP_EXTERN zip_int64_t zip_error_to_data(const zip_error_t* _Nonnull, void* _Nonnull, zip_uint64_t);
+
+ZIP_EXTERN int zip_fclose(zip_file_t* _Nonnull);
+ZIP_EXTERN zip_t* _Nullable zip_fdopen(int, int, int* _Nullable);
+ZIP_EXTERN zip_int64_t zip_file_add(zip_t* _Nonnull, const char* _Nonnull, zip_source_t* _Nonnull, zip_flags_t);
+ZIP_EXTERN void zip_file_error_clear(zip_file_t* _Nonnull);
+ZIP_EXTERN int zip_file_extra_field_delete(zip_t* _Nonnull, zip_uint64_t, zip_uint16_t, zip_flags_t);
+ZIP_EXTERN int zip_file_extra_field_delete_by_id(zip_t* _Nonnull, zip_uint64_t, zip_uint16_t, zip_uint16_t, zip_flags_t);
+ZIP_EXTERN int zip_file_extra_field_set(zip_t* _Nonnull, zip_uint64_t, zip_uint16_t, zip_uint16_t, const zip_uint8_t* _Nullable, zip_uint16_t, zip_flags_t);
+ZIP_EXTERN zip_int16_t zip_file_extra_fields_count(zip_t* _Nonnull, zip_uint64_t, zip_flags_t);
+ZIP_EXTERN zip_int16_t zip_file_extra_fields_count_by_id(zip_t* _Nonnull, zip_uint64_t, zip_uint16_t, zip_flags_t);
+ZIP_EXTERN const zip_uint8_t* _Nullable zip_file_extra_field_get(zip_t* _Nonnull, zip_uint64_t, zip_uint16_t, zip_uint16_t* _Nullable, zip_uint16_t* _Nullable, zip_flags_t);
+ZIP_EXTERN const zip_uint8_t* _Nullable zip_file_extra_field_get_by_id(zip_t* _Nonnull, zip_uint64_t, zip_uint16_t, zip_uint16_t, zip_uint16_t* _Nullable, zip_flags_t);
+ZIP_EXTERN const char* _Nullable zip_file_get_comment(zip_t* _Nonnull, zip_uint64_t, zip_uint32_t* _Nullable, zip_flags_t);
+ZIP_EXTERN zip_error_t* _Nonnull zip_file_get_error(zip_file_t* _Nonnull);
+ZIP_EXTERN int zip_file_get_external_attributes(zip_t* _Nonnull, zip_uint64_t, zip_flags_t, zip_uint8_t* _Nullable, zip_uint32_t* _Nullable);
+ZIP_EXTERN int zip_file_rename(zip_t* _Nonnull, zip_uint64_t, const char* _Nonnull, zip_flags_t);
+ZIP_EXTERN int zip_file_replace(zip_t* _Nonnull, zip_uint64_t, zip_source_t* _Nonnull, zip_flags_t);
+ZIP_EXTERN int zip_file_set_comment(zip_t* _Nonnull, zip_uint64_t, const char* _Nullable, zip_uint16_t, zip_flags_t);
+ZIP_EXTERN int zip_file_set_encryption(zip_t* _Nonnull, zip_uint64_t, zip_uint16_t, const char* _Nullable);
+ZIP_EXTERN int zip_file_set_external_attributes(zip_t* _Nonnull, zip_uint64_t, zip_flags_t, zip_uint8_t, zip_uint32_t);
+ZIP_EXTERN int zip_file_set_mtime(zip_t* _Nonnull, zip_uint64_t, time_t, zip_flags_t);
+ZIP_EXTERN const char* _Nonnull zip_file_strerror(zip_file_t* _Nonnull);
+ZIP_EXTERN zip_file_t* _Nullable zip_fopen(zip_t* _Nonnull, const char* _Nonnull, zip_flags_t);
+ZIP_EXTERN zip_file_t* _Nullable zip_fopen_encrypted(zip_t* _Nonnull, const char* _Nonnull, zip_flags_t, const char* _Nullable);
+ZIP_EXTERN zip_file_t* _Nullable zip_fopen_index(zip_t* _Nonnull, zip_uint64_t, zip_flags_t);
+ZIP_EXTERN zip_file_t* _Nullable zip_fopen_index_encrypted(zip_t* _Nonnull, zip_uint64_t, zip_flags_t, const char* _Nullable);
+ZIP_EXTERN zip_int64_t zip_fread(zip_file_t* _Nonnull, void* _Nonnull, zip_uint64_t);
+ZIP_EXTERN zip_int8_t zip_fseek(zip_file_t* _Nonnull, zip_int64_t, int);
+ZIP_EXTERN zip_int64_t zip_ftell(zip_file_t* _Nonnull);
+ZIP_EXTERN const char* _Nullable zip_get_archive_comment(zip_t* _Nonnull, int* _Nullable, zip_flags_t);
+ZIP_EXTERN int zip_get_archive_flag(zip_t* _Nonnull, zip_flags_t, zip_flags_t);
+ZIP_EXTERN const char* _Nullable zip_get_name(zip_t* _Nonnull, zip_uint64_t, zip_flags_t);
+ZIP_EXTERN zip_int64_t zip_get_num_entries(zip_t* _Nonnull, zip_flags_t);
+ZIP_EXTERN const char* _Nonnull zip_libzip_version(void);
+ZIP_EXTERN zip_int64_t zip_name_locate(zip_t* _Nonnull, const char* _Nonnull, zip_flags_t);
+ZIP_EXTERN zip_t* _Nullable zip_open(const char* _Nonnull, int, int* _Nullable);
+ZIP_EXTERN zip_t* _Nullable zip_open_from_source(zip_source_t* _Nonnull, int, zip_error_t* _Nullable);
+ZIP_EXTERN int zip_register_progress_callback_with_state(zip_t* _Nonnull, double, zip_progress_callback _Nullable, void (*_Nullable)(void* _Nullable), void* _Nullable);
+ZIP_EXTERN int zip_set_archive_comment(zip_t* _Nonnull, const char* _Nullable, zip_uint16_t);
+ZIP_EXTERN int zip_set_archive_flag(zip_t* _Nonnull, zip_flags_t, int);
+ZIP_EXTERN int zip_set_default_password(zip_t* _Nonnull, const char* _Nullable);
+ZIP_EXTERN int zip_set_file_compression(zip_t* _Nonnull, zip_uint64_t, zip_int32_t, zip_uint32_t);
+ZIP_EXTERN int zip_source_begin_write(zip_source_t* _Nonnull);
+ZIP_EXTERN int zip_source_begin_write_cloning(zip_source_t* _Nonnull, zip_uint64_t);
+ZIP_EXTERN zip_source_t* _Nullable zip_source_buffer(zip_t* _Nonnull, const void* _Nullable, zip_uint64_t, int);
+ZIP_EXTERN zip_source_t* _Nullable zip_source_buffer_create(const void* _Nullable, zip_uint64_t, int, zip_error_t* _Nullable);
+ZIP_EXTERN zip_source_t* _Nullable zip_source_buffer_fragment(zip_t* _Nonnull, const zip_buffer_fragment_t* _Nonnull, zip_uint64_t, int);
+ZIP_EXTERN zip_source_t* _Nullable zip_source_buffer_fragment_create(const zip_buffer_fragment_t* _Nonnull, zip_uint64_t, int, zip_error_t* _Nullable);
+ZIP_EXTERN int zip_source_close(zip_source_t* _Nonnull);
+ZIP_EXTERN int zip_source_commit_write(zip_source_t* _Nonnull);
+ZIP_EXTERN zip_error_t* _Nonnull zip_source_error(zip_source_t* _Nonnull);
+ZIP_EXTERN zip_source_t* _Nullable zip_source_file(zip_t* _Nonnull, const char* _Nonnull, zip_uint64_t, zip_int64_t);
+ZIP_EXTERN zip_source_t* _Nullable zip_source_file_create(const char* _Nonnull, zip_uint64_t, zip_int64_t, zip_error_t* _Nullable);
+ZIP_EXTERN zip_source_t* _Nullable zip_source_filep(zip_t* _Nonnull, FILE* _Nonnull, zip_uint64_t, zip_int64_t);
+ZIP_EXTERN zip_source_t* _Nullable zip_source_filep_create(FILE* _Nonnull, zip_uint64_t, zip_int64_t, zip_error_t* _Nullable);
+ZIP_EXTERN void zip_source_free(zip_source_t* _Nullable);
+ZIP_EXTERN zip_source_t* _Nullable zip_source_function(zip_t* _Nonnull, zip_source_callback _Nonnull, void* _Nullable);
+ZIP_EXTERN zip_source_t* _Nullable zip_source_function_create(zip_source_callback _Nonnull, void* _Nullable, zip_error_t* _Nullable);
+ZIP_EXTERN int zip_source_is_deleted(zip_source_t* _Nonnull);
+ZIP_EXTERN void zip_source_keep(zip_source_t* _Nonnull);
+ZIP_EXTERN zip_int64_t zip_source_make_command_bitmap(zip_source_cmd_t, ...);
+ZIP_EXTERN int zip_source_open(zip_source_t* _Nonnull);
+ZIP_EXTERN zip_int64_t zip_source_read(zip_source_t* _Nonnull, void* _Nonnull, zip_uint64_t);
+ZIP_EXTERN void zip_source_rollback_write(zip_source_t* _Nonnull);
+ZIP_EXTERN int zip_source_seek(zip_source_t* _Nonnull, zip_int64_t, int);
+ZIP_EXTERN zip_int64_t zip_source_seek_compute_offset(zip_uint64_t, zip_uint64_t, void* _Nonnull, zip_uint64_t, zip_error_t* _Nullable);
+ZIP_EXTERN int zip_source_seek_write(zip_source_t* _Nonnull, zip_int64_t, int);
+ZIP_EXTERN int zip_source_stat(zip_source_t* _Nonnull, zip_stat_t* _Nonnull);
+ZIP_EXTERN zip_int64_t zip_source_tell(zip_source_t* _Nonnull);
+ZIP_EXTERN zip_int64_t zip_source_tell_write(zip_source_t* _Nonnull);
+#ifdef _WIN32
+ZIP_EXTERN zip_source_t* zip_source_win32a(zip_t*, const char*, zip_uint64_t, zip_int64_t);
+ZIP_EXTERN zip_source_t* zip_source_win32a_create(const char*, zip_uint64_t, zip_int64_t, zip_error_t*);
+ZIP_EXTERN zip_source_t* zip_source_win32handle(zip_t*, void*, zip_uint64_t, zip_int64_t);
+ZIP_EXTERN zip_source_t* zip_source_win32handle_create(void*, zip_uint64_t, zip_int64_t, zip_error_t*);
+ZIP_EXTERN zip_source_t* zip_source_win32w(zip_t*, const wchar_t*, zip_uint64_t, zip_int64_t);
+ZIP_EXTERN zip_source_t* zip_source_win32w_create(const wchar_t*, zip_uint64_t, zip_int64_t, zip_error_t*);
+#endif
+ZIP_EXTERN zip_int64_t zip_source_write(zip_source_t* _Nonnull, const void* _Nullable, zip_uint64_t);
+ZIP_EXTERN zip_source_t* _Nullable zip_source_zip(zip_t* _Nonnull, zip_t* _Nonnull, zip_uint64_t, zip_flags_t, zip_uint64_t, zip_int64_t);
+ZIP_EXTERN int zip_stat(zip_t* _Nonnull, const char* _Nonnull, zip_flags_t, zip_stat_t* _Nonnull);
+ZIP_EXTERN int zip_stat_index(zip_t* _Nonnull, zip_uint64_t, zip_flags_t, zip_stat_t* _Nonnull);
+ZIP_EXTERN void zip_stat_init(zip_stat_t* _Nonnull);
+ZIP_EXTERN const char* _Nonnull zip_strerror(zip_t* _Nonnull);
+ZIP_EXTERN int zip_unchange(zip_t* _Nonnull, zip_uint64_t);
+ZIP_EXTERN int zip_unchange_all(zip_t* _Nonnull);
+ZIP_EXTERN int zip_unchange_archive(zip_t* _Nonnull);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _HAD_ZIP_H */
diff --git a/plugins/TKLiveSync/libzip_iOS.xcframework/ios-x86_64-maccatalyst/libzip_iOS.framework/Versions/A/Headers/zip_crypto.h b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-x86_64-maccatalyst/libzip_iOS.framework/Versions/A/Headers/zip_crypto.h
new file mode 100644
index 000000000..585de211c
--- /dev/null
+++ b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-x86_64-maccatalyst/libzip_iOS.framework/Versions/A/Headers/zip_crypto.h
@@ -0,0 +1,54 @@
+/*
+ zip_crypto.h -- crypto definitions
+ Copyright (C) 2017-2018 Dieter Baron and Thomas Klausner
+
+ This file is part of libzip, a library to manipulate ZIP archives.
+ The authors can be contacted at
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+ 3. The names of the authors may not be used to endorse or promote
+ products derived from this software without specific prior
+ written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS
+ OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
+ DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+ GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+ IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+ IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#ifndef HAD_ZIP_CRYPTO_H
+#define HAD_ZIP_CRYPTO_H
+
+#define ZIP_CRYPTO_SHA1_LENGTH 20
+#define ZIP_CRYPTO_AES_BLOCK_LENGTH 16
+
+#if defined(HAVE_WINDOWS_CRYPTO)
+#include "zip_crypto_win.h"
+#elif defined(HAVE_COMMONCRYPTO)
+#include "zip_crypto_commoncrypto.h"
+#elif defined(HAVE_GNUTLS)
+#include "zip_crypto_gnutls.h"
+#elif defined(HAVE_OPENSSL)
+#include "zip_crypto_openssl.h"
+#elif defined(HAVE_MBEDTLS)
+#include "zip_crypto_mbedtls.h"
+#else
+#error "no crypto backend found"
+#endif
+
+#endif /* HAD_ZIP_CRYPTO_H */
diff --git a/plugins/TKLiveSync/libzip_iOS.xcframework/ios-x86_64-maccatalyst/libzip_iOS.framework/Versions/A/Headers/zip_crypto_commoncrypto.h b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-x86_64-maccatalyst/libzip_iOS.framework/Versions/A/Headers/zip_crypto_commoncrypto.h
new file mode 100644
index 000000000..aa42d3724
--- /dev/null
+++ b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-x86_64-maccatalyst/libzip_iOS.framework/Versions/A/Headers/zip_crypto_commoncrypto.h
@@ -0,0 +1,53 @@
+/*
+ zip_crypto_commoncrypto.h -- definitions for CommonCrypto wrapper.
+ Copyright (C) 2018 Dieter Baron and Thomas Klausner
+
+ This file is part of libzip, a library to manipulate ZIP archives.
+ The authors can be contacted at
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+ 3. The names of the authors may not be used to endorse or promote
+ products derived from this software without specific prior
+ written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS
+ OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
+ DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+ GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+ IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+ IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#ifndef HAD_ZIP_CRYPTO_COMMONCRYPTO_H
+#define HAD_ZIP_CRYPTO_COMMONCRYPTO_H
+
+#include
+
+#define _zip_crypto_aes_t struct _CCCryptor
+#define _zip_crypto_hmac_t CCHmacContext
+
+void _zip_crypto_aes_free(_zip_crypto_aes_t* aes);
+bool _zip_crypto_aes_encrypt_block(_zip_crypto_aes_t* aes, const zip_uint8_t* in, zip_uint8_t* out);
+_zip_crypto_aes_t* _zip_crypto_aes_new(const zip_uint8_t* key, zip_uint16_t key_size, zip_error_t* error);
+
+#define _zip_crypto_hmac(hmac, data, length) (CCHmacUpdate((hmac), (data), (length)), true)
+void _zip_crypto_hmac_free(_zip_crypto_hmac_t* hmac);
+_zip_crypto_hmac_t* _zip_crypto_hmac_new(const zip_uint8_t* secret, zip_uint64_t secret_length, zip_error_t* error);
+#define _zip_crypto_hmac_output(hmac, data) (CCHmacFinal((hmac), (data)), true)
+
+#define _zip_crypto_pbkdf2(key, key_length, salt, salt_length, iterations, output, output_length) (CCKeyDerivationPBKDF(kCCPBKDF2, (const char*)(key), (key_length), (salt), (salt_length), kCCPRFHmacAlgSHA1, (iterations), (output), (output_length)) == kCCSuccess)
+
+#endif /* HAD_ZIP_CRYPTO_COMMONCRYPTO_H */
diff --git a/plugins/TKLiveSync/libzip_iOS.xcframework/ios-x86_64-maccatalyst/libzip_iOS.framework/Versions/A/Headers/zip_crypto_gnutls.h b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-x86_64-maccatalyst/libzip_iOS.framework/Versions/A/Headers/zip_crypto_gnutls.h
new file mode 100644
index 000000000..01d854f72
--- /dev/null
+++ b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-x86_64-maccatalyst/libzip_iOS.framework/Versions/A/Headers/zip_crypto_gnutls.h
@@ -0,0 +1,65 @@
+/*
+ zip_crypto_gnutls.h -- definitions for GnuTLS wrapper.
+ Copyright (C) 2018 Dieter Baron and Thomas Klausner
+
+ This file is part of libzip, a library to manipulate ZIP archives.
+ The authors can be contacted at
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+ 3. The names of the authors may not be used to endorse or promote
+ products derived from this software without specific prior
+ written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS
+ OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
+ DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+ GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+ IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+ IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#ifndef HAD_ZIP_CRYPTO_GNUTLS_H
+#define HAD_ZIP_CRYPTO_GNUTLS_H
+
+#include
+#include
+
+#include
+#include
+
+typedef struct {
+ union {
+ struct aes128_ctx ctx_128;
+ struct aes192_ctx ctx_192;
+ struct aes256_ctx ctx_256;
+ } ctx;
+ zip_uint16_t key_size;
+} _zip_crypto_aes_t;
+
+#define _zip_crypto_hmac_t gnutls_hmac_hd_t
+
+void _zip_crypto_aes_free(_zip_crypto_aes_t* aes);
+bool _zip_crypto_aes_encrypt_block(_zip_crypto_aes_t* aes, const zip_uint8_t* in, zip_uint8_t* out);
+_zip_crypto_aes_t* _zip_crypto_aes_new(const zip_uint8_t* key, zip_uint16_t key_size, zip_error_t* error);
+
+#define _zip_crypto_hmac(hmac, data, length) (gnutls_hmac(*(hmac), (data), (length)) == 0)
+void _zip_crypto_hmac_free(_zip_crypto_hmac_t* hmac);
+_zip_crypto_hmac_t* _zip_crypto_hmac_new(const zip_uint8_t* secret, zip_uint64_t secret_length, zip_error_t* error);
+#define _zip_crypto_hmac_output(hmac, data) (gnutls_hmac_output(*(hmac), (data)), true)
+
+#define _zip_crypto_pbkdf2(key, key_length, salt, salt_length, iterations, output, output_length) (pbkdf2_hmac_sha1((key_length), (key), (iterations), (salt_length), (salt), (output_length), (output)), true)
+
+#endif /* HAD_ZIP_CRYPTO_GNUTLS_H */
diff --git a/plugins/TKLiveSync/libzip_iOS.xcframework/ios-x86_64-maccatalyst/libzip_iOS.framework/Versions/A/Headers/zip_crypto_mbedtls.h b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-x86_64-maccatalyst/libzip_iOS.framework/Versions/A/Headers/zip_crypto_mbedtls.h
new file mode 100644
index 000000000..259f174db
--- /dev/null
+++ b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-x86_64-maccatalyst/libzip_iOS.framework/Versions/A/Headers/zip_crypto_mbedtls.h
@@ -0,0 +1,54 @@
+/*
+ zip_crypto_mbedtls.h -- definitions for mbedtls wrapper
+ Copyright (C) 2018 Dieter Baron and Thomas Klausner
+
+ This file is part of libzip, a library to manipulate ZIP archives.
+ The authors can be contacted at
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+ 3. The names of the authors may not be used to endorse or promote
+ products derived from this software without specific prior
+ written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS
+ OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
+ DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+ GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+ IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+ IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#ifndef HAD_ZIP_CRYPTO_MBEDTLS_H
+#define HAD_ZIP_CRYPTO_MBEDTLS_H
+
+#include
+#include
+
+#define _zip_crypto_aes_t mbedtls_aes_context
+#define _zip_crypto_hmac_t mbedtls_md_context_t
+
+_zip_crypto_aes_t* _zip_crypto_aes_new(const zip_uint8_t* key, zip_uint16_t key_size, zip_error_t* error);
+#define _zip_crypto_aes_encrypt_block(aes, in, out) (mbedtls_aes_crypt_ecb((aes), MBEDTLS_AES_ENCRYPT, (in), (out)) == 0)
+void _zip_crypto_aes_free(_zip_crypto_aes_t* aes);
+
+_zip_crypto_hmac_t* _zip_crypto_hmac_new(const zip_uint8_t* secret, zip_uint64_t secret_length, zip_error_t* error);
+#define _zip_crypto_hmac(hmac, data, length) (mbedtls_md_hmac_update((hmac), (data), (length)) == 0)
+#define _zip_crypto_hmac_output(hmac, data) (mbedtls_md_hmac_finish((hmac), (data)) == 0)
+void _zip_crypto_hmac_free(_zip_crypto_hmac_t* hmac);
+
+bool _zip_crypto_pbkdf2(const zip_uint8_t* key, zip_uint64_t key_length, const zip_uint8_t* salt, zip_uint16_t salt_length, int iterations, zip_uint8_t* output, zip_uint64_t output_length);
+
+#endif /* HAD_ZIP_CRYPTO_MBEDTLS_H */
diff --git a/plugins/TKLiveSync/libzip_iOS.xcframework/ios-x86_64-maccatalyst/libzip_iOS.framework/Versions/A/Headers/zip_crypto_openssl.h b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-x86_64-maccatalyst/libzip_iOS.framework/Versions/A/Headers/zip_crypto_openssl.h
new file mode 100644
index 000000000..742efb40f
--- /dev/null
+++ b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-x86_64-maccatalyst/libzip_iOS.framework/Versions/A/Headers/zip_crypto_openssl.h
@@ -0,0 +1,54 @@
+/*
+ zip_crypto_openssl.h -- definitions for OpenSSL wrapper.
+ Copyright (C) 2018 Dieter Baron and Thomas Klausner
+
+ This file is part of libzip, a library to manipulate ZIP archives.
+ The authors can be contacted at
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+ 3. The names of the authors may not be used to endorse or promote
+ products derived from this software without specific prior
+ written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS
+ OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
+ DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+ GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+ IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+ IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#ifndef HAD_ZIP_CRYPTO_OPENSSL_H
+#define HAD_ZIP_CRYPTO_OPENSSL_H
+
+#include
+#include
+
+#define _zip_crypto_aes_t AES_KEY
+#define _zip_crypto_hmac_t HMAC_CTX
+
+void _zip_crypto_aes_free(_zip_crypto_aes_t* aes);
+#define _zip_crypto_aes_encrypt_block(aes, in, out) (AES_encrypt((in), (out), (aes)), true)
+_zip_crypto_aes_t* _zip_crypto_aes_new(const zip_uint8_t* key, zip_uint16_t key_size, zip_error_t* error);
+
+#define _zip_crypto_hmac(hmac, data, length) (HMAC_Update((hmac), (data), (length)) == 1)
+void _zip_crypto_hmac_free(_zip_crypto_hmac_t* hmac);
+_zip_crypto_hmac_t* _zip_crypto_hmac_new(const zip_uint8_t* secret, zip_uint64_t secret_length, zip_error_t* error);
+bool _zip_crypto_hmac_output(_zip_crypto_hmac_t* hmac, zip_uint8_t* data);
+
+#define _zip_crypto_pbkdf2(key, key_length, salt, salt_length, iterations, output, output_length) (PKCS5_PBKDF2_HMAC_SHA1((const char*)(key), (key_length), (salt), (salt_length), (iterations), (output_length), (output)))
+
+#endif /* HAD_ZIP_CRYPTO_OPENSSL_H */
diff --git a/plugins/TKLiveSync/libzip_iOS.xcframework/ios-x86_64-maccatalyst/libzip_iOS.framework/Versions/A/Headers/zip_crypto_win.h b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-x86_64-maccatalyst/libzip_iOS.framework/Versions/A/Headers/zip_crypto_win.h
new file mode 100644
index 000000000..f7635e09b
--- /dev/null
+++ b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-x86_64-maccatalyst/libzip_iOS.framework/Versions/A/Headers/zip_crypto_win.h
@@ -0,0 +1,51 @@
+/*
+ zip_crypto_win.h -- Windows Crypto API wrapper.
+ Copyright (C) 2018 Dieter Baron and Thomas Klausner
+
+ This file is part of libzip, a library to manipulate ZIP archives.
+ The authors can be contacted at
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+ 3. The names of the authors may not be used to endorse or promote
+ products derived from this software without specific prior
+ written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS
+ OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
+ DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+ GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+ IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+ IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#ifndef HAD_ZIP_CRYPTO_WIN_H
+#define HAD_ZIP_CRYPTO_WIN_H
+
+typedef struct _zip_crypto_aes_s _zip_crypto_aes_t;
+typedef struct _zip_crypto_hmac_s _zip_crypto_hmac_t;
+
+void _zip_crypto_aes_free(_zip_crypto_aes_t* aes);
+_zip_crypto_aes_t* _zip_crypto_aes_new(const zip_uint8_t* key, zip_uint16_t key_size, zip_error_t* error);
+bool _zip_crypto_aes_encrypt_block(_zip_crypto_aes_t* aes, const zip_uint8_t* in, zip_uint8_t* out);
+
+bool _zip_crypto_pbkdf2(const zip_uint8_t* key, zip_uint64_t key_length, const zip_uint8_t* salt, zip_uint16_t salt_length, zip_uint16_t iterations, zip_uint8_t* output, zip_uint16_t output_length);
+
+_zip_crypto_hmac_t* _zip_crypto_hmac_new(const zip_uint8_t* secret, zip_uint64_t secret_length, zip_error_t* error);
+void _zip_crypto_hmac_free(_zip_crypto_hmac_t* hmac);
+bool _zip_crypto_hmac(_zip_crypto_hmac_t* hmac, zip_uint8_t* data, zip_uint64_t length);
+bool _zip_crypto_hmac_output(_zip_crypto_hmac_t* hmac, zip_uint8_t* data);
+
+#endif /* HAD_ZIP_CRYPTO_WIN_H */
diff --git a/plugins/TKLiveSync/libzip_iOS.xcframework/ios-x86_64-maccatalyst/libzip_iOS.framework/Versions/A/Headers/zipconf.h b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-x86_64-maccatalyst/libzip_iOS.framework/Versions/A/Headers/zipconf.h
new file mode 100644
index 000000000..4585bf329
--- /dev/null
+++ b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-x86_64-maccatalyst/libzip_iOS.framework/Versions/A/Headers/zipconf.h
@@ -0,0 +1,45 @@
+#ifndef _HAD_ZIPCONF_H
+#define _HAD_ZIPCONF_H
+
+/*
+ zipconf.h -- platform specific include file
+
+ This file was generated automatically by CMake
+ based on ../cmake-zipconf.h.in.
+ */
+
+#define LIBZIP_VERSION "1.5.2"
+#define LIBZIP_VERSION_MAJOR 1
+#define LIBZIP_VERSION_MINOR 5
+#define LIBZIP_VERSION_MICRO 2
+
+#define ZIP_STATIC
+
+#include
+
+typedef int8_t zip_int8_t;
+typedef uint8_t zip_uint8_t;
+typedef int16_t zip_int16_t;
+typedef uint16_t zip_uint16_t;
+typedef int32_t zip_int32_t;
+typedef uint32_t zip_uint32_t;
+typedef int64_t zip_int64_t;
+typedef uint64_t zip_uint64_t;
+
+#define ZIP_INT8_MIN (-ZIP_INT8_MAX - 1)
+#define ZIP_INT8_MAX 0x7f
+#define ZIP_UINT8_MAX 0xff
+
+#define ZIP_INT16_MIN (-ZIP_INT16_MAX - 1)
+#define ZIP_INT16_MAX 0x7fff
+#define ZIP_UINT16_MAX 0xffff
+
+#define ZIP_INT32_MIN (-ZIP_INT32_MAX - 1L)
+#define ZIP_INT32_MAX 0x7fffffffL
+#define ZIP_UINT32_MAX 0xffffffffLU
+
+#define ZIP_INT64_MIN (-ZIP_INT64_MAX - 1LL)
+#define ZIP_INT64_MAX 0x7fffffffffffffffLL
+#define ZIP_UINT64_MAX 0xffffffffffffffffULL
+
+#endif /* zipconf.h */
diff --git a/plugins/TKLiveSync/libzip_iOS.xcframework/ios-x86_64-maccatalyst/libzip_iOS.framework/Versions/A/Headers/zipint.h b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-x86_64-maccatalyst/libzip_iOS.framework/Versions/A/Headers/zipint.h
new file mode 100644
index 000000000..48609d972
--- /dev/null
+++ b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-x86_64-maccatalyst/libzip_iOS.framework/Versions/A/Headers/zipint.h
@@ -0,0 +1,579 @@
+#ifndef _HAD_ZIPINT_H
+#define _HAD_ZIPINT_H
+
+/*
+ zipint.h -- internal declarations.
+ Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
+
+ This file is part of libzip, a library to manipulate ZIP archives.
+ The authors can be contacted at
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+ 3. The names of the authors may not be used to endorse or promote
+ products derived from this software without specific prior
+ written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS
+ OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
+ DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+ GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+ IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+ IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "compat.h"
+
+#ifdef ZIP_ALLOCATE_BUFFER
+#include
+#endif
+
+#include
+
+#ifndef _ZIP_COMPILING_DEPRECATED
+#define ZIP_DISABLE_DEPRECATED
+#endif
+
+#include "zip.h"
+
+#define CENTRAL_MAGIC "PK\1\2"
+#define LOCAL_MAGIC "PK\3\4"
+#define EOCD_MAGIC "PK\5\6"
+#define DATADES_MAGIC "PK\7\10"
+#define EOCD64LOC_MAGIC "PK\6\7"
+#define EOCD64_MAGIC "PK\6\6"
+#define CDENTRYSIZE 46u
+#define LENTRYSIZE 30
+#define MAXCOMLEN 65536
+#define MAXEXTLEN 65536
+#define EOCDLEN 22
+#define EOCD64LOCLEN 20
+#define EOCD64LEN 56
+#define CDBUFSIZE (MAXCOMLEN + EOCDLEN + EOCD64LOCLEN)
+#define BUFSIZE 8192
+#define EFZIP64SIZE 28
+#define EF_WINZIP_AES_SIZE 7
+
+#define ZIP_CM_REPLACED_DEFAULT (-2)
+#define ZIP_CM_WINZIP_AES 99 /* Winzip AES encrypted */
+
+#define WINZIP_AES_PASSWORD_VERIFY_LENGTH 2
+#define WINZIP_AES_MAX_HEADER_LENGTH (16 + WINZIP_AES_PASSWORD_VERIFY_LENGTH)
+#define AES_BLOCK_SIZE 16
+#define HMAC_LENGTH 10
+#define SHA1_LENGTH 20
+#define SALT_LENGTH(method) ((method) == ZIP_EM_AES_128 ? 8 : ((method) == ZIP_EM_AES_192 ? 12 : 16))
+
+#define ZIP_CM_IS_DEFAULT(x) ((x) == ZIP_CM_DEFAULT || (x) == ZIP_CM_REPLACED_DEFAULT)
+#define ZIP_CM_ACTUAL(x) ((zip_uint16_t)(ZIP_CM_IS_DEFAULT(x) ? ZIP_CM_DEFLATE : (x)))
+
+#define ZIP_EF_UTF_8_COMMENT 0x6375
+#define ZIP_EF_UTF_8_NAME 0x7075
+#define ZIP_EF_WINZIP_AES 0x9901
+#define ZIP_EF_ZIP64 0x0001
+
+#define ZIP_EF_IS_INTERNAL(id) ((id) == ZIP_EF_UTF_8_COMMENT || (id) == ZIP_EF_UTF_8_NAME || (id) == ZIP_EF_WINZIP_AES || (id) == ZIP_EF_ZIP64)
+
+/* according to unzip-6.0's zipinfo.c, this corresponds to a regular file with rw permissions for everyone */
+#define ZIP_EXT_ATTRIB_DEFAULT (0100666u << 16)
+/* according to unzip-6.0's zipinfo.c, this corresponds to a directory with rwx permissions for everyone */
+#define ZIP_EXT_ATTRIB_DEFAULT_DIR (0040777u << 16)
+
+#define ZIP_MAX(a, b) ((a) > (b) ? (a) : (b))
+#define ZIP_MIN(a, b) ((a) < (b) ? (a) : (b))
+
+/* This section contains API that won't materialize like this. It's
+ placed in the internal section, pending cleanup. */
+
+/* flags for compression and encryption sources */
+
+#define ZIP_CODEC_DECODE 0 /* decompress/decrypt (encode flag not set) */
+#define ZIP_CODEC_ENCODE 1 /* compress/encrypt */
+
+typedef zip_source_t* (*zip_encryption_implementation)(zip_t*, zip_source_t*, zip_uint16_t, int, const char*);
+
+zip_encryption_implementation _zip_get_encryption_implementation(zip_uint16_t method, int operation);
+
+// clang-format off
+enum zip_compression_status {
+ ZIP_COMPRESSION_OK,
+ ZIP_COMPRESSION_END,
+ ZIP_COMPRESSION_ERROR,
+ ZIP_COMPRESSION_NEED_DATA
+};
+// clang-format on
+typedef enum zip_compression_status zip_compression_status_t;
+
+struct zip_compression_algorithm {
+ /* called once to create new context */
+ void* (*allocate)(zip_uint16_t method, int compression_flags, zip_error_t* error);
+ /* called once to free context */
+ void (*deallocate)(void* ctx);
+
+ /* get compression specific general purpose bitflags */
+ int (*compression_flags)(void* ctx);
+
+ /* start processing */
+ bool (*start)(void* ctx);
+ /* stop processing */
+ bool (*end)(void* ctx);
+
+ /* provide new input data, remains valid until next call to input or end */
+ bool (*input)(void* ctx, zip_uint8_t* data, zip_uint64_t length);
+
+ /* all input data has been provided */
+ void (*end_of_input)(void* ctx);
+
+ /* process input data, writing to data, which has room for length bytes, update length to number of bytes written */
+ zip_compression_status_t (*process)(void* ctx, zip_uint8_t* data, zip_uint64_t* length);
+};
+typedef struct zip_compression_algorithm zip_compression_algorithm_t;
+
+extern zip_compression_algorithm_t zip_algorithm_bzip2_compress;
+extern zip_compression_algorithm_t zip_algorithm_bzip2_decompress;
+extern zip_compression_algorithm_t zip_algorithm_deflate_compress;
+extern zip_compression_algorithm_t zip_algorithm_deflate_decompress;
+
+bool zip_compression_method_supported(zip_int32_t method, bool compress);
+
+/* This API is not final yet, but we need it internally, so it's private for now. */
+
+const zip_uint8_t* zip_get_extra_field_by_id(zip_t*, int, int, zip_uint16_t, int, zip_uint16_t*);
+
+/* This section contains API that is of limited use until support for
+ user-supplied compression/encryption implementation is finished.
+ Thus we will keep it private for now. */
+
+typedef zip_int64_t (*zip_source_layered_callback)(zip_source_t*, void*, void*, zip_uint64_t, enum zip_source_cmd);
+zip_source_t* zip_source_compress(zip_t* za, zip_source_t* src, zip_int32_t cm, int compression_flags);
+zip_source_t* zip_source_crc(zip_t*, zip_source_t*, int);
+zip_source_t* zip_source_decompress(zip_t* za, zip_source_t* src, zip_int32_t cm);
+zip_source_t* zip_source_layered(zip_t*, zip_source_t*, zip_source_layered_callback, void*);
+zip_source_t* zip_source_layered_create(zip_source_t* src, zip_source_layered_callback cb, void* ud, zip_error_t* error);
+zip_source_t* zip_source_pkware(zip_t*, zip_source_t*, zip_uint16_t, int, const char*);
+int zip_source_remove(zip_source_t*);
+zip_int64_t zip_source_supports(zip_source_t* src);
+zip_source_t* zip_source_window(zip_t*, zip_source_t*, zip_uint64_t, zip_uint64_t);
+zip_source_t* zip_source_winzip_aes_decode(zip_t*, zip_source_t*, zip_uint16_t, int, const char*);
+zip_source_t* zip_source_winzip_aes_encode(zip_t*, zip_source_t*, zip_uint16_t, int, const char*);
+
+/* error source for layered sources */
+
+enum zip_les { ZIP_LES_NONE,
+ ZIP_LES_UPPER,
+ ZIP_LES_LOWER,
+ ZIP_LES_INVAL };
+
+/* directory entry: general purpose bit flags */
+
+#define ZIP_GPBF_ENCRYPTED 0x0001u /* is encrypted */
+#define ZIP_GPBF_DATA_DESCRIPTOR 0x0008u /* crc/size after file data */
+#define ZIP_GPBF_STRONG_ENCRYPTION 0x0040u /* uses strong encryption */
+#define ZIP_GPBF_ENCODING_UTF_8 0x0800u /* file name encoding is UTF-8 */
+
+/* extra fields */
+#define ZIP_EF_LOCAL ZIP_FL_LOCAL /* include in local header */
+#define ZIP_EF_CENTRAL ZIP_FL_CENTRAL /* include in central directory */
+#define ZIP_EF_BOTH (ZIP_EF_LOCAL | ZIP_EF_CENTRAL) /* include in both */
+
+#define ZIP_FL_FORCE_ZIP64 1024 /* force zip64 extra field (_zip_dirent_write) */
+
+#define ZIP_FL_ENCODING_ALL (ZIP_FL_ENC_GUESS | ZIP_FL_ENC_CP437 | ZIP_FL_ENC_UTF_8)
+
+/* encoding type */
+enum zip_encoding_type {
+ ZIP_ENCODING_UNKNOWN, /* not yet analyzed */
+ ZIP_ENCODING_ASCII, /* plain ASCII */
+ ZIP_ENCODING_UTF8_KNOWN, /* is UTF-8 */
+ ZIP_ENCODING_UTF8_GUESSED, /* possibly UTF-8 */
+ ZIP_ENCODING_CP437, /* Code Page 437 */
+ ZIP_ENCODING_ERROR /* should be UTF-8 but isn't */
+};
+
+typedef enum zip_encoding_type zip_encoding_type_t;
+
+struct zip_hash;
+struct zip_progress;
+
+typedef struct zip_cdir zip_cdir_t;
+typedef struct zip_dirent zip_dirent_t;
+typedef struct zip_entry zip_entry_t;
+typedef struct zip_extra_field zip_extra_field_t;
+typedef struct zip_string zip_string_t;
+typedef struct zip_buffer zip_buffer_t;
+typedef struct zip_hash zip_hash_t;
+typedef struct zip_progress zip_progress_t;
+
+/* zip archive, part of API */
+
+struct zip {
+ zip_source_t* src; /* data source for archive */
+ unsigned int open_flags; /* flags passed to zip_open */
+ zip_error_t error; /* error information */
+
+ unsigned int flags; /* archive global flags */
+ unsigned int ch_flags; /* changed archive global flags */
+
+ char* default_password; /* password used when no other supplied */
+
+ zip_string_t* comment_orig; /* archive comment */
+ zip_string_t* comment_changes; /* changed archive comment */
+ bool comment_changed; /* whether archive comment was changed */
+
+ zip_uint64_t nentry; /* number of entries */
+ zip_uint64_t nentry_alloc; /* number of entries allocated */
+ zip_entry_t* entry; /* entries */
+
+ unsigned int nopen_source; /* number of open sources using archive */
+ unsigned int nopen_source_alloc; /* number of sources allocated */
+ zip_source_t** open_source; /* open sources using archive */
+
+ zip_hash_t* names; /* hash table for name lookup */
+
+ zip_progress_t* progress; /* progress callback for zip_close() */
+};
+
+/* file in zip archive, part of API */
+
+struct zip_file {
+ zip_t* za; /* zip archive containing this file */
+ zip_error_t error; /* error information */
+ bool eof;
+ zip_source_t* src; /* data source */
+};
+
+/* zip archive directory entry (central or local) */
+
+#define ZIP_DIRENT_COMP_METHOD 0x0001u
+#define ZIP_DIRENT_FILENAME 0x0002u
+#define ZIP_DIRENT_COMMENT 0x0004u
+#define ZIP_DIRENT_EXTRA_FIELD 0x0008u
+#define ZIP_DIRENT_ATTRIBUTES 0x0010u
+#define ZIP_DIRENT_LAST_MOD 0x0020u
+#define ZIP_DIRENT_ENCRYPTION_METHOD 0x0040u
+#define ZIP_DIRENT_PASSWORD 0x0080u
+#define ZIP_DIRENT_ALL ZIP_UINT32_MAX
+
+struct zip_dirent {
+ zip_uint32_t changed;
+ bool local_extra_fields_read; /* whether we already read in local header extra fields */
+ bool cloned; /* whether this instance is cloned, and thus shares non-changed strings */
+
+ bool crc_valid; /* if CRC is valid (sometimes not for encrypted archives) */
+
+ zip_uint16_t version_madeby; /* (c) version of creator */
+ zip_uint16_t version_needed; /* (cl) version needed to extract */
+ zip_uint16_t bitflags; /* (cl) general purpose bit flag */
+ zip_int32_t comp_method; /* (cl) compression method used (uint16 and ZIP_CM_DEFAULT (-1)) */
+ time_t last_mod; /* (cl) time of last modification */
+ zip_uint32_t crc; /* (cl) CRC-32 of uncompressed data */
+ zip_uint64_t comp_size; /* (cl) size of compressed data */
+ zip_uint64_t uncomp_size; /* (cl) size of uncompressed data */
+ zip_string_t* filename; /* (cl) file name (NUL-terminated) */
+ zip_extra_field_t* extra_fields; /* (cl) extra fields, parsed */
+ zip_string_t* comment; /* (c) file comment */
+ zip_uint32_t disk_number; /* (c) disk number start */
+ zip_uint16_t int_attrib; /* (c) internal file attributes */
+ zip_uint32_t ext_attrib; /* (c) external file attributes */
+ zip_uint64_t offset; /* (c) offset of local header */
+
+ zip_uint16_t compression_level; /* level of compression to use (never valid in orig) */
+ zip_uint16_t encryption_method; /* encryption method, computed from other fields */
+ char* password; /* file specific encryption password */
+};
+
+/* zip archive central directory */
+
+struct zip_cdir {
+ zip_entry_t* entry; /* directory entries */
+ zip_uint64_t nentry; /* number of entries */
+ zip_uint64_t nentry_alloc; /* number of entries allocated */
+
+ zip_uint64_t size; /* size of central directory */
+ zip_uint64_t offset; /* offset of central directory in file */
+ zip_string_t* comment; /* zip archive comment */
+ bool is_zip64; /* central directory in zip64 format */
+};
+
+struct zip_extra_field {
+ zip_extra_field_t* next;
+ zip_flags_t flags; /* in local/central header */
+ zip_uint16_t id; /* header id */
+ zip_uint16_t size; /* data size */
+ zip_uint8_t* data;
+};
+
+enum zip_source_write_state {
+ ZIP_SOURCE_WRITE_CLOSED, /* write is not in progress */
+ ZIP_SOURCE_WRITE_OPEN, /* write is in progress */
+ ZIP_SOURCE_WRITE_FAILED, /* commit failed, only rollback allowed */
+ ZIP_SOURCE_WRITE_REMOVED /* file was removed */
+};
+typedef enum zip_source_write_state zip_source_write_state_t;
+
+struct zip_source {
+ zip_source_t* src;
+ union {
+ zip_source_callback f;
+ zip_source_layered_callback l;
+ } cb;
+ void* ud;
+ zip_error_t error;
+ zip_int64_t supports; /* supported commands */
+ unsigned int open_count; /* number of times source was opened (directly or as lower layer) */
+ zip_source_write_state_t write_state; /* whether source is open for writing */
+ bool source_closed; /* set if source archive is closed */
+ zip_t* source_archive; /* zip archive we're reading from, NULL if not from archive */
+ unsigned int refcount;
+ bool eof; /* EOF reached */
+ bool had_read_error; /* a previous ZIP_SOURCE_READ reported an error */
+};
+
+#define ZIP_SOURCE_IS_OPEN_READING(src) ((src)->open_count > 0)
+#define ZIP_SOURCE_IS_OPEN_WRITING(src) ((src)->write_state == ZIP_SOURCE_WRITE_OPEN)
+#define ZIP_SOURCE_IS_LAYERED(src) ((src)->src != NULL)
+
+/* entry in zip archive directory */
+
+struct zip_entry {
+ zip_dirent_t* orig;
+ zip_dirent_t* changes;
+ zip_source_t* source;
+ bool deleted;
+};
+
+/* file or archive comment, or filename */
+
+struct zip_string {
+ zip_uint8_t* raw; /* raw string */
+ zip_uint16_t length; /* length of raw string */
+ enum zip_encoding_type encoding; /* autorecognized encoding */
+ zip_uint8_t* converted; /* autoconverted string */
+ zip_uint32_t converted_length; /* length of converted */
+};
+
+/* byte array */
+
+/* For performance, we usually keep 8k byte arrays on the stack.
+ However, there are (embedded) systems with a stack size of 12k;
+ for those, use malloc()/free() */
+
+#ifdef ZIP_ALLOCATE_BUFFER
+#define DEFINE_BYTE_ARRAY(buf, size) zip_uint8_t* buf
+#define byte_array_init(buf, size) (((buf) = (zip_uint8_t*)malloc(size)) != NULL)
+#define byte_array_fini(buf) (free(buf))
+#else
+#define DEFINE_BYTE_ARRAY(buf, size) zip_uint8_t buf[size]
+#define byte_array_init(buf, size) (1)
+#define byte_array_fini(buf) ((void)0)
+#endif
+
+/* bounds checked access to memory buffer */
+
+struct zip_buffer {
+ bool ok;
+ bool free_data;
+
+ zip_uint8_t* data;
+ zip_uint64_t size;
+ zip_uint64_t offset;
+};
+
+/* which files to write in which order */
+
+struct zip_filelist {
+ zip_uint64_t idx;
+ /* TODO const char *name; */
+};
+
+typedef struct zip_filelist zip_filelist_t;
+
+struct _zip_winzip_aes;
+typedef struct _zip_winzip_aes zip_winzip_aes_t;
+
+extern const char* const _zip_err_str[];
+extern const int _zip_nerr_str;
+extern const int _zip_err_type[];
+
+#define ZIP_MAX(a, b) ((a) > (b) ? (a) : (b))
+#define ZIP_MIN(a, b) ((a) < (b) ? (a) : (b))
+
+#define ZIP_ENTRY_CHANGED(e, f) ((e)->changes && ((e)->changes->changed & (f)))
+#define ZIP_ENTRY_DATA_CHANGED(x) ((x)->source != NULL)
+#define ZIP_ENTRY_HAS_CHANGES(e) (ZIP_ENTRY_DATA_CHANGED(e) || (e)->deleted || ZIP_ENTRY_CHANGED((e), ZIP_DIRENT_ALL))
+
+#define ZIP_IS_RDONLY(za) ((za)->ch_flags & ZIP_AFL_RDONLY)
+
+#ifdef HAVE_EXPLICIT_MEMSET
+#define _zip_crypto_clear(b, l) explicit_memset((b), 0, (l))
+#else
+#ifdef HAVE_EXPLICIT_BZERO
+#define _zip_crypto_clear(b, l) explicit_bzero((b), (l))
+#else
+#include
+#define _zip_crypto_clear(b, l) memset((b), 0, (l))
+#endif
+#endif
+
+zip_int64_t _zip_add_entry(zip_t*);
+
+zip_uint8_t* _zip_buffer_data(zip_buffer_t* buffer);
+bool _zip_buffer_eof(zip_buffer_t* buffer);
+void _zip_buffer_free(zip_buffer_t* buffer);
+zip_uint8_t* _zip_buffer_get(zip_buffer_t* buffer, zip_uint64_t length);
+zip_uint16_t _zip_buffer_get_16(zip_buffer_t* buffer);
+zip_uint32_t _zip_buffer_get_32(zip_buffer_t* buffer);
+zip_uint64_t _zip_buffer_get_64(zip_buffer_t* buffer);
+zip_uint8_t _zip_buffer_get_8(zip_buffer_t* buffer);
+zip_uint64_t _zip_buffer_left(zip_buffer_t* buffer);
+zip_buffer_t* _zip_buffer_new(zip_uint8_t* data, zip_uint64_t size);
+zip_buffer_t* _zip_buffer_new_from_source(zip_source_t* src, zip_uint64_t size, zip_uint8_t* buf, zip_error_t* error);
+zip_uint64_t _zip_buffer_offset(zip_buffer_t* buffer);
+bool _zip_buffer_ok(zip_buffer_t* buffer);
+zip_uint8_t* _zip_buffer_peek(zip_buffer_t* buffer, zip_uint64_t length);
+int _zip_buffer_put(zip_buffer_t* buffer, const void* src, size_t length);
+int _zip_buffer_put_16(zip_buffer_t* buffer, zip_uint16_t i);
+int _zip_buffer_put_32(zip_buffer_t* buffer, zip_uint32_t i);
+int _zip_buffer_put_64(zip_buffer_t* buffer, zip_uint64_t i);
+int _zip_buffer_put_8(zip_buffer_t* buffer, zip_uint8_t i);
+zip_uint64_t _zip_buffer_read(zip_buffer_t* buffer, zip_uint8_t* data, zip_uint64_t length);
+int _zip_buffer_skip(zip_buffer_t* buffer, zip_uint64_t length);
+int _zip_buffer_set_offset(zip_buffer_t* buffer, zip_uint64_t offset);
+zip_uint64_t _zip_buffer_size(zip_buffer_t* buffer);
+
+int _zip_cdir_compute_crc(zip_t*, uLong*);
+void _zip_cdir_free(zip_cdir_t*);
+bool _zip_cdir_grow(zip_cdir_t* cd, zip_uint64_t additional_entries, zip_error_t* error);
+zip_cdir_t* _zip_cdir_new(zip_uint64_t, zip_error_t*);
+zip_int64_t _zip_cdir_write(zip_t* za, const zip_filelist_t* filelist, zip_uint64_t survivors);
+void _zip_deregister_source(zip_t* za, zip_source_t* src);
+
+zip_dirent_t* _zip_dirent_clone(const zip_dirent_t*);
+void _zip_dirent_free(zip_dirent_t*);
+void _zip_dirent_finalize(zip_dirent_t*);
+void _zip_dirent_init(zip_dirent_t*);
+bool _zip_dirent_needs_zip64(const zip_dirent_t*, zip_flags_t);
+zip_dirent_t* _zip_dirent_new(void);
+zip_int64_t _zip_dirent_read(zip_dirent_t* zde, zip_source_t* src, zip_buffer_t* buffer, bool local, zip_error_t* error);
+void _zip_dirent_set_version_needed(zip_dirent_t* de, bool force_zip64);
+zip_int32_t _zip_dirent_size(zip_source_t* src, zip_uint16_t, zip_error_t*);
+int _zip_dirent_write(zip_t* za, zip_dirent_t* dirent, zip_flags_t flags);
+
+zip_extra_field_t* _zip_ef_clone(const zip_extra_field_t*, zip_error_t*);
+zip_extra_field_t* _zip_ef_delete_by_id(zip_extra_field_t*, zip_uint16_t, zip_uint16_t, zip_flags_t);
+void _zip_ef_free(zip_extra_field_t*);
+const zip_uint8_t* _zip_ef_get_by_id(const zip_extra_field_t*, zip_uint16_t*, zip_uint16_t, zip_uint16_t, zip_flags_t, zip_error_t*);
+zip_extra_field_t* _zip_ef_merge(zip_extra_field_t*, zip_extra_field_t*);
+zip_extra_field_t* _zip_ef_new(zip_uint16_t, zip_uint16_t, const zip_uint8_t*, zip_flags_t);
+bool _zip_ef_parse(const zip_uint8_t*, zip_uint16_t, zip_flags_t, zip_extra_field_t**, zip_error_t*);
+zip_extra_field_t* _zip_ef_remove_internal(zip_extra_field_t*);
+zip_uint16_t _zip_ef_size(const zip_extra_field_t*, zip_flags_t);
+int _zip_ef_write(zip_t* za, const zip_extra_field_t* ef, zip_flags_t flags);
+
+void _zip_entry_finalize(zip_entry_t*);
+void _zip_entry_init(zip_entry_t*);
+
+void _zip_error_clear(zip_error_t*);
+void _zip_error_get(const zip_error_t*, int*, int*);
+
+void _zip_error_copy(zip_error_t* dst, const zip_error_t* src);
+void _zip_error_set_from_source(zip_error_t*, zip_source_t*);
+
+const zip_uint8_t* _zip_extract_extra_field_by_id(zip_error_t*, zip_uint16_t, int, const zip_uint8_t*, zip_uint16_t, zip_uint16_t*);
+
+int _zip_file_extra_field_prepare_for_change(zip_t*, zip_uint64_t);
+int _zip_file_fillbuf(void*, size_t, zip_file_t*);
+zip_uint64_t _zip_file_get_end(const zip_t* za, zip_uint64_t index, zip_error_t* error);
+zip_uint64_t _zip_file_get_offset(const zip_t*, zip_uint64_t, zip_error_t*);
+
+int _zip_filerange_crc(zip_source_t* src, zip_uint64_t offset, zip_uint64_t length, uLong* crcp, zip_error_t* error);
+
+zip_dirent_t* _zip_get_dirent(zip_t*, zip_uint64_t, zip_flags_t, zip_error_t*);
+
+enum zip_encoding_type _zip_guess_encoding(zip_string_t*, enum zip_encoding_type);
+zip_uint8_t* _zip_cp437_to_utf8(const zip_uint8_t* const, zip_uint32_t, zip_uint32_t*, zip_error_t*);
+
+bool _zip_hash_add(zip_hash_t* hash, const zip_uint8_t* name, zip_uint64_t index, zip_flags_t flags, zip_error_t* error);
+bool _zip_hash_delete(zip_hash_t* hash, const zip_uint8_t* key, zip_error_t* error);
+void _zip_hash_free(zip_hash_t* hash);
+zip_int64_t _zip_hash_lookup(zip_hash_t* hash, const zip_uint8_t* name, zip_flags_t flags, zip_error_t* error);
+zip_hash_t* _zip_hash_new(zip_error_t* error);
+bool _zip_hash_reserve_capacity(zip_hash_t* hash, zip_uint64_t capacity, zip_error_t* error);
+bool _zip_hash_revert(zip_hash_t* hash, zip_error_t* error);
+
+zip_t* _zip_open(zip_source_t*, unsigned int, zip_error_t*);
+
+void _zip_progress_end(zip_progress_t* progress);
+void _zip_progress_free(zip_progress_t* progress);
+zip_progress_t* _zip_progress_new(zip_t* za, double precision, zip_progress_callback callback, void (*ud_free)(void*), void* ud);
+void _zip_progress_start(zip_progress_t* progress);
+void _zip_progress_subrange(zip_progress_t* progress, double start, double end);
+void _zip_progress_update(zip_progress_t* progress, double value);
+
+ZIP_EXTERN bool zip_random(zip_uint8_t* buffer, zip_uint16_t length);
+
+int _zip_read(zip_source_t* src, zip_uint8_t* data, zip_uint64_t length, zip_error_t* error);
+int _zip_read_at_offset(zip_source_t* src, zip_uint64_t offset, unsigned char* b, size_t length, zip_error_t* error);
+zip_uint8_t* _zip_read_data(zip_buffer_t* buffer, zip_source_t* src, size_t length, bool nulp, zip_error_t* error);
+int _zip_read_local_ef(zip_t*, zip_uint64_t);
+zip_string_t* _zip_read_string(zip_buffer_t* buffer, zip_source_t* src, zip_uint16_t lenght, bool nulp, zip_error_t* error);
+int _zip_register_source(zip_t* za, zip_source_t* src);
+
+void _zip_set_open_error(int* zep, const zip_error_t* err, int ze);
+
+zip_int64_t _zip_source_call(zip_source_t* src, void* data, zip_uint64_t length, zip_source_cmd_t command);
+bool _zip_source_eof(zip_source_t*);
+zip_source_t* _zip_source_file_or_p(const char*, FILE*, zip_uint64_t, zip_int64_t, const zip_stat_t*, zip_error_t* error);
+zip_int8_t zip_source_get_compression_flags(zip_source_t*);
+bool _zip_source_had_error(zip_source_t*);
+void _zip_source_invalidate(zip_source_t* src);
+zip_source_t* _zip_source_new(zip_error_t* error);
+int _zip_source_set_source_archive(zip_source_t*, zip_t*);
+zip_source_t* _zip_source_window_new(zip_source_t* src, zip_uint64_t start, zip_uint64_t length, zip_stat_t* st, zip_int8_t compression_flags, zip_t* source_archive, zip_uint64_t source_index, zip_error_t* error);
+zip_source_t* _zip_source_zip_new(zip_t*, zip_t*, zip_uint64_t, zip_flags_t, zip_uint64_t, zip_uint64_t, const char*);
+
+int _zip_stat_merge(zip_stat_t* dst, const zip_stat_t* src, zip_error_t* error);
+int _zip_string_equal(const zip_string_t*, const zip_string_t*);
+void _zip_string_free(zip_string_t*);
+zip_uint32_t _zip_string_crc32(const zip_string_t*);
+const zip_uint8_t* _zip_string_get(zip_string_t*, zip_uint32_t*, zip_flags_t, zip_error_t*);
+zip_uint16_t _zip_string_length(const zip_string_t*);
+zip_string_t* _zip_string_new(const zip_uint8_t*, zip_uint16_t, zip_flags_t, zip_error_t*);
+int _zip_string_write(zip_t* za, const zip_string_t* string);
+bool _zip_winzip_aes_decrypt(zip_winzip_aes_t* ctx, zip_uint8_t* data, zip_uint64_t length);
+bool _zip_winzip_aes_encrypt(zip_winzip_aes_t* ctx, zip_uint8_t* data, zip_uint64_t length);
+bool _zip_winzip_aes_finish(zip_winzip_aes_t* ctx, zip_uint8_t* hmac);
+void _zip_winzip_aes_free(zip_winzip_aes_t* ctx);
+zip_winzip_aes_t* _zip_winzip_aes_new(const zip_uint8_t* password, zip_uint64_t password_length, const zip_uint8_t* salt, zip_uint16_t key_size, zip_uint8_t* password_verify, zip_error_t* error);
+
+int _zip_changed(const zip_t*, zip_uint64_t*);
+const char* _zip_get_name(zip_t*, zip_uint64_t, zip_flags_t, zip_error_t*);
+int _zip_local_header_read(zip_t*, int);
+void* _zip_memdup(const void*, size_t, zip_error_t*);
+zip_int64_t _zip_name_locate(zip_t*, const char*, zip_flags_t, zip_error_t*);
+zip_t* _zip_new(zip_error_t*);
+
+zip_int64_t _zip_file_replace(zip_t*, zip_uint64_t, const char*, zip_source_t*, zip_flags_t);
+int _zip_set_name(zip_t*, zip_uint64_t, const char*, zip_flags_t);
+void _zip_u2d_time(time_t, zip_uint16_t*, zip_uint16_t*);
+int _zip_unchange(zip_t*, zip_uint64_t, int);
+void _zip_unchange_data(zip_entry_t*);
+int _zip_write(zip_t* za, const void* data, zip_uint64_t length);
+
+#endif /* zipint.h */
diff --git a/plugins/TKLiveSync/libzip_iOS.xcframework/ios-x86_64-maccatalyst/libzip_iOS.framework/Versions/A/Headers/zipwin32.h b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-x86_64-maccatalyst/libzip_iOS.framework/Versions/A/Headers/zipwin32.h
new file mode 100644
index 000000000..cd4362fdf
--- /dev/null
+++ b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-x86_64-maccatalyst/libzip_iOS.framework/Versions/A/Headers/zipwin32.h
@@ -0,0 +1,85 @@
+#ifndef _HAD_ZIPWIN32_H
+#define _HAD_ZIPWIN32_H
+
+/*
+ zipwin32.h -- internal declarations for Windows.
+ Copyright (C) 1999-2018 Dieter Baron and Thomas Klausner
+
+ This file is part of libzip, a library to manipulate ZIP archives.
+ The authors can be contacted at
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+ 3. The names of the authors may not be used to endorse or promote
+ products derived from this software without specific prior
+ written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS
+ OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
+ DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+ GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+ IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+ IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+/* 0x0501 => Windows XP; needs to be at least this value because of GetFileSizeEx */
+#if !defined(MS_UWP) && !defined(_WIN32_WINNT)
+#define _WIN32_WINNT 0x0501
+#endif
+
+#include
+
+/* context for Win32 source */
+
+struct _zip_source_win32_file_ops;
+
+struct _zip_source_win32_read_file {
+ zip_error_t error; /* last error information */
+ zip_int64_t supports;
+
+ /* operations */
+ struct _zip_source_win32_file_ops* ops;
+
+ /* reading */
+ void* fname; /* name of file to read from - ANSI (char *) or Unicode (wchar_t *) */
+ void* h; /* HANDLE for file to read from */
+ int closep; /* whether to close f on ZIP_CMD_FREE */
+ struct zip_stat st; /* stat information passed in */
+ zip_uint64_t start; /* start offset of data to read */
+ zip_uint64_t end; /* end offset of data to read, 0 for up to EOF */
+ zip_uint64_t current; /* current offset */
+
+ /* writing */
+ void* tmpname; /* name of temp file - ANSI (char *) or Unicode (wchar_t *) */
+ void* hout; /* HANDLE for output file */
+};
+
+typedef struct _zip_source_win32_read_file _zip_source_win32_read_file_t;
+
+/* internal operations for Win32 source */
+
+struct _zip_source_win32_file_ops {
+ void* (*op_strdup)(const void*);
+ void* (*op_open)(_zip_source_win32_read_file_t*);
+ void* (*op_create_temp)(_zip_source_win32_read_file_t*, void**, zip_uint32_t, PSECURITY_ATTRIBUTES);
+ int (*op_rename_temp)(_zip_source_win32_read_file_t*);
+ int (*op_remove)(const void*);
+};
+
+typedef struct _zip_source_win32_file_ops _zip_source_win32_file_ops_t;
+
+zip_source_t* _zip_source_win32_handle_or_name(const void*, void*, zip_uint64_t, zip_int64_t, int, const zip_stat_t*, _zip_source_win32_file_ops_t*, zip_error_t*);
+
+#endif /* zipwin32.h */
diff --git a/plugins/TKLiveSync/libzip_iOS.xcframework/ios-x86_64-maccatalyst/libzip_iOS.framework/Versions/A/Resources/Info.plist b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-x86_64-maccatalyst/libzip_iOS.framework/Versions/A/Resources/Info.plist
new file mode 100644
index 000000000..4b20e18a6
--- /dev/null
+++ b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-x86_64-maccatalyst/libzip_iOS.framework/Versions/A/Resources/Info.plist
@@ -0,0 +1,46 @@
+
+
+
+
+ BuildMachineOSBuild
+ 19A526h
+ CFBundleDevelopmentRegion
+ en
+ CFBundleExecutable
+ libzip_iOS
+ CFBundleIdentifier
+ org.testprj.libzip-iOS
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ libzip_iOS
+ CFBundlePackageType
+ FMWK
+ CFBundleShortVersionString
+ 1.0
+ CFBundleSupportedPlatforms
+
+ MacOSX
+
+ CFBundleVersion
+ 1
+ DTCompiler
+ com.apple.compilers.llvm.clang.1_0
+ DTPlatformBuild
+ 11M382q
+ DTPlatformVersion
+ GM
+ DTSDKBuild
+ 19A526e
+ DTSDKName
+ macosx10.15
+ DTXcode
+ 1100
+ DTXcodeBuild
+ 11M382q
+ UIDeviceFamily
+
+ 2
+
+
+
diff --git a/plugins/TKLiveSync/libzip_iOS.xcframework/ios-x86_64-maccatalyst/libzip_iOS.framework/Versions/A/libzip_iOS b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-x86_64-maccatalyst/libzip_iOS.framework/Versions/A/libzip_iOS
new file mode 100644
index 000000000..4f0029b0b
Binary files /dev/null and b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-x86_64-maccatalyst/libzip_iOS.framework/Versions/A/libzip_iOS differ
diff --git a/plugins/TKLiveSync/libzip_iOS.xcframework/ios-x86_64-maccatalyst/libzip_iOS.framework/Versions/Current b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-x86_64-maccatalyst/libzip_iOS.framework/Versions/Current
new file mode 120000
index 000000000..8c7e5a667
--- /dev/null
+++ b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-x86_64-maccatalyst/libzip_iOS.framework/Versions/Current
@@ -0,0 +1 @@
+A
\ No newline at end of file
diff --git a/plugins/TKLiveSync/libzip_iOS.xcframework/ios-x86_64-maccatalyst/libzip_iOS.framework/libzip_iOS b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-x86_64-maccatalyst/libzip_iOS.framework/libzip_iOS
new file mode 120000
index 000000000..e9ef9716c
--- /dev/null
+++ b/plugins/TKLiveSync/libzip_iOS.xcframework/ios-x86_64-maccatalyst/libzip_iOS.framework/libzip_iOS
@@ -0,0 +1 @@
+Versions/Current/libzip_iOS
\ No newline at end of file
diff --git a/plugins/TKLiveSync/libzip_iOS/.clang-format b/plugins/TKLiveSync/libzip_iOS/.clang-format
new file mode 100644
index 000000000..55909c02f
--- /dev/null
+++ b/plugins/TKLiveSync/libzip_iOS/.clang-format
@@ -0,0 +1,12 @@
+BasedOnStyle: LLVM
+IndentWidth: 4
+ColumnLimit: 2000
+AlwaysBreakAfterReturnType: TopLevelDefinitions
+KeepEmptyLinesAtTheStartOfBlocks: false
+MaxEmptyLinesToKeep: 2
+BreakBeforeBraces: Custom
+BraceWrapping:
+ BeforeElse: true
+AlignEscapedNewlines: Left
+UseTab: ForContinuationAndIndentation
+#PPDirectiveIndentStyle: AfterHash
diff --git a/plugins/TKLiveSync/libzip_iOS/API-CHANGES.md b/plugins/TKLiveSync/libzip_iOS/API-CHANGES.md
new file mode 100644
index 000000000..24e3d8e1a
--- /dev/null
+++ b/plugins/TKLiveSync/libzip_iOS/API-CHANGES.md
@@ -0,0 +1,162 @@
+# libzip API changes
+
+This file describes changes in the libzip API and how to adapt your
+code for them.
+
+You can define `ZIP_DISABLE_DEPRECATED` before including `` to hide
+prototypes for deprecated functions, to find out about functions that
+might be removed at some point.
+
+## Changed in libzip-1.0
+
+### new type `zip_error_t`
+
+Error information is stored in the newly public type `zip_error_t`. Use
+this to access information about an error, instead of the deprecated
+functions that operated on two ints.
+
+deprecated functions:
+- `zip_error_get_sys_type()`
+- `zip_error_get()`
+- `zip_error_to_str()`
+- `zip_file_error_get()`
+
+See their man pages for instructions on how to replace them.
+
+The most common affected use is `zip_open`. The new recommended usage
+is:
+
+```c
+int err;
+if ((za = zip_open(archive, flags, &err)) == NULL) {
+ zip_error_t error;
+ zip_error_init_with_code(&error, err);
+ fprintf(stderr, "can't open zip archive '%s': %s\n", archive, zip_error_strerror(&error));
+ zip_error_fini(&error);
+}
+```
+
+### more typedefs
+
+The following typedefs have been added for better readability:
+
+```c
+typedef struct zip zip_t;
+typedef struct zip_file zip_file_t;
+typedef struct zip_source zip_source_t;
+typedef struct zip_stat zip_stat_t;
+```
+
+This means you can use "`zip_t`" instead of "`struct zip`", etc.
+
+
+### torrentzip support removed
+
+torrentzip depends on a particular zlib version which is by now quite
+old.
+
+## Changed in libzip-0.11
+
+### new type `zip_flags_t`
+
+The functions which have flags now use the `zip_flags_t` type for this.
+All old flags fit; you need only to adapt code if you were saving flags in a
+local variable. Use `zip_flags_t` for such a variable.
+This affects:
+- `zip_fopen()`
+- `zip_fopen_encrypted()`
+- `zip_fopen_index()`
+- `zip_fopen_index_encrypted()`
+- `zip_get_archive_comment()`
+- `zip_get_archive_flag()`
+- `zip_get_num_entries()`
+- `zip_get_name()`
+- `zip_name_locate()`
+- `zip_set_archive_flag()`
+- `zip_source_zip()`
+- `zip_stat()`
+- `zip_stat_index()`
+
+#### `ZIP_FL_*`, `ZIP_AFL_*`, `ZIP_STAT_*` are now unsigned constants
+
+To match the new `zip_flags_t` type.
+
+#### `zip_add()`, `zip_add_dir()`
+
+These functions were replaced with `zip_file_add()` and `zip_dir_add()`, respectively,
+to add a flags argument.
+
+#### `zip_rename()`, `zip_replace()`
+
+These functions were replaced with `zip_file_rename()` and `zip_file_replace()`,
+respectively, to add a flags argument.
+
+#### `zip_get_file_comment()`
+
+This function was replaced with `zip_file_get_comment()`; one argument was promoted from
+`int` to `zip_uint32_t`, the other is now a `zip_flags_t`.
+
+#### `zip_set_file_comment()`
+
+This function was replaced with `zip_file_set_comment()`; an argument was promoted from
+`int` to `zip_uint16_t`, and a `zip_flags_t` argument was added.
+
+### integer type size changes
+
+Some argument and return values were not the right size or sign.
+
+#### `zip_name_locate()`
+
+The return value was `int`, which can be too small. The function now returns `zip_int64_t`.
+
+
+#### `zip_get_num_entries()`
+
+The return type is now signed, to allow signaling errors.
+
+#### `zip_set_archive_comment()`
+
+The last argument changed from `int` to `zip_uint16_t`.
+
+### extra field handling rewritten
+
+The `zip_get_file_extra()` and `zip_set_file_extra()` functions were removed.
+They only worked on the whole extra field set.
+
+Instead, you can now set, get, count, and delete each extra field separately,
+using the functions:
+- `zip_file_extra_field_delete()`
+- `zip_file_extra_field_delete_by_id()`
+- `zip_file_extra_field_get()`
+- `zip_file_extra_field_get_by_id()`
+- `zip_file_extra_fields_count()`
+- `zip_file_extra_fields_count_by_id()`
+- `zip_file_extra_field_set()`
+
+Please read the corresponding man pages for details.
+
+### new functions
+
+#### `zip_discard()`
+
+The new `zip_discard()` function closes an archive without committing the
+scheduled changes.
+
+#### `zip_set_file_compression()`
+
+The new `zip_set_file_compression()` function allows setting compression
+levels for files.
+
+### argument changes
+
+#### file names
+
+File names arguments are now allowed to be `NULL` to have an empty file name.
+This mostly affects `zip_file_add()`, `zip_dir_add()`, and `zip_file_rename()`.
+
+For `zip_get_name()`, `zip_file_get_comment()`, and `zip_get_archive_comment()`, if
+the file name or comment is empty, a string of length 0 is returned.
+`NULL` is returned for errors only.
+
+Previously, `NULL` was returned for empty/unset file names and comments and
+errors, leaving no way to differentiate between the two.
diff --git a/plugins/TKLiveSync/libzip_iOS/AUTHORS b/plugins/TKLiveSync/libzip_iOS/AUTHORS
new file mode 100644
index 000000000..a33707b01
--- /dev/null
+++ b/plugins/TKLiveSync/libzip_iOS/AUTHORS
@@ -0,0 +1,2 @@
+Dieter Baron
+Thomas Klausner
diff --git a/plugins/TKLiveSync/libzip_iOS/CMakeLists.txt b/plugins/TKLiveSync/libzip_iOS/CMakeLists.txt
new file mode 100644
index 000000000..800899550
--- /dev/null
+++ b/plugins/TKLiveSync/libzip_iOS/CMakeLists.txt
@@ -0,0 +1,420 @@
+# TODO:
+# create usable libtool .la file
+
+CMAKE_MINIMUM_REQUIRED(VERSION 3.0.2)
+
+LIST(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR})
+
+PROJECT(libzip C)
+
+OPTION(ENABLE_COMMONCRYPTO "Enable use of CommonCrypto" ON)
+OPTION(ENABLE_GNUTLS "Enable use of GnuTLS" ON)
+OPTION(ENABLE_MBEDTLS "Enable use of mbed TLS" ON)
+OPTION(ENABLE_OPENSSL "Enable use of OpenSSL" ON)
+OPTION(ENABLE_WINDOWS_CRYPTO "Enable use of Windows cryptography libraries" ON)
+
+OPTION(ENABLE_BZIP2 "Enable use of BZip2" ON)
+
+OPTION(BUILD_TOOLS "Build tools in the src directory (zipcmp, zipmerge, ziptool)" ON)
+OPTION(BUILD_REGRESS "Build regression tests" ON)
+OPTION(BUILD_EXAMPLES "Build examples" ON)
+OPTION(BUILD_DOC "Build documentation" ON)
+
+INCLUDE(CheckFunctionExists)
+INCLUDE(CheckIncludeFiles)
+INCLUDE(CheckSymbolExists)
+INCLUDE(CheckTypeSize)
+INCLUDE(CheckCSourceRuns)
+INCLUDE(CheckCSourceCompiles)
+INCLUDE(CheckStructHasMember)
+INCLUDE(TestBigEndian)
+INCLUDE(GNUInstallDirs)
+IF(ENABLE_COMMONCRYPTO)
+ CHECK_INCLUDE_FILES(CommonCrypto/CommonCrypto.h COMMONCRYPTO_FOUND)
+ELSE()
+ SET(COMMONCRYPTO_FOUND FALSE)
+ENDIF()
+IF(ENABLE_GNUTLS)
+ INCLUDE(FindNettle)
+ INCLUDE(FindGnuTLS)
+ELSE()
+ SET(GNUTLS_FOUND FALSE)
+ENDIF()
+IF(ENABLE_MBEDTLS)
+ FIND_PATH(MBEDTLS_INCLUDE_DIR mbedtls/aes.h)
+ FIND_LIBRARY(MBEDTLS_LIBRARIES NAMES mbedtls)
+ELSE()
+ SET(MBEDTLS_LIBRARIES FALSE)
+ENDIF()
+IF(ENABLE_OPENSSL)
+ INCLUDE(FindOpenSSL)
+ELSE()
+ SET(OPENSSL_FOUND FALSE)
+ENDIF()
+IF(WIN32)
+ IF(ENABLE_WINDOWS_CRYPTO)
+ SET(WINDOWS_CRYPTO_FOUND TRUE)
+ ENDIF()
+ELSE()
+ SET(WINDOWS_CRYPTO_FOUND FALSE)
+ENDIF()
+
+OPTION(BUILD_SHARED_LIBS "Build shared libraries" ON)
+
+
+OPTION(SHARED_LIB_VERSIONNING "Add SO version in .so build" ON)
+
+FIND_PROGRAM(MDOCTOOL NAMES mandoc groff)
+IF (MDOCTOOL)
+ SET(DOCUMENTATION_FORMAT "mdoc" CACHE STRING "Documentation format")
+ELSE()
+ FIND_PROGRAM(MANTOOL NAMES nroff)
+ IF (MANTOOL)
+ SET(DOCUMENTATION_FORMAT "man" CACHE STRING "Documentation format")
+ ELSE()
+ SET(DOCUMENTATION_FORMAT "html" CACHE STRING "Documentation format")
+ ENDIF()
+ENDIF()
+
+SET(PACKAGE "libzip")
+SET(PACKAGE_NAME ${PACKAGE})
+SET(PACKAGE_VERSION_MAJOR "1")
+SET(PACKAGE_VERSION_MINOR "5")
+SET(PACKAGE_VERSION_MICRO "2")
+#SET(VERSION "${PACKAGE_VERSION_MAJOR}.${PACKAGE_VERSION_MINOR}")
+SET(VERSION "${PACKAGE_VERSION_MAJOR}.${PACKAGE_VERSION_MINOR}.${PACKAGE_VERSION_MICRO}")
+SET(PACKAGE_VERSION ${VERSION})
+SET(LIBZIP_VERSION ${PACKAGE_VERSION})
+SET(LIBZIP_VERSION_MAJOR ${PACKAGE_VERSION_MAJOR})
+SET(LIBZIP_VERSION_MINOR ${PACKAGE_VERSION_MINOR})
+SET(LIBZIP_VERSION_MICRO ${PACKAGE_VERSION_MICRO})
+SET(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}")
+
+SET(ARCHIVE_NAME ${PACKAGE_NAME}-${PACKAGE_VERSION})
+ADD_CUSTOM_TARGET(dist
+ COMMAND git config tar.tar.xz.command "xz -c"
+ COMMAND git archive --prefix=${ARCHIVE_NAME}/ -o ${ARCHIVE_NAME}.tar.gz HEAD
+ COMMAND git archive --prefix=${ARCHIVE_NAME}/ -o ${ARCHIVE_NAME}.tar.xz HEAD
+ WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
+ )
+ADD_CUSTOM_TARGET(distcheck
+ COMMAND chmod -R u+w ${ARCHIVE_NAME} ${ARCHIVE_NAME}-build ${ARCHIVE_NAME}-dest 2>/dev/null || true
+ COMMAND rm -rf ${ARCHIVE_NAME} ${ARCHIVE_NAME}-build ${ARCHIVE_NAME}-dest
+ COMMAND cmake -E tar xf ${ARCHIVE_NAME}.tar.gz
+ COMMAND chmod -R u-w ${ARCHIVE_NAME}
+ COMMAND mkdir ${ARCHIVE_NAME}-build
+ COMMAND mkdir ${ARCHIVE_NAME}-dest
+ COMMAND cd ${ARCHIVE_NAME}-build && cmake -DCMAKE_INSTALL_PREFIX=../${ARCHIVE_NAME}-dest ../${ARCHIVE_NAME}
+ COMMAND cd ${ARCHIVE_NAME}-build && make -j4
+ COMMAND cd ${ARCHIVE_NAME}-build && make test
+ COMMAND cd ${ARCHIVE_NAME}-build && make install
+# COMMAND cd ${ARCHIVE_NAME}-build && make uninstall
+# COMMAND if [ `find ${ARCHIVE_NAME}-dest ! -type d | wc -l` -ne 0 ]; then echo leftover files in ${ARCHIVE_NAME}-dest; false; fi
+ COMMAND cd ${ARCHIVE_NAME}-build && make clean
+ COMMAND chmod -R u+w ${ARCHIVE_NAME} ${ARCHIVE_NAME}-build ${ARCHIVE_NAME}-dest
+ COMMAND rm -rf ${ARCHIVE_NAME} ${ARCHIVE_NAME}-build ${ARCHIVE_NAME}-dest
+ COMMAND echo "${ARCHIVE_NAME}.tar.gz is ready for distribution."
+ WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
+ )
+ADD_DEPENDENCIES(distcheck dist)
+
+IF(BUILD_SHARED_LIBS)
+ SET(HAVE_SHARED TRUE)
+ELSE()
+ SET(ZIP_STATIC TRUE)
+ENDIF()
+
+# Checks
+
+CHECK_FUNCTION_EXISTS(_chmod HAVE__CHMOD)
+CHECK_FUNCTION_EXISTS(_close HAVE__CLOSE)
+CHECK_FUNCTION_EXISTS(_dup HAVE__DUP)
+CHECK_FUNCTION_EXISTS(_fdopen HAVE__FDOPEN)
+CHECK_FUNCTION_EXISTS(_fileno HAVE__FILENO)
+CHECK_FUNCTION_EXISTS(_open HAVE__OPEN)
+CHECK_FUNCTION_EXISTS(_setmode HAVE__SETMODE)
+CHECK_FUNCTION_EXISTS(_snprintf HAVE__SNPRINTF)
+CHECK_FUNCTION_EXISTS(_strdup HAVE__STRDUP)
+CHECK_FUNCTION_EXISTS(_stricmp HAVE__STRICMP)
+CHECK_FUNCTION_EXISTS(_strtoi64 HAVE__STRTOI64)
+CHECK_FUNCTION_EXISTS(_strtoui64 HAVE__STRTOUI64)
+CHECK_FUNCTION_EXISTS(_umask HAVE__UMASK)
+CHECK_FUNCTION_EXISTS(_unlink HAVE__UNLINK)
+CHECK_FUNCTION_EXISTS(clonefile HAVE_CLONEFILE)
+CHECK_FUNCTION_EXISTS(explicit_bzero HAVE_EXPLICIT_BZERO)
+CHECK_FUNCTION_EXISTS(explicit_memset HAVE_EXPLICIT_MEMSET)
+CHECK_FUNCTION_EXISTS(fileno HAVE_FILENO)
+CHECK_FUNCTION_EXISTS(fseeko HAVE_FSEEKO)
+CHECK_FUNCTION_EXISTS(ftello HAVE_FTELLO)
+CHECK_FUNCTION_EXISTS(getprogname HAVE_GETPROGNAME)
+CHECK_FUNCTION_EXISTS(open HAVE_OPEN)
+CHECK_FUNCTION_EXISTS(mkstemp HAVE_MKSTEMP)
+CHECK_FUNCTION_EXISTS(setmode HAVE_SETMODE)
+CHECK_FUNCTION_EXISTS(snprintf HAVE_SNPRINTF)
+CHECK_FUNCTION_EXISTS(strcasecmp HAVE_STRCASECMP)
+CHECK_FUNCTION_EXISTS(strdup HAVE_STRDUP)
+CHECK_FUNCTION_EXISTS(stricmp HAVE_STRICMP)
+CHECK_FUNCTION_EXISTS(strtoll HAVE_STRTOLL)
+CHECK_FUNCTION_EXISTS(strtoull HAVE_STRTOULL)
+
+CHECK_INCLUDE_FILES("sys/types.h;sys/stat.h;fts.h" HAVE_FTS_H)
+CHECK_INCLUDE_FILES(stdbool.h HAVE_STDBOOL_H)
+CHECK_INCLUDE_FILES(strings.h HAVE_STRINGS_H)
+CHECK_INCLUDE_FILES(unistd.h HAVE_UNISTD_H)
+
+CHECK_INCLUDE_FILES(inttypes.h HAVE_INTTYPES_H_LIBZIP)
+CHECK_INCLUDE_FILES(stdint.h HAVE_STDINT_H_LIBZIP)
+CHECK_INCLUDE_FILES(sys/types.h HAVE_SYS_TYPES_H_LIBZIP)
+
+# TODO: fix test
+# this test does not find __progname even when it exists
+#CHECK_SYMBOL_EXISTS(__progname stdlib.h HAVE___PROGNAME)
+
+CHECK_TYPE_SIZE(__int8 __INT8_LIBZIP)
+CHECK_TYPE_SIZE(int8_t INT8_T_LIBZIP)
+CHECK_TYPE_SIZE(uint8_t UINT8_T_LIBZIP)
+CHECK_TYPE_SIZE(__int16 __INT16_LIBZIP)
+CHECK_TYPE_SIZE(int16_t INT16_T_LIBZIP)
+CHECK_TYPE_SIZE(uint16_t UINT16_T_LIBZIP)
+CHECK_TYPE_SIZE(__int32 __INT32_LIBZIP)
+CHECK_TYPE_SIZE(int32_t INT32_T_LIBZIP)
+CHECK_TYPE_SIZE(uint32_t UINT32_T_LIBZIP)
+CHECK_TYPE_SIZE(__int64 __INT64_LIBZIP)
+CHECK_TYPE_SIZE(int64_t INT64_T_LIBZIP)
+CHECK_TYPE_SIZE(uint64_t UINT64_T_LIBZIP)
+CHECK_TYPE_SIZE("short" SHORT_LIBZIP)
+CHECK_TYPE_SIZE("int" INT_LIBZIP)
+CHECK_TYPE_SIZE("long" LONG_LIBZIP)
+CHECK_TYPE_SIZE("long long" LONG_LONG_LIBZIP)
+CHECK_TYPE_SIZE("off_t" SIZEOF_OFF_T)
+CHECK_TYPE_SIZE("size_t" SIZE_T_LIBZIP)
+CHECK_TYPE_SIZE("ssize_t" SSIZE_T_LIBZIP)
+
+CHECK_C_SOURCE_COMPILES("#include
+#include
+int main(int argc, char *argv[]) { unsigned long x = FICLONERANGE; }" HAVE_FICLONERANGE)
+
+CHECK_C_SOURCE_COMPILES("
+int foo(char * _Nullable bar);
+int main(int argc, char *argv[]) { }" HAVE_NULLABLE)
+
+TEST_BIG_ENDIAN(WORDS_BIGENDIAN)
+
+FIND_PACKAGE(ZLIB REQUIRED)
+INCLUDE_DIRECTORIES(${ZLIB_INCLUDE_DIR})
+SET(CMAKE_REQUIRED_INCLUDES ${ZLIB_INCLUDE_DIR})
+IF(ZLIB_VERSION_STRING VERSION_LESS "1.1.2")
+ MESSAGE(FATAL_ERROR "-- ZLIB version too old, please install at least v1.1.2")
+ENDIF(ZLIB_VERSION_STRING VERSION_LESS "1.1.2")
+
+IF(ENABLE_BZIP2)
+ FIND_PACKAGE(BZip2)
+ IF(BZIP2_FOUND)
+ SET (HAVE_LIBBZ2 1)
+
+ INCLUDE_DIRECTORIES(${BZIP2_INCLUDE_DIR})
+ SET (OPTIONAL_LIBRARY ${BZIP2_LIBRARY})
+ ELSE()
+ MESSAGE(WARNING "-- bzip2 library not found; bzip2 support disabled")
+ ENDIF(BZIP2_FOUND)
+ENDIF(ENABLE_BZIP2)
+
+IF (COMMONCRYPTO_FOUND)
+ SET (HAVE_CRYPTO 1)
+ SET (HAVE_COMMONCRYPTO 1)
+ELSEIF (WINDOWS_CRYPTO_FOUND)
+ SET (HAVE_CRYPTO 1)
+ SET (HAVE_WINDOWS_CRYPTO 1)
+ELSEIF (GNUTLS_FOUND AND NETTLE_FOUND)
+ SET (HAVE_CRYPTO 1)
+ SET (HAVE_GNUTLS 1)
+ INCLUDE_DIRECTORIES(${GNUTLS_INCLUDE_DIR} ${NETTLE_INCLUDE_DIR})
+ SET (OPTIONAL_LIBRARY ${OPTIONAL_LIBRARY} ${GNUTLS_LIBRARY} ${NETTLE_LIBRARY})
+ELSEIF (OPENSSL_FOUND)
+ SET (HAVE_CRYPTO 1)
+ SET (HAVE_OPENSSL 1)
+ INCLUDE_DIRECTORIES(${OPENSSL_INCLUDE_DIR})
+ SET (OPTIONAL_LIBRARY ${OPTIONAL_LIBRARY} ${OPENSSL_LIBRARIES})
+ELSEIF (MBEDTLS_LIBRARIES)
+ SET (HAVE_CRYPTO 1)
+ SET (HAVE_MBEDTLS 1)
+ INCLUDE_DIRECTORIES(${MBEDTLS_INCLUDE_DIR})
+ SET (OPTIONAL_LIBRARY ${OPTIONAL_LIBRARY} ${MBEDTLS_LIBRARIES})
+ENDIF()
+
+IF (NOT HAVE_CRYPTO)
+ MESSAGE(WARNING "-- neither Common Crypto, GnuTLS, mbed TLS, OpenSSL, nor Windows Cryptography found; AES support disabled")
+ENDIF()
+
+IF(MSVC)
+ADD_DEFINITIONS("-D_CRT_SECURE_NO_WARNINGS")
+ADD_DEFINITIONS("-D_CRT_NONSTDC_NO_DEPRECATE")
+ENDIF(MSVC)
+
+if(WIN32)
+ if(HAVE_WINDOWS_CRYPTO)
+ SET (OPTIONAL_LIBRARY "${OPTIONAL_LIBRARY}" bcrypt)
+ endif()
+ if(CMAKE_SYSTEM_NAME MATCHES WindowsPhone OR CMAKE_SYSTEM_NAME MATCHES WindowsStore)
+ ADD_DEFINITIONS(-DMS_UWP)
+ else(CMAKE_SYSTEM_NAME MATCHES WindowsPhone OR CMAKE_SYSTEM_NAME MATCHES WindowsStore)
+ SET (OPTIONAL_LIBRARY "${OPTIONAL_LIBRARY}" advapi32)
+ endif(CMAKE_SYSTEM_NAME MATCHES WindowsPhone OR CMAKE_SYSTEM_NAME MATCHES WindowsStore)
+endif(WIN32)
+
+ADD_DEFINITIONS("-DHAVE_CONFIG_H")
+
+# rpath handling: use rpath in installed binaries
+IF(NOT CMAKE_SYSTEM_NAME MATCHES Linux)
+ SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}")
+ SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
+ENDIF()
+
+# Testing
+ENABLE_TESTING()
+
+# Targets
+ADD_SUBDIRECTORY(lib)
+
+IF(BUILD_DOC)
+ADD_SUBDIRECTORY(man)
+ENDIF()
+
+IF(BUILD_TOOLS)
+ADD_SUBDIRECTORY(src)
+ENDIF()
+
+IF(BUILD_REGRESS)
+ADD_SUBDIRECTORY(regress)
+ENDIF()
+
+IF(BUILD_EXAMPLES)
+ADD_SUBDIRECTORY(examples)
+ENDIF()
+
+
+# pkgconfig file
+SET(prefix ${CMAKE_INSTALL_PREFIX})
+SET(exec_prefix \${prefix})
+SET(bindir \${exec_prefix}/${CMAKE_INSTALL_BINDIR})
+SET(libdir \${exec_prefix}/${CMAKE_INSTALL_LIBDIR})
+SET(includedir \${prefix}/${CMAKE_INSTALL_INCLUDEDIR})
+IF(BZIP2_FOUND)
+ SET(LIBS "${LIBS} -lbz2")
+ENDIF()
+SET(LIBS "${LIBS} -lz")
+IF(CMAKE_SYSTEM_NAME MATCHES BSD)
+ SET(PKG_CONFIG_RPATH "-Wl,-R\${libdir}")
+ENDIF(CMAKE_SYSTEM_NAME MATCHES BSD)
+CONFIGURE_FILE(libzip.pc.in libzip.pc @ONLY)
+INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/libzip.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
+
+# fixed size integral types
+
+IF(HAVE_STDINT_H_LIBZIP)
+ SET(LIBZIP_TYPES_INCLUDE "#include ")
+ELSEIF(HAVE_INTTYPES_H_LIBZIP)
+ SET(LIBZIP_TYPES_INCLUDE "#include ")
+ELSEIF(HAVE_SYS_TYPES_H_LIBZIP)
+ SET(LIBZIP_TYPES_INCLUDE "#include ")
+ENDIF()
+
+IF(HAVE_INT8_T_LIBZIP)
+ SET(ZIP_INT8_T int8_t)
+ELSEIF(HAVE___INT8_LIBZIP)
+ SET(ZIP_INT8_T __int8)
+ELSE()
+ SET(ZIP_INT8_T "signed char")
+ENDIF()
+
+IF(HAVE_UINT8_T_LIBZIP)
+ SET(ZIP_UINT8_T uint8_t)
+ELSEIF(HAVE___INT8_LIBZIP)
+ SET(ZIP_UINT8_T "unsigned __int8")
+ELSE()
+ SET(ZIP_UINT8_T "unsigned char")
+ENDIF()
+
+IF(HAVE_INT16_T_LIBZIP)
+ SET(ZIP_INT16_T int16_t)
+ELSEIF(HAVE___INT16_LIBZIP)
+ SET(INT16_T_LIBZIP __int16)
+ELSEIF(SHORT_LIBZIP EQUAL 2)
+ SET(INT16_T_LIBZIP short)
+ENDIF()
+
+IF(HAVE_UINT16_T_LIBZIP)
+ SET(ZIP_UINT16_T uint16_t)
+ELSEIF(HAVE___INT16_LIBZIP)
+ SET(UINT16_T_LIBZIP "unsigned __int16")
+ELSEIF(SHORT_LIBZIP EQUAL 2)
+ SET(UINT16_T_LIBZIP "unsigned short")
+ENDIF()
+
+IF(HAVE_INT32_T_LIBZIP)
+ SET(ZIP_INT32_T int32_t)
+ELSEIF(HAVE___INT32_LIBZIP)
+ SET(ZIP_INT32_T __int32)
+ELSEIF(INT_LIBZIP EQUAL 4)
+ SET(ZIP_INT32_T int)
+ELSEIF(LONG_LIBZIP EQUAL 4)
+ SET(ZIP_INT32_T long)
+ENDIF()
+
+IF(HAVE_UINT32_T_LIBZIP)
+SET(ZIP_UINT32_T uint32_t)
+ELSEIF(HAVE___INT32_LIBZIP)
+SET(ZIP_UINT32_T "unsigned __int32")
+ELSEIF(INT_LIBZIP EQUAL 4)
+SET(ZIP_UINT32_T "unsigned int")
+ELSEIF(LONG_LIBZIP EQUAL 4)
+SET(ZIP_UINT32_T "unsigned long")
+ENDIF()
+
+IF(HAVE_INT64_T_LIBZIP)
+ SET(ZIP_INT64_T int64_t)
+ELSEIF(HAVE___INT64_LIBZIP)
+ SET(ZIP_INT64_T __int64)
+ELSEIF(LONG_LIBZIP EQUAL 8)
+ SET(ZIP_INT64_T long)
+ELSEIF(LONG_LONG_LIBZIP EQUAL 8)
+ SET(ZIP_INT64_T "long long")
+ENDIF()
+
+IF(HAVE_UINT64_T_LIBZIP)
+ SET(ZIP_UINT64_T uint64_t)
+ELSEIF(HAVE___INT64_LIBZIP)
+ SET(ZIP_UINT64_T "unsigned __int64")
+ELSEIF(LONG_LIBZIP EQUAL 8)
+ SET(ZIP_UINT64_T "unsigned long")
+ELSEIF(LONG_LONG_LIBZIP EQUAL 8)
+ SET(ZIP_UINT64_T "unsigned long long")
+ENDIF()
+
+IF(HAVE_NULLABLE)
+ SET(ZIP_NULLABLE_DEFINES)
+ELSE()
+ SET(ZIP_NULLABLE_DEFINES "#define _Nullable
+#define _Nonnull")
+ENDIF()
+
+# write out config file
+CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/cmake-config.h.in ${CMAKE_CURRENT_BINARY_DIR}/config.h)
+CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/cmake-zipconf.h.in ${CMAKE_CURRENT_BINARY_DIR}/zipconf.h)
+
+# for tests
+
+SET(srcdir ${CMAKE_CURRENT_SOURCE_DIR}/regress)
+SET(abs_srcdir ${CMAKE_CURRENT_SOURCE_DIR}/regress)
+SET(top_builddir ${CMAKE_BINARY_DIR})
+
+CONFIGURE_FILE(regress/runtest.in ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/runtest @ONLY)
+FILE(COPY ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/runtest
+ DESTINATION ${CMAKE_BINARY_DIR}/regress
+ FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
+)
+
+
+# installation
+
+INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/zipconf.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
diff --git a/plugins/TKLiveSync/libzip_iOS/FindNettle.cmake b/plugins/TKLiveSync/libzip_iOS/FindNettle.cmake
new file mode 100644
index 000000000..1f66610f0
--- /dev/null
+++ b/plugins/TKLiveSync/libzip_iOS/FindNettle.cmake
@@ -0,0 +1,23 @@
+# - Find Nettle
+# Find the Nettle include directory and library
+#
+# NETTLE_INCLUDE_DIR - where to find , etc.
+# NETTLE_LIBRARIES - List of libraries when using libnettle.
+# NETTLE_FOUND - True if libnettle found.
+
+IF (NETTLE_INCLUDE_DIR)
+ # Already in cache, be silent
+ SET(NETTLE_FIND_QUIETLY TRUE)
+ENDIF (NETTLE_INCLUDE_DIR)
+
+FIND_PATH(NETTLE_INCLUDE_DIR nettle/md5.h nettle/ripemd160.h nettle/sha.h)
+FIND_LIBRARY(NETTLE_LIBRARY NAMES nettle libnettle)
+
+# handle the QUIETLY and REQUIRED arguments and set NETTLE_FOUND to TRUE if
+# all listed variables are TRUE
+INCLUDE(FindPackageHandleStandardArgs)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(NETTLE DEFAULT_MSG NETTLE_LIBRARY NETTLE_INCLUDE_DIR)
+
+IF(NETTLE_FOUND)
+ SET(NETTLE_LIBRARIES ${NETTLE_LIBRARY})
+ENDIF(NETTLE_FOUND)
diff --git a/plugins/TKLiveSync/libzip_iOS/INSTALL.md b/plugins/TKLiveSync/libzip_iOS/INSTALL.md
new file mode 100644
index 000000000..eef900ef8
--- /dev/null
+++ b/plugins/TKLiveSync/libzip_iOS/INSTALL.md
@@ -0,0 +1,55 @@
+libzip uses [cmake](https://cmake.org) to build.
+
+For running the tests, you need to have [perl](https://www.perl.org).
+
+You'll need [zlib](http://www.zlib.net/) (at least version 1.1.2). It
+comes with most operating systems.
+
+For supporting bzip2-compressed zip archives, you need
+[bzip2](http://bzip.org/).
+
+For AES (encryption) support, you need one of these cryptographic libraries,
+listed in order of preference:
+
+- Apple's CommonCrypto (available on macOS and iOS)
+- [GnuTLS](https://www.gnutls.org/)
+- [mbed TLS](https://tls.mbed.org/)
+- [OpenSSL](https://www.openssl.org/) >= 1.0.
+- Microsoft Windows Cryptography Framework
+
+If you don't want a library even if it is installed, you can
+pass `-DENABLE_=OFF` to cmake, where `` is one of
+`COMMONCRYPTO`, `GNUTLS`, `MBEDTLS`, or `OPENSSL`.
+
+The basic usage is
+```sh
+mkdir build
+cd build
+cmake ..
+make
+make test
+make install
+```
+
+Some useful parameters you can pass to `cmake` with `-Dparameter=value`:
+
+- `BUILD_SHARED_LIBS`: set to `ON` or `OFF` to enable/disable building
+ of shared libraries, defaults to `ON`
+- `CMAKE_INSTALL_PREFIX`: for setting the installation path
+- `DOCUMENTATION_FORMAT`: choose one of 'man', 'mdoc', and 'html' for
+ the installed documentation (default: decided by cmake depending on
+ available tools)
+
+If you want to compile with custom `CFLAGS`, set them in the environment
+before running `cmake`:
+```sh
+CFLAGS=-DMY_CUSTOM_FLAG cmake ..
+```
+
+If you are compiling on a system with a small stack size, add
+`-DZIP_ALLOCATE_BUFFER` to `CFLAGS`.
+
+You can get verbose build output with by passing `VERBOSE=1` to
+`make`.
+
+You can also check the [cmake FAQ](https://cmake.org/Wiki/CMake_FAQ).
diff --git a/plugins/TKLiveSync/libzip_iOS/LICENSE b/plugins/TKLiveSync/libzip_iOS/LICENSE
new file mode 100644
index 000000000..e93454e88
--- /dev/null
+++ b/plugins/TKLiveSync/libzip_iOS/LICENSE
@@ -0,0 +1,31 @@
+Copyright (C) 1999-2017 Dieter Baron and Thomas Klausner
+
+The authors can be contacted at
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+3. The names of the authors may not be used to endorse or promote
+ products derived from this software without specific prior
+ written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS
+OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/plugins/TKLiveSync/libzip_iOS/NEWS.md b/plugins/TKLiveSync/libzip_iOS/NEWS.md
new file mode 100644
index 000000000..9d8d2a339
--- /dev/null
+++ b/plugins/TKLiveSync/libzip_iOS/NEWS.md
@@ -0,0 +1,227 @@
+1.5.2 [2019-03-12]
+==================
+* Fix bug in AES encryption affecting certain file sizes
+* Keep file permissions when modifying zip archives
+* Support systems with small stack size.
+* Support mbed TLS as crypto backend.
+* Add nullability annotations.
+
+1.5.1 [2018-04-11]
+==================
+
+* Choose format of installed documentation based on available tools.
+* Fix visibility of symbols.
+* Fix zipcmp directory support.
+* Don't set RPATH on Linux.
+* Use Libs.private for link dependencies in pkg-config file.
+* Fix build with LibreSSL.
+* Various bugfixes.
+
+1.5.0 [2018-03-11]
+==================
+
+* Use standard cryptographic library instead of custom AES implementation.
+ This also simplifies the license.
+* Use `clang-format` to format the source code.
+* More Windows improvements.
+
+1.4.0 [2017-12-29]
+==================
+
+* Improve build with cmake
+* Retire autoconf/automake build system
+* Add `zip_source_buffer_fragment()`.
+* Add support to clone unchanged beginning of archive (instead of rewriting it).
+ Supported for buffer sources and on Apple File System.
+* Add support for Microsoft Universal Windows Platform.
+
+1.3.2 [2017-11-20]
+==================
+* Fix bug introduced in last: zip_t was erroneously freed if zip_close() failed.
+
+1.3.1 [2017-11-19]
+==================
+
+* Install zipconf.h into ${PREFIX}/include
+* Add zip_libzip_version()
+* Fix AES tests on Linux
+
+1.3.0 [2017-09-02]
+==================
+
+* Support bzip2 compressed zip archives
+* Improve file progress callback code
+* Fix zip_fdopen()
+* CVE-2017-12858: Fix double free()
+* CVE-2017-14107: Improve EOCD64 parsing
+
+1.2.0 [2017-02-19]
+==================
+
+* Support for AES encryption (Winzip version), both encryption
+ and decryption
+* Support legacy zip files with >64k entries
+* Fix seeking in zip_source_file if start > 0
+* Add zip_fseek() for seeking in uncompressed data
+* Add zip_ftell() for telling position in uncompressed data
+* Add zip_register_progress_callback() for UI updates during zip_close()
+
+1.1.3 [2016-05-28]
+==================
+
+* Fix build on Windows when using autoconf
+
+1.1.2 [2016-02-19]
+==================
+
+* Improve support for 3MF files
+
+1.1.1 [2016-02-07]
+==================
+
+* Build fixes for Linux
+* Fix some warnings reported by PVS-Studio
+
+1.1 [2016-01-26]
+================
+
+* ziptool(1): command line tool to modify zip archives
+* Speedups for archives with many entries
+* Coverity fixes
+* Better APK support
+* Support for running tests on Windows
+* More build fixes for Windows
+* Portability fixes
+* Documentation improvements
+
+1.0.1 [2015-05-04]
+==================
+
+* Build fixes for Windows
+
+1.0 [2015-05-03]
+================
+
+* Implemented an I/O abstraction layer
+* Added support for native Windows API for files
+* Added support for setting the last modification time for a file
+* Added a new type zip_error_t for errors
+* Added more typedefs for structs
+* Torrentzip support was removed
+* CVE-2015-2331 was fixed
+* Addressed all Coverity CIDs
+
+0.11.2 [2013-12-19]
+===================
+
+* Support querying/setting operating system and external attributes
+* For newly added files, set operating system to UNIX, permissions
+ to 0666 (0777 for directories)
+* Fix bug when writing zip archives containing files bigger than 4GB
+
+0.11.1 [2013-04-27]
+===================
+
+* Fix bugs in zip_set_file_compression()
+* Include Xcode build infrastructure
+
+0.11 [2013-03-23]
+=================
+
+* Added Zip64 support (large file support)
+* Added UTF-8 support for file names, file comments, and archive comments
+* Changed API for name and comment related functions for UTF-8 support
+* Added zip_discard()
+* Added ZIP_TRUNCATE for zip_open()
+* Added zip_set_file_compression()
+* Added API for accessing and modifying extra fields
+* Improved API type consistency
+* Use gcc4's visibility __attribute__
+* More changes for Windows support
+* Additional test cases
+
+0.10.1 [2012-03-20]
+===================
+
+* Fixed CVE-2012-1162
+* Fixed CVE-2012-1163
+
+0.10 [2010-03-18]
+=================
+
+* Added zip_get_num_entries(), deprecated zip_get_num_files()
+* Better windows support
+* Support for traditional PKWARE encryption added
+* Fix opening archives with more than 65535 entries
+* Fix some memory leaks
+* Fix cmake build and installation
+* Fix memory leak in error case in zip_open()
+* Fixed CVE-2011-0421 (no security implications though)
+* More documentation
+
+0.9.3 [2010-02-01]
+==================
+
+* Include m4/ directory in distribution; some packagers need it
+
+0.9.2 [2010-01-31]
+==================
+
+* Avoid passing uninitialized data to deflate()
+* Fix memory leak when closing zip archives
+
+0.9.1 [2010-01-24]
+==================
+
+* Fix infinite loop on reading some broken files
+* Optimization in time conversion (don't call localtime())
+* Clear data descriptor flag in central directory, fixing Open Office files
+* Allow more than 64k entries
+
+0.9 [2008-07-25]
+==================
+
+* on Windows, explictly set dllimport/dllexport
+* remove erroneous references to GPL
+* add support for torrentzip
+* new functions: zip_get_archive_flag, zip_set_archive_flag
+* zip_source_zip: add flag to force recompression
+* zip_sorce_file: only keep file open while reading from it
+
+0.8 [2007-06-06]
+==================
+
+* fix for zip archives larger than 2GiB
+* fix zip_error_strerror to include libzip error string
+* add support for reading streamed zip files
+* new functions: zip_add_dir, zip_error_clear, zip_file_error_clear
+* add basic support for building with CMake (incomplete)
+
+0.7.1 [2006-05-18]
+==================
+
+* bugfix for zip_close
+
+0.7 [2006-05-06]
+================
+
+* struct zip_stat increased for future encryption support
+* zip_add return value changed (now returns new index of added file)
+* shared library major bump because of previous two
+* added functions for reading and writing file and archive comments
+ New functions: zip_get_archive_comment, zip_get_file_comment,
+ zip_set_archive_comment, zip_set_file_comment, zip_unchange_archive
+
+0.6.1 [2005-07-14]
+==================
+
+* various bug fixes
+
+0.6 [2005-06-09]
+================
+
+* first standalone release
+* changed license to three-clause BSD
+* overhauled API
+* added man pages
+* install zipcmp and zipmerge
diff --git a/plugins/TKLiveSync/libzip_iOS/README.md b/plugins/TKLiveSync/libzip_iOS/README.md
new file mode 100644
index 000000000..6a7e96e58
--- /dev/null
+++ b/plugins/TKLiveSync/libzip_iOS/README.md
@@ -0,0 +1,50 @@
+### NativeScript Remarks
+
+Adapted to create a xcframework by following these steps:
+* Source code obtained from the original repository
+* Invoked CMake to generate Xcode project
+* Added a new iOS Framework target
+* Included all source and headers files
+* Added a script to package as .xcframework
+
+===
+
+This is libzip, a C library for reading, creating, and modifying zip
+archives. Files can be added from data buffers, files, or compressed
+data copied directly from other zip archives. Changes made without
+closing the archive can be reverted. Decryption and encryption of
+Winzip AES and decryption of legacy PKware encrypted files is
+supported. The API is documented by man pages.
+
+libzip is fully documented via man pages. HTML versions of the man
+pages are on [libzip.org](https://libzip.org/documentation/) and
+in the [man](man) directory. You can start with
+[libzip(3)](https://libzip.org/documentation/libzip.html), which
+lists
+all others. Example source code is in the [examples](examples) and
+[src](src) subdirectories.
+
+If you have developed an application using libzip, you can find out
+about API changes and how to adapt your code for them in the included
+file [API-CHANGES.md](API-CHANGES.md).
+
+See the [INSTALL.md](INSTALL.md) file for installation instructions and
+dependencies.
+
+If you make a binary distribution, please include a pointer to the
+distribution site:
+> https://libzip.org/
+
+The latest version can always be found there. The official repository
+is at [github](https://github.com/nih-at/libzip/).
+
+There is a mailing list for developers using libzip. You can
+subscribe to it by sending a mail with the subject "subscribe
+libzip-discuss" to minimalist at nih.at. List mail should be sent
+to libzip-discuss at nih.at. Use this for bug reports or questions.
+
+If you want to reach the authors in private, use .
+
+[](https://travis-ci.org/nih-at/libzip)
+[](https://ci.appveyor.com/project/0-wiz-0/libzip)
+[](https://scan.coverity.com/projects/libzip)
diff --git a/plugins/TKLiveSync/libzip_iOS/THANKS b/plugins/TKLiveSync/libzip_iOS/THANKS
new file mode 100644
index 000000000..e8f3b3d72
--- /dev/null
+++ b/plugins/TKLiveSync/libzip_iOS/THANKS
@@ -0,0 +1,87 @@
+Thanks to Info-ZIP for info on the DOS-time/date conversion code,
+and some other general information gathered from their sources.
+
+Thanks to these people for suggestions, testing, and bug reports:
+
+Agostino Sarubbo
+Alexander Galanin
+Alexandr Shadchin
+Andreas Falkenhahn
+Andrew Brampton
+Andrew Molyneux
+Ankur Kothari
+BALATON Zoltan
+Benjamin Gilbert
+Boaz Stolk
+Bogdan
+Brian 'geeknik' Carpenter
+Carl Mastrangelo
+Cédric Tabin
+Chris Nehren
+Coverity
+Dane Springmeyer
+David Demelier
+Del Merritt
+Dmytro Rybachenko
+Elvis Angelaccio
+Erwin Haid
+Eun-cheol Joo
+Florian Delizy
+François Simon
+Frederik Ramm
+Hanno Böck
+HeeMyung
+Heiko Becker
+Heiko Hund
+Ilya Voronin
+Info-ZIP group
+Jan Weiß
+Jay Freeman (saurik)
+João Custódio
+Joel Ebrahimi
+Jono Spiro
+Julien Schueller
+Keith Jones
+Kohei Yoshida
+Leith Bade
+Lubomir I. Ivanov
+Maël Nison
+Martin Buchholz
+Martin Herkt
+Martin Szulecki
+Michael Balzer
+Michael Beck
+Michał Janiszewski
+Michal Vyskocil
+Mikhail Gusarov .
+Miklos Vajna
+Oliver Kaiser
+Oliver Kuckertz
+Pascal Terjan
+Patrick Spendrin
+Paul Harris
+Paul Sheppard
+Pavel Raiskup
+Pierre Joye
+Pierre-Louis Cabelguen
+Remi Collet
+Richard Schütz
+Rick Carback
+Robert Norris
+Roberto Tirabassi
+Roland Ortloff
+Sergei Ozerov
+Simon Talbot
+Stephen Bryant
+Tarmo Pikaro
+TC
+Tim Lunn
+Timo Warns
+Tom Callaway
+Tomas Hoger
+Tomáš Malý
+Torsten Paul
+Vassili Courzakis
+William Lee
+Wojciech Michalski
+Wolfgang Glunz
diff --git a/plugins/TKLiveSync/libzip_iOS/TODO.md b/plugins/TKLiveSync/libzip_iOS/TODO.md
new file mode 100644
index 000000000..3a6c5c47f
--- /dev/null
+++ b/plugins/TKLiveSync/libzip_iOS/TODO.md
@@ -0,0 +1,189 @@
+# Soon
+
+* review guidelines/community standards
+ - (Linux Foundation Core Infrastructure Initiative Best Practices)[https://bestpractices.coreinfrastructure.org/]
+ - (Readme Maturity Level)[https://github.com/LappleApple/feedmereadmes/blob/master/README-maturity-model.md]
+ - (Github Community Profile)[https://github.com/nih-at/libzip/community]
+
+* test different crypto backends with TravisCI.
+
+* test for zipcmp reading directory (requires fts)
+
+* improve man page formatting of tagged lists on webpage (``)
+
+* test error cases with special source
+ - tell it which command should fail
+ - use it both as source for `zip_add` and `zip_open_from_source`
+ - `ziptool_regress`:
+ - `-e error_spec`: source containing zip fails depending on `error_spec`
+ - `add_with_error name content error_spec`: add content to archive, where source fails depending on `error_spec`
+ - `add_file_with_error name file_to_add offset len error_spec`: add file to archive, len bytes starting from offset, where source fails depending on `error_spec`
+ - `error_spec`:
+ - source command that fails
+ - error code that source returns
+ - conditions that must be met for error to trigger
+ - Nth call of command
+ - read/write: total byte count so far
+ - state of source (opened, EOF reached, ...)
+
+# Later
+
+## macOS / iOS framework
+
+* get cmake to optionally build frameworks
+
+## Prefixes
+
+For example for adding extractors for self-extracting zip archives.
+````c
+zip_set_archive_prefix(struct zip *za, const zip_uint8_t *data, zip_uint64_t length);
+const zip_uint8_t *zip_get_archive_prefix(struct zip *za, zip_uint64_t *lengthp);
+````
+
+## Compression
+
+* add lzma support
+
+## API Issues
+
+* `zip_get_archive_comment` has `int *lenp` argument. Cleaner would be `zip_uint32_t *`.
+ rename and fix. which other functions for naming consistency?
+* rename remaining `zip_XXX_{file,archive}_*` to `zip_{file,archive}_XXX_*`?
+* compression/crypt implementations: how to set error code on failure
+* compression/crypt error messages a la `ZIP_ER_ZLIB` (no detailed info passing)
+
+## Features
+
+* add seek support for AES-encrypted files
+* consistently use `_zip_crypto_clear()` for passwords
+* support setting extra fields from `zip_source`
+ * introduce layers of extra fields:
+ * original
+ * from `zip_source`
+ * manually set
+ * when querying extra fields, search all of them in reverse order
+ * add whiteout (deleted) flag
+ * allow invalid data flag, used when computing extra field size before writing data
+ * new command `ZIP_SOURCE_EXTRA_FIELDS`
+ * no support for multiple copies of same extra field
+* delete all extra fields during `zip_replace()`
+* function to copy file from one archive to another
+* set `O_CLOEXEC` flag after fopen and mkstemp
+* `zip_file_set_mtime()`: support InfoZIP time stamps
+* support streaming output (creating new archive to e.g. stdout)
+* add function to read/set ASCII file flag
+* `zip_commit()` (to finish changes without closing archive)
+* add custom compression function support
+* `zip_source_zip()`: allow rewinding
+* add `zip_abort()` to allow aborting `zip_close()` (can be called from progress callback)
+* `zipcmp`: add option for file content comparison
+* `zipcmp`: add more paranoid checks:
+ * external attributes/opsys
+ * last_mod
+ * version needed/made by
+ * general purpose bit flags
+* add more consistency checks:
+ * for stored files, test compressed = uncompressed
+ * data descriptor
+ * local headers come before central dir
+* support for old compression methods?
+
+## Bugs
+
+* support InfoZIP encryption header extension (copy data descriptor for encrypted files)
+* ensure that nentries is small enough not to cause overflow (size_t for entry, uint64 for CD on disk)
+* check for limits imposed by format (central dir size, file size, extra fields, ...)
+* `_zip_u2d_time()`: handle `localtime(3)` failure
+* POSIX: `zip_open()`: check whether file can be created and fail if not
+* fix inconsistent usage of valid flags (not checked in many places)
+* `cdr == NULL` -> `ER_NOENT` vs. `idx > cdir->nentry` -> `ER_INVAL` inconsistent (still there?)
+
+
+## Cleanup
+
+* drop _LIBZIP suffixes in cmake defines (no longer needed since they no longer appear in zipconf.h)
+* go over cdir parser and rename various offset/size variables to make it clearer
+* use bool
+* use `ZIP_SOURCE_SUPPORTS_{READABLE,SEEKABLE,WRITABLE}`
+* use `zip_source_seek_compute_offset()`
+* get rid of `zip_get_{compression,encryption}_implementation()`
+* use `zip_*int*_t` internally
+
+## Infrastructure
+
+* rewrite `make_zip_errors.sh` in cmake
+* rewrite `make_zip_err_str.sh` in cmake
+* configure appveyor for Windows builds of libzip
+
+## Test Case Issues
+
+* add test case for clone with files > 4k
+* consider testing for malloc/realloc failures
+* Winzip AES support
+ * test cases decryption: <=20, >20, stat for both
+ * test cases encryption: no password, default password, file-specific password, 128/192/256, <=20, >20
+ * support testing on macOS
+* add test cases for lots of files (including too many)
+* add test cases for holes (between files, between files and cdir, between cdir and eocd, + zip64 where appropriate)
+* unchange on added file
+* test seek in `zip_source_crc()`
+* test cases for `set_extra*`, `delete_extra*`, `*extra_field*`
+* test cases for in memory archives
+ * add
+ * delete
+ * delete all
+ * modify
+* use gcov output to increase test coverage
+* add test case to change values for newly added files (name, compression method, comment, mtime, . . .)
+* `zip_open()` file less than `EOCDLEN` bytes long
+* test calls against old API
+* run regression tests also from CMake framework
+* rename file to dir/ and vice versa (fails)
+* fix comment test to be newline insensitive
+* check if http://bugs.python.org/issue20078 provides ideas for new tests
+
+* (`add`, `replace`)
+ * add to empty zip
+ * add to existing zip
+ * add w/ existing file name [E]
+ * replace ok
+ * replace w/ illegal index [E]
+ * replace w/ deleted name [E]
+ * unchange added/replaced file
+* (`close`)
+ * copy zip file
+ * open copy
+ * rename, delete, replace, add w/ new name, add w/ deleted name
+ * close
+ * zipcmp copy expected
+ * remove copy
+* (`error_get)
+* (`error_get_sys_type`)
+* (`error_to_str`)
+* (`extra_fields`)
+* (`file_error_get`)
+* (`file_strerror`)
+* (`replace`)
+* (`source_buffer`)
+* (`source_file`)
+* (`source_filep`)
+* (`source_free`)
+* (`source_function`)
+* (`source_zip`)
+* (`strerror`)
+* (`unchange`)
+* (`unchange_all`)
+* `open(ZIP_RDONLY)`
+* I/O abstraction layer
+ * `zip_open_from_source`
+* read two zip entries interleaved
+
+## Unsorted
+
+* `zip_source_file()`: don't allow write if start/len specify a part of the file
+* script to check if all exported symbols are marked with `ZIP_EXTERN`, add to make distcheck
+
+* document: `zip_source_write()`: length can't be > `ZIP_INT64_MAX`
+* document: `ZIP_SOURCE_CLOSE` implementation can't return error
+* keep error codes in man pages in sync
+* document error codes in new man pages
diff --git a/plugins/TKLiveSync/libzip_iOS/appveyor.yml b/plugins/TKLiveSync/libzip_iOS/appveyor.yml
new file mode 100644
index 000000000..206136513
--- /dev/null
+++ b/plugins/TKLiveSync/libzip_iOS/appveyor.yml
@@ -0,0 +1,57 @@
+os:
+- Visual Studio 2017
+environment:
+ matrix:
+ - GENERATOR: "Visual Studio 15 2017 Win64"
+ TRIPLET: x64-windows
+ CMAKE_OPTS: "-DBUILD_SHARED_LIBS=off"
+ - GENERATOR: "Visual Studio 15 2017"
+ TRIPLET: x86-windows
+ CMAKE_OPTS: "-DBUILD_SHARED_LIBS=off"
+ - GENERATOR: "Visual Studio 15 2017 ARM"
+ TRIPLET: arm-windows
+ CMAKE_OPTS: "-DENABLE_OPENSSL=off"
+ - GENERATOR: "Visual Studio 15 2017"
+ TRIPLET: x86-uwp
+ CMAKE_OPTS: "-DCMAKE_SYSTEM_NAME=WindowsStore"
+ - GENERATOR: "Visual Studio 15 2017 Win64"
+ TRIPLET: x64-uwp
+ CMAKE_OPTS: "-DCMAKE_SYSTEM_NAME=WindowsStore"
+ - GENERATOR: "Visual Studio 15 2017 ARM"
+ TRIPLET: arm-uwp
+ CMAKE_OPTS: "-DCMAKE_SYSTEM_NAME=WindowsStore -DENABLE_OPENSSL=off"
+ - GENERATOR: "Visual Studio 15 2017"
+ TRIPLET: arm64-windows
+ CMAKE_OPTS: "-AARM64 -DENABLE_OPENSSL=off"
+ - GENERATOR: "Visual Studio 15 2017"
+ TRIPLET: arm64-uwp
+ CMAKE_OPTS: "-AARM64 -DCMAKE_SYSTEM_NAME=WindowsStore -DENABLE_OPENSSL=off"
+before_build:
+ cmd: >-
+ git clone https://github.com/Microsoft/vcpkg
+
+ cd vcpkg
+
+ .\bootstrap-vcpkg.bat
+
+ .\vcpkg integrate install
+
+ .\vcpkg install zlib:%TRIPLET% bzip2:%TRIPLET%
+
+ cd ..
+
+ mkdir build
+
+ cd build
+
+ cmake -DCMAKE_TOOLCHAIN_FILE=%cd%/../vcpkg/scripts/buildsystems/vcpkg.cmake .. -G "%GENERATOR%" %CMAKE_OPTS%
+
+ appveyor PushArtifact config.h
+
+ appveyor PushArtifact CMakeCache.txt
+
+build_script:
+ cmd: >-
+ cmake --build . --config Release --target INSTALL
+
+ cmake --build . --config Debug --target INSTALL
diff --git a/plugins/TKLiveSync/libzip_iOS/cmake-build/CMakeCache.txt b/plugins/TKLiveSync/libzip_iOS/cmake-build/CMakeCache.txt
new file mode 100644
index 000000000..ce0b6778c
--- /dev/null
+++ b/plugins/TKLiveSync/libzip_iOS/cmake-build/CMakeCache.txt
@@ -0,0 +1,780 @@
+# This is the CMakeCache file.
+# For build in directory: /Users/bektchiev/Downloads/libzip-1.5.2/cmake-build
+# It was generated by CMake: /usr/local/Cellar/cmake/3.14.4/bin/cmake
+# You can edit this file to change values found and used by cmake.
+# If you do not want to change any of the values, simply exit the editor.
+# If you do want to change a value, simply edit, save, and exit the editor.
+# The syntax for the file is as follows:
+# KEY:TYPE=VALUE
+# KEY is the name of a variable in the cache.
+# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!.
+# VALUE is the current value for the KEY.
+
+########################
+# EXTERNAL cache entries
+########################
+
+//Build documentation
+BUILD_DOC:BOOL=ON
+
+//Build examples
+BUILD_EXAMPLES:BOOL=ON
+
+//Build regression tests
+BUILD_REGRESS:BOOL=ON
+
+//Build shared libraries
+BUILD_SHARED_LIBS:BOOL=OFF
+
+//Build tools in the src directory (zipcmp, zipmerge, ziptool)
+BUILD_TOOLS:BOOL=ON
+
+//Path to a file.
+BZIP2_INCLUDE_DIR:PATH=/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/usr/include
+
+//Path to a library.
+BZIP2_LIBRARY_DEBUG:FILEPATH=BZIP2_LIBRARY_DEBUG-NOTFOUND
+
+//Path to a library.
+BZIP2_LIBRARY_RELEASE:FILEPATH=/usr/lib/libbz2.dylib
+
+//Path to a program.
+CMAKE_AR:FILEPATH=/Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ar
+
+//Semicolon separated list of supported configuration types, only
+// supports Debug, Release, MinSizeRel, and RelWithDebInfo, anything
+// else will be ignored.
+CMAKE_CONFIGURATION_TYPES:STRING=Debug;Release;MinSizeRel;RelWithDebInfo
+
+//Flags used by the C compiler during all build types.
+CMAKE_C_FLAGS:STRING=
+
+//Flags used by the C compiler during DEBUG builds.
+CMAKE_C_FLAGS_DEBUG:STRING=-g
+
+//Flags used by the C compiler during MINSIZEREL builds.
+CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG
+
+//Flags used by the C compiler during RELEASE builds.
+CMAKE_C_FLAGS_RELEASE:STRING=-O3 -DNDEBUG
+
+//Flags used by the C compiler during RELWITHDEBINFO builds.
+CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG
+
+//Executable file format
+CMAKE_EXECUTABLE_FORMAT:STRING=MACHO
+
+//Flags used by the linker during all build types.
+CMAKE_EXE_LINKER_FLAGS:STRING=
+
+//Flags used by the linker during DEBUG builds.
+CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING=
+
+//Flags used by the linker during MINSIZEREL builds.
+CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING=
+
+//Flags used by the linker during RELEASE builds.
+CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING=
+
+//Flags used by the linker during RELWITHDEBINFO builds.
+CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING=
+
+//User executables (bin)
+CMAKE_INSTALL_BINDIR:PATH=bin
+
+//Read-only architecture-independent data (DATAROOTDIR)
+CMAKE_INSTALL_DATADIR:PATH=
+
+//Read-only architecture-independent data root (share)
+CMAKE_INSTALL_DATAROOTDIR:PATH=share
+
+//Documentation root (DATAROOTDIR/doc/PROJECT_NAME)
+CMAKE_INSTALL_DOCDIR:PATH=
+
+//C header files (include)
+CMAKE_INSTALL_INCLUDEDIR:PATH=include
+
+//Info documentation (DATAROOTDIR/info)
+CMAKE_INSTALL_INFODIR:PATH=
+
+//Object code libraries (lib)
+CMAKE_INSTALL_LIBDIR:PATH=lib
+
+//Program executables (libexec)
+CMAKE_INSTALL_LIBEXECDIR:PATH=libexec
+
+//Locale-dependent data (DATAROOTDIR/locale)
+CMAKE_INSTALL_LOCALEDIR:PATH=
+
+//Modifiable single-machine data (var)
+CMAKE_INSTALL_LOCALSTATEDIR:PATH=var
+
+//Man documentation (DATAROOTDIR/man)
+CMAKE_INSTALL_MANDIR:PATH=
+
+//Path to a program.
+CMAKE_INSTALL_NAME_TOOL:FILEPATH=/usr/bin/install_name_tool
+
+//C header files for non-gcc (/usr/include)
+CMAKE_INSTALL_OLDINCLUDEDIR:PATH=/usr/include
+
+//Install path prefix, prepended onto install directories.
+CMAKE_INSTALL_PREFIX:PATH=/usr/local
+
+//Run-time variable data (LOCALSTATEDIR/run)
+CMAKE_INSTALL_RUNSTATEDIR:PATH=
+
+//System admin executables (sbin)
+CMAKE_INSTALL_SBINDIR:PATH=sbin
+
+//Modifiable architecture-independent data (com)
+CMAKE_INSTALL_SHAREDSTATEDIR:PATH=com
+
+//Read-only single-machine data (etc)
+CMAKE_INSTALL_SYSCONFDIR:PATH=etc
+
+//Path to a program.
+CMAKE_LINKER:FILEPATH=/Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld
+
+//Flags used by the linker during the creation of modules during
+// all build types.
+CMAKE_MODULE_LINKER_FLAGS:STRING=
+
+//Flags used by the linker during the creation of modules during
+// DEBUG builds.
+CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING=
+
+//Flags used by the linker during the creation of modules during
+// MINSIZEREL builds.
+CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING=
+
+//Flags used by the linker during the creation of modules during
+// RELEASE builds.
+CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING=
+
+//Flags used by the linker during the creation of modules during
+// RELWITHDEBINFO builds.
+CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING=
+
+//Path to a program.
+CMAKE_NM:FILEPATH=/Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/nm
+
+//Path to a program.
+CMAKE_OBJCOPY:FILEPATH=CMAKE_OBJCOPY-NOTFOUND
+
+//Path to a program.
+CMAKE_OBJDUMP:FILEPATH=/Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/objdump
+
+//Build architectures for OSX
+CMAKE_OSX_ARCHITECTURES:STRING=
+
+//Minimum OS X version to target for deployment (at runtime); newer
+// APIs weak linked. Set to empty string for default value.
+CMAKE_OSX_DEPLOYMENT_TARGET:STRING=
+
+//The product will be built against the headers and libraries located
+// inside the indicated SDK.
+CMAKE_OSX_SYSROOT:PATH=/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk
+
+//Value Computed by CMake
+CMAKE_PROJECT_DESCRIPTION:STATIC=
+
+//Value Computed by CMake
+CMAKE_PROJECT_HOMEPAGE_URL:STATIC=
+
+//Value Computed by CMake
+CMAKE_PROJECT_NAME:STATIC=libzip
+
+//Path to a program.
+CMAKE_RANLIB:FILEPATH=/Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib
+
+//Flags used by the linker during the creation of shared libraries
+// during all build types.
+CMAKE_SHARED_LINKER_FLAGS:STRING=
+
+//Flags used by the linker during the creation of shared libraries
+// during DEBUG builds.
+CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING=
+
+//Flags used by the linker during the creation of shared libraries
+// during MINSIZEREL builds.
+CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING=
+
+//Flags used by the linker during the creation of shared libraries
+// during RELEASE builds.
+CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING=
+
+//Flags used by the linker during the creation of shared libraries
+// during RELWITHDEBINFO builds.
+CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING=
+
+//If set, runtime paths are not added when installing shared libraries,
+// but are added when building.
+CMAKE_SKIP_INSTALL_RPATH:BOOL=NO
+
+//If set, runtime paths are not added when using shared libraries.
+CMAKE_SKIP_RPATH:BOOL=NO
+
+//Flags used by the linker during the creation of static libraries
+// during all build types.
+CMAKE_STATIC_LINKER_FLAGS:STRING=
+
+//Flags used by the linker during the creation of static libraries
+// during DEBUG builds.
+CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING=
+
+//Flags used by the linker during the creation of static libraries
+// during MINSIZEREL builds.
+CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING=
+
+//Flags used by the linker during the creation of static libraries
+// during RELEASE builds.
+CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING=
+
+//Flags used by the linker during the creation of static libraries
+// during RELWITHDEBINFO builds.
+CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING=
+
+//Path to a program.
+CMAKE_STRIP:FILEPATH=/Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/strip
+
+//If this value is on, makefiles will be generated without the
+// .SILENT directive, and all commands will be echoed to the console
+// during the make. This is useful for debugging only. With Visual
+// Studio IDE projects all commands are done without /nologo.
+CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE
+
+//Documentation format
+DOCUMENTATION_FORMAT:STRING=mdoc
+
+//Enable use of BZip2
+ENABLE_BZIP2:BOOL=ON
+
+//Enable use of CommonCrypto
+ENABLE_COMMONCRYPTO:BOOL=ON
+
+//Enable use of GnuTLS
+ENABLE_GNUTLS:BOOL=ON
+
+//Enable use of mbed TLS
+ENABLE_MBEDTLS:BOOL=ON
+
+//Enable use of OpenSSL
+ENABLE_OPENSSL:BOOL=ON
+
+//Enable use of Windows cryptography libraries
+ENABLE_WINDOWS_CRYPTO:BOOL=ON
+
+//Path to a file.
+GNUTLS_INCLUDE_DIR:PATH=GNUTLS_INCLUDE_DIR-NOTFOUND
+
+//Path to a library.
+GNUTLS_LIBRARY:FILEPATH=GNUTLS_LIBRARY-NOTFOUND
+
+//Path to a file.
+MBEDTLS_INCLUDE_DIR:PATH=MBEDTLS_INCLUDE_DIR-NOTFOUND
+
+//Path to a library.
+MBEDTLS_LIBRARIES:FILEPATH=MBEDTLS_LIBRARIES-NOTFOUND
+
+//Path to a program.
+MDOCTOOL:FILEPATH=/usr/bin/groff
+
+//Path to a file.
+NETTLE_INCLUDE_DIR:PATH=NETTLE_INCLUDE_DIR-NOTFOUND
+
+//Path to a library.
+NETTLE_LIBRARY:FILEPATH=NETTLE_LIBRARY-NOTFOUND
+
+//Path to a library.
+OPENSSL_CRYPTO_LIBRARY:FILEPATH=/usr/lib/libcrypto.dylib
+
+//Path to a file.
+OPENSSL_INCLUDE_DIR:PATH=OPENSSL_INCLUDE_DIR-NOTFOUND
+
+//Path to a library.
+OPENSSL_SSL_LIBRARY:FILEPATH=/usr/lib/libssl.dylib
+
+//pkg-config executable
+PKG_CONFIG_EXECUTABLE:FILEPATH=/usr/local/bin/pkg-config
+
+//Add SO version in .so build
+SHARED_LIB_VERSIONNING:BOOL=ON
+
+//Path to a file.
+ZLIB_INCLUDE_DIR:PATH=/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/usr/include
+
+//Path to a library.
+ZLIB_LIBRARY_DEBUG:FILEPATH=ZLIB_LIBRARY_DEBUG-NOTFOUND
+
+//Path to a library.
+ZLIB_LIBRARY_RELEASE:FILEPATH=/usr/lib/libz.dylib
+
+//Value Computed by CMake
+libzip_BINARY_DIR:STATIC=/Users/bektchiev/Downloads/libzip-1.5.2/cmake-build
+
+//Value Computed by CMake
+libzip_SOURCE_DIR:STATIC=/Users/bektchiev/Downloads/libzip-1.5.2
+
+//Dependencies for the target
+zip_LIB_DEPENDS:STATIC=general;/usr/lib/libz.dylib;general;/usr/lib/libbz2.dylib;
+
+
+########################
+# INTERNAL cache entries
+########################
+
+//Stored Xcode object GUID
+ALL_BUILD_GUID_CMAKE:INTERNAL=E587EDAC743A49B481BEFEF1
+//ADVANCED property for variable: BZIP2_INCLUDE_DIR
+BZIP2_INCLUDE_DIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: BZIP2_LIBRARY_DEBUG
+BZIP2_LIBRARY_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: BZIP2_LIBRARY_RELEASE
+BZIP2_LIBRARY_RELEASE-ADVANCED:INTERNAL=1
+//Have symbol BZ2_bzCompressInit
+BZIP2_NEED_PREFIX:INTERNAL=1
+//ADVANCED property for variable: CMAKE_AR
+CMAKE_AR-ADVANCED:INTERNAL=1
+//This is the directory where this CMakeCache.txt was created
+CMAKE_CACHEFILE_DIR:INTERNAL=/Users/bektchiev/Downloads/libzip-1.5.2/cmake-build
+//Major version of cmake used to create the current loaded cache
+CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3
+//Minor version of cmake used to create the current loaded cache
+CMAKE_CACHE_MINOR_VERSION:INTERNAL=14
+//Patch version of cmake used to create the current loaded cache
+CMAKE_CACHE_PATCH_VERSION:INTERNAL=4
+//Path to CMake executable.
+CMAKE_COMMAND:INTERNAL=/usr/local/Cellar/cmake/3.14.4/bin/cmake
+//Path to cpack program executable.
+CMAKE_CPACK_COMMAND:INTERNAL=/usr/local/Cellar/cmake/3.14.4/bin/cpack
+//Path to ctest program executable.
+CMAKE_CTEST_COMMAND:INTERNAL=/usr/local/Cellar/cmake/3.14.4/bin/ctest
+//ADVANCED property for variable: CMAKE_C_FLAGS
+CMAKE_C_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG
+CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL
+CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE
+CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO
+CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS
+CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG
+CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL
+CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE
+CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO
+CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//Name of external makefile project generator.
+CMAKE_EXTRA_GENERATOR:INTERNAL=
+//Name of generator.
+CMAKE_GENERATOR:INTERNAL=Xcode
+//Generator instance identifier.
+CMAKE_GENERATOR_INSTANCE:INTERNAL=
+//Name of generator platform.
+CMAKE_GENERATOR_PLATFORM:INTERNAL=
+//Name of generator toolset.
+CMAKE_GENERATOR_TOOLSET:INTERNAL=
+//Source directory with the top level CMakeLists.txt file for this
+// project
+CMAKE_HOME_DIRECTORY:INTERNAL=/Users/bektchiev/Downloads/libzip-1.5.2
+//ADVANCED property for variable: CMAKE_INSTALL_BINDIR
+CMAKE_INSTALL_BINDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_INSTALL_DATADIR
+CMAKE_INSTALL_DATADIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_INSTALL_DATAROOTDIR
+CMAKE_INSTALL_DATAROOTDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_INSTALL_DOCDIR
+CMAKE_INSTALL_DOCDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_INSTALL_INCLUDEDIR
+CMAKE_INSTALL_INCLUDEDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_INSTALL_INFODIR
+CMAKE_INSTALL_INFODIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_INSTALL_LIBDIR
+CMAKE_INSTALL_LIBDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_INSTALL_LIBEXECDIR
+CMAKE_INSTALL_LIBEXECDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_INSTALL_LOCALEDIR
+CMAKE_INSTALL_LOCALEDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_INSTALL_LOCALSTATEDIR
+CMAKE_INSTALL_LOCALSTATEDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_INSTALL_MANDIR
+CMAKE_INSTALL_MANDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_INSTALL_NAME_TOOL
+CMAKE_INSTALL_NAME_TOOL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_INSTALL_OLDINCLUDEDIR
+CMAKE_INSTALL_OLDINCLUDEDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_INSTALL_RUNSTATEDIR
+CMAKE_INSTALL_RUNSTATEDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_INSTALL_SBINDIR
+CMAKE_INSTALL_SBINDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_INSTALL_SHAREDSTATEDIR
+CMAKE_INSTALL_SHAREDSTATEDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_INSTALL_SYSCONFDIR
+CMAKE_INSTALL_SYSCONFDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_LINKER
+CMAKE_LINKER-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS
+CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG
+CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL
+CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE
+CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO
+CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_NM
+CMAKE_NM-ADVANCED:INTERNAL=1
+//number of local generators
+CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=6
+//ADVANCED property for variable: CMAKE_OBJCOPY
+CMAKE_OBJCOPY-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_OBJDUMP
+CMAKE_OBJDUMP-ADVANCED:INTERNAL=1
+//Platform information initialized
+CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_RANLIB
+CMAKE_RANLIB-ADVANCED:INTERNAL=1
+//Path to CMake installation.
+CMAKE_ROOT:INTERNAL=/usr/local/Cellar/cmake/3.14.4/share/cmake
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS
+CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG
+CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL
+CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE
+CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO
+CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//CHECK_TYPE_SIZE: sizeof(unsigned short)
+CMAKE_SIZEOF_UNSIGNED_SHORT:INTERNAL=2
+//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH
+CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SKIP_RPATH
+CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS
+CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG
+CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL
+CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE
+CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO
+CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STRIP
+CMAKE_STRIP-ADVANCED:INTERNAL=1
+//uname command
+CMAKE_UNAME:INTERNAL=/usr/bin/uname
+//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE
+CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1
+//Have include CommonCrypto/CommonCrypto.h
+COMMONCRYPTO_FOUND:INTERNAL=1
+//Details about finding BZip2
+FIND_PACKAGE_MESSAGE_DETAILS_BZip2:INTERNAL=[/usr/lib/libbz2.dylib][/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/usr/include][v1.0.6()]
+//Details about finding ZLIB
+FIND_PACKAGE_MESSAGE_DETAILS_ZLIB:INTERNAL=[/usr/lib/libz.dylib][/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/usr/include][v1.2.11()]
+//ADVANCED property for variable: GNUTLS_INCLUDE_DIR
+GNUTLS_INCLUDE_DIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: GNUTLS_LIBRARY
+GNUTLS_LIBRARY-ADVANCED:INTERNAL=1
+//Have function clonefile
+HAVE_CLONEFILE:INTERNAL=1
+//Result of TRY_COMPILE
+HAVE_CMAKE_SIZEOF_UNSIGNED_SHORT:INTERNAL=TRUE
+//Have function explicit_bzero
+HAVE_EXPLICIT_BZERO:INTERNAL=
+//Have function explicit_memset
+HAVE_EXPLICIT_MEMSET:INTERNAL=
+//Test HAVE_FICLONERANGE
+HAVE_FICLONERANGE:INTERNAL=
+//Have function fileno
+HAVE_FILENO:INTERNAL=1
+//Have function fseeko
+HAVE_FSEEKO:INTERNAL=1
+//Have function ftello
+HAVE_FTELLO:INTERNAL=1
+//Have include sys/types.h;sys/stat.h;fts.h
+HAVE_FTS_H:INTERNAL=1
+//Have function getopt
+HAVE_GETOPT:INTERNAL=1
+//Have function getprogname
+HAVE_GETPROGNAME:INTERNAL=1
+//Result of TRY_COMPILE
+HAVE_INT16_T_LIBZIP:INTERNAL=TRUE
+//Result of TRY_COMPILE
+HAVE_INT32_T_LIBZIP:INTERNAL=TRUE
+//Result of TRY_COMPILE
+HAVE_INT64_T_LIBZIP:INTERNAL=TRUE
+//Result of TRY_COMPILE
+HAVE_INT8_T_LIBZIP:INTERNAL=TRUE
+//Have include inttypes.h
+HAVE_INTTYPES_H_LIBZIP:INTERNAL=1
+//Result of TRY_COMPILE
+HAVE_INT_LIBZIP:INTERNAL=TRUE
+//Result of TRY_COMPILE
+HAVE_LONG_LIBZIP:INTERNAL=TRUE
+//Result of TRY_COMPILE
+HAVE_LONG_LONG_LIBZIP:INTERNAL=TRUE
+//Have function mkstemp
+HAVE_MKSTEMP:INTERNAL=1
+//Test HAVE_NULLABLE
+HAVE_NULLABLE:INTERNAL=1
+//Have function open
+HAVE_OPEN:INTERNAL=1
+//Have function setmode
+HAVE_SETMODE:INTERNAL=1
+//Result of TRY_COMPILE
+HAVE_SHORT_LIBZIP:INTERNAL=TRUE
+//Result of TRY_COMPILE
+HAVE_SIZEOF_OFF_T:INTERNAL=TRUE
+//Result of TRY_COMPILE
+HAVE_SIZE_T_LIBZIP:INTERNAL=TRUE
+//Have function snprintf
+HAVE_SNPRINTF:INTERNAL=1
+//Result of TRY_COMPILE
+HAVE_SSIZE_T_LIBZIP:INTERNAL=TRUE
+//Have include stdbool.h
+HAVE_STDBOOL_H:INTERNAL=1
+//Have include stddef.h
+HAVE_STDDEF_H:INTERNAL=1
+//Have include stdint.h
+HAVE_STDINT_H:INTERNAL=1
+//Have include stdint.h
+HAVE_STDINT_H_LIBZIP:INTERNAL=1
+//Have function strcasecmp
+HAVE_STRCASECMP:INTERNAL=1
+//Have function strdup
+HAVE_STRDUP:INTERNAL=1
+//Have function stricmp
+HAVE_STRICMP:INTERNAL=
+//Have include strings.h
+HAVE_STRINGS_H:INTERNAL=1
+//Have function strtoll
+HAVE_STRTOLL:INTERNAL=1
+//Have function strtoull
+HAVE_STRTOULL:INTERNAL=1
+//Have include sys/types.h
+HAVE_SYS_TYPES_H:INTERNAL=1
+//Have include sys/types.h
+HAVE_SYS_TYPES_H_LIBZIP:INTERNAL=1
+//Result of TRY_COMPILE
+HAVE_UINT16_T_LIBZIP:INTERNAL=TRUE
+//Result of TRY_COMPILE
+HAVE_UINT32_T_LIBZIP:INTERNAL=TRUE
+//Result of TRY_COMPILE
+HAVE_UINT64_T_LIBZIP:INTERNAL=TRUE
+//Result of TRY_COMPILE
+HAVE_UINT8_T_LIBZIP:INTERNAL=TRUE
+//Have include unistd.h
+HAVE_UNISTD_H:INTERNAL=1
+//Result of TRY_COMPILE
+HAVE_WORDS_BIGENDIAN:INTERNAL=TRUE
+//Have function _chmod
+HAVE__CHMOD:INTERNAL=
+//Have function _close
+HAVE__CLOSE:INTERNAL=
+//Have function _dup
+HAVE__DUP:INTERNAL=
+//Have function _fdopen
+HAVE__FDOPEN:INTERNAL=
+//Have function _fileno
+HAVE__FILENO:INTERNAL=
+//Have function _open
+HAVE__OPEN:INTERNAL=
+//Have function _setmode
+HAVE__SETMODE:INTERNAL=
+//Have function _snprintf
+HAVE__SNPRINTF:INTERNAL=
+//Have function _strdup
+HAVE__STRDUP:INTERNAL=
+//Have function _stricmp
+HAVE__STRICMP:INTERNAL=
+//Have function _strtoi64
+HAVE__STRTOI64:INTERNAL=
+//Have function _strtoui64
+HAVE__STRTOUI64:INTERNAL=
+//Have function _umask
+HAVE__UMASK:INTERNAL=
+//Have function _unlink
+HAVE__UNLINK:INTERNAL=
+//Result of TRY_COMPILE
+HAVE___INT16_LIBZIP:INTERNAL=FALSE
+//Result of TRY_COMPILE
+HAVE___INT32_LIBZIP:INTERNAL=FALSE
+//Result of TRY_COMPILE
+HAVE___INT64_LIBZIP:INTERNAL=FALSE
+//Result of TRY_COMPILE
+HAVE___INT8_LIBZIP:INTERNAL=FALSE
+//CHECK_TYPE_SIZE: sizeof(int16_t)
+INT16_T_LIBZIP:INTERNAL=2
+//CHECK_TYPE_SIZE: sizeof(int32_t)
+INT32_T_LIBZIP:INTERNAL=4
+//CHECK_TYPE_SIZE: sizeof(int64_t)
+INT64_T_LIBZIP:INTERNAL=8
+//CHECK_TYPE_SIZE: sizeof(int8_t)
+INT8_T_LIBZIP:INTERNAL=1
+//CHECK_TYPE_SIZE: sizeof(int)
+INT_LIBZIP:INTERNAL=4
+//CHECK_TYPE_SIZE: sizeof(long)
+LONG_LIBZIP:INTERNAL=8
+//CHECK_TYPE_SIZE: sizeof(long long)
+LONG_LONG_LIBZIP:INTERNAL=8
+//ADVANCED property for variable: OPENSSL_CRYPTO_LIBRARY
+OPENSSL_CRYPTO_LIBRARY-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: OPENSSL_INCLUDE_DIR
+OPENSSL_INCLUDE_DIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: OPENSSL_SSL_LIBRARY
+OPENSSL_SSL_LIBRARY-ADVANCED:INTERNAL=1
+PC_GNUTLS_CFLAGS:INTERNAL=
+PC_GNUTLS_CFLAGS_I:INTERNAL=
+PC_GNUTLS_CFLAGS_OTHER:INTERNAL=
+PC_GNUTLS_FOUND:INTERNAL=
+PC_GNUTLS_INCLUDEDIR:INTERNAL=
+PC_GNUTLS_LIBDIR:INTERNAL=
+PC_GNUTLS_LIBS:INTERNAL=
+PC_GNUTLS_LIBS_L:INTERNAL=
+PC_GNUTLS_LIBS_OTHER:INTERNAL=
+PC_GNUTLS_LIBS_PATHS:INTERNAL=
+PC_GNUTLS_PREFIX:INTERNAL=
+PC_GNUTLS_STATIC_CFLAGS:INTERNAL=
+PC_GNUTLS_STATIC_CFLAGS_I:INTERNAL=
+PC_GNUTLS_STATIC_CFLAGS_OTHER:INTERNAL=
+PC_GNUTLS_STATIC_LIBDIR:INTERNAL=
+PC_GNUTLS_STATIC_LIBS:INTERNAL=
+PC_GNUTLS_STATIC_LIBS_L:INTERNAL=
+PC_GNUTLS_STATIC_LIBS_OTHER:INTERNAL=
+PC_GNUTLS_STATIC_LIBS_PATHS:INTERNAL=
+PC_GNUTLS_VERSION:INTERNAL=
+PC_GNUTLS_gnutls_INCLUDEDIR:INTERNAL=
+PC_GNUTLS_gnutls_LIBDIR:INTERNAL=
+PC_GNUTLS_gnutls_PREFIX:INTERNAL=
+PC_GNUTLS_gnutls_VERSION:INTERNAL=
+//ADVANCED property for variable: PKG_CONFIG_EXECUTABLE
+PKG_CONFIG_EXECUTABLE-ADVANCED:INTERNAL=1
+//Stored Xcode object GUID
+PROJECT_libzip_GUID_CMAKE:INTERNAL=545FEC7291C8432F9D13F0A1
+//Stored Xcode object GUID
+RUN_TESTS_GUID_CMAKE:INTERNAL=BD0794CF105B464CAE979C47
+//CHECK_TYPE_SIZE: sizeof(short)
+SHORT_LIBZIP:INTERNAL=2
+//CHECK_TYPE_SIZE: sizeof(off_t)
+SIZEOF_OFF_T:INTERNAL=8
+//CHECK_TYPE_SIZE: sizeof(size_t)
+SIZE_T_LIBZIP:INTERNAL=8
+//CHECK_TYPE_SIZE: sizeof(ssize_t)
+SSIZE_T_LIBZIP:INTERNAL=8
+//CHECK_TYPE_SIZE: sizeof(uint16_t)
+UINT16_T_LIBZIP:INTERNAL=2
+//CHECK_TYPE_SIZE: sizeof(uint32_t)
+UINT32_T_LIBZIP:INTERNAL=4
+//CHECK_TYPE_SIZE: sizeof(uint64_t)
+UINT64_T_LIBZIP:INTERNAL=8
+//CHECK_TYPE_SIZE: sizeof(uint8_t)
+UINT8_T_LIBZIP:INTERNAL=1
+//Result of TEST_BIG_ENDIAN
+WORDS_BIGENDIAN:INTERNAL=0
+//Stored Xcode object GUID
+ZERO_CHECK_GUID_CMAKE:INTERNAL=0E4CBCF65EE14297B1825289
+//ADVANCED property for variable: ZLIB_INCLUDE_DIR
+ZLIB_INCLUDE_DIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: ZLIB_LIBRARY_DEBUG
+ZLIB_LIBRARY_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: ZLIB_LIBRARY_RELEASE
+ZLIB_LIBRARY_RELEASE-ADVANCED:INTERNAL=1
+//CMAKE_INSTALL_PREFIX during last run
+_GNUInstallDirs_LAST_CMAKE_INSTALL_PREFIX:INTERNAL=/usr/local
+_OPENSSL_CFLAGS:INTERNAL=
+_OPENSSL_CFLAGS_I:INTERNAL=
+_OPENSSL_CFLAGS_OTHER:INTERNAL=
+_OPENSSL_FOUND:INTERNAL=
+_OPENSSL_INCLUDEDIR:INTERNAL=
+_OPENSSL_LIBDIR:INTERNAL=
+_OPENSSL_LIBS:INTERNAL=
+_OPENSSL_LIBS_L:INTERNAL=
+_OPENSSL_LIBS_OTHER:INTERNAL=
+_OPENSSL_LIBS_PATHS:INTERNAL=
+_OPENSSL_PREFIX:INTERNAL=
+_OPENSSL_STATIC_CFLAGS:INTERNAL=
+_OPENSSL_STATIC_CFLAGS_I:INTERNAL=
+_OPENSSL_STATIC_CFLAGS_OTHER:INTERNAL=
+_OPENSSL_STATIC_LIBDIR:INTERNAL=
+_OPENSSL_STATIC_LIBS:INTERNAL=
+_OPENSSL_STATIC_LIBS_L:INTERNAL=
+_OPENSSL_STATIC_LIBS_OTHER:INTERNAL=
+_OPENSSL_STATIC_LIBS_PATHS:INTERNAL=
+_OPENSSL_VERSION:INTERNAL=
+_OPENSSL_openssl_INCLUDEDIR:INTERNAL=
+_OPENSSL_openssl_LIBDIR:INTERNAL=
+_OPENSSL_openssl_PREFIX:INTERNAL=
+_OPENSSL_openssl_VERSION:INTERNAL=
+//CHECK_TYPE_SIZE: __int16 unknown
+__INT16_LIBZIP:INTERNAL=
+//CHECK_TYPE_SIZE: __int32 unknown
+__INT32_LIBZIP:INTERNAL=
+//CHECK_TYPE_SIZE: __int64 unknown
+__INT64_LIBZIP:INTERNAL=
+//CHECK_TYPE_SIZE: __int8 unknown
+__INT8_LIBZIP:INTERNAL=
+__pkg_config_checked_PC_GNUTLS:INTERNAL=1
+__pkg_config_checked__OPENSSL:INTERNAL=1
+//Stored Xcode object GUID
+add_from_filep_GUID_CMAKE:INTERNAL=5E1F62A09B2943958AF7C856
+//Stored Xcode object GUID
+can_clone_file_GUID_CMAKE:INTERNAL=6397C2F8BF024CABB60AD74E
+//Stored Xcode object GUID
+check_GUID_CMAKE:INTERNAL=1AC743C03B054C0AA5AF6F2C
+//Stored Xcode object GUID
+cleanup_GUID_CMAKE:INTERNAL=888964F5054C4F21A1092E11
+//Stored Xcode object GUID
+dist_GUID_CMAKE:INTERNAL=A6CDD43C629C4E2C87AD3E48
+//Stored Xcode object GUID
+distcheck_GUID_CMAKE:INTERNAL=E8E99826335F4FFEA6797872
+//Stored Xcode object GUID
+fopen_unchanged_GUID_CMAKE:INTERNAL=F8C82B050439466DB6764BB9
+//Stored Xcode object GUID
+fread_GUID_CMAKE:INTERNAL=2EE7C069705A4BA4B9C10A60
+//Stored Xcode object GUID
+fseek_GUID_CMAKE:INTERNAL=FCA6544E3F9C459DBA3E1EE1
+//Stored Xcode object GUID
+hole_GUID_CMAKE:INTERNAL=268B51680EDE4BC1B17DA168
+//Stored Xcode object GUID
+in-memory_GUID_CMAKE:INTERNAL=CF106426BFE54D38806BD045
+//Stored Xcode object GUID
+install_GUID_CMAKE:INTERNAL=86AD4ABA1D2644A9B01FAAA5
+//Stored Xcode object GUID
+man_GUID_CMAKE:INTERNAL=3FF90C8CD9D74E62B5CFE01B
+//Stored Xcode object GUID
+nonrandomopen_GUID_CMAKE:INTERNAL=6AE33F7A9ACB43D48D6CA530
+//Stored Xcode object GUID
+nonrandomopentest_GUID_CMAKE:INTERNAL=C80742A08F784DDB8FD60D7E
+//Stored Xcode object GUID
+testinput_GUID_CMAKE:INTERNAL=AC903D34B407400492AD0BB9
+//Stored Xcode object GUID
+tryopen_GUID_CMAKE:INTERNAL=EE17F42E1734468EB82C10ED
+//Stored Xcode object GUID
+update-html_GUID_CMAKE:INTERNAL=3861D06FB67E4DD0AD170E3F
+//Stored Xcode object GUID
+update-man_GUID_CMAKE:INTERNAL=929B6E0CB0184B6397AA1BB7
+//Stored Xcode object GUID
+update_zip_err_str_GUID_CMAKE:INTERNAL=755F7C254BD045619F08F484
+//Stored Xcode object GUID
+update_zip_errors_GUID_CMAKE:INTERNAL=23DEAC5C823E4B78A813DD74
+//Stored Xcode object GUID
+zip_GUID_CMAKE:INTERNAL=392F0459EF7C480EAE0CC561
+//Stored Xcode object GUID
+zipcmp_GUID_CMAKE:INTERNAL=A9C046FD73B3493B889661DB
+//Stored Xcode object GUID
+zipmerge_GUID_CMAKE:INTERNAL=E4C63C21CE7F45A3BFB7F3A4
+//Stored Xcode object GUID
+ziptool_GUID_CMAKE:INTERNAL=B2108097E371401DA09DB468
+//Stored Xcode object GUID
+ziptool_regress_GUID_CMAKE:INTERNAL=E40F6B1D5CD54998AE5CE904
+
diff --git a/plugins/TKLiveSync/libzip_iOS/cmake-build/CMakeFiles/3.14.4/CMakeCCompiler.cmake b/plugins/TKLiveSync/libzip_iOS/cmake-build/CMakeFiles/3.14.4/CMakeCCompiler.cmake
new file mode 100644
index 000000000..1fe728460
--- /dev/null
+++ b/plugins/TKLiveSync/libzip_iOS/cmake-build/CMakeFiles/3.14.4/CMakeCCompiler.cmake
@@ -0,0 +1,75 @@
+set(CMAKE_C_COMPILER "/Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang")
+set(CMAKE_C_COMPILER_ARG1 "")
+set(CMAKE_C_COMPILER_ID "AppleClang")
+set(CMAKE_C_COMPILER_VERSION "11.0.0.11000020")
+set(CMAKE_C_COMPILER_VERSION_INTERNAL "")
+set(CMAKE_C_COMPILER_WRAPPER "")
+set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "11")
+set(CMAKE_C_COMPILE_FEATURES "c_std_90;c_function_prototypes;c_std_99;c_restrict;c_variadic_macros;c_std_11;c_static_assert")
+set(CMAKE_C90_COMPILE_FEATURES "c_std_90;c_function_prototypes")
+set(CMAKE_C99_COMPILE_FEATURES "c_std_99;c_restrict;c_variadic_macros")
+set(CMAKE_C11_COMPILE_FEATURES "c_std_11;c_static_assert")
+
+set(CMAKE_C_PLATFORM_ID "Darwin")
+set(CMAKE_C_SIMULATE_ID "")
+set(CMAKE_C_SIMULATE_VERSION "")
+
+
+set(CMAKE_XCODE_ARCHS "x86_64")
+set(CMAKE_AR "/Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ar")
+set(CMAKE_C_COMPILER_AR "")
+set(CMAKE_RANLIB "/Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib")
+set(CMAKE_C_COMPILER_RANLIB "")
+set(CMAKE_LINKER "/Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld")
+set(CMAKE_MT "")
+set(CMAKE_COMPILER_IS_GNUCC )
+set(CMAKE_C_COMPILER_LOADED 1)
+set(CMAKE_C_COMPILER_WORKS TRUE)
+set(CMAKE_C_ABI_COMPILED TRUE)
+set(CMAKE_COMPILER_IS_MINGW )
+set(CMAKE_COMPILER_IS_CYGWIN )
+if(CMAKE_COMPILER_IS_CYGWIN)
+ set(CYGWIN 1)
+ set(UNIX 1)
+endif()
+
+set(CMAKE_C_COMPILER_ENV_VAR "CC")
+
+if(CMAKE_COMPILER_IS_MINGW)
+ set(MINGW 1)
+endif()
+set(CMAKE_C_COMPILER_ID_RUN 1)
+set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m)
+set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC)
+set(CMAKE_C_LINKER_PREFERENCE 10)
+
+# Save compiler ABI information.
+set(CMAKE_C_SIZEOF_DATA_PTR "8")
+set(CMAKE_C_COMPILER_ABI "")
+set(CMAKE_C_LIBRARY_ARCHITECTURE "")
+
+if(CMAKE_C_SIZEOF_DATA_PTR)
+ set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}")
+endif()
+
+if(CMAKE_C_COMPILER_ABI)
+ set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}")
+endif()
+
+if(CMAKE_C_LIBRARY_ARCHITECTURE)
+ set(CMAKE_LIBRARY_ARCHITECTURE "")
+endif()
+
+set(CMAKE_C_CL_SHOWINCLUDES_PREFIX "")
+if(CMAKE_C_CL_SHOWINCLUDES_PREFIX)
+ set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}")
+endif()
+
+
+
+
+
+set(CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES "/Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/11.0.0/include;/Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include;/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/usr/include")
+set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "")
+set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/usr/lib")
+set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/System/Library/Frameworks")
diff --git a/plugins/TKLiveSync/libzip_iOS/cmake-build/CMakeFiles/3.14.4/CMakeDetermineCompilerABI_C.bin b/plugins/TKLiveSync/libzip_iOS/cmake-build/CMakeFiles/3.14.4/CMakeDetermineCompilerABI_C.bin
new file mode 100755
index 000000000..5cb128261
Binary files /dev/null and b/plugins/TKLiveSync/libzip_iOS/cmake-build/CMakeFiles/3.14.4/CMakeDetermineCompilerABI_C.bin differ
diff --git a/plugins/TKLiveSync/libzip_iOS/cmake-build/CMakeFiles/3.14.4/CMakeSystem.cmake b/plugins/TKLiveSync/libzip_iOS/cmake-build/CMakeFiles/3.14.4/CMakeSystem.cmake
new file mode 100644
index 000000000..1ce45c350
--- /dev/null
+++ b/plugins/TKLiveSync/libzip_iOS/cmake-build/CMakeFiles/3.14.4/CMakeSystem.cmake
@@ -0,0 +1,15 @@
+set(CMAKE_HOST_SYSTEM "Darwin-19.0.0")
+set(CMAKE_HOST_SYSTEM_NAME "Darwin")
+set(CMAKE_HOST_SYSTEM_VERSION "19.0.0")
+set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64")
+
+
+
+set(CMAKE_SYSTEM "Darwin-19.0.0")
+set(CMAKE_SYSTEM_NAME "Darwin")
+set(CMAKE_SYSTEM_VERSION "19.0.0")
+set(CMAKE_SYSTEM_PROCESSOR "x86_64")
+
+set(CMAKE_CROSSCOMPILING "FALSE")
+
+set(CMAKE_SYSTEM_LOADED 1)
diff --git a/plugins/TKLiveSync/libzip_iOS/cmake-build/CMakeFiles/3.14.4/CompilerIdC/CMakeCCompilerId.c b/plugins/TKLiveSync/libzip_iOS/cmake-build/CMakeFiles/3.14.4/CompilerIdC/CMakeCCompilerId.c
new file mode 100644
index 000000000..ef2a8bbd0
--- /dev/null
+++ b/plugins/TKLiveSync/libzip_iOS/cmake-build/CMakeFiles/3.14.4/CompilerIdC/CMakeCCompilerId.c
@@ -0,0 +1,698 @@
+#ifdef __cplusplus
+#error "A C++ compiler has been selected for C."
+#endif
+
+#if defined(__18CXX)
+#define ID_VOID_MAIN
+#endif
+#if defined(__CLASSIC_C__)
+/* cv-qualifiers did not exist in K&R C */
+#define const
+#define volatile
+#endif
+
+
+/* Version number components: V=Version, R=Revision, P=Patch
+ Version date components: YYYY=Year, MM=Month, DD=Day */
+
+#if defined(__INTEL_COMPILER) || defined(__ICC)
+#define COMPILER_ID "Intel"
+#if defined(_MSC_VER)
+#define SIMULATE_ID "MSVC"
+#endif
+/* __INTEL_COMPILER = VRP */
+#define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER / 100)
+#define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER / 10 % 10)
+#if defined(__INTEL_COMPILER_UPDATE)
+#define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE)
+#else
+#define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10)
+#endif
+#if defined(__INTEL_COMPILER_BUILD_DATE)
+/* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */
+#define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE)
+#endif
+#if defined(_MSC_VER)
+/* _MSC_VER = VVRR */
+#define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+#define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+#endif
+
+#elif defined(__PATHCC__)
+#define COMPILER_ID "PathScale"
+#define COMPILER_VERSION_MAJOR DEC(__PATHCC__)
+#define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__)
+#if defined(__PATHCC_PATCHLEVEL__)
+#define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__)
+#endif
+
+#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__)
+#define COMPILER_ID "Embarcadero"
+#define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__ >> 24 & 0x00FF)
+#define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__ >> 16 & 0x00FF)
+#define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF)
+
+#elif defined(__BORLANDC__)
+#define COMPILER_ID "Borland"
+/* __BORLANDC__ = 0xVRR */
+#define COMPILER_VERSION_MAJOR HEX(__BORLANDC__ >> 8)
+#define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF)
+
+#elif defined(__WATCOMC__) && __WATCOMC__ < 1200
+#define COMPILER_ID "Watcom"
+/* __WATCOMC__ = VVRR */
+#define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100)
+#define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
+#if (__WATCOMC__ % 10) > 0
+#define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
+#endif
+
+#elif defined(__WATCOMC__)
+#define COMPILER_ID "OpenWatcom"
+/* __WATCOMC__ = VVRP + 1100 */
+#define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100)
+#define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
+#if (__WATCOMC__ % 10) > 0
+#define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
+#endif
+
+#elif defined(__SUNPRO_C)
+#define COMPILER_ID "SunPro"
+#if __SUNPRO_C >= 0x5100
+/* __SUNPRO_C = 0xVRRP */
+#define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C >> 12)
+#define COMPILER_VERSION_MINOR HEX(__SUNPRO_C >> 4 & 0xFF)
+#define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF)
+#else
+/* __SUNPRO_CC = 0xVRP */
+#define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C >> 8)
+#define COMPILER_VERSION_MINOR HEX(__SUNPRO_C >> 4 & 0xF)
+#define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF)
+#endif
+
+#elif defined(__HP_cc)
+#define COMPILER_ID "HP"
+/* __HP_cc = VVRRPP */
+#define COMPILER_VERSION_MAJOR DEC(__HP_cc / 10000)
+#define COMPILER_VERSION_MINOR DEC(__HP_cc / 100 % 100)
+#define COMPILER_VERSION_PATCH DEC(__HP_cc % 100)
+
+#elif defined(__DECC)
+#define COMPILER_ID "Compaq"
+/* __DECC_VER = VVRRTPPPP */
+#define COMPILER_VERSION_MAJOR DEC(__DECC_VER / 10000000)
+#define COMPILER_VERSION_MINOR DEC(__DECC_VER / 100000 % 100)
+#define COMPILER_VERSION_PATCH DEC(__DECC_VER % 10000)
+
+#elif defined(__IBMC__) && defined(__COMPILER_VER__)
+#define COMPILER_ID "zOS"
+#if defined(__ibmxl__)
+#define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__)
+#define COMPILER_VERSION_MINOR DEC(__ibmxl_release__)
+#define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__)
+#define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__)
+#else
+/* __IBMC__ = VRP */
+#define COMPILER_VERSION_MAJOR DEC(__IBMC__ / 100)
+#define COMPILER_VERSION_MINOR DEC(__IBMC__ / 10 % 10)
+#define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10)
+#endif
+
+
+#elif defined(__ibmxl__) || (defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ >= 800)
+#define COMPILER_ID "XL"
+#if defined(__ibmxl__)
+#define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__)
+#define COMPILER_VERSION_MINOR DEC(__ibmxl_release__)
+#define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__)
+#define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__)
+#else
+/* __IBMC__ = VRP */
+#define COMPILER_VERSION_MAJOR DEC(__IBMC__ / 100)
+#define COMPILER_VERSION_MINOR DEC(__IBMC__ / 10 % 10)
+#define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10)
+#endif
+
+
+#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ < 800
+#define COMPILER_ID "VisualAge"
+#if defined(__ibmxl__)
+#define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__)
+#define COMPILER_VERSION_MINOR DEC(__ibmxl_release__)
+#define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__)
+#define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__)
+#else
+/* __IBMC__ = VRP */
+#define COMPILER_VERSION_MAJOR DEC(__IBMC__ / 100)
+#define COMPILER_VERSION_MINOR DEC(__IBMC__ / 10 % 10)
+#define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10)
+#endif
+
+
+#elif defined(__PGI)
+#define COMPILER_ID "PGI"
+#define COMPILER_VERSION_MAJOR DEC(__PGIC__)
+#define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__)
+#if defined(__PGIC_PATCHLEVEL__)
+#define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__)
+#endif
+
+#elif defined(_CRAYC)
+#define COMPILER_ID "Cray"
+#define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR)
+#define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR)
+
+#elif defined(__TI_COMPILER_VERSION__)
+#define COMPILER_ID "TI"
+/* __TI_COMPILER_VERSION__ = VVVRRRPPP */
+#define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__ / 1000000)
+#define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__ / 1000 % 1000)
+#define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000)
+
+#elif defined(__FUJITSU) || defined(__FCC_VERSION) || defined(__fcc_version)
+#define COMPILER_ID "Fujitsu"
+
+#elif defined(__ghs__)
+#define COMPILER_ID "GHS"
+/* __GHS_VERSION_NUMBER = VVVVRP */
+#ifdef __GHS_VERSION_NUMBER
+#define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100)
+#define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10)
+#define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10)
+#endif
+
+#elif defined(__TINYC__)
+#define COMPILER_ID "TinyCC"
+
+#elif defined(__BCC__)
+#define COMPILER_ID "Bruce"
+
+#elif defined(__SCO_VERSION__)
+#define COMPILER_ID "SCO"
+
+#elif defined(__ARMCC_VERSION) && !defined(__clang__)
+#define COMPILER_ID "ARMCC"
+#if __ARMCC_VERSION >= 1000000
+/* __ARMCC_VERSION = VRRPPPP */
+#define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION / 1000000)
+#define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION / 10000 % 100)
+#define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000)
+#else
+/* __ARMCC_VERSION = VRPPPP */
+#define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION / 100000)
+#define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION / 10000 % 10)
+#define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000)
+#endif
+
+
+#elif defined(__clang__) && defined(__apple_build_version__)
+#define COMPILER_ID "AppleClang"
+#if defined(_MSC_VER)
+#define SIMULATE_ID "MSVC"
+#endif
+#define COMPILER_VERSION_MAJOR DEC(__clang_major__)
+#define COMPILER_VERSION_MINOR DEC(__clang_minor__)
+#define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
+#if defined(_MSC_VER)
+/* _MSC_VER = VVRR */
+#define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+#define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+#endif
+#define COMPILER_VERSION_TWEAK DEC(__apple_build_version__)
+
+#elif defined(__clang__)
+#define COMPILER_ID "Clang"
+#if defined(_MSC_VER)
+#define SIMULATE_ID "MSVC"
+#endif
+#define COMPILER_VERSION_MAJOR DEC(__clang_major__)
+#define COMPILER_VERSION_MINOR DEC(__clang_minor__)
+#define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
+#if defined(_MSC_VER)
+/* _MSC_VER = VVRR */
+#define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+#define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+#endif
+
+#elif defined(__GNUC__)
+#define COMPILER_ID "GNU"
+#define COMPILER_VERSION_MAJOR DEC(__GNUC__)
+#if defined(__GNUC_MINOR__)
+#define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__)
+#endif
+#if defined(__GNUC_PATCHLEVEL__)
+#define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
+#endif
+
+#elif defined(_MSC_VER)
+#define COMPILER_ID "MSVC"
+/* _MSC_VER = VVRR */
+#define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100)
+#define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100)
+#if defined(_MSC_FULL_VER)
+#if _MSC_VER >= 1400
+/* _MSC_FULL_VER = VVRRPPPPP */
+#define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000)
+#else
+/* _MSC_FULL_VER = VVRRPPPP */
+#define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000)
+#endif
+#endif
+#if defined(_MSC_BUILD)
+#define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD)
+#endif
+
+#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__)
+#define COMPILER_ID "ADSP"
+#if defined(__VISUALDSPVERSION__)
+/* __VISUALDSPVERSION__ = 0xVVRRPP00 */
+#define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__ >> 24)
+#define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__ >> 16 & 0xFF)
+#define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__ >> 8 & 0xFF)
+#endif
+
+#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
+#define COMPILER_ID "IAR"
+#if defined(__VER__) && defined(__ICCARM__)
+#define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000)
+#define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000)
+#define COMPILER_VERSION_PATCH DEC((__VER__) % 1000)
+#define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
+#elif defined(__VER__) && defined(__ICCAVR__)
+#define COMPILER_VERSION_MAJOR DEC((__VER__) / 100)
+#define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100) * 100))
+#define COMPILER_VERSION_PATCH DEC(__SUBVERSION__)
+#define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
+#endif
+
+#elif defined(__SDCC_VERSION_MAJOR) || defined(SDCC)
+#define COMPILER_ID "SDCC"
+#if defined(__SDCC_VERSION_MAJOR)
+#define COMPILER_VERSION_MAJOR DEC(__SDCC_VERSION_MAJOR)
+#define COMPILER_VERSION_MINOR DEC(__SDCC_VERSION_MINOR)
+#define COMPILER_VERSION_PATCH DEC(__SDCC_VERSION_PATCH)
+#else
+/* SDCC = VRP */
+#define COMPILER_VERSION_MAJOR DEC(SDCC / 100)
+#define COMPILER_VERSION_MINOR DEC(SDCC / 10 % 10)
+#define COMPILER_VERSION_PATCH DEC(SDCC % 10)
+#endif
+
+#elif defined(_SGI_COMPILER_VERSION) || defined(_COMPILER_VERSION)
+#define COMPILER_ID "MIPSpro"
+#if defined(_SGI_COMPILER_VERSION)
+/* _SGI_COMPILER_VERSION = VRP */
+#define COMPILER_VERSION_MAJOR DEC(_SGI_COMPILER_VERSION / 100)
+#define COMPILER_VERSION_MINOR DEC(_SGI_COMPILER_VERSION / 10 % 10)
+#define COMPILER_VERSION_PATCH DEC(_SGI_COMPILER_VERSION % 10)
+#else
+/* _COMPILER_VERSION = VRP */
+#define COMPILER_VERSION_MAJOR DEC(_COMPILER_VERSION / 100)
+#define COMPILER_VERSION_MINOR DEC(_COMPILER_VERSION / 10 % 10)
+#define COMPILER_VERSION_PATCH DEC(_COMPILER_VERSION % 10)
+#endif
+
+
+/* These compilers are either not known or too old to define an
+ identification macro. Try to identify the platform and guess that
+ it is the native compiler. */
+#elif defined(__hpux) || defined(__hpua)
+#define COMPILER_ID "HP"
+
+#else /* unknown compiler */
+#define COMPILER_ID ""
+#endif
+
+/* Construct the string literal in pieces to prevent the source from
+ getting matched. Store it in a pointer rather than an array
+ because some compilers will just produce instructions to fill the
+ array rather than assigning a pointer to a static array. */
+char const *info_compiler = "INFO"
+ ":"
+ "compiler[" COMPILER_ID "]";
+#ifdef SIMULATE_ID
+char const *info_simulate = "INFO"
+ ":"
+ "simulate[" SIMULATE_ID "]";
+#endif
+
+#ifdef __QNXNTO__
+char const *qnxnto = "INFO"
+ ":"
+ "qnxnto[]";
+#endif
+
+#if defined(__CRAYXE) || defined(__CRAYXC)
+char const *info_cray = "INFO"
+ ":"
+ "compiler_wrapper[CrayPrgEnv]";
+#endif
+
+#define STRINGIFY_HELPER(X) #X
+#define STRINGIFY(X) STRINGIFY_HELPER(X)
+
+/* Identify known platforms by name. */
+#if defined(__linux) || defined(__linux__) || defined(linux)
+#define PLATFORM_ID "Linux"
+
+#elif defined(__CYGWIN__)
+#define PLATFORM_ID "Cygwin"
+
+#elif defined(__MINGW32__)
+#define PLATFORM_ID "MinGW"
+
+#elif defined(__APPLE__)
+#define PLATFORM_ID "Darwin"
+
+#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
+#define PLATFORM_ID "Windows"
+
+#elif defined(__FreeBSD__) || defined(__FreeBSD)
+#define PLATFORM_ID "FreeBSD"
+
+#elif defined(__NetBSD__) || defined(__NetBSD)
+#define PLATFORM_ID "NetBSD"
+
+#elif defined(__OpenBSD__) || defined(__OPENBSD)
+#define PLATFORM_ID "OpenBSD"
+
+#elif defined(__sun) || defined(sun)
+#define PLATFORM_ID "SunOS"
+
+#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__)
+#define PLATFORM_ID "AIX"
+
+#elif defined(__hpux) || defined(__hpux__)
+#define PLATFORM_ID "HP-UX"
+
+#elif defined(__HAIKU__)
+#define PLATFORM_ID "Haiku"
+
+#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS)
+#define PLATFORM_ID "BeOS"
+
+#elif defined(__QNX__) || defined(__QNXNTO__)
+#define PLATFORM_ID "QNX"
+
+#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__)
+#define PLATFORM_ID "Tru64"
+
+#elif defined(__riscos) || defined(__riscos__)
+#define PLATFORM_ID "RISCos"
+
+#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__)
+#define PLATFORM_ID "SINIX"
+
+#elif defined(__UNIX_SV__)
+#define PLATFORM_ID "UNIX_SV"
+
+#elif defined(__bsdos__)
+#define PLATFORM_ID "BSDOS"
+
+#elif defined(_MPRAS) || defined(MPRAS)
+#define PLATFORM_ID "MP-RAS"
+
+#elif defined(__osf) || defined(__osf__)
+#define PLATFORM_ID "OSF1"
+
+#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv)
+#define PLATFORM_ID "SCO_SV"
+
+#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX)
+#define PLATFORM_ID "ULTRIX"
+
+#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX)
+#define PLATFORM_ID "Xenix"
+
+#elif defined(__WATCOMC__)
+#if defined(__LINUX__)
+#define PLATFORM_ID "Linux"
+
+#elif defined(__DOS__)
+#define PLATFORM_ID "DOS"
+
+#elif defined(__OS2__)
+#define PLATFORM_ID "OS2"
+
+#elif defined(__WINDOWS__)
+#define PLATFORM_ID "Windows3x"
+
+#else /* unknown platform */
+#define PLATFORM_ID
+#endif
+
+#elif defined(__INTEGRITY)
+#if defined(INT_178B)
+#define PLATFORM_ID "Integrity178"
+
+#else /* regular Integrity */
+#define PLATFORM_ID "Integrity"
+#endif
+
+#else /* unknown platform */
+#define PLATFORM_ID
+
+#endif
+
+/* For windows compilers MSVC and Intel we can determine
+ the architecture of the compiler being used. This is because
+ the compilers do not have flags that can change the architecture,
+ but rather depend on which compiler is being used
+*/
+#if defined(_WIN32) && defined(_MSC_VER)
+#if defined(_M_IA64)
+#define ARCHITECTURE_ID "IA64"
+
+#elif defined(_M_X64) || defined(_M_AMD64)
+#define ARCHITECTURE_ID "x64"
+
+#elif defined(_M_IX86)
+#define ARCHITECTURE_ID "X86"
+
+#elif defined(_M_ARM64)
+#define ARCHITECTURE_ID "ARM64"
+
+#elif defined(_M_ARM)
+#if _M_ARM == 4
+#define ARCHITECTURE_ID "ARMV4I"
+#elif _M_ARM == 5
+#define ARCHITECTURE_ID "ARMV5I"
+#else
+#define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM)
+#endif
+
+#elif defined(_M_MIPS)
+#define ARCHITECTURE_ID "MIPS"
+
+#elif defined(_M_SH)
+#define ARCHITECTURE_ID "SHx"
+
+#else /* unknown architecture */
+#define ARCHITECTURE_ID ""
+#endif
+
+#elif defined(__WATCOMC__)
+#if defined(_M_I86)
+#define ARCHITECTURE_ID "I86"
+
+#elif defined(_M_IX86)
+#define ARCHITECTURE_ID "X86"
+
+#else /* unknown architecture */
+#define ARCHITECTURE_ID ""
+#endif
+
+#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
+#if defined(__ICCARM__)
+#define ARCHITECTURE_ID "ARM"
+
+#elif defined(__ICCAVR__)
+#define ARCHITECTURE_ID "AVR"
+
+#else /* unknown architecture */
+#define ARCHITECTURE_ID ""
+#endif
+
+#elif defined(__ghs__)
+#if defined(__PPC64__)
+#define ARCHITECTURE_ID "PPC64"
+
+#elif defined(__ppc__)
+#define ARCHITECTURE_ID "PPC"
+
+#elif defined(__ARM__)
+#define ARCHITECTURE_ID "ARM"
+
+#elif defined(__x86_64__)
+#define ARCHITECTURE_ID "x64"
+
+#elif defined(__i386__)
+#define ARCHITECTURE_ID "X86"
+
+#else /* unknown architecture */
+#define ARCHITECTURE_ID ""
+#endif
+#else
+#define ARCHITECTURE_ID
+#endif
+
+/* Convert integer to decimal digit literals. */
+#define DEC(n) ('0' + (((n) / 10000000) % 10)), ('0' + (((n) / 1000000) % 10)), ('0' + (((n) / 100000) % 10)), ('0' + (((n) / 10000) % 10)), ('0' + (((n) / 1000) % 10)), ('0' + (((n) / 100) % 10)), ('0' + (((n) / 10) % 10)), ('0' + ((n) % 10))
+
+/* Convert integer to hex digit literals. */
+#define HEX(n) ('0' + ((n) >> 28 & 0xF)), ('0' + ((n) >> 24 & 0xF)), ('0' + ((n) >> 20 & 0xF)), ('0' + ((n) >> 16 & 0xF)), ('0' + ((n) >> 12 & 0xF)), ('0' + ((n) >> 8 & 0xF)), ('0' + ((n) >> 4 & 0xF)), ('0' + ((n)&0xF))
+
+/* Construct a string literal encoding the version number components. */
+#ifdef COMPILER_VERSION_MAJOR
+char const info_version[] = {'I',
+ 'N',
+ 'F',
+ 'O',
+ ':',
+ 'c',
+ 'o',
+ 'm',
+ 'p',
+ 'i',
+ 'l',
+ 'e',
+ 'r',
+ '_',
+ 'v',
+ 'e',
+ 'r',
+ 's',
+ 'i',
+ 'o',
+ 'n',
+ '[',
+ COMPILER_VERSION_MAJOR,
+#ifdef COMPILER_VERSION_MINOR
+ '.',
+ COMPILER_VERSION_MINOR,
+#ifdef COMPILER_VERSION_PATCH
+ '.',
+ COMPILER_VERSION_PATCH,
+#ifdef COMPILER_VERSION_TWEAK
+ '.',
+ COMPILER_VERSION_TWEAK,
+#endif
+#endif
+#endif
+ ']',
+ '\0'};
+#endif
+
+/* Construct a string literal encoding the internal version number. */
+#ifdef COMPILER_VERSION_INTERNAL
+char const info_version_internal[] = {'I', 'N', 'F', 'O', ':', 'c', 'o', 'm', 'p', 'i', 'l', 'e', 'r', '_', 'v', 'e', 'r', 's', 'i', 'o', 'n', '_', 'i', 'n', 't', 'e', 'r', 'n', 'a', 'l', '[', COMPILER_VERSION_INTERNAL, ']', '\0'};
+#endif
+
+/* Construct a string literal encoding the version number components. */
+#ifdef SIMULATE_VERSION_MAJOR
+char const info_simulate_version[] = {'I',
+ 'N',
+ 'F',
+ 'O',
+ ':',
+ 's',
+ 'i',
+ 'm',
+ 'u',
+ 'l',
+ 'a',
+ 't',
+ 'e',
+ '_',
+ 'v',
+ 'e',
+ 'r',
+ 's',
+ 'i',
+ 'o',
+ 'n',
+ '[',
+ SIMULATE_VERSION_MAJOR,
+#ifdef SIMULATE_VERSION_MINOR
+ '.',
+ SIMULATE_VERSION_MINOR,
+#ifdef SIMULATE_VERSION_PATCH
+ '.',
+ SIMULATE_VERSION_PATCH,
+#ifdef SIMULATE_VERSION_TWEAK
+ '.',
+ SIMULATE_VERSION_TWEAK,
+#endif
+#endif
+#endif
+ ']',
+ '\0'};
+#endif
+
+/* Construct the string literal in pieces to prevent the source from
+ getting matched. Store it in a pointer rather than an array
+ because some compilers will just produce instructions to fill the
+ array rather than assigning a pointer to a static array. */
+char const *info_platform = "INFO"
+ ":"
+ "platform[" PLATFORM_ID "]";
+char const *info_arch = "INFO"
+ ":"
+ "arch[" ARCHITECTURE_ID "]";
+
+
+#if !defined(__STDC__)
+#if (defined(_MSC_VER) && !defined(__clang__)) || (defined(__ibmxl__) || defined(__IBMC__))
+#define C_DIALECT "90"
+#else
+#define C_DIALECT
+#endif
+#elif __STDC_VERSION__ >= 201000L
+#define C_DIALECT "11"
+#elif __STDC_VERSION__ >= 199901L
+#define C_DIALECT "99"
+#else
+#define C_DIALECT "90"
+#endif
+const char *info_language_dialect_default = "INFO"
+ ":"
+ "dialect_default[" C_DIALECT "]";
+
+/*--------------------------------------------------------------------------*/
+
+#ifdef ID_VOID_MAIN
+void
+main() {}
+#else
+#if defined(__CLASSIC_C__)
+int main(argc, argv) int argc;
+char *argv[];
+#else
+int
+main(int argc, char *argv[])
+#endif
+{
+ int require = 0;
+ require += info_compiler[argc];
+ require += info_platform[argc];
+ require += info_arch[argc];
+#ifdef COMPILER_VERSION_MAJOR
+ require += info_version[argc];
+#endif
+#ifdef COMPILER_VERSION_INTERNAL
+ require += info_version_internal[argc];
+#endif
+#ifdef SIMULATE_ID
+ require += info_simulate[argc];
+#endif
+#ifdef SIMULATE_VERSION_MAJOR
+ require += info_simulate_version[argc];
+#endif
+#if defined(__CRAYXE) || defined(__CRAYXC)
+ require += info_cray[argc];
+#endif
+ require += info_language_dialect_default[argc];
+ (void)argv;
+ return require;
+}
+#endif
diff --git a/plugins/TKLiveSync/libzip_iOS/cmake-build/CMakeFiles/3.14.4/CompilerIdC/CompilerIdC b/plugins/TKLiveSync/libzip_iOS/cmake-build/CMakeFiles/3.14.4/CompilerIdC/CompilerIdC
new file mode 100755
index 000000000..b1c357816
Binary files /dev/null and b/plugins/TKLiveSync/libzip_iOS/cmake-build/CMakeFiles/3.14.4/CompilerIdC/CompilerIdC differ
diff --git a/plugins/TKLiveSync/libzip_iOS/cmake-build/CMakeFiles/3.14.4/CompilerIdC/CompilerIdC.xcodeproj/project.pbxproj b/plugins/TKLiveSync/libzip_iOS/cmake-build/CMakeFiles/3.14.4/CompilerIdC/CompilerIdC.xcodeproj/project.pbxproj
new file mode 100644
index 000000000..8dee69e18
--- /dev/null
+++ b/plugins/TKLiveSync/libzip_iOS/cmake-build/CMakeFiles/3.14.4/CompilerIdC/CompilerIdC.xcodeproj/project.pbxproj
@@ -0,0 +1,113 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 45;
+ objects = {
+
+ 2C18F0B615DC1E0300593670 = {isa = PBXBuildFile; fileRef = 2C18F0B415DC1DC700593670; };
+ 2C18F0B415DC1DC700593670 = {isa = PBXFileReference; fileEncoding = 4; explicitFileType = sourcecode.c.c; path = CMakeCCompilerId.c; sourceTree = ""; };
+ 08FB7794FE84155DC02AAC07 = {
+ isa = PBXGroup;
+ children = (
+ 2C18F0B415DC1DC700593670,
+ );
+ name = CompilerIdC;
+ sourceTree = "";
+ };
+ 8DD76FA90486AB0100D96B5E = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 1DEB928508733DD80010E9CD;
+ buildPhases = (
+ 2C18F0B515DC1DCE00593670,
+ 2C8FEB8E15DC1A1A00E56A5D,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = CompilerIdC;
+ productName = CompilerIdC;
+ productType = "com.apple.product-type.tool";
+ };
+ 08FB7793FE84155DC02AAC07 = {
+ isa = PBXProject;
+ buildConfigurationList = 1DEB928908733DD80010E9CD;
+ compatibilityVersion = "Xcode 3.1";
+ developmentRegion = English;
+ hasScannedForEncodings = 1;
+ knownRegions = (
+ en,
+ );
+ mainGroup = 08FB7794FE84155DC02AAC07;
+ projectDirPath = "";
+ projectRoot = "";
+ targets = (
+ 8DD76FA90486AB0100D96B5E,
+ );
+ };
+ 2C8FEB8E15DC1A1A00E56A5D = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputPaths = (
+ );
+ outputPaths = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "echo \"GCC_VERSION=$GCC_VERSION\" ; echo \"ARCHS=$ARCHS\"";
+ showEnvVarsInLog = 0;
+ };
+ 2C18F0B515DC1DCE00593670 = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 2C18F0B615DC1E0300593670,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ 1DEB928608733DD80010E9CD = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ CODE_SIGN_IDENTITY = "";
+ PRODUCT_NAME = CompilerIdC;
+ };
+ name = Debug;
+ };
+ 1DEB928A08733DD80010E9CD = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ONLY_ACTIVE_ARCH = YES;
+ CODE_SIGNING_REQUIRED = NO;
+ CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)";
+ SYMROOT = .;
+
+
+
+
+ SDKROOT = "/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk";
+ };
+ name = Debug;
+ };
+ 1DEB928508733DD80010E9CD = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 1DEB928608733DD80010E9CD,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Debug;
+ };
+ 1DEB928908733DD80010E9CD = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 1DEB928A08733DD80010E9CD,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Debug;
+ };
+ };
+ rootObject = 08FB7793FE84155DC02AAC07;
+}
diff --git a/plugins/TKLiveSync/libzip_iOS/cmake-build/CMakeFiles/3.14.4/CompilerIdC/XCBuildData/937ae7850bcb7cb3390deaa388b32514-desc.xcbuild b/plugins/TKLiveSync/libzip_iOS/cmake-build/CMakeFiles/3.14.4/CompilerIdC/XCBuildData/937ae7850bcb7cb3390deaa388b32514-desc.xcbuild
new file mode 100644
index 000000000..27c09e659
Binary files /dev/null and b/plugins/TKLiveSync/libzip_iOS/cmake-build/CMakeFiles/3.14.4/CompilerIdC/XCBuildData/937ae7850bcb7cb3390deaa388b32514-desc.xcbuild differ
diff --git a/plugins/TKLiveSync/libzip_iOS/cmake-build/CMakeFiles/3.14.4/CompilerIdC/XCBuildData/937ae7850bcb7cb3390deaa388b32514-manifest.xcbuild b/plugins/TKLiveSync/libzip_iOS/cmake-build/CMakeFiles/3.14.4/CompilerIdC/XCBuildData/937ae7850bcb7cb3390deaa388b32514-manifest.xcbuild
new file mode 100644
index 000000000..f792f1c11
--- /dev/null
+++ b/plugins/TKLiveSync/libzip_iOS/cmake-build/CMakeFiles/3.14.4/CompilerIdC/XCBuildData/937ae7850bcb7cb3390deaa388b32514-manifest.xcbuild
@@ -0,0 +1,57 @@
+client:
+ name: basic
+ version: 0
+ file-system: default
+
+targets:
+ "": [""]
+
+nodes:
+ "/Users/bektchiev/Downloads/libzip-1.5.2/cmake-build/CMakeFiles/3.14.4/CompilerIdC": {"is-mutated":true}
+
+commands:
+ "": {"tool":"phony","inputs":["/Users/bektchiev/Downloads/libzip-1.5.2/cmake-build/CMakeFiles/3.14.4/CompilerIdC","",""],"outputs":[""]}
+ "": {"tool":"stale-file-removal","expectedOutputs":["/Users/bektchiev/Downloads/libzip-1.5.2/cmake-build/CMakeFiles/3.14.4/CompilerIdC/CompilerIdC.build/Debug/CompilerIdC.build/Objects-normal/x86_64/CMakeCCompilerId.o","/Users/bektchiev/Downloads/libzip-1.5.2/cmake-build/CMakeFiles/3.14.4/CompilerIdC/CompilerIdC","/Users/bektchiev/Downloads/libzip-1.5.2/cmake-build/CMakeFiles/3.14.4/CompilerIdC/CompilerIdC.build/Debug/CompilerIdC.build/CompilerIdC-all-non-framework-target-headers.hmap","/Users/bektchiev/Downloads/libzip-1.5.2/cmake-build/CMakeFiles/3.14.4/CompilerIdC/CompilerIdC.build/Debug/CompilerIdC.build/CompilerIdC-all-target-headers.hmap","/Users/bektchiev/Downloads/libzip-1.5.2/cmake-build/CMakeFiles/3.14.4/CompilerIdC/CompilerIdC.build/Debug/CompilerIdC.build/CompilerIdC-generated-files.hmap","/Users/bektchiev/Downloads/libzip-1.5.2/cmake-build/CMakeFiles/3.14.4/CompilerIdC/CompilerIdC.build/Debug/CompilerIdC.build/CompilerIdC-own-target-headers.hmap","/Users/bektchiev/Downloads/libzip-1.5.2/cmake-build/CMakeFiles/3.14.4/CompilerIdC/CompilerIdC.build/Debug/CompilerIdC.build/CompilerIdC-project-headers.hmap","/Users/bektchiev/Downloads/libzip-1.5.2/cmake-build/CMakeFiles/3.14.4/CompilerIdC/CompilerIdC.build/Debug/CompilerIdC.build/CompilerIdC.hmap","/Users/bektchiev/Downloads/libzip-1.5.2/cmake-build/CMakeFiles/3.14.4/CompilerIdC/CompilerIdC.build/Debug/CompilerIdC.build/Objects-normal/x86_64/CompilerIdC.LinkFileList","/Users/bektchiev/Downloads/libzip-1.5.2/cmake-build/CMakeFiles/3.14.4/CompilerIdC/CompilerIdC.build/Debug/CompilerIdC.build/Script-2C8FEB8E15DC1A1A00E56A5D.sh","/Users/bektchiev/Downloads/libzip-1.5.2/cmake-build/CMakeFiles/3.14.4/CompilerIdC/CompilerIdC.build/Debug/CompilerIdC.build/all-product-headers.yaml"],"roots":["/tmp/CompilerIdC.dst","/Users/bektchiev/Downloads/libzip-1.5.2/cmake-build/CMakeFiles/3.14.4/CompilerIdC","/Users/bektchiev/Downloads/libzip-1.5.2/cmake-build/CMakeFiles/3.14.4/CompilerIdC"],"outputs":[""]}
+ "Gate target-CompilerIdC-d1f817bf5d8ff1f79a62c4c7f37845f53f938c03aee3f24af46a5caa592e362d--Barrier-ChangeAlternatePermissions": {"tool":"phony","inputs":["",""],"outputs":[""]}
+ "Gate target-CompilerIdC-d1f817bf5d8ff1f79a62c4c7f37845f53f938c03aee3f24af46a5caa592e362d--Barrier-ChangePermissions": {"tool":"phony","inputs":["",""],"outputs":[""]}
+ "Gate target-CompilerIdC-d1f817bf5d8ff1f79a62c4c7f37845f53f938c03aee3f24af46a5caa592e362d--Barrier-CodeSign": {"tool":"phony","inputs":["",""],"outputs":[""]}
+ "Gate target-CompilerIdC-d1f817bf5d8ff1f79a62c4c7f37845f53f938c03aee3f24af46a5caa592e362d--Barrier-CopyAside": {"tool":"phony","inputs":["",""],"outputs":[""]}
+ "Gate target-CompilerIdC-d1f817bf5d8ff1f79a62c4c7f37845f53f938c03aee3f24af46a5caa592e362d--Barrier-RegisterExecutionPolicyException": {"tool":"phony","inputs":["","",""],"outputs":[""]}
+ "Gate target-CompilerIdC-d1f817bf5d8ff1f79a62c4c7f37845f53f938c03aee3f24af46a5caa592e362d--Barrier-StripSymbols": {"tool":"phony","inputs":["",""],"outputs":[""]}
+ "Gate target-CompilerIdC-d1f817bf5d8ff1f79a62c4c7f37845f53f938c03aee3f24af46a5caa592e362d--Barrier-Validate": {"tool":"phony","inputs":["",""],"outputs":[""]}
+ "Gate target-CompilerIdC-d1f817bf5d8ff1f79a62c4c7f37845f53f938c03aee3f24af46a5caa592e362d--GeneratedFilesTaskProducer": {"tool":"phony","inputs":["",""],"outputs":[""]}
+ "Gate target-CompilerIdC-d1f817bf5d8ff1f79a62c4c7f37845f53f938c03aee3f24af46a5caa592e362d--HeadermapTaskProducer": {"tool":"phony","inputs":["","","/Users/bektchiev/Downloads/libzip-1.5.2/cmake-build/CMakeFiles/3.14.4/CompilerIdC/CompilerIdC.build/Debug/CompilerIdC.build/CompilerIdC-all-non-framework-target-headers.hmap","/Users/bektchiev/Downloads/libzip-1.5.2/cmake-build/CMakeFiles/3.14.4/CompilerIdC/CompilerIdC.build/Debug/CompilerIdC.build/CompilerIdC-all-target-headers.hmap","/Users/bektchiev/Downloads/libzip-1.5.2/cmake-build/CMakeFiles/3.14.4/CompilerIdC/CompilerIdC.build/Debug/CompilerIdC.build/CompilerIdC-generated-files.hmap","/Users/bektchiev/Downloads/libzip-1.5.2/cmake-build/CMakeFiles/3.14.4/CompilerIdC/CompilerIdC.build/Debug/CompilerIdC.build/CompilerIdC-own-target-headers.hmap","/Users/bektchiev/Downloads/libzip-1.5.2/cmake-build/CMakeFiles/3.14.4/CompilerIdC/CompilerIdC.build/Debug/CompilerIdC.build/CompilerIdC-project-headers.hmap","/Users/bektchiev/Downloads/libzip-1.5.2/cmake-build/CMakeFiles/3.14.4/CompilerIdC/CompilerIdC.build/Debug/CompilerIdC.build/CompilerIdC.hmap","/Users/bektchiev/Downloads/libzip-1.5.2/cmake-build/CMakeFiles/3.14.4/CompilerIdC/CompilerIdC.build/Debug/CompilerIdC.build/all-product-headers.yaml"],"outputs":[""]}
+ "Gate target-CompilerIdC-d1f817bf5d8ff1f79a62c4c7f37845f53f938c03aee3f24af46a5caa592e362d--InfoPlistTaskProducer": {"tool":"phony","inputs":["",""],"outputs":[""]}
+ "Gate target-CompilerIdC-d1f817bf5d8ff1f79a62c4c7f37845f53f938c03aee3f24af46a5caa592e362d--ModuleMapTaskProducer": {"tool":"phony","inputs":["",""],"outputs":[""]}
+ "Gate target-CompilerIdC-d1f817bf5d8ff1f79a62c4c7f37845f53f938c03aee3f24af46a5caa592e362d--ProductPostprocessingTaskProducer": {"tool":"phony","inputs":["","","","","","","","","",""],"outputs":[""]}
+ "Gate target-CompilerIdC-d1f817bf5d8ff1f79a62c4c7f37845f53f938c03aee3f24af46a5caa592e362d--ProductStructureTaskProducer": {"tool":"phony","inputs":["",""],"outputs":[""]}
+ "Gate target-CompilerIdC-d1f817bf5d8ff1f79a62c4c7f37845f53f938c03aee3f24af46a5caa592e362d--SanitizerTaskProducer": {"tool":"phony","inputs":["",""],"outputs":["