diff --git a/apps/toolbox/src/main-page.xml b/apps/toolbox/src/main-page.xml
index 0588cfa03a..cb6e0dcc90 100644
--- a/apps/toolbox/src/main-page.xml
+++ b/apps/toolbox/src/main-page.xml
@@ -25,6 +25,7 @@
+
diff --git a/apps/toolbox/src/pages/winter-cg.ts b/apps/toolbox/src/pages/winter-cg.ts
new file mode 100644
index 0000000000..bd1062453c
--- /dev/null
+++ b/apps/toolbox/src/pages/winter-cg.ts
@@ -0,0 +1,109 @@
+import { Page, EventData, Application, File, Folder, knownFolders, path, getFileAccess, Utils, Screen, Http, AndroidDirectory, ImageSource, alert } from '@nativescript/core';
+
+let page: Page;
+
+export function navigatingTo(args: EventData) {
+ page = args.object;
+ run();
+}
+
+function run() {
+ console.log(crypto.randomUUID());
+
+ const buf = new BigUint64Array(3);
+
+ crypto.getRandomValues(buf);
+
+ console.log(buf);
+
+ const text = 'An obscure body in the S-K System, your majesty. The inhabitants refer to it as the planet Earth.';
+
+ async function digestMessage(message) {
+ const encoder = new TextEncoder();
+ const data = encoder.encode(message);
+ console.time('digestMessage');
+ const hash = await crypto.subtle.digest('SHA-256', data);
+ console.timeEnd('digestMessage');
+ return hash;
+ }
+
+ digestMessage(text).then((digestBuffer) => {
+ console.log(digestBuffer.byteLength);
+ console.log(new Uint8Array(digestBuffer));
+ });
+
+ gen_hmac();
+
+ gen_rsa_oaep();
+}
+
+export function encodeDecode() {
+ const encoded = btoa('Osei');
+
+ console.log(encoded);
+
+ console.log(atob(encoded) === 'Osei');
+}
+
+async function gen_hmac() {
+ let message = 'Hello World';
+ let enc = new TextEncoder();
+ const encoded = enc.encode(message);
+
+ const key = await crypto.subtle.generateKey(
+ {
+ name: 'HMAC',
+ hash: { name: 'SHA-512' },
+ },
+ true,
+ ['sign', 'verify'],
+ );
+
+ const signature = await crypto.subtle.sign('HMAC', key, encoded);
+
+ let result = await crypto.subtle.verify('HMAC', key, signature, encoded);
+
+ console.log('gen_hmac is valid? ', result);
+}
+
+async function gen_rsa_oaep() {
+ let message = 'Hello World';
+ let enc = new TextEncoder();
+ const encoded = enc.encode(message);
+
+ const kp = await crypto.subtle.generateKey(
+ {
+ name: 'RSA-OAEP',
+ modulusLength: 4096,
+ publicExponent: new Uint8Array([1, 0, 1]),
+ hash: 'SHA-256',
+ },
+ true,
+ ['encrypt', 'decrypt'],
+ );
+
+ try {
+ const ciphertext = await crypto.subtle.encrypt(
+ {
+ name: 'RSA-OAEP',
+ },
+ kp.publicKey,
+ encoded,
+ );
+
+ let decrypted = await crypto.subtle.decrypt(
+ {
+ name: 'RSA-OAEP',
+ },
+ kp.privateKey,
+ ciphertext,
+ );
+
+ let dec = new TextDecoder();
+ const decryptedValue = dec.decode(decrypted);
+
+ console.log('decryptedValue', decryptedValue, decryptedValue === message);
+ } catch (error) {
+ console.log('gen: error', error);
+ }
+}
diff --git a/apps/toolbox/src/pages/winter-cg.xml b/apps/toolbox/src/pages/winter-cg.xml
new file mode 100644
index 0000000000..81d02078f7
--- /dev/null
+++ b/apps/toolbox/src/pages/winter-cg.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/package-lock.json b/package-lock.json
index 747b6b1223..cbefcedd23 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -34,6 +34,7 @@
"copyfiles": "^2.4.0",
"css": "^3.0.0",
"css-tree": "^1.1.2",
+ "css-what": "^6.1.0",
"dotenv": "~16.4.0",
"emoji-regex": "^10.3.0",
"eslint": "~8.57.0",
@@ -9349,6 +9350,18 @@
"integrity": "sha512-IiJwMC8rdZE0+xiEZHeru6YoONC4rfPMqGm2W85jMIbkFvv5nFTwJVFHam2eFrN6txmoUYFAFXiv8ICVeTO0MA==",
"dev": true
},
+ "node_modules/css-what": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz",
+ "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==",
+ "dev": true,
+ "engines": {
+ "node": ">= 6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/fb55"
+ }
+ },
"node_modules/css/node_modules/source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
diff --git a/packages/core/globals/index.ts b/packages/core/globals/index.ts
index b75d524bcb..a2fc3cad69 100644
--- a/packages/core/globals/index.ts
+++ b/packages/core/globals/index.ts
@@ -322,6 +322,17 @@ export function initGlobal() {
global.registerModule('fetch', () => require('../fetch'));
installPolyfills('fetch', ['fetch', 'Headers', 'Request', 'Response']);
+ global.registerModule('wgc', () => require('../wgc'));
+ installPolyfills('wgc', ['atob', 'btoa']);
+
+ global.registerModule('crypto', () => require('../wgc/crypto'));
+ installPolyfills('crypto', ['Crypto']);
+
+ global.registerModule('subtle', () => require('../wgc/crypto/SubtleCrypto'));
+ installPolyfills('subtle-crypto', ['Subtle']);
+
+ global.crypto = new global.Crypto();
+
// global.registerModule('abortcontroller', () => require('../abortcontroller'));
// installPolyfills('abortcontroller', ['AbortController', 'AbortSignal']);
diff --git a/packages/core/platforms/android/widgets-release.aar b/packages/core/platforms/android/widgets-release.aar
index c9f813d5ed..1155ef3f9b 100644
Binary files a/packages/core/platforms/android/widgets-release.aar and b/packages/core/platforms/android/widgets-release.aar differ
diff --git a/packages/core/platforms/android/winter_cg-release.aar b/packages/core/platforms/android/winter_cg-release.aar
new file mode 100644
index 0000000000..78d3521e39
Binary files /dev/null and b/packages/core/platforms/android/winter_cg-release.aar differ
diff --git a/packages/core/platforms/ios/NSCWinterCG.xcframework/Info.plist b/packages/core/platforms/ios/NSCWinterCG.xcframework/Info.plist
new file mode 100644
index 0000000000..23a017e8a0
--- /dev/null
+++ b/packages/core/platforms/ios/NSCWinterCG.xcframework/Info.plist
@@ -0,0 +1,102 @@
+
+
+
+
+ AvailableLibraries
+
+
+ BinaryPath
+ NSCWinterCG.framework/NSCWinterCG
+ DebugSymbolsPath
+ dSYMs
+ LibraryIdentifier
+ ios-arm64
+ LibraryPath
+ NSCWinterCG.framework
+ SupportedArchitectures
+
+ arm64
+
+ SupportedPlatform
+ ios
+
+
+ BinaryPath
+ NSCWinterCG.framework/NSCWinterCG
+ DebugSymbolsPath
+ dSYMs
+ LibraryIdentifier
+ xros-arm64_x86_64-simulator
+ LibraryPath
+ NSCWinterCG.framework
+ SupportedArchitectures
+
+ arm64
+ x86_64
+
+ SupportedPlatform
+ xros
+ SupportedPlatformVariant
+ simulator
+
+
+ BinaryPath
+ NSCWinterCG.framework/NSCWinterCG
+ DebugSymbolsPath
+ dSYMs
+ LibraryIdentifier
+ ios-arm64_x86_64-simulator
+ LibraryPath
+ NSCWinterCG.framework
+ SupportedArchitectures
+
+ arm64
+ x86_64
+
+ SupportedPlatform
+ ios
+ SupportedPlatformVariant
+ simulator
+
+
+ BinaryPath
+ NSCWinterCG.framework/Versions/A/NSCWinterCG
+ DebugSymbolsPath
+ dSYMs
+ LibraryIdentifier
+ ios-arm64_x86_64-maccatalyst
+ LibraryPath
+ NSCWinterCG.framework
+ SupportedArchitectures
+
+ arm64
+ x86_64
+
+ SupportedPlatform
+ ios
+ SupportedPlatformVariant
+ maccatalyst
+
+
+ BinaryPath
+ NSCWinterCG.framework/NSCWinterCG
+ DebugSymbolsPath
+ dSYMs
+ LibraryIdentifier
+ xros-arm64
+ LibraryPath
+ NSCWinterCG.framework
+ SupportedArchitectures
+
+ arm64
+
+ SupportedPlatform
+ xros
+
+
+ CFBundlePackageType
+ XFWK
+ XCFrameworkFormatVersion
+ 1.0
+
+
diff --git a/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64/NSCWinterCG.framework/Headers/NSCCrypto.h b/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64/NSCWinterCG.framework/Headers/NSCCrypto.h
new file mode 100644
index 0000000000..7ffac80099
--- /dev/null
+++ b/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64/NSCWinterCG.framework/Headers/NSCCrypto.h
@@ -0,0 +1,63 @@
+//
+// NSCCrypto.h
+// NSCWinterCG
+//
+// Created by Osei Fortune on 03/07/2024.
+// Copyright © 2024 NativeScript. All rights reserved.
+//
+
+#import
+#import
+#import
+#import
+#ifndef NSCCrypto_h
+#define NSCCrypto_h
+
+typedef enum : NSUInteger {
+ kNSCCryptoRSASSA_PKCS1_v1_5,
+ kNSCCryptoRSA_PSS,
+ kNSCCryptoRSA_OAEP,
+} NSCCryptoRsaHashedKeyGenParamsName;
+
+
+typedef enum : NSUInteger {
+ kNSCCryptoHashSHA1,
+ kNSCCryptoHashSHA256,
+ kNSCCryptoHashSHA384,
+ kNSCCryptoHashSHA512
+} NSCCryptoHash;
+
+
+typedef enum : NSUInteger {
+ kNSCCryptoDecrypt,
+ kNSCCryptoEncrypt,
+ kNSCCryptoSign,
+ kNSCCryptoVerify,
+ kNSCCryptoDeriveKey,
+ kNSCCryptoDeriveBits,
+ kNSCCryptoWrapKey,
+ kNSCCryptoUnwrapKey,
+} NSCCryptoKeyUsages;
+
+
+
+@interface NSCCryptoKeyPair : NSObject
+@property (nonatomic, nonnull) SecKeyRef privateKey;
+@property (nonatomic, nonnull) SecKeyRef publicKey;
+-(nonnull id)initWithPrivateKey:(nonnull SecKeyRef)privKey andPublicKey:(nonnull SecKeyRef)pubKey;
+@end
+
+@interface NSCCrypto:NSObject
++ (nonnull NSString*)randomUUID;
++ (nullable NSString*)getRandomValues:(nonnull void*)buffer length:(unsigned int)length;
++ (nullable NSData*)digest:(nonnull void*)data length:(unsigned int)length mode:(int)mode;
++ (nullable NSData *)generateKeyHmac:(int)hash length:(int)length;
++ (nullable NSData *)signHmac:(nonnull NSData*)key hash:(NSCCryptoHash)hash data:(nonnull NSData*)data;
++ (BOOL)verifyHmac:(nonnull NSData*)key hash:(NSCCryptoHash)hash signature:(nonnull NSData*)signature data:(nonnull NSData*)data;
+
++ (nullable NSCCryptoKeyPair*)generateKeyRsa:(NSCCryptoRsaHashedKeyGenParamsName)name modulusLength:(unsigned int)modulusLength publicExponent:(nullable void*)exponent size:(unsigned int)size hash:(NSCCryptoHash)hash extractable:(BOOL)extractable keyUsages:(nonnull NSArray*) usages;
++ (nullable NSData *)encryptRsa:(BOOL)isPrivate key:(nonnull NSCCryptoKeyPair *)key hash:(NSCCryptoHash)hash data:(nonnull void*)data size:(unsigned int) size;
+
++ (nullable NSData *)decryptRsa:(BOOL)isPrivate key:(nonnull NSCCryptoKeyPair *)key hash:(NSCCryptoHash)hash data:(nonnull void*)data size:(unsigned int) size;
+@end
+#endif /* NSCCrypto_h */
diff --git a/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64/NSCWinterCG.framework/Headers/NSCWinterCG.h b/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64/NSCWinterCG.framework/Headers/NSCWinterCG.h
new file mode 100644
index 0000000000..b32d42c7f8
--- /dev/null
+++ b/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64/NSCWinterCG.framework/Headers/NSCWinterCG.h
@@ -0,0 +1,20 @@
+//
+// NSCWinterCG.h
+// NSCWinterCG
+//
+// Created by Osei Fortune and Nathan Walker on 07/09/2024.
+// Copyright © 2024 NativeScript. All rights reserved.
+//
+
+#import
+
+//! Project version number for NSCWinterCG.
+FOUNDATION_EXPORT double NSCWinterCGVersionNumber;
+
+//! Project version string for NSCWinterCG.
+FOUNDATION_EXPORT const unsigned char NSCWinterCGVersionString[];
+
+// In this header, you should import all the public headers of your framework using statements like #import
+
+#import "NSCCrypto.h"
+#import "NSString+WinterCG.h"
diff --git a/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64/NSCWinterCG.framework/Headers/NSString+WinterCG.h b/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64/NSCWinterCG.framework/Headers/NSString+WinterCG.h
new file mode 100644
index 0000000000..6bafc8e80f
--- /dev/null
+++ b/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64/NSCWinterCG.framework/Headers/NSString+WinterCG.h
@@ -0,0 +1,21 @@
+//
+// NSString+WinterCG.h
+// NSCWinterCG
+//
+// Created by Osei Fortune and Nathan Walker on 07/09/2024.
+// Copyright © 2024 NativeScript. All rights reserved.
+//
+
+#import
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface NSString (WinterCG)
+
++ (NSString*)atob:(nonnull NSString*)data;
+
++ (NSString*)btoa:(nonnull NSString*)stringToEncode;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64/NSCWinterCG.framework/Info.plist b/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64/NSCWinterCG.framework/Info.plist
new file mode 100644
index 0000000000..745cb35cea
Binary files /dev/null and b/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64/NSCWinterCG.framework/Info.plist differ
diff --git a/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64/NSCWinterCG.framework/Modules/module.modulemap b/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64/NSCWinterCG.framework/Modules/module.modulemap
new file mode 100644
index 0000000000..6be1f25ee5
--- /dev/null
+++ b/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64/NSCWinterCG.framework/Modules/module.modulemap
@@ -0,0 +1,6 @@
+framework module NSCWinterCG {
+ umbrella header "NSCWinterCG.h"
+ export *
+
+ module * { export * }
+}
diff --git a/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64/NSCWinterCG.framework/NSCWinterCG b/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64/NSCWinterCG.framework/NSCWinterCG
new file mode 100755
index 0000000000..b7b69e1d9a
Binary files /dev/null and b/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64/NSCWinterCG.framework/NSCWinterCG differ
diff --git a/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64/dSYMs/NSCWinterCG.framework.dSYM/Contents/Info.plist b/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64/dSYMs/NSCWinterCG.framework.dSYM/Contents/Info.plist
new file mode 100644
index 0000000000..bc8f78bcc0
--- /dev/null
+++ b/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64/dSYMs/NSCWinterCG.framework.dSYM/Contents/Info.plist
@@ -0,0 +1,20 @@
+
+
+
+
+ CFBundleDevelopmentRegion
+ English
+ CFBundleIdentifier
+ com.apple.xcode.dsym.org.nativescript.NSCWinterCG
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundlePackageType
+ dSYM
+ CFBundleSignature
+ ????
+ CFBundleShortVersionString
+ 1.0
+ CFBundleVersion
+ 1
+
+
diff --git a/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64/dSYMs/NSCWinterCG.framework.dSYM/Contents/Resources/DWARF/NSCWinterCG b/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64/dSYMs/NSCWinterCG.framework.dSYM/Contents/Resources/DWARF/NSCWinterCG
new file mode 100644
index 0000000000..2473de8c15
Binary files /dev/null and b/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64/dSYMs/NSCWinterCG.framework.dSYM/Contents/Resources/DWARF/NSCWinterCG differ
diff --git a/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64/dSYMs/NSCWinterCG.framework.dSYM/Contents/Resources/Relocations/aarch64/NSCWinterCG.yml b/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64/dSYMs/NSCWinterCG.framework.dSYM/Contents/Resources/Relocations/aarch64/NSCWinterCG.yml
new file mode 100644
index 0000000000..dcb5f2b1a0
--- /dev/null
+++ b/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64/dSYMs/NSCWinterCG.framework.dSYM/Contents/Resources/Relocations/aarch64/NSCWinterCG.yml
@@ -0,0 +1,26 @@
+---
+triple: 'arm64-apple-darwin'
+binary-path: '/Users/triniwiz/Documents/GitHub/NativeScript/packages/winter-cg/ios/NSCWinterCG/build/Release-iphoneos/NSCWinterCG.framework/NSCWinterCG'
+relocations:
+ - { offsetInCU: 0x34, offset: 0x2E9F5, size: 0x8, addend: 0x0, symName: _NSCWinterCGVersionString, symObjAddr: 0x0, symBinAddr: 0x5220, symSize: 0x0 }
+ - { offsetInCU: 0x69, offset: 0x2EA2A, size: 0x8, addend: 0x0, symName: _NSCWinterCGVersionNumber, symObjAddr: 0x30, symBinAddr: 0x5250, symSize: 0x0 }
+ - { offsetInCU: 0x27, offset: 0x2EA67, size: 0x8, addend: 0x0, symName: '+[NSString(WinterCG) atob:]', symObjAddr: 0x0, symBinAddr: 0x4000, symSize: 0x74 }
+ - { offsetInCU: 0x3C, offset: 0x2EA7C, size: 0x8, addend: 0x0, symName: '+[NSString(WinterCG) atob:]', symObjAddr: 0x0, symBinAddr: 0x4000, symSize: 0x74 }
+ - { offsetInCU: 0x8F, offset: 0x2EACF, size: 0x8, addend: 0x0, symName: '+[NSString(WinterCG) btoa:]', symObjAddr: 0x74, symBinAddr: 0x4074, symSize: 0x50 }
+ - { offsetInCU: 0x27, offset: 0x2EB7E, size: 0x8, addend: 0x0, symName: '-[NSCCryptoKeyPair dealloc]', symObjAddr: 0x0, symBinAddr: 0x40C4, symSize: 0x6C }
+ - { offsetInCU: 0x157, offset: 0x2ECAE, size: 0x8, addend: 0x0, symName: '-[NSCCryptoKeyPair dealloc]', symObjAddr: 0x0, symBinAddr: 0x40C4, symSize: 0x6C }
+ - { offsetInCU: 0x1BB, offset: 0x2ED12, size: 0x8, addend: 0x0, symName: '-[NSCCryptoKeyPair initWithPrivateKey:andPublicKey:]', symObjAddr: 0x6C, symBinAddr: 0x4130, symSize: 0x70 }
+ - { offsetInCU: 0x212, offset: 0x2ED69, size: 0x8, addend: 0x0, symName: '-[NSCCryptoKeyPair privateKey]', symObjAddr: 0xDC, symBinAddr: 0x41A0, symSize: 0x8 }
+ - { offsetInCU: 0x249, offset: 0x2EDA0, size: 0x8, addend: 0x0, symName: '-[NSCCryptoKeyPair setPrivateKey:]', symObjAddr: 0xE4, symBinAddr: 0x41A8, symSize: 0x8 }
+ - { offsetInCU: 0x286, offset: 0x2EDDD, size: 0x8, addend: 0x0, symName: '-[NSCCryptoKeyPair publicKey]', symObjAddr: 0xEC, symBinAddr: 0x41B0, symSize: 0x8 }
+ - { offsetInCU: 0x2BD, offset: 0x2EE14, size: 0x8, addend: 0x0, symName: '-[NSCCryptoKeyPair setPublicKey:]', symObjAddr: 0xF4, symBinAddr: 0x41B8, symSize: 0x8 }
+ - { offsetInCU: 0x2FA, offset: 0x2EE51, size: 0x8, addend: 0x0, symName: '+[NSCCrypto randomUUID]', symObjAddr: 0xFC, symBinAddr: 0x41C0, symSize: 0x6C }
+ - { offsetInCU: 0x32D, offset: 0x2EE84, size: 0x8, addend: 0x0, symName: '+[NSCCrypto getRandomValues:length:]', symObjAddr: 0x168, symBinAddr: 0x422C, symSize: 0x44 }
+ - { offsetInCU: 0x3D0, offset: 0x2EF27, size: 0x8, addend: 0x0, symName: '+[NSCCrypto digest:length:mode:]', symObjAddr: 0x1AC, symBinAddr: 0x4270, symSize: 0x134 }
+ - { offsetInCU: 0x59A, offset: 0x2F0F1, size: 0x8, addend: 0x0, symName: '+[NSCCrypto generateKeyHmac:length:]', symObjAddr: 0x2E0, symBinAddr: 0x43A4, symSize: 0x230 }
+ - { offsetInCU: 0x73D, offset: 0x2F294, size: 0x8, addend: 0x0, symName: '+[NSCCrypto verifyHmac:hash:signature:data:]', symObjAddr: 0x510, symBinAddr: 0x45D4, symSize: 0xBC }
+ - { offsetInCU: 0x7B0, offset: 0x2F307, size: 0x8, addend: 0x0, symName: '+[NSCCrypto signHmac:hash:data:]', symObjAddr: 0x5CC, symBinAddr: 0x4690, symSize: 0x110 }
+ - { offsetInCU: 0x87C, offset: 0x2F3D3, size: 0x8, addend: 0x0, symName: '+[NSCCrypto generateKeyRsa:modulusLength:publicExponent:size:hash:extractable:keyUsages:]', symObjAddr: 0x6DC, symBinAddr: 0x47A0, symSize: 0x2D8 }
+ - { offsetInCU: 0xBDB, offset: 0x2F732, size: 0x8, addend: 0x0, symName: '+[NSCCrypto encryptRsa:key:hash:data:size:]', symObjAddr: 0x9B4, symBinAddr: 0x4A78, symSize: 0x178 }
+ - { offsetInCU: 0xDD0, offset: 0x2F927, size: 0x8, addend: 0x0, symName: '+[NSCCrypto decryptRsa:key:hash:data:size:]', symObjAddr: 0xB2C, symBinAddr: 0x4BF0, symSize: 0x178 }
+...
diff --git a/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64_x86_64-maccatalyst/NSCWinterCG.framework/Headers b/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64_x86_64-maccatalyst/NSCWinterCG.framework/Headers
new file mode 120000
index 0000000000..a177d2a6b9
--- /dev/null
+++ b/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64_x86_64-maccatalyst/NSCWinterCG.framework/Headers
@@ -0,0 +1 @@
+Versions/Current/Headers
\ No newline at end of file
diff --git a/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64_x86_64-maccatalyst/NSCWinterCG.framework/Modules b/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64_x86_64-maccatalyst/NSCWinterCG.framework/Modules
new file mode 120000
index 0000000000..5736f3186e
--- /dev/null
+++ b/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64_x86_64-maccatalyst/NSCWinterCG.framework/Modules
@@ -0,0 +1 @@
+Versions/Current/Modules
\ No newline at end of file
diff --git a/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64_x86_64-maccatalyst/NSCWinterCG.framework/NSCWinterCG b/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64_x86_64-maccatalyst/NSCWinterCG.framework/NSCWinterCG
new file mode 120000
index 0000000000..12dbf95512
--- /dev/null
+++ b/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64_x86_64-maccatalyst/NSCWinterCG.framework/NSCWinterCG
@@ -0,0 +1 @@
+Versions/Current/NSCWinterCG
\ No newline at end of file
diff --git a/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64_x86_64-maccatalyst/NSCWinterCG.framework/Resources b/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64_x86_64-maccatalyst/NSCWinterCG.framework/Resources
new file mode 120000
index 0000000000..953ee36f3b
--- /dev/null
+++ b/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64_x86_64-maccatalyst/NSCWinterCG.framework/Resources
@@ -0,0 +1 @@
+Versions/Current/Resources
\ No newline at end of file
diff --git a/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64_x86_64-maccatalyst/NSCWinterCG.framework/Versions/A/Headers/NSCCrypto.h b/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64_x86_64-maccatalyst/NSCWinterCG.framework/Versions/A/Headers/NSCCrypto.h
new file mode 100644
index 0000000000..7ffac80099
--- /dev/null
+++ b/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64_x86_64-maccatalyst/NSCWinterCG.framework/Versions/A/Headers/NSCCrypto.h
@@ -0,0 +1,63 @@
+//
+// NSCCrypto.h
+// NSCWinterCG
+//
+// Created by Osei Fortune on 03/07/2024.
+// Copyright © 2024 NativeScript. All rights reserved.
+//
+
+#import
+#import
+#import
+#import
+#ifndef NSCCrypto_h
+#define NSCCrypto_h
+
+typedef enum : NSUInteger {
+ kNSCCryptoRSASSA_PKCS1_v1_5,
+ kNSCCryptoRSA_PSS,
+ kNSCCryptoRSA_OAEP,
+} NSCCryptoRsaHashedKeyGenParamsName;
+
+
+typedef enum : NSUInteger {
+ kNSCCryptoHashSHA1,
+ kNSCCryptoHashSHA256,
+ kNSCCryptoHashSHA384,
+ kNSCCryptoHashSHA512
+} NSCCryptoHash;
+
+
+typedef enum : NSUInteger {
+ kNSCCryptoDecrypt,
+ kNSCCryptoEncrypt,
+ kNSCCryptoSign,
+ kNSCCryptoVerify,
+ kNSCCryptoDeriveKey,
+ kNSCCryptoDeriveBits,
+ kNSCCryptoWrapKey,
+ kNSCCryptoUnwrapKey,
+} NSCCryptoKeyUsages;
+
+
+
+@interface NSCCryptoKeyPair : NSObject
+@property (nonatomic, nonnull) SecKeyRef privateKey;
+@property (nonatomic, nonnull) SecKeyRef publicKey;
+-(nonnull id)initWithPrivateKey:(nonnull SecKeyRef)privKey andPublicKey:(nonnull SecKeyRef)pubKey;
+@end
+
+@interface NSCCrypto:NSObject
++ (nonnull NSString*)randomUUID;
++ (nullable NSString*)getRandomValues:(nonnull void*)buffer length:(unsigned int)length;
++ (nullable NSData*)digest:(nonnull void*)data length:(unsigned int)length mode:(int)mode;
++ (nullable NSData *)generateKeyHmac:(int)hash length:(int)length;
++ (nullable NSData *)signHmac:(nonnull NSData*)key hash:(NSCCryptoHash)hash data:(nonnull NSData*)data;
++ (BOOL)verifyHmac:(nonnull NSData*)key hash:(NSCCryptoHash)hash signature:(nonnull NSData*)signature data:(nonnull NSData*)data;
+
++ (nullable NSCCryptoKeyPair*)generateKeyRsa:(NSCCryptoRsaHashedKeyGenParamsName)name modulusLength:(unsigned int)modulusLength publicExponent:(nullable void*)exponent size:(unsigned int)size hash:(NSCCryptoHash)hash extractable:(BOOL)extractable keyUsages:(nonnull NSArray*) usages;
++ (nullable NSData *)encryptRsa:(BOOL)isPrivate key:(nonnull NSCCryptoKeyPair *)key hash:(NSCCryptoHash)hash data:(nonnull void*)data size:(unsigned int) size;
+
++ (nullable NSData *)decryptRsa:(BOOL)isPrivate key:(nonnull NSCCryptoKeyPair *)key hash:(NSCCryptoHash)hash data:(nonnull void*)data size:(unsigned int) size;
+@end
+#endif /* NSCCrypto_h */
diff --git a/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64_x86_64-maccatalyst/NSCWinterCG.framework/Versions/A/Headers/NSCWinterCG.h b/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64_x86_64-maccatalyst/NSCWinterCG.framework/Versions/A/Headers/NSCWinterCG.h
new file mode 100644
index 0000000000..b32d42c7f8
--- /dev/null
+++ b/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64_x86_64-maccatalyst/NSCWinterCG.framework/Versions/A/Headers/NSCWinterCG.h
@@ -0,0 +1,20 @@
+//
+// NSCWinterCG.h
+// NSCWinterCG
+//
+// Created by Osei Fortune and Nathan Walker on 07/09/2024.
+// Copyright © 2024 NativeScript. All rights reserved.
+//
+
+#import
+
+//! Project version number for NSCWinterCG.
+FOUNDATION_EXPORT double NSCWinterCGVersionNumber;
+
+//! Project version string for NSCWinterCG.
+FOUNDATION_EXPORT const unsigned char NSCWinterCGVersionString[];
+
+// In this header, you should import all the public headers of your framework using statements like #import
+
+#import "NSCCrypto.h"
+#import "NSString+WinterCG.h"
diff --git a/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64_x86_64-maccatalyst/NSCWinterCG.framework/Versions/A/Headers/NSString+WinterCG.h b/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64_x86_64-maccatalyst/NSCWinterCG.framework/Versions/A/Headers/NSString+WinterCG.h
new file mode 100644
index 0000000000..6bafc8e80f
--- /dev/null
+++ b/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64_x86_64-maccatalyst/NSCWinterCG.framework/Versions/A/Headers/NSString+WinterCG.h
@@ -0,0 +1,21 @@
+//
+// NSString+WinterCG.h
+// NSCWinterCG
+//
+// Created by Osei Fortune and Nathan Walker on 07/09/2024.
+// Copyright © 2024 NativeScript. All rights reserved.
+//
+
+#import
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface NSString (WinterCG)
+
++ (NSString*)atob:(nonnull NSString*)data;
+
++ (NSString*)btoa:(nonnull NSString*)stringToEncode;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64_x86_64-maccatalyst/NSCWinterCG.framework/Versions/A/Modules/module.modulemap b/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64_x86_64-maccatalyst/NSCWinterCG.framework/Versions/A/Modules/module.modulemap
new file mode 100644
index 0000000000..6be1f25ee5
--- /dev/null
+++ b/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64_x86_64-maccatalyst/NSCWinterCG.framework/Versions/A/Modules/module.modulemap
@@ -0,0 +1,6 @@
+framework module NSCWinterCG {
+ umbrella header "NSCWinterCG.h"
+ export *
+
+ module * { export * }
+}
diff --git a/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64_x86_64-maccatalyst/NSCWinterCG.framework/Versions/A/NSCWinterCG b/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64_x86_64-maccatalyst/NSCWinterCG.framework/Versions/A/NSCWinterCG
new file mode 100755
index 0000000000..d7a7b57c75
Binary files /dev/null and b/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64_x86_64-maccatalyst/NSCWinterCG.framework/Versions/A/NSCWinterCG differ
diff --git a/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64_x86_64-maccatalyst/NSCWinterCG.framework/Versions/A/Resources/Info.plist b/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64_x86_64-maccatalyst/NSCWinterCG.framework/Versions/A/Resources/Info.plist
new file mode 100644
index 0000000000..9a059c6a02
--- /dev/null
+++ b/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64_x86_64-maccatalyst/NSCWinterCG.framework/Versions/A/Resources/Info.plist
@@ -0,0 +1,52 @@
+
+
+
+
+ BuildMachineOSBuild
+ 23F79
+ CFBundleDevelopmentRegion
+ en
+ CFBundleExecutable
+ NSCWinterCG
+ CFBundleIdentifier
+ org.nativescript.NSCWinterCG
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ NSCWinterCG
+ CFBundlePackageType
+ FMWK
+ CFBundleShortVersionString
+ 1.0
+ CFBundleSignature
+ ????
+ CFBundleSupportedPlatforms
+
+ MacOSX
+
+ CFBundleVersion
+ 1
+ DTCompiler
+ com.apple.compilers.llvm.clang.1_0
+ DTPlatformBuild
+
+ DTPlatformName
+ macosx
+ DTPlatformVersion
+ 14.5
+ DTSDKBuild
+ 23F73
+ DTSDKName
+ macosx14.5
+ DTXcode
+ 1540
+ DTXcodeBuild
+ 15F31d
+ LSMinimumSystemVersion
+ 10.15
+ UIDeviceFamily
+
+ 2
+
+
+
diff --git a/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64_x86_64-maccatalyst/NSCWinterCG.framework/Versions/Current b/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64_x86_64-maccatalyst/NSCWinterCG.framework/Versions/Current
new file mode 120000
index 0000000000..8c7e5a667f
--- /dev/null
+++ b/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64_x86_64-maccatalyst/NSCWinterCG.framework/Versions/Current
@@ -0,0 +1 @@
+A
\ No newline at end of file
diff --git a/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64_x86_64-maccatalyst/dSYMs/NSCWinterCG.framework.dSYM/Contents/Info.plist b/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64_x86_64-maccatalyst/dSYMs/NSCWinterCG.framework.dSYM/Contents/Info.plist
new file mode 100644
index 0000000000..bc8f78bcc0
--- /dev/null
+++ b/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64_x86_64-maccatalyst/dSYMs/NSCWinterCG.framework.dSYM/Contents/Info.plist
@@ -0,0 +1,20 @@
+
+
+
+
+ CFBundleDevelopmentRegion
+ English
+ CFBundleIdentifier
+ com.apple.xcode.dsym.org.nativescript.NSCWinterCG
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundlePackageType
+ dSYM
+ CFBundleSignature
+ ????
+ CFBundleShortVersionString
+ 1.0
+ CFBundleVersion
+ 1
+
+
diff --git a/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64_x86_64-maccatalyst/dSYMs/NSCWinterCG.framework.dSYM/Contents/Resources/DWARF/NSCWinterCG b/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64_x86_64-maccatalyst/dSYMs/NSCWinterCG.framework.dSYM/Contents/Resources/DWARF/NSCWinterCG
new file mode 100644
index 0000000000..83e3ccd648
Binary files /dev/null and b/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64_x86_64-maccatalyst/dSYMs/NSCWinterCG.framework.dSYM/Contents/Resources/DWARF/NSCWinterCG differ
diff --git a/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64_x86_64-maccatalyst/dSYMs/NSCWinterCG.framework.dSYM/Contents/Resources/Relocations/aarch64/NSCWinterCG.yml b/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64_x86_64-maccatalyst/dSYMs/NSCWinterCG.framework.dSYM/Contents/Resources/Relocations/aarch64/NSCWinterCG.yml
new file mode 100644
index 0000000000..024c12370a
--- /dev/null
+++ b/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64_x86_64-maccatalyst/dSYMs/NSCWinterCG.framework.dSYM/Contents/Resources/Relocations/aarch64/NSCWinterCG.yml
@@ -0,0 +1,26 @@
+---
+triple: 'arm64-apple-darwin'
+binary-path: '/Users/triniwiz/Documents/GitHub/NativeScript/packages/winter-cg/ios/NSCWinterCG/build/Release-maccatalyst/NSCWinterCG.framework/Versions/A/NSCWinterCG'
+relocations:
+ - { offsetInCU: 0x34, offset: 0x8175D, size: 0x8, addend: 0x0, symName: _NSCWinterCGVersionString, symObjAddr: 0x0, symBinAddr: 0x3A90, symSize: 0x0 }
+ - { offsetInCU: 0x69, offset: 0x81792, size: 0x8, addend: 0x0, symName: _NSCWinterCGVersionNumber, symObjAddr: 0x30, symBinAddr: 0x3AC0, symSize: 0x0 }
+ - { offsetInCU: 0x27, offset: 0x817CF, size: 0x8, addend: 0x0, symName: '+[NSString(WinterCG) atob:]', symObjAddr: 0x0, symBinAddr: 0x2890, symSize: 0x74 }
+ - { offsetInCU: 0x3C, offset: 0x817E4, size: 0x8, addend: 0x0, symName: '+[NSString(WinterCG) atob:]', symObjAddr: 0x0, symBinAddr: 0x2890, symSize: 0x74 }
+ - { offsetInCU: 0x8F, offset: 0x81837, size: 0x8, addend: 0x0, symName: '+[NSString(WinterCG) btoa:]', symObjAddr: 0x74, symBinAddr: 0x2904, symSize: 0x50 }
+ - { offsetInCU: 0x27, offset: 0x818E6, size: 0x8, addend: 0x0, symName: '-[NSCCryptoKeyPair dealloc]', symObjAddr: 0x0, symBinAddr: 0x2954, symSize: 0x6C }
+ - { offsetInCU: 0x159, offset: 0x81A18, size: 0x8, addend: 0x0, symName: '-[NSCCryptoKeyPair dealloc]', symObjAddr: 0x0, symBinAddr: 0x2954, symSize: 0x6C }
+ - { offsetInCU: 0x1BD, offset: 0x81A7C, size: 0x8, addend: 0x0, symName: '-[NSCCryptoKeyPair initWithPrivateKey:andPublicKey:]', symObjAddr: 0x6C, symBinAddr: 0x29C0, symSize: 0x70 }
+ - { offsetInCU: 0x214, offset: 0x81AD3, size: 0x8, addend: 0x0, symName: '-[NSCCryptoKeyPair privateKey]', symObjAddr: 0xDC, symBinAddr: 0x2A30, symSize: 0x8 }
+ - { offsetInCU: 0x24B, offset: 0x81B0A, size: 0x8, addend: 0x0, symName: '-[NSCCryptoKeyPair setPrivateKey:]', symObjAddr: 0xE4, symBinAddr: 0x2A38, symSize: 0x8 }
+ - { offsetInCU: 0x288, offset: 0x81B47, size: 0x8, addend: 0x0, symName: '-[NSCCryptoKeyPair publicKey]', symObjAddr: 0xEC, symBinAddr: 0x2A40, symSize: 0x8 }
+ - { offsetInCU: 0x2BF, offset: 0x81B7E, size: 0x8, addend: 0x0, symName: '-[NSCCryptoKeyPair setPublicKey:]', symObjAddr: 0xF4, symBinAddr: 0x2A48, symSize: 0x8 }
+ - { offsetInCU: 0x2FC, offset: 0x81BBB, size: 0x8, addend: 0x0, symName: '+[NSCCrypto randomUUID]', symObjAddr: 0xFC, symBinAddr: 0x2A50, symSize: 0x6C }
+ - { offsetInCU: 0x32F, offset: 0x81BEE, size: 0x8, addend: 0x0, symName: '+[NSCCrypto getRandomValues:length:]', symObjAddr: 0x168, symBinAddr: 0x2ABC, symSize: 0x44 }
+ - { offsetInCU: 0x3D2, offset: 0x81C91, size: 0x8, addend: 0x0, symName: '+[NSCCrypto digest:length:mode:]', symObjAddr: 0x1AC, symBinAddr: 0x2B00, symSize: 0x134 }
+ - { offsetInCU: 0x59C, offset: 0x81E5B, size: 0x8, addend: 0x0, symName: '+[NSCCrypto generateKeyHmac:length:]', symObjAddr: 0x2E0, symBinAddr: 0x2C34, symSize: 0x230 }
+ - { offsetInCU: 0x73F, offset: 0x81FFE, size: 0x8, addend: 0x0, symName: '+[NSCCrypto verifyHmac:hash:signature:data:]', symObjAddr: 0x510, symBinAddr: 0x2E64, symSize: 0xBC }
+ - { offsetInCU: 0x7B2, offset: 0x82071, size: 0x8, addend: 0x0, symName: '+[NSCCrypto signHmac:hash:data:]', symObjAddr: 0x5CC, symBinAddr: 0x2F20, symSize: 0x110 }
+ - { offsetInCU: 0x87E, offset: 0x8213D, size: 0x8, addend: 0x0, symName: '+[NSCCrypto generateKeyRsa:modulusLength:publicExponent:size:hash:extractable:keyUsages:]', symObjAddr: 0x6DC, symBinAddr: 0x3030, symSize: 0x2D8 }
+ - { offsetInCU: 0xBDD, offset: 0x8249C, size: 0x8, addend: 0x0, symName: '+[NSCCrypto encryptRsa:key:hash:data:size:]', symObjAddr: 0x9B4, symBinAddr: 0x3308, symSize: 0x178 }
+ - { offsetInCU: 0xDD2, offset: 0x82691, size: 0x8, addend: 0x0, symName: '+[NSCCrypto decryptRsa:key:hash:data:size:]', symObjAddr: 0xB2C, symBinAddr: 0x3480, symSize: 0x178 }
+...
diff --git a/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64_x86_64-maccatalyst/dSYMs/NSCWinterCG.framework.dSYM/Contents/Resources/Relocations/x86_64/NSCWinterCG.yml b/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64_x86_64-maccatalyst/dSYMs/NSCWinterCG.framework.dSYM/Contents/Resources/Relocations/x86_64/NSCWinterCG.yml
new file mode 100644
index 0000000000..9d71d3c51c
--- /dev/null
+++ b/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64_x86_64-maccatalyst/dSYMs/NSCWinterCG.framework.dSYM/Contents/Resources/Relocations/x86_64/NSCWinterCG.yml
@@ -0,0 +1,26 @@
+---
+triple: 'x86_64-apple-darwin'
+binary-path: '/Users/triniwiz/Documents/GitHub/NativeScript/packages/winter-cg/ios/NSCWinterCG/build/Release-maccatalyst/NSCWinterCG.framework/Versions/A/NSCWinterCG'
+relocations:
+ - { offsetInCU: 0x34, offset: 0x8488D, size: 0x8, addend: 0x0, symName: _NSCWinterCGVersionString, symObjAddr: 0x0, symBinAddr: 0x2B00, symSize: 0x0 }
+ - { offsetInCU: 0x69, offset: 0x848C2, size: 0x8, addend: 0x0, symName: _NSCWinterCGVersionNumber, symObjAddr: 0x30, symBinAddr: 0x2B30, symSize: 0x0 }
+ - { offsetInCU: 0x27, offset: 0x848FF, size: 0x8, addend: 0x0, symName: '+[NSString(WinterCG) atob:]', symObjAddr: 0x0, symBinAddr: 0x1A0C, symSize: 0x89 }
+ - { offsetInCU: 0x3C, offset: 0x84914, size: 0x8, addend: 0x0, symName: '+[NSString(WinterCG) atob:]', symObjAddr: 0x0, symBinAddr: 0x1A0C, symSize: 0x89 }
+ - { offsetInCU: 0x100, offset: 0x849D8, size: 0x8, addend: 0x0, symName: '+[NSString(WinterCG) btoa:]', symObjAddr: 0x89, symBinAddr: 0x1A95, symSize: 0x5A }
+ - { offsetInCU: 0x27, offset: 0x84AAF, size: 0x8, addend: 0x0, symName: '-[NSCCryptoKeyPair dealloc]', symObjAddr: 0x0, symBinAddr: 0x1AF0, symSize: 0x8A }
+ - { offsetInCU: 0x158, offset: 0x84BE0, size: 0x8, addend: 0x0, symName: '-[NSCCryptoKeyPair dealloc]', symObjAddr: 0x0, symBinAddr: 0x1AF0, symSize: 0x8A }
+ - { offsetInCU: 0x229, offset: 0x84CB1, size: 0x8, addend: 0x0, symName: '-[NSCCryptoKeyPair initWithPrivateKey:andPublicKey:]', symObjAddr: 0x8A, symBinAddr: 0x1B7A, symSize: 0x75 }
+ - { offsetInCU: 0x2B6, offset: 0x84D3E, size: 0x8, addend: 0x0, symName: '-[NSCCryptoKeyPair privateKey]', symObjAddr: 0xFF, symBinAddr: 0x1BEF, symSize: 0xA }
+ - { offsetInCU: 0x2EB, offset: 0x84D73, size: 0x8, addend: 0x0, symName: '-[NSCCryptoKeyPair setPrivateKey:]', symObjAddr: 0x109, symBinAddr: 0x1BF9, symSize: 0xA }
+ - { offsetInCU: 0x328, offset: 0x84DB0, size: 0x8, addend: 0x0, symName: '-[NSCCryptoKeyPair publicKey]', symObjAddr: 0x113, symBinAddr: 0x1C03, symSize: 0xA }
+ - { offsetInCU: 0x35D, offset: 0x84DE5, size: 0x8, addend: 0x0, symName: '-[NSCCryptoKeyPair setPublicKey:]', symObjAddr: 0x11D, symBinAddr: 0x1C0D, symSize: 0xA }
+ - { offsetInCU: 0x39A, offset: 0x84E22, size: 0x8, addend: 0x0, symName: '+[NSCCrypto randomUUID]', symObjAddr: 0x127, symBinAddr: 0x1C17, symSize: 0x81 }
+ - { offsetInCU: 0x419, offset: 0x84EA1, size: 0x8, addend: 0x0, symName: '+[NSCCrypto getRandomValues:length:]', symObjAddr: 0x1A8, symBinAddr: 0x1C98, symSize: 0x35 }
+ - { offsetInCU: 0x4BC, offset: 0x84F44, size: 0x8, addend: 0x0, symName: '+[NSCCrypto digest:length:mode:]', symObjAddr: 0x1DD, symBinAddr: 0x1CCD, symSize: 0x187 }
+ - { offsetInCU: 0x6D6, offset: 0x8515E, size: 0x8, addend: 0x0, symName: '+[NSCCrypto generateKeyHmac:length:]', symObjAddr: 0x364, symBinAddr: 0x1E54, symSize: 0x2CC }
+ - { offsetInCU: 0x991, offset: 0x85419, size: 0x8, addend: 0x0, symName: '+[NSCCrypto verifyHmac:hash:signature:data:]', symObjAddr: 0x630, symBinAddr: 0x2120, symSize: 0xBA }
+ - { offsetInCU: 0xAB1, offset: 0x85539, size: 0x8, addend: 0x0, symName: '+[NSCCrypto signHmac:hash:data:]', symObjAddr: 0x6EA, symBinAddr: 0x21DA, symSize: 0x312 }
+ - { offsetInCU: 0xD63, offset: 0x857EB, size: 0x8, addend: 0x0, symName: '+[NSCCrypto generateKeyRsa:modulusLength:publicExponent:size:hash:extractable:keyUsages:]', symObjAddr: 0x9FC, symBinAddr: 0x24EC, symSize: 0x308 }
+ - { offsetInCU: 0x115C, offset: 0x85BE4, size: 0x8, addend: 0x0, symName: '+[NSCCrypto encryptRsa:key:hash:data:size:]', symObjAddr: 0xD04, symBinAddr: 0x27F4, symSize: 0xEE }
+ - { offsetInCU: 0x12C9, offset: 0x85D51, size: 0x8, addend: 0x0, symName: '+[NSCCrypto decryptRsa:key:hash:data:size:]', symObjAddr: 0xDF2, symBinAddr: 0x28E2, symSize: 0xEE }
+...
diff --git a/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64_x86_64-simulator/NSCWinterCG.framework/Headers/NSCCrypto.h b/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64_x86_64-simulator/NSCWinterCG.framework/Headers/NSCCrypto.h
new file mode 100644
index 0000000000..7ffac80099
--- /dev/null
+++ b/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64_x86_64-simulator/NSCWinterCG.framework/Headers/NSCCrypto.h
@@ -0,0 +1,63 @@
+//
+// NSCCrypto.h
+// NSCWinterCG
+//
+// Created by Osei Fortune on 03/07/2024.
+// Copyright © 2024 NativeScript. All rights reserved.
+//
+
+#import
+#import
+#import
+#import
+#ifndef NSCCrypto_h
+#define NSCCrypto_h
+
+typedef enum : NSUInteger {
+ kNSCCryptoRSASSA_PKCS1_v1_5,
+ kNSCCryptoRSA_PSS,
+ kNSCCryptoRSA_OAEP,
+} NSCCryptoRsaHashedKeyGenParamsName;
+
+
+typedef enum : NSUInteger {
+ kNSCCryptoHashSHA1,
+ kNSCCryptoHashSHA256,
+ kNSCCryptoHashSHA384,
+ kNSCCryptoHashSHA512
+} NSCCryptoHash;
+
+
+typedef enum : NSUInteger {
+ kNSCCryptoDecrypt,
+ kNSCCryptoEncrypt,
+ kNSCCryptoSign,
+ kNSCCryptoVerify,
+ kNSCCryptoDeriveKey,
+ kNSCCryptoDeriveBits,
+ kNSCCryptoWrapKey,
+ kNSCCryptoUnwrapKey,
+} NSCCryptoKeyUsages;
+
+
+
+@interface NSCCryptoKeyPair : NSObject
+@property (nonatomic, nonnull) SecKeyRef privateKey;
+@property (nonatomic, nonnull) SecKeyRef publicKey;
+-(nonnull id)initWithPrivateKey:(nonnull SecKeyRef)privKey andPublicKey:(nonnull SecKeyRef)pubKey;
+@end
+
+@interface NSCCrypto:NSObject
++ (nonnull NSString*)randomUUID;
++ (nullable NSString*)getRandomValues:(nonnull void*)buffer length:(unsigned int)length;
++ (nullable NSData*)digest:(nonnull void*)data length:(unsigned int)length mode:(int)mode;
++ (nullable NSData *)generateKeyHmac:(int)hash length:(int)length;
++ (nullable NSData *)signHmac:(nonnull NSData*)key hash:(NSCCryptoHash)hash data:(nonnull NSData*)data;
++ (BOOL)verifyHmac:(nonnull NSData*)key hash:(NSCCryptoHash)hash signature:(nonnull NSData*)signature data:(nonnull NSData*)data;
+
++ (nullable NSCCryptoKeyPair*)generateKeyRsa:(NSCCryptoRsaHashedKeyGenParamsName)name modulusLength:(unsigned int)modulusLength publicExponent:(nullable void*)exponent size:(unsigned int)size hash:(NSCCryptoHash)hash extractable:(BOOL)extractable keyUsages:(nonnull NSArray*) usages;
++ (nullable NSData *)encryptRsa:(BOOL)isPrivate key:(nonnull NSCCryptoKeyPair *)key hash:(NSCCryptoHash)hash data:(nonnull void*)data size:(unsigned int) size;
+
++ (nullable NSData *)decryptRsa:(BOOL)isPrivate key:(nonnull NSCCryptoKeyPair *)key hash:(NSCCryptoHash)hash data:(nonnull void*)data size:(unsigned int) size;
+@end
+#endif /* NSCCrypto_h */
diff --git a/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64_x86_64-simulator/NSCWinterCG.framework/Headers/NSCWinterCG.h b/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64_x86_64-simulator/NSCWinterCG.framework/Headers/NSCWinterCG.h
new file mode 100644
index 0000000000..b32d42c7f8
--- /dev/null
+++ b/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64_x86_64-simulator/NSCWinterCG.framework/Headers/NSCWinterCG.h
@@ -0,0 +1,20 @@
+//
+// NSCWinterCG.h
+// NSCWinterCG
+//
+// Created by Osei Fortune and Nathan Walker on 07/09/2024.
+// Copyright © 2024 NativeScript. All rights reserved.
+//
+
+#import
+
+//! Project version number for NSCWinterCG.
+FOUNDATION_EXPORT double NSCWinterCGVersionNumber;
+
+//! Project version string for NSCWinterCG.
+FOUNDATION_EXPORT const unsigned char NSCWinterCGVersionString[];
+
+// In this header, you should import all the public headers of your framework using statements like #import
+
+#import "NSCCrypto.h"
+#import "NSString+WinterCG.h"
diff --git a/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64_x86_64-simulator/NSCWinterCG.framework/Headers/NSString+WinterCG.h b/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64_x86_64-simulator/NSCWinterCG.framework/Headers/NSString+WinterCG.h
new file mode 100644
index 0000000000..6bafc8e80f
--- /dev/null
+++ b/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64_x86_64-simulator/NSCWinterCG.framework/Headers/NSString+WinterCG.h
@@ -0,0 +1,21 @@
+//
+// NSString+WinterCG.h
+// NSCWinterCG
+//
+// Created by Osei Fortune and Nathan Walker on 07/09/2024.
+// Copyright © 2024 NativeScript. All rights reserved.
+//
+
+#import
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface NSString (WinterCG)
+
++ (NSString*)atob:(nonnull NSString*)data;
+
++ (NSString*)btoa:(nonnull NSString*)stringToEncode;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64_x86_64-simulator/NSCWinterCG.framework/Info.plist b/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64_x86_64-simulator/NSCWinterCG.framework/Info.plist
new file mode 100644
index 0000000000..144b98ae57
Binary files /dev/null and b/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64_x86_64-simulator/NSCWinterCG.framework/Info.plist differ
diff --git a/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64_x86_64-simulator/NSCWinterCG.framework/Modules/module.modulemap b/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64_x86_64-simulator/NSCWinterCG.framework/Modules/module.modulemap
new file mode 100644
index 0000000000..6be1f25ee5
--- /dev/null
+++ b/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64_x86_64-simulator/NSCWinterCG.framework/Modules/module.modulemap
@@ -0,0 +1,6 @@
+framework module NSCWinterCG {
+ umbrella header "NSCWinterCG.h"
+ export *
+
+ module * { export * }
+}
diff --git a/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64_x86_64-simulator/NSCWinterCG.framework/NSCWinterCG b/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64_x86_64-simulator/NSCWinterCG.framework/NSCWinterCG
new file mode 100755
index 0000000000..04a822fb1c
Binary files /dev/null and b/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64_x86_64-simulator/NSCWinterCG.framework/NSCWinterCG differ
diff --git a/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64_x86_64-simulator/NSCWinterCG.framework/_CodeSignature/CodeResources b/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64_x86_64-simulator/NSCWinterCG.framework/_CodeSignature/CodeResources
new file mode 100644
index 0000000000..4494e5e82b
--- /dev/null
+++ b/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64_x86_64-simulator/NSCWinterCG.framework/_CodeSignature/CodeResources
@@ -0,0 +1,146 @@
+
+
+
+
+ files
+
+ Headers/NSCCrypto.h
+
+ E9r9Mu0cqagXSjQXP4SIt4l2y1E=
+
+ Headers/NSCWinterCG.h
+
+ 4R4fatPgQEKe9nxYCgu6Z8n9iSM=
+
+ Headers/NSString+WinterCG.h
+
+ Bh8w+Y8xyVpUa0UPzutTjfIXBzs=
+
+ Info.plist
+
+ OhsghQKf6FU1+QLYgsCscj8sQVo=
+
+ Modules/module.modulemap
+
+ 9kiyw08RnllpkBm5tXFyjRU4YKk=
+
+
+ files2
+
+ Headers/NSCCrypto.h
+
+ hash2
+
+ RSGQOVRjuq9MOah+HMZFpWlNC2mdMWWvsdyqsf2nUYw=
+
+
+ Headers/NSCWinterCG.h
+
+ hash2
+
+ iXiaWCQEVj/G+MMjygqP8LNdb6i7dQmpJfak5hDPG9A=
+
+
+ Headers/NSString+WinterCG.h
+
+ hash2
+
+ +/9dL2/npdtcnWa/IP9nwTznoJj+z4C/sC9l00g/O9o=
+
+
+ Modules/module.modulemap
+
+ hash2
+
+ KY7HOBtGdivZPJIrPJ8QZbmExWqh8RdeE6vRAWlZkM0=
+
+
+
+ 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/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64_x86_64-simulator/dSYMs/NSCWinterCG.framework.dSYM/Contents/Info.plist b/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64_x86_64-simulator/dSYMs/NSCWinterCG.framework.dSYM/Contents/Info.plist
new file mode 100644
index 0000000000..bc8f78bcc0
--- /dev/null
+++ b/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64_x86_64-simulator/dSYMs/NSCWinterCG.framework.dSYM/Contents/Info.plist
@@ -0,0 +1,20 @@
+
+
+
+
+ CFBundleDevelopmentRegion
+ English
+ CFBundleIdentifier
+ com.apple.xcode.dsym.org.nativescript.NSCWinterCG
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundlePackageType
+ dSYM
+ CFBundleSignature
+ ????
+ CFBundleShortVersionString
+ 1.0
+ CFBundleVersion
+ 1
+
+
diff --git a/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64_x86_64-simulator/dSYMs/NSCWinterCG.framework.dSYM/Contents/Resources/DWARF/NSCWinterCG b/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64_x86_64-simulator/dSYMs/NSCWinterCG.framework.dSYM/Contents/Resources/DWARF/NSCWinterCG
new file mode 100644
index 0000000000..0514c43167
Binary files /dev/null and b/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64_x86_64-simulator/dSYMs/NSCWinterCG.framework.dSYM/Contents/Resources/DWARF/NSCWinterCG differ
diff --git a/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64_x86_64-simulator/dSYMs/NSCWinterCG.framework.dSYM/Contents/Resources/Relocations/aarch64/NSCWinterCG.yml b/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64_x86_64-simulator/dSYMs/NSCWinterCG.framework.dSYM/Contents/Resources/Relocations/aarch64/NSCWinterCG.yml
new file mode 100644
index 0000000000..365af5c5da
--- /dev/null
+++ b/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64_x86_64-simulator/dSYMs/NSCWinterCG.framework.dSYM/Contents/Resources/Relocations/aarch64/NSCWinterCG.yml
@@ -0,0 +1,26 @@
+---
+triple: 'arm64-apple-darwin'
+binary-path: '/Users/triniwiz/Documents/GitHub/NativeScript/packages/winter-cg/ios/NSCWinterCG/build/Release-iphonesimulator/NSCWinterCG.framework/NSCWinterCG'
+relocations:
+ - { offsetInCU: 0x34, offset: 0x2F102, size: 0x8, addend: 0x0, symName: _NSCWinterCGVersionString, symObjAddr: 0x0, symBinAddr: 0x3A90, symSize: 0x0 }
+ - { offsetInCU: 0x69, offset: 0x2F137, size: 0x8, addend: 0x0, symName: _NSCWinterCGVersionNumber, symObjAddr: 0x30, symBinAddr: 0x3AC0, symSize: 0x0 }
+ - { offsetInCU: 0x27, offset: 0x2F174, size: 0x8, addend: 0x0, symName: '+[NSString(WinterCG) atob:]', symObjAddr: 0x0, symBinAddr: 0x2788, symSize: 0x74 }
+ - { offsetInCU: 0x3C, offset: 0x2F189, size: 0x8, addend: 0x0, symName: '+[NSString(WinterCG) atob:]', symObjAddr: 0x0, symBinAddr: 0x2788, symSize: 0x74 }
+ - { offsetInCU: 0x8F, offset: 0x2F1DC, size: 0x8, addend: 0x0, symName: '+[NSString(WinterCG) btoa:]', symObjAddr: 0x74, symBinAddr: 0x27FC, symSize: 0x50 }
+ - { offsetInCU: 0x27, offset: 0x2F28B, size: 0x8, addend: 0x0, symName: '-[NSCCryptoKeyPair dealloc]', symObjAddr: 0x0, symBinAddr: 0x284C, symSize: 0x6C }
+ - { offsetInCU: 0x157, offset: 0x2F3BB, size: 0x8, addend: 0x0, symName: '-[NSCCryptoKeyPair dealloc]', symObjAddr: 0x0, symBinAddr: 0x284C, symSize: 0x6C }
+ - { offsetInCU: 0x1BB, offset: 0x2F41F, size: 0x8, addend: 0x0, symName: '-[NSCCryptoKeyPair initWithPrivateKey:andPublicKey:]', symObjAddr: 0x6C, symBinAddr: 0x28B8, symSize: 0x70 }
+ - { offsetInCU: 0x212, offset: 0x2F476, size: 0x8, addend: 0x0, symName: '-[NSCCryptoKeyPair privateKey]', symObjAddr: 0xDC, symBinAddr: 0x2928, symSize: 0x8 }
+ - { offsetInCU: 0x249, offset: 0x2F4AD, size: 0x8, addend: 0x0, symName: '-[NSCCryptoKeyPair setPrivateKey:]', symObjAddr: 0xE4, symBinAddr: 0x2930, symSize: 0x8 }
+ - { offsetInCU: 0x286, offset: 0x2F4EA, size: 0x8, addend: 0x0, symName: '-[NSCCryptoKeyPair publicKey]', symObjAddr: 0xEC, symBinAddr: 0x2938, symSize: 0x8 }
+ - { offsetInCU: 0x2BD, offset: 0x2F521, size: 0x8, addend: 0x0, symName: '-[NSCCryptoKeyPair setPublicKey:]', symObjAddr: 0xF4, symBinAddr: 0x2940, symSize: 0x8 }
+ - { offsetInCU: 0x2FA, offset: 0x2F55E, size: 0x8, addend: 0x0, symName: '+[NSCCrypto randomUUID]', symObjAddr: 0xFC, symBinAddr: 0x2948, symSize: 0x6C }
+ - { offsetInCU: 0x32D, offset: 0x2F591, size: 0x8, addend: 0x0, symName: '+[NSCCrypto getRandomValues:length:]', symObjAddr: 0x168, symBinAddr: 0x29B4, symSize: 0x44 }
+ - { offsetInCU: 0x3D0, offset: 0x2F634, size: 0x8, addend: 0x0, symName: '+[NSCCrypto digest:length:mode:]', symObjAddr: 0x1AC, symBinAddr: 0x29F8, symSize: 0x134 }
+ - { offsetInCU: 0x59A, offset: 0x2F7FE, size: 0x8, addend: 0x0, symName: '+[NSCCrypto generateKeyHmac:length:]', symObjAddr: 0x2E0, symBinAddr: 0x2B2C, symSize: 0x230 }
+ - { offsetInCU: 0x73D, offset: 0x2F9A1, size: 0x8, addend: 0x0, symName: '+[NSCCrypto verifyHmac:hash:signature:data:]', symObjAddr: 0x510, symBinAddr: 0x2D5C, symSize: 0xBC }
+ - { offsetInCU: 0x7B0, offset: 0x2FA14, size: 0x8, addend: 0x0, symName: '+[NSCCrypto signHmac:hash:data:]', symObjAddr: 0x5CC, symBinAddr: 0x2E18, symSize: 0x110 }
+ - { offsetInCU: 0x87C, offset: 0x2FAE0, size: 0x8, addend: 0x0, symName: '+[NSCCrypto generateKeyRsa:modulusLength:publicExponent:size:hash:extractable:keyUsages:]', symObjAddr: 0x6DC, symBinAddr: 0x2F28, symSize: 0x2D8 }
+ - { offsetInCU: 0xBDB, offset: 0x2FE3F, size: 0x8, addend: 0x0, symName: '+[NSCCrypto encryptRsa:key:hash:data:size:]', symObjAddr: 0x9B4, symBinAddr: 0x3200, symSize: 0x178 }
+ - { offsetInCU: 0xDD0, offset: 0x30034, size: 0x8, addend: 0x0, symName: '+[NSCCrypto decryptRsa:key:hash:data:size:]', symObjAddr: 0xB2C, symBinAddr: 0x3378, symSize: 0x178 }
+...
diff --git a/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64_x86_64-simulator/dSYMs/NSCWinterCG.framework.dSYM/Contents/Resources/Relocations/x86_64/NSCWinterCG.yml b/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64_x86_64-simulator/dSYMs/NSCWinterCG.framework.dSYM/Contents/Resources/Relocations/x86_64/NSCWinterCG.yml
new file mode 100644
index 0000000000..ee23a8ca8e
--- /dev/null
+++ b/packages/core/platforms/ios/NSCWinterCG.xcframework/ios-arm64_x86_64-simulator/dSYMs/NSCWinterCG.framework.dSYM/Contents/Resources/Relocations/x86_64/NSCWinterCG.yml
@@ -0,0 +1,26 @@
+---
+triple: 'x86_64-apple-darwin'
+binary-path: '/Users/triniwiz/Documents/GitHub/NativeScript/packages/winter-cg/ios/NSCWinterCG/build/Release-iphonesimulator/NSCWinterCG.framework/NSCWinterCG'
+relocations:
+ - { offsetInCU: 0x34, offset: 0x3073B, size: 0x8, addend: 0x0, symName: _NSCWinterCGVersionString, symObjAddr: 0x0, symBinAddr: 0x2B00, symSize: 0x0 }
+ - { offsetInCU: 0x69, offset: 0x30770, size: 0x8, addend: 0x0, symName: _NSCWinterCGVersionNumber, symObjAddr: 0x30, symBinAddr: 0x2B30, symSize: 0x0 }
+ - { offsetInCU: 0x27, offset: 0x307AD, size: 0x8, addend: 0x0, symName: '+[NSString(WinterCG) atob:]', symObjAddr: 0x0, symBinAddr: 0x1A0C, symSize: 0x89 }
+ - { offsetInCU: 0x3C, offset: 0x307C2, size: 0x8, addend: 0x0, symName: '+[NSString(WinterCG) atob:]', symObjAddr: 0x0, symBinAddr: 0x1A0C, symSize: 0x89 }
+ - { offsetInCU: 0x100, offset: 0x30886, size: 0x8, addend: 0x0, symName: '+[NSString(WinterCG) btoa:]', symObjAddr: 0x89, symBinAddr: 0x1A95, symSize: 0x5A }
+ - { offsetInCU: 0x27, offset: 0x3095D, size: 0x8, addend: 0x0, symName: '-[NSCCryptoKeyPair dealloc]', symObjAddr: 0x0, symBinAddr: 0x1AF0, symSize: 0x8A }
+ - { offsetInCU: 0x157, offset: 0x30A8D, size: 0x8, addend: 0x0, symName: '-[NSCCryptoKeyPair dealloc]', symObjAddr: 0x0, symBinAddr: 0x1AF0, symSize: 0x8A }
+ - { offsetInCU: 0x228, offset: 0x30B5E, size: 0x8, addend: 0x0, symName: '-[NSCCryptoKeyPair initWithPrivateKey:andPublicKey:]', symObjAddr: 0x8A, symBinAddr: 0x1B7A, symSize: 0x75 }
+ - { offsetInCU: 0x2B5, offset: 0x30BEB, size: 0x8, addend: 0x0, symName: '-[NSCCryptoKeyPair privateKey]', symObjAddr: 0xFF, symBinAddr: 0x1BEF, symSize: 0xA }
+ - { offsetInCU: 0x2EA, offset: 0x30C20, size: 0x8, addend: 0x0, symName: '-[NSCCryptoKeyPair setPrivateKey:]', symObjAddr: 0x109, symBinAddr: 0x1BF9, symSize: 0xA }
+ - { offsetInCU: 0x327, offset: 0x30C5D, size: 0x8, addend: 0x0, symName: '-[NSCCryptoKeyPair publicKey]', symObjAddr: 0x113, symBinAddr: 0x1C03, symSize: 0xA }
+ - { offsetInCU: 0x35C, offset: 0x30C92, size: 0x8, addend: 0x0, symName: '-[NSCCryptoKeyPair setPublicKey:]', symObjAddr: 0x11D, symBinAddr: 0x1C0D, symSize: 0xA }
+ - { offsetInCU: 0x399, offset: 0x30CCF, size: 0x8, addend: 0x0, symName: '+[NSCCrypto randomUUID]', symObjAddr: 0x127, symBinAddr: 0x1C17, symSize: 0x81 }
+ - { offsetInCU: 0x418, offset: 0x30D4E, size: 0x8, addend: 0x0, symName: '+[NSCCrypto getRandomValues:length:]', symObjAddr: 0x1A8, symBinAddr: 0x1C98, symSize: 0x35 }
+ - { offsetInCU: 0x4BB, offset: 0x30DF1, size: 0x8, addend: 0x0, symName: '+[NSCCrypto digest:length:mode:]', symObjAddr: 0x1DD, symBinAddr: 0x1CCD, symSize: 0x187 }
+ - { offsetInCU: 0x6D5, offset: 0x3100B, size: 0x8, addend: 0x0, symName: '+[NSCCrypto generateKeyHmac:length:]', symObjAddr: 0x364, symBinAddr: 0x1E54, symSize: 0x2CC }
+ - { offsetInCU: 0x990, offset: 0x312C6, size: 0x8, addend: 0x0, symName: '+[NSCCrypto verifyHmac:hash:signature:data:]', symObjAddr: 0x630, symBinAddr: 0x2120, symSize: 0xB9 }
+ - { offsetInCU: 0xAB0, offset: 0x313E6, size: 0x8, addend: 0x0, symName: '+[NSCCrypto signHmac:hash:data:]', symObjAddr: 0x6E9, symBinAddr: 0x21D9, symSize: 0x313 }
+ - { offsetInCU: 0xD62, offset: 0x31698, size: 0x8, addend: 0x0, symName: '+[NSCCrypto generateKeyRsa:modulusLength:publicExponent:size:hash:extractable:keyUsages:]', symObjAddr: 0x9FC, symBinAddr: 0x24EC, symSize: 0x308 }
+ - { offsetInCU: 0x115B, offset: 0x31A91, size: 0x8, addend: 0x0, symName: '+[NSCCrypto encryptRsa:key:hash:data:size:]', symObjAddr: 0xD04, symBinAddr: 0x27F4, symSize: 0xEE }
+ - { offsetInCU: 0x12C8, offset: 0x31BFE, size: 0x8, addend: 0x0, symName: '+[NSCCrypto decryptRsa:key:hash:data:size:]', symObjAddr: 0xDF2, symBinAddr: 0x28E2, symSize: 0xEE }
+...
diff --git a/packages/core/platforms/ios/NSCWinterCG.xcframework/xros-arm64/NSCWinterCG.framework/Headers/NSCCrypto.h b/packages/core/platforms/ios/NSCWinterCG.xcframework/xros-arm64/NSCWinterCG.framework/Headers/NSCCrypto.h
new file mode 100644
index 0000000000..7ffac80099
--- /dev/null
+++ b/packages/core/platforms/ios/NSCWinterCG.xcframework/xros-arm64/NSCWinterCG.framework/Headers/NSCCrypto.h
@@ -0,0 +1,63 @@
+//
+// NSCCrypto.h
+// NSCWinterCG
+//
+// Created by Osei Fortune on 03/07/2024.
+// Copyright © 2024 NativeScript. All rights reserved.
+//
+
+#import
+#import
+#import
+#import
+#ifndef NSCCrypto_h
+#define NSCCrypto_h
+
+typedef enum : NSUInteger {
+ kNSCCryptoRSASSA_PKCS1_v1_5,
+ kNSCCryptoRSA_PSS,
+ kNSCCryptoRSA_OAEP,
+} NSCCryptoRsaHashedKeyGenParamsName;
+
+
+typedef enum : NSUInteger {
+ kNSCCryptoHashSHA1,
+ kNSCCryptoHashSHA256,
+ kNSCCryptoHashSHA384,
+ kNSCCryptoHashSHA512
+} NSCCryptoHash;
+
+
+typedef enum : NSUInteger {
+ kNSCCryptoDecrypt,
+ kNSCCryptoEncrypt,
+ kNSCCryptoSign,
+ kNSCCryptoVerify,
+ kNSCCryptoDeriveKey,
+ kNSCCryptoDeriveBits,
+ kNSCCryptoWrapKey,
+ kNSCCryptoUnwrapKey,
+} NSCCryptoKeyUsages;
+
+
+
+@interface NSCCryptoKeyPair : NSObject
+@property (nonatomic, nonnull) SecKeyRef privateKey;
+@property (nonatomic, nonnull) SecKeyRef publicKey;
+-(nonnull id)initWithPrivateKey:(nonnull SecKeyRef)privKey andPublicKey:(nonnull SecKeyRef)pubKey;
+@end
+
+@interface NSCCrypto:NSObject
++ (nonnull NSString*)randomUUID;
++ (nullable NSString*)getRandomValues:(nonnull void*)buffer length:(unsigned int)length;
++ (nullable NSData*)digest:(nonnull void*)data length:(unsigned int)length mode:(int)mode;
++ (nullable NSData *)generateKeyHmac:(int)hash length:(int)length;
++ (nullable NSData *)signHmac:(nonnull NSData*)key hash:(NSCCryptoHash)hash data:(nonnull NSData*)data;
++ (BOOL)verifyHmac:(nonnull NSData*)key hash:(NSCCryptoHash)hash signature:(nonnull NSData*)signature data:(nonnull NSData*)data;
+
++ (nullable NSCCryptoKeyPair*)generateKeyRsa:(NSCCryptoRsaHashedKeyGenParamsName)name modulusLength:(unsigned int)modulusLength publicExponent:(nullable void*)exponent size:(unsigned int)size hash:(NSCCryptoHash)hash extractable:(BOOL)extractable keyUsages:(nonnull NSArray*) usages;
++ (nullable NSData *)encryptRsa:(BOOL)isPrivate key:(nonnull NSCCryptoKeyPair *)key hash:(NSCCryptoHash)hash data:(nonnull void*)data size:(unsigned int) size;
+
++ (nullable NSData *)decryptRsa:(BOOL)isPrivate key:(nonnull NSCCryptoKeyPair *)key hash:(NSCCryptoHash)hash data:(nonnull void*)data size:(unsigned int) size;
+@end
+#endif /* NSCCrypto_h */
diff --git a/packages/core/platforms/ios/NSCWinterCG.xcframework/xros-arm64/NSCWinterCG.framework/Headers/NSCWinterCG.h b/packages/core/platforms/ios/NSCWinterCG.xcframework/xros-arm64/NSCWinterCG.framework/Headers/NSCWinterCG.h
new file mode 100644
index 0000000000..b32d42c7f8
--- /dev/null
+++ b/packages/core/platforms/ios/NSCWinterCG.xcframework/xros-arm64/NSCWinterCG.framework/Headers/NSCWinterCG.h
@@ -0,0 +1,20 @@
+//
+// NSCWinterCG.h
+// NSCWinterCG
+//
+// Created by Osei Fortune and Nathan Walker on 07/09/2024.
+// Copyright © 2024 NativeScript. All rights reserved.
+//
+
+#import
+
+//! Project version number for NSCWinterCG.
+FOUNDATION_EXPORT double NSCWinterCGVersionNumber;
+
+//! Project version string for NSCWinterCG.
+FOUNDATION_EXPORT const unsigned char NSCWinterCGVersionString[];
+
+// In this header, you should import all the public headers of your framework using statements like #import
+
+#import "NSCCrypto.h"
+#import "NSString+WinterCG.h"
diff --git a/packages/core/platforms/ios/NSCWinterCG.xcframework/xros-arm64/NSCWinterCG.framework/Headers/NSString+WinterCG.h b/packages/core/platforms/ios/NSCWinterCG.xcframework/xros-arm64/NSCWinterCG.framework/Headers/NSString+WinterCG.h
new file mode 100644
index 0000000000..6bafc8e80f
--- /dev/null
+++ b/packages/core/platforms/ios/NSCWinterCG.xcframework/xros-arm64/NSCWinterCG.framework/Headers/NSString+WinterCG.h
@@ -0,0 +1,21 @@
+//
+// NSString+WinterCG.h
+// NSCWinterCG
+//
+// Created by Osei Fortune and Nathan Walker on 07/09/2024.
+// Copyright © 2024 NativeScript. All rights reserved.
+//
+
+#import
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface NSString (WinterCG)
+
++ (NSString*)atob:(nonnull NSString*)data;
+
++ (NSString*)btoa:(nonnull NSString*)stringToEncode;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/packages/core/platforms/ios/NSCWinterCG.xcframework/xros-arm64/NSCWinterCG.framework/Info.plist b/packages/core/platforms/ios/NSCWinterCG.xcframework/xros-arm64/NSCWinterCG.framework/Info.plist
new file mode 100644
index 0000000000..d6f6bdab72
Binary files /dev/null and b/packages/core/platforms/ios/NSCWinterCG.xcframework/xros-arm64/NSCWinterCG.framework/Info.plist differ
diff --git a/packages/core/platforms/ios/NSCWinterCG.xcframework/xros-arm64/NSCWinterCG.framework/Modules/module.modulemap b/packages/core/platforms/ios/NSCWinterCG.xcframework/xros-arm64/NSCWinterCG.framework/Modules/module.modulemap
new file mode 100644
index 0000000000..6be1f25ee5
--- /dev/null
+++ b/packages/core/platforms/ios/NSCWinterCG.xcframework/xros-arm64/NSCWinterCG.framework/Modules/module.modulemap
@@ -0,0 +1,6 @@
+framework module NSCWinterCG {
+ umbrella header "NSCWinterCG.h"
+ export *
+
+ module * { export * }
+}
diff --git a/packages/core/platforms/ios/NSCWinterCG.xcframework/xros-arm64/NSCWinterCG.framework/NSCWinterCG b/packages/core/platforms/ios/NSCWinterCG.xcframework/xros-arm64/NSCWinterCG.framework/NSCWinterCG
new file mode 100755
index 0000000000..1db679b7c9
Binary files /dev/null and b/packages/core/platforms/ios/NSCWinterCG.xcframework/xros-arm64/NSCWinterCG.framework/NSCWinterCG differ
diff --git a/packages/core/platforms/ios/NSCWinterCG.xcframework/xros-arm64/dSYMs/NSCWinterCG.framework.dSYM/Contents/Info.plist b/packages/core/platforms/ios/NSCWinterCG.xcframework/xros-arm64/dSYMs/NSCWinterCG.framework.dSYM/Contents/Info.plist
new file mode 100644
index 0000000000..bc8f78bcc0
--- /dev/null
+++ b/packages/core/platforms/ios/NSCWinterCG.xcframework/xros-arm64/dSYMs/NSCWinterCG.framework.dSYM/Contents/Info.plist
@@ -0,0 +1,20 @@
+
+
+
+
+ CFBundleDevelopmentRegion
+ English
+ CFBundleIdentifier
+ com.apple.xcode.dsym.org.nativescript.NSCWinterCG
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundlePackageType
+ dSYM
+ CFBundleSignature
+ ????
+ CFBundleShortVersionString
+ 1.0
+ CFBundleVersion
+ 1
+
+
diff --git a/packages/core/platforms/ios/NSCWinterCG.xcframework/xros-arm64/dSYMs/NSCWinterCG.framework.dSYM/Contents/Resources/DWARF/NSCWinterCG b/packages/core/platforms/ios/NSCWinterCG.xcframework/xros-arm64/dSYMs/NSCWinterCG.framework.dSYM/Contents/Resources/DWARF/NSCWinterCG
new file mode 100644
index 0000000000..da35b0717c
Binary files /dev/null and b/packages/core/platforms/ios/NSCWinterCG.xcframework/xros-arm64/dSYMs/NSCWinterCG.framework.dSYM/Contents/Resources/DWARF/NSCWinterCG differ
diff --git a/packages/core/platforms/ios/NSCWinterCG.xcframework/xros-arm64/dSYMs/NSCWinterCG.framework.dSYM/Contents/Resources/Relocations/aarch64/NSCWinterCG.yml b/packages/core/platforms/ios/NSCWinterCG.xcframework/xros-arm64/dSYMs/NSCWinterCG.framework.dSYM/Contents/Resources/Relocations/aarch64/NSCWinterCG.yml
new file mode 100644
index 0000000000..72452f91fc
--- /dev/null
+++ b/packages/core/platforms/ios/NSCWinterCG.xcframework/xros-arm64/dSYMs/NSCWinterCG.framework.dSYM/Contents/Resources/Relocations/aarch64/NSCWinterCG.yml
@@ -0,0 +1,26 @@
+---
+triple: 'arm64-apple-darwin'
+binary-path: '/Users/triniwiz/Documents/GitHub/NativeScript/packages/winter-cg/ios/NSCWinterCG/build/Release-xros/NSCWinterCG.framework/NSCWinterCG'
+relocations:
+ - { offsetInCU: 0x34, offset: 0x2E459, size: 0x8, addend: 0x0, symName: _NSCWinterCGVersionString, symObjAddr: 0x0, symBinAddr: 0x51C0, symSize: 0x0 }
+ - { offsetInCU: 0x69, offset: 0x2E48E, size: 0x8, addend: 0x0, symName: _NSCWinterCGVersionNumber, symObjAddr: 0x30, symBinAddr: 0x51F0, symSize: 0x0 }
+ - { offsetInCU: 0x27, offset: 0x2E4CB, size: 0x8, addend: 0x0, symName: '+[NSString(WinterCG) atob:]', symObjAddr: 0x0, symBinAddr: 0x4000, symSize: 0x68 }
+ - { offsetInCU: 0x3C, offset: 0x2E4E0, size: 0x8, addend: 0x0, symName: '+[NSString(WinterCG) atob:]', symObjAddr: 0x0, symBinAddr: 0x4000, symSize: 0x68 }
+ - { offsetInCU: 0x8F, offset: 0x2E533, size: 0x8, addend: 0x0, symName: '+[NSString(WinterCG) btoa:]', symObjAddr: 0x68, symBinAddr: 0x4068, symSize: 0x44 }
+ - { offsetInCU: 0x27, offset: 0x2E5E2, size: 0x8, addend: 0x0, symName: '-[NSCCryptoKeyPair dealloc]', symObjAddr: 0x0, symBinAddr: 0x40AC, symSize: 0x6C }
+ - { offsetInCU: 0x157, offset: 0x2E712, size: 0x8, addend: 0x0, symName: '-[NSCCryptoKeyPair dealloc]', symObjAddr: 0x0, symBinAddr: 0x40AC, symSize: 0x6C }
+ - { offsetInCU: 0x1BB, offset: 0x2E776, size: 0x8, addend: 0x0, symName: '-[NSCCryptoKeyPair initWithPrivateKey:andPublicKey:]', symObjAddr: 0x6C, symBinAddr: 0x4118, symSize: 0x70 }
+ - { offsetInCU: 0x212, offset: 0x2E7CD, size: 0x8, addend: 0x0, symName: '-[NSCCryptoKeyPair privateKey]', symObjAddr: 0xDC, symBinAddr: 0x4188, symSize: 0x8 }
+ - { offsetInCU: 0x249, offset: 0x2E804, size: 0x8, addend: 0x0, symName: '-[NSCCryptoKeyPair setPrivateKey:]', symObjAddr: 0xE4, symBinAddr: 0x4190, symSize: 0x8 }
+ - { offsetInCU: 0x286, offset: 0x2E841, size: 0x8, addend: 0x0, symName: '-[NSCCryptoKeyPair publicKey]', symObjAddr: 0xEC, symBinAddr: 0x4198, symSize: 0x8 }
+ - { offsetInCU: 0x2BD, offset: 0x2E878, size: 0x8, addend: 0x0, symName: '-[NSCCryptoKeyPair setPublicKey:]', symObjAddr: 0xF4, symBinAddr: 0x41A0, symSize: 0x8 }
+ - { offsetInCU: 0x2FA, offset: 0x2E8B5, size: 0x8, addend: 0x0, symName: '+[NSCCrypto randomUUID]', symObjAddr: 0xFC, symBinAddr: 0x41A8, symSize: 0x58 }
+ - { offsetInCU: 0x32D, offset: 0x2E8E8, size: 0x8, addend: 0x0, symName: '+[NSCCrypto getRandomValues:length:]', symObjAddr: 0x154, symBinAddr: 0x4200, symSize: 0x44 }
+ - { offsetInCU: 0x3D0, offset: 0x2E98B, size: 0x8, addend: 0x0, symName: '+[NSCCrypto digest:length:mode:]', symObjAddr: 0x198, symBinAddr: 0x4244, symSize: 0x124 }
+ - { offsetInCU: 0x59A, offset: 0x2EB55, size: 0x8, addend: 0x0, symName: '+[NSCCrypto generateKeyHmac:length:]', symObjAddr: 0x2BC, symBinAddr: 0x4368, symSize: 0x1FC }
+ - { offsetInCU: 0x74D, offset: 0x2ED08, size: 0x8, addend: 0x0, symName: '+[NSCCrypto verifyHmac:hash:signature:data:]', symObjAddr: 0x4B8, symBinAddr: 0x4564, symSize: 0x9C }
+ - { offsetInCU: 0x7C0, offset: 0x2ED7B, size: 0x8, addend: 0x0, symName: '+[NSCCrypto signHmac:hash:data:]', symObjAddr: 0x554, symBinAddr: 0x4600, symSize: 0xFC }
+ - { offsetInCU: 0x88C, offset: 0x2EE47, size: 0x8, addend: 0x0, symName: '+[NSCCrypto generateKeyRsa:modulusLength:publicExponent:size:hash:extractable:keyUsages:]', symObjAddr: 0x650, symBinAddr: 0x46FC, symSize: 0x2CC }
+ - { offsetInCU: 0xBEB, offset: 0x2F1A6, size: 0x8, addend: 0x0, symName: '+[NSCCrypto encryptRsa:key:hash:data:size:]', symObjAddr: 0x91C, symBinAddr: 0x49C8, symSize: 0x168 }
+ - { offsetInCU: 0xDE8, offset: 0x2F3A3, size: 0x8, addend: 0x0, symName: '+[NSCCrypto decryptRsa:key:hash:data:size:]', symObjAddr: 0xA84, symBinAddr: 0x4B30, symSize: 0x168 }
+...
diff --git a/packages/core/platforms/ios/NSCWinterCG.xcframework/xros-arm64_x86_64-simulator/NSCWinterCG.framework/Headers/NSCCrypto.h b/packages/core/platforms/ios/NSCWinterCG.xcframework/xros-arm64_x86_64-simulator/NSCWinterCG.framework/Headers/NSCCrypto.h
new file mode 100644
index 0000000000..7ffac80099
--- /dev/null
+++ b/packages/core/platforms/ios/NSCWinterCG.xcframework/xros-arm64_x86_64-simulator/NSCWinterCG.framework/Headers/NSCCrypto.h
@@ -0,0 +1,63 @@
+//
+// NSCCrypto.h
+// NSCWinterCG
+//
+// Created by Osei Fortune on 03/07/2024.
+// Copyright © 2024 NativeScript. All rights reserved.
+//
+
+#import
+#import
+#import
+#import
+#ifndef NSCCrypto_h
+#define NSCCrypto_h
+
+typedef enum : NSUInteger {
+ kNSCCryptoRSASSA_PKCS1_v1_5,
+ kNSCCryptoRSA_PSS,
+ kNSCCryptoRSA_OAEP,
+} NSCCryptoRsaHashedKeyGenParamsName;
+
+
+typedef enum : NSUInteger {
+ kNSCCryptoHashSHA1,
+ kNSCCryptoHashSHA256,
+ kNSCCryptoHashSHA384,
+ kNSCCryptoHashSHA512
+} NSCCryptoHash;
+
+
+typedef enum : NSUInteger {
+ kNSCCryptoDecrypt,
+ kNSCCryptoEncrypt,
+ kNSCCryptoSign,
+ kNSCCryptoVerify,
+ kNSCCryptoDeriveKey,
+ kNSCCryptoDeriveBits,
+ kNSCCryptoWrapKey,
+ kNSCCryptoUnwrapKey,
+} NSCCryptoKeyUsages;
+
+
+
+@interface NSCCryptoKeyPair : NSObject
+@property (nonatomic, nonnull) SecKeyRef privateKey;
+@property (nonatomic, nonnull) SecKeyRef publicKey;
+-(nonnull id)initWithPrivateKey:(nonnull SecKeyRef)privKey andPublicKey:(nonnull SecKeyRef)pubKey;
+@end
+
+@interface NSCCrypto:NSObject
++ (nonnull NSString*)randomUUID;
++ (nullable NSString*)getRandomValues:(nonnull void*)buffer length:(unsigned int)length;
++ (nullable NSData*)digest:(nonnull void*)data length:(unsigned int)length mode:(int)mode;
++ (nullable NSData *)generateKeyHmac:(int)hash length:(int)length;
++ (nullable NSData *)signHmac:(nonnull NSData*)key hash:(NSCCryptoHash)hash data:(nonnull NSData*)data;
++ (BOOL)verifyHmac:(nonnull NSData*)key hash:(NSCCryptoHash)hash signature:(nonnull NSData*)signature data:(nonnull NSData*)data;
+
++ (nullable NSCCryptoKeyPair*)generateKeyRsa:(NSCCryptoRsaHashedKeyGenParamsName)name modulusLength:(unsigned int)modulusLength publicExponent:(nullable void*)exponent size:(unsigned int)size hash:(NSCCryptoHash)hash extractable:(BOOL)extractable keyUsages:(nonnull NSArray*) usages;
++ (nullable NSData *)encryptRsa:(BOOL)isPrivate key:(nonnull NSCCryptoKeyPair *)key hash:(NSCCryptoHash)hash data:(nonnull void*)data size:(unsigned int) size;
+
++ (nullable NSData *)decryptRsa:(BOOL)isPrivate key:(nonnull NSCCryptoKeyPair *)key hash:(NSCCryptoHash)hash data:(nonnull void*)data size:(unsigned int) size;
+@end
+#endif /* NSCCrypto_h */
diff --git a/packages/core/platforms/ios/NSCWinterCG.xcframework/xros-arm64_x86_64-simulator/NSCWinterCG.framework/Headers/NSCWinterCG.h b/packages/core/platforms/ios/NSCWinterCG.xcframework/xros-arm64_x86_64-simulator/NSCWinterCG.framework/Headers/NSCWinterCG.h
new file mode 100644
index 0000000000..b32d42c7f8
--- /dev/null
+++ b/packages/core/platforms/ios/NSCWinterCG.xcframework/xros-arm64_x86_64-simulator/NSCWinterCG.framework/Headers/NSCWinterCG.h
@@ -0,0 +1,20 @@
+//
+// NSCWinterCG.h
+// NSCWinterCG
+//
+// Created by Osei Fortune and Nathan Walker on 07/09/2024.
+// Copyright © 2024 NativeScript. All rights reserved.
+//
+
+#import
+
+//! Project version number for NSCWinterCG.
+FOUNDATION_EXPORT double NSCWinterCGVersionNumber;
+
+//! Project version string for NSCWinterCG.
+FOUNDATION_EXPORT const unsigned char NSCWinterCGVersionString[];
+
+// In this header, you should import all the public headers of your framework using statements like #import
+
+#import "NSCCrypto.h"
+#import "NSString+WinterCG.h"
diff --git a/packages/core/platforms/ios/NSCWinterCG.xcframework/xros-arm64_x86_64-simulator/NSCWinterCG.framework/Headers/NSString+WinterCG.h b/packages/core/platforms/ios/NSCWinterCG.xcframework/xros-arm64_x86_64-simulator/NSCWinterCG.framework/Headers/NSString+WinterCG.h
new file mode 100644
index 0000000000..6bafc8e80f
--- /dev/null
+++ b/packages/core/platforms/ios/NSCWinterCG.xcframework/xros-arm64_x86_64-simulator/NSCWinterCG.framework/Headers/NSString+WinterCG.h
@@ -0,0 +1,21 @@
+//
+// NSString+WinterCG.h
+// NSCWinterCG
+//
+// Created by Osei Fortune and Nathan Walker on 07/09/2024.
+// Copyright © 2024 NativeScript. All rights reserved.
+//
+
+#import
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface NSString (WinterCG)
+
++ (NSString*)atob:(nonnull NSString*)data;
+
++ (NSString*)btoa:(nonnull NSString*)stringToEncode;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/packages/core/platforms/ios/NSCWinterCG.xcframework/xros-arm64_x86_64-simulator/NSCWinterCG.framework/Info.plist b/packages/core/platforms/ios/NSCWinterCG.xcframework/xros-arm64_x86_64-simulator/NSCWinterCG.framework/Info.plist
new file mode 100644
index 0000000000..bf1e4ea6fe
Binary files /dev/null and b/packages/core/platforms/ios/NSCWinterCG.xcframework/xros-arm64_x86_64-simulator/NSCWinterCG.framework/Info.plist differ
diff --git a/packages/core/platforms/ios/NSCWinterCG.xcframework/xros-arm64_x86_64-simulator/NSCWinterCG.framework/Modules/module.modulemap b/packages/core/platforms/ios/NSCWinterCG.xcframework/xros-arm64_x86_64-simulator/NSCWinterCG.framework/Modules/module.modulemap
new file mode 100644
index 0000000000..6be1f25ee5
--- /dev/null
+++ b/packages/core/platforms/ios/NSCWinterCG.xcframework/xros-arm64_x86_64-simulator/NSCWinterCG.framework/Modules/module.modulemap
@@ -0,0 +1,6 @@
+framework module NSCWinterCG {
+ umbrella header "NSCWinterCG.h"
+ export *
+
+ module * { export * }
+}
diff --git a/packages/core/platforms/ios/NSCWinterCG.xcframework/xros-arm64_x86_64-simulator/NSCWinterCG.framework/NSCWinterCG b/packages/core/platforms/ios/NSCWinterCG.xcframework/xros-arm64_x86_64-simulator/NSCWinterCG.framework/NSCWinterCG
new file mode 100755
index 0000000000..56b51b92ef
Binary files /dev/null and b/packages/core/platforms/ios/NSCWinterCG.xcframework/xros-arm64_x86_64-simulator/NSCWinterCG.framework/NSCWinterCG differ
diff --git a/packages/core/platforms/ios/NSCWinterCG.xcframework/xros-arm64_x86_64-simulator/NSCWinterCG.framework/_CodeSignature/CodeResources b/packages/core/platforms/ios/NSCWinterCG.xcframework/xros-arm64_x86_64-simulator/NSCWinterCG.framework/_CodeSignature/CodeResources
new file mode 100644
index 0000000000..353746a60a
--- /dev/null
+++ b/packages/core/platforms/ios/NSCWinterCG.xcframework/xros-arm64_x86_64-simulator/NSCWinterCG.framework/_CodeSignature/CodeResources
@@ -0,0 +1,146 @@
+
+
+
+
+ files
+
+ Headers/NSCCrypto.h
+
+ E9r9Mu0cqagXSjQXP4SIt4l2y1E=
+
+ Headers/NSCWinterCG.h
+
+ 4R4fatPgQEKe9nxYCgu6Z8n9iSM=
+
+ Headers/NSString+WinterCG.h
+
+ Bh8w+Y8xyVpUa0UPzutTjfIXBzs=
+
+ Info.plist
+
+ gcMP6ac1RQCESmixqMR2MwBj+5U=
+
+ Modules/module.modulemap
+
+ 9kiyw08RnllpkBm5tXFyjRU4YKk=
+
+
+ files2
+
+ Headers/NSCCrypto.h
+
+ hash2
+
+ RSGQOVRjuq9MOah+HMZFpWlNC2mdMWWvsdyqsf2nUYw=
+
+
+ Headers/NSCWinterCG.h
+
+ hash2
+
+ iXiaWCQEVj/G+MMjygqP8LNdb6i7dQmpJfak5hDPG9A=
+
+
+ Headers/NSString+WinterCG.h
+
+ hash2
+
+ +/9dL2/npdtcnWa/IP9nwTznoJj+z4C/sC9l00g/O9o=
+
+
+ Modules/module.modulemap
+
+ hash2
+
+ KY7HOBtGdivZPJIrPJ8QZbmExWqh8RdeE6vRAWlZkM0=
+
+
+
+ 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/packages/core/platforms/ios/NSCWinterCG.xcframework/xros-arm64_x86_64-simulator/dSYMs/NSCWinterCG.framework.dSYM/Contents/Info.plist b/packages/core/platforms/ios/NSCWinterCG.xcframework/xros-arm64_x86_64-simulator/dSYMs/NSCWinterCG.framework.dSYM/Contents/Info.plist
new file mode 100644
index 0000000000..bc8f78bcc0
--- /dev/null
+++ b/packages/core/platforms/ios/NSCWinterCG.xcframework/xros-arm64_x86_64-simulator/dSYMs/NSCWinterCG.framework.dSYM/Contents/Info.plist
@@ -0,0 +1,20 @@
+
+
+
+
+ CFBundleDevelopmentRegion
+ English
+ CFBundleIdentifier
+ com.apple.xcode.dsym.org.nativescript.NSCWinterCG
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundlePackageType
+ dSYM
+ CFBundleSignature
+ ????
+ CFBundleShortVersionString
+ 1.0
+ CFBundleVersion
+ 1
+
+
diff --git a/packages/core/platforms/ios/NSCWinterCG.xcframework/xros-arm64_x86_64-simulator/dSYMs/NSCWinterCG.framework.dSYM/Contents/Resources/DWARF/NSCWinterCG b/packages/core/platforms/ios/NSCWinterCG.xcframework/xros-arm64_x86_64-simulator/dSYMs/NSCWinterCG.framework.dSYM/Contents/Resources/DWARF/NSCWinterCG
new file mode 100644
index 0000000000..e5e9908324
Binary files /dev/null and b/packages/core/platforms/ios/NSCWinterCG.xcframework/xros-arm64_x86_64-simulator/dSYMs/NSCWinterCG.framework.dSYM/Contents/Resources/DWARF/NSCWinterCG differ
diff --git a/packages/core/platforms/ios/NSCWinterCG.xcframework/xros-arm64_x86_64-simulator/dSYMs/NSCWinterCG.framework.dSYM/Contents/Resources/Relocations/aarch64/NSCWinterCG.yml b/packages/core/platforms/ios/NSCWinterCG.xcframework/xros-arm64_x86_64-simulator/dSYMs/NSCWinterCG.framework.dSYM/Contents/Resources/Relocations/aarch64/NSCWinterCG.yml
new file mode 100644
index 0000000000..1dfdd43594
--- /dev/null
+++ b/packages/core/platforms/ios/NSCWinterCG.xcframework/xros-arm64_x86_64-simulator/dSYMs/NSCWinterCG.framework.dSYM/Contents/Resources/Relocations/aarch64/NSCWinterCG.yml
@@ -0,0 +1,26 @@
+---
+triple: 'arm64-apple-darwin'
+binary-path: '/Users/triniwiz/Documents/GitHub/NativeScript/packages/winter-cg/ios/NSCWinterCG/build/Release-xrsimulator/NSCWinterCG.framework/NSCWinterCG'
+relocations:
+ - { offsetInCU: 0x34, offset: 0x2EA29, size: 0x8, addend: 0x0, symName: _NSCWinterCGVersionString, symObjAddr: 0x0, symBinAddr: 0x3A90, symSize: 0x0 }
+ - { offsetInCU: 0x69, offset: 0x2EA5E, size: 0x8, addend: 0x0, symName: _NSCWinterCGVersionNumber, symObjAddr: 0x30, symBinAddr: 0x3AC0, symSize: 0x0 }
+ - { offsetInCU: 0x27, offset: 0x2EA9B, size: 0x8, addend: 0x0, symName: '+[NSString(WinterCG) atob:]', symObjAddr: 0x0, symBinAddr: 0x28D0, symSize: 0x68 }
+ - { offsetInCU: 0x3C, offset: 0x2EAB0, size: 0x8, addend: 0x0, symName: '+[NSString(WinterCG) atob:]', symObjAddr: 0x0, symBinAddr: 0x28D0, symSize: 0x68 }
+ - { offsetInCU: 0x8F, offset: 0x2EB03, size: 0x8, addend: 0x0, symName: '+[NSString(WinterCG) btoa:]', symObjAddr: 0x68, symBinAddr: 0x2938, symSize: 0x44 }
+ - { offsetInCU: 0x27, offset: 0x2EBB2, size: 0x8, addend: 0x0, symName: '-[NSCCryptoKeyPair dealloc]', symObjAddr: 0x0, symBinAddr: 0x297C, symSize: 0x6C }
+ - { offsetInCU: 0x157, offset: 0x2ECE2, size: 0x8, addend: 0x0, symName: '-[NSCCryptoKeyPair dealloc]', symObjAddr: 0x0, symBinAddr: 0x297C, symSize: 0x6C }
+ - { offsetInCU: 0x1BB, offset: 0x2ED46, size: 0x8, addend: 0x0, symName: '-[NSCCryptoKeyPair initWithPrivateKey:andPublicKey:]', symObjAddr: 0x6C, symBinAddr: 0x29E8, symSize: 0x70 }
+ - { offsetInCU: 0x212, offset: 0x2ED9D, size: 0x8, addend: 0x0, symName: '-[NSCCryptoKeyPair privateKey]', symObjAddr: 0xDC, symBinAddr: 0x2A58, symSize: 0x8 }
+ - { offsetInCU: 0x249, offset: 0x2EDD4, size: 0x8, addend: 0x0, symName: '-[NSCCryptoKeyPair setPrivateKey:]', symObjAddr: 0xE4, symBinAddr: 0x2A60, symSize: 0x8 }
+ - { offsetInCU: 0x286, offset: 0x2EE11, size: 0x8, addend: 0x0, symName: '-[NSCCryptoKeyPair publicKey]', symObjAddr: 0xEC, symBinAddr: 0x2A68, symSize: 0x8 }
+ - { offsetInCU: 0x2BD, offset: 0x2EE48, size: 0x8, addend: 0x0, symName: '-[NSCCryptoKeyPair setPublicKey:]', symObjAddr: 0xF4, symBinAddr: 0x2A70, symSize: 0x8 }
+ - { offsetInCU: 0x2FA, offset: 0x2EE85, size: 0x8, addend: 0x0, symName: '+[NSCCrypto randomUUID]', symObjAddr: 0xFC, symBinAddr: 0x2A78, symSize: 0x58 }
+ - { offsetInCU: 0x32D, offset: 0x2EEB8, size: 0x8, addend: 0x0, symName: '+[NSCCrypto getRandomValues:length:]', symObjAddr: 0x154, symBinAddr: 0x2AD0, symSize: 0x44 }
+ - { offsetInCU: 0x3D0, offset: 0x2EF5B, size: 0x8, addend: 0x0, symName: '+[NSCCrypto digest:length:mode:]', symObjAddr: 0x198, symBinAddr: 0x2B14, symSize: 0x124 }
+ - { offsetInCU: 0x59A, offset: 0x2F125, size: 0x8, addend: 0x0, symName: '+[NSCCrypto generateKeyHmac:length:]', symObjAddr: 0x2BC, symBinAddr: 0x2C38, symSize: 0x1FC }
+ - { offsetInCU: 0x74D, offset: 0x2F2D8, size: 0x8, addend: 0x0, symName: '+[NSCCrypto verifyHmac:hash:signature:data:]', symObjAddr: 0x4B8, symBinAddr: 0x2E34, symSize: 0x9C }
+ - { offsetInCU: 0x7C0, offset: 0x2F34B, size: 0x8, addend: 0x0, symName: '+[NSCCrypto signHmac:hash:data:]', symObjAddr: 0x554, symBinAddr: 0x2ED0, symSize: 0xFC }
+ - { offsetInCU: 0x88C, offset: 0x2F417, size: 0x8, addend: 0x0, symName: '+[NSCCrypto generateKeyRsa:modulusLength:publicExponent:size:hash:extractable:keyUsages:]', symObjAddr: 0x650, symBinAddr: 0x2FCC, symSize: 0x2CC }
+ - { offsetInCU: 0xBEB, offset: 0x2F776, size: 0x8, addend: 0x0, symName: '+[NSCCrypto encryptRsa:key:hash:data:size:]', symObjAddr: 0x91C, symBinAddr: 0x3298, symSize: 0x168 }
+ - { offsetInCU: 0xDE8, offset: 0x2F973, size: 0x8, addend: 0x0, symName: '+[NSCCrypto decryptRsa:key:hash:data:size:]', symObjAddr: 0xA84, symBinAddr: 0x3400, symSize: 0x168 }
+...
diff --git a/packages/core/platforms/ios/NSCWinterCG.xcframework/xros-arm64_x86_64-simulator/dSYMs/NSCWinterCG.framework.dSYM/Contents/Resources/Relocations/x86_64/NSCWinterCG.yml b/packages/core/platforms/ios/NSCWinterCG.xcframework/xros-arm64_x86_64-simulator/dSYMs/NSCWinterCG.framework.dSYM/Contents/Resources/Relocations/x86_64/NSCWinterCG.yml
new file mode 100644
index 0000000000..218c3797d9
--- /dev/null
+++ b/packages/core/platforms/ios/NSCWinterCG.xcframework/xros-arm64_x86_64-simulator/dSYMs/NSCWinterCG.framework.dSYM/Contents/Resources/Relocations/x86_64/NSCWinterCG.yml
@@ -0,0 +1,26 @@
+---
+triple: 'x86_64-apple-darwin'
+binary-path: '/Users/triniwiz/Documents/GitHub/NativeScript/packages/winter-cg/ios/NSCWinterCG/build/Release-xrsimulator/NSCWinterCG.framework/NSCWinterCG'
+relocations:
+ - { offsetInCU: 0x34, offset: 0x2FE9C, size: 0x8, addend: 0x0, symName: _NSCWinterCGVersionString, symObjAddr: 0x0, symBinAddr: 0x2780, symSize: 0x0 }
+ - { offsetInCU: 0x69, offset: 0x2FED1, size: 0x8, addend: 0x0, symName: _NSCWinterCGVersionNumber, symObjAddr: 0x30, symBinAddr: 0x27B0, symSize: 0x0 }
+ - { offsetInCU: 0x27, offset: 0x2FF0E, size: 0x8, addend: 0x0, symName: '+[NSString(WinterCG) atob:]', symObjAddr: 0x0, symBinAddr: 0x1668, symSize: 0x89 }
+ - { offsetInCU: 0x3C, offset: 0x2FF23, size: 0x8, addend: 0x0, symName: '+[NSString(WinterCG) atob:]', symObjAddr: 0x0, symBinAddr: 0x1668, symSize: 0x89 }
+ - { offsetInCU: 0x100, offset: 0x2FFE7, size: 0x8, addend: 0x0, symName: '+[NSString(WinterCG) btoa:]', symObjAddr: 0x89, symBinAddr: 0x16F1, symSize: 0x5A }
+ - { offsetInCU: 0x27, offset: 0x300C2, size: 0x8, addend: 0x0, symName: '-[NSCCryptoKeyPair dealloc]', symObjAddr: 0x0, symBinAddr: 0x174C, symSize: 0x8A }
+ - { offsetInCU: 0x155, offset: 0x301F0, size: 0x8, addend: 0x0, symName: '-[NSCCryptoKeyPair dealloc]', symObjAddr: 0x0, symBinAddr: 0x174C, symSize: 0x8A }
+ - { offsetInCU: 0x226, offset: 0x302C1, size: 0x8, addend: 0x0, symName: '-[NSCCryptoKeyPair initWithPrivateKey:andPublicKey:]', symObjAddr: 0x8A, symBinAddr: 0x17D6, symSize: 0x75 }
+ - { offsetInCU: 0x2B3, offset: 0x3034E, size: 0x8, addend: 0x0, symName: '-[NSCCryptoKeyPair privateKey]', symObjAddr: 0xFF, symBinAddr: 0x184B, symSize: 0xA }
+ - { offsetInCU: 0x2E8, offset: 0x30383, size: 0x8, addend: 0x0, symName: '-[NSCCryptoKeyPair setPrivateKey:]', symObjAddr: 0x109, symBinAddr: 0x1855, symSize: 0xA }
+ - { offsetInCU: 0x325, offset: 0x303C0, size: 0x8, addend: 0x0, symName: '-[NSCCryptoKeyPair publicKey]', symObjAddr: 0x113, symBinAddr: 0x185F, symSize: 0xA }
+ - { offsetInCU: 0x35A, offset: 0x303F5, size: 0x8, addend: 0x0, symName: '-[NSCCryptoKeyPair setPublicKey:]', symObjAddr: 0x11D, symBinAddr: 0x1869, symSize: 0xA }
+ - { offsetInCU: 0x397, offset: 0x30432, size: 0x8, addend: 0x0, symName: '+[NSCCrypto randomUUID]', symObjAddr: 0x127, symBinAddr: 0x1873, symSize: 0x81 }
+ - { offsetInCU: 0x416, offset: 0x304B1, size: 0x8, addend: 0x0, symName: '+[NSCCrypto getRandomValues:length:]', symObjAddr: 0x1A8, symBinAddr: 0x18F4, symSize: 0x35 }
+ - { offsetInCU: 0x4B9, offset: 0x30554, size: 0x8, addend: 0x0, symName: '+[NSCCrypto digest:length:mode:]', symObjAddr: 0x1DD, symBinAddr: 0x1929, symSize: 0x187 }
+ - { offsetInCU: 0x6E3, offset: 0x3077E, size: 0x8, addend: 0x0, symName: '+[NSCCrypto generateKeyHmac:length:]', symObjAddr: 0x364, symBinAddr: 0x1AB0, symSize: 0x2CC }
+ - { offsetInCU: 0x9BE, offset: 0x30A59, size: 0x8, addend: 0x0, symName: '+[NSCCrypto verifyHmac:hash:signature:data:]', symObjAddr: 0x630, symBinAddr: 0x1D7C, symSize: 0xB9 }
+ - { offsetInCU: 0xADE, offset: 0x30B79, size: 0x8, addend: 0x0, symName: '+[NSCCrypto signHmac:hash:data:]', symObjAddr: 0x6E9, symBinAddr: 0x1E35, symSize: 0x313 }
+ - { offsetInCU: 0xD90, offset: 0x30E2B, size: 0x8, addend: 0x0, symName: '+[NSCCrypto generateKeyRsa:modulusLength:publicExponent:size:hash:extractable:keyUsages:]', symObjAddr: 0x9FC, symBinAddr: 0x2148, symSize: 0x308 }
+ - { offsetInCU: 0x118E, offset: 0x31229, size: 0x8, addend: 0x0, symName: '+[NSCCrypto encryptRsa:key:hash:data:size:]', symObjAddr: 0xD04, symBinAddr: 0x2450, symSize: 0xEE }
+ - { offsetInCU: 0x12FF, offset: 0x3139A, size: 0x8, addend: 0x0, symName: '+[NSCCrypto decryptRsa:key:hash:data:size:]', symObjAddr: 0xDF2, symBinAddr: 0x253E, symSize: 0xEE }
+...
diff --git a/packages/core/platforms/ios/TNSWidgets.xcframework/Info.plist b/packages/core/platforms/ios/TNSWidgets.xcframework/Info.plist
index bb1113399b..394242f5c5 100644
--- a/packages/core/platforms/ios/TNSWidgets.xcframework/Info.plist
+++ b/packages/core/platforms/ios/TNSWidgets.xcframework/Info.plist
@@ -10,15 +10,18 @@
DebugSymbolsPath
dSYMs
LibraryIdentifier
- ios-arm64
+ xros-arm64_x86_64-simulator
LibraryPath
TNSWidgets.framework
SupportedArchitectures
arm64
+ x86_64
SupportedPlatform
- ios
+ xros
+ SupportedPlatformVariant
+ simulator
BinaryPath
@@ -26,18 +29,15 @@
DebugSymbolsPath
dSYMs
LibraryIdentifier
- ios-arm64_x86_64-simulator
+ ios-arm64
LibraryPath
TNSWidgets.framework
SupportedArchitectures
arm64
- x86_64
SupportedPlatform
ios
- SupportedPlatformVariant
- simulator
BinaryPath
@@ -45,23 +45,26 @@
DebugSymbolsPath
dSYMs
LibraryIdentifier
- xros-arm64
+ ios-arm64_x86_64-simulator
LibraryPath
TNSWidgets.framework
SupportedArchitectures
arm64
+ x86_64
SupportedPlatform
- xros
+ ios
+ SupportedPlatformVariant
+ simulator
BinaryPath
- TNSWidgets.framework/TNSWidgets
+ TNSWidgets.framework/Versions/A/TNSWidgets
DebugSymbolsPath
dSYMs
LibraryIdentifier
- xros-arm64_x86_64-simulator
+ ios-arm64_x86_64-maccatalyst
LibraryPath
TNSWidgets.framework
SupportedArchitectures
@@ -70,28 +73,25 @@
x86_64
SupportedPlatform
- xros
+ ios
SupportedPlatformVariant
- simulator
+ maccatalyst
BinaryPath
- TNSWidgets.framework/Versions/A/TNSWidgets
+ TNSWidgets.framework/TNSWidgets
DebugSymbolsPath
dSYMs
LibraryIdentifier
- ios-arm64_x86_64-maccatalyst
+ xros-arm64
LibraryPath
TNSWidgets.framework
SupportedArchitectures
arm64
- x86_64
SupportedPlatform
- ios
- SupportedPlatformVariant
- maccatalyst
+ xros
CFBundlePackageType
diff --git a/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64/TNSWidgets.framework/Headers/NSCCrypto.h b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64/TNSWidgets.framework/Headers/NSCCrypto.h
new file mode 100644
index 0000000000..c90f3a616f
--- /dev/null
+++ b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64/TNSWidgets.framework/Headers/NSCCrypto.h
@@ -0,0 +1,60 @@
+//
+// NSCCrypto.h
+// TNSWidgets
+//
+// Created by Osei Fortune on 03/07/2024.
+// Copyright © 2024 NativeScript. All rights reserved.
+//
+
+#import
+#import
+#import
+#import
+#ifndef NSCCrypto_h
+#define NSCCrypto_h
+
+typedef enum : NSUInteger {
+ kNSCCryptoRSASSA_PKCS1_v1_5,
+ kNSCCryptoRSA_PSS,
+ kNSCCryptoRSA_OAEP,
+} NSCCryptoRsaHashedKeyGenParamsName;
+
+
+typedef enum : NSUInteger {
+ kNSCCryptoHashSHA1,
+ kNSCCryptoHashSHA256,
+ kNSCCryptoHashSHA384,
+ kNSCCryptoHashSHA512
+} NSCCryptoHash;
+
+
+typedef enum : NSUInteger {
+ kNSCCryptoDecrypt,
+ kNSCCryptoEncrypt,
+ kNSCCryptoSign,
+ kNSCCryptoVerify,
+ kNSCCryptoDeriveKey,
+ kNSCCryptoDeriveBits,
+ kNSCCryptoWrapKey,
+ kNSCCryptoUnwrapKey,
+} NSCCryptoKeyUsages;
+
+
+
+@interface NSCCryptoKeyPair : NSObject
+@property (nonatomic, nonnull) SecKeyRef privateKey;
+@property (nonatomic, nonnull) SecKeyRef publicKey;
+-(nonnull id)initWithPrivateKey:(nonnull SecKeyRef)privKey andPublicKey:(nonnull SecKeyRef)pubKey;
+@end
+
+@interface NSCCrypto:NSObject
++ (nonnull NSString*)randomUUID;
++ (nullable NSString*)getRandomValues:(nonnull void*)buffer length:(unsigned int)length;
++ (nullable NSData*)digest:(nonnull void*)data length:(unsigned int)length mode:(int)mode;
++ (nullable NSData *)generateKeyHmac:(int)hash length:(int)length;
++ (nullable NSCCryptoKeyPair*)generateKeyRsa:(NSCCryptoRsaHashedKeyGenParamsName)name modulusLength:(unsigned int)modulusLength publicExponent:(nullable void*)exponent size:(unsigned int)size hash:(NSCCryptoHash)hash extractable:(BOOL)extractable keyUsages:(nonnull NSArray*) usages;
++ (nullable NSData *)encryptRsa:(BOOL)isPrivate key:(nonnull NSCCryptoKeyPair *)key hash:(NSCCryptoHash)hash data:(nonnull void*)data size:(unsigned int) size;
+
++ (nullable NSData *)decryptRsa:(BOOL)isPrivate key:(nonnull NSCCryptoKeyPair *)key hash:(NSCCryptoHash)hash data:(nonnull void*)data size:(unsigned int) size;
+@end
+#endif /* NSCCrypto_h */
diff --git a/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64/TNSWidgets.framework/Headers/NSFileHandle+Async.h b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64/TNSWidgets.framework/Headers/NSFileHandle+Async.h
index 6d8827a94b..d5a2c888d8 100644
--- a/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64/TNSWidgets.framework/Headers/NSFileHandle+Async.h
+++ b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64/TNSWidgets.framework/Headers/NSFileHandle+Async.h
@@ -3,7 +3,7 @@
// TNSWidgets
//
// Created by Osei Fortune on 03/05/2023.
-// Copyright © 2023 Telerik A D. All rights reserved.
+// Copyright © 2023 NativeScript. All rights reserved.
//
#import
diff --git a/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64/TNSWidgets.framework/Info.plist b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64/TNSWidgets.framework/Info.plist
index 3ed91fc76b..3e8856fb0f 100644
Binary files a/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64/TNSWidgets.framework/Info.plist and b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64/TNSWidgets.framework/Info.plist differ
diff --git a/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64/TNSWidgets.framework/TNSWidgets b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64/TNSWidgets.framework/TNSWidgets
index 4acfd83c95..1f778a403f 100755
Binary files a/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64/TNSWidgets.framework/TNSWidgets and b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64/TNSWidgets.framework/TNSWidgets differ
diff --git a/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64/dSYMs/TNSWidgets.framework.dSYM/Contents/Resources/DWARF/TNSWidgets b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64/dSYMs/TNSWidgets.framework.dSYM/Contents/Resources/DWARF/TNSWidgets
index 6f090db4e6..ff074963a7 100644
Binary files a/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64/dSYMs/TNSWidgets.framework.dSYM/Contents/Resources/DWARF/TNSWidgets and b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64/dSYMs/TNSWidgets.framework.dSYM/Contents/Resources/DWARF/TNSWidgets differ
diff --git a/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64/dSYMs/TNSWidgets.framework.dSYM/Contents/Resources/Relocations/aarch64/TNSWidgets.yml b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64/dSYMs/TNSWidgets.framework.dSYM/Contents/Resources/Relocations/aarch64/TNSWidgets.yml
index 76101209c0..f607baf884 100644
--- a/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64/dSYMs/TNSWidgets.framework.dSYM/Contents/Resources/Relocations/aarch64/TNSWidgets.yml
+++ b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64/dSYMs/TNSWidgets.framework.dSYM/Contents/Resources/Relocations/aarch64/TNSWidgets.yml
@@ -2,81 +2,81 @@
triple: 'arm64-apple-darwin'
binary-path: '/Users/nstudio/Documents/github/NativeScript/NativeScript/packages/ui-mobile-base/ios/TNSWidgets/build/Release-iphoneos/TNSWidgets.framework/TNSWidgets'
relocations:
- - { offsetInCU: 0x34, offset: 0x53147, size: 0x8, addend: 0x0, symName: _TNSWidgetsVersionString, symObjAddr: 0x0, symBinAddr: 0xAEA0, symSize: 0x0 }
- - { offsetInCU: 0x69, offset: 0x5317C, size: 0x8, addend: 0x0, symName: _TNSWidgetsVersionNumber, symObjAddr: 0x30, symBinAddr: 0xAED0, symSize: 0x0 }
- - { offsetInCU: 0x27, offset: 0x531B9, size: 0x8, addend: 0x0, symName: '-[TNSLabel textRectForBounds:limitedToNumberOfLines:]', symObjAddr: 0x0, symBinAddr: 0x8000, symSize: 0x1E0 }
- - { offsetInCU: 0xAB, offset: 0x5323D, size: 0x8, addend: 0x0, symName: '-[TNSLabel textRectForBounds:limitedToNumberOfLines:]', symObjAddr: 0x0, symBinAddr: 0x8000, symSize: 0x1E0 }
- - { offsetInCU: 0x182, offset: 0x53314, size: 0x8, addend: 0x0, symName: '-[TNSLabel drawTextInRect:]', symObjAddr: 0x1E0, symBinAddr: 0x81E0, symSize: 0xA8 }
- - { offsetInCU: 0x215, offset: 0x533A7, size: 0x8, addend: 0x0, symName: '-[TNSLabel padding]', symObjAddr: 0x288, symBinAddr: 0x8288, symSize: 0x18 }
- - { offsetInCU: 0x24A, offset: 0x533DC, size: 0x8, addend: 0x0, symName: '-[TNSLabel setPadding:]', symObjAddr: 0x2A0, symBinAddr: 0x82A0, symSize: 0x18 }
- - { offsetInCU: 0x289, offset: 0x5341B, size: 0x8, addend: 0x0, symName: '-[TNSLabel borderThickness]', symObjAddr: 0x2B8, symBinAddr: 0x82B8, symSize: 0x18 }
- - { offsetInCU: 0x2BE, offset: 0x53450, size: 0x8, addend: 0x0, symName: '-[TNSLabel setBorderThickness:]', symObjAddr: 0x2D0, symBinAddr: 0x82D0, symSize: 0x18 }
- - { offsetInCU: 0x27, offset: 0x534DA, size: 0x8, addend: 0x0, symName: ___tns_uptime, symObjAddr: 0x0, symBinAddr: 0x82E8, symSize: 0xF0 }
- - { offsetInCU: 0x59, offset: 0x5350C, size: 0x8, addend: 0x0, symName: ___tns_uptime, symObjAddr: 0x0, symBinAddr: 0x82E8, symSize: 0xF0 }
- - { offsetInCU: 0x186, offset: 0x53639, size: 0x8, addend: 0x0, symName: ___nslog, symObjAddr: 0xF0, symBinAddr: 0x83D8, symSize: 0x28 }
- - { offsetInCU: 0x27, offset: 0x5369F, size: 0x8, addend: 0x0, symName: '-[NSFileHandle(Async) appendData:completion:]', symObjAddr: 0x0, symBinAddr: 0x8400, symSize: 0xDC }
- - { offsetInCU: 0x4A, offset: 0x536C2, size: 0x8, addend: 0x0, symName: '-[NSFileHandle(Async) appendData:completion:]', symObjAddr: 0x0, symBinAddr: 0x8400, symSize: 0xDC }
- - { offsetInCU: 0x129, offset: 0x537A1, size: 0x8, addend: 0x0, symName: '___45-[NSFileHandle(Async) appendData:completion:]_block_invoke', symObjAddr: 0xDC, symBinAddr: 0x84DC, symSize: 0x28C }
- - { offsetInCU: 0x1DF, offset: 0x53857, size: 0x8, addend: 0x0, symName: '___45-[NSFileHandle(Async) appendData:completion:]_block_invoke_2', symObjAddr: 0x368, symBinAddr: 0x8768, symSize: 0x10 }
- - { offsetInCU: 0x236, offset: 0x538AE, size: 0x8, addend: 0x0, symName: ___copy_helper_block_e8_32s40b, symObjAddr: 0x378, symBinAddr: 0x8778, symSize: 0x34 }
- - { offsetInCU: 0x25F, offset: 0x538D7, size: 0x8, addend: 0x0, symName: ___destroy_helper_block_e8_32s40s, symObjAddr: 0x3AC, symBinAddr: 0x87AC, symSize: 0x28 }
- - { offsetInCU: 0x27E, offset: 0x538F6, size: 0x8, addend: 0x0, symName: ___copy_helper_block_e8_32s40s48b, symObjAddr: 0x3D4, symBinAddr: 0x87D4, symSize: 0x3C }
- - { offsetInCU: 0x2A7, offset: 0x5391F, size: 0x8, addend: 0x0, symName: ___destroy_helper_block_e8_32s40s48s, symObjAddr: 0x410, symBinAddr: 0x8810, symSize: 0x30 }
- - { offsetInCU: 0x2C6, offset: 0x5393E, size: 0x8, addend: 0x0, symName: '+[NSFileHandle(Async) fileHandleWith:data:completion:]', symObjAddr: 0x440, symBinAddr: 0x8840, symSize: 0x104 }
- - { offsetInCU: 0x367, offset: 0x539DF, size: 0x8, addend: 0x0, symName: '___54+[NSFileHandle(Async) fileHandleWith:data:completion:]_block_invoke', symObjAddr: 0x544, symBinAddr: 0x8944, symSize: 0x2D0 }
- - { offsetInCU: 0x429, offset: 0x53AA1, size: 0x8, addend: 0x0, symName: '___54+[NSFileHandle(Async) fileHandleWith:data:completion:]_block_invoke_2', symObjAddr: 0x814, symBinAddr: 0x8C14, symSize: 0x14 }
- - { offsetInCU: 0x27, offset: 0x53E41, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) initialize]', symObjAddr: 0x0, symBinAddr: 0x8C28, symSize: 0x30 }
- - { offsetInCU: 0x4F, offset: 0x53E69, size: 0x8, addend: 0x0, symName: _image_queue, symObjAddr: 0x3D88, symBinAddr: 0xCD00, symSize: 0x0 }
- - { offsetInCU: 0x68, offset: 0x53E82, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) initialize]', symObjAddr: 0x0, symBinAddr: 0x8C28, symSize: 0x30 }
- - { offsetInCU: 0xCE, offset: 0x53EE8, size: 0x8, addend: 0x0, symName: '-[UIImage(TNSBlocks) tns_forceDecode]', symObjAddr: 0x30, symBinAddr: 0x8C58, symSize: 0x94 }
- - { offsetInCU: 0x23B, offset: 0x54055, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) tns_safeDecodeImageNamed:completion:]', symObjAddr: 0xC4, symBinAddr: 0x8CEC, symSize: 0xB8 }
- - { offsetInCU: 0x2C7, offset: 0x540E1, size: 0x8, addend: 0x0, symName: '___58+[UIImage(TNSBlocks) tns_safeDecodeImageNamed:completion:]_block_invoke', symObjAddr: 0x17C, symBinAddr: 0x8DA4, symSize: 0xC8 }
- - { offsetInCU: 0x347, offset: 0x54161, size: 0x8, addend: 0x0, symName: '___58+[UIImage(TNSBlocks) tns_safeDecodeImageNamed:completion:]_block_invoke_2', symObjAddr: 0x244, symBinAddr: 0x8E6C, symSize: 0x10 }
- - { offsetInCU: 0x39E, offset: 0x541B8, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) tns_safeImageNamed:]', symObjAddr: 0x2B0, symBinAddr: 0x8E7C, symSize: 0x64 }
- - { offsetInCU: 0x3F1, offset: 0x5420B, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) tns_decodeImageWithData:completion:]', symObjAddr: 0x314, symBinAddr: 0x8EE0, symSize: 0xB8 }
- - { offsetInCU: 0x45D, offset: 0x54277, size: 0x8, addend: 0x0, symName: '___57+[UIImage(TNSBlocks) tns_decodeImageWithData:completion:]_block_invoke', symObjAddr: 0x3CC, symBinAddr: 0x8F98, symSize: 0xC8 }
- - { offsetInCU: 0x4DD, offset: 0x542F7, size: 0x8, addend: 0x0, symName: '___57+[UIImage(TNSBlocks) tns_decodeImageWithData:completion:]_block_invoke_2', symObjAddr: 0x494, symBinAddr: 0x9060, symSize: 0x10 }
- - { offsetInCU: 0x534, offset: 0x5434E, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) tns_decodeImageWidthContentsOfFile:completion:]', symObjAddr: 0x4A4, symBinAddr: 0x9070, symSize: 0xB8 }
- - { offsetInCU: 0x5A0, offset: 0x543BA, size: 0x8, addend: 0x0, symName: '___68+[UIImage(TNSBlocks) tns_decodeImageWidthContentsOfFile:completion:]_block_invoke', symObjAddr: 0x55C, symBinAddr: 0x9128, symSize: 0xC8 }
- - { offsetInCU: 0x620, offset: 0x5443A, size: 0x8, addend: 0x0, symName: '___68+[UIImage(TNSBlocks) tns_decodeImageWidthContentsOfFile:completion:]_block_invoke_2', symObjAddr: 0x624, symBinAddr: 0x91F0, symSize: 0x10 }
- - { offsetInCU: 0x27, offset: 0x54815, size: 0x8, addend: 0x0, symName: '+[NSObject(Swizzling) swizzleInstanceMethodWithOriginalSelector:fromClass:withSwizzlingSelector:]', symObjAddr: 0x0, symBinAddr: 0x9200, symSize: 0x70 }
- - { offsetInCU: 0x43, offset: 0x54831, size: 0x8, addend: 0x0, symName: '+[NSObject(Swizzling) swizzleInstanceMethodWithOriginalSelector:fromClass:withSwizzlingSelector:]', symObjAddr: 0x0, symBinAddr: 0x9200, symSize: 0x70 }
- - { offsetInCU: 0x139, offset: 0x54927, size: 0x8, addend: 0x0, symName: '+[NSObject(Swizzling) swizzleMethodWithOriginalSelector:originalMethod:fromClass:withSwizzlingSelector:swizzlingMethod:]', symObjAddr: 0x70, symBinAddr: 0x9270, symSize: 0x120 }
- - { offsetInCU: 0x27, offset: 0x54BDC, size: 0x8, addend: 0x0, symName: '+[NSString(Async) stringWithContentsOfFile:encoding:completion:]', symObjAddr: 0x0, symBinAddr: 0x9390, symSize: 0xDC }
- - { offsetInCU: 0x4A, offset: 0x54BFF, size: 0x8, addend: 0x0, symName: '+[NSString(Async) stringWithContentsOfFile:encoding:completion:]', symObjAddr: 0x0, symBinAddr: 0x9390, symSize: 0xDC }
- - { offsetInCU: 0x135, offset: 0x54CEA, size: 0x8, addend: 0x0, symName: '___64+[NSString(Async) stringWithContentsOfFile:encoding:completion:]_block_invoke', symObjAddr: 0xDC, symBinAddr: 0x946C, symSize: 0xEC }
- - { offsetInCU: 0x1D5, offset: 0x54D8A, size: 0x8, addend: 0x0, symName: '___64+[NSString(Async) stringWithContentsOfFile:encoding:completion:]_block_invoke_2', symObjAddr: 0x1C8, symBinAddr: 0x9558, symSize: 0x14 }
- - { offsetInCU: 0x23C, offset: 0x54DF1, size: 0x8, addend: 0x0, symName: '-[NSString(Async) writeToFile:atomically:encoding:completion:]', symObjAddr: 0x2A4, symBinAddr: 0x956C, symSize: 0xF0 }
- - { offsetInCU: 0x2ED, offset: 0x54EA2, size: 0x8, addend: 0x0, symName: '___62-[NSString(Async) writeToFile:atomically:encoding:completion:]_block_invoke', symObjAddr: 0x394, symBinAddr: 0x965C, symSize: 0xB8 }
- - { offsetInCU: 0x3A1, offset: 0x54F56, size: 0x8, addend: 0x0, symName: '___62-[NSString(Async) writeToFile:atomically:encoding:completion:]_block_invoke_2', symObjAddr: 0x44C, symBinAddr: 0x9714, symSize: 0x10 }
- - { offsetInCU: 0x27, offset: 0x552F6, size: 0x8, addend: 0x0, symName: '+[NSData(Async) dataWithContentsOfFile:completion:]', symObjAddr: 0x0, symBinAddr: 0x9724, symSize: 0xD4 }
- - { offsetInCU: 0x4A, offset: 0x55319, size: 0x8, addend: 0x0, symName: '+[NSData(Async) dataWithContentsOfFile:completion:]', symObjAddr: 0x0, symBinAddr: 0x9724, symSize: 0xD4 }
- - { offsetInCU: 0x180, offset: 0x5544F, size: 0x8, addend: 0x0, symName: '___51+[NSData(Async) dataWithContentsOfFile:completion:]_block_invoke', symObjAddr: 0xD4, symBinAddr: 0x97F8, symSize: 0xAC }
- - { offsetInCU: 0x200, offset: 0x554CF, size: 0x8, addend: 0x0, symName: '___51+[NSData(Async) dataWithContentsOfFile:completion:]_block_invoke_2', symObjAddr: 0x180, symBinAddr: 0x98A4, symSize: 0x10 }
- - { offsetInCU: 0x257, offset: 0x55526, size: 0x8, addend: 0x0, symName: '-[NSData(Async) writeToFile:atomically:completion:]', symObjAddr: 0x1EC, symBinAddr: 0x98B4, symSize: 0xEC }
- - { offsetInCU: 0x2F8, offset: 0x555C7, size: 0x8, addend: 0x0, symName: '___51-[NSData(Async) writeToFile:atomically:completion:]_block_invoke', symObjAddr: 0x2D8, symBinAddr: 0x99A0, symSize: 0x84 }
- - { offsetInCU: 0x37D, offset: 0x5564C, size: 0x8, addend: 0x0, symName: '___51-[NSData(Async) writeToFile:atomically:completion:]_block_invoke_2', symObjAddr: 0x35C, symBinAddr: 0x9A24, symSize: 0xC }
- - { offsetInCU: 0x3C4, offset: 0x55693, size: 0x8, addend: 0x0, symName: ___copy_helper_block_e8_32b, symObjAddr: 0x368, symBinAddr: 0x9A30, symSize: 0x10 }
- - { offsetInCU: 0x3ED, offset: 0x556BC, size: 0x8, addend: 0x0, symName: ___destroy_helper_block_e8_32s, symObjAddr: 0x378, symBinAddr: 0x9A40, symSize: 0x8 }
- - { offsetInCU: 0x27, offset: 0x559A2, size: 0x8, addend: 0x0, symName: '+[UIView(PropertyBag) load]', symObjAddr: 0x0, symBinAddr: 0x9A48, symSize: 0x4 }
- - { offsetInCU: 0x35, offset: 0x559B0, size: 0x8, addend: 0x0, symName: '+[UIView(PropertyBag) loadPropertyBag]', symObjAddr: 0x4, symBinAddr: 0x9A4C, symSize: 0x84 }
- - { offsetInCU: 0x5B, offset: 0x559D6, size: 0x8, addend: 0x0, symName: _loadPropertyBag.onceToken, symObjAddr: 0x2880, symBinAddr: 0xCD08, symSize: 0x0 }
- - { offsetInCU: 0xBF, offset: 0x55A3A, size: 0x8, addend: 0x0, symName: __propertyBagHolder, symObjAddr: 0x2888, symBinAddr: 0xCD40, symSize: 0x0 }
- - { offsetInCU: 0xE4, offset: 0x55A5F, size: 0x8, addend: 0x0, symName: '+[UIView(PropertyBag) load]', symObjAddr: 0x0, symBinAddr: 0x9A48, symSize: 0x4 }
- - { offsetInCU: 0x163, offset: 0x55ADE, size: 0x8, addend: 0x0, symName: '___38+[UIView(PropertyBag) loadPropertyBag]_block_invoke', symObjAddr: 0x88, symBinAddr: 0x9AD0, symSize: 0x4C }
- - { offsetInCU: 0x1FA, offset: 0x55B75, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) propertyValueForKey:]', symObjAddr: 0xD4, symBinAddr: 0x9B1C, symSize: 0x6C }
- - { offsetInCU: 0x241, offset: 0x55BBC, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) setPropertyValue:forKey:]', symObjAddr: 0x140, symBinAddr: 0x9B88, symSize: 0x74 }
- - { offsetInCU: 0x294, offset: 0x55C0F, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) propertyBag]', symObjAddr: 0x1B4, symBinAddr: 0x9BFC, symSize: 0xCC }
- - { offsetInCU: 0x2DB, offset: 0x55C56, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) setPropertyBag:]', symObjAddr: 0x280, symBinAddr: 0x9CC8, symSize: 0xA8 }
- - { offsetInCU: 0x31E, offset: 0x55C99, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) removePropertyBag]', symObjAddr: 0x328, symBinAddr: 0x9D70, symSize: 0x70 }
- - { offsetInCU: 0x351, offset: 0x55CCC, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) propertyBag_dealloc]', symObjAddr: 0x398, symBinAddr: 0x9DE0, symSize: 0x24 }
- - { offsetInCU: 0x27, offset: 0x55DF6, size: 0x8, addend: 0x0, symName: '+[UIView(PassThroughParent) load]', symObjAddr: 0x0, symBinAddr: 0x9E04, symSize: 0x4 }
- - { offsetInCU: 0x41, offset: 0x55E10, size: 0x8, addend: 0x0, symName: _TLKPassThroughParentKey, symObjAddr: 0x1F8, symBinAddr: 0xC2E0, symSize: 0x0 }
- - { offsetInCU: 0x55, offset: 0x55E24, size: 0x8, addend: 0x0, symName: '+[UIView(PassThroughParent) loadHitTest]', symObjAddr: 0x4, symBinAddr: 0x9E08, symSize: 0x84 }
- - { offsetInCU: 0x7B, offset: 0x55E4A, size: 0x8, addend: 0x0, symName: _loadHitTest.onceToken, symObjAddr: 0x23F0, symBinAddr: 0xCD10, symSize: 0x0 }
- - { offsetInCU: 0xE8, offset: 0x55EB7, size: 0x8, addend: 0x0, symName: '+[UIView(PassThroughParent) load]', symObjAddr: 0x0, symBinAddr: 0x9E04, symSize: 0x4 }
- - { offsetInCU: 0x168, offset: 0x55F37, size: 0x8, addend: 0x0, symName: '___40+[UIView(PassThroughParent) loadHitTest]_block_invoke', symObjAddr: 0x88, symBinAddr: 0x9E8C, symSize: 0x40 }
- - { offsetInCU: 0x1A7, offset: 0x55F76, size: 0x8, addend: 0x0, symName: '-[UIView(PassThroughParent) passThroughParent]', symObjAddr: 0xC8, symBinAddr: 0x9ECC, symSize: 0x54 }
- - { offsetInCU: 0x1EE, offset: 0x55FBD, size: 0x8, addend: 0x0, symName: '-[UIView(PassThroughParent) setPassThroughParent:]', symObjAddr: 0x11C, symBinAddr: 0x9F20, symSize: 0x4C }
- - { offsetInCU: 0x231, offset: 0x56000, size: 0x8, addend: 0x0, symName: '-[UIView(PassThroughParent) passThrough_hitTest:withEvent:]', symObjAddr: 0x168, symBinAddr: 0x9F6C, symSize: 0x50 }
+ - { offsetInCU: 0x34, offset: 0x53B1F, size: 0x8, addend: 0x0, symName: _TNSWidgetsVersionString, symObjAddr: 0x0, symBinAddr: 0xAEA0, symSize: 0x0 }
+ - { offsetInCU: 0x69, offset: 0x53B54, size: 0x8, addend: 0x0, symName: _TNSWidgetsVersionNumber, symObjAddr: 0x30, symBinAddr: 0xAED0, symSize: 0x0 }
+ - { offsetInCU: 0x27, offset: 0x53B91, size: 0x8, addend: 0x0, symName: '-[TNSLabel textRectForBounds:limitedToNumberOfLines:]', symObjAddr: 0x0, symBinAddr: 0x8000, symSize: 0x1E0 }
+ - { offsetInCU: 0xAB, offset: 0x53C15, size: 0x8, addend: 0x0, symName: '-[TNSLabel textRectForBounds:limitedToNumberOfLines:]', symObjAddr: 0x0, symBinAddr: 0x8000, symSize: 0x1E0 }
+ - { offsetInCU: 0x182, offset: 0x53CEC, size: 0x8, addend: 0x0, symName: '-[TNSLabel drawTextInRect:]', symObjAddr: 0x1E0, symBinAddr: 0x81E0, symSize: 0xA8 }
+ - { offsetInCU: 0x215, offset: 0x53D7F, size: 0x8, addend: 0x0, symName: '-[TNSLabel padding]', symObjAddr: 0x288, symBinAddr: 0x8288, symSize: 0x18 }
+ - { offsetInCU: 0x24A, offset: 0x53DB4, size: 0x8, addend: 0x0, symName: '-[TNSLabel setPadding:]', symObjAddr: 0x2A0, symBinAddr: 0x82A0, symSize: 0x18 }
+ - { offsetInCU: 0x289, offset: 0x53DF3, size: 0x8, addend: 0x0, symName: '-[TNSLabel borderThickness]', symObjAddr: 0x2B8, symBinAddr: 0x82B8, symSize: 0x18 }
+ - { offsetInCU: 0x2BE, offset: 0x53E28, size: 0x8, addend: 0x0, symName: '-[TNSLabel setBorderThickness:]', symObjAddr: 0x2D0, symBinAddr: 0x82D0, symSize: 0x18 }
+ - { offsetInCU: 0x27, offset: 0x53EB2, size: 0x8, addend: 0x0, symName: ___tns_uptime, symObjAddr: 0x0, symBinAddr: 0x82E8, symSize: 0xF0 }
+ - { offsetInCU: 0x59, offset: 0x53EE4, size: 0x8, addend: 0x0, symName: ___tns_uptime, symObjAddr: 0x0, symBinAddr: 0x82E8, symSize: 0xF0 }
+ - { offsetInCU: 0x186, offset: 0x54011, size: 0x8, addend: 0x0, symName: ___nslog, symObjAddr: 0xF0, symBinAddr: 0x83D8, symSize: 0x28 }
+ - { offsetInCU: 0x27, offset: 0x54077, size: 0x8, addend: 0x0, symName: '-[NSFileHandle(Async) appendData:completion:]', symObjAddr: 0x0, symBinAddr: 0x8400, symSize: 0xDC }
+ - { offsetInCU: 0x4A, offset: 0x5409A, size: 0x8, addend: 0x0, symName: '-[NSFileHandle(Async) appendData:completion:]', symObjAddr: 0x0, symBinAddr: 0x8400, symSize: 0xDC }
+ - { offsetInCU: 0x129, offset: 0x54179, size: 0x8, addend: 0x0, symName: '___45-[NSFileHandle(Async) appendData:completion:]_block_invoke', symObjAddr: 0xDC, symBinAddr: 0x84DC, symSize: 0x28C }
+ - { offsetInCU: 0x1DF, offset: 0x5422F, size: 0x8, addend: 0x0, symName: '___45-[NSFileHandle(Async) appendData:completion:]_block_invoke_2', symObjAddr: 0x368, symBinAddr: 0x8768, symSize: 0x10 }
+ - { offsetInCU: 0x236, offset: 0x54286, size: 0x8, addend: 0x0, symName: ___copy_helper_block_e8_32s40b, symObjAddr: 0x378, symBinAddr: 0x8778, symSize: 0x34 }
+ - { offsetInCU: 0x25F, offset: 0x542AF, size: 0x8, addend: 0x0, symName: ___destroy_helper_block_e8_32s40s, symObjAddr: 0x3AC, symBinAddr: 0x87AC, symSize: 0x28 }
+ - { offsetInCU: 0x27E, offset: 0x542CE, size: 0x8, addend: 0x0, symName: ___copy_helper_block_e8_32s40s48b, symObjAddr: 0x3D4, symBinAddr: 0x87D4, symSize: 0x3C }
+ - { offsetInCU: 0x2A7, offset: 0x542F7, size: 0x8, addend: 0x0, symName: ___destroy_helper_block_e8_32s40s48s, symObjAddr: 0x410, symBinAddr: 0x8810, symSize: 0x30 }
+ - { offsetInCU: 0x2C6, offset: 0x54316, size: 0x8, addend: 0x0, symName: '+[NSFileHandle(Async) fileHandleWith:data:completion:]', symObjAddr: 0x440, symBinAddr: 0x8840, symSize: 0x104 }
+ - { offsetInCU: 0x367, offset: 0x543B7, size: 0x8, addend: 0x0, symName: '___54+[NSFileHandle(Async) fileHandleWith:data:completion:]_block_invoke', symObjAddr: 0x544, symBinAddr: 0x8944, symSize: 0x2D0 }
+ - { offsetInCU: 0x429, offset: 0x54479, size: 0x8, addend: 0x0, symName: '___54+[NSFileHandle(Async) fileHandleWith:data:completion:]_block_invoke_2', symObjAddr: 0x814, symBinAddr: 0x8C14, symSize: 0x14 }
+ - { offsetInCU: 0x27, offset: 0x54819, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) initialize]', symObjAddr: 0x0, symBinAddr: 0x8C28, symSize: 0x30 }
+ - { offsetInCU: 0x4F, offset: 0x54841, size: 0x8, addend: 0x0, symName: _image_queue, symObjAddr: 0x3D88, symBinAddr: 0xCD00, symSize: 0x0 }
+ - { offsetInCU: 0x68, offset: 0x5485A, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) initialize]', symObjAddr: 0x0, symBinAddr: 0x8C28, symSize: 0x30 }
+ - { offsetInCU: 0xCE, offset: 0x548C0, size: 0x8, addend: 0x0, symName: '-[UIImage(TNSBlocks) tns_forceDecode]', symObjAddr: 0x30, symBinAddr: 0x8C58, symSize: 0x94 }
+ - { offsetInCU: 0x23B, offset: 0x54A2D, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) tns_safeDecodeImageNamed:completion:]', symObjAddr: 0xC4, symBinAddr: 0x8CEC, symSize: 0xB8 }
+ - { offsetInCU: 0x2C7, offset: 0x54AB9, size: 0x8, addend: 0x0, symName: '___58+[UIImage(TNSBlocks) tns_safeDecodeImageNamed:completion:]_block_invoke', symObjAddr: 0x17C, symBinAddr: 0x8DA4, symSize: 0xC8 }
+ - { offsetInCU: 0x347, offset: 0x54B39, size: 0x8, addend: 0x0, symName: '___58+[UIImage(TNSBlocks) tns_safeDecodeImageNamed:completion:]_block_invoke_2', symObjAddr: 0x244, symBinAddr: 0x8E6C, symSize: 0x10 }
+ - { offsetInCU: 0x39E, offset: 0x54B90, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) tns_safeImageNamed:]', symObjAddr: 0x2B0, symBinAddr: 0x8E7C, symSize: 0x64 }
+ - { offsetInCU: 0x3F1, offset: 0x54BE3, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) tns_decodeImageWithData:completion:]', symObjAddr: 0x314, symBinAddr: 0x8EE0, symSize: 0xB8 }
+ - { offsetInCU: 0x45D, offset: 0x54C4F, size: 0x8, addend: 0x0, symName: '___57+[UIImage(TNSBlocks) tns_decodeImageWithData:completion:]_block_invoke', symObjAddr: 0x3CC, symBinAddr: 0x8F98, symSize: 0xC8 }
+ - { offsetInCU: 0x4DD, offset: 0x54CCF, size: 0x8, addend: 0x0, symName: '___57+[UIImage(TNSBlocks) tns_decodeImageWithData:completion:]_block_invoke_2', symObjAddr: 0x494, symBinAddr: 0x9060, symSize: 0x10 }
+ - { offsetInCU: 0x534, offset: 0x54D26, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) tns_decodeImageWidthContentsOfFile:completion:]', symObjAddr: 0x4A4, symBinAddr: 0x9070, symSize: 0xB8 }
+ - { offsetInCU: 0x5A0, offset: 0x54D92, size: 0x8, addend: 0x0, symName: '___68+[UIImage(TNSBlocks) tns_decodeImageWidthContentsOfFile:completion:]_block_invoke', symObjAddr: 0x55C, symBinAddr: 0x9128, symSize: 0xC8 }
+ - { offsetInCU: 0x620, offset: 0x54E12, size: 0x8, addend: 0x0, symName: '___68+[UIImage(TNSBlocks) tns_decodeImageWidthContentsOfFile:completion:]_block_invoke_2', symObjAddr: 0x624, symBinAddr: 0x91F0, symSize: 0x10 }
+ - { offsetInCU: 0x27, offset: 0x551ED, size: 0x8, addend: 0x0, symName: '+[NSObject(Swizzling) swizzleInstanceMethodWithOriginalSelector:fromClass:withSwizzlingSelector:]', symObjAddr: 0x0, symBinAddr: 0x9200, symSize: 0x70 }
+ - { offsetInCU: 0x43, offset: 0x55209, size: 0x8, addend: 0x0, symName: '+[NSObject(Swizzling) swizzleInstanceMethodWithOriginalSelector:fromClass:withSwizzlingSelector:]', symObjAddr: 0x0, symBinAddr: 0x9200, symSize: 0x70 }
+ - { offsetInCU: 0x139, offset: 0x552FF, size: 0x8, addend: 0x0, symName: '+[NSObject(Swizzling) swizzleMethodWithOriginalSelector:originalMethod:fromClass:withSwizzlingSelector:swizzlingMethod:]', symObjAddr: 0x70, symBinAddr: 0x9270, symSize: 0x120 }
+ - { offsetInCU: 0x27, offset: 0x555B4, size: 0x8, addend: 0x0, symName: '+[NSString(Async) stringWithContentsOfFile:encoding:completion:]', symObjAddr: 0x0, symBinAddr: 0x9390, symSize: 0xDC }
+ - { offsetInCU: 0x4A, offset: 0x555D7, size: 0x8, addend: 0x0, symName: '+[NSString(Async) stringWithContentsOfFile:encoding:completion:]', symObjAddr: 0x0, symBinAddr: 0x9390, symSize: 0xDC }
+ - { offsetInCU: 0x135, offset: 0x556C2, size: 0x8, addend: 0x0, symName: '___64+[NSString(Async) stringWithContentsOfFile:encoding:completion:]_block_invoke', symObjAddr: 0xDC, symBinAddr: 0x946C, symSize: 0xEC }
+ - { offsetInCU: 0x1D5, offset: 0x55762, size: 0x8, addend: 0x0, symName: '___64+[NSString(Async) stringWithContentsOfFile:encoding:completion:]_block_invoke_2', symObjAddr: 0x1C8, symBinAddr: 0x9558, symSize: 0x14 }
+ - { offsetInCU: 0x23C, offset: 0x557C9, size: 0x8, addend: 0x0, symName: '-[NSString(Async) writeToFile:atomically:encoding:completion:]', symObjAddr: 0x2A4, symBinAddr: 0x956C, symSize: 0xF0 }
+ - { offsetInCU: 0x2ED, offset: 0x5587A, size: 0x8, addend: 0x0, symName: '___62-[NSString(Async) writeToFile:atomically:encoding:completion:]_block_invoke', symObjAddr: 0x394, symBinAddr: 0x965C, symSize: 0xB8 }
+ - { offsetInCU: 0x3A1, offset: 0x5592E, size: 0x8, addend: 0x0, symName: '___62-[NSString(Async) writeToFile:atomically:encoding:completion:]_block_invoke_2', symObjAddr: 0x44C, symBinAddr: 0x9714, symSize: 0x10 }
+ - { offsetInCU: 0x27, offset: 0x55CCE, size: 0x8, addend: 0x0, symName: '+[NSData(Async) dataWithContentsOfFile:completion:]', symObjAddr: 0x0, symBinAddr: 0x9724, symSize: 0xD4 }
+ - { offsetInCU: 0x4A, offset: 0x55CF1, size: 0x8, addend: 0x0, symName: '+[NSData(Async) dataWithContentsOfFile:completion:]', symObjAddr: 0x0, symBinAddr: 0x9724, symSize: 0xD4 }
+ - { offsetInCU: 0x180, offset: 0x55E27, size: 0x8, addend: 0x0, symName: '___51+[NSData(Async) dataWithContentsOfFile:completion:]_block_invoke', symObjAddr: 0xD4, symBinAddr: 0x97F8, symSize: 0xAC }
+ - { offsetInCU: 0x200, offset: 0x55EA7, size: 0x8, addend: 0x0, symName: '___51+[NSData(Async) dataWithContentsOfFile:completion:]_block_invoke_2', symObjAddr: 0x180, symBinAddr: 0x98A4, symSize: 0x10 }
+ - { offsetInCU: 0x257, offset: 0x55EFE, size: 0x8, addend: 0x0, symName: '-[NSData(Async) writeToFile:atomically:completion:]', symObjAddr: 0x1EC, symBinAddr: 0x98B4, symSize: 0xEC }
+ - { offsetInCU: 0x2F8, offset: 0x55F9F, size: 0x8, addend: 0x0, symName: '___51-[NSData(Async) writeToFile:atomically:completion:]_block_invoke', symObjAddr: 0x2D8, symBinAddr: 0x99A0, symSize: 0x84 }
+ - { offsetInCU: 0x37D, offset: 0x56024, size: 0x8, addend: 0x0, symName: '___51-[NSData(Async) writeToFile:atomically:completion:]_block_invoke_2', symObjAddr: 0x35C, symBinAddr: 0x9A24, symSize: 0xC }
+ - { offsetInCU: 0x3C4, offset: 0x5606B, size: 0x8, addend: 0x0, symName: ___copy_helper_block_e8_32b, symObjAddr: 0x368, symBinAddr: 0x9A30, symSize: 0x10 }
+ - { offsetInCU: 0x3ED, offset: 0x56094, size: 0x8, addend: 0x0, symName: ___destroy_helper_block_e8_32s, symObjAddr: 0x378, symBinAddr: 0x9A40, symSize: 0x8 }
+ - { offsetInCU: 0x27, offset: 0x5637A, size: 0x8, addend: 0x0, symName: '+[UIView(PropertyBag) load]', symObjAddr: 0x0, symBinAddr: 0x9A48, symSize: 0x4 }
+ - { offsetInCU: 0x35, offset: 0x56388, size: 0x8, addend: 0x0, symName: '+[UIView(PropertyBag) loadPropertyBag]', symObjAddr: 0x4, symBinAddr: 0x9A4C, symSize: 0x84 }
+ - { offsetInCU: 0x5B, offset: 0x563AE, size: 0x8, addend: 0x0, symName: _loadPropertyBag.onceToken, symObjAddr: 0x2880, symBinAddr: 0xCD08, symSize: 0x0 }
+ - { offsetInCU: 0xBF, offset: 0x56412, size: 0x8, addend: 0x0, symName: __propertyBagHolder, symObjAddr: 0x2888, symBinAddr: 0xCD40, symSize: 0x0 }
+ - { offsetInCU: 0xE4, offset: 0x56437, size: 0x8, addend: 0x0, symName: '+[UIView(PropertyBag) load]', symObjAddr: 0x0, symBinAddr: 0x9A48, symSize: 0x4 }
+ - { offsetInCU: 0x163, offset: 0x564B6, size: 0x8, addend: 0x0, symName: '___38+[UIView(PropertyBag) loadPropertyBag]_block_invoke', symObjAddr: 0x88, symBinAddr: 0x9AD0, symSize: 0x4C }
+ - { offsetInCU: 0x1FA, offset: 0x5654D, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) propertyValueForKey:]', symObjAddr: 0xD4, symBinAddr: 0x9B1C, symSize: 0x6C }
+ - { offsetInCU: 0x241, offset: 0x56594, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) setPropertyValue:forKey:]', symObjAddr: 0x140, symBinAddr: 0x9B88, symSize: 0x74 }
+ - { offsetInCU: 0x294, offset: 0x565E7, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) propertyBag]', symObjAddr: 0x1B4, symBinAddr: 0x9BFC, symSize: 0xCC }
+ - { offsetInCU: 0x2DB, offset: 0x5662E, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) setPropertyBag:]', symObjAddr: 0x280, symBinAddr: 0x9CC8, symSize: 0xA8 }
+ - { offsetInCU: 0x31E, offset: 0x56671, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) removePropertyBag]', symObjAddr: 0x328, symBinAddr: 0x9D70, symSize: 0x70 }
+ - { offsetInCU: 0x351, offset: 0x566A4, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) propertyBag_dealloc]', symObjAddr: 0x398, symBinAddr: 0x9DE0, symSize: 0x24 }
+ - { offsetInCU: 0x27, offset: 0x567CE, size: 0x8, addend: 0x0, symName: '+[UIView(PassThroughParent) load]', symObjAddr: 0x0, symBinAddr: 0x9E04, symSize: 0x4 }
+ - { offsetInCU: 0x41, offset: 0x567E8, size: 0x8, addend: 0x0, symName: _TLKPassThroughParentKey, symObjAddr: 0x1F8, symBinAddr: 0xC2E0, symSize: 0x0 }
+ - { offsetInCU: 0x55, offset: 0x567FC, size: 0x8, addend: 0x0, symName: '+[UIView(PassThroughParent) loadHitTest]', symObjAddr: 0x4, symBinAddr: 0x9E08, symSize: 0x84 }
+ - { offsetInCU: 0x7B, offset: 0x56822, size: 0x8, addend: 0x0, symName: _loadHitTest.onceToken, symObjAddr: 0x23F0, symBinAddr: 0xCD10, symSize: 0x0 }
+ - { offsetInCU: 0xE8, offset: 0x5688F, size: 0x8, addend: 0x0, symName: '+[UIView(PassThroughParent) load]', symObjAddr: 0x0, symBinAddr: 0x9E04, symSize: 0x4 }
+ - { offsetInCU: 0x168, offset: 0x5690F, size: 0x8, addend: 0x0, symName: '___40+[UIView(PassThroughParent) loadHitTest]_block_invoke', symObjAddr: 0x88, symBinAddr: 0x9E8C, symSize: 0x40 }
+ - { offsetInCU: 0x1A7, offset: 0x5694E, size: 0x8, addend: 0x0, symName: '-[UIView(PassThroughParent) passThroughParent]', symObjAddr: 0xC8, symBinAddr: 0x9ECC, symSize: 0x54 }
+ - { offsetInCU: 0x1EE, offset: 0x56995, size: 0x8, addend: 0x0, symName: '-[UIView(PassThroughParent) setPassThroughParent:]', symObjAddr: 0x11C, symBinAddr: 0x9F20, symSize: 0x4C }
+ - { offsetInCU: 0x231, offset: 0x569D8, size: 0x8, addend: 0x0, symName: '-[UIView(PassThroughParent) passThrough_hitTest:withEvent:]', symObjAddr: 0x168, symBinAddr: 0x9F6C, symSize: 0x50 }
...
diff --git a/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-maccatalyst/TNSWidgets.framework/Versions/A/Headers/NSCCrypto.h b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-maccatalyst/TNSWidgets.framework/Versions/A/Headers/NSCCrypto.h
new file mode 100644
index 0000000000..c90f3a616f
--- /dev/null
+++ b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-maccatalyst/TNSWidgets.framework/Versions/A/Headers/NSCCrypto.h
@@ -0,0 +1,60 @@
+//
+// NSCCrypto.h
+// TNSWidgets
+//
+// Created by Osei Fortune on 03/07/2024.
+// Copyright © 2024 NativeScript. All rights reserved.
+//
+
+#import
+#import
+#import
+#import
+#ifndef NSCCrypto_h
+#define NSCCrypto_h
+
+typedef enum : NSUInteger {
+ kNSCCryptoRSASSA_PKCS1_v1_5,
+ kNSCCryptoRSA_PSS,
+ kNSCCryptoRSA_OAEP,
+} NSCCryptoRsaHashedKeyGenParamsName;
+
+
+typedef enum : NSUInteger {
+ kNSCCryptoHashSHA1,
+ kNSCCryptoHashSHA256,
+ kNSCCryptoHashSHA384,
+ kNSCCryptoHashSHA512
+} NSCCryptoHash;
+
+
+typedef enum : NSUInteger {
+ kNSCCryptoDecrypt,
+ kNSCCryptoEncrypt,
+ kNSCCryptoSign,
+ kNSCCryptoVerify,
+ kNSCCryptoDeriveKey,
+ kNSCCryptoDeriveBits,
+ kNSCCryptoWrapKey,
+ kNSCCryptoUnwrapKey,
+} NSCCryptoKeyUsages;
+
+
+
+@interface NSCCryptoKeyPair : NSObject
+@property (nonatomic, nonnull) SecKeyRef privateKey;
+@property (nonatomic, nonnull) SecKeyRef publicKey;
+-(nonnull id)initWithPrivateKey:(nonnull SecKeyRef)privKey andPublicKey:(nonnull SecKeyRef)pubKey;
+@end
+
+@interface NSCCrypto:NSObject
++ (nonnull NSString*)randomUUID;
++ (nullable NSString*)getRandomValues:(nonnull void*)buffer length:(unsigned int)length;
++ (nullable NSData*)digest:(nonnull void*)data length:(unsigned int)length mode:(int)mode;
++ (nullable NSData *)generateKeyHmac:(int)hash length:(int)length;
++ (nullable NSCCryptoKeyPair*)generateKeyRsa:(NSCCryptoRsaHashedKeyGenParamsName)name modulusLength:(unsigned int)modulusLength publicExponent:(nullable void*)exponent size:(unsigned int)size hash:(NSCCryptoHash)hash extractable:(BOOL)extractable keyUsages:(nonnull NSArray*) usages;
++ (nullable NSData *)encryptRsa:(BOOL)isPrivate key:(nonnull NSCCryptoKeyPair *)key hash:(NSCCryptoHash)hash data:(nonnull void*)data size:(unsigned int) size;
+
++ (nullable NSData *)decryptRsa:(BOOL)isPrivate key:(nonnull NSCCryptoKeyPair *)key hash:(NSCCryptoHash)hash data:(nonnull void*)data size:(unsigned int) size;
+@end
+#endif /* NSCCrypto_h */
diff --git a/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-maccatalyst/TNSWidgets.framework/Versions/A/Headers/NSFileHandle+Async.h b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-maccatalyst/TNSWidgets.framework/Versions/A/Headers/NSFileHandle+Async.h
index 6d8827a94b..d5a2c888d8 100644
--- a/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-maccatalyst/TNSWidgets.framework/Versions/A/Headers/NSFileHandle+Async.h
+++ b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-maccatalyst/TNSWidgets.framework/Versions/A/Headers/NSFileHandle+Async.h
@@ -3,7 +3,7 @@
// TNSWidgets
//
// Created by Osei Fortune on 03/05/2023.
-// Copyright © 2023 Telerik A D. All rights reserved.
+// Copyright © 2023 NativeScript. All rights reserved.
//
#import
diff --git a/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-maccatalyst/TNSWidgets.framework/Versions/A/Resources/Info.plist b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-maccatalyst/TNSWidgets.framework/Versions/A/Resources/Info.plist
index dc4ce55652..cb0e41074b 100644
--- a/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-maccatalyst/TNSWidgets.framework/Versions/A/Resources/Info.plist
+++ b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-maccatalyst/TNSWidgets.framework/Versions/A/Resources/Info.plist
@@ -3,7 +3,7 @@
BuildMachineOSBuild
- 23C71
+ 23F79
CFBundleDevelopmentRegion
en
CFBundleExecutable
@@ -33,15 +33,15 @@
DTPlatformName
macosx
DTPlatformVersion
- 14.2
+ 14.5
DTSDKBuild
- 23C53
+ 23F73
DTSDKName
- macosx14.2
+ macosx14.5
DTXcode
- 1520
+ 1540
DTXcodeBuild
- 15C500b
+ 15F31d
LSMinimumSystemVersion
10.15
UIDeviceFamily
diff --git a/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-maccatalyst/TNSWidgets.framework/Versions/A/TNSWidgets b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-maccatalyst/TNSWidgets.framework/Versions/A/TNSWidgets
index 7f863f2787..23aba5fa13 100755
Binary files a/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-maccatalyst/TNSWidgets.framework/Versions/A/TNSWidgets and b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-maccatalyst/TNSWidgets.framework/Versions/A/TNSWidgets differ
diff --git a/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-maccatalyst/dSYMs/TNSWidgets.framework.dSYM/Contents/Resources/DWARF/TNSWidgets b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-maccatalyst/dSYMs/TNSWidgets.framework.dSYM/Contents/Resources/DWARF/TNSWidgets
index f1df2abdcb..ee253f12c7 100644
Binary files a/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-maccatalyst/dSYMs/TNSWidgets.framework.dSYM/Contents/Resources/DWARF/TNSWidgets and b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-maccatalyst/dSYMs/TNSWidgets.framework.dSYM/Contents/Resources/DWARF/TNSWidgets differ
diff --git a/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-maccatalyst/dSYMs/TNSWidgets.framework.dSYM/Contents/Resources/Relocations/aarch64/TNSWidgets.yml b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-maccatalyst/dSYMs/TNSWidgets.framework.dSYM/Contents/Resources/Relocations/aarch64/TNSWidgets.yml
index 1e38f95a91..e7aea3e3c5 100644
--- a/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-maccatalyst/dSYMs/TNSWidgets.framework.dSYM/Contents/Resources/Relocations/aarch64/TNSWidgets.yml
+++ b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-maccatalyst/dSYMs/TNSWidgets.framework.dSYM/Contents/Resources/Relocations/aarch64/TNSWidgets.yml
@@ -2,81 +2,81 @@
triple: 'arm64-apple-darwin'
binary-path: '/Users/nstudio/Documents/github/NativeScript/NativeScript/packages/ui-mobile-base/ios/TNSWidgets/build/Release-maccatalyst/TNSWidgets.framework/Versions/A/TNSWidgets'
relocations:
- - { offsetInCU: 0x34, offset: 0xD0F64, size: 0x8, addend: 0x0, symName: _TNSWidgetsVersionString, symObjAddr: 0x0, symBinAddr: 0x64A8, symSize: 0x0 }
- - { offsetInCU: 0x69, offset: 0xD0F99, size: 0x8, addend: 0x0, symName: _TNSWidgetsVersionNumber, symObjAddr: 0x30, symBinAddr: 0x64D8, symSize: 0x0 }
- - { offsetInCU: 0x27, offset: 0xD0FD6, size: 0x8, addend: 0x0, symName: '-[TNSLabel textRectForBounds:limitedToNumberOfLines:]', symObjAddr: 0x0, symBinAddr: 0x4000, symSize: 0x1E0 }
- - { offsetInCU: 0xAC, offset: 0xD105B, size: 0x8, addend: 0x0, symName: '-[TNSLabel textRectForBounds:limitedToNumberOfLines:]', symObjAddr: 0x0, symBinAddr: 0x4000, symSize: 0x1E0 }
- - { offsetInCU: 0x183, offset: 0xD1132, size: 0x8, addend: 0x0, symName: '-[TNSLabel drawTextInRect:]', symObjAddr: 0x1E0, symBinAddr: 0x41E0, symSize: 0xA8 }
- - { offsetInCU: 0x216, offset: 0xD11C5, size: 0x8, addend: 0x0, symName: '-[TNSLabel padding]', symObjAddr: 0x288, symBinAddr: 0x4288, symSize: 0x18 }
- - { offsetInCU: 0x24B, offset: 0xD11FA, size: 0x8, addend: 0x0, symName: '-[TNSLabel setPadding:]', symObjAddr: 0x2A0, symBinAddr: 0x42A0, symSize: 0x18 }
- - { offsetInCU: 0x28A, offset: 0xD1239, size: 0x8, addend: 0x0, symName: '-[TNSLabel borderThickness]', symObjAddr: 0x2B8, symBinAddr: 0x42B8, symSize: 0x18 }
- - { offsetInCU: 0x2BF, offset: 0xD126E, size: 0x8, addend: 0x0, symName: '-[TNSLabel setBorderThickness:]', symObjAddr: 0x2D0, symBinAddr: 0x42D0, symSize: 0x18 }
- - { offsetInCU: 0x27, offset: 0xD12F8, size: 0x8, addend: 0x0, symName: ___tns_uptime, symObjAddr: 0x0, symBinAddr: 0x42E8, symSize: 0xF0 }
- - { offsetInCU: 0x59, offset: 0xD132A, size: 0x8, addend: 0x0, symName: ___tns_uptime, symObjAddr: 0x0, symBinAddr: 0x42E8, symSize: 0xF0 }
- - { offsetInCU: 0x186, offset: 0xD1457, size: 0x8, addend: 0x0, symName: ___nslog, symObjAddr: 0xF0, symBinAddr: 0x43D8, symSize: 0x28 }
- - { offsetInCU: 0x27, offset: 0xD14BD, size: 0x8, addend: 0x0, symName: '-[NSFileHandle(Async) appendData:completion:]', symObjAddr: 0x0, symBinAddr: 0x4400, symSize: 0xDC }
- - { offsetInCU: 0x4A, offset: 0xD14E0, size: 0x8, addend: 0x0, symName: '-[NSFileHandle(Async) appendData:completion:]', symObjAddr: 0x0, symBinAddr: 0x4400, symSize: 0xDC }
- - { offsetInCU: 0x129, offset: 0xD15BF, size: 0x8, addend: 0x0, symName: '___45-[NSFileHandle(Async) appendData:completion:]_block_invoke', symObjAddr: 0xDC, symBinAddr: 0x44DC, symSize: 0xE4 }
- - { offsetInCU: 0x1BD, offset: 0xD1653, size: 0x8, addend: 0x0, symName: '___45-[NSFileHandle(Async) appendData:completion:]_block_invoke_2', symObjAddr: 0x1C0, symBinAddr: 0x45C0, symSize: 0x10 }
- - { offsetInCU: 0x214, offset: 0xD16AA, size: 0x8, addend: 0x0, symName: ___copy_helper_block_e8_32s40b, symObjAddr: 0x1D0, symBinAddr: 0x45D0, symSize: 0x34 }
- - { offsetInCU: 0x23D, offset: 0xD16D3, size: 0x8, addend: 0x0, symName: ___destroy_helper_block_e8_32s40s, symObjAddr: 0x204, symBinAddr: 0x4604, symSize: 0x28 }
- - { offsetInCU: 0x25C, offset: 0xD16F2, size: 0x8, addend: 0x0, symName: ___copy_helper_block_e8_32s40s48b, symObjAddr: 0x22C, symBinAddr: 0x462C, symSize: 0x3C }
- - { offsetInCU: 0x285, offset: 0xD171B, size: 0x8, addend: 0x0, symName: ___destroy_helper_block_e8_32s40s48s, symObjAddr: 0x268, symBinAddr: 0x4668, symSize: 0x30 }
- - { offsetInCU: 0x2A4, offset: 0xD173A, size: 0x8, addend: 0x0, symName: '+[NSFileHandle(Async) fileHandleWith:data:completion:]', symObjAddr: 0x298, symBinAddr: 0x4698, symSize: 0x104 }
- - { offsetInCU: 0x345, offset: 0xD17DB, size: 0x8, addend: 0x0, symName: '___54+[NSFileHandle(Async) fileHandleWith:data:completion:]_block_invoke', symObjAddr: 0x39C, symBinAddr: 0x479C, symSize: 0x11C }
- - { offsetInCU: 0x3E5, offset: 0xD187B, size: 0x8, addend: 0x0, symName: '___54+[NSFileHandle(Async) fileHandleWith:data:completion:]_block_invoke_2', symObjAddr: 0x4B8, symBinAddr: 0x48B8, symSize: 0x14 }
- - { offsetInCU: 0x27, offset: 0xD1C31, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) initialize]', symObjAddr: 0x0, symBinAddr: 0x48CC, symSize: 0x30 }
- - { offsetInCU: 0x4F, offset: 0xD1C59, size: 0x8, addend: 0x0, symName: _image_queue, symObjAddr: 0x3D68, symBinAddr: 0xC520, symSize: 0x0 }
- - { offsetInCU: 0x68, offset: 0xD1C72, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) initialize]', symObjAddr: 0x0, symBinAddr: 0x48CC, symSize: 0x30 }
- - { offsetInCU: 0xCE, offset: 0xD1CD8, size: 0x8, addend: 0x0, symName: '-[UIImage(TNSBlocks) tns_forceDecode]', symObjAddr: 0x30, symBinAddr: 0x48FC, symSize: 0x94 }
- - { offsetInCU: 0x23B, offset: 0xD1E45, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) tns_safeDecodeImageNamed:completion:]', symObjAddr: 0xC4, symBinAddr: 0x4990, symSize: 0xB8 }
- - { offsetInCU: 0x2C7, offset: 0xD1ED1, size: 0x8, addend: 0x0, symName: '___58+[UIImage(TNSBlocks) tns_safeDecodeImageNamed:completion:]_block_invoke', symObjAddr: 0x17C, symBinAddr: 0x4A48, symSize: 0xC8 }
- - { offsetInCU: 0x347, offset: 0xD1F51, size: 0x8, addend: 0x0, symName: '___58+[UIImage(TNSBlocks) tns_safeDecodeImageNamed:completion:]_block_invoke_2', symObjAddr: 0x244, symBinAddr: 0x4B10, symSize: 0x10 }
- - { offsetInCU: 0x39E, offset: 0xD1FA8, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) tns_safeImageNamed:]', symObjAddr: 0x2B0, symBinAddr: 0x4B20, symSize: 0x64 }
- - { offsetInCU: 0x3F1, offset: 0xD1FFB, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) tns_decodeImageWithData:completion:]', symObjAddr: 0x314, symBinAddr: 0x4B84, symSize: 0xB8 }
- - { offsetInCU: 0x45D, offset: 0xD2067, size: 0x8, addend: 0x0, symName: '___57+[UIImage(TNSBlocks) tns_decodeImageWithData:completion:]_block_invoke', symObjAddr: 0x3CC, symBinAddr: 0x4C3C, symSize: 0xC8 }
- - { offsetInCU: 0x4DD, offset: 0xD20E7, size: 0x8, addend: 0x0, symName: '___57+[UIImage(TNSBlocks) tns_decodeImageWithData:completion:]_block_invoke_2', symObjAddr: 0x494, symBinAddr: 0x4D04, symSize: 0x10 }
- - { offsetInCU: 0x534, offset: 0xD213E, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) tns_decodeImageWidthContentsOfFile:completion:]', symObjAddr: 0x4A4, symBinAddr: 0x4D14, symSize: 0xB8 }
- - { offsetInCU: 0x5A0, offset: 0xD21AA, size: 0x8, addend: 0x0, symName: '___68+[UIImage(TNSBlocks) tns_decodeImageWidthContentsOfFile:completion:]_block_invoke', symObjAddr: 0x55C, symBinAddr: 0x4DCC, symSize: 0xC8 }
- - { offsetInCU: 0x620, offset: 0xD222A, size: 0x8, addend: 0x0, symName: '___68+[UIImage(TNSBlocks) tns_decodeImageWidthContentsOfFile:completion:]_block_invoke_2', symObjAddr: 0x624, symBinAddr: 0x4E94, symSize: 0x10 }
- - { offsetInCU: 0x27, offset: 0xD2630, size: 0x8, addend: 0x0, symName: '+[NSObject(Swizzling) swizzleInstanceMethodWithOriginalSelector:fromClass:withSwizzlingSelector:]', symObjAddr: 0x0, symBinAddr: 0x4EA4, symSize: 0x70 }
- - { offsetInCU: 0x43, offset: 0xD264C, size: 0x8, addend: 0x0, symName: '+[NSObject(Swizzling) swizzleInstanceMethodWithOriginalSelector:fromClass:withSwizzlingSelector:]', symObjAddr: 0x0, symBinAddr: 0x4EA4, symSize: 0x70 }
- - { offsetInCU: 0x139, offset: 0xD2742, size: 0x8, addend: 0x0, symName: '+[NSObject(Swizzling) swizzleMethodWithOriginalSelector:originalMethod:fromClass:withSwizzlingSelector:swizzlingMethod:]', symObjAddr: 0x70, symBinAddr: 0x4F14, symSize: 0x120 }
- - { offsetInCU: 0x27, offset: 0xD29F7, size: 0x8, addend: 0x0, symName: '+[NSString(Async) stringWithContentsOfFile:encoding:completion:]', symObjAddr: 0x0, symBinAddr: 0x5034, symSize: 0xDC }
- - { offsetInCU: 0x4A, offset: 0xD2A1A, size: 0x8, addend: 0x0, symName: '+[NSString(Async) stringWithContentsOfFile:encoding:completion:]', symObjAddr: 0x0, symBinAddr: 0x5034, symSize: 0xDC }
- - { offsetInCU: 0x135, offset: 0xD2B05, size: 0x8, addend: 0x0, symName: '___64+[NSString(Async) stringWithContentsOfFile:encoding:completion:]_block_invoke', symObjAddr: 0xDC, symBinAddr: 0x5110, symSize: 0xEC }
- - { offsetInCU: 0x1D5, offset: 0xD2BA5, size: 0x8, addend: 0x0, symName: '___64+[NSString(Async) stringWithContentsOfFile:encoding:completion:]_block_invoke_2', symObjAddr: 0x1C8, symBinAddr: 0x51FC, symSize: 0x14 }
- - { offsetInCU: 0x23C, offset: 0xD2C0C, size: 0x8, addend: 0x0, symName: '-[NSString(Async) writeToFile:atomically:encoding:completion:]', symObjAddr: 0x2A4, symBinAddr: 0x5210, symSize: 0xF0 }
- - { offsetInCU: 0x2ED, offset: 0xD2CBD, size: 0x8, addend: 0x0, symName: '___62-[NSString(Async) writeToFile:atomically:encoding:completion:]_block_invoke', symObjAddr: 0x394, symBinAddr: 0x5300, symSize: 0xB8 }
- - { offsetInCU: 0x3A1, offset: 0xD2D71, size: 0x8, addend: 0x0, symName: '___62-[NSString(Async) writeToFile:atomically:encoding:completion:]_block_invoke_2', symObjAddr: 0x44C, symBinAddr: 0x53B8, symSize: 0x10 }
- - { offsetInCU: 0x27, offset: 0xD3130, size: 0x8, addend: 0x0, symName: '+[NSData(Async) dataWithContentsOfFile:completion:]', symObjAddr: 0x0, symBinAddr: 0x53C8, symSize: 0xD4 }
- - { offsetInCU: 0x4A, offset: 0xD3153, size: 0x8, addend: 0x0, symName: '+[NSData(Async) dataWithContentsOfFile:completion:]', symObjAddr: 0x0, symBinAddr: 0x53C8, symSize: 0xD4 }
- - { offsetInCU: 0x180, offset: 0xD3289, size: 0x8, addend: 0x0, symName: '___51+[NSData(Async) dataWithContentsOfFile:completion:]_block_invoke', symObjAddr: 0xD4, symBinAddr: 0x549C, symSize: 0xAC }
- - { offsetInCU: 0x200, offset: 0xD3309, size: 0x8, addend: 0x0, symName: '___51+[NSData(Async) dataWithContentsOfFile:completion:]_block_invoke_2', symObjAddr: 0x180, symBinAddr: 0x5548, symSize: 0x10 }
- - { offsetInCU: 0x257, offset: 0xD3360, size: 0x8, addend: 0x0, symName: '-[NSData(Async) writeToFile:atomically:completion:]', symObjAddr: 0x1EC, symBinAddr: 0x5558, symSize: 0xEC }
- - { offsetInCU: 0x2F8, offset: 0xD3401, size: 0x8, addend: 0x0, symName: '___51-[NSData(Async) writeToFile:atomically:completion:]_block_invoke', symObjAddr: 0x2D8, symBinAddr: 0x5644, symSize: 0x84 }
- - { offsetInCU: 0x37D, offset: 0xD3486, size: 0x8, addend: 0x0, symName: '___51-[NSData(Async) writeToFile:atomically:completion:]_block_invoke_2', symObjAddr: 0x35C, symBinAddr: 0x56C8, symSize: 0xC }
- - { offsetInCU: 0x3C4, offset: 0xD34CD, size: 0x8, addend: 0x0, symName: ___copy_helper_block_e8_32b, symObjAddr: 0x368, symBinAddr: 0x56D4, symSize: 0x10 }
- - { offsetInCU: 0x3ED, offset: 0xD34F6, size: 0x8, addend: 0x0, symName: ___destroy_helper_block_e8_32s, symObjAddr: 0x378, symBinAddr: 0x56E4, symSize: 0x8 }
- - { offsetInCU: 0x27, offset: 0xD37F9, size: 0x8, addend: 0x0, symName: '+[UIView(PropertyBag) load]', symObjAddr: 0x0, symBinAddr: 0x56EC, symSize: 0x4 }
- - { offsetInCU: 0x35, offset: 0xD3807, size: 0x8, addend: 0x0, symName: '+[UIView(PropertyBag) loadPropertyBag]', symObjAddr: 0x4, symBinAddr: 0x56F0, symSize: 0x84 }
- - { offsetInCU: 0x5B, offset: 0xD382D, size: 0x8, addend: 0x0, symName: _loadPropertyBag.onceToken, symObjAddr: 0x2868, symBinAddr: 0xC528, symSize: 0x0 }
- - { offsetInCU: 0xBF, offset: 0xD3891, size: 0x8, addend: 0x0, symName: __propertyBagHolder, symObjAddr: 0x2870, symBinAddr: 0xC538, symSize: 0x0 }
- - { offsetInCU: 0xE4, offset: 0xD38B6, size: 0x8, addend: 0x0, symName: '+[UIView(PropertyBag) load]', symObjAddr: 0x0, symBinAddr: 0x56EC, symSize: 0x4 }
- - { offsetInCU: 0x163, offset: 0xD3935, size: 0x8, addend: 0x0, symName: '___38+[UIView(PropertyBag) loadPropertyBag]_block_invoke', symObjAddr: 0x88, symBinAddr: 0x5774, symSize: 0x4C }
- - { offsetInCU: 0x1FA, offset: 0xD39CC, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) propertyValueForKey:]', symObjAddr: 0xD4, symBinAddr: 0x57C0, symSize: 0x6C }
- - { offsetInCU: 0x241, offset: 0xD3A13, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) setPropertyValue:forKey:]', symObjAddr: 0x140, symBinAddr: 0x582C, symSize: 0x74 }
- - { offsetInCU: 0x294, offset: 0xD3A66, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) propertyBag]', symObjAddr: 0x1B4, symBinAddr: 0x58A0, symSize: 0xCC }
- - { offsetInCU: 0x2DB, offset: 0xD3AAD, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) setPropertyBag:]', symObjAddr: 0x280, symBinAddr: 0x596C, symSize: 0xA8 }
- - { offsetInCU: 0x31E, offset: 0xD3AF0, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) removePropertyBag]', symObjAddr: 0x328, symBinAddr: 0x5A14, symSize: 0x70 }
- - { offsetInCU: 0x351, offset: 0xD3B23, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) propertyBag_dealloc]', symObjAddr: 0x398, symBinAddr: 0x5A84, symSize: 0x24 }
- - { offsetInCU: 0x27, offset: 0xD3C55, size: 0x8, addend: 0x0, symName: '+[UIView(PassThroughParent) load]', symObjAddr: 0x0, symBinAddr: 0x5AA8, symSize: 0x4 }
- - { offsetInCU: 0x41, offset: 0xD3C6F, size: 0x8, addend: 0x0, symName: _TLKPassThroughParentKey, symObjAddr: 0x1F8, symBinAddr: 0x8250, symSize: 0x0 }
- - { offsetInCU: 0x55, offset: 0xD3C83, size: 0x8, addend: 0x0, symName: '+[UIView(PassThroughParent) loadHitTest]', symObjAddr: 0x4, symBinAddr: 0x5AAC, symSize: 0x84 }
- - { offsetInCU: 0x7B, offset: 0xD3CA9, size: 0x8, addend: 0x0, symName: _loadHitTest.onceToken, symObjAddr: 0x23D0, symBinAddr: 0xC530, symSize: 0x0 }
- - { offsetInCU: 0xE8, offset: 0xD3D16, size: 0x8, addend: 0x0, symName: '+[UIView(PassThroughParent) load]', symObjAddr: 0x0, symBinAddr: 0x5AA8, symSize: 0x4 }
- - { offsetInCU: 0x168, offset: 0xD3D96, size: 0x8, addend: 0x0, symName: '___40+[UIView(PassThroughParent) loadHitTest]_block_invoke', symObjAddr: 0x88, symBinAddr: 0x5B30, symSize: 0x40 }
- - { offsetInCU: 0x1A7, offset: 0xD3DD5, size: 0x8, addend: 0x0, symName: '-[UIView(PassThroughParent) passThroughParent]', symObjAddr: 0xC8, symBinAddr: 0x5B70, symSize: 0x54 }
- - { offsetInCU: 0x1EE, offset: 0xD3E1C, size: 0x8, addend: 0x0, symName: '-[UIView(PassThroughParent) setPassThroughParent:]', symObjAddr: 0x11C, symBinAddr: 0x5BC4, symSize: 0x4C }
- - { offsetInCU: 0x231, offset: 0xD3E5F, size: 0x8, addend: 0x0, symName: '-[UIView(PassThroughParent) passThrough_hitTest:withEvent:]', symObjAddr: 0x168, symBinAddr: 0x5C10, symSize: 0x50 }
+ - { offsetInCU: 0x34, offset: 0xD145E, size: 0x8, addend: 0x0, symName: _TNSWidgetsVersionString, symObjAddr: 0x0, symBinAddr: 0x3640, symSize: 0x0 }
+ - { offsetInCU: 0x69, offset: 0xD1493, size: 0x8, addend: 0x0, symName: _TNSWidgetsVersionNumber, symObjAddr: 0x30, symBinAddr: 0x3670, symSize: 0x0 }
+ - { offsetInCU: 0x27, offset: 0xD14D0, size: 0x8, addend: 0x0, symName: '-[TNSLabel textRectForBounds:limitedToNumberOfLines:]', symObjAddr: 0x0, symBinAddr: 0x1198, symSize: 0x1E0 }
+ - { offsetInCU: 0xAC, offset: 0xD1555, size: 0x8, addend: 0x0, symName: '-[TNSLabel textRectForBounds:limitedToNumberOfLines:]', symObjAddr: 0x0, symBinAddr: 0x1198, symSize: 0x1E0 }
+ - { offsetInCU: 0x183, offset: 0xD162C, size: 0x8, addend: 0x0, symName: '-[TNSLabel drawTextInRect:]', symObjAddr: 0x1E0, symBinAddr: 0x1378, symSize: 0xA8 }
+ - { offsetInCU: 0x216, offset: 0xD16BF, size: 0x8, addend: 0x0, symName: '-[TNSLabel padding]', symObjAddr: 0x288, symBinAddr: 0x1420, symSize: 0x18 }
+ - { offsetInCU: 0x24B, offset: 0xD16F4, size: 0x8, addend: 0x0, symName: '-[TNSLabel setPadding:]', symObjAddr: 0x2A0, symBinAddr: 0x1438, symSize: 0x18 }
+ - { offsetInCU: 0x28A, offset: 0xD1733, size: 0x8, addend: 0x0, symName: '-[TNSLabel borderThickness]', symObjAddr: 0x2B8, symBinAddr: 0x1450, symSize: 0x18 }
+ - { offsetInCU: 0x2BF, offset: 0xD1768, size: 0x8, addend: 0x0, symName: '-[TNSLabel setBorderThickness:]', symObjAddr: 0x2D0, symBinAddr: 0x1468, symSize: 0x18 }
+ - { offsetInCU: 0x27, offset: 0xD17F2, size: 0x8, addend: 0x0, symName: ___tns_uptime, symObjAddr: 0x0, symBinAddr: 0x1480, symSize: 0xF0 }
+ - { offsetInCU: 0x59, offset: 0xD1824, size: 0x8, addend: 0x0, symName: ___tns_uptime, symObjAddr: 0x0, symBinAddr: 0x1480, symSize: 0xF0 }
+ - { offsetInCU: 0x186, offset: 0xD1951, size: 0x8, addend: 0x0, symName: ___nslog, symObjAddr: 0xF0, symBinAddr: 0x1570, symSize: 0x28 }
+ - { offsetInCU: 0x27, offset: 0xD19B7, size: 0x8, addend: 0x0, symName: '-[NSFileHandle(Async) appendData:completion:]', symObjAddr: 0x0, symBinAddr: 0x1598, symSize: 0xDC }
+ - { offsetInCU: 0x4A, offset: 0xD19DA, size: 0x8, addend: 0x0, symName: '-[NSFileHandle(Async) appendData:completion:]', symObjAddr: 0x0, symBinAddr: 0x1598, symSize: 0xDC }
+ - { offsetInCU: 0x129, offset: 0xD1AB9, size: 0x8, addend: 0x0, symName: '___45-[NSFileHandle(Async) appendData:completion:]_block_invoke', symObjAddr: 0xDC, symBinAddr: 0x1674, symSize: 0xE4 }
+ - { offsetInCU: 0x1BD, offset: 0xD1B4D, size: 0x8, addend: 0x0, symName: '___45-[NSFileHandle(Async) appendData:completion:]_block_invoke_2', symObjAddr: 0x1C0, symBinAddr: 0x1758, symSize: 0x10 }
+ - { offsetInCU: 0x214, offset: 0xD1BA4, size: 0x8, addend: 0x0, symName: ___copy_helper_block_e8_32s40b, symObjAddr: 0x1D0, symBinAddr: 0x1768, symSize: 0x34 }
+ - { offsetInCU: 0x23D, offset: 0xD1BCD, size: 0x8, addend: 0x0, symName: ___destroy_helper_block_e8_32s40s, symObjAddr: 0x204, symBinAddr: 0x179C, symSize: 0x28 }
+ - { offsetInCU: 0x25C, offset: 0xD1BEC, size: 0x8, addend: 0x0, symName: ___copy_helper_block_e8_32s40s48b, symObjAddr: 0x22C, symBinAddr: 0x17C4, symSize: 0x3C }
+ - { offsetInCU: 0x285, offset: 0xD1C15, size: 0x8, addend: 0x0, symName: ___destroy_helper_block_e8_32s40s48s, symObjAddr: 0x268, symBinAddr: 0x1800, symSize: 0x30 }
+ - { offsetInCU: 0x2A4, offset: 0xD1C34, size: 0x8, addend: 0x0, symName: '+[NSFileHandle(Async) fileHandleWith:data:completion:]', symObjAddr: 0x298, symBinAddr: 0x1830, symSize: 0x104 }
+ - { offsetInCU: 0x345, offset: 0xD1CD5, size: 0x8, addend: 0x0, symName: '___54+[NSFileHandle(Async) fileHandleWith:data:completion:]_block_invoke', symObjAddr: 0x39C, symBinAddr: 0x1934, symSize: 0x11C }
+ - { offsetInCU: 0x3E5, offset: 0xD1D75, size: 0x8, addend: 0x0, symName: '___54+[NSFileHandle(Async) fileHandleWith:data:completion:]_block_invoke_2', symObjAddr: 0x4B8, symBinAddr: 0x1A50, symSize: 0x14 }
+ - { offsetInCU: 0x27, offset: 0xD212B, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) initialize]', symObjAddr: 0x0, symBinAddr: 0x1A64, symSize: 0x30 }
+ - { offsetInCU: 0x4F, offset: 0xD2153, size: 0x8, addend: 0x0, symName: _image_queue, symObjAddr: 0x3D68, symBinAddr: 0x8520, symSize: 0x0 }
+ - { offsetInCU: 0x68, offset: 0xD216C, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) initialize]', symObjAddr: 0x0, symBinAddr: 0x1A64, symSize: 0x30 }
+ - { offsetInCU: 0xCE, offset: 0xD21D2, size: 0x8, addend: 0x0, symName: '-[UIImage(TNSBlocks) tns_forceDecode]', symObjAddr: 0x30, symBinAddr: 0x1A94, symSize: 0x94 }
+ - { offsetInCU: 0x23B, offset: 0xD233F, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) tns_safeDecodeImageNamed:completion:]', symObjAddr: 0xC4, symBinAddr: 0x1B28, symSize: 0xB8 }
+ - { offsetInCU: 0x2C7, offset: 0xD23CB, size: 0x8, addend: 0x0, symName: '___58+[UIImage(TNSBlocks) tns_safeDecodeImageNamed:completion:]_block_invoke', symObjAddr: 0x17C, symBinAddr: 0x1BE0, symSize: 0xC8 }
+ - { offsetInCU: 0x347, offset: 0xD244B, size: 0x8, addend: 0x0, symName: '___58+[UIImage(TNSBlocks) tns_safeDecodeImageNamed:completion:]_block_invoke_2', symObjAddr: 0x244, symBinAddr: 0x1CA8, symSize: 0x10 }
+ - { offsetInCU: 0x39E, offset: 0xD24A2, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) tns_safeImageNamed:]', symObjAddr: 0x2B0, symBinAddr: 0x1CB8, symSize: 0x64 }
+ - { offsetInCU: 0x3F1, offset: 0xD24F5, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) tns_decodeImageWithData:completion:]', symObjAddr: 0x314, symBinAddr: 0x1D1C, symSize: 0xB8 }
+ - { offsetInCU: 0x45D, offset: 0xD2561, size: 0x8, addend: 0x0, symName: '___57+[UIImage(TNSBlocks) tns_decodeImageWithData:completion:]_block_invoke', symObjAddr: 0x3CC, symBinAddr: 0x1DD4, symSize: 0xC8 }
+ - { offsetInCU: 0x4DD, offset: 0xD25E1, size: 0x8, addend: 0x0, symName: '___57+[UIImage(TNSBlocks) tns_decodeImageWithData:completion:]_block_invoke_2', symObjAddr: 0x494, symBinAddr: 0x1E9C, symSize: 0x10 }
+ - { offsetInCU: 0x534, offset: 0xD2638, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) tns_decodeImageWidthContentsOfFile:completion:]', symObjAddr: 0x4A4, symBinAddr: 0x1EAC, symSize: 0xB8 }
+ - { offsetInCU: 0x5A0, offset: 0xD26A4, size: 0x8, addend: 0x0, symName: '___68+[UIImage(TNSBlocks) tns_decodeImageWidthContentsOfFile:completion:]_block_invoke', symObjAddr: 0x55C, symBinAddr: 0x1F64, symSize: 0xC8 }
+ - { offsetInCU: 0x620, offset: 0xD2724, size: 0x8, addend: 0x0, symName: '___68+[UIImage(TNSBlocks) tns_decodeImageWidthContentsOfFile:completion:]_block_invoke_2', symObjAddr: 0x624, symBinAddr: 0x202C, symSize: 0x10 }
+ - { offsetInCU: 0x27, offset: 0xD2B2A, size: 0x8, addend: 0x0, symName: '+[NSObject(Swizzling) swizzleInstanceMethodWithOriginalSelector:fromClass:withSwizzlingSelector:]', symObjAddr: 0x0, symBinAddr: 0x203C, symSize: 0x70 }
+ - { offsetInCU: 0x43, offset: 0xD2B46, size: 0x8, addend: 0x0, symName: '+[NSObject(Swizzling) swizzleInstanceMethodWithOriginalSelector:fromClass:withSwizzlingSelector:]', symObjAddr: 0x0, symBinAddr: 0x203C, symSize: 0x70 }
+ - { offsetInCU: 0x139, offset: 0xD2C3C, size: 0x8, addend: 0x0, symName: '+[NSObject(Swizzling) swizzleMethodWithOriginalSelector:originalMethod:fromClass:withSwizzlingSelector:swizzlingMethod:]', symObjAddr: 0x70, symBinAddr: 0x20AC, symSize: 0x120 }
+ - { offsetInCU: 0x27, offset: 0xD2EF1, size: 0x8, addend: 0x0, symName: '+[NSString(Async) stringWithContentsOfFile:encoding:completion:]', symObjAddr: 0x0, symBinAddr: 0x21CC, symSize: 0xDC }
+ - { offsetInCU: 0x4A, offset: 0xD2F14, size: 0x8, addend: 0x0, symName: '+[NSString(Async) stringWithContentsOfFile:encoding:completion:]', symObjAddr: 0x0, symBinAddr: 0x21CC, symSize: 0xDC }
+ - { offsetInCU: 0x135, offset: 0xD2FFF, size: 0x8, addend: 0x0, symName: '___64+[NSString(Async) stringWithContentsOfFile:encoding:completion:]_block_invoke', symObjAddr: 0xDC, symBinAddr: 0x22A8, symSize: 0xEC }
+ - { offsetInCU: 0x1D5, offset: 0xD309F, size: 0x8, addend: 0x0, symName: '___64+[NSString(Async) stringWithContentsOfFile:encoding:completion:]_block_invoke_2', symObjAddr: 0x1C8, symBinAddr: 0x2394, symSize: 0x14 }
+ - { offsetInCU: 0x23C, offset: 0xD3106, size: 0x8, addend: 0x0, symName: '-[NSString(Async) writeToFile:atomically:encoding:completion:]', symObjAddr: 0x2A4, symBinAddr: 0x23A8, symSize: 0xF0 }
+ - { offsetInCU: 0x2ED, offset: 0xD31B7, size: 0x8, addend: 0x0, symName: '___62-[NSString(Async) writeToFile:atomically:encoding:completion:]_block_invoke', symObjAddr: 0x394, symBinAddr: 0x2498, symSize: 0xB8 }
+ - { offsetInCU: 0x3A1, offset: 0xD326B, size: 0x8, addend: 0x0, symName: '___62-[NSString(Async) writeToFile:atomically:encoding:completion:]_block_invoke_2', symObjAddr: 0x44C, symBinAddr: 0x2550, symSize: 0x10 }
+ - { offsetInCU: 0x27, offset: 0xD362A, size: 0x8, addend: 0x0, symName: '+[NSData(Async) dataWithContentsOfFile:completion:]', symObjAddr: 0x0, symBinAddr: 0x2560, symSize: 0xD4 }
+ - { offsetInCU: 0x4A, offset: 0xD364D, size: 0x8, addend: 0x0, symName: '+[NSData(Async) dataWithContentsOfFile:completion:]', symObjAddr: 0x0, symBinAddr: 0x2560, symSize: 0xD4 }
+ - { offsetInCU: 0x180, offset: 0xD3783, size: 0x8, addend: 0x0, symName: '___51+[NSData(Async) dataWithContentsOfFile:completion:]_block_invoke', symObjAddr: 0xD4, symBinAddr: 0x2634, symSize: 0xAC }
+ - { offsetInCU: 0x200, offset: 0xD3803, size: 0x8, addend: 0x0, symName: '___51+[NSData(Async) dataWithContentsOfFile:completion:]_block_invoke_2', symObjAddr: 0x180, symBinAddr: 0x26E0, symSize: 0x10 }
+ - { offsetInCU: 0x257, offset: 0xD385A, size: 0x8, addend: 0x0, symName: '-[NSData(Async) writeToFile:atomically:completion:]', symObjAddr: 0x1EC, symBinAddr: 0x26F0, symSize: 0xEC }
+ - { offsetInCU: 0x2F8, offset: 0xD38FB, size: 0x8, addend: 0x0, symName: '___51-[NSData(Async) writeToFile:atomically:completion:]_block_invoke', symObjAddr: 0x2D8, symBinAddr: 0x27DC, symSize: 0x84 }
+ - { offsetInCU: 0x37D, offset: 0xD3980, size: 0x8, addend: 0x0, symName: '___51-[NSData(Async) writeToFile:atomically:completion:]_block_invoke_2', symObjAddr: 0x35C, symBinAddr: 0x2860, symSize: 0xC }
+ - { offsetInCU: 0x3C4, offset: 0xD39C7, size: 0x8, addend: 0x0, symName: ___copy_helper_block_e8_32b, symObjAddr: 0x368, symBinAddr: 0x286C, symSize: 0x10 }
+ - { offsetInCU: 0x3ED, offset: 0xD39F0, size: 0x8, addend: 0x0, symName: ___destroy_helper_block_e8_32s, symObjAddr: 0x378, symBinAddr: 0x287C, symSize: 0x8 }
+ - { offsetInCU: 0x27, offset: 0xD3CF3, size: 0x8, addend: 0x0, symName: '+[UIView(PropertyBag) load]', symObjAddr: 0x0, symBinAddr: 0x2884, symSize: 0x4 }
+ - { offsetInCU: 0x35, offset: 0xD3D01, size: 0x8, addend: 0x0, symName: '+[UIView(PropertyBag) loadPropertyBag]', symObjAddr: 0x4, symBinAddr: 0x2888, symSize: 0x84 }
+ - { offsetInCU: 0x5B, offset: 0xD3D27, size: 0x8, addend: 0x0, symName: _loadPropertyBag.onceToken, symObjAddr: 0x2868, symBinAddr: 0x8528, symSize: 0x0 }
+ - { offsetInCU: 0xBF, offset: 0xD3D8B, size: 0x8, addend: 0x0, symName: __propertyBagHolder, symObjAddr: 0x2870, symBinAddr: 0x8538, symSize: 0x0 }
+ - { offsetInCU: 0xE4, offset: 0xD3DB0, size: 0x8, addend: 0x0, symName: '+[UIView(PropertyBag) load]', symObjAddr: 0x0, symBinAddr: 0x2884, symSize: 0x4 }
+ - { offsetInCU: 0x163, offset: 0xD3E2F, size: 0x8, addend: 0x0, symName: '___38+[UIView(PropertyBag) loadPropertyBag]_block_invoke', symObjAddr: 0x88, symBinAddr: 0x290C, symSize: 0x4C }
+ - { offsetInCU: 0x1FA, offset: 0xD3EC6, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) propertyValueForKey:]', symObjAddr: 0xD4, symBinAddr: 0x2958, symSize: 0x6C }
+ - { offsetInCU: 0x241, offset: 0xD3F0D, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) setPropertyValue:forKey:]', symObjAddr: 0x140, symBinAddr: 0x29C4, symSize: 0x74 }
+ - { offsetInCU: 0x294, offset: 0xD3F60, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) propertyBag]', symObjAddr: 0x1B4, symBinAddr: 0x2A38, symSize: 0xCC }
+ - { offsetInCU: 0x2DB, offset: 0xD3FA7, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) setPropertyBag:]', symObjAddr: 0x280, symBinAddr: 0x2B04, symSize: 0xA8 }
+ - { offsetInCU: 0x31E, offset: 0xD3FEA, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) removePropertyBag]', symObjAddr: 0x328, symBinAddr: 0x2BAC, symSize: 0x70 }
+ - { offsetInCU: 0x351, offset: 0xD401D, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) propertyBag_dealloc]', symObjAddr: 0x398, symBinAddr: 0x2C1C, symSize: 0x24 }
+ - { offsetInCU: 0x27, offset: 0xD414F, size: 0x8, addend: 0x0, symName: '+[UIView(PassThroughParent) load]', symObjAddr: 0x0, symBinAddr: 0x2C40, symSize: 0x4 }
+ - { offsetInCU: 0x41, offset: 0xD4169, size: 0x8, addend: 0x0, symName: _TLKPassThroughParentKey, symObjAddr: 0x1F8, symBinAddr: 0x4250, symSize: 0x0 }
+ - { offsetInCU: 0x55, offset: 0xD417D, size: 0x8, addend: 0x0, symName: '+[UIView(PassThroughParent) loadHitTest]', symObjAddr: 0x4, symBinAddr: 0x2C44, symSize: 0x84 }
+ - { offsetInCU: 0x7B, offset: 0xD41A3, size: 0x8, addend: 0x0, symName: _loadHitTest.onceToken, symObjAddr: 0x23D0, symBinAddr: 0x8530, symSize: 0x0 }
+ - { offsetInCU: 0xE8, offset: 0xD4210, size: 0x8, addend: 0x0, symName: '+[UIView(PassThroughParent) load]', symObjAddr: 0x0, symBinAddr: 0x2C40, symSize: 0x4 }
+ - { offsetInCU: 0x168, offset: 0xD4290, size: 0x8, addend: 0x0, symName: '___40+[UIView(PassThroughParent) loadHitTest]_block_invoke', symObjAddr: 0x88, symBinAddr: 0x2CC8, symSize: 0x40 }
+ - { offsetInCU: 0x1A7, offset: 0xD42CF, size: 0x8, addend: 0x0, symName: '-[UIView(PassThroughParent) passThroughParent]', symObjAddr: 0xC8, symBinAddr: 0x2D08, symSize: 0x54 }
+ - { offsetInCU: 0x1EE, offset: 0xD4316, size: 0x8, addend: 0x0, symName: '-[UIView(PassThroughParent) setPassThroughParent:]', symObjAddr: 0x11C, symBinAddr: 0x2D5C, symSize: 0x4C }
+ - { offsetInCU: 0x231, offset: 0xD4359, size: 0x8, addend: 0x0, symName: '-[UIView(PassThroughParent) passThrough_hitTest:withEvent:]', symObjAddr: 0x168, symBinAddr: 0x2DA8, symSize: 0x50 }
...
diff --git a/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-maccatalyst/dSYMs/TNSWidgets.framework.dSYM/Contents/Resources/Relocations/x86_64/TNSWidgets.yml b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-maccatalyst/dSYMs/TNSWidgets.framework.dSYM/Contents/Resources/Relocations/x86_64/TNSWidgets.yml
index be54fe7fb0..51f53440ee 100644
--- a/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-maccatalyst/dSYMs/TNSWidgets.framework.dSYM/Contents/Resources/Relocations/x86_64/TNSWidgets.yml
+++ b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-maccatalyst/dSYMs/TNSWidgets.framework.dSYM/Contents/Resources/Relocations/x86_64/TNSWidgets.yml
@@ -2,81 +2,81 @@
triple: 'x86_64-apple-darwin'
binary-path: '/Users/nstudio/Documents/github/NativeScript/NativeScript/packages/ui-mobile-base/ios/TNSWidgets/build/Release-maccatalyst/TNSWidgets.framework/Versions/A/TNSWidgets'
relocations:
- - { offsetInCU: 0x34, offset: 0xD40C1, size: 0x8, addend: 0x0, symName: _TNSWidgetsVersionString, symObjAddr: 0x0, symBinAddr: 0x6130, symSize: 0x0 }
- - { offsetInCU: 0x69, offset: 0xD40F6, size: 0x8, addend: 0x0, symName: _TNSWidgetsVersionNumber, symObjAddr: 0x30, symBinAddr: 0x6160, symSize: 0x0 }
- - { offsetInCU: 0x27, offset: 0xD4133, size: 0x8, addend: 0x0, symName: '-[TNSLabel textRectForBounds:limitedToNumberOfLines:]', symObjAddr: 0x0, symBinAddr: 0x4000, symSize: 0x388 }
- - { offsetInCU: 0xAC, offset: 0xD41B8, size: 0x8, addend: 0x0, symName: '-[TNSLabel textRectForBounds:limitedToNumberOfLines:]', symObjAddr: 0x0, symBinAddr: 0x4000, symSize: 0x388 }
- - { offsetInCU: 0x180, offset: 0xD428C, size: 0x8, addend: 0x0, symName: '-[TNSLabel drawTextInRect:]', symObjAddr: 0x388, symBinAddr: 0x4388, symSize: 0xDD }
- - { offsetInCU: 0x1EC, offset: 0xD42F8, size: 0x8, addend: 0x0, symName: '-[TNSLabel padding]', symObjAddr: 0x465, symBinAddr: 0x4465, symSize: 0x20 }
- - { offsetInCU: 0x221, offset: 0xD432D, size: 0x8, addend: 0x0, symName: '-[TNSLabel setPadding:]', symObjAddr: 0x485, symBinAddr: 0x4485, symSize: 0x1E }
- - { offsetInCU: 0x25F, offset: 0xD436B, size: 0x8, addend: 0x0, symName: '-[TNSLabel borderThickness]', symObjAddr: 0x4A3, symBinAddr: 0x44A3, symSize: 0x20 }
- - { offsetInCU: 0x294, offset: 0xD43A0, size: 0x8, addend: 0x0, symName: '-[TNSLabel setBorderThickness:]', symObjAddr: 0x4C3, symBinAddr: 0x44C3, symSize: 0x1E }
- - { offsetInCU: 0x27, offset: 0xD4429, size: 0x8, addend: 0x0, symName: ___tns_uptime, symObjAddr: 0x0, symBinAddr: 0x44E1, symSize: 0xF8 }
- - { offsetInCU: 0x59, offset: 0xD445B, size: 0x8, addend: 0x0, symName: ___tns_uptime, symObjAddr: 0x0, symBinAddr: 0x44E1, symSize: 0xF8 }
- - { offsetInCU: 0x1B5, offset: 0xD45B7, size: 0x8, addend: 0x0, symName: ___nslog, symObjAddr: 0xF8, symBinAddr: 0x45D9, symSize: 0x17 }
- - { offsetInCU: 0x27, offset: 0xD461D, size: 0x8, addend: 0x0, symName: '-[NSFileHandle(Async) appendData:completion:]', symObjAddr: 0x0, symBinAddr: 0x45F0, symSize: 0xD4 }
- - { offsetInCU: 0x4A, offset: 0xD4640, size: 0x8, addend: 0x0, symName: '-[NSFileHandle(Async) appendData:completion:]', symObjAddr: 0x0, symBinAddr: 0x45F0, symSize: 0xD4 }
- - { offsetInCU: 0x1CE, offset: 0xD47C4, size: 0x8, addend: 0x0, symName: '___45-[NSFileHandle(Async) appendData:completion:]_block_invoke', symObjAddr: 0xD4, symBinAddr: 0x46C4, symSize: 0xFD }
- - { offsetInCU: 0x316, offset: 0xD490C, size: 0x8, addend: 0x0, symName: '___45-[NSFileHandle(Async) appendData:completion:]_block_invoke_2', symObjAddr: 0x1D1, symBinAddr: 0x47C1, symSize: 0x13 }
- - { offsetInCU: 0x36D, offset: 0xD4963, size: 0x8, addend: 0x0, symName: ___copy_helper_block_e8_32s40b, symObjAddr: 0x1E4, symBinAddr: 0x47D4, symSize: 0x30 }
- - { offsetInCU: 0x3A2, offset: 0xD4998, size: 0x8, addend: 0x0, symName: ___destroy_helper_block_e8_32s40s, symObjAddr: 0x214, symBinAddr: 0x4804, symSize: 0x25 }
- - { offsetInCU: 0x3D9, offset: 0xD49CF, size: 0x8, addend: 0x0, symName: ___copy_helper_block_e8_32s40s48b, symObjAddr: 0x239, symBinAddr: 0x4829, symSize: 0x44 }
- - { offsetInCU: 0x41A, offset: 0xD4A10, size: 0x8, addend: 0x0, symName: ___destroy_helper_block_e8_32s40s48s, symObjAddr: 0x27D, symBinAddr: 0x486D, symSize: 0x2C }
- - { offsetInCU: 0x45D, offset: 0xD4A53, size: 0x8, addend: 0x0, symName: '+[NSFileHandle(Async) fileHandleWith:data:completion:]', symObjAddr: 0x2A9, symBinAddr: 0x4899, symSize: 0xF1 }
- - { offsetInCU: 0x5ED, offset: 0xD4BE3, size: 0x8, addend: 0x0, symName: '___54+[NSFileHandle(Async) fileHandleWith:data:completion:]_block_invoke', symObjAddr: 0x39A, symBinAddr: 0x498A, symSize: 0x141 }
- - { offsetInCU: 0x77D, offset: 0xD4D73, size: 0x8, addend: 0x0, symName: '___54+[NSFileHandle(Async) fileHandleWith:data:completion:]_block_invoke_2', symObjAddr: 0x4DB, symBinAddr: 0x4ACB, symSize: 0x1A }
- - { offsetInCU: 0x27, offset: 0xD5128, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) initialize]', symObjAddr: 0x0, symBinAddr: 0x4AE5, symSize: 0x27 }
- - { offsetInCU: 0x4F, offset: 0xD5150, size: 0x8, addend: 0x0, symName: _image_queue, symObjAddr: 0x4480, symBinAddr: 0xC970, symSize: 0x0 }
- - { offsetInCU: 0x68, offset: 0xD5169, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) initialize]', symObjAddr: 0x0, symBinAddr: 0x4AE5, symSize: 0x27 }
- - { offsetInCU: 0x131, offset: 0xD5232, size: 0x8, addend: 0x0, symName: '-[UIImage(TNSBlocks) tns_forceDecode]', symObjAddr: 0x27, symBinAddr: 0x4B0C, symSize: 0xB2 }
- - { offsetInCU: 0x2E8, offset: 0xD53E9, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) tns_safeDecodeImageNamed:completion:]', symObjAddr: 0xD9, symBinAddr: 0x4BBE, symSize: 0xB3 }
- - { offsetInCU: 0x3FD, offset: 0xD54FE, size: 0x8, addend: 0x0, symName: '___58+[UIImage(TNSBlocks) tns_safeDecodeImageNamed:completion:]_block_invoke', symObjAddr: 0x18C, symBinAddr: 0x4C71, symSize: 0xD9 }
- - { offsetInCU: 0x4DD, offset: 0xD55DE, size: 0x8, addend: 0x0, symName: '___58+[UIImage(TNSBlocks) tns_safeDecodeImageNamed:completion:]_block_invoke_2', symObjAddr: 0x265, symBinAddr: 0x4D4A, symSize: 0x13 }
- - { offsetInCU: 0x534, offset: 0xD5635, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) tns_safeImageNamed:]', symObjAddr: 0x2CD, symBinAddr: 0x4D5D, symSize: 0x63 }
- - { offsetInCU: 0x5BC, offset: 0xD56BD, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) tns_decodeImageWithData:completion:]', symObjAddr: 0x330, symBinAddr: 0x4DC0, symSize: 0xB3 }
- - { offsetInCU: 0x6B1, offset: 0xD57B2, size: 0x8, addend: 0x0, symName: '___57+[UIImage(TNSBlocks) tns_decodeImageWithData:completion:]_block_invoke', symObjAddr: 0x3E3, symBinAddr: 0x4E73, symSize: 0xD9 }
- - { offsetInCU: 0x791, offset: 0xD5892, size: 0x8, addend: 0x0, symName: '___57+[UIImage(TNSBlocks) tns_decodeImageWithData:completion:]_block_invoke_2', symObjAddr: 0x4BC, symBinAddr: 0x4F4C, symSize: 0x13 }
- - { offsetInCU: 0x7E8, offset: 0xD58E9, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) tns_decodeImageWidthContentsOfFile:completion:]', symObjAddr: 0x4CF, symBinAddr: 0x4F5F, symSize: 0xB3 }
- - { offsetInCU: 0x8DD, offset: 0xD59DE, size: 0x8, addend: 0x0, symName: '___68+[UIImage(TNSBlocks) tns_decodeImageWidthContentsOfFile:completion:]_block_invoke', symObjAddr: 0x582, symBinAddr: 0x5012, symSize: 0xD9 }
- - { offsetInCU: 0x9BD, offset: 0xD5ABE, size: 0x8, addend: 0x0, symName: '___68+[UIImage(TNSBlocks) tns_decodeImageWidthContentsOfFile:completion:]_block_invoke_2', symObjAddr: 0x65B, symBinAddr: 0x50EB, symSize: 0x13 }
- - { offsetInCU: 0x27, offset: 0xD5EC3, size: 0x8, addend: 0x0, symName: '+[NSObject(Swizzling) swizzleInstanceMethodWithOriginalSelector:fromClass:withSwizzlingSelector:]', symObjAddr: 0x0, symBinAddr: 0x50FE, symSize: 0x6A }
- - { offsetInCU: 0x43, offset: 0xD5EDF, size: 0x8, addend: 0x0, symName: '+[NSObject(Swizzling) swizzleInstanceMethodWithOriginalSelector:fromClass:withSwizzlingSelector:]', symObjAddr: 0x0, symBinAddr: 0x50FE, symSize: 0x6A }
- - { offsetInCU: 0x169, offset: 0xD6005, size: 0x8, addend: 0x0, symName: '+[NSObject(Swizzling) swizzleMethodWithOriginalSelector:originalMethod:fromClass:withSwizzlingSelector:swizzlingMethod:]', symObjAddr: 0x6A, symBinAddr: 0x5168, symSize: 0x11A }
- - { offsetInCU: 0x27, offset: 0xD62D7, size: 0x8, addend: 0x0, symName: '+[NSString(Async) stringWithContentsOfFile:encoding:completion:]', symObjAddr: 0x0, symBinAddr: 0x5282, symSize: 0xDD }
- - { offsetInCU: 0x4A, offset: 0xD62FA, size: 0x8, addend: 0x0, symName: '+[NSString(Async) stringWithContentsOfFile:encoding:completion:]', symObjAddr: 0x0, symBinAddr: 0x5282, symSize: 0xDD }
- - { offsetInCU: 0x1DA, offset: 0xD648A, size: 0x8, addend: 0x0, symName: '___64+[NSString(Async) stringWithContentsOfFile:encoding:completion:]_block_invoke', symObjAddr: 0xDD, symBinAddr: 0x535F, symSize: 0xF1 }
- - { offsetInCU: 0x30E, offset: 0xD65BE, size: 0x8, addend: 0x0, symName: '___64+[NSString(Async) stringWithContentsOfFile:encoding:completion:]_block_invoke_2', symObjAddr: 0x1CE, symBinAddr: 0x5450, symSize: 0x1A }
- - { offsetInCU: 0x375, offset: 0xD6625, size: 0x8, addend: 0x0, symName: '-[NSString(Async) writeToFile:atomically:encoding:completion:]', symObjAddr: 0x2AD, symBinAddr: 0x546A, symSize: 0xEB }
- - { offsetInCU: 0x4CF, offset: 0xD677F, size: 0x8, addend: 0x0, symName: '___62-[NSString(Async) writeToFile:atomically:encoding:completion:]_block_invoke', symObjAddr: 0x398, symBinAddr: 0x5555, symSize: 0xC9 }
- - { offsetInCU: 0x5EF, offset: 0xD689F, size: 0x8, addend: 0x0, symName: '___62-[NSString(Async) writeToFile:atomically:encoding:completion:]_block_invoke_2', symObjAddr: 0x461, symBinAddr: 0x561E, symSize: 0x13 }
- - { offsetInCU: 0x27, offset: 0xD6C5D, size: 0x8, addend: 0x0, symName: '+[NSData(Async) dataWithContentsOfFile:completion:]', symObjAddr: 0x0, symBinAddr: 0x5631, symSize: 0xC6 }
- - { offsetInCU: 0x4A, offset: 0xD6C80, size: 0x8, addend: 0x0, symName: '+[NSData(Async) dataWithContentsOfFile:completion:]', symObjAddr: 0x0, symBinAddr: 0x5631, symSize: 0xC6 }
- - { offsetInCU: 0x225, offset: 0xD6E5B, size: 0x8, addend: 0x0, symName: '___51+[NSData(Async) dataWithContentsOfFile:completion:]_block_invoke', symObjAddr: 0xC6, symBinAddr: 0x56F7, symSize: 0xB4 }
- - { offsetInCU: 0x2F9, offset: 0xD6F2F, size: 0x8, addend: 0x0, symName: '___51+[NSData(Async) dataWithContentsOfFile:completion:]_block_invoke_2', symObjAddr: 0x17A, symBinAddr: 0x57AB, symSize: 0x13 }
- - { offsetInCU: 0x350, offset: 0xD6F86, size: 0x8, addend: 0x0, symName: '-[NSData(Async) writeToFile:atomically:completion:]', symObjAddr: 0x1E2, symBinAddr: 0x57BE, symSize: 0xE6 }
- - { offsetInCU: 0x49A, offset: 0xD70D0, size: 0x8, addend: 0x0, symName: '___51-[NSData(Async) writeToFile:atomically:completion:]_block_invoke', symObjAddr: 0x2C8, symBinAddr: 0x58A4, symSize: 0x84 }
- - { offsetInCU: 0x543, offset: 0xD7179, size: 0x8, addend: 0x0, symName: '___51-[NSData(Async) writeToFile:atomically:completion:]_block_invoke_2', symObjAddr: 0x34C, symBinAddr: 0x5928, symSize: 0xC }
- - { offsetInCU: 0x58A, offset: 0xD71C0, size: 0x8, addend: 0x0, symName: ___copy_helper_block_e8_32b, symObjAddr: 0x358, symBinAddr: 0x5934, symSize: 0x17 }
- - { offsetInCU: 0x5B3, offset: 0xD71E9, size: 0x8, addend: 0x0, symName: ___destroy_helper_block_e8_32s, symObjAddr: 0x36F, symBinAddr: 0x594B, symSize: 0xF }
- - { offsetInCU: 0x27, offset: 0xD74F7, size: 0x8, addend: 0x0, symName: '+[UIView(PropertyBag) load]', symObjAddr: 0x0, symBinAddr: 0x595A, symSize: 0x12 }
- - { offsetInCU: 0x35, offset: 0xD7505, size: 0x8, addend: 0x0, symName: '+[UIView(PropertyBag) loadPropertyBag]', symObjAddr: 0x12, symBinAddr: 0x596C, symSize: 0x70 }
- - { offsetInCU: 0x5B, offset: 0xD752B, size: 0x8, addend: 0x0, symName: _loadPropertyBag.onceToken, symObjAddr: 0x2DF8, symBinAddr: 0xC978, symSize: 0x0 }
- - { offsetInCU: 0xBF, offset: 0xD758F, size: 0x8, addend: 0x0, symName: __propertyBagHolder, symObjAddr: 0x2E00, symBinAddr: 0xC988, symSize: 0x0 }
- - { offsetInCU: 0xE4, offset: 0xD75B4, size: 0x8, addend: 0x0, symName: '+[UIView(PropertyBag) load]', symObjAddr: 0x0, symBinAddr: 0x595A, symSize: 0x12 }
- - { offsetInCU: 0x178, offset: 0xD7648, size: 0x8, addend: 0x0, symName: '___38+[UIView(PropertyBag) loadPropertyBag]_block_invoke', symObjAddr: 0x82, symBinAddr: 0x59DC, symSize: 0x46 }
- - { offsetInCU: 0x22A, offset: 0xD76FA, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) propertyValueForKey:]', symObjAddr: 0xC8, symBinAddr: 0x5A22, symSize: 0x7A }
- - { offsetInCU: 0x2C6, offset: 0xD7796, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) setPropertyValue:forKey:]', symObjAddr: 0x142, symBinAddr: 0x5A9C, symSize: 0x8B }
- - { offsetInCU: 0x3A5, offset: 0xD7875, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) propertyBag]', symObjAddr: 0x1CD, symBinAddr: 0x5B27, symSize: 0xEA }
- - { offsetInCU: 0x460, offset: 0xD7930, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) setPropertyBag:]', symObjAddr: 0x2B7, symBinAddr: 0x5C11, symSize: 0xC1 }
- - { offsetInCU: 0x52F, offset: 0xD79FF, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) removePropertyBag]', symObjAddr: 0x378, symBinAddr: 0x5CD2, symSize: 0x76 }
- - { offsetInCU: 0x59E, offset: 0xD7A6E, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) propertyBag_dealloc]', symObjAddr: 0x3EE, symBinAddr: 0x5D48, symSize: 0x2E }
- - { offsetInCU: 0x27, offset: 0xD7BC7, size: 0x8, addend: 0x0, symName: '+[UIView(PassThroughParent) load]', symObjAddr: 0x0, symBinAddr: 0x5D76, symSize: 0x12 }
- - { offsetInCU: 0x41, offset: 0xD7BE1, size: 0x8, addend: 0x0, symName: _TLKPassThroughParentKey, symObjAddr: 0x200, symBinAddr: 0x8178, symSize: 0x0 }
- - { offsetInCU: 0x55, offset: 0xD7BF5, size: 0x8, addend: 0x0, symName: '+[UIView(PassThroughParent) loadHitTest]', symObjAddr: 0x12, symBinAddr: 0x5D88, symSize: 0x70 }
- - { offsetInCU: 0x7B, offset: 0xD7C1B, size: 0x8, addend: 0x0, symName: _loadHitTest.onceToken, symObjAddr: 0x26A0, symBinAddr: 0xC980, symSize: 0x0 }
- - { offsetInCU: 0xE8, offset: 0xD7C88, size: 0x8, addend: 0x0, symName: '+[UIView(PassThroughParent) load]', symObjAddr: 0x0, symBinAddr: 0x5D76, symSize: 0x12 }
- - { offsetInCU: 0x17D, offset: 0xD7D1D, size: 0x8, addend: 0x0, symName: '___40+[UIView(PassThroughParent) loadHitTest]_block_invoke', symObjAddr: 0x82, symBinAddr: 0x5DF8, symSize: 0x3B }
- - { offsetInCU: 0x1D7, offset: 0xD7D77, size: 0x8, addend: 0x0, symName: '-[UIView(PassThroughParent) passThroughParent]', symObjAddr: 0xBD, symBinAddr: 0x5E33, symSize: 0x55 }
- - { offsetInCU: 0x24E, offset: 0xD7DEE, size: 0x8, addend: 0x0, symName: '-[UIView(PassThroughParent) setPassThroughParent:]', symObjAddr: 0x112, symBinAddr: 0x5E88, symSize: 0x5A }
- - { offsetInCU: 0x2C5, offset: 0xD7E65, size: 0x8, addend: 0x0, symName: '-[UIView(PassThroughParent) passThrough_hitTest:withEvent:]', symObjAddr: 0x16C, symBinAddr: 0x5EE2, symSize: 0x55 }
+ - { offsetInCU: 0x34, offset: 0xD458C, size: 0x8, addend: 0x0, symName: _TNSWidgetsVersionString, symObjAddr: 0x0, symBinAddr: 0x3590, symSize: 0x0 }
+ - { offsetInCU: 0x69, offset: 0xD45C1, size: 0x8, addend: 0x0, symName: _TNSWidgetsVersionNumber, symObjAddr: 0x30, symBinAddr: 0x35C0, symSize: 0x0 }
+ - { offsetInCU: 0x27, offset: 0xD45FE, size: 0x8, addend: 0x0, symName: '-[TNSLabel textRectForBounds:limitedToNumberOfLines:]', symObjAddr: 0x0, symBinAddr: 0x1469, symSize: 0x388 }
+ - { offsetInCU: 0xAC, offset: 0xD4683, size: 0x8, addend: 0x0, symName: '-[TNSLabel textRectForBounds:limitedToNumberOfLines:]', symObjAddr: 0x0, symBinAddr: 0x1469, symSize: 0x388 }
+ - { offsetInCU: 0x180, offset: 0xD4757, size: 0x8, addend: 0x0, symName: '-[TNSLabel drawTextInRect:]', symObjAddr: 0x388, symBinAddr: 0x17F1, symSize: 0xDD }
+ - { offsetInCU: 0x1EC, offset: 0xD47C3, size: 0x8, addend: 0x0, symName: '-[TNSLabel padding]', symObjAddr: 0x465, symBinAddr: 0x18CE, symSize: 0x20 }
+ - { offsetInCU: 0x221, offset: 0xD47F8, size: 0x8, addend: 0x0, symName: '-[TNSLabel setPadding:]', symObjAddr: 0x485, symBinAddr: 0x18EE, symSize: 0x1E }
+ - { offsetInCU: 0x25F, offset: 0xD4836, size: 0x8, addend: 0x0, symName: '-[TNSLabel borderThickness]', symObjAddr: 0x4A3, symBinAddr: 0x190C, symSize: 0x20 }
+ - { offsetInCU: 0x294, offset: 0xD486B, size: 0x8, addend: 0x0, symName: '-[TNSLabel setBorderThickness:]', symObjAddr: 0x4C3, symBinAddr: 0x192C, symSize: 0x1E }
+ - { offsetInCU: 0x27, offset: 0xD48F4, size: 0x8, addend: 0x0, symName: ___tns_uptime, symObjAddr: 0x0, symBinAddr: 0x194A, symSize: 0xF8 }
+ - { offsetInCU: 0x59, offset: 0xD4926, size: 0x8, addend: 0x0, symName: ___tns_uptime, symObjAddr: 0x0, symBinAddr: 0x194A, symSize: 0xF8 }
+ - { offsetInCU: 0x1B5, offset: 0xD4A82, size: 0x8, addend: 0x0, symName: ___nslog, symObjAddr: 0xF8, symBinAddr: 0x1A42, symSize: 0x17 }
+ - { offsetInCU: 0x27, offset: 0xD4AE8, size: 0x8, addend: 0x0, symName: '-[NSFileHandle(Async) appendData:completion:]', symObjAddr: 0x0, symBinAddr: 0x1A59, symSize: 0xD4 }
+ - { offsetInCU: 0x4A, offset: 0xD4B0B, size: 0x8, addend: 0x0, symName: '-[NSFileHandle(Async) appendData:completion:]', symObjAddr: 0x0, symBinAddr: 0x1A59, symSize: 0xD4 }
+ - { offsetInCU: 0x1CE, offset: 0xD4C8F, size: 0x8, addend: 0x0, symName: '___45-[NSFileHandle(Async) appendData:completion:]_block_invoke', symObjAddr: 0xD4, symBinAddr: 0x1B2D, symSize: 0xFD }
+ - { offsetInCU: 0x316, offset: 0xD4DD7, size: 0x8, addend: 0x0, symName: '___45-[NSFileHandle(Async) appendData:completion:]_block_invoke_2', symObjAddr: 0x1D1, symBinAddr: 0x1C2A, symSize: 0x13 }
+ - { offsetInCU: 0x36D, offset: 0xD4E2E, size: 0x8, addend: 0x0, symName: ___copy_helper_block_e8_32s40b, symObjAddr: 0x1E4, symBinAddr: 0x1C3D, symSize: 0x30 }
+ - { offsetInCU: 0x3A2, offset: 0xD4E63, size: 0x8, addend: 0x0, symName: ___destroy_helper_block_e8_32s40s, symObjAddr: 0x214, symBinAddr: 0x1C6D, symSize: 0x25 }
+ - { offsetInCU: 0x3D9, offset: 0xD4E9A, size: 0x8, addend: 0x0, symName: ___copy_helper_block_e8_32s40s48b, symObjAddr: 0x239, symBinAddr: 0x1C92, symSize: 0x44 }
+ - { offsetInCU: 0x41A, offset: 0xD4EDB, size: 0x8, addend: 0x0, symName: ___destroy_helper_block_e8_32s40s48s, symObjAddr: 0x27D, symBinAddr: 0x1CD6, symSize: 0x2C }
+ - { offsetInCU: 0x45D, offset: 0xD4F1E, size: 0x8, addend: 0x0, symName: '+[NSFileHandle(Async) fileHandleWith:data:completion:]', symObjAddr: 0x2A9, symBinAddr: 0x1D02, symSize: 0xF1 }
+ - { offsetInCU: 0x5ED, offset: 0xD50AE, size: 0x8, addend: 0x0, symName: '___54+[NSFileHandle(Async) fileHandleWith:data:completion:]_block_invoke', symObjAddr: 0x39A, symBinAddr: 0x1DF3, symSize: 0x141 }
+ - { offsetInCU: 0x77D, offset: 0xD523E, size: 0x8, addend: 0x0, symName: '___54+[NSFileHandle(Async) fileHandleWith:data:completion:]_block_invoke_2', symObjAddr: 0x4DB, symBinAddr: 0x1F34, symSize: 0x1A }
+ - { offsetInCU: 0x27, offset: 0xD55F3, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) initialize]', symObjAddr: 0x0, symBinAddr: 0x1F4E, symSize: 0x27 }
+ - { offsetInCU: 0x4F, offset: 0xD561B, size: 0x8, addend: 0x0, symName: _image_queue, symObjAddr: 0x4480, symBinAddr: 0x5970, symSize: 0x0 }
+ - { offsetInCU: 0x68, offset: 0xD5634, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) initialize]', symObjAddr: 0x0, symBinAddr: 0x1F4E, symSize: 0x27 }
+ - { offsetInCU: 0x131, offset: 0xD56FD, size: 0x8, addend: 0x0, symName: '-[UIImage(TNSBlocks) tns_forceDecode]', symObjAddr: 0x27, symBinAddr: 0x1F75, symSize: 0xB2 }
+ - { offsetInCU: 0x2E8, offset: 0xD58B4, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) tns_safeDecodeImageNamed:completion:]', symObjAddr: 0xD9, symBinAddr: 0x2027, symSize: 0xB3 }
+ - { offsetInCU: 0x3FD, offset: 0xD59C9, size: 0x8, addend: 0x0, symName: '___58+[UIImage(TNSBlocks) tns_safeDecodeImageNamed:completion:]_block_invoke', symObjAddr: 0x18C, symBinAddr: 0x20DA, symSize: 0xD9 }
+ - { offsetInCU: 0x4DD, offset: 0xD5AA9, size: 0x8, addend: 0x0, symName: '___58+[UIImage(TNSBlocks) tns_safeDecodeImageNamed:completion:]_block_invoke_2', symObjAddr: 0x265, symBinAddr: 0x21B3, symSize: 0x13 }
+ - { offsetInCU: 0x534, offset: 0xD5B00, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) tns_safeImageNamed:]', symObjAddr: 0x2CD, symBinAddr: 0x21C6, symSize: 0x63 }
+ - { offsetInCU: 0x5BC, offset: 0xD5B88, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) tns_decodeImageWithData:completion:]', symObjAddr: 0x330, symBinAddr: 0x2229, symSize: 0xB3 }
+ - { offsetInCU: 0x6B1, offset: 0xD5C7D, size: 0x8, addend: 0x0, symName: '___57+[UIImage(TNSBlocks) tns_decodeImageWithData:completion:]_block_invoke', symObjAddr: 0x3E3, symBinAddr: 0x22DC, symSize: 0xD9 }
+ - { offsetInCU: 0x791, offset: 0xD5D5D, size: 0x8, addend: 0x0, symName: '___57+[UIImage(TNSBlocks) tns_decodeImageWithData:completion:]_block_invoke_2', symObjAddr: 0x4BC, symBinAddr: 0x23B5, symSize: 0x13 }
+ - { offsetInCU: 0x7E8, offset: 0xD5DB4, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) tns_decodeImageWidthContentsOfFile:completion:]', symObjAddr: 0x4CF, symBinAddr: 0x23C8, symSize: 0xB3 }
+ - { offsetInCU: 0x8DD, offset: 0xD5EA9, size: 0x8, addend: 0x0, symName: '___68+[UIImage(TNSBlocks) tns_decodeImageWidthContentsOfFile:completion:]_block_invoke', symObjAddr: 0x582, symBinAddr: 0x247B, symSize: 0xD9 }
+ - { offsetInCU: 0x9BD, offset: 0xD5F89, size: 0x8, addend: 0x0, symName: '___68+[UIImage(TNSBlocks) tns_decodeImageWidthContentsOfFile:completion:]_block_invoke_2', symObjAddr: 0x65B, symBinAddr: 0x2554, symSize: 0x13 }
+ - { offsetInCU: 0x27, offset: 0xD638E, size: 0x8, addend: 0x0, symName: '+[NSObject(Swizzling) swizzleInstanceMethodWithOriginalSelector:fromClass:withSwizzlingSelector:]', symObjAddr: 0x0, symBinAddr: 0x2567, symSize: 0x6A }
+ - { offsetInCU: 0x43, offset: 0xD63AA, size: 0x8, addend: 0x0, symName: '+[NSObject(Swizzling) swizzleInstanceMethodWithOriginalSelector:fromClass:withSwizzlingSelector:]', symObjAddr: 0x0, symBinAddr: 0x2567, symSize: 0x6A }
+ - { offsetInCU: 0x169, offset: 0xD64D0, size: 0x8, addend: 0x0, symName: '+[NSObject(Swizzling) swizzleMethodWithOriginalSelector:originalMethod:fromClass:withSwizzlingSelector:swizzlingMethod:]', symObjAddr: 0x6A, symBinAddr: 0x25D1, symSize: 0x11A }
+ - { offsetInCU: 0x27, offset: 0xD67A2, size: 0x8, addend: 0x0, symName: '+[NSString(Async) stringWithContentsOfFile:encoding:completion:]', symObjAddr: 0x0, symBinAddr: 0x26EB, symSize: 0xDD }
+ - { offsetInCU: 0x4A, offset: 0xD67C5, size: 0x8, addend: 0x0, symName: '+[NSString(Async) stringWithContentsOfFile:encoding:completion:]', symObjAddr: 0x0, symBinAddr: 0x26EB, symSize: 0xDD }
+ - { offsetInCU: 0x1DA, offset: 0xD6955, size: 0x8, addend: 0x0, symName: '___64+[NSString(Async) stringWithContentsOfFile:encoding:completion:]_block_invoke', symObjAddr: 0xDD, symBinAddr: 0x27C8, symSize: 0xF1 }
+ - { offsetInCU: 0x30E, offset: 0xD6A89, size: 0x8, addend: 0x0, symName: '___64+[NSString(Async) stringWithContentsOfFile:encoding:completion:]_block_invoke_2', symObjAddr: 0x1CE, symBinAddr: 0x28B9, symSize: 0x1A }
+ - { offsetInCU: 0x375, offset: 0xD6AF0, size: 0x8, addend: 0x0, symName: '-[NSString(Async) writeToFile:atomically:encoding:completion:]', symObjAddr: 0x2AD, symBinAddr: 0x28D3, symSize: 0xEB }
+ - { offsetInCU: 0x4CF, offset: 0xD6C4A, size: 0x8, addend: 0x0, symName: '___62-[NSString(Async) writeToFile:atomically:encoding:completion:]_block_invoke', symObjAddr: 0x398, symBinAddr: 0x29BE, symSize: 0xC9 }
+ - { offsetInCU: 0x5EF, offset: 0xD6D6A, size: 0x8, addend: 0x0, symName: '___62-[NSString(Async) writeToFile:atomically:encoding:completion:]_block_invoke_2', symObjAddr: 0x461, symBinAddr: 0x2A87, symSize: 0x13 }
+ - { offsetInCU: 0x27, offset: 0xD7128, size: 0x8, addend: 0x0, symName: '+[NSData(Async) dataWithContentsOfFile:completion:]', symObjAddr: 0x0, symBinAddr: 0x2A9A, symSize: 0xC6 }
+ - { offsetInCU: 0x4A, offset: 0xD714B, size: 0x8, addend: 0x0, symName: '+[NSData(Async) dataWithContentsOfFile:completion:]', symObjAddr: 0x0, symBinAddr: 0x2A9A, symSize: 0xC6 }
+ - { offsetInCU: 0x225, offset: 0xD7326, size: 0x8, addend: 0x0, symName: '___51+[NSData(Async) dataWithContentsOfFile:completion:]_block_invoke', symObjAddr: 0xC6, symBinAddr: 0x2B60, symSize: 0xB4 }
+ - { offsetInCU: 0x2F9, offset: 0xD73FA, size: 0x8, addend: 0x0, symName: '___51+[NSData(Async) dataWithContentsOfFile:completion:]_block_invoke_2', symObjAddr: 0x17A, symBinAddr: 0x2C14, symSize: 0x13 }
+ - { offsetInCU: 0x350, offset: 0xD7451, size: 0x8, addend: 0x0, symName: '-[NSData(Async) writeToFile:atomically:completion:]', symObjAddr: 0x1E2, symBinAddr: 0x2C27, symSize: 0xE6 }
+ - { offsetInCU: 0x49A, offset: 0xD759B, size: 0x8, addend: 0x0, symName: '___51-[NSData(Async) writeToFile:atomically:completion:]_block_invoke', symObjAddr: 0x2C8, symBinAddr: 0x2D0D, symSize: 0x84 }
+ - { offsetInCU: 0x543, offset: 0xD7644, size: 0x8, addend: 0x0, symName: '___51-[NSData(Async) writeToFile:atomically:completion:]_block_invoke_2', symObjAddr: 0x34C, symBinAddr: 0x2D91, symSize: 0xC }
+ - { offsetInCU: 0x58A, offset: 0xD768B, size: 0x8, addend: 0x0, symName: ___copy_helper_block_e8_32b, symObjAddr: 0x358, symBinAddr: 0x2D9D, symSize: 0x17 }
+ - { offsetInCU: 0x5B3, offset: 0xD76B4, size: 0x8, addend: 0x0, symName: ___destroy_helper_block_e8_32s, symObjAddr: 0x36F, symBinAddr: 0x2DB4, symSize: 0xF }
+ - { offsetInCU: 0x27, offset: 0xD79C2, size: 0x8, addend: 0x0, symName: '+[UIView(PropertyBag) load]', symObjAddr: 0x0, symBinAddr: 0x2DC3, symSize: 0x12 }
+ - { offsetInCU: 0x35, offset: 0xD79D0, size: 0x8, addend: 0x0, symName: '+[UIView(PropertyBag) loadPropertyBag]', symObjAddr: 0x12, symBinAddr: 0x2DD5, symSize: 0x70 }
+ - { offsetInCU: 0x5B, offset: 0xD79F6, size: 0x8, addend: 0x0, symName: _loadPropertyBag.onceToken, symObjAddr: 0x2DF0, symBinAddr: 0x5978, symSize: 0x0 }
+ - { offsetInCU: 0xBF, offset: 0xD7A5A, size: 0x8, addend: 0x0, symName: __propertyBagHolder, symObjAddr: 0x2DF8, symBinAddr: 0x5988, symSize: 0x0 }
+ - { offsetInCU: 0xE4, offset: 0xD7A7F, size: 0x8, addend: 0x0, symName: '+[UIView(PropertyBag) load]', symObjAddr: 0x0, symBinAddr: 0x2DC3, symSize: 0x12 }
+ - { offsetInCU: 0x178, offset: 0xD7B13, size: 0x8, addend: 0x0, symName: '___38+[UIView(PropertyBag) loadPropertyBag]_block_invoke', symObjAddr: 0x82, symBinAddr: 0x2E45, symSize: 0x46 }
+ - { offsetInCU: 0x22A, offset: 0xD7BC5, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) propertyValueForKey:]', symObjAddr: 0xC8, symBinAddr: 0x2E8B, symSize: 0x7A }
+ - { offsetInCU: 0x2C6, offset: 0xD7C61, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) setPropertyValue:forKey:]', symObjAddr: 0x142, symBinAddr: 0x2F05, symSize: 0x8B }
+ - { offsetInCU: 0x3A5, offset: 0xD7D40, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) propertyBag]', symObjAddr: 0x1CD, symBinAddr: 0x2F90, symSize: 0xEA }
+ - { offsetInCU: 0x460, offset: 0xD7DFB, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) setPropertyBag:]', symObjAddr: 0x2B7, symBinAddr: 0x307A, symSize: 0xC1 }
+ - { offsetInCU: 0x52F, offset: 0xD7ECA, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) removePropertyBag]', symObjAddr: 0x378, symBinAddr: 0x313B, symSize: 0x76 }
+ - { offsetInCU: 0x59E, offset: 0xD7F39, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) propertyBag_dealloc]', symObjAddr: 0x3EE, symBinAddr: 0x31B1, symSize: 0x2E }
+ - { offsetInCU: 0x27, offset: 0xD8092, size: 0x8, addend: 0x0, symName: '+[UIView(PassThroughParent) load]', symObjAddr: 0x0, symBinAddr: 0x31DF, symSize: 0x12 }
+ - { offsetInCU: 0x41, offset: 0xD80AC, size: 0x8, addend: 0x0, symName: _TLKPassThroughParentKey, symObjAddr: 0x200, symBinAddr: 0x4178, symSize: 0x0 }
+ - { offsetInCU: 0x55, offset: 0xD80C0, size: 0x8, addend: 0x0, symName: '+[UIView(PassThroughParent) loadHitTest]', symObjAddr: 0x12, symBinAddr: 0x31F1, symSize: 0x70 }
+ - { offsetInCU: 0x7B, offset: 0xD80E6, size: 0x8, addend: 0x0, symName: _loadHitTest.onceToken, symObjAddr: 0x26A0, symBinAddr: 0x5980, symSize: 0x0 }
+ - { offsetInCU: 0xE8, offset: 0xD8153, size: 0x8, addend: 0x0, symName: '+[UIView(PassThroughParent) load]', symObjAddr: 0x0, symBinAddr: 0x31DF, symSize: 0x12 }
+ - { offsetInCU: 0x17D, offset: 0xD81E8, size: 0x8, addend: 0x0, symName: '___40+[UIView(PassThroughParent) loadHitTest]_block_invoke', symObjAddr: 0x82, symBinAddr: 0x3261, symSize: 0x3B }
+ - { offsetInCU: 0x1D7, offset: 0xD8242, size: 0x8, addend: 0x0, symName: '-[UIView(PassThroughParent) passThroughParent]', symObjAddr: 0xBD, symBinAddr: 0x329C, symSize: 0x55 }
+ - { offsetInCU: 0x24E, offset: 0xD82B9, size: 0x8, addend: 0x0, symName: '-[UIView(PassThroughParent) setPassThroughParent:]', symObjAddr: 0x112, symBinAddr: 0x32F1, symSize: 0x5A }
+ - { offsetInCU: 0x2C5, offset: 0xD8330, size: 0x8, addend: 0x0, symName: '-[UIView(PassThroughParent) passThrough_hitTest:withEvent:]', symObjAddr: 0x16C, symBinAddr: 0x334B, symSize: 0x55 }
...
diff --git a/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-simulator/TNSWidgets.framework/Headers/NSCCrypto.h b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-simulator/TNSWidgets.framework/Headers/NSCCrypto.h
new file mode 100644
index 0000000000..c90f3a616f
--- /dev/null
+++ b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-simulator/TNSWidgets.framework/Headers/NSCCrypto.h
@@ -0,0 +1,60 @@
+//
+// NSCCrypto.h
+// TNSWidgets
+//
+// Created by Osei Fortune on 03/07/2024.
+// Copyright © 2024 NativeScript. All rights reserved.
+//
+
+#import
+#import
+#import
+#import
+#ifndef NSCCrypto_h
+#define NSCCrypto_h
+
+typedef enum : NSUInteger {
+ kNSCCryptoRSASSA_PKCS1_v1_5,
+ kNSCCryptoRSA_PSS,
+ kNSCCryptoRSA_OAEP,
+} NSCCryptoRsaHashedKeyGenParamsName;
+
+
+typedef enum : NSUInteger {
+ kNSCCryptoHashSHA1,
+ kNSCCryptoHashSHA256,
+ kNSCCryptoHashSHA384,
+ kNSCCryptoHashSHA512
+} NSCCryptoHash;
+
+
+typedef enum : NSUInteger {
+ kNSCCryptoDecrypt,
+ kNSCCryptoEncrypt,
+ kNSCCryptoSign,
+ kNSCCryptoVerify,
+ kNSCCryptoDeriveKey,
+ kNSCCryptoDeriveBits,
+ kNSCCryptoWrapKey,
+ kNSCCryptoUnwrapKey,
+} NSCCryptoKeyUsages;
+
+
+
+@interface NSCCryptoKeyPair : NSObject
+@property (nonatomic, nonnull) SecKeyRef privateKey;
+@property (nonatomic, nonnull) SecKeyRef publicKey;
+-(nonnull id)initWithPrivateKey:(nonnull SecKeyRef)privKey andPublicKey:(nonnull SecKeyRef)pubKey;
+@end
+
+@interface NSCCrypto:NSObject
++ (nonnull NSString*)randomUUID;
++ (nullable NSString*)getRandomValues:(nonnull void*)buffer length:(unsigned int)length;
++ (nullable NSData*)digest:(nonnull void*)data length:(unsigned int)length mode:(int)mode;
++ (nullable NSData *)generateKeyHmac:(int)hash length:(int)length;
++ (nullable NSCCryptoKeyPair*)generateKeyRsa:(NSCCryptoRsaHashedKeyGenParamsName)name modulusLength:(unsigned int)modulusLength publicExponent:(nullable void*)exponent size:(unsigned int)size hash:(NSCCryptoHash)hash extractable:(BOOL)extractable keyUsages:(nonnull NSArray*) usages;
++ (nullable NSData *)encryptRsa:(BOOL)isPrivate key:(nonnull NSCCryptoKeyPair *)key hash:(NSCCryptoHash)hash data:(nonnull void*)data size:(unsigned int) size;
+
++ (nullable NSData *)decryptRsa:(BOOL)isPrivate key:(nonnull NSCCryptoKeyPair *)key hash:(NSCCryptoHash)hash data:(nonnull void*)data size:(unsigned int) size;
+@end
+#endif /* NSCCrypto_h */
diff --git a/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-simulator/TNSWidgets.framework/Headers/NSFileHandle+Async.h b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-simulator/TNSWidgets.framework/Headers/NSFileHandle+Async.h
index 6d8827a94b..d5a2c888d8 100644
--- a/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-simulator/TNSWidgets.framework/Headers/NSFileHandle+Async.h
+++ b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-simulator/TNSWidgets.framework/Headers/NSFileHandle+Async.h
@@ -3,7 +3,7 @@
// TNSWidgets
//
// Created by Osei Fortune on 03/05/2023.
-// Copyright © 2023 Telerik A D. All rights reserved.
+// Copyright © 2023 NativeScript. All rights reserved.
//
#import
diff --git a/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-simulator/TNSWidgets.framework/Info.plist b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-simulator/TNSWidgets.framework/Info.plist
index 463832e0b3..8a0263e63b 100644
Binary files a/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-simulator/TNSWidgets.framework/Info.plist and b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-simulator/TNSWidgets.framework/Info.plist differ
diff --git a/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-simulator/TNSWidgets.framework/TNSWidgets b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-simulator/TNSWidgets.framework/TNSWidgets
index ba9fc0a060..b98915f344 100755
Binary files a/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-simulator/TNSWidgets.framework/TNSWidgets and b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-simulator/TNSWidgets.framework/TNSWidgets differ
diff --git a/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-simulator/TNSWidgets.framework/_CodeSignature/CodeResources b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-simulator/TNSWidgets.framework/_CodeSignature/CodeResources
index 59e83441fc..0ea2476ce1 100644
--- a/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-simulator/TNSWidgets.framework/_CodeSignature/CodeResources
+++ b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-simulator/TNSWidgets.framework/_CodeSignature/CodeResources
@@ -10,7 +10,7 @@
Headers/NSFileHandle+Async.h
- iQtzsDHw/VTnFG27yW+QvGCeXGw=
+ rRe3BF9E0tZ9uKb/qQaeizpf00k=
Headers/NSString+Async.h
@@ -38,7 +38,7 @@
Info.plist
- OhmGnELix+C7lg5Ti6gy6tS9n3U=
+ Bs8o38T7YIg2Atjpfe4/QbN1vTM=
Modules/module.modulemap
@@ -66,7 +66,7 @@
hash2
- 1IqS81dD1dbKccHZ0lYPMMF1zBPdp3InM+rdOFjBo+k=
+ 2T5kVM+Hg6kj426PPiCsCw+SsFz2+kqJkOSpwDcNPZ0=
Headers/NSString+Async.h
diff --git a/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-simulator/dSYMs/TNSWidgets.framework.dSYM/Contents/Resources/DWARF/TNSWidgets b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-simulator/dSYMs/TNSWidgets.framework.dSYM/Contents/Resources/DWARF/TNSWidgets
index d4ff6d5c4a..d7433c0cbe 100644
Binary files a/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-simulator/dSYMs/TNSWidgets.framework.dSYM/Contents/Resources/DWARF/TNSWidgets and b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-simulator/dSYMs/TNSWidgets.framework.dSYM/Contents/Resources/DWARF/TNSWidgets differ
diff --git a/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-simulator/dSYMs/TNSWidgets.framework.dSYM/Contents/Resources/Relocations/aarch64/TNSWidgets.yml b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-simulator/dSYMs/TNSWidgets.framework.dSYM/Contents/Resources/Relocations/aarch64/TNSWidgets.yml
index 9151336510..c5d8d06fb3 100644
--- a/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-simulator/dSYMs/TNSWidgets.framework.dSYM/Contents/Resources/Relocations/aarch64/TNSWidgets.yml
+++ b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-simulator/dSYMs/TNSWidgets.framework.dSYM/Contents/Resources/Relocations/aarch64/TNSWidgets.yml
@@ -2,81 +2,81 @@
triple: 'arm64-apple-darwin'
binary-path: '/Users/nstudio/Documents/github/NativeScript/NativeScript/packages/ui-mobile-base/ios/TNSWidgets/build/Release-iphonesimulator/TNSWidgets.framework/TNSWidgets'
relocations:
- - { offsetInCU: 0x34, offset: 0x53643, size: 0x8, addend: 0x0, symName: _TNSWidgetsVersionString, symObjAddr: 0x0, symBinAddr: 0x72D8, symSize: 0x0 }
- - { offsetInCU: 0x69, offset: 0x53678, size: 0x8, addend: 0x0, symName: _TNSWidgetsVersionNumber, symObjAddr: 0x30, symBinAddr: 0x7308, symSize: 0x0 }
- - { offsetInCU: 0x27, offset: 0x536B5, size: 0x8, addend: 0x0, symName: '-[TNSLabel textRectForBounds:limitedToNumberOfLines:]', symObjAddr: 0x0, symBinAddr: 0x4180, symSize: 0x1E0 }
- - { offsetInCU: 0xAB, offset: 0x53739, size: 0x8, addend: 0x0, symName: '-[TNSLabel textRectForBounds:limitedToNumberOfLines:]', symObjAddr: 0x0, symBinAddr: 0x4180, symSize: 0x1E0 }
- - { offsetInCU: 0x182, offset: 0x53810, size: 0x8, addend: 0x0, symName: '-[TNSLabel drawTextInRect:]', symObjAddr: 0x1E0, symBinAddr: 0x4360, symSize: 0xA8 }
- - { offsetInCU: 0x215, offset: 0x538A3, size: 0x8, addend: 0x0, symName: '-[TNSLabel padding]', symObjAddr: 0x288, symBinAddr: 0x4408, symSize: 0x18 }
- - { offsetInCU: 0x24A, offset: 0x538D8, size: 0x8, addend: 0x0, symName: '-[TNSLabel setPadding:]', symObjAddr: 0x2A0, symBinAddr: 0x4420, symSize: 0x18 }
- - { offsetInCU: 0x289, offset: 0x53917, size: 0x8, addend: 0x0, symName: '-[TNSLabel borderThickness]', symObjAddr: 0x2B8, symBinAddr: 0x4438, symSize: 0x18 }
- - { offsetInCU: 0x2BE, offset: 0x5394C, size: 0x8, addend: 0x0, symName: '-[TNSLabel setBorderThickness:]', symObjAddr: 0x2D0, symBinAddr: 0x4450, symSize: 0x18 }
- - { offsetInCU: 0x27, offset: 0x539D6, size: 0x8, addend: 0x0, symName: ___tns_uptime, symObjAddr: 0x0, symBinAddr: 0x4468, symSize: 0xF0 }
- - { offsetInCU: 0x59, offset: 0x53A08, size: 0x8, addend: 0x0, symName: ___tns_uptime, symObjAddr: 0x0, symBinAddr: 0x4468, symSize: 0xF0 }
- - { offsetInCU: 0x186, offset: 0x53B35, size: 0x8, addend: 0x0, symName: ___nslog, symObjAddr: 0xF0, symBinAddr: 0x4558, symSize: 0x28 }
- - { offsetInCU: 0x27, offset: 0x53B9B, size: 0x8, addend: 0x0, symName: '-[NSFileHandle(Async) appendData:completion:]', symObjAddr: 0x0, symBinAddr: 0x4580, symSize: 0xDC }
- - { offsetInCU: 0x4A, offset: 0x53BBE, size: 0x8, addend: 0x0, symName: '-[NSFileHandle(Async) appendData:completion:]', symObjAddr: 0x0, symBinAddr: 0x4580, symSize: 0xDC }
- - { offsetInCU: 0x129, offset: 0x53C9D, size: 0x8, addend: 0x0, symName: '___45-[NSFileHandle(Async) appendData:completion:]_block_invoke', symObjAddr: 0xDC, symBinAddr: 0x465C, symSize: 0x28C }
- - { offsetInCU: 0x1DF, offset: 0x53D53, size: 0x8, addend: 0x0, symName: '___45-[NSFileHandle(Async) appendData:completion:]_block_invoke_2', symObjAddr: 0x368, symBinAddr: 0x48E8, symSize: 0x10 }
- - { offsetInCU: 0x236, offset: 0x53DAA, size: 0x8, addend: 0x0, symName: ___copy_helper_block_e8_32s40b, symObjAddr: 0x378, symBinAddr: 0x48F8, symSize: 0x34 }
- - { offsetInCU: 0x25F, offset: 0x53DD3, size: 0x8, addend: 0x0, symName: ___destroy_helper_block_e8_32s40s, symObjAddr: 0x3AC, symBinAddr: 0x492C, symSize: 0x28 }
- - { offsetInCU: 0x27E, offset: 0x53DF2, size: 0x8, addend: 0x0, symName: ___copy_helper_block_e8_32s40s48b, symObjAddr: 0x3D4, symBinAddr: 0x4954, symSize: 0x3C }
- - { offsetInCU: 0x2A7, offset: 0x53E1B, size: 0x8, addend: 0x0, symName: ___destroy_helper_block_e8_32s40s48s, symObjAddr: 0x410, symBinAddr: 0x4990, symSize: 0x30 }
- - { offsetInCU: 0x2C6, offset: 0x53E3A, size: 0x8, addend: 0x0, symName: '+[NSFileHandle(Async) fileHandleWith:data:completion:]', symObjAddr: 0x440, symBinAddr: 0x49C0, symSize: 0x104 }
- - { offsetInCU: 0x367, offset: 0x53EDB, size: 0x8, addend: 0x0, symName: '___54+[NSFileHandle(Async) fileHandleWith:data:completion:]_block_invoke', symObjAddr: 0x544, symBinAddr: 0x4AC4, symSize: 0x2D0 }
- - { offsetInCU: 0x429, offset: 0x53F9D, size: 0x8, addend: 0x0, symName: '___54+[NSFileHandle(Async) fileHandleWith:data:completion:]_block_invoke_2', symObjAddr: 0x814, symBinAddr: 0x4D94, symSize: 0x14 }
- - { offsetInCU: 0x27, offset: 0x5433D, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) initialize]', symObjAddr: 0x0, symBinAddr: 0x4DA8, symSize: 0x30 }
- - { offsetInCU: 0x4F, offset: 0x54365, size: 0x8, addend: 0x0, symName: _image_queue, symObjAddr: 0x3E30, symBinAddr: 0xC6E8, symSize: 0x0 }
- - { offsetInCU: 0x68, offset: 0x5437E, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) initialize]', symObjAddr: 0x0, symBinAddr: 0x4DA8, symSize: 0x30 }
- - { offsetInCU: 0xCE, offset: 0x543E4, size: 0x8, addend: 0x0, symName: '-[UIImage(TNSBlocks) tns_forceDecode]', symObjAddr: 0x30, symBinAddr: 0x4DD8, symSize: 0x94 }
- - { offsetInCU: 0x23B, offset: 0x54551, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) tns_safeDecodeImageNamed:completion:]', symObjAddr: 0xC4, symBinAddr: 0x4E6C, symSize: 0xB8 }
- - { offsetInCU: 0x2C7, offset: 0x545DD, size: 0x8, addend: 0x0, symName: '___58+[UIImage(TNSBlocks) tns_safeDecodeImageNamed:completion:]_block_invoke', symObjAddr: 0x17C, symBinAddr: 0x4F24, symSize: 0xC8 }
- - { offsetInCU: 0x347, offset: 0x5465D, size: 0x8, addend: 0x0, symName: '___58+[UIImage(TNSBlocks) tns_safeDecodeImageNamed:completion:]_block_invoke_2', symObjAddr: 0x244, symBinAddr: 0x4FEC, symSize: 0x10 }
- - { offsetInCU: 0x39E, offset: 0x546B4, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) tns_safeImageNamed:]', symObjAddr: 0x2B0, symBinAddr: 0x4FFC, symSize: 0x64 }
- - { offsetInCU: 0x3F1, offset: 0x54707, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) tns_decodeImageWithData:completion:]', symObjAddr: 0x314, symBinAddr: 0x5060, symSize: 0xB8 }
- - { offsetInCU: 0x45D, offset: 0x54773, size: 0x8, addend: 0x0, symName: '___57+[UIImage(TNSBlocks) tns_decodeImageWithData:completion:]_block_invoke', symObjAddr: 0x3CC, symBinAddr: 0x5118, symSize: 0xC8 }
- - { offsetInCU: 0x4DD, offset: 0x547F3, size: 0x8, addend: 0x0, symName: '___57+[UIImage(TNSBlocks) tns_decodeImageWithData:completion:]_block_invoke_2', symObjAddr: 0x494, symBinAddr: 0x51E0, symSize: 0x10 }
- - { offsetInCU: 0x534, offset: 0x5484A, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) tns_decodeImageWidthContentsOfFile:completion:]', symObjAddr: 0x4A4, symBinAddr: 0x51F0, symSize: 0xB8 }
- - { offsetInCU: 0x5A0, offset: 0x548B6, size: 0x8, addend: 0x0, symName: '___68+[UIImage(TNSBlocks) tns_decodeImageWidthContentsOfFile:completion:]_block_invoke', symObjAddr: 0x55C, symBinAddr: 0x52A8, symSize: 0xC8 }
- - { offsetInCU: 0x620, offset: 0x54936, size: 0x8, addend: 0x0, symName: '___68+[UIImage(TNSBlocks) tns_decodeImageWidthContentsOfFile:completion:]_block_invoke_2', symObjAddr: 0x624, symBinAddr: 0x5370, symSize: 0x10 }
- - { offsetInCU: 0x27, offset: 0x54D11, size: 0x8, addend: 0x0, symName: '+[NSObject(Swizzling) swizzleInstanceMethodWithOriginalSelector:fromClass:withSwizzlingSelector:]', symObjAddr: 0x0, symBinAddr: 0x5380, symSize: 0x70 }
- - { offsetInCU: 0x43, offset: 0x54D2D, size: 0x8, addend: 0x0, symName: '+[NSObject(Swizzling) swizzleInstanceMethodWithOriginalSelector:fromClass:withSwizzlingSelector:]', symObjAddr: 0x0, symBinAddr: 0x5380, symSize: 0x70 }
- - { offsetInCU: 0x139, offset: 0x54E23, size: 0x8, addend: 0x0, symName: '+[NSObject(Swizzling) swizzleMethodWithOriginalSelector:originalMethod:fromClass:withSwizzlingSelector:swizzlingMethod:]', symObjAddr: 0x70, symBinAddr: 0x53F0, symSize: 0x120 }
- - { offsetInCU: 0x27, offset: 0x550D8, size: 0x8, addend: 0x0, symName: '+[NSString(Async) stringWithContentsOfFile:encoding:completion:]', symObjAddr: 0x0, symBinAddr: 0x5510, symSize: 0xDC }
- - { offsetInCU: 0x4A, offset: 0x550FB, size: 0x8, addend: 0x0, symName: '+[NSString(Async) stringWithContentsOfFile:encoding:completion:]', symObjAddr: 0x0, symBinAddr: 0x5510, symSize: 0xDC }
- - { offsetInCU: 0x135, offset: 0x551E6, size: 0x8, addend: 0x0, symName: '___64+[NSString(Async) stringWithContentsOfFile:encoding:completion:]_block_invoke', symObjAddr: 0xDC, symBinAddr: 0x55EC, symSize: 0xEC }
- - { offsetInCU: 0x1D5, offset: 0x55286, size: 0x8, addend: 0x0, symName: '___64+[NSString(Async) stringWithContentsOfFile:encoding:completion:]_block_invoke_2', symObjAddr: 0x1C8, symBinAddr: 0x56D8, symSize: 0x14 }
- - { offsetInCU: 0x23C, offset: 0x552ED, size: 0x8, addend: 0x0, symName: '-[NSString(Async) writeToFile:atomically:encoding:completion:]', symObjAddr: 0x2A4, symBinAddr: 0x56EC, symSize: 0xF0 }
- - { offsetInCU: 0x2ED, offset: 0x5539E, size: 0x8, addend: 0x0, symName: '___62-[NSString(Async) writeToFile:atomically:encoding:completion:]_block_invoke', symObjAddr: 0x394, symBinAddr: 0x57DC, symSize: 0xB8 }
- - { offsetInCU: 0x3A1, offset: 0x55452, size: 0x8, addend: 0x0, symName: '___62-[NSString(Async) writeToFile:atomically:encoding:completion:]_block_invoke_2', symObjAddr: 0x44C, symBinAddr: 0x5894, symSize: 0x10 }
- - { offsetInCU: 0x27, offset: 0x557F2, size: 0x8, addend: 0x0, symName: '+[NSData(Async) dataWithContentsOfFile:completion:]', symObjAddr: 0x0, symBinAddr: 0x58A4, symSize: 0xD4 }
- - { offsetInCU: 0x4A, offset: 0x55815, size: 0x8, addend: 0x0, symName: '+[NSData(Async) dataWithContentsOfFile:completion:]', symObjAddr: 0x0, symBinAddr: 0x58A4, symSize: 0xD4 }
- - { offsetInCU: 0x180, offset: 0x5594B, size: 0x8, addend: 0x0, symName: '___51+[NSData(Async) dataWithContentsOfFile:completion:]_block_invoke', symObjAddr: 0xD4, symBinAddr: 0x5978, symSize: 0xAC }
- - { offsetInCU: 0x200, offset: 0x559CB, size: 0x8, addend: 0x0, symName: '___51+[NSData(Async) dataWithContentsOfFile:completion:]_block_invoke_2', symObjAddr: 0x180, symBinAddr: 0x5A24, symSize: 0x10 }
- - { offsetInCU: 0x257, offset: 0x55A22, size: 0x8, addend: 0x0, symName: '-[NSData(Async) writeToFile:atomically:completion:]', symObjAddr: 0x1EC, symBinAddr: 0x5A34, symSize: 0xEC }
- - { offsetInCU: 0x2F8, offset: 0x55AC3, size: 0x8, addend: 0x0, symName: '___51-[NSData(Async) writeToFile:atomically:completion:]_block_invoke', symObjAddr: 0x2D8, symBinAddr: 0x5B20, symSize: 0x84 }
- - { offsetInCU: 0x37D, offset: 0x55B48, size: 0x8, addend: 0x0, symName: '___51-[NSData(Async) writeToFile:atomically:completion:]_block_invoke_2', symObjAddr: 0x35C, symBinAddr: 0x5BA4, symSize: 0xC }
- - { offsetInCU: 0x3C4, offset: 0x55B8F, size: 0x8, addend: 0x0, symName: ___copy_helper_block_e8_32b, symObjAddr: 0x368, symBinAddr: 0x5BB0, symSize: 0x10 }
- - { offsetInCU: 0x3ED, offset: 0x55BB8, size: 0x8, addend: 0x0, symName: ___destroy_helper_block_e8_32s, symObjAddr: 0x378, symBinAddr: 0x5BC0, symSize: 0x8 }
- - { offsetInCU: 0x27, offset: 0x55E9E, size: 0x8, addend: 0x0, symName: '+[UIView(PropertyBag) load]', symObjAddr: 0x0, symBinAddr: 0x5BC8, symSize: 0x4 }
- - { offsetInCU: 0x35, offset: 0x55EAC, size: 0x8, addend: 0x0, symName: '+[UIView(PropertyBag) loadPropertyBag]', symObjAddr: 0x4, symBinAddr: 0x5BCC, symSize: 0x84 }
- - { offsetInCU: 0x5B, offset: 0x55ED2, size: 0x8, addend: 0x0, symName: _loadPropertyBag.onceToken, symObjAddr: 0x2910, symBinAddr: 0xC6F0, symSize: 0x0 }
- - { offsetInCU: 0xBF, offset: 0x55F36, size: 0x8, addend: 0x0, symName: __propertyBagHolder, symObjAddr: 0x2918, symBinAddr: 0xC728, symSize: 0x0 }
- - { offsetInCU: 0xE4, offset: 0x55F5B, size: 0x8, addend: 0x0, symName: '+[UIView(PropertyBag) load]', symObjAddr: 0x0, symBinAddr: 0x5BC8, symSize: 0x4 }
- - { offsetInCU: 0x163, offset: 0x55FDA, size: 0x8, addend: 0x0, symName: '___38+[UIView(PropertyBag) loadPropertyBag]_block_invoke', symObjAddr: 0x88, symBinAddr: 0x5C50, symSize: 0x4C }
- - { offsetInCU: 0x1FA, offset: 0x56071, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) propertyValueForKey:]', symObjAddr: 0xD4, symBinAddr: 0x5C9C, symSize: 0x6C }
- - { offsetInCU: 0x241, offset: 0x560B8, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) setPropertyValue:forKey:]', symObjAddr: 0x140, symBinAddr: 0x5D08, symSize: 0x74 }
- - { offsetInCU: 0x294, offset: 0x5610B, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) propertyBag]', symObjAddr: 0x1B4, symBinAddr: 0x5D7C, symSize: 0xCC }
- - { offsetInCU: 0x2DB, offset: 0x56152, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) setPropertyBag:]', symObjAddr: 0x280, symBinAddr: 0x5E48, symSize: 0xA8 }
- - { offsetInCU: 0x31E, offset: 0x56195, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) removePropertyBag]', symObjAddr: 0x328, symBinAddr: 0x5EF0, symSize: 0x70 }
- - { offsetInCU: 0x351, offset: 0x561C8, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) propertyBag_dealloc]', symObjAddr: 0x398, symBinAddr: 0x5F60, symSize: 0x24 }
- - { offsetInCU: 0x27, offset: 0x562F2, size: 0x8, addend: 0x0, symName: '+[UIView(PassThroughParent) load]', symObjAddr: 0x0, symBinAddr: 0x5F84, symSize: 0x4 }
- - { offsetInCU: 0x41, offset: 0x5630C, size: 0x8, addend: 0x0, symName: _TLKPassThroughParentKey, symObjAddr: 0x1F8, symBinAddr: 0x8180, symSize: 0x0 }
- - { offsetInCU: 0x55, offset: 0x56320, size: 0x8, addend: 0x0, symName: '+[UIView(PassThroughParent) loadHitTest]', symObjAddr: 0x4, symBinAddr: 0x5F88, symSize: 0x84 }
- - { offsetInCU: 0x7B, offset: 0x56346, size: 0x8, addend: 0x0, symName: _loadHitTest.onceToken, symObjAddr: 0x2498, symBinAddr: 0xC6F8, symSize: 0x0 }
- - { offsetInCU: 0xE8, offset: 0x563B3, size: 0x8, addend: 0x0, symName: '+[UIView(PassThroughParent) load]', symObjAddr: 0x0, symBinAddr: 0x5F84, symSize: 0x4 }
- - { offsetInCU: 0x168, offset: 0x56433, size: 0x8, addend: 0x0, symName: '___40+[UIView(PassThroughParent) loadHitTest]_block_invoke', symObjAddr: 0x88, symBinAddr: 0x600C, symSize: 0x40 }
- - { offsetInCU: 0x1A7, offset: 0x56472, size: 0x8, addend: 0x0, symName: '-[UIView(PassThroughParent) passThroughParent]', symObjAddr: 0xC8, symBinAddr: 0x604C, symSize: 0x54 }
- - { offsetInCU: 0x1EE, offset: 0x564B9, size: 0x8, addend: 0x0, symName: '-[UIView(PassThroughParent) setPassThroughParent:]', symObjAddr: 0x11C, symBinAddr: 0x60A0, symSize: 0x4C }
- - { offsetInCU: 0x231, offset: 0x564FC, size: 0x8, addend: 0x0, symName: '-[UIView(PassThroughParent) passThrough_hitTest:withEvent:]', symObjAddr: 0x168, symBinAddr: 0x60EC, symSize: 0x50 }
+ - { offsetInCU: 0x34, offset: 0x5401B, size: 0x8, addend: 0x0, symName: _TNSWidgetsVersionString, symObjAddr: 0x0, symBinAddr: 0x72D8, symSize: 0x0 }
+ - { offsetInCU: 0x69, offset: 0x54050, size: 0x8, addend: 0x0, symName: _TNSWidgetsVersionNumber, symObjAddr: 0x30, symBinAddr: 0x7308, symSize: 0x0 }
+ - { offsetInCU: 0x27, offset: 0x5408D, size: 0x8, addend: 0x0, symName: '-[TNSLabel textRectForBounds:limitedToNumberOfLines:]', symObjAddr: 0x0, symBinAddr: 0x4180, symSize: 0x1E0 }
+ - { offsetInCU: 0xAB, offset: 0x54111, size: 0x8, addend: 0x0, symName: '-[TNSLabel textRectForBounds:limitedToNumberOfLines:]', symObjAddr: 0x0, symBinAddr: 0x4180, symSize: 0x1E0 }
+ - { offsetInCU: 0x182, offset: 0x541E8, size: 0x8, addend: 0x0, symName: '-[TNSLabel drawTextInRect:]', symObjAddr: 0x1E0, symBinAddr: 0x4360, symSize: 0xA8 }
+ - { offsetInCU: 0x215, offset: 0x5427B, size: 0x8, addend: 0x0, symName: '-[TNSLabel padding]', symObjAddr: 0x288, symBinAddr: 0x4408, symSize: 0x18 }
+ - { offsetInCU: 0x24A, offset: 0x542B0, size: 0x8, addend: 0x0, symName: '-[TNSLabel setPadding:]', symObjAddr: 0x2A0, symBinAddr: 0x4420, symSize: 0x18 }
+ - { offsetInCU: 0x289, offset: 0x542EF, size: 0x8, addend: 0x0, symName: '-[TNSLabel borderThickness]', symObjAddr: 0x2B8, symBinAddr: 0x4438, symSize: 0x18 }
+ - { offsetInCU: 0x2BE, offset: 0x54324, size: 0x8, addend: 0x0, symName: '-[TNSLabel setBorderThickness:]', symObjAddr: 0x2D0, symBinAddr: 0x4450, symSize: 0x18 }
+ - { offsetInCU: 0x27, offset: 0x543AE, size: 0x8, addend: 0x0, symName: ___tns_uptime, symObjAddr: 0x0, symBinAddr: 0x4468, symSize: 0xF0 }
+ - { offsetInCU: 0x59, offset: 0x543E0, size: 0x8, addend: 0x0, symName: ___tns_uptime, symObjAddr: 0x0, symBinAddr: 0x4468, symSize: 0xF0 }
+ - { offsetInCU: 0x186, offset: 0x5450D, size: 0x8, addend: 0x0, symName: ___nslog, symObjAddr: 0xF0, symBinAddr: 0x4558, symSize: 0x28 }
+ - { offsetInCU: 0x27, offset: 0x54573, size: 0x8, addend: 0x0, symName: '-[NSFileHandle(Async) appendData:completion:]', symObjAddr: 0x0, symBinAddr: 0x4580, symSize: 0xDC }
+ - { offsetInCU: 0x4A, offset: 0x54596, size: 0x8, addend: 0x0, symName: '-[NSFileHandle(Async) appendData:completion:]', symObjAddr: 0x0, symBinAddr: 0x4580, symSize: 0xDC }
+ - { offsetInCU: 0x129, offset: 0x54675, size: 0x8, addend: 0x0, symName: '___45-[NSFileHandle(Async) appendData:completion:]_block_invoke', symObjAddr: 0xDC, symBinAddr: 0x465C, symSize: 0x28C }
+ - { offsetInCU: 0x1DF, offset: 0x5472B, size: 0x8, addend: 0x0, symName: '___45-[NSFileHandle(Async) appendData:completion:]_block_invoke_2', symObjAddr: 0x368, symBinAddr: 0x48E8, symSize: 0x10 }
+ - { offsetInCU: 0x236, offset: 0x54782, size: 0x8, addend: 0x0, symName: ___copy_helper_block_e8_32s40b, symObjAddr: 0x378, symBinAddr: 0x48F8, symSize: 0x34 }
+ - { offsetInCU: 0x25F, offset: 0x547AB, size: 0x8, addend: 0x0, symName: ___destroy_helper_block_e8_32s40s, symObjAddr: 0x3AC, symBinAddr: 0x492C, symSize: 0x28 }
+ - { offsetInCU: 0x27E, offset: 0x547CA, size: 0x8, addend: 0x0, symName: ___copy_helper_block_e8_32s40s48b, symObjAddr: 0x3D4, symBinAddr: 0x4954, symSize: 0x3C }
+ - { offsetInCU: 0x2A7, offset: 0x547F3, size: 0x8, addend: 0x0, symName: ___destroy_helper_block_e8_32s40s48s, symObjAddr: 0x410, symBinAddr: 0x4990, symSize: 0x30 }
+ - { offsetInCU: 0x2C6, offset: 0x54812, size: 0x8, addend: 0x0, symName: '+[NSFileHandle(Async) fileHandleWith:data:completion:]', symObjAddr: 0x440, symBinAddr: 0x49C0, symSize: 0x104 }
+ - { offsetInCU: 0x367, offset: 0x548B3, size: 0x8, addend: 0x0, symName: '___54+[NSFileHandle(Async) fileHandleWith:data:completion:]_block_invoke', symObjAddr: 0x544, symBinAddr: 0x4AC4, symSize: 0x2D0 }
+ - { offsetInCU: 0x429, offset: 0x54975, size: 0x8, addend: 0x0, symName: '___54+[NSFileHandle(Async) fileHandleWith:data:completion:]_block_invoke_2', symObjAddr: 0x814, symBinAddr: 0x4D94, symSize: 0x14 }
+ - { offsetInCU: 0x27, offset: 0x54D15, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) initialize]', symObjAddr: 0x0, symBinAddr: 0x4DA8, symSize: 0x30 }
+ - { offsetInCU: 0x4F, offset: 0x54D3D, size: 0x8, addend: 0x0, symName: _image_queue, symObjAddr: 0x3E38, symBinAddr: 0xC6E8, symSize: 0x0 }
+ - { offsetInCU: 0x68, offset: 0x54D56, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) initialize]', symObjAddr: 0x0, symBinAddr: 0x4DA8, symSize: 0x30 }
+ - { offsetInCU: 0xCE, offset: 0x54DBC, size: 0x8, addend: 0x0, symName: '-[UIImage(TNSBlocks) tns_forceDecode]', symObjAddr: 0x30, symBinAddr: 0x4DD8, symSize: 0x94 }
+ - { offsetInCU: 0x23B, offset: 0x54F29, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) tns_safeDecodeImageNamed:completion:]', symObjAddr: 0xC4, symBinAddr: 0x4E6C, symSize: 0xB8 }
+ - { offsetInCU: 0x2C7, offset: 0x54FB5, size: 0x8, addend: 0x0, symName: '___58+[UIImage(TNSBlocks) tns_safeDecodeImageNamed:completion:]_block_invoke', symObjAddr: 0x17C, symBinAddr: 0x4F24, symSize: 0xC8 }
+ - { offsetInCU: 0x347, offset: 0x55035, size: 0x8, addend: 0x0, symName: '___58+[UIImage(TNSBlocks) tns_safeDecodeImageNamed:completion:]_block_invoke_2', symObjAddr: 0x244, symBinAddr: 0x4FEC, symSize: 0x10 }
+ - { offsetInCU: 0x39E, offset: 0x5508C, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) tns_safeImageNamed:]', symObjAddr: 0x2B0, symBinAddr: 0x4FFC, symSize: 0x64 }
+ - { offsetInCU: 0x3F1, offset: 0x550DF, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) tns_decodeImageWithData:completion:]', symObjAddr: 0x314, symBinAddr: 0x5060, symSize: 0xB8 }
+ - { offsetInCU: 0x45D, offset: 0x5514B, size: 0x8, addend: 0x0, symName: '___57+[UIImage(TNSBlocks) tns_decodeImageWithData:completion:]_block_invoke', symObjAddr: 0x3CC, symBinAddr: 0x5118, symSize: 0xC8 }
+ - { offsetInCU: 0x4DD, offset: 0x551CB, size: 0x8, addend: 0x0, symName: '___57+[UIImage(TNSBlocks) tns_decodeImageWithData:completion:]_block_invoke_2', symObjAddr: 0x494, symBinAddr: 0x51E0, symSize: 0x10 }
+ - { offsetInCU: 0x534, offset: 0x55222, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) tns_decodeImageWidthContentsOfFile:completion:]', symObjAddr: 0x4A4, symBinAddr: 0x51F0, symSize: 0xB8 }
+ - { offsetInCU: 0x5A0, offset: 0x5528E, size: 0x8, addend: 0x0, symName: '___68+[UIImage(TNSBlocks) tns_decodeImageWidthContentsOfFile:completion:]_block_invoke', symObjAddr: 0x55C, symBinAddr: 0x52A8, symSize: 0xC8 }
+ - { offsetInCU: 0x620, offset: 0x5530E, size: 0x8, addend: 0x0, symName: '___68+[UIImage(TNSBlocks) tns_decodeImageWidthContentsOfFile:completion:]_block_invoke_2', symObjAddr: 0x624, symBinAddr: 0x5370, symSize: 0x10 }
+ - { offsetInCU: 0x27, offset: 0x556E9, size: 0x8, addend: 0x0, symName: '+[NSObject(Swizzling) swizzleInstanceMethodWithOriginalSelector:fromClass:withSwizzlingSelector:]', symObjAddr: 0x0, symBinAddr: 0x5380, symSize: 0x70 }
+ - { offsetInCU: 0x43, offset: 0x55705, size: 0x8, addend: 0x0, symName: '+[NSObject(Swizzling) swizzleInstanceMethodWithOriginalSelector:fromClass:withSwizzlingSelector:]', symObjAddr: 0x0, symBinAddr: 0x5380, symSize: 0x70 }
+ - { offsetInCU: 0x139, offset: 0x557FB, size: 0x8, addend: 0x0, symName: '+[NSObject(Swizzling) swizzleMethodWithOriginalSelector:originalMethod:fromClass:withSwizzlingSelector:swizzlingMethod:]', symObjAddr: 0x70, symBinAddr: 0x53F0, symSize: 0x120 }
+ - { offsetInCU: 0x27, offset: 0x55AB0, size: 0x8, addend: 0x0, symName: '+[NSString(Async) stringWithContentsOfFile:encoding:completion:]', symObjAddr: 0x0, symBinAddr: 0x5510, symSize: 0xDC }
+ - { offsetInCU: 0x4A, offset: 0x55AD3, size: 0x8, addend: 0x0, symName: '+[NSString(Async) stringWithContentsOfFile:encoding:completion:]', symObjAddr: 0x0, symBinAddr: 0x5510, symSize: 0xDC }
+ - { offsetInCU: 0x135, offset: 0x55BBE, size: 0x8, addend: 0x0, symName: '___64+[NSString(Async) stringWithContentsOfFile:encoding:completion:]_block_invoke', symObjAddr: 0xDC, symBinAddr: 0x55EC, symSize: 0xEC }
+ - { offsetInCU: 0x1D5, offset: 0x55C5E, size: 0x8, addend: 0x0, symName: '___64+[NSString(Async) stringWithContentsOfFile:encoding:completion:]_block_invoke_2', symObjAddr: 0x1C8, symBinAddr: 0x56D8, symSize: 0x14 }
+ - { offsetInCU: 0x23C, offset: 0x55CC5, size: 0x8, addend: 0x0, symName: '-[NSString(Async) writeToFile:atomically:encoding:completion:]', symObjAddr: 0x2A4, symBinAddr: 0x56EC, symSize: 0xF0 }
+ - { offsetInCU: 0x2ED, offset: 0x55D76, size: 0x8, addend: 0x0, symName: '___62-[NSString(Async) writeToFile:atomically:encoding:completion:]_block_invoke', symObjAddr: 0x394, symBinAddr: 0x57DC, symSize: 0xB8 }
+ - { offsetInCU: 0x3A1, offset: 0x55E2A, size: 0x8, addend: 0x0, symName: '___62-[NSString(Async) writeToFile:atomically:encoding:completion:]_block_invoke_2', symObjAddr: 0x44C, symBinAddr: 0x5894, symSize: 0x10 }
+ - { offsetInCU: 0x27, offset: 0x561CA, size: 0x8, addend: 0x0, symName: '+[NSData(Async) dataWithContentsOfFile:completion:]', symObjAddr: 0x0, symBinAddr: 0x58A4, symSize: 0xD4 }
+ - { offsetInCU: 0x4A, offset: 0x561ED, size: 0x8, addend: 0x0, symName: '+[NSData(Async) dataWithContentsOfFile:completion:]', symObjAddr: 0x0, symBinAddr: 0x58A4, symSize: 0xD4 }
+ - { offsetInCU: 0x180, offset: 0x56323, size: 0x8, addend: 0x0, symName: '___51+[NSData(Async) dataWithContentsOfFile:completion:]_block_invoke', symObjAddr: 0xD4, symBinAddr: 0x5978, symSize: 0xAC }
+ - { offsetInCU: 0x200, offset: 0x563A3, size: 0x8, addend: 0x0, symName: '___51+[NSData(Async) dataWithContentsOfFile:completion:]_block_invoke_2', symObjAddr: 0x180, symBinAddr: 0x5A24, symSize: 0x10 }
+ - { offsetInCU: 0x257, offset: 0x563FA, size: 0x8, addend: 0x0, symName: '-[NSData(Async) writeToFile:atomically:completion:]', symObjAddr: 0x1EC, symBinAddr: 0x5A34, symSize: 0xEC }
+ - { offsetInCU: 0x2F8, offset: 0x5649B, size: 0x8, addend: 0x0, symName: '___51-[NSData(Async) writeToFile:atomically:completion:]_block_invoke', symObjAddr: 0x2D8, symBinAddr: 0x5B20, symSize: 0x84 }
+ - { offsetInCU: 0x37D, offset: 0x56520, size: 0x8, addend: 0x0, symName: '___51-[NSData(Async) writeToFile:atomically:completion:]_block_invoke_2', symObjAddr: 0x35C, symBinAddr: 0x5BA4, symSize: 0xC }
+ - { offsetInCU: 0x3C4, offset: 0x56567, size: 0x8, addend: 0x0, symName: ___copy_helper_block_e8_32b, symObjAddr: 0x368, symBinAddr: 0x5BB0, symSize: 0x10 }
+ - { offsetInCU: 0x3ED, offset: 0x56590, size: 0x8, addend: 0x0, symName: ___destroy_helper_block_e8_32s, symObjAddr: 0x378, symBinAddr: 0x5BC0, symSize: 0x8 }
+ - { offsetInCU: 0x27, offset: 0x56876, size: 0x8, addend: 0x0, symName: '+[UIView(PropertyBag) load]', symObjAddr: 0x0, symBinAddr: 0x5BC8, symSize: 0x4 }
+ - { offsetInCU: 0x35, offset: 0x56884, size: 0x8, addend: 0x0, symName: '+[UIView(PropertyBag) loadPropertyBag]', symObjAddr: 0x4, symBinAddr: 0x5BCC, symSize: 0x84 }
+ - { offsetInCU: 0x5B, offset: 0x568AA, size: 0x8, addend: 0x0, symName: _loadPropertyBag.onceToken, symObjAddr: 0x2910, symBinAddr: 0xC6F0, symSize: 0x0 }
+ - { offsetInCU: 0xBF, offset: 0x5690E, size: 0x8, addend: 0x0, symName: __propertyBagHolder, symObjAddr: 0x2918, symBinAddr: 0xC728, symSize: 0x0 }
+ - { offsetInCU: 0xE4, offset: 0x56933, size: 0x8, addend: 0x0, symName: '+[UIView(PropertyBag) load]', symObjAddr: 0x0, symBinAddr: 0x5BC8, symSize: 0x4 }
+ - { offsetInCU: 0x163, offset: 0x569B2, size: 0x8, addend: 0x0, symName: '___38+[UIView(PropertyBag) loadPropertyBag]_block_invoke', symObjAddr: 0x88, symBinAddr: 0x5C50, symSize: 0x4C }
+ - { offsetInCU: 0x1FA, offset: 0x56A49, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) propertyValueForKey:]', symObjAddr: 0xD4, symBinAddr: 0x5C9C, symSize: 0x6C }
+ - { offsetInCU: 0x241, offset: 0x56A90, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) setPropertyValue:forKey:]', symObjAddr: 0x140, symBinAddr: 0x5D08, symSize: 0x74 }
+ - { offsetInCU: 0x294, offset: 0x56AE3, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) propertyBag]', symObjAddr: 0x1B4, symBinAddr: 0x5D7C, symSize: 0xCC }
+ - { offsetInCU: 0x2DB, offset: 0x56B2A, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) setPropertyBag:]', symObjAddr: 0x280, symBinAddr: 0x5E48, symSize: 0xA8 }
+ - { offsetInCU: 0x31E, offset: 0x56B6D, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) removePropertyBag]', symObjAddr: 0x328, symBinAddr: 0x5EF0, symSize: 0x70 }
+ - { offsetInCU: 0x351, offset: 0x56BA0, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) propertyBag_dealloc]', symObjAddr: 0x398, symBinAddr: 0x5F60, symSize: 0x24 }
+ - { offsetInCU: 0x27, offset: 0x56CCA, size: 0x8, addend: 0x0, symName: '+[UIView(PassThroughParent) load]', symObjAddr: 0x0, symBinAddr: 0x5F84, symSize: 0x4 }
+ - { offsetInCU: 0x41, offset: 0x56CE4, size: 0x8, addend: 0x0, symName: _TLKPassThroughParentKey, symObjAddr: 0x1F8, symBinAddr: 0x8180, symSize: 0x0 }
+ - { offsetInCU: 0x55, offset: 0x56CF8, size: 0x8, addend: 0x0, symName: '+[UIView(PassThroughParent) loadHitTest]', symObjAddr: 0x4, symBinAddr: 0x5F88, symSize: 0x84 }
+ - { offsetInCU: 0x7B, offset: 0x56D1E, size: 0x8, addend: 0x0, symName: _loadHitTest.onceToken, symObjAddr: 0x24A0, symBinAddr: 0xC6F8, symSize: 0x0 }
+ - { offsetInCU: 0xE8, offset: 0x56D8B, size: 0x8, addend: 0x0, symName: '+[UIView(PassThroughParent) load]', symObjAddr: 0x0, symBinAddr: 0x5F84, symSize: 0x4 }
+ - { offsetInCU: 0x168, offset: 0x56E0B, size: 0x8, addend: 0x0, symName: '___40+[UIView(PassThroughParent) loadHitTest]_block_invoke', symObjAddr: 0x88, symBinAddr: 0x600C, symSize: 0x40 }
+ - { offsetInCU: 0x1A7, offset: 0x56E4A, size: 0x8, addend: 0x0, symName: '-[UIView(PassThroughParent) passThroughParent]', symObjAddr: 0xC8, symBinAddr: 0x604C, symSize: 0x54 }
+ - { offsetInCU: 0x1EE, offset: 0x56E91, size: 0x8, addend: 0x0, symName: '-[UIView(PassThroughParent) setPassThroughParent:]', symObjAddr: 0x11C, symBinAddr: 0x60A0, symSize: 0x4C }
+ - { offsetInCU: 0x231, offset: 0x56ED4, size: 0x8, addend: 0x0, symName: '-[UIView(PassThroughParent) passThrough_hitTest:withEvent:]', symObjAddr: 0x168, symBinAddr: 0x60EC, symSize: 0x50 }
...
diff --git a/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-simulator/dSYMs/TNSWidgets.framework.dSYM/Contents/Resources/Relocations/x86_64/TNSWidgets.yml b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-simulator/dSYMs/TNSWidgets.framework.dSYM/Contents/Resources/Relocations/x86_64/TNSWidgets.yml
index 20748dcfa4..169245fafc 100644
--- a/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-simulator/dSYMs/TNSWidgets.framework.dSYM/Contents/Resources/Relocations/x86_64/TNSWidgets.yml
+++ b/packages/core/platforms/ios/TNSWidgets.xcframework/ios-arm64_x86_64-simulator/dSYMs/TNSWidgets.framework.dSYM/Contents/Resources/Relocations/x86_64/TNSWidgets.yml
@@ -2,81 +2,81 @@
triple: 'x86_64-apple-darwin'
binary-path: '/Users/nstudio/Documents/github/NativeScript/NativeScript/packages/ui-mobile-base/ios/TNSWidgets/build/Release-iphonesimulator/TNSWidgets.framework/TNSWidgets'
relocations:
- - { offsetInCU: 0x34, offset: 0x54CA4, size: 0x8, addend: 0x0, symName: _TNSWidgetsVersionString, symObjAddr: 0x0, symBinAddr: 0x7280, symSize: 0x0 }
- - { offsetInCU: 0x69, offset: 0x54CD9, size: 0x8, addend: 0x0, symName: _TNSWidgetsVersionNumber, symObjAddr: 0x30, symBinAddr: 0x72B0, symSize: 0x0 }
- - { offsetInCU: 0x27, offset: 0x54D16, size: 0x8, addend: 0x0, symName: '-[TNSLabel textRectForBounds:limitedToNumberOfLines:]', symObjAddr: 0x0, symBinAddr: 0x4710, symSize: 0x388 }
- - { offsetInCU: 0xAB, offset: 0x54D9A, size: 0x8, addend: 0x0, symName: '-[TNSLabel textRectForBounds:limitedToNumberOfLines:]', symObjAddr: 0x0, symBinAddr: 0x4710, symSize: 0x388 }
- - { offsetInCU: 0x17F, offset: 0x54E6E, size: 0x8, addend: 0x0, symName: '-[TNSLabel drawTextInRect:]', symObjAddr: 0x388, symBinAddr: 0x4A98, symSize: 0xDD }
- - { offsetInCU: 0x1EB, offset: 0x54EDA, size: 0x8, addend: 0x0, symName: '-[TNSLabel padding]', symObjAddr: 0x465, symBinAddr: 0x4B75, symSize: 0x20 }
- - { offsetInCU: 0x220, offset: 0x54F0F, size: 0x8, addend: 0x0, symName: '-[TNSLabel setPadding:]', symObjAddr: 0x485, symBinAddr: 0x4B95, symSize: 0x1E }
- - { offsetInCU: 0x25E, offset: 0x54F4D, size: 0x8, addend: 0x0, symName: '-[TNSLabel borderThickness]', symObjAddr: 0x4A3, symBinAddr: 0x4BB3, symSize: 0x20 }
- - { offsetInCU: 0x293, offset: 0x54F82, size: 0x8, addend: 0x0, symName: '-[TNSLabel setBorderThickness:]', symObjAddr: 0x4C3, symBinAddr: 0x4BD3, symSize: 0x1E }
- - { offsetInCU: 0x27, offset: 0x5500B, size: 0x8, addend: 0x0, symName: ___tns_uptime, symObjAddr: 0x0, symBinAddr: 0x4BF1, symSize: 0xF8 }
- - { offsetInCU: 0x59, offset: 0x5503D, size: 0x8, addend: 0x0, symName: ___tns_uptime, symObjAddr: 0x0, symBinAddr: 0x4BF1, symSize: 0xF8 }
- - { offsetInCU: 0x1B5, offset: 0x55199, size: 0x8, addend: 0x0, symName: ___nslog, symObjAddr: 0xF8, symBinAddr: 0x4CE9, symSize: 0x17 }
- - { offsetInCU: 0x27, offset: 0x551FF, size: 0x8, addend: 0x0, symName: '-[NSFileHandle(Async) appendData:completion:]', symObjAddr: 0x0, symBinAddr: 0x4D00, symSize: 0xD4 }
- - { offsetInCU: 0x4A, offset: 0x55222, size: 0x8, addend: 0x0, symName: '-[NSFileHandle(Async) appendData:completion:]', symObjAddr: 0x0, symBinAddr: 0x4D00, symSize: 0xD4 }
- - { offsetInCU: 0x1CE, offset: 0x553A6, size: 0x8, addend: 0x0, symName: '___45-[NSFileHandle(Async) appendData:completion:]_block_invoke', symObjAddr: 0xD4, symBinAddr: 0x4DD4, symSize: 0x304 }
- - { offsetInCU: 0x4C1, offset: 0x55699, size: 0x8, addend: 0x0, symName: '___45-[NSFileHandle(Async) appendData:completion:]_block_invoke_2', symObjAddr: 0x3D8, symBinAddr: 0x50D8, symSize: 0x13 }
- - { offsetInCU: 0x518, offset: 0x556F0, size: 0x8, addend: 0x0, symName: ___copy_helper_block_e8_32s40b, symObjAddr: 0x3EB, symBinAddr: 0x50EB, symSize: 0x30 }
- - { offsetInCU: 0x54D, offset: 0x55725, size: 0x8, addend: 0x0, symName: ___destroy_helper_block_e8_32s40s, symObjAddr: 0x41B, symBinAddr: 0x511B, symSize: 0x25 }
- - { offsetInCU: 0x584, offset: 0x5575C, size: 0x8, addend: 0x0, symName: ___copy_helper_block_e8_32s40s48b, symObjAddr: 0x440, symBinAddr: 0x5140, symSize: 0x44 }
- - { offsetInCU: 0x5C5, offset: 0x5579D, size: 0x8, addend: 0x0, symName: ___destroy_helper_block_e8_32s40s48s, symObjAddr: 0x484, symBinAddr: 0x5184, symSize: 0x2C }
- - { offsetInCU: 0x608, offset: 0x557E0, size: 0x8, addend: 0x0, symName: '+[NSFileHandle(Async) fileHandleWith:data:completion:]', symObjAddr: 0x4B0, symBinAddr: 0x51B0, symSize: 0xF1 }
- - { offsetInCU: 0x798, offset: 0x55970, size: 0x8, addend: 0x0, symName: '___54+[NSFileHandle(Async) fileHandleWith:data:completion:]_block_invoke', symObjAddr: 0x5A1, symBinAddr: 0x52A1, symSize: 0x348 }
- - { offsetInCU: 0xAEA, offset: 0x55CC2, size: 0x8, addend: 0x0, symName: '___54+[NSFileHandle(Async) fileHandleWith:data:completion:]_block_invoke_2', symObjAddr: 0x8E9, symBinAddr: 0x55E9, symSize: 0x27 }
- - { offsetInCU: 0x27, offset: 0x56062, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) initialize]', symObjAddr: 0x0, symBinAddr: 0x5610, symSize: 0x27 }
- - { offsetInCU: 0x4F, offset: 0x5608A, size: 0x8, addend: 0x0, symName: _image_queue, symObjAddr: 0x4550, symBinAddr: 0x8D30, symSize: 0x0 }
- - { offsetInCU: 0x68, offset: 0x560A3, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) initialize]', symObjAddr: 0x0, symBinAddr: 0x5610, symSize: 0x27 }
- - { offsetInCU: 0x131, offset: 0x5616C, size: 0x8, addend: 0x0, symName: '-[UIImage(TNSBlocks) tns_forceDecode]', symObjAddr: 0x27, symBinAddr: 0x5637, symSize: 0xB2 }
- - { offsetInCU: 0x2E8, offset: 0x56323, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) tns_safeDecodeImageNamed:completion:]', symObjAddr: 0xD9, symBinAddr: 0x56E9, symSize: 0xB3 }
- - { offsetInCU: 0x3FD, offset: 0x56438, size: 0x8, addend: 0x0, symName: '___58+[UIImage(TNSBlocks) tns_safeDecodeImageNamed:completion:]_block_invoke', symObjAddr: 0x18C, symBinAddr: 0x579C, symSize: 0xD9 }
- - { offsetInCU: 0x4DD, offset: 0x56518, size: 0x8, addend: 0x0, symName: '___58+[UIImage(TNSBlocks) tns_safeDecodeImageNamed:completion:]_block_invoke_2', symObjAddr: 0x265, symBinAddr: 0x5875, symSize: 0x13 }
- - { offsetInCU: 0x534, offset: 0x5656F, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) tns_safeImageNamed:]', symObjAddr: 0x2CD, symBinAddr: 0x5888, symSize: 0x63 }
- - { offsetInCU: 0x5BC, offset: 0x565F7, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) tns_decodeImageWithData:completion:]', symObjAddr: 0x330, symBinAddr: 0x58EB, symSize: 0xB3 }
- - { offsetInCU: 0x6B1, offset: 0x566EC, size: 0x8, addend: 0x0, symName: '___57+[UIImage(TNSBlocks) tns_decodeImageWithData:completion:]_block_invoke', symObjAddr: 0x3E3, symBinAddr: 0x599E, symSize: 0xD9 }
- - { offsetInCU: 0x791, offset: 0x567CC, size: 0x8, addend: 0x0, symName: '___57+[UIImage(TNSBlocks) tns_decodeImageWithData:completion:]_block_invoke_2', symObjAddr: 0x4BC, symBinAddr: 0x5A77, symSize: 0x13 }
- - { offsetInCU: 0x7E8, offset: 0x56823, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) tns_decodeImageWidthContentsOfFile:completion:]', symObjAddr: 0x4CF, symBinAddr: 0x5A8A, symSize: 0xB3 }
- - { offsetInCU: 0x8DD, offset: 0x56918, size: 0x8, addend: 0x0, symName: '___68+[UIImage(TNSBlocks) tns_decodeImageWidthContentsOfFile:completion:]_block_invoke', symObjAddr: 0x582, symBinAddr: 0x5B3D, symSize: 0xD9 }
- - { offsetInCU: 0x9BD, offset: 0x569F8, size: 0x8, addend: 0x0, symName: '___68+[UIImage(TNSBlocks) tns_decodeImageWidthContentsOfFile:completion:]_block_invoke_2', symObjAddr: 0x65B, symBinAddr: 0x5C16, symSize: 0x13 }
- - { offsetInCU: 0x27, offset: 0x56DD3, size: 0x8, addend: 0x0, symName: '+[NSObject(Swizzling) swizzleInstanceMethodWithOriginalSelector:fromClass:withSwizzlingSelector:]', symObjAddr: 0x0, symBinAddr: 0x5C29, symSize: 0x78 }
- - { offsetInCU: 0x43, offset: 0x56DEF, size: 0x8, addend: 0x0, symName: '+[NSObject(Swizzling) swizzleInstanceMethodWithOriginalSelector:fromClass:withSwizzlingSelector:]', symObjAddr: 0x0, symBinAddr: 0x5C29, symSize: 0x78 }
- - { offsetInCU: 0x17F, offset: 0x56F2B, size: 0x8, addend: 0x0, symName: '+[NSObject(Swizzling) swizzleMethodWithOriginalSelector:originalMethod:fromClass:withSwizzlingSelector:swizzlingMethod:]', symObjAddr: 0x78, symBinAddr: 0x5CA1, symSize: 0x122 }
- - { offsetInCU: 0x27, offset: 0x5720D, size: 0x8, addend: 0x0, symName: '+[NSString(Async) stringWithContentsOfFile:encoding:completion:]', symObjAddr: 0x0, symBinAddr: 0x5DC3, symSize: 0xDD }
- - { offsetInCU: 0x4A, offset: 0x57230, size: 0x8, addend: 0x0, symName: '+[NSString(Async) stringWithContentsOfFile:encoding:completion:]', symObjAddr: 0x0, symBinAddr: 0x5DC3, symSize: 0xDD }
- - { offsetInCU: 0x1DA, offset: 0x573C0, size: 0x8, addend: 0x0, symName: '___64+[NSString(Async) stringWithContentsOfFile:encoding:completion:]_block_invoke', symObjAddr: 0xDD, symBinAddr: 0x5EA0, symSize: 0xF1 }
- - { offsetInCU: 0x30E, offset: 0x574F4, size: 0x8, addend: 0x0, symName: '___64+[NSString(Async) stringWithContentsOfFile:encoding:completion:]_block_invoke_2', symObjAddr: 0x1CE, symBinAddr: 0x5F91, symSize: 0x1A }
- - { offsetInCU: 0x375, offset: 0x5755B, size: 0x8, addend: 0x0, symName: '-[NSString(Async) writeToFile:atomically:encoding:completion:]', symObjAddr: 0x2AD, symBinAddr: 0x5FAB, symSize: 0xEB }
- - { offsetInCU: 0x4CE, offset: 0x576B4, size: 0x8, addend: 0x0, symName: '___62-[NSString(Async) writeToFile:atomically:encoding:completion:]_block_invoke', symObjAddr: 0x398, symBinAddr: 0x6096, symSize: 0xC9 }
- - { offsetInCU: 0x5EE, offset: 0x577D4, size: 0x8, addend: 0x0, symName: '___62-[NSString(Async) writeToFile:atomically:encoding:completion:]_block_invoke_2', symObjAddr: 0x461, symBinAddr: 0x615F, symSize: 0x13 }
- - { offsetInCU: 0x27, offset: 0x57B74, size: 0x8, addend: 0x0, symName: '+[NSData(Async) dataWithContentsOfFile:completion:]', symObjAddr: 0x0, symBinAddr: 0x6172, symSize: 0xC6 }
- - { offsetInCU: 0x4A, offset: 0x57B97, size: 0x8, addend: 0x0, symName: '+[NSData(Async) dataWithContentsOfFile:completion:]', symObjAddr: 0x0, symBinAddr: 0x6172, symSize: 0xC6 }
- - { offsetInCU: 0x225, offset: 0x57D72, size: 0x8, addend: 0x0, symName: '___51+[NSData(Async) dataWithContentsOfFile:completion:]_block_invoke', symObjAddr: 0xC6, symBinAddr: 0x6238, symSize: 0xB4 }
- - { offsetInCU: 0x2F9, offset: 0x57E46, size: 0x8, addend: 0x0, symName: '___51+[NSData(Async) dataWithContentsOfFile:completion:]_block_invoke_2', symObjAddr: 0x17A, symBinAddr: 0x62EC, symSize: 0x13 }
- - { offsetInCU: 0x350, offset: 0x57E9D, size: 0x8, addend: 0x0, symName: '-[NSData(Async) writeToFile:atomically:completion:]', symObjAddr: 0x1E2, symBinAddr: 0x62FF, symSize: 0xE6 }
- - { offsetInCU: 0x499, offset: 0x57FE6, size: 0x8, addend: 0x0, symName: '___51-[NSData(Async) writeToFile:atomically:completion:]_block_invoke', symObjAddr: 0x2C8, symBinAddr: 0x63E5, symSize: 0x84 }
- - { offsetInCU: 0x542, offset: 0x5808F, size: 0x8, addend: 0x0, symName: '___51-[NSData(Async) writeToFile:atomically:completion:]_block_invoke_2', symObjAddr: 0x34C, symBinAddr: 0x6469, symSize: 0xC }
- - { offsetInCU: 0x589, offset: 0x580D6, size: 0x8, addend: 0x0, symName: ___copy_helper_block_e8_32b, symObjAddr: 0x358, symBinAddr: 0x6475, symSize: 0x17 }
- - { offsetInCU: 0x5B2, offset: 0x580FF, size: 0x8, addend: 0x0, symName: ___destroy_helper_block_e8_32s, symObjAddr: 0x36F, symBinAddr: 0x648C, symSize: 0xF }
- - { offsetInCU: 0x27, offset: 0x583F1, size: 0x8, addend: 0x0, symName: '+[UIView(PropertyBag) load]', symObjAddr: 0x0, symBinAddr: 0x649B, symSize: 0x12 }
- - { offsetInCU: 0x35, offset: 0x583FF, size: 0x8, addend: 0x0, symName: '+[UIView(PropertyBag) loadPropertyBag]', symObjAddr: 0x12, symBinAddr: 0x64AD, symSize: 0x70 }
- - { offsetInCU: 0x5B, offset: 0x58425, size: 0x8, addend: 0x0, symName: _loadPropertyBag.onceToken, symObjAddr: 0x2ED8, symBinAddr: 0x8D38, symSize: 0x0 }
- - { offsetInCU: 0xBF, offset: 0x58489, size: 0x8, addend: 0x0, symName: __propertyBagHolder, symObjAddr: 0x2EE0, symBinAddr: 0x8D70, symSize: 0x0 }
- - { offsetInCU: 0xE4, offset: 0x584AE, size: 0x8, addend: 0x0, symName: '+[UIView(PropertyBag) load]', symObjAddr: 0x0, symBinAddr: 0x649B, symSize: 0x12 }
- - { offsetInCU: 0x178, offset: 0x58542, size: 0x8, addend: 0x0, symName: '___38+[UIView(PropertyBag) loadPropertyBag]_block_invoke', symObjAddr: 0x82, symBinAddr: 0x651D, symSize: 0x5A }
- - { offsetInCU: 0x23E, offset: 0x58608, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) propertyValueForKey:]', symObjAddr: 0xDC, symBinAddr: 0x6577, symSize: 0x7A }
- - { offsetInCU: 0x2DA, offset: 0x586A4, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) setPropertyValue:forKey:]', symObjAddr: 0x156, symBinAddr: 0x65F1, symSize: 0x8B }
- - { offsetInCU: 0x3B9, offset: 0x58783, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) propertyBag]', symObjAddr: 0x1E1, symBinAddr: 0x667C, symSize: 0xEA }
- - { offsetInCU: 0x474, offset: 0x5883E, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) setPropertyBag:]', symObjAddr: 0x2CB, symBinAddr: 0x6766, symSize: 0xC1 }
- - { offsetInCU: 0x543, offset: 0x5890D, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) removePropertyBag]', symObjAddr: 0x38C, symBinAddr: 0x6827, symSize: 0x76 }
- - { offsetInCU: 0x5B2, offset: 0x5897C, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) propertyBag_dealloc]', symObjAddr: 0x402, symBinAddr: 0x689D, symSize: 0x2E }
- - { offsetInCU: 0x27, offset: 0x58ACF, size: 0x8, addend: 0x0, symName: '+[UIView(PassThroughParent) load]', symObjAddr: 0x0, symBinAddr: 0x68CB, symSize: 0x12 }
- - { offsetInCU: 0x41, offset: 0x58AE9, size: 0x8, addend: 0x0, symName: _TLKPassThroughParentKey, symObjAddr: 0x210, symBinAddr: 0x8308, symSize: 0x0 }
- - { offsetInCU: 0x55, offset: 0x58AFD, size: 0x8, addend: 0x0, symName: '+[UIView(PassThroughParent) loadHitTest]', symObjAddr: 0x12, symBinAddr: 0x68DD, symSize: 0x70 }
- - { offsetInCU: 0x7B, offset: 0x58B23, size: 0x8, addend: 0x0, symName: _loadHitTest.onceToken, symObjAddr: 0x2790, symBinAddr: 0x8D40, symSize: 0x0 }
- - { offsetInCU: 0xE8, offset: 0x58B90, size: 0x8, addend: 0x0, symName: '+[UIView(PassThroughParent) load]', symObjAddr: 0x0, symBinAddr: 0x68CB, symSize: 0x12 }
- - { offsetInCU: 0x17D, offset: 0x58C25, size: 0x8, addend: 0x0, symName: '___40+[UIView(PassThroughParent) loadHitTest]_block_invoke', symObjAddr: 0x82, symBinAddr: 0x694D, symSize: 0x4F }
- - { offsetInCU: 0x1EB, offset: 0x58C93, size: 0x8, addend: 0x0, symName: '-[UIView(PassThroughParent) passThroughParent]', symObjAddr: 0xD1, symBinAddr: 0x699C, symSize: 0x54 }
- - { offsetInCU: 0x262, offset: 0x58D0A, size: 0x8, addend: 0x0, symName: '-[UIView(PassThroughParent) setPassThroughParent:]', symObjAddr: 0x125, symBinAddr: 0x69F0, symSize: 0x5A }
- - { offsetInCU: 0x2D9, offset: 0x58D81, size: 0x8, addend: 0x0, symName: '-[UIView(PassThroughParent) passThrough_hitTest:withEvent:]', symObjAddr: 0x17F, symBinAddr: 0x6A4A, symSize: 0x55 }
+ - { offsetInCU: 0x34, offset: 0x55654, size: 0x8, addend: 0x0, symName: _TNSWidgetsVersionString, symObjAddr: 0x0, symBinAddr: 0x4280, symSize: 0x0 }
+ - { offsetInCU: 0x69, offset: 0x55689, size: 0x8, addend: 0x0, symName: _TNSWidgetsVersionNumber, symObjAddr: 0x30, symBinAddr: 0x42B0, symSize: 0x0 }
+ - { offsetInCU: 0x27, offset: 0x556C6, size: 0x8, addend: 0x0, symName: '-[TNSLabel textRectForBounds:limitedToNumberOfLines:]', symObjAddr: 0x0, symBinAddr: 0x1710, symSize: 0x388 }
+ - { offsetInCU: 0xAB, offset: 0x5574A, size: 0x8, addend: 0x0, symName: '-[TNSLabel textRectForBounds:limitedToNumberOfLines:]', symObjAddr: 0x0, symBinAddr: 0x1710, symSize: 0x388 }
+ - { offsetInCU: 0x17F, offset: 0x5581E, size: 0x8, addend: 0x0, symName: '-[TNSLabel drawTextInRect:]', symObjAddr: 0x388, symBinAddr: 0x1A98, symSize: 0xDD }
+ - { offsetInCU: 0x1EB, offset: 0x5588A, size: 0x8, addend: 0x0, symName: '-[TNSLabel padding]', symObjAddr: 0x465, symBinAddr: 0x1B75, symSize: 0x20 }
+ - { offsetInCU: 0x220, offset: 0x558BF, size: 0x8, addend: 0x0, symName: '-[TNSLabel setPadding:]', symObjAddr: 0x485, symBinAddr: 0x1B95, symSize: 0x1E }
+ - { offsetInCU: 0x25E, offset: 0x558FD, size: 0x8, addend: 0x0, symName: '-[TNSLabel borderThickness]', symObjAddr: 0x4A3, symBinAddr: 0x1BB3, symSize: 0x20 }
+ - { offsetInCU: 0x293, offset: 0x55932, size: 0x8, addend: 0x0, symName: '-[TNSLabel setBorderThickness:]', symObjAddr: 0x4C3, symBinAddr: 0x1BD3, symSize: 0x1E }
+ - { offsetInCU: 0x27, offset: 0x559BB, size: 0x8, addend: 0x0, symName: ___tns_uptime, symObjAddr: 0x0, symBinAddr: 0x1BF1, symSize: 0xF8 }
+ - { offsetInCU: 0x59, offset: 0x559ED, size: 0x8, addend: 0x0, symName: ___tns_uptime, symObjAddr: 0x0, symBinAddr: 0x1BF1, symSize: 0xF8 }
+ - { offsetInCU: 0x1B5, offset: 0x55B49, size: 0x8, addend: 0x0, symName: ___nslog, symObjAddr: 0xF8, symBinAddr: 0x1CE9, symSize: 0x17 }
+ - { offsetInCU: 0x27, offset: 0x55BAF, size: 0x8, addend: 0x0, symName: '-[NSFileHandle(Async) appendData:completion:]', symObjAddr: 0x0, symBinAddr: 0x1D00, symSize: 0xD4 }
+ - { offsetInCU: 0x4A, offset: 0x55BD2, size: 0x8, addend: 0x0, symName: '-[NSFileHandle(Async) appendData:completion:]', symObjAddr: 0x0, symBinAddr: 0x1D00, symSize: 0xD4 }
+ - { offsetInCU: 0x1CE, offset: 0x55D56, size: 0x8, addend: 0x0, symName: '___45-[NSFileHandle(Async) appendData:completion:]_block_invoke', symObjAddr: 0xD4, symBinAddr: 0x1DD4, symSize: 0x304 }
+ - { offsetInCU: 0x4C1, offset: 0x56049, size: 0x8, addend: 0x0, symName: '___45-[NSFileHandle(Async) appendData:completion:]_block_invoke_2', symObjAddr: 0x3D8, symBinAddr: 0x20D8, symSize: 0x13 }
+ - { offsetInCU: 0x518, offset: 0x560A0, size: 0x8, addend: 0x0, symName: ___copy_helper_block_e8_32s40b, symObjAddr: 0x3EB, symBinAddr: 0x20EB, symSize: 0x30 }
+ - { offsetInCU: 0x54D, offset: 0x560D5, size: 0x8, addend: 0x0, symName: ___destroy_helper_block_e8_32s40s, symObjAddr: 0x41B, symBinAddr: 0x211B, symSize: 0x25 }
+ - { offsetInCU: 0x584, offset: 0x5610C, size: 0x8, addend: 0x0, symName: ___copy_helper_block_e8_32s40s48b, symObjAddr: 0x440, symBinAddr: 0x2140, symSize: 0x44 }
+ - { offsetInCU: 0x5C5, offset: 0x5614D, size: 0x8, addend: 0x0, symName: ___destroy_helper_block_e8_32s40s48s, symObjAddr: 0x484, symBinAddr: 0x2184, symSize: 0x2C }
+ - { offsetInCU: 0x608, offset: 0x56190, size: 0x8, addend: 0x0, symName: '+[NSFileHandle(Async) fileHandleWith:data:completion:]', symObjAddr: 0x4B0, symBinAddr: 0x21B0, symSize: 0xF1 }
+ - { offsetInCU: 0x798, offset: 0x56320, size: 0x8, addend: 0x0, symName: '___54+[NSFileHandle(Async) fileHandleWith:data:completion:]_block_invoke', symObjAddr: 0x5A1, symBinAddr: 0x22A1, symSize: 0x348 }
+ - { offsetInCU: 0xAEA, offset: 0x56672, size: 0x8, addend: 0x0, symName: '___54+[NSFileHandle(Async) fileHandleWith:data:completion:]_block_invoke_2', symObjAddr: 0x8E9, symBinAddr: 0x25E9, symSize: 0x27 }
+ - { offsetInCU: 0x27, offset: 0x56A12, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) initialize]', symObjAddr: 0x0, symBinAddr: 0x2610, symSize: 0x27 }
+ - { offsetInCU: 0x4F, offset: 0x56A3A, size: 0x8, addend: 0x0, symName: _image_queue, symObjAddr: 0x4550, symBinAddr: 0x5D30, symSize: 0x0 }
+ - { offsetInCU: 0x68, offset: 0x56A53, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) initialize]', symObjAddr: 0x0, symBinAddr: 0x2610, symSize: 0x27 }
+ - { offsetInCU: 0x131, offset: 0x56B1C, size: 0x8, addend: 0x0, symName: '-[UIImage(TNSBlocks) tns_forceDecode]', symObjAddr: 0x27, symBinAddr: 0x2637, symSize: 0xB2 }
+ - { offsetInCU: 0x2E8, offset: 0x56CD3, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) tns_safeDecodeImageNamed:completion:]', symObjAddr: 0xD9, symBinAddr: 0x26E9, symSize: 0xB3 }
+ - { offsetInCU: 0x3FD, offset: 0x56DE8, size: 0x8, addend: 0x0, symName: '___58+[UIImage(TNSBlocks) tns_safeDecodeImageNamed:completion:]_block_invoke', symObjAddr: 0x18C, symBinAddr: 0x279C, symSize: 0xD9 }
+ - { offsetInCU: 0x4DD, offset: 0x56EC8, size: 0x8, addend: 0x0, symName: '___58+[UIImage(TNSBlocks) tns_safeDecodeImageNamed:completion:]_block_invoke_2', symObjAddr: 0x265, symBinAddr: 0x2875, symSize: 0x13 }
+ - { offsetInCU: 0x534, offset: 0x56F1F, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) tns_safeImageNamed:]', symObjAddr: 0x2CD, symBinAddr: 0x2888, symSize: 0x63 }
+ - { offsetInCU: 0x5BC, offset: 0x56FA7, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) tns_decodeImageWithData:completion:]', symObjAddr: 0x330, symBinAddr: 0x28EB, symSize: 0xB3 }
+ - { offsetInCU: 0x6B1, offset: 0x5709C, size: 0x8, addend: 0x0, symName: '___57+[UIImage(TNSBlocks) tns_decodeImageWithData:completion:]_block_invoke', symObjAddr: 0x3E3, symBinAddr: 0x299E, symSize: 0xD9 }
+ - { offsetInCU: 0x791, offset: 0x5717C, size: 0x8, addend: 0x0, symName: '___57+[UIImage(TNSBlocks) tns_decodeImageWithData:completion:]_block_invoke_2', symObjAddr: 0x4BC, symBinAddr: 0x2A77, symSize: 0x13 }
+ - { offsetInCU: 0x7E8, offset: 0x571D3, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) tns_decodeImageWidthContentsOfFile:completion:]', symObjAddr: 0x4CF, symBinAddr: 0x2A8A, symSize: 0xB3 }
+ - { offsetInCU: 0x8DD, offset: 0x572C8, size: 0x8, addend: 0x0, symName: '___68+[UIImage(TNSBlocks) tns_decodeImageWidthContentsOfFile:completion:]_block_invoke', symObjAddr: 0x582, symBinAddr: 0x2B3D, symSize: 0xD9 }
+ - { offsetInCU: 0x9BD, offset: 0x573A8, size: 0x8, addend: 0x0, symName: '___68+[UIImage(TNSBlocks) tns_decodeImageWidthContentsOfFile:completion:]_block_invoke_2', symObjAddr: 0x65B, symBinAddr: 0x2C16, symSize: 0x13 }
+ - { offsetInCU: 0x27, offset: 0x57783, size: 0x8, addend: 0x0, symName: '+[NSObject(Swizzling) swizzleInstanceMethodWithOriginalSelector:fromClass:withSwizzlingSelector:]', symObjAddr: 0x0, symBinAddr: 0x2C29, symSize: 0x78 }
+ - { offsetInCU: 0x43, offset: 0x5779F, size: 0x8, addend: 0x0, symName: '+[NSObject(Swizzling) swizzleInstanceMethodWithOriginalSelector:fromClass:withSwizzlingSelector:]', symObjAddr: 0x0, symBinAddr: 0x2C29, symSize: 0x78 }
+ - { offsetInCU: 0x17F, offset: 0x578DB, size: 0x8, addend: 0x0, symName: '+[NSObject(Swizzling) swizzleMethodWithOriginalSelector:originalMethod:fromClass:withSwizzlingSelector:swizzlingMethod:]', symObjAddr: 0x78, symBinAddr: 0x2CA1, symSize: 0x122 }
+ - { offsetInCU: 0x27, offset: 0x57BBD, size: 0x8, addend: 0x0, symName: '+[NSString(Async) stringWithContentsOfFile:encoding:completion:]', symObjAddr: 0x0, symBinAddr: 0x2DC3, symSize: 0xDD }
+ - { offsetInCU: 0x4A, offset: 0x57BE0, size: 0x8, addend: 0x0, symName: '+[NSString(Async) stringWithContentsOfFile:encoding:completion:]', symObjAddr: 0x0, symBinAddr: 0x2DC3, symSize: 0xDD }
+ - { offsetInCU: 0x1DA, offset: 0x57D70, size: 0x8, addend: 0x0, symName: '___64+[NSString(Async) stringWithContentsOfFile:encoding:completion:]_block_invoke', symObjAddr: 0xDD, symBinAddr: 0x2EA0, symSize: 0xF1 }
+ - { offsetInCU: 0x30E, offset: 0x57EA4, size: 0x8, addend: 0x0, symName: '___64+[NSString(Async) stringWithContentsOfFile:encoding:completion:]_block_invoke_2', symObjAddr: 0x1CE, symBinAddr: 0x2F91, symSize: 0x1A }
+ - { offsetInCU: 0x375, offset: 0x57F0B, size: 0x8, addend: 0x0, symName: '-[NSString(Async) writeToFile:atomically:encoding:completion:]', symObjAddr: 0x2AD, symBinAddr: 0x2FAB, symSize: 0xEB }
+ - { offsetInCU: 0x4CE, offset: 0x58064, size: 0x8, addend: 0x0, symName: '___62-[NSString(Async) writeToFile:atomically:encoding:completion:]_block_invoke', symObjAddr: 0x398, symBinAddr: 0x3096, symSize: 0xC9 }
+ - { offsetInCU: 0x5EE, offset: 0x58184, size: 0x8, addend: 0x0, symName: '___62-[NSString(Async) writeToFile:atomically:encoding:completion:]_block_invoke_2', symObjAddr: 0x461, symBinAddr: 0x315F, symSize: 0x13 }
+ - { offsetInCU: 0x27, offset: 0x58524, size: 0x8, addend: 0x0, symName: '+[NSData(Async) dataWithContentsOfFile:completion:]', symObjAddr: 0x0, symBinAddr: 0x3172, symSize: 0xC6 }
+ - { offsetInCU: 0x4A, offset: 0x58547, size: 0x8, addend: 0x0, symName: '+[NSData(Async) dataWithContentsOfFile:completion:]', symObjAddr: 0x0, symBinAddr: 0x3172, symSize: 0xC6 }
+ - { offsetInCU: 0x225, offset: 0x58722, size: 0x8, addend: 0x0, symName: '___51+[NSData(Async) dataWithContentsOfFile:completion:]_block_invoke', symObjAddr: 0xC6, symBinAddr: 0x3238, symSize: 0xB4 }
+ - { offsetInCU: 0x2F9, offset: 0x587F6, size: 0x8, addend: 0x0, symName: '___51+[NSData(Async) dataWithContentsOfFile:completion:]_block_invoke_2', symObjAddr: 0x17A, symBinAddr: 0x32EC, symSize: 0x13 }
+ - { offsetInCU: 0x350, offset: 0x5884D, size: 0x8, addend: 0x0, symName: '-[NSData(Async) writeToFile:atomically:completion:]', symObjAddr: 0x1E2, symBinAddr: 0x32FF, symSize: 0xE6 }
+ - { offsetInCU: 0x499, offset: 0x58996, size: 0x8, addend: 0x0, symName: '___51-[NSData(Async) writeToFile:atomically:completion:]_block_invoke', symObjAddr: 0x2C8, symBinAddr: 0x33E5, symSize: 0x84 }
+ - { offsetInCU: 0x542, offset: 0x58A3F, size: 0x8, addend: 0x0, symName: '___51-[NSData(Async) writeToFile:atomically:completion:]_block_invoke_2', symObjAddr: 0x34C, symBinAddr: 0x3469, symSize: 0xC }
+ - { offsetInCU: 0x589, offset: 0x58A86, size: 0x8, addend: 0x0, symName: ___copy_helper_block_e8_32b, symObjAddr: 0x358, symBinAddr: 0x3475, symSize: 0x17 }
+ - { offsetInCU: 0x5B2, offset: 0x58AAF, size: 0x8, addend: 0x0, symName: ___destroy_helper_block_e8_32s, symObjAddr: 0x36F, symBinAddr: 0x348C, symSize: 0xF }
+ - { offsetInCU: 0x27, offset: 0x58DA1, size: 0x8, addend: 0x0, symName: '+[UIView(PropertyBag) load]', symObjAddr: 0x0, symBinAddr: 0x349B, symSize: 0x12 }
+ - { offsetInCU: 0x35, offset: 0x58DAF, size: 0x8, addend: 0x0, symName: '+[UIView(PropertyBag) loadPropertyBag]', symObjAddr: 0x12, symBinAddr: 0x34AD, symSize: 0x70 }
+ - { offsetInCU: 0x5B, offset: 0x58DD5, size: 0x8, addend: 0x0, symName: _loadPropertyBag.onceToken, symObjAddr: 0x2ED8, symBinAddr: 0x5D38, symSize: 0x0 }
+ - { offsetInCU: 0xBF, offset: 0x58E39, size: 0x8, addend: 0x0, symName: __propertyBagHolder, symObjAddr: 0x2EE0, symBinAddr: 0x5D70, symSize: 0x0 }
+ - { offsetInCU: 0xE4, offset: 0x58E5E, size: 0x8, addend: 0x0, symName: '+[UIView(PropertyBag) load]', symObjAddr: 0x0, symBinAddr: 0x349B, symSize: 0x12 }
+ - { offsetInCU: 0x178, offset: 0x58EF2, size: 0x8, addend: 0x0, symName: '___38+[UIView(PropertyBag) loadPropertyBag]_block_invoke', symObjAddr: 0x82, symBinAddr: 0x351D, symSize: 0x5A }
+ - { offsetInCU: 0x23E, offset: 0x58FB8, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) propertyValueForKey:]', symObjAddr: 0xDC, symBinAddr: 0x3577, symSize: 0x7A }
+ - { offsetInCU: 0x2DA, offset: 0x59054, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) setPropertyValue:forKey:]', symObjAddr: 0x156, symBinAddr: 0x35F1, symSize: 0x8B }
+ - { offsetInCU: 0x3B9, offset: 0x59133, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) propertyBag]', symObjAddr: 0x1E1, symBinAddr: 0x367C, symSize: 0xEA }
+ - { offsetInCU: 0x474, offset: 0x591EE, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) setPropertyBag:]', symObjAddr: 0x2CB, symBinAddr: 0x3766, symSize: 0xC1 }
+ - { offsetInCU: 0x543, offset: 0x592BD, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) removePropertyBag]', symObjAddr: 0x38C, symBinAddr: 0x3827, symSize: 0x76 }
+ - { offsetInCU: 0x5B2, offset: 0x5932C, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) propertyBag_dealloc]', symObjAddr: 0x402, symBinAddr: 0x389D, symSize: 0x2E }
+ - { offsetInCU: 0x27, offset: 0x5947F, size: 0x8, addend: 0x0, symName: '+[UIView(PassThroughParent) load]', symObjAddr: 0x0, symBinAddr: 0x38CB, symSize: 0x12 }
+ - { offsetInCU: 0x41, offset: 0x59499, size: 0x8, addend: 0x0, symName: _TLKPassThroughParentKey, symObjAddr: 0x210, symBinAddr: 0x5308, symSize: 0x0 }
+ - { offsetInCU: 0x55, offset: 0x594AD, size: 0x8, addend: 0x0, symName: '+[UIView(PassThroughParent) loadHitTest]', symObjAddr: 0x12, symBinAddr: 0x38DD, symSize: 0x70 }
+ - { offsetInCU: 0x7B, offset: 0x594D3, size: 0x8, addend: 0x0, symName: _loadHitTest.onceToken, symObjAddr: 0x2790, symBinAddr: 0x5D40, symSize: 0x0 }
+ - { offsetInCU: 0xE8, offset: 0x59540, size: 0x8, addend: 0x0, symName: '+[UIView(PassThroughParent) load]', symObjAddr: 0x0, symBinAddr: 0x38CB, symSize: 0x12 }
+ - { offsetInCU: 0x17D, offset: 0x595D5, size: 0x8, addend: 0x0, symName: '___40+[UIView(PassThroughParent) loadHitTest]_block_invoke', symObjAddr: 0x82, symBinAddr: 0x394D, symSize: 0x4F }
+ - { offsetInCU: 0x1EB, offset: 0x59643, size: 0x8, addend: 0x0, symName: '-[UIView(PassThroughParent) passThroughParent]', symObjAddr: 0xD1, symBinAddr: 0x399C, symSize: 0x54 }
+ - { offsetInCU: 0x262, offset: 0x596BA, size: 0x8, addend: 0x0, symName: '-[UIView(PassThroughParent) setPassThroughParent:]', symObjAddr: 0x125, symBinAddr: 0x39F0, symSize: 0x5A }
+ - { offsetInCU: 0x2D9, offset: 0x59731, size: 0x8, addend: 0x0, symName: '-[UIView(PassThroughParent) passThrough_hitTest:withEvent:]', symObjAddr: 0x17F, symBinAddr: 0x3A4A, symSize: 0x55 }
...
diff --git a/packages/core/platforms/ios/TNSWidgets.xcframework/xros-arm64/TNSWidgets.framework/Headers/NSCCrypto.h b/packages/core/platforms/ios/TNSWidgets.xcframework/xros-arm64/TNSWidgets.framework/Headers/NSCCrypto.h
new file mode 100644
index 0000000000..c90f3a616f
--- /dev/null
+++ b/packages/core/platforms/ios/TNSWidgets.xcframework/xros-arm64/TNSWidgets.framework/Headers/NSCCrypto.h
@@ -0,0 +1,60 @@
+//
+// NSCCrypto.h
+// TNSWidgets
+//
+// Created by Osei Fortune on 03/07/2024.
+// Copyright © 2024 NativeScript. All rights reserved.
+//
+
+#import
+#import
+#import
+#import
+#ifndef NSCCrypto_h
+#define NSCCrypto_h
+
+typedef enum : NSUInteger {
+ kNSCCryptoRSASSA_PKCS1_v1_5,
+ kNSCCryptoRSA_PSS,
+ kNSCCryptoRSA_OAEP,
+} NSCCryptoRsaHashedKeyGenParamsName;
+
+
+typedef enum : NSUInteger {
+ kNSCCryptoHashSHA1,
+ kNSCCryptoHashSHA256,
+ kNSCCryptoHashSHA384,
+ kNSCCryptoHashSHA512
+} NSCCryptoHash;
+
+
+typedef enum : NSUInteger {
+ kNSCCryptoDecrypt,
+ kNSCCryptoEncrypt,
+ kNSCCryptoSign,
+ kNSCCryptoVerify,
+ kNSCCryptoDeriveKey,
+ kNSCCryptoDeriveBits,
+ kNSCCryptoWrapKey,
+ kNSCCryptoUnwrapKey,
+} NSCCryptoKeyUsages;
+
+
+
+@interface NSCCryptoKeyPair : NSObject
+@property (nonatomic, nonnull) SecKeyRef privateKey;
+@property (nonatomic, nonnull) SecKeyRef publicKey;
+-(nonnull id)initWithPrivateKey:(nonnull SecKeyRef)privKey andPublicKey:(nonnull SecKeyRef)pubKey;
+@end
+
+@interface NSCCrypto:NSObject
++ (nonnull NSString*)randomUUID;
++ (nullable NSString*)getRandomValues:(nonnull void*)buffer length:(unsigned int)length;
++ (nullable NSData*)digest:(nonnull void*)data length:(unsigned int)length mode:(int)mode;
++ (nullable NSData *)generateKeyHmac:(int)hash length:(int)length;
++ (nullable NSCCryptoKeyPair*)generateKeyRsa:(NSCCryptoRsaHashedKeyGenParamsName)name modulusLength:(unsigned int)modulusLength publicExponent:(nullable void*)exponent size:(unsigned int)size hash:(NSCCryptoHash)hash extractable:(BOOL)extractable keyUsages:(nonnull NSArray*) usages;
++ (nullable NSData *)encryptRsa:(BOOL)isPrivate key:(nonnull NSCCryptoKeyPair *)key hash:(NSCCryptoHash)hash data:(nonnull void*)data size:(unsigned int) size;
+
++ (nullable NSData *)decryptRsa:(BOOL)isPrivate key:(nonnull NSCCryptoKeyPair *)key hash:(NSCCryptoHash)hash data:(nonnull void*)data size:(unsigned int) size;
+@end
+#endif /* NSCCrypto_h */
diff --git a/packages/core/platforms/ios/TNSWidgets.xcframework/xros-arm64/TNSWidgets.framework/Headers/NSFileHandle+Async.h b/packages/core/platforms/ios/TNSWidgets.xcframework/xros-arm64/TNSWidgets.framework/Headers/NSFileHandle+Async.h
index 6d8827a94b..d5a2c888d8 100644
--- a/packages/core/platforms/ios/TNSWidgets.xcframework/xros-arm64/TNSWidgets.framework/Headers/NSFileHandle+Async.h
+++ b/packages/core/platforms/ios/TNSWidgets.xcframework/xros-arm64/TNSWidgets.framework/Headers/NSFileHandle+Async.h
@@ -3,7 +3,7 @@
// TNSWidgets
//
// Created by Osei Fortune on 03/05/2023.
-// Copyright © 2023 Telerik A D. All rights reserved.
+// Copyright © 2023 NativeScript. All rights reserved.
//
#import
diff --git a/packages/core/platforms/ios/TNSWidgets.xcframework/xros-arm64/TNSWidgets.framework/Info.plist b/packages/core/platforms/ios/TNSWidgets.xcframework/xros-arm64/TNSWidgets.framework/Info.plist
index 67505f8ad6..783063bb66 100644
Binary files a/packages/core/platforms/ios/TNSWidgets.xcframework/xros-arm64/TNSWidgets.framework/Info.plist and b/packages/core/platforms/ios/TNSWidgets.xcframework/xros-arm64/TNSWidgets.framework/Info.plist differ
diff --git a/packages/core/platforms/ios/TNSWidgets.xcframework/xros-arm64/TNSWidgets.framework/TNSWidgets b/packages/core/platforms/ios/TNSWidgets.xcframework/xros-arm64/TNSWidgets.framework/TNSWidgets
index 78cfe10e8f..64242802ac 100755
Binary files a/packages/core/platforms/ios/TNSWidgets.xcframework/xros-arm64/TNSWidgets.framework/TNSWidgets and b/packages/core/platforms/ios/TNSWidgets.xcframework/xros-arm64/TNSWidgets.framework/TNSWidgets differ
diff --git a/packages/core/platforms/ios/TNSWidgets.xcframework/xros-arm64/dSYMs/TNSWidgets.framework.dSYM/Contents/Resources/DWARF/TNSWidgets b/packages/core/platforms/ios/TNSWidgets.xcframework/xros-arm64/dSYMs/TNSWidgets.framework.dSYM/Contents/Resources/DWARF/TNSWidgets
index c3a4ff8f73..f6b5478022 100644
Binary files a/packages/core/platforms/ios/TNSWidgets.xcframework/xros-arm64/dSYMs/TNSWidgets.framework.dSYM/Contents/Resources/DWARF/TNSWidgets and b/packages/core/platforms/ios/TNSWidgets.xcframework/xros-arm64/dSYMs/TNSWidgets.framework.dSYM/Contents/Resources/DWARF/TNSWidgets differ
diff --git a/packages/core/platforms/ios/TNSWidgets.xcframework/xros-arm64/dSYMs/TNSWidgets.framework.dSYM/Contents/Resources/Relocations/aarch64/TNSWidgets.yml b/packages/core/platforms/ios/TNSWidgets.xcframework/xros-arm64/dSYMs/TNSWidgets.framework.dSYM/Contents/Resources/Relocations/aarch64/TNSWidgets.yml
index c9aa6a1967..673eb6884c 100644
--- a/packages/core/platforms/ios/TNSWidgets.xcframework/xros-arm64/dSYMs/TNSWidgets.framework.dSYM/Contents/Resources/Relocations/aarch64/TNSWidgets.yml
+++ b/packages/core/platforms/ios/TNSWidgets.xcframework/xros-arm64/dSYMs/TNSWidgets.framework.dSYM/Contents/Resources/Relocations/aarch64/TNSWidgets.yml
@@ -2,81 +2,81 @@
triple: 'arm64-apple-darwin'
binary-path: '/Users/nstudio/Documents/github/NativeScript/NativeScript/packages/ui-mobile-base/ios/TNSWidgets/build/Release-xros/TNSWidgets.framework/TNSWidgets'
relocations:
- - { offsetInCU: 0x34, offset: 0x53105, size: 0x8, addend: 0x0, symName: _TNSWidgetsVersionString, symObjAddr: 0x0, symBinAddr: 0x63C0, symSize: 0x0 }
- - { offsetInCU: 0x69, offset: 0x5313A, size: 0x8, addend: 0x0, symName: _TNSWidgetsVersionNumber, symObjAddr: 0x30, symBinAddr: 0x63F0, symSize: 0x0 }
- - { offsetInCU: 0x27, offset: 0x53177, size: 0x8, addend: 0x0, symName: '-[TNSLabel textRectForBounds:limitedToNumberOfLines:]', symObjAddr: 0x0, symBinAddr: 0x4000, symSize: 0x1D8 }
- - { offsetInCU: 0xAB, offset: 0x531FB, size: 0x8, addend: 0x0, symName: '-[TNSLabel textRectForBounds:limitedToNumberOfLines:]', symObjAddr: 0x0, symBinAddr: 0x4000, symSize: 0x1D8 }
- - { offsetInCU: 0x182, offset: 0x532D2, size: 0x8, addend: 0x0, symName: '-[TNSLabel drawTextInRect:]', symObjAddr: 0x1D8, symBinAddr: 0x41D8, symSize: 0xA8 }
- - { offsetInCU: 0x215, offset: 0x53365, size: 0x8, addend: 0x0, symName: '-[TNSLabel padding]', symObjAddr: 0x280, symBinAddr: 0x4280, symSize: 0x18 }
- - { offsetInCU: 0x24A, offset: 0x5339A, size: 0x8, addend: 0x0, symName: '-[TNSLabel setPadding:]', symObjAddr: 0x298, symBinAddr: 0x4298, symSize: 0x18 }
- - { offsetInCU: 0x289, offset: 0x533D9, size: 0x8, addend: 0x0, symName: '-[TNSLabel borderThickness]', symObjAddr: 0x2B0, symBinAddr: 0x42B0, symSize: 0x18 }
- - { offsetInCU: 0x2BE, offset: 0x5340E, size: 0x8, addend: 0x0, symName: '-[TNSLabel setBorderThickness:]', symObjAddr: 0x2C8, symBinAddr: 0x42C8, symSize: 0x18 }
- - { offsetInCU: 0x27, offset: 0x53498, size: 0x8, addend: 0x0, symName: ___tns_uptime, symObjAddr: 0x0, symBinAddr: 0x42E0, symSize: 0xF8 }
- - { offsetInCU: 0x59, offset: 0x534CA, size: 0x8, addend: 0x0, symName: ___tns_uptime, symObjAddr: 0x0, symBinAddr: 0x42E0, symSize: 0xF8 }
- - { offsetInCU: 0x186, offset: 0x535F7, size: 0x8, addend: 0x0, symName: ___nslog, symObjAddr: 0xF8, symBinAddr: 0x43D8, symSize: 0x28 }
- - { offsetInCU: 0x27, offset: 0x5365D, size: 0x8, addend: 0x0, symName: '-[NSFileHandle(Async) appendData:completion:]', symObjAddr: 0x0, symBinAddr: 0x4400, symSize: 0xC0 }
- - { offsetInCU: 0x4A, offset: 0x53680, size: 0x8, addend: 0x0, symName: '-[NSFileHandle(Async) appendData:completion:]', symObjAddr: 0x0, symBinAddr: 0x4400, symSize: 0xC0 }
- - { offsetInCU: 0x129, offset: 0x5375F, size: 0x8, addend: 0x0, symName: '___45-[NSFileHandle(Async) appendData:completion:]_block_invoke', symObjAddr: 0xC0, symBinAddr: 0x44C0, symSize: 0xD8 }
- - { offsetInCU: 0x1BD, offset: 0x537F3, size: 0x8, addend: 0x0, symName: '___45-[NSFileHandle(Async) appendData:completion:]_block_invoke_2', symObjAddr: 0x198, symBinAddr: 0x4598, symSize: 0x10 }
- - { offsetInCU: 0x214, offset: 0x5384A, size: 0x8, addend: 0x0, symName: ___copy_helper_block_e8_32s40b, symObjAddr: 0x1A8, symBinAddr: 0x45A8, symSize: 0x34 }
- - { offsetInCU: 0x23D, offset: 0x53873, size: 0x8, addend: 0x0, symName: ___destroy_helper_block_e8_32s40s, symObjAddr: 0x1DC, symBinAddr: 0x45DC, symSize: 0x28 }
- - { offsetInCU: 0x25C, offset: 0x53892, size: 0x8, addend: 0x0, symName: ___copy_helper_block_e8_32s40s48b, symObjAddr: 0x204, symBinAddr: 0x4604, symSize: 0x3C }
- - { offsetInCU: 0x285, offset: 0x538BB, size: 0x8, addend: 0x0, symName: ___destroy_helper_block_e8_32s40s48s, symObjAddr: 0x240, symBinAddr: 0x4640, symSize: 0x30 }
- - { offsetInCU: 0x2A4, offset: 0x538DA, size: 0x8, addend: 0x0, symName: '+[NSFileHandle(Async) fileHandleWith:data:completion:]', symObjAddr: 0x270, symBinAddr: 0x4670, symSize: 0xDC }
- - { offsetInCU: 0x345, offset: 0x5397B, size: 0x8, addend: 0x0, symName: '___54+[NSFileHandle(Async) fileHandleWith:data:completion:]_block_invoke', symObjAddr: 0x34C, symBinAddr: 0x474C, symSize: 0x104 }
- - { offsetInCU: 0x3E5, offset: 0x53A1B, size: 0x8, addend: 0x0, symName: '___54+[NSFileHandle(Async) fileHandleWith:data:completion:]_block_invoke_2', symObjAddr: 0x450, symBinAddr: 0x4850, symSize: 0x14 }
- - { offsetInCU: 0x27, offset: 0x53DB1, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) initialize]', symObjAddr: 0x0, symBinAddr: 0x4864, symSize: 0x2C }
- - { offsetInCU: 0x4F, offset: 0x53DD9, size: 0x8, addend: 0x0, symName: _image_queue, symObjAddr: 0x3D18, symBinAddr: 0xC518, symSize: 0x0 }
- - { offsetInCU: 0x68, offset: 0x53DF2, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) initialize]', symObjAddr: 0x0, symBinAddr: 0x4864, symSize: 0x2C }
- - { offsetInCU: 0xCE, offset: 0x53E58, size: 0x8, addend: 0x0, symName: '-[UIImage(TNSBlocks) tns_forceDecode]', symObjAddr: 0x2C, symBinAddr: 0x4890, symSize: 0x94 }
- - { offsetInCU: 0x23B, offset: 0x53FC5, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) tns_safeDecodeImageNamed:completion:]', symObjAddr: 0xC0, symBinAddr: 0x4924, symSize: 0xA4 }
- - { offsetInCU: 0x2C7, offset: 0x54051, size: 0x8, addend: 0x0, symName: '___58+[UIImage(TNSBlocks) tns_safeDecodeImageNamed:completion:]_block_invoke', symObjAddr: 0x164, symBinAddr: 0x49C8, symSize: 0xBC }
- - { offsetInCU: 0x347, offset: 0x540D1, size: 0x8, addend: 0x0, symName: '___58+[UIImage(TNSBlocks) tns_safeDecodeImageNamed:completion:]_block_invoke_2', symObjAddr: 0x220, symBinAddr: 0x4A84, symSize: 0x10 }
- - { offsetInCU: 0x39E, offset: 0x54128, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) tns_safeImageNamed:]', symObjAddr: 0x28C, symBinAddr: 0x4A94, symSize: 0x58 }
- - { offsetInCU: 0x3F1, offset: 0x5417B, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) tns_decodeImageWithData:completion:]', symObjAddr: 0x2E4, symBinAddr: 0x4AEC, symSize: 0xA4 }
- - { offsetInCU: 0x45D, offset: 0x541E7, size: 0x8, addend: 0x0, symName: '___57+[UIImage(TNSBlocks) tns_decodeImageWithData:completion:]_block_invoke', symObjAddr: 0x388, symBinAddr: 0x4B90, symSize: 0xBC }
- - { offsetInCU: 0x4DD, offset: 0x54267, size: 0x8, addend: 0x0, symName: '___57+[UIImage(TNSBlocks) tns_decodeImageWithData:completion:]_block_invoke_2', symObjAddr: 0x444, symBinAddr: 0x4C4C, symSize: 0x10 }
- - { offsetInCU: 0x534, offset: 0x542BE, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) tns_decodeImageWidthContentsOfFile:completion:]', symObjAddr: 0x454, symBinAddr: 0x4C5C, symSize: 0xA4 }
- - { offsetInCU: 0x5A0, offset: 0x5432A, size: 0x8, addend: 0x0, symName: '___68+[UIImage(TNSBlocks) tns_decodeImageWidthContentsOfFile:completion:]_block_invoke', symObjAddr: 0x4F8, symBinAddr: 0x4D00, symSize: 0xBC }
- - { offsetInCU: 0x620, offset: 0x543AA, size: 0x8, addend: 0x0, symName: '___68+[UIImage(TNSBlocks) tns_decodeImageWidthContentsOfFile:completion:]_block_invoke_2', symObjAddr: 0x5B4, symBinAddr: 0x4DBC, symSize: 0x10 }
- - { offsetInCU: 0x27, offset: 0x54785, size: 0x8, addend: 0x0, symName: '+[NSObject(Swizzling) swizzleInstanceMethodWithOriginalSelector:fromClass:withSwizzlingSelector:]', symObjAddr: 0x0, symBinAddr: 0x4DCC, symSize: 0x70 }
- - { offsetInCU: 0x43, offset: 0x547A1, size: 0x8, addend: 0x0, symName: '+[NSObject(Swizzling) swizzleInstanceMethodWithOriginalSelector:fromClass:withSwizzlingSelector:]', symObjAddr: 0x0, symBinAddr: 0x4DCC, symSize: 0x70 }
- - { offsetInCU: 0x139, offset: 0x54897, size: 0x8, addend: 0x0, symName: '+[NSObject(Swizzling) swizzleMethodWithOriginalSelector:originalMethod:fromClass:withSwizzlingSelector:swizzlingMethod:]', symObjAddr: 0x70, symBinAddr: 0x4E3C, symSize: 0x120 }
- - { offsetInCU: 0x27, offset: 0x54B50, size: 0x8, addend: 0x0, symName: '+[NSString(Async) stringWithContentsOfFile:encoding:completion:]', symObjAddr: 0x0, symBinAddr: 0x4F5C, symSize: 0xC0 }
- - { offsetInCU: 0x4A, offset: 0x54B73, size: 0x8, addend: 0x0, symName: '+[NSString(Async) stringWithContentsOfFile:encoding:completion:]', symObjAddr: 0x0, symBinAddr: 0x4F5C, symSize: 0xC0 }
- - { offsetInCU: 0x135, offset: 0x54C5E, size: 0x8, addend: 0x0, symName: '___64+[NSString(Async) stringWithContentsOfFile:encoding:completion:]_block_invoke', symObjAddr: 0xC0, symBinAddr: 0x501C, symSize: 0xD8 }
- - { offsetInCU: 0x1D5, offset: 0x54CFE, size: 0x8, addend: 0x0, symName: '___64+[NSString(Async) stringWithContentsOfFile:encoding:completion:]_block_invoke_2', symObjAddr: 0x198, symBinAddr: 0x50F4, symSize: 0x14 }
- - { offsetInCU: 0x23C, offset: 0x54D65, size: 0x8, addend: 0x0, symName: '-[NSString(Async) writeToFile:atomically:encoding:completion:]', symObjAddr: 0x274, symBinAddr: 0x5108, symSize: 0xD4 }
- - { offsetInCU: 0x2ED, offset: 0x54E16, size: 0x8, addend: 0x0, symName: '___62-[NSString(Async) writeToFile:atomically:encoding:completion:]_block_invoke', symObjAddr: 0x348, symBinAddr: 0x51DC, symSize: 0xB0 }
- - { offsetInCU: 0x3A1, offset: 0x54ECA, size: 0x8, addend: 0x0, symName: '___62-[NSString(Async) writeToFile:atomically:encoding:completion:]_block_invoke_2', symObjAddr: 0x3F8, symBinAddr: 0x528C, symSize: 0x10 }
- - { offsetInCU: 0x27, offset: 0x5526A, size: 0x8, addend: 0x0, symName: '+[NSData(Async) dataWithContentsOfFile:completion:]', symObjAddr: 0x0, symBinAddr: 0x529C, symSize: 0xB8 }
- - { offsetInCU: 0x4A, offset: 0x5528D, size: 0x8, addend: 0x0, symName: '+[NSData(Async) dataWithContentsOfFile:completion:]', symObjAddr: 0x0, symBinAddr: 0x529C, symSize: 0xB8 }
- - { offsetInCU: 0x180, offset: 0x553C3, size: 0x8, addend: 0x0, symName: '___51+[NSData(Async) dataWithContentsOfFile:completion:]_block_invoke', symObjAddr: 0xB8, symBinAddr: 0x5354, symSize: 0xA0 }
- - { offsetInCU: 0x200, offset: 0x55443, size: 0x8, addend: 0x0, symName: '___51+[NSData(Async) dataWithContentsOfFile:completion:]_block_invoke_2', symObjAddr: 0x158, symBinAddr: 0x53F4, symSize: 0x10 }
- - { offsetInCU: 0x257, offset: 0x5549A, size: 0x8, addend: 0x0, symName: '-[NSData(Async) writeToFile:atomically:completion:]', symObjAddr: 0x1C4, symBinAddr: 0x5404, symSize: 0xD0 }
- - { offsetInCU: 0x2F8, offset: 0x5553B, size: 0x8, addend: 0x0, symName: '___51-[NSData(Async) writeToFile:atomically:completion:]_block_invoke', symObjAddr: 0x294, symBinAddr: 0x54D4, symSize: 0x84 }
- - { offsetInCU: 0x37D, offset: 0x555C0, size: 0x8, addend: 0x0, symName: '___51-[NSData(Async) writeToFile:atomically:completion:]_block_invoke_2', symObjAddr: 0x318, symBinAddr: 0x5558, symSize: 0xC }
- - { offsetInCU: 0x3C4, offset: 0x55607, size: 0x8, addend: 0x0, symName: ___copy_helper_block_e8_32b, symObjAddr: 0x324, symBinAddr: 0x5564, symSize: 0x10 }
- - { offsetInCU: 0x3ED, offset: 0x55630, size: 0x8, addend: 0x0, symName: ___destroy_helper_block_e8_32s, symObjAddr: 0x334, symBinAddr: 0x5574, symSize: 0x8 }
- - { offsetInCU: 0x27, offset: 0x55916, size: 0x8, addend: 0x0, symName: '+[UIView(PropertyBag) load]', symObjAddr: 0x0, symBinAddr: 0x557C, symSize: 0x4 }
- - { offsetInCU: 0x35, offset: 0x55924, size: 0x8, addend: 0x0, symName: '+[UIView(PropertyBag) loadPropertyBag]', symObjAddr: 0x4, symBinAddr: 0x5580, symSize: 0x84 }
- - { offsetInCU: 0x5B, offset: 0x5594A, size: 0x8, addend: 0x0, symName: _loadPropertyBag.onceToken, symObjAddr: 0x2828, symBinAddr: 0xC520, symSize: 0x0 }
- - { offsetInCU: 0xBF, offset: 0x559AE, size: 0x8, addend: 0x0, symName: __propertyBagHolder, symObjAddr: 0x2830, symBinAddr: 0xC530, symSize: 0x0 }
- - { offsetInCU: 0xE4, offset: 0x559D3, size: 0x8, addend: 0x0, symName: '+[UIView(PropertyBag) load]', symObjAddr: 0x0, symBinAddr: 0x557C, symSize: 0x4 }
- - { offsetInCU: 0x163, offset: 0x55A52, size: 0x8, addend: 0x0, symName: '___38+[UIView(PropertyBag) loadPropertyBag]_block_invoke', symObjAddr: 0x88, symBinAddr: 0x5604, symSize: 0x4C }
- - { offsetInCU: 0x1FA, offset: 0x55AE9, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) propertyValueForKey:]', symObjAddr: 0xD4, symBinAddr: 0x5650, symSize: 0x58 }
- - { offsetInCU: 0x241, offset: 0x55B30, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) setPropertyValue:forKey:]', symObjAddr: 0x12C, symBinAddr: 0x56A8, symSize: 0x68 }
- - { offsetInCU: 0x294, offset: 0x55B83, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) propertyBag]', symObjAddr: 0x194, symBinAddr: 0x5710, symSize: 0xBC }
- - { offsetInCU: 0x2DB, offset: 0x55BCA, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) setPropertyBag:]', symObjAddr: 0x250, symBinAddr: 0x57CC, symSize: 0x9C }
- - { offsetInCU: 0x31E, offset: 0x55C0D, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) removePropertyBag]', symObjAddr: 0x2EC, symBinAddr: 0x5868, symSize: 0x70 }
- - { offsetInCU: 0x351, offset: 0x55C40, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) propertyBag_dealloc]', symObjAddr: 0x35C, symBinAddr: 0x58D8, symSize: 0x24 }
- - { offsetInCU: 0x27, offset: 0x55D6A, size: 0x8, addend: 0x0, symName: '+[UIView(PassThroughParent) load]', symObjAddr: 0x0, symBinAddr: 0x58FC, symSize: 0x4 }
- - { offsetInCU: 0x41, offset: 0x55D84, size: 0x8, addend: 0x0, symName: _TLKPassThroughParentKey, symObjAddr: 0x1F0, symBinAddr: 0x82D8, symSize: 0x0 }
- - { offsetInCU: 0x55, offset: 0x55D98, size: 0x8, addend: 0x0, symName: '+[UIView(PassThroughParent) loadHitTest]', symObjAddr: 0x4, symBinAddr: 0x5900, symSize: 0x84 }
- - { offsetInCU: 0x7B, offset: 0x55DBE, size: 0x8, addend: 0x0, symName: _loadHitTest.onceToken, symObjAddr: 0x23A0, symBinAddr: 0xC528, symSize: 0x0 }
- - { offsetInCU: 0xE8, offset: 0x55E2B, size: 0x8, addend: 0x0, symName: '+[UIView(PassThroughParent) load]', symObjAddr: 0x0, symBinAddr: 0x58FC, symSize: 0x4 }
- - { offsetInCU: 0x168, offset: 0x55EAB, size: 0x8, addend: 0x0, symName: '___40+[UIView(PassThroughParent) loadHitTest]_block_invoke', symObjAddr: 0x88, symBinAddr: 0x5984, symSize: 0x40 }
- - { offsetInCU: 0x1A7, offset: 0x55EEA, size: 0x8, addend: 0x0, symName: '-[UIView(PassThroughParent) passThroughParent]', symObjAddr: 0xC8, symBinAddr: 0x59C4, symSize: 0x4C }
- - { offsetInCU: 0x1EE, offset: 0x55F31, size: 0x8, addend: 0x0, symName: '-[UIView(PassThroughParent) setPassThroughParent:]', symObjAddr: 0x114, symBinAddr: 0x5A10, symSize: 0x50 }
- - { offsetInCU: 0x231, offset: 0x55F74, size: 0x8, addend: 0x0, symName: '-[UIView(PassThroughParent) passThrough_hitTest:withEvent:]', symObjAddr: 0x164, symBinAddr: 0x5A60, symSize: 0x48 }
+ - { offsetInCU: 0x34, offset: 0x533CE, size: 0x8, addend: 0x0, symName: _TNSWidgetsVersionString, symObjAddr: 0x0, symBinAddr: 0x63C0, symSize: 0x0 }
+ - { offsetInCU: 0x69, offset: 0x53403, size: 0x8, addend: 0x0, symName: _TNSWidgetsVersionNumber, symObjAddr: 0x30, symBinAddr: 0x63F0, symSize: 0x0 }
+ - { offsetInCU: 0x27, offset: 0x53440, size: 0x8, addend: 0x0, symName: '-[TNSLabel textRectForBounds:limitedToNumberOfLines:]', symObjAddr: 0x0, symBinAddr: 0x4000, symSize: 0x1D8 }
+ - { offsetInCU: 0xAB, offset: 0x534C4, size: 0x8, addend: 0x0, symName: '-[TNSLabel textRectForBounds:limitedToNumberOfLines:]', symObjAddr: 0x0, symBinAddr: 0x4000, symSize: 0x1D8 }
+ - { offsetInCU: 0x182, offset: 0x5359B, size: 0x8, addend: 0x0, symName: '-[TNSLabel drawTextInRect:]', symObjAddr: 0x1D8, symBinAddr: 0x41D8, symSize: 0xA8 }
+ - { offsetInCU: 0x215, offset: 0x5362E, size: 0x8, addend: 0x0, symName: '-[TNSLabel padding]', symObjAddr: 0x280, symBinAddr: 0x4280, symSize: 0x18 }
+ - { offsetInCU: 0x24A, offset: 0x53663, size: 0x8, addend: 0x0, symName: '-[TNSLabel setPadding:]', symObjAddr: 0x298, symBinAddr: 0x4298, symSize: 0x18 }
+ - { offsetInCU: 0x289, offset: 0x536A2, size: 0x8, addend: 0x0, symName: '-[TNSLabel borderThickness]', symObjAddr: 0x2B0, symBinAddr: 0x42B0, symSize: 0x18 }
+ - { offsetInCU: 0x2BE, offset: 0x536D7, size: 0x8, addend: 0x0, symName: '-[TNSLabel setBorderThickness:]', symObjAddr: 0x2C8, symBinAddr: 0x42C8, symSize: 0x18 }
+ - { offsetInCU: 0x27, offset: 0x53761, size: 0x8, addend: 0x0, symName: ___tns_uptime, symObjAddr: 0x0, symBinAddr: 0x42E0, symSize: 0xF8 }
+ - { offsetInCU: 0x59, offset: 0x53793, size: 0x8, addend: 0x0, symName: ___tns_uptime, symObjAddr: 0x0, symBinAddr: 0x42E0, symSize: 0xF8 }
+ - { offsetInCU: 0x186, offset: 0x538C0, size: 0x8, addend: 0x0, symName: ___nslog, symObjAddr: 0xF8, symBinAddr: 0x43D8, symSize: 0x28 }
+ - { offsetInCU: 0x27, offset: 0x53926, size: 0x8, addend: 0x0, symName: '-[NSFileHandle(Async) appendData:completion:]', symObjAddr: 0x0, symBinAddr: 0x4400, symSize: 0xC0 }
+ - { offsetInCU: 0x4A, offset: 0x53949, size: 0x8, addend: 0x0, symName: '-[NSFileHandle(Async) appendData:completion:]', symObjAddr: 0x0, symBinAddr: 0x4400, symSize: 0xC0 }
+ - { offsetInCU: 0x129, offset: 0x53A28, size: 0x8, addend: 0x0, symName: '___45-[NSFileHandle(Async) appendData:completion:]_block_invoke', symObjAddr: 0xC0, symBinAddr: 0x44C0, symSize: 0xD8 }
+ - { offsetInCU: 0x1BD, offset: 0x53ABC, size: 0x8, addend: 0x0, symName: '___45-[NSFileHandle(Async) appendData:completion:]_block_invoke_2', symObjAddr: 0x198, symBinAddr: 0x4598, symSize: 0x10 }
+ - { offsetInCU: 0x214, offset: 0x53B13, size: 0x8, addend: 0x0, symName: ___copy_helper_block_e8_32s40b, symObjAddr: 0x1A8, symBinAddr: 0x45A8, symSize: 0x34 }
+ - { offsetInCU: 0x23D, offset: 0x53B3C, size: 0x8, addend: 0x0, symName: ___destroy_helper_block_e8_32s40s, symObjAddr: 0x1DC, symBinAddr: 0x45DC, symSize: 0x28 }
+ - { offsetInCU: 0x25C, offset: 0x53B5B, size: 0x8, addend: 0x0, symName: ___copy_helper_block_e8_32s40s48b, symObjAddr: 0x204, symBinAddr: 0x4604, symSize: 0x3C }
+ - { offsetInCU: 0x285, offset: 0x53B84, size: 0x8, addend: 0x0, symName: ___destroy_helper_block_e8_32s40s48s, symObjAddr: 0x240, symBinAddr: 0x4640, symSize: 0x30 }
+ - { offsetInCU: 0x2A4, offset: 0x53BA3, size: 0x8, addend: 0x0, symName: '+[NSFileHandle(Async) fileHandleWith:data:completion:]', symObjAddr: 0x270, symBinAddr: 0x4670, symSize: 0xDC }
+ - { offsetInCU: 0x345, offset: 0x53C44, size: 0x8, addend: 0x0, symName: '___54+[NSFileHandle(Async) fileHandleWith:data:completion:]_block_invoke', symObjAddr: 0x34C, symBinAddr: 0x474C, symSize: 0x104 }
+ - { offsetInCU: 0x3E5, offset: 0x53CE4, size: 0x8, addend: 0x0, symName: '___54+[NSFileHandle(Async) fileHandleWith:data:completion:]_block_invoke_2', symObjAddr: 0x450, symBinAddr: 0x4850, symSize: 0x14 }
+ - { offsetInCU: 0x27, offset: 0x5407A, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) initialize]', symObjAddr: 0x0, symBinAddr: 0x4864, symSize: 0x2C }
+ - { offsetInCU: 0x4F, offset: 0x540A2, size: 0x8, addend: 0x0, symName: _image_queue, symObjAddr: 0x3D18, symBinAddr: 0xC518, symSize: 0x0 }
+ - { offsetInCU: 0x68, offset: 0x540BB, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) initialize]', symObjAddr: 0x0, symBinAddr: 0x4864, symSize: 0x2C }
+ - { offsetInCU: 0xCE, offset: 0x54121, size: 0x8, addend: 0x0, symName: '-[UIImage(TNSBlocks) tns_forceDecode]', symObjAddr: 0x2C, symBinAddr: 0x4890, symSize: 0x94 }
+ - { offsetInCU: 0x23B, offset: 0x5428E, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) tns_safeDecodeImageNamed:completion:]', symObjAddr: 0xC0, symBinAddr: 0x4924, symSize: 0xA4 }
+ - { offsetInCU: 0x2C7, offset: 0x5431A, size: 0x8, addend: 0x0, symName: '___58+[UIImage(TNSBlocks) tns_safeDecodeImageNamed:completion:]_block_invoke', symObjAddr: 0x164, symBinAddr: 0x49C8, symSize: 0xBC }
+ - { offsetInCU: 0x347, offset: 0x5439A, size: 0x8, addend: 0x0, symName: '___58+[UIImage(TNSBlocks) tns_safeDecodeImageNamed:completion:]_block_invoke_2', symObjAddr: 0x220, symBinAddr: 0x4A84, symSize: 0x10 }
+ - { offsetInCU: 0x39E, offset: 0x543F1, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) tns_safeImageNamed:]', symObjAddr: 0x28C, symBinAddr: 0x4A94, symSize: 0x58 }
+ - { offsetInCU: 0x3F1, offset: 0x54444, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) tns_decodeImageWithData:completion:]', symObjAddr: 0x2E4, symBinAddr: 0x4AEC, symSize: 0xA4 }
+ - { offsetInCU: 0x45D, offset: 0x544B0, size: 0x8, addend: 0x0, symName: '___57+[UIImage(TNSBlocks) tns_decodeImageWithData:completion:]_block_invoke', symObjAddr: 0x388, symBinAddr: 0x4B90, symSize: 0xBC }
+ - { offsetInCU: 0x4DD, offset: 0x54530, size: 0x8, addend: 0x0, symName: '___57+[UIImage(TNSBlocks) tns_decodeImageWithData:completion:]_block_invoke_2', symObjAddr: 0x444, symBinAddr: 0x4C4C, symSize: 0x10 }
+ - { offsetInCU: 0x534, offset: 0x54587, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) tns_decodeImageWidthContentsOfFile:completion:]', symObjAddr: 0x454, symBinAddr: 0x4C5C, symSize: 0xA4 }
+ - { offsetInCU: 0x5A0, offset: 0x545F3, size: 0x8, addend: 0x0, symName: '___68+[UIImage(TNSBlocks) tns_decodeImageWidthContentsOfFile:completion:]_block_invoke', symObjAddr: 0x4F8, symBinAddr: 0x4D00, symSize: 0xBC }
+ - { offsetInCU: 0x620, offset: 0x54673, size: 0x8, addend: 0x0, symName: '___68+[UIImage(TNSBlocks) tns_decodeImageWidthContentsOfFile:completion:]_block_invoke_2', symObjAddr: 0x5B4, symBinAddr: 0x4DBC, symSize: 0x10 }
+ - { offsetInCU: 0x27, offset: 0x54A4E, size: 0x8, addend: 0x0, symName: '+[NSObject(Swizzling) swizzleInstanceMethodWithOriginalSelector:fromClass:withSwizzlingSelector:]', symObjAddr: 0x0, symBinAddr: 0x4DCC, symSize: 0x70 }
+ - { offsetInCU: 0x43, offset: 0x54A6A, size: 0x8, addend: 0x0, symName: '+[NSObject(Swizzling) swizzleInstanceMethodWithOriginalSelector:fromClass:withSwizzlingSelector:]', symObjAddr: 0x0, symBinAddr: 0x4DCC, symSize: 0x70 }
+ - { offsetInCU: 0x139, offset: 0x54B60, size: 0x8, addend: 0x0, symName: '+[NSObject(Swizzling) swizzleMethodWithOriginalSelector:originalMethod:fromClass:withSwizzlingSelector:swizzlingMethod:]', symObjAddr: 0x70, symBinAddr: 0x4E3C, symSize: 0x120 }
+ - { offsetInCU: 0x27, offset: 0x54E19, size: 0x8, addend: 0x0, symName: '+[NSString(Async) stringWithContentsOfFile:encoding:completion:]', symObjAddr: 0x0, symBinAddr: 0x4F5C, symSize: 0xC0 }
+ - { offsetInCU: 0x4A, offset: 0x54E3C, size: 0x8, addend: 0x0, symName: '+[NSString(Async) stringWithContentsOfFile:encoding:completion:]', symObjAddr: 0x0, symBinAddr: 0x4F5C, symSize: 0xC0 }
+ - { offsetInCU: 0x135, offset: 0x54F27, size: 0x8, addend: 0x0, symName: '___64+[NSString(Async) stringWithContentsOfFile:encoding:completion:]_block_invoke', symObjAddr: 0xC0, symBinAddr: 0x501C, symSize: 0xD8 }
+ - { offsetInCU: 0x1D5, offset: 0x54FC7, size: 0x8, addend: 0x0, symName: '___64+[NSString(Async) stringWithContentsOfFile:encoding:completion:]_block_invoke_2', symObjAddr: 0x198, symBinAddr: 0x50F4, symSize: 0x14 }
+ - { offsetInCU: 0x23C, offset: 0x5502E, size: 0x8, addend: 0x0, symName: '-[NSString(Async) writeToFile:atomically:encoding:completion:]', symObjAddr: 0x274, symBinAddr: 0x5108, symSize: 0xD4 }
+ - { offsetInCU: 0x2ED, offset: 0x550DF, size: 0x8, addend: 0x0, symName: '___62-[NSString(Async) writeToFile:atomically:encoding:completion:]_block_invoke', symObjAddr: 0x348, symBinAddr: 0x51DC, symSize: 0xB0 }
+ - { offsetInCU: 0x3A1, offset: 0x55193, size: 0x8, addend: 0x0, symName: '___62-[NSString(Async) writeToFile:atomically:encoding:completion:]_block_invoke_2', symObjAddr: 0x3F8, symBinAddr: 0x528C, symSize: 0x10 }
+ - { offsetInCU: 0x27, offset: 0x55533, size: 0x8, addend: 0x0, symName: '+[NSData(Async) dataWithContentsOfFile:completion:]', symObjAddr: 0x0, symBinAddr: 0x529C, symSize: 0xB8 }
+ - { offsetInCU: 0x4A, offset: 0x55556, size: 0x8, addend: 0x0, symName: '+[NSData(Async) dataWithContentsOfFile:completion:]', symObjAddr: 0x0, symBinAddr: 0x529C, symSize: 0xB8 }
+ - { offsetInCU: 0x180, offset: 0x5568C, size: 0x8, addend: 0x0, symName: '___51+[NSData(Async) dataWithContentsOfFile:completion:]_block_invoke', symObjAddr: 0xB8, symBinAddr: 0x5354, symSize: 0xA0 }
+ - { offsetInCU: 0x200, offset: 0x5570C, size: 0x8, addend: 0x0, symName: '___51+[NSData(Async) dataWithContentsOfFile:completion:]_block_invoke_2', symObjAddr: 0x158, symBinAddr: 0x53F4, symSize: 0x10 }
+ - { offsetInCU: 0x257, offset: 0x55763, size: 0x8, addend: 0x0, symName: '-[NSData(Async) writeToFile:atomically:completion:]', symObjAddr: 0x1C4, symBinAddr: 0x5404, symSize: 0xD0 }
+ - { offsetInCU: 0x2F8, offset: 0x55804, size: 0x8, addend: 0x0, symName: '___51-[NSData(Async) writeToFile:atomically:completion:]_block_invoke', symObjAddr: 0x294, symBinAddr: 0x54D4, symSize: 0x84 }
+ - { offsetInCU: 0x37D, offset: 0x55889, size: 0x8, addend: 0x0, symName: '___51-[NSData(Async) writeToFile:atomically:completion:]_block_invoke_2', symObjAddr: 0x318, symBinAddr: 0x5558, symSize: 0xC }
+ - { offsetInCU: 0x3C4, offset: 0x558D0, size: 0x8, addend: 0x0, symName: ___copy_helper_block_e8_32b, symObjAddr: 0x324, symBinAddr: 0x5564, symSize: 0x10 }
+ - { offsetInCU: 0x3ED, offset: 0x558F9, size: 0x8, addend: 0x0, symName: ___destroy_helper_block_e8_32s, symObjAddr: 0x334, symBinAddr: 0x5574, symSize: 0x8 }
+ - { offsetInCU: 0x27, offset: 0x55BDF, size: 0x8, addend: 0x0, symName: '+[UIView(PropertyBag) load]', symObjAddr: 0x0, symBinAddr: 0x557C, symSize: 0x4 }
+ - { offsetInCU: 0x35, offset: 0x55BED, size: 0x8, addend: 0x0, symName: '+[UIView(PropertyBag) loadPropertyBag]', symObjAddr: 0x4, symBinAddr: 0x5580, symSize: 0x84 }
+ - { offsetInCU: 0x5B, offset: 0x55C13, size: 0x8, addend: 0x0, symName: _loadPropertyBag.onceToken, symObjAddr: 0x2820, symBinAddr: 0xC520, symSize: 0x0 }
+ - { offsetInCU: 0xBF, offset: 0x55C77, size: 0x8, addend: 0x0, symName: __propertyBagHolder, symObjAddr: 0x2828, symBinAddr: 0xC530, symSize: 0x0 }
+ - { offsetInCU: 0xE4, offset: 0x55C9C, size: 0x8, addend: 0x0, symName: '+[UIView(PropertyBag) load]', symObjAddr: 0x0, symBinAddr: 0x557C, symSize: 0x4 }
+ - { offsetInCU: 0x163, offset: 0x55D1B, size: 0x8, addend: 0x0, symName: '___38+[UIView(PropertyBag) loadPropertyBag]_block_invoke', symObjAddr: 0x88, symBinAddr: 0x5604, symSize: 0x4C }
+ - { offsetInCU: 0x1FA, offset: 0x55DB2, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) propertyValueForKey:]', symObjAddr: 0xD4, symBinAddr: 0x5650, symSize: 0x58 }
+ - { offsetInCU: 0x241, offset: 0x55DF9, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) setPropertyValue:forKey:]', symObjAddr: 0x12C, symBinAddr: 0x56A8, symSize: 0x68 }
+ - { offsetInCU: 0x294, offset: 0x55E4C, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) propertyBag]', symObjAddr: 0x194, symBinAddr: 0x5710, symSize: 0xBC }
+ - { offsetInCU: 0x2DB, offset: 0x55E93, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) setPropertyBag:]', symObjAddr: 0x250, symBinAddr: 0x57CC, symSize: 0x9C }
+ - { offsetInCU: 0x31E, offset: 0x55ED6, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) removePropertyBag]', symObjAddr: 0x2EC, symBinAddr: 0x5868, symSize: 0x70 }
+ - { offsetInCU: 0x351, offset: 0x55F09, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) propertyBag_dealloc]', symObjAddr: 0x35C, symBinAddr: 0x58D8, symSize: 0x24 }
+ - { offsetInCU: 0x27, offset: 0x56033, size: 0x8, addend: 0x0, symName: '+[UIView(PassThroughParent) load]', symObjAddr: 0x0, symBinAddr: 0x58FC, symSize: 0x4 }
+ - { offsetInCU: 0x41, offset: 0x5604D, size: 0x8, addend: 0x0, symName: _TLKPassThroughParentKey, symObjAddr: 0x1F0, symBinAddr: 0x82D8, symSize: 0x0 }
+ - { offsetInCU: 0x55, offset: 0x56061, size: 0x8, addend: 0x0, symName: '+[UIView(PassThroughParent) loadHitTest]', symObjAddr: 0x4, symBinAddr: 0x5900, symSize: 0x84 }
+ - { offsetInCU: 0x7B, offset: 0x56087, size: 0x8, addend: 0x0, symName: _loadHitTest.onceToken, symObjAddr: 0x23A0, symBinAddr: 0xC528, symSize: 0x0 }
+ - { offsetInCU: 0xE8, offset: 0x560F4, size: 0x8, addend: 0x0, symName: '+[UIView(PassThroughParent) load]', symObjAddr: 0x0, symBinAddr: 0x58FC, symSize: 0x4 }
+ - { offsetInCU: 0x168, offset: 0x56174, size: 0x8, addend: 0x0, symName: '___40+[UIView(PassThroughParent) loadHitTest]_block_invoke', symObjAddr: 0x88, symBinAddr: 0x5984, symSize: 0x40 }
+ - { offsetInCU: 0x1A7, offset: 0x561B3, size: 0x8, addend: 0x0, symName: '-[UIView(PassThroughParent) passThroughParent]', symObjAddr: 0xC8, symBinAddr: 0x59C4, symSize: 0x4C }
+ - { offsetInCU: 0x1EE, offset: 0x561FA, size: 0x8, addend: 0x0, symName: '-[UIView(PassThroughParent) setPassThroughParent:]', symObjAddr: 0x114, symBinAddr: 0x5A10, symSize: 0x50 }
+ - { offsetInCU: 0x231, offset: 0x5623D, size: 0x8, addend: 0x0, symName: '-[UIView(PassThroughParent) passThrough_hitTest:withEvent:]', symObjAddr: 0x164, symBinAddr: 0x5A60, symSize: 0x48 }
...
diff --git a/packages/core/platforms/ios/TNSWidgets.xcframework/xros-arm64_x86_64-simulator/TNSWidgets.framework/Headers/NSCCrypto.h b/packages/core/platforms/ios/TNSWidgets.xcframework/xros-arm64_x86_64-simulator/TNSWidgets.framework/Headers/NSCCrypto.h
new file mode 100644
index 0000000000..c90f3a616f
--- /dev/null
+++ b/packages/core/platforms/ios/TNSWidgets.xcframework/xros-arm64_x86_64-simulator/TNSWidgets.framework/Headers/NSCCrypto.h
@@ -0,0 +1,60 @@
+//
+// NSCCrypto.h
+// TNSWidgets
+//
+// Created by Osei Fortune on 03/07/2024.
+// Copyright © 2024 NativeScript. All rights reserved.
+//
+
+#import
+#import
+#import
+#import
+#ifndef NSCCrypto_h
+#define NSCCrypto_h
+
+typedef enum : NSUInteger {
+ kNSCCryptoRSASSA_PKCS1_v1_5,
+ kNSCCryptoRSA_PSS,
+ kNSCCryptoRSA_OAEP,
+} NSCCryptoRsaHashedKeyGenParamsName;
+
+
+typedef enum : NSUInteger {
+ kNSCCryptoHashSHA1,
+ kNSCCryptoHashSHA256,
+ kNSCCryptoHashSHA384,
+ kNSCCryptoHashSHA512
+} NSCCryptoHash;
+
+
+typedef enum : NSUInteger {
+ kNSCCryptoDecrypt,
+ kNSCCryptoEncrypt,
+ kNSCCryptoSign,
+ kNSCCryptoVerify,
+ kNSCCryptoDeriveKey,
+ kNSCCryptoDeriveBits,
+ kNSCCryptoWrapKey,
+ kNSCCryptoUnwrapKey,
+} NSCCryptoKeyUsages;
+
+
+
+@interface NSCCryptoKeyPair : NSObject
+@property (nonatomic, nonnull) SecKeyRef privateKey;
+@property (nonatomic, nonnull) SecKeyRef publicKey;
+-(nonnull id)initWithPrivateKey:(nonnull SecKeyRef)privKey andPublicKey:(nonnull SecKeyRef)pubKey;
+@end
+
+@interface NSCCrypto:NSObject
++ (nonnull NSString*)randomUUID;
++ (nullable NSString*)getRandomValues:(nonnull void*)buffer length:(unsigned int)length;
++ (nullable NSData*)digest:(nonnull void*)data length:(unsigned int)length mode:(int)mode;
++ (nullable NSData *)generateKeyHmac:(int)hash length:(int)length;
++ (nullable NSCCryptoKeyPair*)generateKeyRsa:(NSCCryptoRsaHashedKeyGenParamsName)name modulusLength:(unsigned int)modulusLength publicExponent:(nullable void*)exponent size:(unsigned int)size hash:(NSCCryptoHash)hash extractable:(BOOL)extractable keyUsages:(nonnull NSArray*) usages;
++ (nullable NSData *)encryptRsa:(BOOL)isPrivate key:(nonnull NSCCryptoKeyPair *)key hash:(NSCCryptoHash)hash data:(nonnull void*)data size:(unsigned int) size;
+
++ (nullable NSData *)decryptRsa:(BOOL)isPrivate key:(nonnull NSCCryptoKeyPair *)key hash:(NSCCryptoHash)hash data:(nonnull void*)data size:(unsigned int) size;
+@end
+#endif /* NSCCrypto_h */
diff --git a/packages/core/platforms/ios/TNSWidgets.xcframework/xros-arm64_x86_64-simulator/TNSWidgets.framework/Headers/NSFileHandle+Async.h b/packages/core/platforms/ios/TNSWidgets.xcframework/xros-arm64_x86_64-simulator/TNSWidgets.framework/Headers/NSFileHandle+Async.h
index 6d8827a94b..d5a2c888d8 100644
--- a/packages/core/platforms/ios/TNSWidgets.xcframework/xros-arm64_x86_64-simulator/TNSWidgets.framework/Headers/NSFileHandle+Async.h
+++ b/packages/core/platforms/ios/TNSWidgets.xcframework/xros-arm64_x86_64-simulator/TNSWidgets.framework/Headers/NSFileHandle+Async.h
@@ -3,7 +3,7 @@
// TNSWidgets
//
// Created by Osei Fortune on 03/05/2023.
-// Copyright © 2023 Telerik A D. All rights reserved.
+// Copyright © 2023 NativeScript. All rights reserved.
//
#import
diff --git a/packages/core/platforms/ios/TNSWidgets.xcframework/xros-arm64_x86_64-simulator/TNSWidgets.framework/Info.plist b/packages/core/platforms/ios/TNSWidgets.xcframework/xros-arm64_x86_64-simulator/TNSWidgets.framework/Info.plist
index 4078ba40a2..c3b903909d 100644
Binary files a/packages/core/platforms/ios/TNSWidgets.xcframework/xros-arm64_x86_64-simulator/TNSWidgets.framework/Info.plist and b/packages/core/platforms/ios/TNSWidgets.xcframework/xros-arm64_x86_64-simulator/TNSWidgets.framework/Info.plist differ
diff --git a/packages/core/platforms/ios/TNSWidgets.xcframework/xros-arm64_x86_64-simulator/TNSWidgets.framework/TNSWidgets b/packages/core/platforms/ios/TNSWidgets.xcframework/xros-arm64_x86_64-simulator/TNSWidgets.framework/TNSWidgets
index 0bf99a0116..087e7d44d2 100755
Binary files a/packages/core/platforms/ios/TNSWidgets.xcframework/xros-arm64_x86_64-simulator/TNSWidgets.framework/TNSWidgets and b/packages/core/platforms/ios/TNSWidgets.xcframework/xros-arm64_x86_64-simulator/TNSWidgets.framework/TNSWidgets differ
diff --git a/packages/core/platforms/ios/TNSWidgets.xcframework/xros-arm64_x86_64-simulator/TNSWidgets.framework/_CodeSignature/CodeResources b/packages/core/platforms/ios/TNSWidgets.xcframework/xros-arm64_x86_64-simulator/TNSWidgets.framework/_CodeSignature/CodeResources
index 8c8ee0f497..55a3fcadc6 100644
--- a/packages/core/platforms/ios/TNSWidgets.xcframework/xros-arm64_x86_64-simulator/TNSWidgets.framework/_CodeSignature/CodeResources
+++ b/packages/core/platforms/ios/TNSWidgets.xcframework/xros-arm64_x86_64-simulator/TNSWidgets.framework/_CodeSignature/CodeResources
@@ -10,7 +10,7 @@
Headers/NSFileHandle+Async.h
- iQtzsDHw/VTnFG27yW+QvGCeXGw=
+ rRe3BF9E0tZ9uKb/qQaeizpf00k=
Headers/NSString+Async.h
@@ -38,7 +38,7 @@
Info.plist
- 04keQl0CyDqM6oxgtb/dL/D8FD0=
+ NAVor3pUGyQBVyx3mPlAfSlexWE=
Modules/module.modulemap
@@ -66,7 +66,7 @@
hash2
- 1IqS81dD1dbKccHZ0lYPMMF1zBPdp3InM+rdOFjBo+k=
+ 2T5kVM+Hg6kj426PPiCsCw+SsFz2+kqJkOSpwDcNPZ0=
Headers/NSString+Async.h
diff --git a/packages/core/platforms/ios/TNSWidgets.xcframework/xros-arm64_x86_64-simulator/dSYMs/TNSWidgets.framework.dSYM/Contents/Resources/DWARF/TNSWidgets b/packages/core/platforms/ios/TNSWidgets.xcframework/xros-arm64_x86_64-simulator/dSYMs/TNSWidgets.framework.dSYM/Contents/Resources/DWARF/TNSWidgets
index 200ecab9c5..766bbb03db 100644
Binary files a/packages/core/platforms/ios/TNSWidgets.xcframework/xros-arm64_x86_64-simulator/dSYMs/TNSWidgets.framework.dSYM/Contents/Resources/DWARF/TNSWidgets and b/packages/core/platforms/ios/TNSWidgets.xcframework/xros-arm64_x86_64-simulator/dSYMs/TNSWidgets.framework.dSYM/Contents/Resources/DWARF/TNSWidgets differ
diff --git a/packages/core/platforms/ios/TNSWidgets.xcframework/xros-arm64_x86_64-simulator/dSYMs/TNSWidgets.framework.dSYM/Contents/Resources/Relocations/aarch64/TNSWidgets.yml b/packages/core/platforms/ios/TNSWidgets.xcframework/xros-arm64_x86_64-simulator/dSYMs/TNSWidgets.framework.dSYM/Contents/Resources/Relocations/aarch64/TNSWidgets.yml
index 2483348010..9f1a2a082a 100644
--- a/packages/core/platforms/ios/TNSWidgets.xcframework/xros-arm64_x86_64-simulator/dSYMs/TNSWidgets.framework.dSYM/Contents/Resources/Relocations/aarch64/TNSWidgets.yml
+++ b/packages/core/platforms/ios/TNSWidgets.xcframework/xros-arm64_x86_64-simulator/dSYMs/TNSWidgets.framework.dSYM/Contents/Resources/Relocations/aarch64/TNSWidgets.yml
@@ -2,81 +2,81 @@
triple: 'arm64-apple-darwin'
binary-path: '/Users/nstudio/Documents/github/NativeScript/NativeScript/packages/ui-mobile-base/ios/TNSWidgets/build/Release-xrsimulator/TNSWidgets.framework/TNSWidgets'
relocations:
- - { offsetInCU: 0x34, offset: 0x53506, size: 0x8, addend: 0x0, symName: _TNSWidgetsVersionString, symObjAddr: 0x0, symBinAddr: 0x3640, symSize: 0x0 }
- - { offsetInCU: 0x69, offset: 0x5353B, size: 0x8, addend: 0x0, symName: _TNSWidgetsVersionNumber, symObjAddr: 0x30, symBinAddr: 0x3670, symSize: 0x0 }
- - { offsetInCU: 0x27, offset: 0x53578, size: 0x8, addend: 0x0, symName: '-[TNSLabel textRectForBounds:limitedToNumberOfLines:]', symObjAddr: 0x0, symBinAddr: 0x1284, symSize: 0x1D8 }
- - { offsetInCU: 0xAB, offset: 0x535FC, size: 0x8, addend: 0x0, symName: '-[TNSLabel textRectForBounds:limitedToNumberOfLines:]', symObjAddr: 0x0, symBinAddr: 0x1284, symSize: 0x1D8 }
- - { offsetInCU: 0x182, offset: 0x536D3, size: 0x8, addend: 0x0, symName: '-[TNSLabel drawTextInRect:]', symObjAddr: 0x1D8, symBinAddr: 0x145C, symSize: 0xA8 }
- - { offsetInCU: 0x215, offset: 0x53766, size: 0x8, addend: 0x0, symName: '-[TNSLabel padding]', symObjAddr: 0x280, symBinAddr: 0x1504, symSize: 0x18 }
- - { offsetInCU: 0x24A, offset: 0x5379B, size: 0x8, addend: 0x0, symName: '-[TNSLabel setPadding:]', symObjAddr: 0x298, symBinAddr: 0x151C, symSize: 0x18 }
- - { offsetInCU: 0x289, offset: 0x537DA, size: 0x8, addend: 0x0, symName: '-[TNSLabel borderThickness]', symObjAddr: 0x2B0, symBinAddr: 0x1534, symSize: 0x18 }
- - { offsetInCU: 0x2BE, offset: 0x5380F, size: 0x8, addend: 0x0, symName: '-[TNSLabel setBorderThickness:]', symObjAddr: 0x2C8, symBinAddr: 0x154C, symSize: 0x18 }
- - { offsetInCU: 0x27, offset: 0x53899, size: 0x8, addend: 0x0, symName: ___tns_uptime, symObjAddr: 0x0, symBinAddr: 0x1564, symSize: 0xF8 }
- - { offsetInCU: 0x59, offset: 0x538CB, size: 0x8, addend: 0x0, symName: ___tns_uptime, symObjAddr: 0x0, symBinAddr: 0x1564, symSize: 0xF8 }
- - { offsetInCU: 0x186, offset: 0x539F8, size: 0x8, addend: 0x0, symName: ___nslog, symObjAddr: 0xF8, symBinAddr: 0x165C, symSize: 0x28 }
- - { offsetInCU: 0x27, offset: 0x53A5E, size: 0x8, addend: 0x0, symName: '-[NSFileHandle(Async) appendData:completion:]', symObjAddr: 0x0, symBinAddr: 0x1684, symSize: 0xC0 }
- - { offsetInCU: 0x4A, offset: 0x53A81, size: 0x8, addend: 0x0, symName: '-[NSFileHandle(Async) appendData:completion:]', symObjAddr: 0x0, symBinAddr: 0x1684, symSize: 0xC0 }
- - { offsetInCU: 0x129, offset: 0x53B60, size: 0x8, addend: 0x0, symName: '___45-[NSFileHandle(Async) appendData:completion:]_block_invoke', symObjAddr: 0xC0, symBinAddr: 0x1744, symSize: 0xD8 }
- - { offsetInCU: 0x1BD, offset: 0x53BF4, size: 0x8, addend: 0x0, symName: '___45-[NSFileHandle(Async) appendData:completion:]_block_invoke_2', symObjAddr: 0x198, symBinAddr: 0x181C, symSize: 0x10 }
- - { offsetInCU: 0x214, offset: 0x53C4B, size: 0x8, addend: 0x0, symName: ___copy_helper_block_e8_32s40b, symObjAddr: 0x1A8, symBinAddr: 0x182C, symSize: 0x34 }
- - { offsetInCU: 0x23D, offset: 0x53C74, size: 0x8, addend: 0x0, symName: ___destroy_helper_block_e8_32s40s, symObjAddr: 0x1DC, symBinAddr: 0x1860, symSize: 0x28 }
- - { offsetInCU: 0x25C, offset: 0x53C93, size: 0x8, addend: 0x0, symName: ___copy_helper_block_e8_32s40s48b, symObjAddr: 0x204, symBinAddr: 0x1888, symSize: 0x3C }
- - { offsetInCU: 0x285, offset: 0x53CBC, size: 0x8, addend: 0x0, symName: ___destroy_helper_block_e8_32s40s48s, symObjAddr: 0x240, symBinAddr: 0x18C4, symSize: 0x30 }
- - { offsetInCU: 0x2A4, offset: 0x53CDB, size: 0x8, addend: 0x0, symName: '+[NSFileHandle(Async) fileHandleWith:data:completion:]', symObjAddr: 0x270, symBinAddr: 0x18F4, symSize: 0xDC }
- - { offsetInCU: 0x345, offset: 0x53D7C, size: 0x8, addend: 0x0, symName: '___54+[NSFileHandle(Async) fileHandleWith:data:completion:]_block_invoke', symObjAddr: 0x34C, symBinAddr: 0x19D0, symSize: 0x104 }
- - { offsetInCU: 0x3E5, offset: 0x53E1C, size: 0x8, addend: 0x0, symName: '___54+[NSFileHandle(Async) fileHandleWith:data:completion:]_block_invoke_2', symObjAddr: 0x450, symBinAddr: 0x1AD4, symSize: 0x14 }
- - { offsetInCU: 0x27, offset: 0x541B2, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) initialize]', symObjAddr: 0x0, symBinAddr: 0x1AE8, symSize: 0x2C }
- - { offsetInCU: 0x4F, offset: 0x541DA, size: 0x8, addend: 0x0, symName: _image_queue, symObjAddr: 0x3DC0, symBinAddr: 0x8518, symSize: 0x0 }
- - { offsetInCU: 0x68, offset: 0x541F3, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) initialize]', symObjAddr: 0x0, symBinAddr: 0x1AE8, symSize: 0x2C }
- - { offsetInCU: 0xCE, offset: 0x54259, size: 0x8, addend: 0x0, symName: '-[UIImage(TNSBlocks) tns_forceDecode]', symObjAddr: 0x2C, symBinAddr: 0x1B14, symSize: 0x94 }
- - { offsetInCU: 0x23B, offset: 0x543C6, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) tns_safeDecodeImageNamed:completion:]', symObjAddr: 0xC0, symBinAddr: 0x1BA8, symSize: 0xA4 }
- - { offsetInCU: 0x2C7, offset: 0x54452, size: 0x8, addend: 0x0, symName: '___58+[UIImage(TNSBlocks) tns_safeDecodeImageNamed:completion:]_block_invoke', symObjAddr: 0x164, symBinAddr: 0x1C4C, symSize: 0xBC }
- - { offsetInCU: 0x347, offset: 0x544D2, size: 0x8, addend: 0x0, symName: '___58+[UIImage(TNSBlocks) tns_safeDecodeImageNamed:completion:]_block_invoke_2', symObjAddr: 0x220, symBinAddr: 0x1D08, symSize: 0x10 }
- - { offsetInCU: 0x39E, offset: 0x54529, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) tns_safeImageNamed:]', symObjAddr: 0x28C, symBinAddr: 0x1D18, symSize: 0x58 }
- - { offsetInCU: 0x3F1, offset: 0x5457C, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) tns_decodeImageWithData:completion:]', symObjAddr: 0x2E4, symBinAddr: 0x1D70, symSize: 0xA4 }
- - { offsetInCU: 0x45D, offset: 0x545E8, size: 0x8, addend: 0x0, symName: '___57+[UIImage(TNSBlocks) tns_decodeImageWithData:completion:]_block_invoke', symObjAddr: 0x388, symBinAddr: 0x1E14, symSize: 0xBC }
- - { offsetInCU: 0x4DD, offset: 0x54668, size: 0x8, addend: 0x0, symName: '___57+[UIImage(TNSBlocks) tns_decodeImageWithData:completion:]_block_invoke_2', symObjAddr: 0x444, symBinAddr: 0x1ED0, symSize: 0x10 }
- - { offsetInCU: 0x534, offset: 0x546BF, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) tns_decodeImageWidthContentsOfFile:completion:]', symObjAddr: 0x454, symBinAddr: 0x1EE0, symSize: 0xA4 }
- - { offsetInCU: 0x5A0, offset: 0x5472B, size: 0x8, addend: 0x0, symName: '___68+[UIImage(TNSBlocks) tns_decodeImageWidthContentsOfFile:completion:]_block_invoke', symObjAddr: 0x4F8, symBinAddr: 0x1F84, symSize: 0xBC }
- - { offsetInCU: 0x620, offset: 0x547AB, size: 0x8, addend: 0x0, symName: '___68+[UIImage(TNSBlocks) tns_decodeImageWidthContentsOfFile:completion:]_block_invoke_2', symObjAddr: 0x5B4, symBinAddr: 0x2040, symSize: 0x10 }
- - { offsetInCU: 0x27, offset: 0x54B86, size: 0x8, addend: 0x0, symName: '+[NSObject(Swizzling) swizzleInstanceMethodWithOriginalSelector:fromClass:withSwizzlingSelector:]', symObjAddr: 0x0, symBinAddr: 0x2050, symSize: 0x70 }
- - { offsetInCU: 0x43, offset: 0x54BA2, size: 0x8, addend: 0x0, symName: '+[NSObject(Swizzling) swizzleInstanceMethodWithOriginalSelector:fromClass:withSwizzlingSelector:]', symObjAddr: 0x0, symBinAddr: 0x2050, symSize: 0x70 }
- - { offsetInCU: 0x139, offset: 0x54C98, size: 0x8, addend: 0x0, symName: '+[NSObject(Swizzling) swizzleMethodWithOriginalSelector:originalMethod:fromClass:withSwizzlingSelector:swizzlingMethod:]', symObjAddr: 0x70, symBinAddr: 0x20C0, symSize: 0x120 }
- - { offsetInCU: 0x27, offset: 0x54F51, size: 0x8, addend: 0x0, symName: '+[NSString(Async) stringWithContentsOfFile:encoding:completion:]', symObjAddr: 0x0, symBinAddr: 0x21E0, symSize: 0xC0 }
- - { offsetInCU: 0x4A, offset: 0x54F74, size: 0x8, addend: 0x0, symName: '+[NSString(Async) stringWithContentsOfFile:encoding:completion:]', symObjAddr: 0x0, symBinAddr: 0x21E0, symSize: 0xC0 }
- - { offsetInCU: 0x135, offset: 0x5505F, size: 0x8, addend: 0x0, symName: '___64+[NSString(Async) stringWithContentsOfFile:encoding:completion:]_block_invoke', symObjAddr: 0xC0, symBinAddr: 0x22A0, symSize: 0xD8 }
- - { offsetInCU: 0x1D5, offset: 0x550FF, size: 0x8, addend: 0x0, symName: '___64+[NSString(Async) stringWithContentsOfFile:encoding:completion:]_block_invoke_2', symObjAddr: 0x198, symBinAddr: 0x2378, symSize: 0x14 }
- - { offsetInCU: 0x23C, offset: 0x55166, size: 0x8, addend: 0x0, symName: '-[NSString(Async) writeToFile:atomically:encoding:completion:]', symObjAddr: 0x274, symBinAddr: 0x238C, symSize: 0xD4 }
- - { offsetInCU: 0x2ED, offset: 0x55217, size: 0x8, addend: 0x0, symName: '___62-[NSString(Async) writeToFile:atomically:encoding:completion:]_block_invoke', symObjAddr: 0x348, symBinAddr: 0x2460, symSize: 0xB0 }
- - { offsetInCU: 0x3A1, offset: 0x552CB, size: 0x8, addend: 0x0, symName: '___62-[NSString(Async) writeToFile:atomically:encoding:completion:]_block_invoke_2', symObjAddr: 0x3F8, symBinAddr: 0x2510, symSize: 0x10 }
- - { offsetInCU: 0x27, offset: 0x5566B, size: 0x8, addend: 0x0, symName: '+[NSData(Async) dataWithContentsOfFile:completion:]', symObjAddr: 0x0, symBinAddr: 0x2520, symSize: 0xB8 }
- - { offsetInCU: 0x4A, offset: 0x5568E, size: 0x8, addend: 0x0, symName: '+[NSData(Async) dataWithContentsOfFile:completion:]', symObjAddr: 0x0, symBinAddr: 0x2520, symSize: 0xB8 }
- - { offsetInCU: 0x180, offset: 0x557C4, size: 0x8, addend: 0x0, symName: '___51+[NSData(Async) dataWithContentsOfFile:completion:]_block_invoke', symObjAddr: 0xB8, symBinAddr: 0x25D8, symSize: 0xA0 }
- - { offsetInCU: 0x200, offset: 0x55844, size: 0x8, addend: 0x0, symName: '___51+[NSData(Async) dataWithContentsOfFile:completion:]_block_invoke_2', symObjAddr: 0x158, symBinAddr: 0x2678, symSize: 0x10 }
- - { offsetInCU: 0x257, offset: 0x5589B, size: 0x8, addend: 0x0, symName: '-[NSData(Async) writeToFile:atomically:completion:]', symObjAddr: 0x1C4, symBinAddr: 0x2688, symSize: 0xD0 }
- - { offsetInCU: 0x2F8, offset: 0x5593C, size: 0x8, addend: 0x0, symName: '___51-[NSData(Async) writeToFile:atomically:completion:]_block_invoke', symObjAddr: 0x294, symBinAddr: 0x2758, symSize: 0x84 }
- - { offsetInCU: 0x37D, offset: 0x559C1, size: 0x8, addend: 0x0, symName: '___51-[NSData(Async) writeToFile:atomically:completion:]_block_invoke_2', symObjAddr: 0x318, symBinAddr: 0x27DC, symSize: 0xC }
- - { offsetInCU: 0x3C4, offset: 0x55A08, size: 0x8, addend: 0x0, symName: ___copy_helper_block_e8_32b, symObjAddr: 0x324, symBinAddr: 0x27E8, symSize: 0x10 }
- - { offsetInCU: 0x3ED, offset: 0x55A31, size: 0x8, addend: 0x0, symName: ___destroy_helper_block_e8_32s, symObjAddr: 0x334, symBinAddr: 0x27F8, symSize: 0x8 }
- - { offsetInCU: 0x27, offset: 0x55D17, size: 0x8, addend: 0x0, symName: '+[UIView(PropertyBag) load]', symObjAddr: 0x0, symBinAddr: 0x2800, symSize: 0x4 }
- - { offsetInCU: 0x35, offset: 0x55D25, size: 0x8, addend: 0x0, symName: '+[UIView(PropertyBag) loadPropertyBag]', symObjAddr: 0x4, symBinAddr: 0x2804, symSize: 0x84 }
- - { offsetInCU: 0x5B, offset: 0x55D4B, size: 0x8, addend: 0x0, symName: _loadPropertyBag.onceToken, symObjAddr: 0x28B0, symBinAddr: 0x8520, symSize: 0x0 }
- - { offsetInCU: 0xBF, offset: 0x55DAF, size: 0x8, addend: 0x0, symName: __propertyBagHolder, symObjAddr: 0x28B8, symBinAddr: 0x8530, symSize: 0x0 }
- - { offsetInCU: 0xE4, offset: 0x55DD4, size: 0x8, addend: 0x0, symName: '+[UIView(PropertyBag) load]', symObjAddr: 0x0, symBinAddr: 0x2800, symSize: 0x4 }
- - { offsetInCU: 0x163, offset: 0x55E53, size: 0x8, addend: 0x0, symName: '___38+[UIView(PropertyBag) loadPropertyBag]_block_invoke', symObjAddr: 0x88, symBinAddr: 0x2888, symSize: 0x4C }
- - { offsetInCU: 0x1FA, offset: 0x55EEA, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) propertyValueForKey:]', symObjAddr: 0xD4, symBinAddr: 0x28D4, symSize: 0x58 }
- - { offsetInCU: 0x241, offset: 0x55F31, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) setPropertyValue:forKey:]', symObjAddr: 0x12C, symBinAddr: 0x292C, symSize: 0x68 }
- - { offsetInCU: 0x294, offset: 0x55F84, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) propertyBag]', symObjAddr: 0x194, symBinAddr: 0x2994, symSize: 0xBC }
- - { offsetInCU: 0x2DB, offset: 0x55FCB, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) setPropertyBag:]', symObjAddr: 0x250, symBinAddr: 0x2A50, symSize: 0x9C }
- - { offsetInCU: 0x31E, offset: 0x5600E, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) removePropertyBag]', symObjAddr: 0x2EC, symBinAddr: 0x2AEC, symSize: 0x70 }
- - { offsetInCU: 0x351, offset: 0x56041, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) propertyBag_dealloc]', symObjAddr: 0x35C, symBinAddr: 0x2B5C, symSize: 0x24 }
- - { offsetInCU: 0x27, offset: 0x5616B, size: 0x8, addend: 0x0, symName: '+[UIView(PassThroughParent) load]', symObjAddr: 0x0, symBinAddr: 0x2B80, symSize: 0x4 }
- - { offsetInCU: 0x41, offset: 0x56185, size: 0x8, addend: 0x0, symName: _TLKPassThroughParentKey, symObjAddr: 0x1F0, symBinAddr: 0x42D8, symSize: 0x0 }
- - { offsetInCU: 0x55, offset: 0x56199, size: 0x8, addend: 0x0, symName: '+[UIView(PassThroughParent) loadHitTest]', symObjAddr: 0x4, symBinAddr: 0x2B84, symSize: 0x84 }
- - { offsetInCU: 0x7B, offset: 0x561BF, size: 0x8, addend: 0x0, symName: _loadHitTest.onceToken, symObjAddr: 0x2450, symBinAddr: 0x8528, symSize: 0x0 }
- - { offsetInCU: 0xE8, offset: 0x5622C, size: 0x8, addend: 0x0, symName: '+[UIView(PassThroughParent) load]', symObjAddr: 0x0, symBinAddr: 0x2B80, symSize: 0x4 }
- - { offsetInCU: 0x168, offset: 0x562AC, size: 0x8, addend: 0x0, symName: '___40+[UIView(PassThroughParent) loadHitTest]_block_invoke', symObjAddr: 0x88, symBinAddr: 0x2C08, symSize: 0x40 }
- - { offsetInCU: 0x1A7, offset: 0x562EB, size: 0x8, addend: 0x0, symName: '-[UIView(PassThroughParent) passThroughParent]', symObjAddr: 0xC8, symBinAddr: 0x2C48, symSize: 0x4C }
- - { offsetInCU: 0x1EE, offset: 0x56332, size: 0x8, addend: 0x0, symName: '-[UIView(PassThroughParent) setPassThroughParent:]', symObjAddr: 0x114, symBinAddr: 0x2C94, symSize: 0x50 }
- - { offsetInCU: 0x231, offset: 0x56375, size: 0x8, addend: 0x0, symName: '-[UIView(PassThroughParent) passThrough_hitTest:withEvent:]', symObjAddr: 0x164, symBinAddr: 0x2CE4, symSize: 0x48 }
+ - { offsetInCU: 0x34, offset: 0x537CF, size: 0x8, addend: 0x0, symName: _TNSWidgetsVersionString, symObjAddr: 0x0, symBinAddr: 0x3640, symSize: 0x0 }
+ - { offsetInCU: 0x69, offset: 0x53804, size: 0x8, addend: 0x0, symName: _TNSWidgetsVersionNumber, symObjAddr: 0x30, symBinAddr: 0x3670, symSize: 0x0 }
+ - { offsetInCU: 0x27, offset: 0x53841, size: 0x8, addend: 0x0, symName: '-[TNSLabel textRectForBounds:limitedToNumberOfLines:]', symObjAddr: 0x0, symBinAddr: 0x1284, symSize: 0x1D8 }
+ - { offsetInCU: 0xAB, offset: 0x538C5, size: 0x8, addend: 0x0, symName: '-[TNSLabel textRectForBounds:limitedToNumberOfLines:]', symObjAddr: 0x0, symBinAddr: 0x1284, symSize: 0x1D8 }
+ - { offsetInCU: 0x182, offset: 0x5399C, size: 0x8, addend: 0x0, symName: '-[TNSLabel drawTextInRect:]', symObjAddr: 0x1D8, symBinAddr: 0x145C, symSize: 0xA8 }
+ - { offsetInCU: 0x215, offset: 0x53A2F, size: 0x8, addend: 0x0, symName: '-[TNSLabel padding]', symObjAddr: 0x280, symBinAddr: 0x1504, symSize: 0x18 }
+ - { offsetInCU: 0x24A, offset: 0x53A64, size: 0x8, addend: 0x0, symName: '-[TNSLabel setPadding:]', symObjAddr: 0x298, symBinAddr: 0x151C, symSize: 0x18 }
+ - { offsetInCU: 0x289, offset: 0x53AA3, size: 0x8, addend: 0x0, symName: '-[TNSLabel borderThickness]', symObjAddr: 0x2B0, symBinAddr: 0x1534, symSize: 0x18 }
+ - { offsetInCU: 0x2BE, offset: 0x53AD8, size: 0x8, addend: 0x0, symName: '-[TNSLabel setBorderThickness:]', symObjAddr: 0x2C8, symBinAddr: 0x154C, symSize: 0x18 }
+ - { offsetInCU: 0x27, offset: 0x53B62, size: 0x8, addend: 0x0, symName: ___tns_uptime, symObjAddr: 0x0, symBinAddr: 0x1564, symSize: 0xF8 }
+ - { offsetInCU: 0x59, offset: 0x53B94, size: 0x8, addend: 0x0, symName: ___tns_uptime, symObjAddr: 0x0, symBinAddr: 0x1564, symSize: 0xF8 }
+ - { offsetInCU: 0x186, offset: 0x53CC1, size: 0x8, addend: 0x0, symName: ___nslog, symObjAddr: 0xF8, symBinAddr: 0x165C, symSize: 0x28 }
+ - { offsetInCU: 0x27, offset: 0x53D27, size: 0x8, addend: 0x0, symName: '-[NSFileHandle(Async) appendData:completion:]', symObjAddr: 0x0, symBinAddr: 0x1684, symSize: 0xC0 }
+ - { offsetInCU: 0x4A, offset: 0x53D4A, size: 0x8, addend: 0x0, symName: '-[NSFileHandle(Async) appendData:completion:]', symObjAddr: 0x0, symBinAddr: 0x1684, symSize: 0xC0 }
+ - { offsetInCU: 0x129, offset: 0x53E29, size: 0x8, addend: 0x0, symName: '___45-[NSFileHandle(Async) appendData:completion:]_block_invoke', symObjAddr: 0xC0, symBinAddr: 0x1744, symSize: 0xD8 }
+ - { offsetInCU: 0x1BD, offset: 0x53EBD, size: 0x8, addend: 0x0, symName: '___45-[NSFileHandle(Async) appendData:completion:]_block_invoke_2', symObjAddr: 0x198, symBinAddr: 0x181C, symSize: 0x10 }
+ - { offsetInCU: 0x214, offset: 0x53F14, size: 0x8, addend: 0x0, symName: ___copy_helper_block_e8_32s40b, symObjAddr: 0x1A8, symBinAddr: 0x182C, symSize: 0x34 }
+ - { offsetInCU: 0x23D, offset: 0x53F3D, size: 0x8, addend: 0x0, symName: ___destroy_helper_block_e8_32s40s, symObjAddr: 0x1DC, symBinAddr: 0x1860, symSize: 0x28 }
+ - { offsetInCU: 0x25C, offset: 0x53F5C, size: 0x8, addend: 0x0, symName: ___copy_helper_block_e8_32s40s48b, symObjAddr: 0x204, symBinAddr: 0x1888, symSize: 0x3C }
+ - { offsetInCU: 0x285, offset: 0x53F85, size: 0x8, addend: 0x0, symName: ___destroy_helper_block_e8_32s40s48s, symObjAddr: 0x240, symBinAddr: 0x18C4, symSize: 0x30 }
+ - { offsetInCU: 0x2A4, offset: 0x53FA4, size: 0x8, addend: 0x0, symName: '+[NSFileHandle(Async) fileHandleWith:data:completion:]', symObjAddr: 0x270, symBinAddr: 0x18F4, symSize: 0xDC }
+ - { offsetInCU: 0x345, offset: 0x54045, size: 0x8, addend: 0x0, symName: '___54+[NSFileHandle(Async) fileHandleWith:data:completion:]_block_invoke', symObjAddr: 0x34C, symBinAddr: 0x19D0, symSize: 0x104 }
+ - { offsetInCU: 0x3E5, offset: 0x540E5, size: 0x8, addend: 0x0, symName: '___54+[NSFileHandle(Async) fileHandleWith:data:completion:]_block_invoke_2', symObjAddr: 0x450, symBinAddr: 0x1AD4, symSize: 0x14 }
+ - { offsetInCU: 0x27, offset: 0x5447B, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) initialize]', symObjAddr: 0x0, symBinAddr: 0x1AE8, symSize: 0x2C }
+ - { offsetInCU: 0x4F, offset: 0x544A3, size: 0x8, addend: 0x0, symName: _image_queue, symObjAddr: 0x3DC8, symBinAddr: 0x8518, symSize: 0x0 }
+ - { offsetInCU: 0x68, offset: 0x544BC, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) initialize]', symObjAddr: 0x0, symBinAddr: 0x1AE8, symSize: 0x2C }
+ - { offsetInCU: 0xCE, offset: 0x54522, size: 0x8, addend: 0x0, symName: '-[UIImage(TNSBlocks) tns_forceDecode]', symObjAddr: 0x2C, symBinAddr: 0x1B14, symSize: 0x94 }
+ - { offsetInCU: 0x23B, offset: 0x5468F, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) tns_safeDecodeImageNamed:completion:]', symObjAddr: 0xC0, symBinAddr: 0x1BA8, symSize: 0xA4 }
+ - { offsetInCU: 0x2C7, offset: 0x5471B, size: 0x8, addend: 0x0, symName: '___58+[UIImage(TNSBlocks) tns_safeDecodeImageNamed:completion:]_block_invoke', symObjAddr: 0x164, symBinAddr: 0x1C4C, symSize: 0xBC }
+ - { offsetInCU: 0x347, offset: 0x5479B, size: 0x8, addend: 0x0, symName: '___58+[UIImage(TNSBlocks) tns_safeDecodeImageNamed:completion:]_block_invoke_2', symObjAddr: 0x220, symBinAddr: 0x1D08, symSize: 0x10 }
+ - { offsetInCU: 0x39E, offset: 0x547F2, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) tns_safeImageNamed:]', symObjAddr: 0x28C, symBinAddr: 0x1D18, symSize: 0x58 }
+ - { offsetInCU: 0x3F1, offset: 0x54845, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) tns_decodeImageWithData:completion:]', symObjAddr: 0x2E4, symBinAddr: 0x1D70, symSize: 0xA4 }
+ - { offsetInCU: 0x45D, offset: 0x548B1, size: 0x8, addend: 0x0, symName: '___57+[UIImage(TNSBlocks) tns_decodeImageWithData:completion:]_block_invoke', symObjAddr: 0x388, symBinAddr: 0x1E14, symSize: 0xBC }
+ - { offsetInCU: 0x4DD, offset: 0x54931, size: 0x8, addend: 0x0, symName: '___57+[UIImage(TNSBlocks) tns_decodeImageWithData:completion:]_block_invoke_2', symObjAddr: 0x444, symBinAddr: 0x1ED0, symSize: 0x10 }
+ - { offsetInCU: 0x534, offset: 0x54988, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) tns_decodeImageWidthContentsOfFile:completion:]', symObjAddr: 0x454, symBinAddr: 0x1EE0, symSize: 0xA4 }
+ - { offsetInCU: 0x5A0, offset: 0x549F4, size: 0x8, addend: 0x0, symName: '___68+[UIImage(TNSBlocks) tns_decodeImageWidthContentsOfFile:completion:]_block_invoke', symObjAddr: 0x4F8, symBinAddr: 0x1F84, symSize: 0xBC }
+ - { offsetInCU: 0x620, offset: 0x54A74, size: 0x8, addend: 0x0, symName: '___68+[UIImage(TNSBlocks) tns_decodeImageWidthContentsOfFile:completion:]_block_invoke_2', symObjAddr: 0x5B4, symBinAddr: 0x2040, symSize: 0x10 }
+ - { offsetInCU: 0x27, offset: 0x54E4F, size: 0x8, addend: 0x0, symName: '+[NSObject(Swizzling) swizzleInstanceMethodWithOriginalSelector:fromClass:withSwizzlingSelector:]', symObjAddr: 0x0, symBinAddr: 0x2050, symSize: 0x70 }
+ - { offsetInCU: 0x43, offset: 0x54E6B, size: 0x8, addend: 0x0, symName: '+[NSObject(Swizzling) swizzleInstanceMethodWithOriginalSelector:fromClass:withSwizzlingSelector:]', symObjAddr: 0x0, symBinAddr: 0x2050, symSize: 0x70 }
+ - { offsetInCU: 0x139, offset: 0x54F61, size: 0x8, addend: 0x0, symName: '+[NSObject(Swizzling) swizzleMethodWithOriginalSelector:originalMethod:fromClass:withSwizzlingSelector:swizzlingMethod:]', symObjAddr: 0x70, symBinAddr: 0x20C0, symSize: 0x120 }
+ - { offsetInCU: 0x27, offset: 0x5521A, size: 0x8, addend: 0x0, symName: '+[NSString(Async) stringWithContentsOfFile:encoding:completion:]', symObjAddr: 0x0, symBinAddr: 0x21E0, symSize: 0xC0 }
+ - { offsetInCU: 0x4A, offset: 0x5523D, size: 0x8, addend: 0x0, symName: '+[NSString(Async) stringWithContentsOfFile:encoding:completion:]', symObjAddr: 0x0, symBinAddr: 0x21E0, symSize: 0xC0 }
+ - { offsetInCU: 0x135, offset: 0x55328, size: 0x8, addend: 0x0, symName: '___64+[NSString(Async) stringWithContentsOfFile:encoding:completion:]_block_invoke', symObjAddr: 0xC0, symBinAddr: 0x22A0, symSize: 0xD8 }
+ - { offsetInCU: 0x1D5, offset: 0x553C8, size: 0x8, addend: 0x0, symName: '___64+[NSString(Async) stringWithContentsOfFile:encoding:completion:]_block_invoke_2', symObjAddr: 0x198, symBinAddr: 0x2378, symSize: 0x14 }
+ - { offsetInCU: 0x23C, offset: 0x5542F, size: 0x8, addend: 0x0, symName: '-[NSString(Async) writeToFile:atomically:encoding:completion:]', symObjAddr: 0x274, symBinAddr: 0x238C, symSize: 0xD4 }
+ - { offsetInCU: 0x2ED, offset: 0x554E0, size: 0x8, addend: 0x0, symName: '___62-[NSString(Async) writeToFile:atomically:encoding:completion:]_block_invoke', symObjAddr: 0x348, symBinAddr: 0x2460, symSize: 0xB0 }
+ - { offsetInCU: 0x3A1, offset: 0x55594, size: 0x8, addend: 0x0, symName: '___62-[NSString(Async) writeToFile:atomically:encoding:completion:]_block_invoke_2', symObjAddr: 0x3F8, symBinAddr: 0x2510, symSize: 0x10 }
+ - { offsetInCU: 0x27, offset: 0x55934, size: 0x8, addend: 0x0, symName: '+[NSData(Async) dataWithContentsOfFile:completion:]', symObjAddr: 0x0, symBinAddr: 0x2520, symSize: 0xB8 }
+ - { offsetInCU: 0x4A, offset: 0x55957, size: 0x8, addend: 0x0, symName: '+[NSData(Async) dataWithContentsOfFile:completion:]', symObjAddr: 0x0, symBinAddr: 0x2520, symSize: 0xB8 }
+ - { offsetInCU: 0x180, offset: 0x55A8D, size: 0x8, addend: 0x0, symName: '___51+[NSData(Async) dataWithContentsOfFile:completion:]_block_invoke', symObjAddr: 0xB8, symBinAddr: 0x25D8, symSize: 0xA0 }
+ - { offsetInCU: 0x200, offset: 0x55B0D, size: 0x8, addend: 0x0, symName: '___51+[NSData(Async) dataWithContentsOfFile:completion:]_block_invoke_2', symObjAddr: 0x158, symBinAddr: 0x2678, symSize: 0x10 }
+ - { offsetInCU: 0x257, offset: 0x55B64, size: 0x8, addend: 0x0, symName: '-[NSData(Async) writeToFile:atomically:completion:]', symObjAddr: 0x1C4, symBinAddr: 0x2688, symSize: 0xD0 }
+ - { offsetInCU: 0x2F8, offset: 0x55C05, size: 0x8, addend: 0x0, symName: '___51-[NSData(Async) writeToFile:atomically:completion:]_block_invoke', symObjAddr: 0x294, symBinAddr: 0x2758, symSize: 0x84 }
+ - { offsetInCU: 0x37D, offset: 0x55C8A, size: 0x8, addend: 0x0, symName: '___51-[NSData(Async) writeToFile:atomically:completion:]_block_invoke_2', symObjAddr: 0x318, symBinAddr: 0x27DC, symSize: 0xC }
+ - { offsetInCU: 0x3C4, offset: 0x55CD1, size: 0x8, addend: 0x0, symName: ___copy_helper_block_e8_32b, symObjAddr: 0x324, symBinAddr: 0x27E8, symSize: 0x10 }
+ - { offsetInCU: 0x3ED, offset: 0x55CFA, size: 0x8, addend: 0x0, symName: ___destroy_helper_block_e8_32s, symObjAddr: 0x334, symBinAddr: 0x27F8, symSize: 0x8 }
+ - { offsetInCU: 0x27, offset: 0x55FE0, size: 0x8, addend: 0x0, symName: '+[UIView(PropertyBag) load]', symObjAddr: 0x0, symBinAddr: 0x2800, symSize: 0x4 }
+ - { offsetInCU: 0x35, offset: 0x55FEE, size: 0x8, addend: 0x0, symName: '+[UIView(PropertyBag) loadPropertyBag]', symObjAddr: 0x4, symBinAddr: 0x2804, symSize: 0x84 }
+ - { offsetInCU: 0x5B, offset: 0x56014, size: 0x8, addend: 0x0, symName: _loadPropertyBag.onceToken, symObjAddr: 0x28B8, symBinAddr: 0x8520, symSize: 0x0 }
+ - { offsetInCU: 0xBF, offset: 0x56078, size: 0x8, addend: 0x0, symName: __propertyBagHolder, symObjAddr: 0x28C0, symBinAddr: 0x8530, symSize: 0x0 }
+ - { offsetInCU: 0xE4, offset: 0x5609D, size: 0x8, addend: 0x0, symName: '+[UIView(PropertyBag) load]', symObjAddr: 0x0, symBinAddr: 0x2800, symSize: 0x4 }
+ - { offsetInCU: 0x163, offset: 0x5611C, size: 0x8, addend: 0x0, symName: '___38+[UIView(PropertyBag) loadPropertyBag]_block_invoke', symObjAddr: 0x88, symBinAddr: 0x2888, symSize: 0x4C }
+ - { offsetInCU: 0x1FA, offset: 0x561B3, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) propertyValueForKey:]', symObjAddr: 0xD4, symBinAddr: 0x28D4, symSize: 0x58 }
+ - { offsetInCU: 0x241, offset: 0x561FA, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) setPropertyValue:forKey:]', symObjAddr: 0x12C, symBinAddr: 0x292C, symSize: 0x68 }
+ - { offsetInCU: 0x294, offset: 0x5624D, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) propertyBag]', symObjAddr: 0x194, symBinAddr: 0x2994, symSize: 0xBC }
+ - { offsetInCU: 0x2DB, offset: 0x56294, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) setPropertyBag:]', symObjAddr: 0x250, symBinAddr: 0x2A50, symSize: 0x9C }
+ - { offsetInCU: 0x31E, offset: 0x562D7, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) removePropertyBag]', symObjAddr: 0x2EC, symBinAddr: 0x2AEC, symSize: 0x70 }
+ - { offsetInCU: 0x351, offset: 0x5630A, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) propertyBag_dealloc]', symObjAddr: 0x35C, symBinAddr: 0x2B5C, symSize: 0x24 }
+ - { offsetInCU: 0x27, offset: 0x56434, size: 0x8, addend: 0x0, symName: '+[UIView(PassThroughParent) load]', symObjAddr: 0x0, symBinAddr: 0x2B80, symSize: 0x4 }
+ - { offsetInCU: 0x41, offset: 0x5644E, size: 0x8, addend: 0x0, symName: _TLKPassThroughParentKey, symObjAddr: 0x1F0, symBinAddr: 0x42D8, symSize: 0x0 }
+ - { offsetInCU: 0x55, offset: 0x56462, size: 0x8, addend: 0x0, symName: '+[UIView(PassThroughParent) loadHitTest]', symObjAddr: 0x4, symBinAddr: 0x2B84, symSize: 0x84 }
+ - { offsetInCU: 0x7B, offset: 0x56488, size: 0x8, addend: 0x0, symName: _loadHitTest.onceToken, symObjAddr: 0x2450, symBinAddr: 0x8528, symSize: 0x0 }
+ - { offsetInCU: 0xE8, offset: 0x564F5, size: 0x8, addend: 0x0, symName: '+[UIView(PassThroughParent) load]', symObjAddr: 0x0, symBinAddr: 0x2B80, symSize: 0x4 }
+ - { offsetInCU: 0x168, offset: 0x56575, size: 0x8, addend: 0x0, symName: '___40+[UIView(PassThroughParent) loadHitTest]_block_invoke', symObjAddr: 0x88, symBinAddr: 0x2C08, symSize: 0x40 }
+ - { offsetInCU: 0x1A7, offset: 0x565B4, size: 0x8, addend: 0x0, symName: '-[UIView(PassThroughParent) passThroughParent]', symObjAddr: 0xC8, symBinAddr: 0x2C48, symSize: 0x4C }
+ - { offsetInCU: 0x1EE, offset: 0x565FB, size: 0x8, addend: 0x0, symName: '-[UIView(PassThroughParent) setPassThroughParent:]', symObjAddr: 0x114, symBinAddr: 0x2C94, symSize: 0x50 }
+ - { offsetInCU: 0x231, offset: 0x5663E, size: 0x8, addend: 0x0, symName: '-[UIView(PassThroughParent) passThrough_hitTest:withEvent:]', symObjAddr: 0x164, symBinAddr: 0x2CE4, symSize: 0x48 }
...
diff --git a/packages/core/platforms/ios/TNSWidgets.xcframework/xros-arm64_x86_64-simulator/dSYMs/TNSWidgets.framework.dSYM/Contents/Resources/Relocations/x86_64/TNSWidgets.yml b/packages/core/platforms/ios/TNSWidgets.xcframework/xros-arm64_x86_64-simulator/dSYMs/TNSWidgets.framework.dSYM/Contents/Resources/Relocations/x86_64/TNSWidgets.yml
index 5110fe743e..75cbdecc4a 100644
--- a/packages/core/platforms/ios/TNSWidgets.xcframework/xros-arm64_x86_64-simulator/dSYMs/TNSWidgets.framework.dSYM/Contents/Resources/Relocations/x86_64/TNSWidgets.yml
+++ b/packages/core/platforms/ios/TNSWidgets.xcframework/xros-arm64_x86_64-simulator/dSYMs/TNSWidgets.framework.dSYM/Contents/Resources/Relocations/x86_64/TNSWidgets.yml
@@ -2,81 +2,81 @@
triple: 'x86_64-apple-darwin'
binary-path: '/Users/nstudio/Documents/github/NativeScript/NativeScript/packages/ui-mobile-base/ios/TNSWidgets/build/Release-xrsimulator/TNSWidgets.framework/TNSWidgets'
relocations:
- - { offsetInCU: 0x34, offset: 0x5460D, size: 0x8, addend: 0x0, symName: _TNSWidgetsVersionString, symObjAddr: 0x0, symBinAddr: 0x6950, symSize: 0x0 }
- - { offsetInCU: 0x69, offset: 0x54642, size: 0x8, addend: 0x0, symName: _TNSWidgetsVersionNumber, symObjAddr: 0x30, symBinAddr: 0x6980, symSize: 0x0 }
- - { offsetInCU: 0x27, offset: 0x5467F, size: 0x8, addend: 0x0, symName: '-[TNSLabel textRectForBounds:limitedToNumberOfLines:]', symObjAddr: 0x0, symBinAddr: 0x4713, symSize: 0x394 }
- - { offsetInCU: 0xA9, offset: 0x54701, size: 0x8, addend: 0x0, symName: '-[TNSLabel textRectForBounds:limitedToNumberOfLines:]', symObjAddr: 0x0, symBinAddr: 0x4713, symSize: 0x394 }
- - { offsetInCU: 0x185, offset: 0x547DD, size: 0x8, addend: 0x0, symName: '-[TNSLabel drawTextInRect:]', symObjAddr: 0x394, symBinAddr: 0x4AA7, symSize: 0xDD }
- - { offsetInCU: 0x1F1, offset: 0x54849, size: 0x8, addend: 0x0, symName: '-[TNSLabel padding]', symObjAddr: 0x471, symBinAddr: 0x4B84, symSize: 0x20 }
- - { offsetInCU: 0x226, offset: 0x5487E, size: 0x8, addend: 0x0, symName: '-[TNSLabel setPadding:]', symObjAddr: 0x491, symBinAddr: 0x4BA4, symSize: 0x1E }
- - { offsetInCU: 0x264, offset: 0x548BC, size: 0x8, addend: 0x0, symName: '-[TNSLabel borderThickness]', symObjAddr: 0x4AF, symBinAddr: 0x4BC2, symSize: 0x20 }
- - { offsetInCU: 0x299, offset: 0x548F1, size: 0x8, addend: 0x0, symName: '-[TNSLabel setBorderThickness:]', symObjAddr: 0x4CF, symBinAddr: 0x4BE2, symSize: 0x1E }
- - { offsetInCU: 0x27, offset: 0x5497A, size: 0x8, addend: 0x0, symName: ___tns_uptime, symObjAddr: 0x0, symBinAddr: 0x4C00, symSize: 0x119 }
- - { offsetInCU: 0x59, offset: 0x549AC, size: 0x8, addend: 0x0, symName: ___tns_uptime, symObjAddr: 0x0, symBinAddr: 0x4C00, symSize: 0x119 }
- - { offsetInCU: 0x1B5, offset: 0x54B08, size: 0x8, addend: 0x0, symName: ___nslog, symObjAddr: 0x119, symBinAddr: 0x4D19, symSize: 0x17 }
- - { offsetInCU: 0x27, offset: 0x54B6E, size: 0x8, addend: 0x0, symName: '-[NSFileHandle(Async) appendData:completion:]', symObjAddr: 0x0, symBinAddr: 0x4D30, symSize: 0xD4 }
- - { offsetInCU: 0x4A, offset: 0x54B91, size: 0x8, addend: 0x0, symName: '-[NSFileHandle(Async) appendData:completion:]', symObjAddr: 0x0, symBinAddr: 0x4D30, symSize: 0xD4 }
- - { offsetInCU: 0x1CE, offset: 0x54D15, size: 0x8, addend: 0x0, symName: '___45-[NSFileHandle(Async) appendData:completion:]_block_invoke', symObjAddr: 0xD4, symBinAddr: 0x4E04, symSize: 0xFD }
- - { offsetInCU: 0x316, offset: 0x54E5D, size: 0x8, addend: 0x0, symName: '___45-[NSFileHandle(Async) appendData:completion:]_block_invoke_2', symObjAddr: 0x1D1, symBinAddr: 0x4F01, symSize: 0x13 }
- - { offsetInCU: 0x36D, offset: 0x54EB4, size: 0x8, addend: 0x0, symName: ___copy_helper_block_e8_32s40b, symObjAddr: 0x1E4, symBinAddr: 0x4F14, symSize: 0x30 }
- - { offsetInCU: 0x3A2, offset: 0x54EE9, size: 0x8, addend: 0x0, symName: ___destroy_helper_block_e8_32s40s, symObjAddr: 0x214, symBinAddr: 0x4F44, symSize: 0x25 }
- - { offsetInCU: 0x3D9, offset: 0x54F20, size: 0x8, addend: 0x0, symName: ___copy_helper_block_e8_32s40s48b, symObjAddr: 0x239, symBinAddr: 0x4F69, symSize: 0x44 }
- - { offsetInCU: 0x41A, offset: 0x54F61, size: 0x8, addend: 0x0, symName: ___destroy_helper_block_e8_32s40s48s, symObjAddr: 0x27D, symBinAddr: 0x4FAD, symSize: 0x2C }
- - { offsetInCU: 0x45D, offset: 0x54FA4, size: 0x8, addend: 0x0, symName: '+[NSFileHandle(Async) fileHandleWith:data:completion:]', symObjAddr: 0x2A9, symBinAddr: 0x4FD9, symSize: 0xF1 }
- - { offsetInCU: 0x5ED, offset: 0x55134, size: 0x8, addend: 0x0, symName: '___54+[NSFileHandle(Async) fileHandleWith:data:completion:]_block_invoke', symObjAddr: 0x39A, symBinAddr: 0x50CA, symSize: 0x141 }
- - { offsetInCU: 0x781, offset: 0x552C8, size: 0x8, addend: 0x0, symName: '___54+[NSFileHandle(Async) fileHandleWith:data:completion:]_block_invoke_2', symObjAddr: 0x4DB, symBinAddr: 0x520B, symSize: 0x1A }
- - { offsetInCU: 0x27, offset: 0x5565E, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) initialize]', symObjAddr: 0x0, symBinAddr: 0x5225, symSize: 0x27 }
- - { offsetInCU: 0x4F, offset: 0x55686, size: 0x8, addend: 0x0, symName: _image_queue, symObjAddr: 0x43B8, symBinAddr: 0xC560, symSize: 0x0 }
- - { offsetInCU: 0x68, offset: 0x5569F, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) initialize]', symObjAddr: 0x0, symBinAddr: 0x5225, symSize: 0x27 }
- - { offsetInCU: 0x131, offset: 0x55768, size: 0x8, addend: 0x0, symName: '-[UIImage(TNSBlocks) tns_forceDecode]', symObjAddr: 0x27, symBinAddr: 0x524C, symSize: 0xB2 }
- - { offsetInCU: 0x2E8, offset: 0x5591F, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) tns_safeDecodeImageNamed:completion:]', symObjAddr: 0xD9, symBinAddr: 0x52FE, symSize: 0xB3 }
- - { offsetInCU: 0x3FD, offset: 0x55A34, size: 0x8, addend: 0x0, symName: '___58+[UIImage(TNSBlocks) tns_safeDecodeImageNamed:completion:]_block_invoke', symObjAddr: 0x18C, symBinAddr: 0x53B1, symSize: 0xD9 }
- - { offsetInCU: 0x4E1, offset: 0x55B18, size: 0x8, addend: 0x0, symName: '___58+[UIImage(TNSBlocks) tns_safeDecodeImageNamed:completion:]_block_invoke_2', symObjAddr: 0x265, symBinAddr: 0x548A, symSize: 0x13 }
- - { offsetInCU: 0x538, offset: 0x55B6F, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) tns_safeImageNamed:]', symObjAddr: 0x2CD, symBinAddr: 0x549D, symSize: 0x63 }
- - { offsetInCU: 0x5C0, offset: 0x55BF7, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) tns_decodeImageWithData:completion:]', symObjAddr: 0x330, symBinAddr: 0x5500, symSize: 0xB3 }
- - { offsetInCU: 0x6B5, offset: 0x55CEC, size: 0x8, addend: 0x0, symName: '___57+[UIImage(TNSBlocks) tns_decodeImageWithData:completion:]_block_invoke', symObjAddr: 0x3E3, symBinAddr: 0x55B3, symSize: 0xD9 }
- - { offsetInCU: 0x799, offset: 0x55DD0, size: 0x8, addend: 0x0, symName: '___57+[UIImage(TNSBlocks) tns_decodeImageWithData:completion:]_block_invoke_2', symObjAddr: 0x4BC, symBinAddr: 0x568C, symSize: 0x13 }
- - { offsetInCU: 0x7F0, offset: 0x55E27, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) tns_decodeImageWidthContentsOfFile:completion:]', symObjAddr: 0x4CF, symBinAddr: 0x569F, symSize: 0xB3 }
- - { offsetInCU: 0x8E5, offset: 0x55F1C, size: 0x8, addend: 0x0, symName: '___68+[UIImage(TNSBlocks) tns_decodeImageWidthContentsOfFile:completion:]_block_invoke', symObjAddr: 0x582, symBinAddr: 0x5752, symSize: 0xD9 }
- - { offsetInCU: 0x9C9, offset: 0x56000, size: 0x8, addend: 0x0, symName: '___68+[UIImage(TNSBlocks) tns_decodeImageWidthContentsOfFile:completion:]_block_invoke_2', symObjAddr: 0x65B, symBinAddr: 0x582B, symSize: 0x13 }
- - { offsetInCU: 0x27, offset: 0x563DB, size: 0x8, addend: 0x0, symName: '+[NSObject(Swizzling) swizzleInstanceMethodWithOriginalSelector:fromClass:withSwizzlingSelector:]', symObjAddr: 0x0, symBinAddr: 0x583E, symSize: 0x6A }
- - { offsetInCU: 0x43, offset: 0x563F7, size: 0x8, addend: 0x0, symName: '+[NSObject(Swizzling) swizzleInstanceMethodWithOriginalSelector:fromClass:withSwizzlingSelector:]', symObjAddr: 0x0, symBinAddr: 0x583E, symSize: 0x6A }
- - { offsetInCU: 0x169, offset: 0x5651D, size: 0x8, addend: 0x0, symName: '+[NSObject(Swizzling) swizzleMethodWithOriginalSelector:originalMethod:fromClass:withSwizzlingSelector:swizzlingMethod:]', symObjAddr: 0x6A, symBinAddr: 0x58A8, symSize: 0x11A }
- - { offsetInCU: 0x27, offset: 0x567EF, size: 0x8, addend: 0x0, symName: '+[NSString(Async) stringWithContentsOfFile:encoding:completion:]', symObjAddr: 0x0, symBinAddr: 0x59C2, symSize: 0xDD }
- - { offsetInCU: 0x4A, offset: 0x56812, size: 0x8, addend: 0x0, symName: '+[NSString(Async) stringWithContentsOfFile:encoding:completion:]', symObjAddr: 0x0, symBinAddr: 0x59C2, symSize: 0xDD }
- - { offsetInCU: 0x1DA, offset: 0x569A2, size: 0x8, addend: 0x0, symName: '___64+[NSString(Async) stringWithContentsOfFile:encoding:completion:]_block_invoke', symObjAddr: 0xDD, symBinAddr: 0x5A9F, symSize: 0xF1 }
- - { offsetInCU: 0x312, offset: 0x56ADA, size: 0x8, addend: 0x0, symName: '___64+[NSString(Async) stringWithContentsOfFile:encoding:completion:]_block_invoke_2', symObjAddr: 0x1CE, symBinAddr: 0x5B90, symSize: 0x1A }
- - { offsetInCU: 0x379, offset: 0x56B41, size: 0x8, addend: 0x0, symName: '-[NSString(Async) writeToFile:atomically:encoding:completion:]', symObjAddr: 0x2AD, symBinAddr: 0x5BAA, symSize: 0xEB }
- - { offsetInCU: 0x4D2, offset: 0x56C9A, size: 0x8, addend: 0x0, symName: '___62-[NSString(Async) writeToFile:atomically:encoding:completion:]_block_invoke', symObjAddr: 0x398, symBinAddr: 0x5C95, symSize: 0xC9 }
- - { offsetInCU: 0x5F2, offset: 0x56DBA, size: 0x8, addend: 0x0, symName: '___62-[NSString(Async) writeToFile:atomically:encoding:completion:]_block_invoke_2', symObjAddr: 0x461, symBinAddr: 0x5D5E, symSize: 0x13 }
- - { offsetInCU: 0x27, offset: 0x5715A, size: 0x8, addend: 0x0, symName: '+[NSData(Async) dataWithContentsOfFile:completion:]', symObjAddr: 0x0, symBinAddr: 0x5D71, symSize: 0xC6 }
- - { offsetInCU: 0x4A, offset: 0x5717D, size: 0x8, addend: 0x0, symName: '+[NSData(Async) dataWithContentsOfFile:completion:]', symObjAddr: 0x0, symBinAddr: 0x5D71, symSize: 0xC6 }
- - { offsetInCU: 0x225, offset: 0x57358, size: 0x8, addend: 0x0, symName: '___51+[NSData(Async) dataWithContentsOfFile:completion:]_block_invoke', symObjAddr: 0xC6, symBinAddr: 0x5E37, symSize: 0xB4 }
- - { offsetInCU: 0x2FD, offset: 0x57430, size: 0x8, addend: 0x0, symName: '___51+[NSData(Async) dataWithContentsOfFile:completion:]_block_invoke_2', symObjAddr: 0x17A, symBinAddr: 0x5EEB, symSize: 0x13 }
- - { offsetInCU: 0x354, offset: 0x57487, size: 0x8, addend: 0x0, symName: '-[NSData(Async) writeToFile:atomically:completion:]', symObjAddr: 0x1E2, symBinAddr: 0x5EFE, symSize: 0xE6 }
- - { offsetInCU: 0x49D, offset: 0x575D0, size: 0x8, addend: 0x0, symName: '___51-[NSData(Async) writeToFile:atomically:completion:]_block_invoke', symObjAddr: 0x2C8, symBinAddr: 0x5FE4, symSize: 0x84 }
- - { offsetInCU: 0x546, offset: 0x57679, size: 0x8, addend: 0x0, symName: '___51-[NSData(Async) writeToFile:atomically:completion:]_block_invoke_2', symObjAddr: 0x34C, symBinAddr: 0x6068, symSize: 0xC }
- - { offsetInCU: 0x58D, offset: 0x576C0, size: 0x8, addend: 0x0, symName: ___copy_helper_block_e8_32b, symObjAddr: 0x358, symBinAddr: 0x6074, symSize: 0x17 }
- - { offsetInCU: 0x5B6, offset: 0x576E9, size: 0x8, addend: 0x0, symName: ___destroy_helper_block_e8_32s, symObjAddr: 0x36F, symBinAddr: 0x608B, symSize: 0xF }
- - { offsetInCU: 0x27, offset: 0x579DB, size: 0x8, addend: 0x0, symName: '+[UIView(PropertyBag) load]', symObjAddr: 0x0, symBinAddr: 0x609A, symSize: 0x12 }
- - { offsetInCU: 0x35, offset: 0x579E9, size: 0x8, addend: 0x0, symName: '+[UIView(PropertyBag) loadPropertyBag]', symObjAddr: 0x12, symBinAddr: 0x60AC, symSize: 0x70 }
- - { offsetInCU: 0x5B, offset: 0x57A0F, size: 0x8, addend: 0x0, symName: _loadPropertyBag.onceToken, symObjAddr: 0x2D50, symBinAddr: 0xC568, symSize: 0x0 }
- - { offsetInCU: 0xBF, offset: 0x57A73, size: 0x8, addend: 0x0, symName: __propertyBagHolder, symObjAddr: 0x2D58, symBinAddr: 0xC578, symSize: 0x0 }
- - { offsetInCU: 0xE4, offset: 0x57A98, size: 0x8, addend: 0x0, symName: '+[UIView(PropertyBag) load]', symObjAddr: 0x0, symBinAddr: 0x609A, symSize: 0x12 }
- - { offsetInCU: 0x178, offset: 0x57B2C, size: 0x8, addend: 0x0, symName: '___38+[UIView(PropertyBag) loadPropertyBag]_block_invoke', symObjAddr: 0x82, symBinAddr: 0x611C, symSize: 0x46 }
- - { offsetInCU: 0x22A, offset: 0x57BDE, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) propertyValueForKey:]', symObjAddr: 0xC8, symBinAddr: 0x6162, symSize: 0x7A }
- - { offsetInCU: 0x2C6, offset: 0x57C7A, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) setPropertyValue:forKey:]', symObjAddr: 0x142, symBinAddr: 0x61DC, symSize: 0x8B }
- - { offsetInCU: 0x3A5, offset: 0x57D59, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) propertyBag]', symObjAddr: 0x1CD, symBinAddr: 0x6267, symSize: 0xEA }
- - { offsetInCU: 0x460, offset: 0x57E14, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) setPropertyBag:]', symObjAddr: 0x2B7, symBinAddr: 0x6351, symSize: 0xC1 }
- - { offsetInCU: 0x52F, offset: 0x57EE3, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) removePropertyBag]', symObjAddr: 0x378, symBinAddr: 0x6412, symSize: 0x76 }
- - { offsetInCU: 0x59E, offset: 0x57F52, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) propertyBag_dealloc]', symObjAddr: 0x3EE, symBinAddr: 0x6488, symSize: 0x2E }
- - { offsetInCU: 0x27, offset: 0x580A5, size: 0x8, addend: 0x0, symName: '+[UIView(PassThroughParent) load]', symObjAddr: 0x0, symBinAddr: 0x64B6, symSize: 0x12 }
- - { offsetInCU: 0x41, offset: 0x580BF, size: 0x8, addend: 0x0, symName: _TLKPassThroughParentKey, symObjAddr: 0x1F8, symBinAddr: 0x8268, symSize: 0x0 }
- - { offsetInCU: 0x55, offset: 0x580D3, size: 0x8, addend: 0x0, symName: '+[UIView(PassThroughParent) loadHitTest]', symObjAddr: 0x12, symBinAddr: 0x64C8, symSize: 0x70 }
- - { offsetInCU: 0x7B, offset: 0x580F9, size: 0x8, addend: 0x0, symName: _loadHitTest.onceToken, symObjAddr: 0x2658, symBinAddr: 0xC570, symSize: 0x0 }
- - { offsetInCU: 0xE8, offset: 0x58166, size: 0x8, addend: 0x0, symName: '+[UIView(PassThroughParent) load]', symObjAddr: 0x0, symBinAddr: 0x64B6, symSize: 0x12 }
- - { offsetInCU: 0x17D, offset: 0x581FB, size: 0x8, addend: 0x0, symName: '___40+[UIView(PassThroughParent) loadHitTest]_block_invoke', symObjAddr: 0x82, symBinAddr: 0x6538, symSize: 0x3B }
- - { offsetInCU: 0x1D7, offset: 0x58255, size: 0x8, addend: 0x0, symName: '-[UIView(PassThroughParent) passThroughParent]', symObjAddr: 0xBD, symBinAddr: 0x6573, symSize: 0x54 }
- - { offsetInCU: 0x252, offset: 0x582D0, size: 0x8, addend: 0x0, symName: '-[UIView(PassThroughParent) setPassThroughParent:]', symObjAddr: 0x111, symBinAddr: 0x65C7, symSize: 0x5A }
- - { offsetInCU: 0x2C9, offset: 0x58347, size: 0x8, addend: 0x0, symName: '-[UIView(PassThroughParent) passThrough_hitTest:withEvent:]', symObjAddr: 0x16B, symBinAddr: 0x6621, symSize: 0x55 }
+ - { offsetInCU: 0x34, offset: 0x548A6, size: 0x8, addend: 0x0, symName: _TNSWidgetsVersionString, symObjAddr: 0x0, symBinAddr: 0x3950, symSize: 0x0 }
+ - { offsetInCU: 0x69, offset: 0x548DB, size: 0x8, addend: 0x0, symName: _TNSWidgetsVersionNumber, symObjAddr: 0x30, symBinAddr: 0x3980, symSize: 0x0 }
+ - { offsetInCU: 0x27, offset: 0x54918, size: 0x8, addend: 0x0, symName: '-[TNSLabel textRectForBounds:limitedToNumberOfLines:]', symObjAddr: 0x0, symBinAddr: 0x1713, symSize: 0x394 }
+ - { offsetInCU: 0xA9, offset: 0x5499A, size: 0x8, addend: 0x0, symName: '-[TNSLabel textRectForBounds:limitedToNumberOfLines:]', symObjAddr: 0x0, symBinAddr: 0x1713, symSize: 0x394 }
+ - { offsetInCU: 0x185, offset: 0x54A76, size: 0x8, addend: 0x0, symName: '-[TNSLabel drawTextInRect:]', symObjAddr: 0x394, symBinAddr: 0x1AA7, symSize: 0xDD }
+ - { offsetInCU: 0x1F1, offset: 0x54AE2, size: 0x8, addend: 0x0, symName: '-[TNSLabel padding]', symObjAddr: 0x471, symBinAddr: 0x1B84, symSize: 0x20 }
+ - { offsetInCU: 0x226, offset: 0x54B17, size: 0x8, addend: 0x0, symName: '-[TNSLabel setPadding:]', symObjAddr: 0x491, symBinAddr: 0x1BA4, symSize: 0x1E }
+ - { offsetInCU: 0x264, offset: 0x54B55, size: 0x8, addend: 0x0, symName: '-[TNSLabel borderThickness]', symObjAddr: 0x4AF, symBinAddr: 0x1BC2, symSize: 0x20 }
+ - { offsetInCU: 0x299, offset: 0x54B8A, size: 0x8, addend: 0x0, symName: '-[TNSLabel setBorderThickness:]', symObjAddr: 0x4CF, symBinAddr: 0x1BE2, symSize: 0x1E }
+ - { offsetInCU: 0x27, offset: 0x54C13, size: 0x8, addend: 0x0, symName: ___tns_uptime, symObjAddr: 0x0, symBinAddr: 0x1C00, symSize: 0x119 }
+ - { offsetInCU: 0x59, offset: 0x54C45, size: 0x8, addend: 0x0, symName: ___tns_uptime, symObjAddr: 0x0, symBinAddr: 0x1C00, symSize: 0x119 }
+ - { offsetInCU: 0x1B5, offset: 0x54DA1, size: 0x8, addend: 0x0, symName: ___nslog, symObjAddr: 0x119, symBinAddr: 0x1D19, symSize: 0x17 }
+ - { offsetInCU: 0x27, offset: 0x54E07, size: 0x8, addend: 0x0, symName: '-[NSFileHandle(Async) appendData:completion:]', symObjAddr: 0x0, symBinAddr: 0x1D30, symSize: 0xD4 }
+ - { offsetInCU: 0x4A, offset: 0x54E2A, size: 0x8, addend: 0x0, symName: '-[NSFileHandle(Async) appendData:completion:]', symObjAddr: 0x0, symBinAddr: 0x1D30, symSize: 0xD4 }
+ - { offsetInCU: 0x1CE, offset: 0x54FAE, size: 0x8, addend: 0x0, symName: '___45-[NSFileHandle(Async) appendData:completion:]_block_invoke', symObjAddr: 0xD4, symBinAddr: 0x1E04, symSize: 0xFD }
+ - { offsetInCU: 0x316, offset: 0x550F6, size: 0x8, addend: 0x0, symName: '___45-[NSFileHandle(Async) appendData:completion:]_block_invoke_2', symObjAddr: 0x1D1, symBinAddr: 0x1F01, symSize: 0x13 }
+ - { offsetInCU: 0x36D, offset: 0x5514D, size: 0x8, addend: 0x0, symName: ___copy_helper_block_e8_32s40b, symObjAddr: 0x1E4, symBinAddr: 0x1F14, symSize: 0x30 }
+ - { offsetInCU: 0x3A2, offset: 0x55182, size: 0x8, addend: 0x0, symName: ___destroy_helper_block_e8_32s40s, symObjAddr: 0x214, symBinAddr: 0x1F44, symSize: 0x25 }
+ - { offsetInCU: 0x3D9, offset: 0x551B9, size: 0x8, addend: 0x0, symName: ___copy_helper_block_e8_32s40s48b, symObjAddr: 0x239, symBinAddr: 0x1F69, symSize: 0x44 }
+ - { offsetInCU: 0x41A, offset: 0x551FA, size: 0x8, addend: 0x0, symName: ___destroy_helper_block_e8_32s40s48s, symObjAddr: 0x27D, symBinAddr: 0x1FAD, symSize: 0x2C }
+ - { offsetInCU: 0x45D, offset: 0x5523D, size: 0x8, addend: 0x0, symName: '+[NSFileHandle(Async) fileHandleWith:data:completion:]', symObjAddr: 0x2A9, symBinAddr: 0x1FD9, symSize: 0xF1 }
+ - { offsetInCU: 0x5ED, offset: 0x553CD, size: 0x8, addend: 0x0, symName: '___54+[NSFileHandle(Async) fileHandleWith:data:completion:]_block_invoke', symObjAddr: 0x39A, symBinAddr: 0x20CA, symSize: 0x141 }
+ - { offsetInCU: 0x781, offset: 0x55561, size: 0x8, addend: 0x0, symName: '___54+[NSFileHandle(Async) fileHandleWith:data:completion:]_block_invoke_2', symObjAddr: 0x4DB, symBinAddr: 0x220B, symSize: 0x1A }
+ - { offsetInCU: 0x27, offset: 0x558F7, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) initialize]', symObjAddr: 0x0, symBinAddr: 0x2225, symSize: 0x27 }
+ - { offsetInCU: 0x4F, offset: 0x5591F, size: 0x8, addend: 0x0, symName: _image_queue, symObjAddr: 0x43B0, symBinAddr: 0x6560, symSize: 0x0 }
+ - { offsetInCU: 0x68, offset: 0x55938, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) initialize]', symObjAddr: 0x0, symBinAddr: 0x2225, symSize: 0x27 }
+ - { offsetInCU: 0x131, offset: 0x55A01, size: 0x8, addend: 0x0, symName: '-[UIImage(TNSBlocks) tns_forceDecode]', symObjAddr: 0x27, symBinAddr: 0x224C, symSize: 0xB2 }
+ - { offsetInCU: 0x2E8, offset: 0x55BB8, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) tns_safeDecodeImageNamed:completion:]', symObjAddr: 0xD9, symBinAddr: 0x22FE, symSize: 0xB3 }
+ - { offsetInCU: 0x3FD, offset: 0x55CCD, size: 0x8, addend: 0x0, symName: '___58+[UIImage(TNSBlocks) tns_safeDecodeImageNamed:completion:]_block_invoke', symObjAddr: 0x18C, symBinAddr: 0x23B1, symSize: 0xD9 }
+ - { offsetInCU: 0x4E1, offset: 0x55DB1, size: 0x8, addend: 0x0, symName: '___58+[UIImage(TNSBlocks) tns_safeDecodeImageNamed:completion:]_block_invoke_2', symObjAddr: 0x265, symBinAddr: 0x248A, symSize: 0x13 }
+ - { offsetInCU: 0x538, offset: 0x55E08, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) tns_safeImageNamed:]', symObjAddr: 0x2CD, symBinAddr: 0x249D, symSize: 0x63 }
+ - { offsetInCU: 0x5C0, offset: 0x55E90, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) tns_decodeImageWithData:completion:]', symObjAddr: 0x330, symBinAddr: 0x2500, symSize: 0xB3 }
+ - { offsetInCU: 0x6B5, offset: 0x55F85, size: 0x8, addend: 0x0, symName: '___57+[UIImage(TNSBlocks) tns_decodeImageWithData:completion:]_block_invoke', symObjAddr: 0x3E3, symBinAddr: 0x25B3, symSize: 0xD9 }
+ - { offsetInCU: 0x799, offset: 0x56069, size: 0x8, addend: 0x0, symName: '___57+[UIImage(TNSBlocks) tns_decodeImageWithData:completion:]_block_invoke_2', symObjAddr: 0x4BC, symBinAddr: 0x268C, symSize: 0x13 }
+ - { offsetInCU: 0x7F0, offset: 0x560C0, size: 0x8, addend: 0x0, symName: '+[UIImage(TNSBlocks) tns_decodeImageWidthContentsOfFile:completion:]', symObjAddr: 0x4CF, symBinAddr: 0x269F, symSize: 0xB3 }
+ - { offsetInCU: 0x8E5, offset: 0x561B5, size: 0x8, addend: 0x0, symName: '___68+[UIImage(TNSBlocks) tns_decodeImageWidthContentsOfFile:completion:]_block_invoke', symObjAddr: 0x582, symBinAddr: 0x2752, symSize: 0xD9 }
+ - { offsetInCU: 0x9C9, offset: 0x56299, size: 0x8, addend: 0x0, symName: '___68+[UIImage(TNSBlocks) tns_decodeImageWidthContentsOfFile:completion:]_block_invoke_2', symObjAddr: 0x65B, symBinAddr: 0x282B, symSize: 0x13 }
+ - { offsetInCU: 0x27, offset: 0x56674, size: 0x8, addend: 0x0, symName: '+[NSObject(Swizzling) swizzleInstanceMethodWithOriginalSelector:fromClass:withSwizzlingSelector:]', symObjAddr: 0x0, symBinAddr: 0x283E, symSize: 0x6A }
+ - { offsetInCU: 0x43, offset: 0x56690, size: 0x8, addend: 0x0, symName: '+[NSObject(Swizzling) swizzleInstanceMethodWithOriginalSelector:fromClass:withSwizzlingSelector:]', symObjAddr: 0x0, symBinAddr: 0x283E, symSize: 0x6A }
+ - { offsetInCU: 0x169, offset: 0x567B6, size: 0x8, addend: 0x0, symName: '+[NSObject(Swizzling) swizzleMethodWithOriginalSelector:originalMethod:fromClass:withSwizzlingSelector:swizzlingMethod:]', symObjAddr: 0x6A, symBinAddr: 0x28A8, symSize: 0x11A }
+ - { offsetInCU: 0x27, offset: 0x56A88, size: 0x8, addend: 0x0, symName: '+[NSString(Async) stringWithContentsOfFile:encoding:completion:]', symObjAddr: 0x0, symBinAddr: 0x29C2, symSize: 0xDD }
+ - { offsetInCU: 0x4A, offset: 0x56AAB, size: 0x8, addend: 0x0, symName: '+[NSString(Async) stringWithContentsOfFile:encoding:completion:]', symObjAddr: 0x0, symBinAddr: 0x29C2, symSize: 0xDD }
+ - { offsetInCU: 0x1DA, offset: 0x56C3B, size: 0x8, addend: 0x0, symName: '___64+[NSString(Async) stringWithContentsOfFile:encoding:completion:]_block_invoke', symObjAddr: 0xDD, symBinAddr: 0x2A9F, symSize: 0xF1 }
+ - { offsetInCU: 0x312, offset: 0x56D73, size: 0x8, addend: 0x0, symName: '___64+[NSString(Async) stringWithContentsOfFile:encoding:completion:]_block_invoke_2', symObjAddr: 0x1CE, symBinAddr: 0x2B90, symSize: 0x1A }
+ - { offsetInCU: 0x379, offset: 0x56DDA, size: 0x8, addend: 0x0, symName: '-[NSString(Async) writeToFile:atomically:encoding:completion:]', symObjAddr: 0x2AD, symBinAddr: 0x2BAA, symSize: 0xEB }
+ - { offsetInCU: 0x4D2, offset: 0x56F33, size: 0x8, addend: 0x0, symName: '___62-[NSString(Async) writeToFile:atomically:encoding:completion:]_block_invoke', symObjAddr: 0x398, symBinAddr: 0x2C95, symSize: 0xC9 }
+ - { offsetInCU: 0x5F2, offset: 0x57053, size: 0x8, addend: 0x0, symName: '___62-[NSString(Async) writeToFile:atomically:encoding:completion:]_block_invoke_2', symObjAddr: 0x461, symBinAddr: 0x2D5E, symSize: 0x13 }
+ - { offsetInCU: 0x27, offset: 0x573F3, size: 0x8, addend: 0x0, symName: '+[NSData(Async) dataWithContentsOfFile:completion:]', symObjAddr: 0x0, symBinAddr: 0x2D71, symSize: 0xC6 }
+ - { offsetInCU: 0x4A, offset: 0x57416, size: 0x8, addend: 0x0, symName: '+[NSData(Async) dataWithContentsOfFile:completion:]', symObjAddr: 0x0, symBinAddr: 0x2D71, symSize: 0xC6 }
+ - { offsetInCU: 0x225, offset: 0x575F1, size: 0x8, addend: 0x0, symName: '___51+[NSData(Async) dataWithContentsOfFile:completion:]_block_invoke', symObjAddr: 0xC6, symBinAddr: 0x2E37, symSize: 0xB4 }
+ - { offsetInCU: 0x2FD, offset: 0x576C9, size: 0x8, addend: 0x0, symName: '___51+[NSData(Async) dataWithContentsOfFile:completion:]_block_invoke_2', symObjAddr: 0x17A, symBinAddr: 0x2EEB, symSize: 0x13 }
+ - { offsetInCU: 0x354, offset: 0x57720, size: 0x8, addend: 0x0, symName: '-[NSData(Async) writeToFile:atomically:completion:]', symObjAddr: 0x1E2, symBinAddr: 0x2EFE, symSize: 0xE6 }
+ - { offsetInCU: 0x49D, offset: 0x57869, size: 0x8, addend: 0x0, symName: '___51-[NSData(Async) writeToFile:atomically:completion:]_block_invoke', symObjAddr: 0x2C8, symBinAddr: 0x2FE4, symSize: 0x84 }
+ - { offsetInCU: 0x546, offset: 0x57912, size: 0x8, addend: 0x0, symName: '___51-[NSData(Async) writeToFile:atomically:completion:]_block_invoke_2', symObjAddr: 0x34C, symBinAddr: 0x3068, symSize: 0xC }
+ - { offsetInCU: 0x58D, offset: 0x57959, size: 0x8, addend: 0x0, symName: ___copy_helper_block_e8_32b, symObjAddr: 0x358, symBinAddr: 0x3074, symSize: 0x17 }
+ - { offsetInCU: 0x5B6, offset: 0x57982, size: 0x8, addend: 0x0, symName: ___destroy_helper_block_e8_32s, symObjAddr: 0x36F, symBinAddr: 0x308B, symSize: 0xF }
+ - { offsetInCU: 0x27, offset: 0x57C74, size: 0x8, addend: 0x0, symName: '+[UIView(PropertyBag) load]', symObjAddr: 0x0, symBinAddr: 0x309A, symSize: 0x12 }
+ - { offsetInCU: 0x35, offset: 0x57C82, size: 0x8, addend: 0x0, symName: '+[UIView(PropertyBag) loadPropertyBag]', symObjAddr: 0x12, symBinAddr: 0x30AC, symSize: 0x70 }
+ - { offsetInCU: 0x5B, offset: 0x57CA8, size: 0x8, addend: 0x0, symName: _loadPropertyBag.onceToken, symObjAddr: 0x2D48, symBinAddr: 0x6568, symSize: 0x0 }
+ - { offsetInCU: 0xBF, offset: 0x57D0C, size: 0x8, addend: 0x0, symName: __propertyBagHolder, symObjAddr: 0x2D50, symBinAddr: 0x6578, symSize: 0x0 }
+ - { offsetInCU: 0xE4, offset: 0x57D31, size: 0x8, addend: 0x0, symName: '+[UIView(PropertyBag) load]', symObjAddr: 0x0, symBinAddr: 0x309A, symSize: 0x12 }
+ - { offsetInCU: 0x178, offset: 0x57DC5, size: 0x8, addend: 0x0, symName: '___38+[UIView(PropertyBag) loadPropertyBag]_block_invoke', symObjAddr: 0x82, symBinAddr: 0x311C, symSize: 0x46 }
+ - { offsetInCU: 0x22A, offset: 0x57E77, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) propertyValueForKey:]', symObjAddr: 0xC8, symBinAddr: 0x3162, symSize: 0x7A }
+ - { offsetInCU: 0x2C6, offset: 0x57F13, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) setPropertyValue:forKey:]', symObjAddr: 0x142, symBinAddr: 0x31DC, symSize: 0x8B }
+ - { offsetInCU: 0x3A5, offset: 0x57FF2, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) propertyBag]', symObjAddr: 0x1CD, symBinAddr: 0x3267, symSize: 0xEA }
+ - { offsetInCU: 0x460, offset: 0x580AD, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) setPropertyBag:]', symObjAddr: 0x2B7, symBinAddr: 0x3351, symSize: 0xC1 }
+ - { offsetInCU: 0x52F, offset: 0x5817C, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) removePropertyBag]', symObjAddr: 0x378, symBinAddr: 0x3412, symSize: 0x76 }
+ - { offsetInCU: 0x59E, offset: 0x581EB, size: 0x8, addend: 0x0, symName: '-[UIView(PropertyBag) propertyBag_dealloc]', symObjAddr: 0x3EE, symBinAddr: 0x3488, symSize: 0x2E }
+ - { offsetInCU: 0x27, offset: 0x5833E, size: 0x8, addend: 0x0, symName: '+[UIView(PassThroughParent) load]', symObjAddr: 0x0, symBinAddr: 0x34B6, symSize: 0x12 }
+ - { offsetInCU: 0x41, offset: 0x58358, size: 0x8, addend: 0x0, symName: _TLKPassThroughParentKey, symObjAddr: 0x1F8, symBinAddr: 0x5268, symSize: 0x0 }
+ - { offsetInCU: 0x55, offset: 0x5836C, size: 0x8, addend: 0x0, symName: '+[UIView(PassThroughParent) loadHitTest]', symObjAddr: 0x12, symBinAddr: 0x34C8, symSize: 0x70 }
+ - { offsetInCU: 0x7B, offset: 0x58392, size: 0x8, addend: 0x0, symName: _loadHitTest.onceToken, symObjAddr: 0x2658, symBinAddr: 0x6570, symSize: 0x0 }
+ - { offsetInCU: 0xE8, offset: 0x583FF, size: 0x8, addend: 0x0, symName: '+[UIView(PassThroughParent) load]', symObjAddr: 0x0, symBinAddr: 0x34B6, symSize: 0x12 }
+ - { offsetInCU: 0x17D, offset: 0x58494, size: 0x8, addend: 0x0, symName: '___40+[UIView(PassThroughParent) loadHitTest]_block_invoke', symObjAddr: 0x82, symBinAddr: 0x3538, symSize: 0x3B }
+ - { offsetInCU: 0x1D7, offset: 0x584EE, size: 0x8, addend: 0x0, symName: '-[UIView(PassThroughParent) passThroughParent]', symObjAddr: 0xBD, symBinAddr: 0x3573, symSize: 0x54 }
+ - { offsetInCU: 0x252, offset: 0x58569, size: 0x8, addend: 0x0, symName: '-[UIView(PassThroughParent) setPassThroughParent:]', symObjAddr: 0x111, symBinAddr: 0x35C7, symSize: 0x5A }
+ - { offsetInCU: 0x2C9, offset: 0x585E0, size: 0x8, addend: 0x0, symName: '-[UIView(PassThroughParent) passThrough_hitTest:withEvent:]', symObjAddr: 0x16B, symBinAddr: 0x3621, symSize: 0x55 }
...
diff --git a/packages/core/wgc/atob.ts b/packages/core/wgc/atob.ts
new file mode 100644
index 0000000000..f14aec9236
--- /dev/null
+++ b/packages/core/wgc/atob.ts
@@ -0,0 +1,9 @@
+export function atob(data: string) {
+ if (__ANDROID__) {
+ return (org).nativescript.winter_cg.Utils.atob(data);
+ }
+
+ if (__IOS__) {
+ return (NSString).atob(data);
+ }
+}
diff --git a/packages/core/wgc/btoa.ts b/packages/core/wgc/btoa.ts
new file mode 100644
index 0000000000..e8abe4c8f8
--- /dev/null
+++ b/packages/core/wgc/btoa.ts
@@ -0,0 +1,9 @@
+export function btoa(stringToEncode: string) {
+ if (__ANDROID__) {
+ return (org).nativescript.winter_cg.Utils.btoa(stringToEncode);
+ }
+
+ if (__IOS__) {
+ return (NSString).btoa(stringToEncode);
+ }
+}
diff --git a/packages/core/wgc/crypto/SubtleCrypto.ts b/packages/core/wgc/crypto/SubtleCrypto.ts
new file mode 100644
index 0000000000..59b835e9c7
--- /dev/null
+++ b/packages/core/wgc/crypto/SubtleCrypto.ts
@@ -0,0 +1,591 @@
+type TypedArray = Int8Array | Uint8Array | Uint8ClampedArray | Int16Array | Uint16Array | Int32Array | Uint32Array | BigInt64Array | BigUint64Array | Float32Array | Float64Array;
+type HashTypes = 'SHA-1' | 'SHA-256' | 'SHA-384' | 'SHA-512';
+type Hash = HashTypes | { name: HashTypes };
+export interface HmacKeyGenParams {
+ name: 'HMAC';
+ hash: Hash;
+ length?: number;
+}
+
+export type KeyUsages = 'encrypt' | 'decrypt' | 'sign' | 'verify' | 'deriveKey' | 'deriveBits' | 'wrapKey' | 'unwrapKey';
+
+const parent_ = Symbol('[[parent]]');
+const native_ = Symbol('[[native]]');
+const algorithm_ = Symbol('[[algorithm]]');
+const usages_ = Symbol('[[usages]]');
+const extractable_ = Symbol('[[extractable]]');
+const type_ = Symbol('[[type]]');
+const privateKey_ = Symbol('[[privateKey]]');
+const publicKey_ = Symbol('[[publicKey]]');
+
+declare const NSCCrypto;
+
+function parseHash(hash: Hash): number | null {
+ switch (hash) {
+ case 'SHA-1':
+ return 0;
+ case 'SHA-256':
+ return 1;
+ case 'SHA-384':
+ return 2;
+ case 'SHA-512':
+ return 3;
+ default:
+ return null;
+ }
+}
+
+function parseUsages(usages: KeyUsages[]) {
+ const ret = NSMutableArray.new();
+ if (Array.isArray(usages)) {
+ /*
+
+ kNSCCryptoDecrypt,
+ kNSCCryptoEncrypt,
+ kNSCCryptoSign,
+ kNSCCryptoVerify,
+ kNSCCryptoDeriveKey,
+ kNSCCryptoDeriveBits,
+ kNSCCryptoWrapKey,
+ kNSCCryptoUnwrapKey,
+*/
+
+ for (const usage of usages) {
+ switch (usage) {
+ case 'encrypt':
+ ret.addObject(1);
+ break;
+ case 'decrypt':
+ ret.addObject(0);
+ break;
+ case 'sign':
+ ret.addObject(2);
+ break;
+ case 'verify':
+ ret.addObject(3);
+ break;
+ case 'deriveKey':
+ ret.addObject(4);
+ break;
+ case 'deriveBits':
+ ret.addObject(5);
+ break;
+ case 'wrapKey':
+ ret.addObject(6);
+ break;
+ case 'unwrapKey':
+ ret.addObject(7);
+ break;
+ }
+ }
+ }
+ return ret;
+}
+
+export class CryptoKey {
+ [parent_];
+ [native_];
+ [algorithm_];
+ [usages_];
+ [extractable_];
+ [type_];
+
+ get algorithm() {
+ return this[algorithm_];
+ }
+
+ get usages() {
+ return this[usages_];
+ }
+
+ get extractable() {
+ return this[extractable_];
+ }
+
+ get type() {
+ return this[type_];
+ }
+
+ static fromNative(key) {
+ if (key) {
+ const ret = new CryptoKey();
+ ret[native_] = key;
+ return ret;
+ }
+ return null;
+ }
+}
+
+export class CryptoKeyPair {
+ [native_];
+ [privateKey_] = null;
+ [publicKey_] = null;
+
+ get privateKey() {
+ if (__IOS__) {
+ const kp = this[native_];
+ if (!this[privateKey_]) {
+ this[privateKey_] = CryptoKey.fromNative(kp.privateKey);
+ }
+ }
+
+ if (__ANDROID__) {
+ const kp = this[native_];
+ if (!this[privateKey_]) {
+ this[privateKey_] = CryptoKey.fromNative(kp.getPrivate());
+ }
+ }
+
+ return this[privateKey_];
+ }
+
+ get publicKey() {
+ if (__IOS__) {
+ const kp = this[native_];
+ if (!this[publicKey_]) {
+ this[publicKey_] = CryptoKey.fromNative(kp.publicKey);
+ }
+ }
+
+ if (__ANDROID__) {
+ const kp = this[native_];
+ if (!this[publicKey_]) {
+ this[publicKey_] = CryptoKey.fromNative(kp.getPublic());
+ }
+ }
+
+ return this[publicKey_];
+ }
+
+ static fromNative(keyPair) {
+ if (keyPair) {
+ const ret = new CryptoKeyPair();
+ ret[native_] = keyPair;
+ return ret;
+ }
+ return null;
+ }
+}
+
+interface RsaOaepParams {
+ name: 'RSA-OAEP';
+ label?: TypedArray | ArrayBuffer;
+}
+
+interface RsaHashedKeyGenParams {
+ name: 'RSA-OAEP';
+ modulusLength: number;
+ publicExponent: Uint8Array;
+ hash: Hash;
+}
+
+export class SubtleCrypto {
+ digest(algorithm: 'SHA-1' | 'SHA-256' | 'SHA-384' | 'SHA-512', data: TypedArray | ArrayBuffer) {
+ return new Promise((resolve, reject) => {
+ let error: Error;
+ let mode: number;
+ switch (algorithm) {
+ case 'SHA-1':
+ mode = 0;
+ break;
+ case 'SHA-256':
+ mode = 1;
+ break;
+ case 'SHA-384':
+ mode = 2;
+ break;
+ case 'SHA-512':
+ mode = 3;
+ break;
+ default:
+ error = new Error('Operation is not supported');
+ break;
+ }
+ if (error !== undefined) {
+ reject(error);
+ return;
+ }
+
+ if (data instanceof ArrayBuffer || data instanceof Uint8Array || data instanceof Uint8ClampedArray) {
+ // noop
+ } else if (data?.BYTES_PER_ELEMENT !== 1) {
+ data = new Uint8Array(data.buffer, data.byteOffset);
+ } else {
+ reject(new TypeError('Argument 2 could not be converted to any of: ArrayBufferView, ArrayBuffer.'));
+ return;
+ }
+
+ if (__ANDROID__) {
+ //const instance = java.security.MessageDigest.getInstance(algorithm);
+
+ const buffer = (org).nativescript.winter_cg.Crypto.digest(mode, data);
+ const ab = (ArrayBuffer).from(buffer);
+
+ if (!ab) {
+ // todo throw failure
+ }
+
+ resolve(ab);
+
+ /* instance.update(data as any);
+ const digest = instance.digest();
+
+ const ab = new ArrayBuffer(digest.length);
+ (org).nativescript.winter_cg.Utils.copyToBuffer(ab, digest);
+
+ resolve(ab);
+
+ */
+ }
+
+ if (__IOS__) {
+ const ab = NSCCrypto.digestLengthMode(data, data.byteLength, mode);
+ if (!ab) {
+ // todo throw failure
+ }
+ resolve(interop.bufferFromData(ab));
+ }
+ });
+ }
+
+ encrypt(algorithm: RsaOaepParams, key: CryptoKey, data: TypedArray | ArrayBuffer) {
+ return new Promise((resolve, reject) => {
+ let error: Error;
+ switch (algorithm?.name) {
+ case 'RSA-OAEP':
+ {
+ try {
+ if (__IOS__) {
+ const hash = parseHash(key.algorithm.hash.name);
+ const ret = NSCCrypto.encryptRsaKeyHashDataSize(key.type === 'private', key[parent_], hash, data, data.byteLength);
+ if (ret) {
+ resolve(interop.bufferFromData(ret));
+ } else {
+ reject(new Error('Failed to encrypt data'));
+ }
+ }
+
+ if (__ANDROID__) {
+ const hash = parseHash(key.algorithm.hash.name);
+ const ret = (org).nativescript.winter_cg.Crypto.encryptRsaOAEP(key[parent_], hash, data);
+ if (ret) {
+ resolve((ArrayBuffer).from(ret));
+ } else {
+ reject(new Error('Failed to encrypt data'));
+ }
+ }
+ } catch (error) {
+ reject(error);
+ }
+ }
+ break;
+ default:
+ error = new Error('Operation is not supported');
+ break;
+ }
+
+ if (error) {
+ reject(error);
+ return;
+ }
+ });
+ }
+
+ decrypt(algorithm: RsaOaepParams, key: CryptoKey, data: TypedArray | ArrayBuffer) {
+ return new Promise((resolve, reject) => {
+ let error: Error;
+ switch (algorithm?.name) {
+ case 'RSA-OAEP':
+ {
+ try {
+ if (__IOS__) {
+ const hash = parseHash(key.algorithm.hash.name);
+
+ const ret = NSCCrypto.decryptRsaKeyHashDataSize(key.type === 'private', key[parent_], hash, data, data.byteLength);
+ if (ret) {
+ resolve(interop.bufferFromData(ret));
+ } else {
+ reject(new Error('Failed to decrypt data'));
+ }
+ }
+
+ if (__ANDROID__) {
+ const hash = parseHash(key.algorithm.hash.name);
+ const ret = (org).nativescript.winter_cg.Crypto.decryptRsaOAEP(key[parent_], hash, data);
+ if (ret) {
+ resolve((ArrayBuffer).from(ret));
+ } else {
+ reject(new Error('Failed to decrypt data'));
+ }
+ }
+ } catch (error) {
+ reject(error);
+ }
+ }
+ break;
+ default:
+ error = new Error('Operation is not supported');
+ break;
+ }
+
+ if (error) {
+ reject(error);
+ return;
+ }
+ });
+ }
+
+ sign(algorithm: { name: 'HMAC' } | 'HMAC', key: CryptoKey, data: TypedArray | ArrayBuffer) {
+ return new Promise((resolve, reject) => {
+ let error: Error;
+ const algorithmName = typeof algorithm === 'object' ? algorithm?.name : algorithm;
+ switch (algorithmName) {
+ case 'HMAC':
+ {
+ try {
+ if (__IOS__) {
+ const hash = parseHash(key.algorithm.hash.name);
+ const d = NSData.dataWithData(data as never);
+ const ret = NSCCrypto.signHmacHashData(key[native_], hash, d);
+ if (ret) {
+ resolve(interop.bufferFromData(ret));
+ } else {
+ reject(new Error('Failed to sign data'));
+ }
+ }
+
+ if (__ANDROID__) {
+ let algo;
+ switch (key.algorithm.hash.name) {
+ case 'SHA-1':
+ algo = 'HmacSHA1';
+ break;
+ case 'SHA-256':
+ algo = 'HmacSHA256';
+ break;
+ case 'SHA-384':
+ algo = 'HmacSHA384';
+ break;
+ case 'SHA-512':
+ algo = 'HmacSHA512';
+ break;
+ default:
+ error = new Error('Operation is not supported');
+ break;
+ }
+
+ if (error) {
+ reject(error);
+ return;
+ }
+
+ const ab = (org).nativescript.winter_cg.Crypto.signHMAC(algo, key[native_], data);
+ resolve((ArrayBuffer).from(ab));
+ }
+ } catch (error) {
+ reject(error);
+ }
+ }
+ break;
+ default:
+ error = new Error('Operation is not supported');
+ break;
+ }
+
+ if (error) {
+ reject(error);
+ return;
+ }
+ });
+ }
+
+ verify(algorithm: { name: 'HMAC' } | 'HMAC', key: CryptoKey, signature: ArrayBuffer, data: ArrayBuffer) {
+ return new Promise((resolve, reject) => {
+ let error: Error;
+ const algorithmName = typeof algorithm === 'object' ? algorithm?.name : algorithm;
+ switch (algorithmName) {
+ case 'HMAC':
+ {
+ try {
+ if (__IOS__) {
+ const hash = parseHash(key.algorithm.hash.name);
+ const s = NSData.dataWithData(signature as never);
+ const d = NSData.dataWithData(data as never);
+
+ const ret = NSCCrypto.verifyHmacHashSignatureData(key[native_], hash, s, d);
+ resolve(ret);
+ }
+
+ if (__ANDROID__) {
+ let algo;
+ switch (key.algorithm.hash.name) {
+ case 'SHA-1':
+ algo = 'HmacSHA1';
+ break;
+ case 'SHA-256':
+ algo = 'HmacSHA256';
+ break;
+ case 'SHA-384':
+ algo = 'HmacSHA384';
+ break;
+ case 'SHA-512':
+ algo = 'HmacSHA512';
+ break;
+ default:
+ error = new Error('Operation is not supported');
+ break;
+ }
+
+ if (error) {
+ reject(error);
+ return;
+ }
+
+ const ret = (org).nativescript.winter_cg.Crypto.verifyHMAC(algo, key[native_], signature, data);
+ resolve(ret);
+ }
+ } catch (error) {
+ reject(error);
+ }
+ }
+ break;
+ default:
+ error = new Error('Operation is not supported');
+ break;
+ }
+
+ if (error) {
+ reject(error);
+ return;
+ }
+ });
+ }
+
+ generateKey(algorithm: HmacKeyGenParams | RsaHashedKeyGenParams, extractable: boolean, keyUsages: KeyUsages[]) {
+ return new Promise((resolve, reject) => {
+ const algorithmHash = typeof algorithm?.hash === 'object' ? algorithm?.hash?.name : algorithm.hash;
+ switch (algorithm?.name) {
+ case 'HMAC':
+ {
+ let algo;
+ let error: Error;
+ switch (algorithmHash) {
+ case 'SHA-1':
+ algo = 'HmacSHA1';
+ break;
+ case 'SHA-256':
+ algo = 'HmacSHA256';
+ break;
+ case 'SHA-384':
+ algo = 'HmacSHA384';
+ break;
+ case 'SHA-512':
+ algo = 'HmacSHA512';
+ break;
+ default:
+ error = new Error('Operation is not supported');
+ break;
+ }
+
+ if (error) {
+ reject(error);
+ return;
+ }
+
+ if (__ANDROID__) {
+ // const mac = javax.crypto.KeyGenerator.getInstance(algo);
+ // const key = mac.generateKey();
+ const key = (org).nativescript.winter_cg.Crypto.generateKeyHMAC(algo);
+ const ret = new CryptoKey();
+ ret[algorithm_] = { name: algorithm.name, hash: { name: algorithmHash } };
+ ret[native_] = key;
+ ret[usages_] = keyUsages;
+ ret[extractable_] = extractable;
+ ret[type_] = 'secret';
+ resolve(ret);
+ }
+
+ if (__IOS__) {
+ const hash = parseHash(algorithmHash);
+ const key = NSCCrypto.generateKeyHmacLength(hash, algorithm?.length ?? -1);
+ const ret = new CryptoKey();
+ ret[algorithm_] = { name: algorithm.name, hash: { name: algorithmHash } };
+ ret[native_] = key;
+ ret[usages_] = keyUsages;
+ ret[extractable_] = extractable;
+ ret[type_] = 'secret';
+ resolve(ret);
+ }
+ }
+ break;
+ case 'RSA-OAEP':
+ {
+ if (__IOS__) {
+ const hash = parseHash(algorithm.hash);
+ if (hash === null) {
+ // todo throw invalid hash
+ }
+ const usages = parseUsages(keyUsages);
+
+ // ignore publicExponent for now
+ const kp = NSCCrypto.generateKeyRsaModulusLengthPublicExponentSizeHashExtractableKeyUsages(2, algorithm.modulusLength, null, 0, hash, !!extractable, usages);
+
+ if (!kp) {
+ reject(new Error('Failed to generateKey'));
+ } else {
+ const ret = CryptoKeyPair.fromNative(kp);
+ ret.privateKey[parent_] = kp;
+ ret.privateKey[algorithm_] = { name: algorithm.name, hash: { name: algorithm.hash }, modulusLength: algorithm.modulusLength, publicExponent: new Uint8Array([1, 0, 1]) };
+ ret.privateKey[type_] = 'private';
+ ret.privateKey[extractable_] = extractable;
+
+ ret.publicKey[parent_] = kp;
+ ret.publicKey[algorithm_] = { name: algorithm.name, hash: { name: algorithm.hash }, modulusLength: algorithm.modulusLength, publicExponent: new Uint8Array([1, 0, 1]) };
+ ret.publicKey[type_] = 'public';
+ ret.publicKey[extractable_] = extractable;
+
+ resolve(ret);
+ }
+ }
+
+ if (__ANDROID__) {
+ const hash = parseHash(algorithm.hash);
+ if (hash === null) {
+ // todo throw invalid hash
+ }
+ // const usages = parseUsages(keyUsages);
+
+ // ignore publicExponent for now
+ const kp = (org).nativescript.winter_cg.Crypto.generateKeyRsaOAEP(algorithm.modulusLength);
+
+ if (!kp) {
+ reject(new Error('Failed to generateKey'));
+ } else {
+ const ret = CryptoKeyPair.fromNative(kp);
+ ret.privateKey[parent_] = kp;
+ ret.privateKey[algorithm_] = { name: algorithm.name, hash: { name: algorithm.hash }, modulusLength: algorithm.modulusLength, publicExponent: new Uint8Array([1, 0, 1]) };
+ ret.privateKey[type_] = 'private';
+ ret.privateKey[extractable_] = extractable;
+
+ ret.publicKey[parent_] = kp;
+ ret.publicKey[algorithm_] = { name: algorithm.name, hash: { name: algorithm.hash }, modulusLength: algorithm.modulusLength, publicExponent: new Uint8Array([1, 0, 1]) };
+ ret.publicKey[type_] = 'public';
+ ret.publicKey[extractable_] = extractable;
+
+ resolve(ret);
+ }
+ }
+ }
+ break;
+ default:
+ reject(
+ new Error(
+ `'subtle.generateKey()' is not implemented for ${algorithm?.name}.
+ Unrecognized algorithm name`,
+ ),
+ );
+ break;
+ }
+ });
+ }
+}
diff --git a/packages/core/wgc/crypto/index.ts b/packages/core/wgc/crypto/index.ts
new file mode 100644
index 0000000000..fc3be5011b
--- /dev/null
+++ b/packages/core/wgc/crypto/index.ts
@@ -0,0 +1,30 @@
+import { SubtleCrypto } from './SubtleCrypto';
+
+declare const NSCCrypto;
+type TypedArray = Int8Array | Uint8Array | Uint8ClampedArray | Int16Array | Uint16Array | Int32Array | Uint32Array | BigInt64Array | BigUint64Array | Float32Array | Float64Array;
+const subtle = new SubtleCrypto();
+export class Crypto {
+ get subtle() {
+ return subtle;
+ }
+ randomUUID() {
+ if (__ANDROID__) {
+ return (org).nativescript.winter_cg.Crypto.randomUUID();
+ }
+ if (__IOS__) {
+ return NSCCrypto.randomUUID();
+ }
+ }
+
+ getRandomValues(typedArray: Exclude) {
+ if (__ANDROID__) {
+ if (typedArray.BYTES_PER_ELEMENT !== 1) {
+ typedArray = new Uint8Array(typedArray.buffer, typedArray.byteOffset);
+ }
+ (org).nativescript.winter_cg.Crypto.getRandomValues(typedArray);
+ }
+ if (__IOS__) {
+ NSCCrypto.getRandomValuesLength(typedArray, typedArray.byteLength);
+ }
+ }
+}
diff --git a/packages/core/wgc/index.ts b/packages/core/wgc/index.ts
new file mode 100644
index 0000000000..1d577ebfd2
--- /dev/null
+++ b/packages/core/wgc/index.ts
@@ -0,0 +1,2 @@
+export * from './atob';
+export * from './btoa';
diff --git a/packages/ui-mobile-base/android/widgets/src/main/java/org/nativescript/widgets/Utils.java b/packages/ui-mobile-base/android/widgets/src/main/java/org/nativescript/widgets/Utils.java
index f46ce2dd77..d32fed9f41 100644
--- a/packages/ui-mobile-base/android/widgets/src/main/java/org/nativescript/widgets/Utils.java
+++ b/packages/ui-mobile-base/android/widgets/src/main/java/org/nativescript/widgets/Utils.java
@@ -39,6 +39,7 @@
import java.util.concurrent.Executors;
public class Utils {
+
public static Drawable getDrawable(String uri, Context context) {
int resId = 0;
int resPrefixLength = "res://".length();
diff --git a/packages/ui-mobile-base/ios/TNSWidgets/TNSWidgets/NSFileHandle+Async.h b/packages/ui-mobile-base/ios/TNSWidgets/TNSWidgets/NSFileHandle+Async.h
index 6d8827a94b..d5a2c888d8 100644
--- a/packages/ui-mobile-base/ios/TNSWidgets/TNSWidgets/NSFileHandle+Async.h
+++ b/packages/ui-mobile-base/ios/TNSWidgets/TNSWidgets/NSFileHandle+Async.h
@@ -3,7 +3,7 @@
// TNSWidgets
//
// Created by Osei Fortune on 03/05/2023.
-// Copyright © 2023 Telerik A D. All rights reserved.
+// Copyright © 2023 NativeScript. All rights reserved.
//
#import
diff --git a/packages/ui-mobile-base/ios/TNSWidgets/TNSWidgets/NSFileHandle+Async.m b/packages/ui-mobile-base/ios/TNSWidgets/TNSWidgets/NSFileHandle+Async.m
index 8d9be591df..cbce7ea593 100644
--- a/packages/ui-mobile-base/ios/TNSWidgets/TNSWidgets/NSFileHandle+Async.m
+++ b/packages/ui-mobile-base/ios/TNSWidgets/TNSWidgets/NSFileHandle+Async.m
@@ -3,7 +3,7 @@
// TNSWidgets
//
// Created by Osei Fortune on 03/05/2023.
-// Copyright © 2023 Telerik A D. All rights reserved.
+// Copyright © 2023 NativeScript. All rights reserved.
//
#import "NSFileHandle+Async.h"
diff --git a/packages/ui-mobile-base/ios/TNSWidgets/TNSWidgets/NSString+Async.m b/packages/ui-mobile-base/ios/TNSWidgets/TNSWidgets/NSString+Async.m
index ec1147e74f..670ee0b9ef 100644
--- a/packages/ui-mobile-base/ios/TNSWidgets/TNSWidgets/NSString+Async.m
+++ b/packages/ui-mobile-base/ios/TNSWidgets/TNSWidgets/NSString+Async.m
@@ -27,6 +27,7 @@ + (void)stringWithContentsOfFile:(nonnull NSString*)path
});
}
+
- (void)writeToFile:(nonnull NSString*)path
atomically:(BOOL)atomically
encoding:(NSStringEncoding)enc
diff --git a/packages/winter-cg/.gitignore b/packages/winter-cg/.gitignore
new file mode 100644
index 0000000000..58db0c345f
--- /dev/null
+++ b/packages/winter-cg/.gitignore
@@ -0,0 +1,55 @@
+/dist
+/build
+
+*.iml
+
+# Proguard folder generated by Eclipse
+proguard/
+
+# Log Files
+*.log
+
+# Android Studio Navigation editor temp files
+.navigation/
+
+# Android Studio captures folder
+captures/
+
+# Built application files
+build/
+
+## File-based project format:
+*.ipr
+*.iws
+
+# Crashlytics plugin (for Android Studio and IntelliJ)
+com_crashlytics_export_strings.xml
+crashlytics.properties
+crashlytics-build.properties
+fabric.properties
+
+## Directory-based project format:
+.idea/
+
+# Local configuration file (sdk path, etc)
+local.properties
+
+# Gradle generated files
+.gradle/
+
+# Signing files
+.signing/
+
+# OS-specific files
+.DS_Store
+.DS_Store?
+ios/NSCWinterCG/NSCWinterCG.xcodeproj/project.xcworkspace/xcuserdata/
+ios/NSCWinterCG/NSCWinterCG.xcodeproj/xcuserdata/
+ios/NSCWinterCG/DerivedData/
+xcuserdata/
+
+android/winter_cg/bin
+android/winter_cg/.settings
+android/.project
+android/winter_cg/.project
+android/.settings
\ No newline at end of file
diff --git a/packages/winter-cg/.npmignore b/packages/winter-cg/.npmignore
new file mode 100644
index 0000000000..6c65541c54
--- /dev/null
+++ b/packages/winter-cg/.npmignore
@@ -0,0 +1 @@
+*.dSYM*
\ No newline at end of file
diff --git a/packages/winter-cg/DevelopmentWorkflow.md b/packages/winter-cg/DevelopmentWorkflow.md
new file mode 100644
index 0000000000..7a21c8bc16
--- /dev/null
+++ b/packages/winter-cg/DevelopmentWorkflow.md
@@ -0,0 +1,63 @@
+# Development Workflow
+
+
+
+- [Prerequisites](#prerequisites)
+- [How to Build the Package](#how-to-build-the-package)
+- [How to Build Android](#how-to-build-android)
+- [How to Build iOS](#how-to-build-ios)
+- [How to Use in an Application](#how-to-use-in-an-application)
+
+
+
+## Prerequisites
+
+Install your native toolchain and NativeScript as described in the docs: https://docs.nativescript.org/setup/quick-setup. In order to open the native Android and iOS project, you need Android Studio and Xcode respectively.
+
+## How to Build the Package
+
+On macOS you can execute:
+
+```shell
+$ ./build.sh
+```
+
+This script builds both Android and iOS, assembles the package at `./dist/package` and packs it as `./dist/tns-core-modules-widgets-*.tgz`.
+
+## How to Build Android
+
+On Unix-like operating systems you can execute:
+
+```shell
+$ ./build.android.sh
+```
+This script builds only the Android project, assembles the package at `./dist/package` and packs it as `./dist/tns-core-modules-widgets-*.tgz`. The output file is available at `./android/widgets/build/outputs/aar/widgets-release.aar`.
+
+**NOTE:** To run bash script on Windows you can install [GIT SCM](https://git-for-windows.github.io/) and use Git Bash.
+
+## How to Build iOS
+
+On macOS you can execute:
+
+```shell
+$ ./build.ios.sh
+```
+This script builds only the Xcode project, assembles the package at `./dist/package` and packs it as `./dist/tns-core-modules-widgets-*.tgz`. The output native iOS framework is available at `./ios/TNSWidgets/build/TNSWidgets.framework`.
+
+## How to Use in an Application
+
+You could link the `tns-core-modules-widgets` plugin package to your application through the steps listed below.
+
+In the `./dist/package` folder execute:
+
+```
+npm link
+```
+
+In your application project folder execute:
+
+```
+npm link tns-core-modules-widgets
+```
+
+Build the plugin with the above-mentioned commands after each change you would like to test.
diff --git a/packages/winter-cg/README.md b/packages/winter-cg/README.md
new file mode 100644
index 0000000000..bf62c8627f
--- /dev/null
+++ b/packages/winter-cg/README.md
@@ -0,0 +1,17 @@
+# WinterCG compliance for NativeScript
+
+This library represents native code (Objective-C and Java) used by [`@nativescript/core`](https://github.com/NativeScript/NativeScript/tree/main/packages/core) to provide [WinterCG](https://wintercg.org/) compliance.
+
+[NativeScript](https://www.nativescript.org/) provides platform APIs directly to the JavaScript runtime (with strong types) for a rich TypeScript development experience.
+
+
+
+- [WinterCG compliance for NativeScript](#wintercg-compliance-for-nativescript)
+ - [Do you need help?](#do-you-need-help)
+
+
+
+
+## Do you need help?
+
+Please, use [github issues](https://github.com/NativeScript/NativeScript/issues) strictly for reporting bugs or requesting features. For general questions and support, check out the [NativeScript Community](https://nativescript.org/discord) or our [Professional Partners](https://nativescript.org/partners/).
diff --git a/packages/winter-cg/android/.gitignore b/packages/winter-cg/android/.gitignore
new file mode 100644
index 0000000000..c6cbe562a4
--- /dev/null
+++ b/packages/winter-cg/android/.gitignore
@@ -0,0 +1,8 @@
+*.iml
+.gradle
+/local.properties
+/.idea/workspace.xml
+/.idea/libraries
+.DS_Store
+/build
+/captures
diff --git a/packages/winter-cg/android/README.md b/packages/winter-cg/android/README.md
new file mode 100644
index 0000000000..b66a8a6c25
--- /dev/null
+++ b/packages/winter-cg/android/README.md
@@ -0,0 +1,14 @@
+### Android
+
+This directory contains an Android Studio project.
+
+### How to open?
+* In Android Studio choose: File -> Open
+* Navigate to `packages/winter-cg/android/` folder
+* On the left side of the screen choose the Project tab and select `winter_cg`
+
+### How to build?
+* On the right side of the screen choose the Gradle tab
+* Navigate to `android/winter_cg/Tasks/build/`
+* Execute the `assembleRelease` task
+* Output will be in `./android/winter_cg/build/outputs/`
diff --git a/packages/winter-cg/android/build.gradle b/packages/winter-cg/android/build.gradle
new file mode 100644
index 0000000000..e7cd8d342a
--- /dev/null
+++ b/packages/winter-cg/android/build.gradle
@@ -0,0 +1,25 @@
+// Top-level build file where you can add configuration options common to all sub-projects/modules.
+
+buildscript {
+ repositories {
+ google()
+ mavenCentral()
+ }
+ dependencies {
+ classpath 'com.android.tools.build:gradle:7.1.0'
+
+ // NOTE: Do not place your application dependencies here; they belong
+ // in the individual module build.gradle files
+ }
+}
+
+allprojects {
+ repositories {
+ google()
+ mavenCentral()
+ }
+}
+
+task clean(type: Delete) {
+ delete rootProject.buildDir
+}
diff --git a/packages/winter-cg/android/gradle.properties b/packages/winter-cg/android/gradle.properties
new file mode 100644
index 0000000000..56ac7da698
--- /dev/null
+++ b/packages/winter-cg/android/gradle.properties
@@ -0,0 +1,28 @@
+# Project-wide Gradle settings.
+
+# IDE (e.g. Android Studio) users:
+# Gradle settings configured through the IDE *will override*
+# any settings specified in this file.
+
+# For more details on how to configure your build environment visit
+# http://www.gradle.org/docs/current/userguide/build_environment.html
+
+# Specifies the JVM arguments used for the daemon process.
+# The setting is particularly useful for tweaking memory settings.
+# org.gradle.jvmargs=-Xmx1536m
+
+# To debug Gradle scripts, you must enable this behaviour with a flag (seen some rows below)
+# Start debugging by initiating a remote Java debug through your IDE on port 5005
+# Beware that Gradle spawns daemons to execute secondary builds. This could be a problem when debugging.
+# You could stop them with "gradle --stop" and run a given task from the console with "gradle some_task_name --no-daemon"
+# or with "org.gradle.daemon=false" set inside your "~/.gradle/gradle.properties" file.
+# Uncomment the following line in order to enable Gradle debugging.
+# org.gradle.debug=true
+
+android.enableJetifier=true
+android.useAndroidX=true
+
+# When configured, Gradle will run in incubating parallel mode.
+# This option should only be used with decoupled projects. More details, visit
+# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
+# org.gradle.parallel=true
\ No newline at end of file
diff --git a/packages/winter-cg/android/gradle/wrapper/gradle-wrapper.jar b/packages/winter-cg/android/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000000..0d4a951687
Binary files /dev/null and b/packages/winter-cg/android/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/packages/winter-cg/android/gradle/wrapper/gradle-wrapper.properties b/packages/winter-cg/android/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000000..41dfb87909
--- /dev/null
+++ b/packages/winter-cg/android/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,5 @@
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-bin.zip
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
diff --git a/packages/winter-cg/android/gradlew b/packages/winter-cg/android/gradlew
new file mode 100755
index 0000000000..cccdd3d517
--- /dev/null
+++ b/packages/winter-cg/android/gradlew
@@ -0,0 +1,172 @@
+#!/usr/bin/env sh
+
+##############################################################################
+##
+## Gradle start up script for UN*X
+##
+##############################################################################
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+ ls=`ls -ld "$PRG"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '/.*' > /dev/null; then
+ PRG="$link"
+ else
+ PRG=`dirname "$PRG"`"/$link"
+ fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >/dev/null
+APP_HOME="`pwd -P`"
+cd "$SAVED" >/dev/null
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS=""
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn () {
+ echo "$*"
+}
+
+die () {
+ echo
+ echo "$*"
+ echo
+ exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+nonstop=false
+case "`uname`" in
+ CYGWIN* )
+ cygwin=true
+ ;;
+ Darwin* )
+ darwin=true
+ ;;
+ MINGW* )
+ msys=true
+ ;;
+ NONSTOP* )
+ nonstop=true
+ ;;
+esac
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+ if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+ # IBM's JDK on AIX uses strange locations for the executables
+ JAVACMD="$JAVA_HOME/jre/sh/java"
+ else
+ JAVACMD="$JAVA_HOME/bin/java"
+ fi
+ if [ ! -x "$JAVACMD" ] ; then
+ die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+ fi
+else
+ JAVACMD="java"
+ which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
+ MAX_FD_LIMIT=`ulimit -H -n`
+ if [ $? -eq 0 ] ; then
+ if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+ MAX_FD="$MAX_FD_LIMIT"
+ fi
+ ulimit -n $MAX_FD
+ if [ $? -ne 0 ] ; then
+ warn "Could not set maximum file descriptor limit: $MAX_FD"
+ fi
+ else
+ warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+ fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+ GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin ; then
+ APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+ CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+ JAVACMD=`cygpath --unix "$JAVACMD"`
+
+ # We build the pattern for arguments to be converted via cygpath
+ ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+ SEP=""
+ for dir in $ROOTDIRSRAW ; do
+ ROOTDIRS="$ROOTDIRS$SEP$dir"
+ SEP="|"
+ done
+ OURCYGPATTERN="(^($ROOTDIRS))"
+ # Add a user-defined pattern to the cygpath arguments
+ if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+ OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+ fi
+ # Now convert the arguments - kludge to limit ourselves to /bin/sh
+ i=0
+ for arg in "$@" ; do
+ CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+ CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
+
+ if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
+ eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+ else
+ eval `echo args$i`="\"$arg\""
+ fi
+ i=$((i+1))
+ done
+ case $i in
+ (0) set -- ;;
+ (1) set -- "$args0" ;;
+ (2) set -- "$args0" "$args1" ;;
+ (3) set -- "$args0" "$args1" "$args2" ;;
+ (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+ (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+ (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+ (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+ (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+ (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+ esac
+fi
+
+# Escape application args
+save () {
+ for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
+ echo " "
+}
+APP_ARGS=$(save "$@")
+
+# Collect all arguments for the java command, following the shell quoting and substitution rules
+eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
+
+# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
+if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
+ cd "$(dirname "$0")"
+fi
+
+exec "$JAVACMD" "$@"
diff --git a/packages/winter-cg/android/gradlew.bat b/packages/winter-cg/android/gradlew.bat
new file mode 100644
index 0000000000..e95643d6a2
--- /dev/null
+++ b/packages/winter-cg/android/gradlew.bat
@@ -0,0 +1,84 @@
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS=
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto init
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto init
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:init
+@rem Get command-line arguments, handling Windows variants
+
+if not "%OS%" == "Windows_NT" goto win9xME_args
+
+:win9xME_args
+@rem Slurp the command line arguments.
+set CMD_LINE_ARGS=
+set _SKIP=2
+
+:win9xME_args_slurp
+if "x%~1" == "x" goto execute
+
+set CMD_LINE_ARGS=%*
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/packages/winter-cg/android/settings.gradle b/packages/winter-cg/android/settings.gradle
new file mode 100644
index 0000000000..fd09d08a72
--- /dev/null
+++ b/packages/winter-cg/android/settings.gradle
@@ -0,0 +1 @@
+include ':winter_cg'
diff --git a/packages/winter-cg/android/winter_cg/.gitignore b/packages/winter-cg/android/winter_cg/.gitignore
new file mode 100644
index 0000000000..796b96d1c4
--- /dev/null
+++ b/packages/winter-cg/android/winter_cg/.gitignore
@@ -0,0 +1 @@
+/build
diff --git a/packages/winter-cg/android/winter_cg/build.gradle b/packages/winter-cg/android/winter_cg/build.gradle
new file mode 100644
index 0000000000..1f620b660f
--- /dev/null
+++ b/packages/winter-cg/android/winter_cg/build.gradle
@@ -0,0 +1,80 @@
+import groovy.json.JsonSlurper // used to parse package.json
+import groovy.json.JsonBuilder
+import groovy.json.JsonOutput
+
+def isWinOs = System.properties['os.name'].toLowerCase().contains('windows')
+
+apply plugin: 'com.android.library'
+
+def computeCompileSdkVersion () {
+ if(project.hasProperty("compileSdk")) {
+ return compileSdk
+ }
+ else {
+ return 31
+ }
+}
+
+def computeBuildToolsVersion() {
+ if(project.hasProperty("buildToolsVersion")) {
+ return buildToolsVersion
+ }
+ else {
+ return "32.0.0"
+ }
+}
+
+def computeTargetSdkVersion() {
+ if(project.hasProperty("targetSdk")) {
+ return targetSdk
+ }
+ else {
+ return 30
+ }
+}
+
+android {
+ compileSdkVersion computeCompileSdkVersion()
+ buildToolsVersion computeBuildToolsVersion()
+
+ defaultConfig {
+ minSdkVersion 17
+ targetSdkVersion computeTargetSdkVersion()
+ versionCode 1
+ versionName "1.0"
+ }
+ buildTypes {
+ release {
+ minifyEnabled false
+ proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
+ }
+ }
+}
+
+dependencies {
+
+ implementation fileTree(include: ['*.jar'], dir: 'libs')
+
+ println 'Using android X'
+}
+
+task cleanBuildDir (type: Delete) {
+ delete "../build/"
+}
+
+task copyAar {
+ doLast {
+ copy {
+ from "build/outputs/aar/winter_cg-release.aar"
+ into "../build/"
+ }
+ }
+}
+
+tasks.withType(JavaCompile) {
+ options.deprecation = true
+}
+
+assemble.dependsOn(cleanBuildDir)
+copyAar.dependsOn(assemble)
+build.dependsOn(copyAar)
diff --git a/packages/winter-cg/android/winter_cg/proguard-rules.pro b/packages/winter-cg/android/winter_cg/proguard-rules.pro
new file mode 100644
index 0000000000..dca5777d1c
--- /dev/null
+++ b/packages/winter-cg/android/winter_cg/proguard-rules.pro
@@ -0,0 +1,17 @@
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in /home/plamen5kov/tools/android-sdk-linux/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the proguardFiles
+# directive in build.gradle.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add any project specific keep options here:
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
diff --git a/packages/winter-cg/android/winter_cg/src/main/AndroidManifest.xml b/packages/winter-cg/android/winter_cg/src/main/AndroidManifest.xml
new file mode 100644
index 0000000000..150e0ce982
--- /dev/null
+++ b/packages/winter-cg/android/winter_cg/src/main/AndroidManifest.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/packages/winter-cg/android/winter_cg/src/main/java/org/nativescript/winter_cg/Crypto.java b/packages/winter-cg/android/winter_cg/src/main/java/org/nativescript/winter_cg/Crypto.java
new file mode 100644
index 0000000000..90a0a65561
--- /dev/null
+++ b/packages/winter-cg/android/winter_cg/src/main/java/org/nativescript/winter_cg/Crypto.java
@@ -0,0 +1,244 @@
+package org.nativescript.winter_cg;
+
+import java.math.BigInteger;
+import java.nio.ByteBuffer;
+import java.security.InvalidAlgorithmParameterException;
+import java.security.InvalidKeyException;
+import java.security.KeyPair;
+import java.security.KeyPairGenerator;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
+import java.security.SecureRandom;
+import java.security.spec.RSAKeyGenParameterSpec;
+import java.util.Arrays;
+import java.util.UUID;
+
+import javax.crypto.BadPaddingException;
+import javax.crypto.IllegalBlockSizeException;
+import javax.crypto.KeyGenerator;
+import javax.crypto.Mac;
+import javax.crypto.NoSuchPaddingException;
+import javax.crypto.SecretKey;
+import javax.crypto.Cipher;
+
+public class Crypto {
+ public static String randomUUID() {
+ return UUID.randomUUID().toString().toLowerCase();
+ }
+
+ public static void getRandomValues(ByteBuffer buffer) {
+ SecureRandom random = new SecureRandom();
+ if (!buffer.isDirect()) {
+ random.nextBytes(buffer.array());
+ } else {
+ buffer.rewind();
+ int size = buffer.capacity();
+ byte[] tempBuf = new byte[size];
+ random.nextBytes(tempBuf);
+ buffer.put(tempBuf);
+ }
+ }
+
+ public static ByteBuffer digest(int mode, ByteBuffer data) {
+ MessageDigest instance = null;
+ switch (mode) {
+ case 0: {
+ try {
+ instance = MessageDigest.getInstance("SHA-1");
+ instance.update(data);
+ } catch (NoSuchAlgorithmException ignored) {
+ }
+ break;
+ }
+ case 1: {
+ try {
+ instance = MessageDigest.getInstance("SHA-256");
+ instance.update(data);
+ } catch (NoSuchAlgorithmException ignored) {
+ }
+ break;
+ }
+ case 2: {
+ try {
+ instance = MessageDigest.getInstance("SHA-384");
+ instance.update(data);
+ } catch (NoSuchAlgorithmException ignored) {
+ }
+ break;
+ }
+ case 4: {
+ try {
+ instance = MessageDigest.getInstance("SHA-512");
+ instance.update(data);
+ } catch (NoSuchAlgorithmException ignored) {
+ }
+ break;
+ }
+ default:
+ return null;
+ }
+
+
+ if (instance != null) {
+ byte[] digest = instance.digest();
+ ByteBuffer ret = ByteBuffer.allocateDirect(digest.length);
+ ret.put(digest);
+ ret.rewind();
+ return ret;
+ }
+ return null;
+ }
+
+ public static SecretKey generateKeyHMAC(String algo) {
+ try {
+ KeyGenerator mac = KeyGenerator.getInstance(algo);
+ return mac.generateKey();
+ } catch (NoSuchAlgorithmException e) {
+ return null;
+ }
+ }
+
+ public static ByteBuffer signHMAC(String algo, SecretKey key, ByteBuffer data) {
+ try {
+ data.rewind();
+ Mac mac = Mac.getInstance(algo);
+ mac.init(key);
+ mac.update(data);
+ byte[] signed = mac.doFinal();
+ ByteBuffer ret = ByteBuffer.allocateDirect(signed.length);
+ ret.put(signed);
+ ret.rewind();
+ return ret;
+ } catch (NoSuchAlgorithmException e) {
+ return null;
+ } catch (InvalidKeyException e) {
+ return null;
+ }
+ }
+
+ public static boolean verifyHMAC(String algo, SecretKey key, ByteBuffer signature, ByteBuffer data) {
+ try {
+ signature.rewind();
+ data.rewind();
+ Mac mac = Mac.getInstance(algo);
+ mac.init(key);
+ mac.update(data);
+ byte[] signed = mac.doFinal();
+ byte[] buf = new byte[signature.remaining()];
+ signature.get(buf);
+ signature.rewind();
+ return Arrays.equals(signed, buf);
+ } catch (NoSuchAlgorithmException e) {
+ return false;
+ } catch (InvalidKeyException e) {
+ return false;
+ }
+ }
+
+ public static KeyPair generateKeyRsaOAEP(int modulusLength) {
+ try {
+ KeyPairGenerator keyPairGen = KeyPairGenerator.getInstance("RSA");
+ RSAKeyGenParameterSpec spec = new RSAKeyGenParameterSpec(modulusLength, RSAKeyGenParameterSpec.F4);
+ keyPairGen.initialize(spec);
+ return keyPairGen.generateKeyPair();
+ } catch (NoSuchAlgorithmException e) {
+ return null;
+ } catch (InvalidAlgorithmParameterException e) {
+ return null;
+ }
+ }
+
+
+ public static ByteBuffer encryptRsaOAEP(KeyPair pair, int mode, ByteBuffer data){
+ String transformation = null;
+ switch (mode){
+ case 0:
+ transformation = "RSA/ECB/OAEPWithSHA-1AndMGF1Padding";
+ break;
+ case 1:
+ transformation = "RSA/ECB/OAEPWithSHA-256AndMGF1Padding";
+ break;
+ case 2:
+ transformation = "RSA/ECB/OAEPWithSHA-384AndMGF1Padding";
+ break;
+ case 3:
+ transformation = "RSA/ECB/OAEPWithSHA-512AndMGF1Padding";
+ break;
+ }
+ if(transformation == null){
+ return null;
+ }
+
+ try {
+ Cipher cipher = Cipher.getInstance(transformation);
+ cipher.init(Cipher.ENCRYPT_MODE, pair.getPublic());
+ data.rewind();
+ byte[] byteArray = new byte[data.remaining()];
+ data.get(byteArray);
+
+ byte[] buf = cipher.doFinal(byteArray);
+ ByteBuffer ret = ByteBuffer.allocateDirect(buf.length);
+
+ ret.put(buf);
+ ret.rewind();
+ return ret;
+ } catch (NoSuchAlgorithmException e) {
+ return null;
+ } catch (NoSuchPaddingException e) {
+ return null;
+ } catch (IllegalBlockSizeException e) {
+ return null;
+ } catch (BadPaddingException e) {
+ return null;
+ } catch (InvalidKeyException e) {
+ return null;
+ }
+ }
+
+ public static ByteBuffer decryptRsaOAEP(KeyPair pair, int mode, ByteBuffer data){
+ String transformation = null;
+
+ switch (mode){
+ case 0:
+ transformation = "RSA/ECB/OAEPWithSHA-1AndMGF1Padding";
+ break;
+ case 1:
+ transformation = "RSA/ECB/OAEPWithSHA-256AndMGF1Padding";
+ break;
+ case 2:
+ transformation = "RSA/ECB/OAEPWithSHA-384AndMGF1Padding";
+ break;
+ case 3:
+ transformation = "RSA/ECB/OAEPWithSHA-512AndMGF1Padding";
+ break;
+ }
+ if(transformation == null){
+ return null;
+ }
+
+ try {
+ Cipher cipher = Cipher.getInstance(transformation);
+ cipher.init(Cipher.DECRYPT_MODE, pair.getPrivate());
+ data.rewind();
+ byte[] byteArray = new byte[data.remaining()];
+ data.get(byteArray);
+
+ byte[] buf = cipher.doFinal(byteArray);
+ ByteBuffer ret = ByteBuffer.allocateDirect(buf.length);
+ ret.put(buf);
+ ret.rewind();
+ return ret;
+ } catch (NoSuchAlgorithmException e) {
+ return null;
+ } catch (NoSuchPaddingException e) {
+ return null;
+ } catch (IllegalBlockSizeException e) {
+ return null;
+ } catch (BadPaddingException e) {
+ return null;
+ } catch (InvalidKeyException e) {
+ return null;
+ }
+ }
+}
+
diff --git a/packages/winter-cg/android/winter_cg/src/main/java/org/nativescript/winter_cg/Utils.java b/packages/winter-cg/android/winter_cg/src/main/java/org/nativescript/winter_cg/Utils.java
new file mode 100644
index 0000000000..c62bc7e01f
--- /dev/null
+++ b/packages/winter-cg/android/winter_cg/src/main/java/org/nativescript/winter_cg/Utils.java
@@ -0,0 +1,62 @@
+package org.nativescript.winter_cg;
+
+import android.net.Uri;
+import android.os.Build;
+import android.os.Handler;
+import android.os.Looper;
+import android.os.ParcelFileDescriptor;
+import android.util.Base64;
+import android.util.Base64OutputStream;
+import android.util.Log;
+import android.util.Pair;
+
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import java.io.BufferedOutputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.FileDescriptor;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.nio.ByteBuffer;
+
+public class Utils {
+
+ public static void copyToBuffer(ByteBuffer buffer, byte[] data) {
+ copyToBuffer(buffer, data, 0, data.length, false);
+ }
+
+ public static void copyToBuffer(ByteBuffer buffer, byte[] data, int offset) {
+ copyToBuffer(buffer, data, offset, data.length);
+ }
+
+ public static void copyToBuffer(ByteBuffer buffer, byte[] data, int offset, int length) {
+ copyToBuffer(buffer, data, offset, length, false);
+ }
+
+ public static void copyToBuffer(ByteBuffer buffer, byte[] data, int offset, int length, boolean rewind) {
+ if (rewind) {
+ buffer.rewind();
+ }
+ buffer.put(data, offset, length);
+ }
+
+ public static String atob(String encodedData) {
+ byte[] decoded = android.util.Base64.decode(encodedData, Base64.NO_WRAP);
+ try {
+ return new String(decoded, "UTF-8");
+ } catch (UnsupportedEncodingException e) {
+ return "";
+ }
+ }
+
+ public static String btoa(String data) {
+ try {
+ byte[] bytes = data.getBytes("UTF-8");
+ return android.util.Base64.encodeToString(bytes, android.util.Base64.NO_WRAP);
+ } catch (UnsupportedEncodingException e) {
+ return "";
+ }
+ }
+}
diff --git a/packages/winter-cg/build.android.sh b/packages/winter-cg/build.android.sh
new file mode 100755
index 0000000000..885342b565
--- /dev/null
+++ b/packages/winter-cg/build.android.sh
@@ -0,0 +1,36 @@
+#!/bin/sh
+
+echo "Set exit on simple errors"
+set -e
+
+echo "Use dumb gradle terminal"
+export TERM=dumb
+
+rm -rf dist/package/platforms/android || true
+mkdir -p dist/package/platforms/android
+
+echo "Build android"
+cd android
+./gradlew --quiet assembleRelease
+cd ..
+cp android/winter_cg/build/outputs/aar/winter_cg-release.aar dist/package/platforms/android/winter_cg-release.aar
+
+if [ "$1" ]
+then
+ echo "Suffix package.json's version with tag: $1"
+ sed -i.bak 's/\(\"version\"\:[[:space:]]*\"[^\"]*\)\"/\1-'$1'"/g' ./dist/package/package.json
+fi
+
+if [ "$SKIP_PACK" ]
+then
+ echo "SKIP pack"
+else
+ echo "Copy NPM artefacts"
+ cp .npmignore LICENSE README.md package.json dist/package
+ echo "NPM pack"
+ cd dist/package
+ PACKAGE="$(npm pack)"
+ cd ../..
+ mv dist/package/$PACKAGE dist/$PACKAGE
+ echo "Output: dist/$PACKAGE"
+fi
\ No newline at end of file
diff --git a/packages/winter-cg/build.ios.sh b/packages/winter-cg/build.ios.sh
new file mode 100755
index 0000000000..4eea14bdbc
--- /dev/null
+++ b/packages/winter-cg/build.ios.sh
@@ -0,0 +1,41 @@
+#!/bin/sh
+
+echo "Set exit on simple errors"
+set -e
+
+echo "Use dumb terminal"
+export TERM=dumb
+
+rm -rf dist/package/platforms/ios || true
+mkdir -p dist/package/platforms/ios
+
+echo "Build iOS"
+
+cd ios
+./build.sh
+cd ..
+echo "Copy ios/NSCWinterCG/build/*.xcframework dist/package/platforms/ios"
+
+cp -R ios/NSCWinterCG/build/NSCWinterCG.xcframework dist/package/platforms/ios
+
+# cp ios/NSCWinterCG/build/*.framework.dSYM.zip dist/package/platforms/ios
+
+if [ "$1" ]
+then
+ echo "Suffix package.json's version with tag: $1"
+ sed -i.bak 's/\(\"version\"\:[[:space:]]*\"[^\"]*\)\"/\1-'$1'"/g' ./dist/package/package.json
+fi
+
+if [ "$SKIP_PACK" ]
+then
+ echo "SKIP pack"
+else
+ echo "Copy NPM artifacts"
+ cp .npmignore LICENSE README.md package.json dist/package
+ echo "NPM pack"
+ cd dist/package
+ PACKAGE="$(npm pack)"
+ cd ../..
+ mv dist/package/$PACKAGE dist/$PACKAGE
+ echo "Output: dist/$PACKAGE"
+fi
\ No newline at end of file
diff --git a/packages/winter-cg/build.sh b/packages/winter-cg/build.sh
new file mode 100755
index 0000000000..e7f449d025
--- /dev/null
+++ b/packages/winter-cg/build.sh
@@ -0,0 +1,34 @@
+#!/bin/sh
+
+echo "Set exit on simple errors"
+set -e
+
+
+echo "Use dumb gradle terminal"
+export TERM=dumb
+
+echo "Clean dist"
+rm -rf dist
+
+export SKIP_PACK=true
+./build.android.sh
+./build.ios.sh
+
+echo "Copy NPM artifacts"
+cp .npmignore README.md package.json dist/package
+cp ../../LICENSE dist/package
+
+
+if [ "$1" ]
+then
+ echo "Suffix package.json's version with tag: $1"
+ sed -i.bak 's/\(\"version\"\:[[:space:]]*\"[^\"]*\)\"/\1-'$1'"/g' ./dist/package/package.json
+fi
+
+echo "NPM pack"
+cd dist/package
+PACKAGE="$(npm pack)"
+cd ../..
+mv dist/package/$PACKAGE dist/$PACKAGE
+echo "Output: dist/$PACKAGE"
+
diff --git a/packages/winter-cg/ios/NSCWinterCG/NSCWinterCG.xcodeproj/project.pbxproj b/packages/winter-cg/ios/NSCWinterCG/NSCWinterCG.xcodeproj/project.pbxproj
new file mode 100644
index 0000000000..d240a7bcf1
--- /dev/null
+++ b/packages/winter-cg/ios/NSCWinterCG/NSCWinterCG.xcodeproj/project.pbxproj
@@ -0,0 +1,455 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 46;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ D004030F22F781A50089EAD8 /* NSString+WinterCG.h in Headers */ = {isa = PBXBuildFile; fileRef = D004030D22F781A50089EAD8 /* NSString+WinterCG.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D004031022F781A50089EAD8 /* NSString+WinterCG.m in Sources */ = {isa = PBXBuildFile; fileRef = D004030E22F781A50089EAD8 /* NSString+WinterCG.m */; };
+ F17F81D52C35E1E200C3E780 /* NSCCrypto.m in Sources */ = {isa = PBXBuildFile; fileRef = F17F81D42C35E1E200C3E780 /* NSCCrypto.m */; };
+ F17F81D72C35E20600C3E780 /* NSCCrypto.h in Headers */ = {isa = PBXBuildFile; fileRef = F17F81D62C35E20600C3E780 /* NSCCrypto.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ F98F5CB31CD0EFEA00978308 /* NSCWinterCG.h in Headers */ = {isa = PBXBuildFile; fileRef = F98F5CB21CD0EFEA00978308 /* NSCWinterCG.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ F98F5CBA1CD0EFEA00978308 /* NSCWinterCG.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F98F5CAF1CD0EFEA00978308 /* NSCWinterCG.framework */; };
+ F98F5CBF1CD0EFEA00978308 /* NSCWinterCGTests.m in Sources */ = {isa = PBXBuildFile; fileRef = F98F5CBE1CD0EFEA00978308 /* NSCWinterCGTests.m */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXContainerItemProxy section */
+ F98F5CBB1CD0EFEA00978308 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = F98F5CA61CD0EFEA00978308 /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = F98F5CAE1CD0EFEA00978308;
+ remoteInfo = NSCWinterCG;
+ };
+/* End PBXContainerItemProxy section */
+
+/* Begin PBXFileReference section */
+ D004030D22F781A50089EAD8 /* NSString+WinterCG.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "NSString+WinterCG.h"; sourceTree = ""; };
+ D004030E22F781A50089EAD8 /* NSString+WinterCG.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "NSString+WinterCG.m"; sourceTree = ""; };
+ F17F81D42C35E1E200C3E780 /* NSCCrypto.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSCCrypto.m; sourceTree = ""; };
+ F17F81D62C35E20600C3E780 /* NSCCrypto.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSCCrypto.h; sourceTree = ""; };
+ F98F5CAF1CD0EFEA00978308 /* NSCWinterCG.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = NSCWinterCG.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ F98F5CB21CD0EFEA00978308 /* NSCWinterCG.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSCWinterCG.h; sourceTree = ""; };
+ F98F5CB41CD0EFEA00978308 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
+ F98F5CB91CD0EFEA00978308 /* NSCWinterCGTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = NSCWinterCGTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
+ F98F5CBE1CD0EFEA00978308 /* NSCWinterCGTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSCWinterCGTests.m; sourceTree = ""; };
+ F98F5CC01CD0EFEA00978308 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+ F98F5CAB1CD0EFEA00978308 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ F98F5CB61CD0EFEA00978308 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ F98F5CBA1CD0EFEA00978308 /* NSCWinterCG.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+ F98F5CA51CD0EFEA00978308 = {
+ isa = PBXGroup;
+ children = (
+ F98F5CB11CD0EFEA00978308 /* NSCWinterCG */,
+ F98F5CBD1CD0EFEA00978308 /* NSCWinterCGTests */,
+ F98F5CB01CD0EFEA00978308 /* Products */,
+ );
+ sourceTree = "";
+ };
+ F98F5CB01CD0EFEA00978308 /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ F98F5CAF1CD0EFEA00978308 /* NSCWinterCG.framework */,
+ F98F5CB91CD0EFEA00978308 /* NSCWinterCGTests.xctest */,
+ );
+ name = Products;
+ sourceTree = "";
+ };
+ F98F5CB11CD0EFEA00978308 /* NSCWinterCG */ = {
+ isa = PBXGroup;
+ children = (
+ F98F5CB21CD0EFEA00978308 /* NSCWinterCG.h */,
+ D004030D22F781A50089EAD8 /* NSString+WinterCG.h */,
+ D004030E22F781A50089EAD8 /* NSString+WinterCG.m */,
+ F98F5CB41CD0EFEA00978308 /* Info.plist */,
+ F17F81D42C35E1E200C3E780 /* NSCCrypto.m */,
+ F17F81D62C35E20600C3E780 /* NSCCrypto.h */,
+ );
+ path = NSCWinterCG;
+ sourceTree = "";
+ };
+ F98F5CBD1CD0EFEA00978308 /* NSCWinterCGTests */ = {
+ isa = PBXGroup;
+ children = (
+ F98F5CBE1CD0EFEA00978308 /* NSCWinterCGTests.m */,
+ F98F5CC01CD0EFEA00978308 /* Info.plist */,
+ );
+ path = NSCWinterCGTests;
+ sourceTree = "";
+ };
+/* End PBXGroup section */
+
+/* Begin PBXHeadersBuildPhase section */
+ F98F5CAC1CD0EFEA00978308 /* Headers */ = {
+ isa = PBXHeadersBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ F915D3561EC9EF5E00071914 /* TNSProcess.h in Headers */,
+ F98F5CB31CD0EFEA00978308 /* NSCWinterCG.h in Headers */,
+ F17F81D72C35E20600C3E780 /* NSCCrypto.h in Headers */,
+ D004030F22F781A50089EAD8 /* NSString+WinterCG.h in Headers */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXHeadersBuildPhase section */
+
+/* Begin PBXNativeTarget section */
+ F98F5CAE1CD0EFEA00978308 /* NSCWinterCG */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = F98F5CC31CD0EFEA00978308 /* Build configuration list for PBXNativeTarget "NSCWinterCG" */;
+ buildPhases = (
+ F98F5CAA1CD0EFEA00978308 /* Sources */,
+ F98F5CAB1CD0EFEA00978308 /* Frameworks */,
+ F98F5CAC1CD0EFEA00978308 /* Headers */,
+ F98F5CAD1CD0EFEA00978308 /* Resources */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = NSCWinterCG;
+ productName = NSCWinterCG;
+ productReference = F98F5CAF1CD0EFEA00978308 /* NSCWinterCG.framework */;
+ productType = "com.apple.product-type.framework";
+ };
+ F98F5CB81CD0EFEA00978308 /* NSCWinterCGTests */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = F98F5CC61CD0EFEA00978308 /* Build configuration list for PBXNativeTarget "NSCWinterCGTests" */;
+ buildPhases = (
+ F98F5CB51CD0EFEA00978308 /* Sources */,
+ F98F5CB61CD0EFEA00978308 /* Frameworks */,
+ F98F5CB71CD0EFEA00978308 /* Resources */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ F98F5CBC1CD0EFEA00978308 /* PBXTargetDependency */,
+ );
+ name = NSCWinterCGTests;
+ productName = NSCWinterCGTests;
+ productReference = F98F5CB91CD0EFEA00978308 /* NSCWinterCGTests.xctest */;
+ productType = "com.apple.product-type.bundle.unit-test";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ F98F5CA61CD0EFEA00978308 /* Project object */ = {
+ isa = PBXProject;
+ attributes = {
+ LastUpgradeCheck = 1230;
+ ORGANIZATIONNAME = "NativeScript";
+ TargetAttributes = {
+ F98F5CAE1CD0EFEA00978308 = {
+ CreatedOnToolsVersion = 7.2;
+ };
+ F98F5CB81CD0EFEA00978308 = {
+ CreatedOnToolsVersion = 7.2;
+ };
+ };
+ };
+ buildConfigurationList = F98F5CA91CD0EFEA00978308 /* Build configuration list for PBXProject "NSCWinterCG" */;
+ compatibilityVersion = "Xcode 3.2";
+ developmentRegion = English;
+ hasScannedForEncodings = 0;
+ knownRegions = (
+ English,
+ en,
+ );
+ mainGroup = F98F5CA51CD0EFEA00978308;
+ productRefGroup = F98F5CB01CD0EFEA00978308 /* Products */;
+ projectDirPath = "";
+ projectRoot = "";
+ targets = (
+ F98F5CAE1CD0EFEA00978308 /* NSCWinterCG */,
+ F98F5CB81CD0EFEA00978308 /* NSCWinterCGTests */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXResourcesBuildPhase section */
+ F98F5CAD1CD0EFEA00978308 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ F98F5CB71CD0EFEA00978308 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+ F98F5CAA1CD0EFEA00978308 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ D004031022F781A50089EAD8 /* NSString+WinterCG.m in Sources */,
+ F17F81D52C35E1E200C3E780 /* NSCCrypto.m in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ F98F5CB51CD0EFEA00978308 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ F98F5CBF1CD0EFEA00978308 /* NSCWinterCGTests.m in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXTargetDependency section */
+ F98F5CBC1CD0EFEA00978308 /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ target = F98F5CAE1CD0EFEA00978308 /* NSCWinterCG */;
+ targetProxy = F98F5CBB1CD0EFEA00978308 /* PBXContainerItemProxy */;
+ };
+/* End PBXTargetDependency section */
+
+/* Begin XCBuildConfiguration section */
+ F98F5CC11CD0EFEA00978308 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
+ CLANG_CXX_LIBRARY = "libc++";
+ CLANG_ENABLE_MODULES = YES;
+ CLANG_ENABLE_OBJC_ARC = YES;
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
+ CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_COMMA = YES;
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+ CLANG_WARN_EMPTY_BODY = YES;
+ CLANG_WARN_ENUM_CONVERSION = YES;
+ CLANG_WARN_INFINITE_RECURSION = YES;
+ CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+ CLANG_WARN_STRICT_PROTOTYPES = YES;
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
+ CLANG_WARN_UNREACHABLE_CODE = YES;
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+ COPY_PHASE_STRIP = NO;
+ CURRENT_PROJECT_VERSION = 1;
+ DEBUG_INFORMATION_FORMAT = dwarf;
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
+ ENABLE_TESTABILITY = YES;
+ GCC_C_LANGUAGE_STANDARD = gnu99;
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_NO_COMMON_BLOCKS = YES;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ "DEBUG=1",
+ "$(inherited)",
+ );
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+ GCC_WARN_UNUSED_FUNCTION = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ IPHONEOS_DEPLOYMENT_TARGET = 12.0;
+ MTL_ENABLE_DEBUG_INFO = YES;
+ ONLY_ACTIVE_ARCH = YES;
+ SDKROOT = iphoneos;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ VERSIONING_SYSTEM = "apple-generic";
+ VERSION_INFO_PREFIX = "";
+ XROS_DEPLOYMENT_TARGET = 1.0;
+ };
+ name = Debug;
+ };
+ F98F5CC21CD0EFEA00978308 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
+ CLANG_CXX_LIBRARY = "libc++";
+ CLANG_ENABLE_MODULES = YES;
+ CLANG_ENABLE_OBJC_ARC = YES;
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
+ CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_COMMA = YES;
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+ CLANG_WARN_EMPTY_BODY = YES;
+ CLANG_WARN_ENUM_CONVERSION = YES;
+ CLANG_WARN_INFINITE_RECURSION = YES;
+ CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+ CLANG_WARN_STRICT_PROTOTYPES = YES;
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
+ CLANG_WARN_UNREACHABLE_CODE = YES;
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+ COPY_PHASE_STRIP = NO;
+ CURRENT_PROJECT_VERSION = 1;
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ ENABLE_NS_ASSERTIONS = NO;
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
+ GCC_C_LANGUAGE_STANDARD = gnu99;
+ GCC_NO_COMMON_BLOCKS = YES;
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+ GCC_WARN_UNUSED_FUNCTION = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ IPHONEOS_DEPLOYMENT_TARGET = 12.0;
+ MTL_ENABLE_DEBUG_INFO = NO;
+ SDKROOT = iphoneos;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ VALIDATE_PRODUCT = YES;
+ VERSIONING_SYSTEM = "apple-generic";
+ VERSION_INFO_PREFIX = "";
+ XROS_DEPLOYMENT_TARGET = 1.0;
+ };
+ name = Release;
+ };
+ F98F5CC41CD0EFEA00978308 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ BITCODE_GENERATION_MODE = bitcode;
+ BUILD_LIBRARY_FOR_DISTRIBUTION = YES;
+ DEFINES_MODULE = YES;
+ DYLIB_COMPATIBILITY_VERSION = 1;
+ DYLIB_CURRENT_VERSION = 1;
+ DYLIB_INSTALL_NAME_BASE = "@rpath";
+ INFOPLIST_FILE = NSCWinterCG/Info.plist;
+ INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
+ IPHONEOS_DEPLOYMENT_TARGET = 12.0;
+ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
+ PRODUCT_BUNDLE_IDENTIFIER = org.nativescript.NSCWinterCG;
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ SDKROOT = "";
+ SKIP_INSTALL = YES;
+ SUPPORTED_PLATFORMS = "iphoneos iphonesimulator xros xrsimulator";
+ SUPPORTS_MACCATALYST = YES;
+ SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO;
+ SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO;
+ TARGETED_DEVICE_FAMILY = "1,2,7";
+ };
+ name = Debug;
+ };
+ F98F5CC51CD0EFEA00978308 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ BITCODE_GENERATION_MODE = bitcode;
+ BUILD_LIBRARY_FOR_DISTRIBUTION = YES;
+ DEFINES_MODULE = YES;
+ DYLIB_COMPATIBILITY_VERSION = 1;
+ DYLIB_CURRENT_VERSION = 1;
+ DYLIB_INSTALL_NAME_BASE = "@rpath";
+ INFOPLIST_FILE = NSCWinterCG/Info.plist;
+ INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
+ IPHONEOS_DEPLOYMENT_TARGET = 12.0;
+ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
+ PRODUCT_BUNDLE_IDENTIFIER = org.nativescript.NSCWinterCG;
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ SDKROOT = "";
+ SKIP_INSTALL = YES;
+ SUPPORTED_PLATFORMS = "iphoneos iphonesimulator xros xrsimulator";
+ SUPPORTS_MACCATALYST = YES;
+ SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO;
+ SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO;
+ TARGETED_DEVICE_FAMILY = "1,2,7";
+ };
+ name = Release;
+ };
+ F98F5CC71CD0EFEA00978308 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ INFOPLIST_FILE = NSCWinterCGTests/Info.plist;
+ IPHONEOS_DEPLOYMENT_TARGET = 17.0;
+ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
+ PRODUCT_BUNDLE_IDENTIFIER = org.nativescript.NSCWinterCGTests;
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ };
+ name = Debug;
+ };
+ F98F5CC81CD0EFEA00978308 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ INFOPLIST_FILE = NSCWinterCGTests/Info.plist;
+ IPHONEOS_DEPLOYMENT_TARGET = 17.0;
+ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
+ PRODUCT_BUNDLE_IDENTIFIER = org.nativescript.NSCWinterCGTests;
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ };
+ name = Release;
+ };
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+ F98F5CA91CD0EFEA00978308 /* Build configuration list for PBXProject "NSCWinterCG" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ F98F5CC11CD0EFEA00978308 /* Debug */,
+ F98F5CC21CD0EFEA00978308 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ F98F5CC31CD0EFEA00978308 /* Build configuration list for PBXNativeTarget "NSCWinterCG" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ F98F5CC41CD0EFEA00978308 /* Debug */,
+ F98F5CC51CD0EFEA00978308 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ F98F5CC61CD0EFEA00978308 /* Build configuration list for PBXNativeTarget "NSCWinterCGTests" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ F98F5CC71CD0EFEA00978308 /* Debug */,
+ F98F5CC81CD0EFEA00978308 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+/* End XCConfigurationList section */
+ };
+ rootObject = F98F5CA61CD0EFEA00978308 /* Project object */;
+}
diff --git a/packages/winter-cg/ios/NSCWinterCG/NSCWinterCG.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/packages/winter-cg/ios/NSCWinterCG/NSCWinterCG.xcodeproj/project.xcworkspace/contents.xcworkspacedata
new file mode 100644
index 0000000000..b32b386b2e
--- /dev/null
+++ b/packages/winter-cg/ios/NSCWinterCG/NSCWinterCG.xcodeproj/project.xcworkspace/contents.xcworkspacedata
@@ -0,0 +1,7 @@
+
+
+
+
+
diff --git a/packages/winter-cg/ios/NSCWinterCG/NSCWinterCG.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/packages/winter-cg/ios/NSCWinterCG/NSCWinterCG.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
new file mode 100644
index 0000000000..18d981003d
--- /dev/null
+++ b/packages/winter-cg/ios/NSCWinterCG/NSCWinterCG.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
@@ -0,0 +1,8 @@
+
+
+
+
+ IDEDidComputeMac32BitWarning
+
+
+
diff --git a/packages/winter-cg/ios/NSCWinterCG/NSCWinterCG.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/packages/winter-cg/ios/NSCWinterCG/NSCWinterCG.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
new file mode 100644
index 0000000000..3ddf867a10
--- /dev/null
+++ b/packages/winter-cg/ios/NSCWinterCG/NSCWinterCG.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
@@ -0,0 +1,8 @@
+
+
+
+
+ BuildSystemType
+ Latest
+
+
diff --git a/packages/winter-cg/ios/NSCWinterCG/NSCWinterCG/Info.plist b/packages/winter-cg/ios/NSCWinterCG/NSCWinterCG/Info.plist
new file mode 100644
index 0000000000..d3de8eefb6
--- /dev/null
+++ b/packages/winter-cg/ios/NSCWinterCG/NSCWinterCG/Info.plist
@@ -0,0 +1,26 @@
+
+
+
+
+ CFBundleDevelopmentRegion
+ en
+ CFBundleExecutable
+ $(EXECUTABLE_NAME)
+ CFBundleIdentifier
+ $(PRODUCT_BUNDLE_IDENTIFIER)
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ $(PRODUCT_NAME)
+ CFBundlePackageType
+ FMWK
+ CFBundleShortVersionString
+ 1.0
+ CFBundleSignature
+ ????
+ CFBundleVersion
+ $(CURRENT_PROJECT_VERSION)
+ NSPrincipalClass
+
+
+
diff --git a/packages/winter-cg/ios/NSCWinterCG/NSCWinterCG/NSCCrypto.h b/packages/winter-cg/ios/NSCWinterCG/NSCWinterCG/NSCCrypto.h
new file mode 100644
index 0000000000..7ffac80099
--- /dev/null
+++ b/packages/winter-cg/ios/NSCWinterCG/NSCWinterCG/NSCCrypto.h
@@ -0,0 +1,63 @@
+//
+// NSCCrypto.h
+// NSCWinterCG
+//
+// Created by Osei Fortune on 03/07/2024.
+// Copyright © 2024 NativeScript. All rights reserved.
+//
+
+#import
+#import
+#import
+#import
+#ifndef NSCCrypto_h
+#define NSCCrypto_h
+
+typedef enum : NSUInteger {
+ kNSCCryptoRSASSA_PKCS1_v1_5,
+ kNSCCryptoRSA_PSS,
+ kNSCCryptoRSA_OAEP,
+} NSCCryptoRsaHashedKeyGenParamsName;
+
+
+typedef enum : NSUInteger {
+ kNSCCryptoHashSHA1,
+ kNSCCryptoHashSHA256,
+ kNSCCryptoHashSHA384,
+ kNSCCryptoHashSHA512
+} NSCCryptoHash;
+
+
+typedef enum : NSUInteger {
+ kNSCCryptoDecrypt,
+ kNSCCryptoEncrypt,
+ kNSCCryptoSign,
+ kNSCCryptoVerify,
+ kNSCCryptoDeriveKey,
+ kNSCCryptoDeriveBits,
+ kNSCCryptoWrapKey,
+ kNSCCryptoUnwrapKey,
+} NSCCryptoKeyUsages;
+
+
+
+@interface NSCCryptoKeyPair : NSObject
+@property (nonatomic, nonnull) SecKeyRef privateKey;
+@property (nonatomic, nonnull) SecKeyRef publicKey;
+-(nonnull id)initWithPrivateKey:(nonnull SecKeyRef)privKey andPublicKey:(nonnull SecKeyRef)pubKey;
+@end
+
+@interface NSCCrypto:NSObject
++ (nonnull NSString*)randomUUID;
++ (nullable NSString*)getRandomValues:(nonnull void*)buffer length:(unsigned int)length;
++ (nullable NSData*)digest:(nonnull void*)data length:(unsigned int)length mode:(int)mode;
++ (nullable NSData *)generateKeyHmac:(int)hash length:(int)length;
++ (nullable NSData *)signHmac:(nonnull NSData*)key hash:(NSCCryptoHash)hash data:(nonnull NSData*)data;
++ (BOOL)verifyHmac:(nonnull NSData*)key hash:(NSCCryptoHash)hash signature:(nonnull NSData*)signature data:(nonnull NSData*)data;
+
++ (nullable NSCCryptoKeyPair*)generateKeyRsa:(NSCCryptoRsaHashedKeyGenParamsName)name modulusLength:(unsigned int)modulusLength publicExponent:(nullable void*)exponent size:(unsigned int)size hash:(NSCCryptoHash)hash extractable:(BOOL)extractable keyUsages:(nonnull NSArray*) usages;
++ (nullable NSData *)encryptRsa:(BOOL)isPrivate key:(nonnull NSCCryptoKeyPair *)key hash:(NSCCryptoHash)hash data:(nonnull void*)data size:(unsigned int) size;
+
++ (nullable NSData *)decryptRsa:(BOOL)isPrivate key:(nonnull NSCCryptoKeyPair *)key hash:(NSCCryptoHash)hash data:(nonnull void*)data size:(unsigned int) size;
+@end
+#endif /* NSCCrypto_h */
diff --git a/packages/winter-cg/ios/NSCWinterCG/NSCWinterCG/NSCCrypto.m b/packages/winter-cg/ios/NSCWinterCG/NSCWinterCG/NSCCrypto.m
new file mode 100644
index 0000000000..0e072f19b0
--- /dev/null
+++ b/packages/winter-cg/ios/NSCWinterCG/NSCWinterCG/NSCCrypto.m
@@ -0,0 +1,450 @@
+//
+// NSCCrypto.m
+// NSCWinterCG
+//
+// Created by Osei Fortune on 03/07/2024.
+// Copyright © 2024 NativeScript. All rights reserved.
+//
+
+#import "NSCCrypto.h"
+
+@implementation NSCCryptoKeyPair
+
+- (void)dealloc
+{
+ if(self.privateKey != NULL){
+ CFRelease(self.privateKey);
+ }
+ if(self.publicKey != NULL){
+ CFRelease(self.publicKey);
+ }
+}
+- (nonnull id)initWithPrivateKey:(nonnull SecKeyRef)privKey andPublicKey:(nonnull SecKeyRef)pubKey {
+ self = [super init];
+ if(self){
+ self.privateKey = privKey;
+ self.publicKey = pubKey;
+ }
+ return self;
+}
+
+@end
+
+
+@implementation NSCCrypto
+
++ (NSString *)randomUUID {
+ return [[[NSUUID UUID] UUIDString] lowercaseString];
+}
+
++ (NSString *)getRandomValues:(nonnull void *)buffer length:(unsigned int)length {
+ if(buffer != nil){
+ int result = SecRandomCopyBytes(kSecRandomDefault, length, buffer);
+ if(result != errSecSuccess){
+ return @"Failed to generate random values";
+ }else {
+ return nil;
+ }
+ }
+
+ return @"Failed to generate random values";
+}
+
++ (nullable NSData *)digest:(nonnull void *)data length:(unsigned int)length mode:(int)mode {
+ switch (mode) {
+ case 0:
+ {
+ NSData* hash = [NSMutableData dataWithLength:CC_SHA1_DIGEST_LENGTH];
+ CC_SHA1(data, length, (unsigned char *)hash.bytes);
+ return hash;
+ }
+ break;
+
+ case 1:
+ {
+ NSData* hash = [NSMutableData dataWithLength:CC_SHA256_DIGEST_LENGTH];
+ CC_SHA256(data, length, (unsigned char *)hash.bytes);
+ return hash;
+ }
+
+
+ case 2:
+ {
+ NSData* hash = [NSMutableData dataWithLength:CC_SHA384_DIGEST_LENGTH];
+ CC_SHA384(data, length, (unsigned char *)hash.bytes);
+ return hash;
+ }
+
+ case 3:
+ {
+ NSData* hash = [NSMutableData dataWithLength:CC_SHA512_DIGEST_LENGTH];
+ CC_SHA512(data, length, (unsigned char *)hash.bytes);
+ return hash;
+ }
+
+ default:
+ return nil;
+ }
+}
+
+
++ (nullable NSData *)generateKeyHmac:(int)hash length:(int)length {
+ NSMutableData* ret = nil;
+ switch (hash) {
+ case 0:
+ {
+ unsigned int len = length > 0 ? length / 8 : CC_SHA1_DIGEST_LENGTH;
+ NSMutableData* data = [NSMutableData dataWithLength: len];
+ int result = SecRandomCopyBytes(kSecRandomDefault, len, data.mutableBytes);
+ if (result == errSecSuccess) {
+ ret = data;
+ }
+
+ }
+ break;
+
+ case 1:
+ {
+ unsigned int len = length > 0 ? length / 8 : CC_SHA256_DIGEST_LENGTH;
+ NSMutableData* data = [NSMutableData dataWithLength: len];
+ int result = SecRandomCopyBytes(kSecRandomDefault, len, data.mutableBytes);
+ if (result == errSecSuccess) {
+ ret = data;
+ }
+ }
+
+
+ case 2:
+ {
+ unsigned int len = length > 0 ? length / 8 : CC_SHA384_DIGEST_LENGTH;
+ NSMutableData* data = [NSMutableData dataWithLength: len];
+ int result = SecRandomCopyBytes(kSecRandomDefault, len, data.mutableBytes);
+ if (result == errSecSuccess) {
+ ret = data;
+ }
+ }
+
+ case 3:
+ {
+ unsigned int len = length > 0 ? length / 8 : CC_SHA512_DIGEST_LENGTH;
+ NSMutableData* data = [NSMutableData dataWithLength: len];
+ int result = SecRandomCopyBytes(kSecRandomDefault, len, data.mutableBytes);
+ if (result == errSecSuccess) {
+ ret = data;
+ }
+ }
+
+ default:
+ // noop
+ break;
+ }
+ return ret;
+}
+
++ (BOOL)verifyHmac:(nonnull NSData *)key hash:(NSCCryptoHash)hash signature:(nonnull NSData *)signature data:(nonnull NSData *)data {
+ switch (hash) {
+ case kNSCCryptoHashSHA1:
+ {
+ return [[NSCCrypto signHmac:key hash:hash data:data] isEqualToData:signature];
+ }
+ case kNSCCryptoHashSHA256:
+ {
+ return [[NSCCrypto signHmac:key hash:hash data:data] isEqualToData:signature];
+ }
+ case kNSCCryptoHashSHA384:
+ {
+ return [[NSCCrypto signHmac:key hash:hash data:data] isEqualToData:signature];
+ }
+ case kNSCCryptoHashSHA512:
+ {
+ return [[NSCCrypto signHmac:key hash:hash data:data] isEqualToData:signature];
+ }
+ default:
+ return false;;
+ }
+}
+
+
++ (nullable NSData *)signHmac:(nonnull NSData *)key hash:(NSCCryptoHash)hash data:(nonnull NSData *)data {
+ NSMutableData* ret = nil;
+ switch (hash) {
+ case kNSCCryptoHashSHA1:
+ {
+ ret = [NSMutableData dataWithLength:CC_SHA1_DIGEST_LENGTH];
+ CCHmac(kCCHmacAlgSHA1, key.bytes, key.length, data.bytes, data.length, ret.mutableBytes);
+ }
+ break;
+ case kNSCCryptoHashSHA256:
+ {
+ ret = [NSMutableData dataWithLength:CC_SHA256_DIGEST_LENGTH];
+ CCHmac(kCCHmacAlgSHA256, key.bytes, key.length, data.bytes, data.length, ret.mutableBytes);
+ }
+ break;
+ case kNSCCryptoHashSHA384:
+ {
+ ret = [NSMutableData dataWithLength:CC_SHA384_DIGEST_LENGTH];
+ CCHmac(kCCHmacAlgSHA384, key.bytes, key.length, data.bytes, data.length, ret.mutableBytes);
+ }
+ break;
+ case kNSCCryptoHashSHA512:
+ {
+ ret = [NSMutableData dataWithLength:CC_SHA512_DIGEST_LENGTH];
+ CCHmac(kCCHmacAlgSHA512, key.bytes, key.length, data.bytes, data.length, ret.mutableBytes);
+ }
+ break;
+ default:
+ break;
+ }
+ return ret;
+}
+
+
+
+
++ (nullable NSCCryptoKeyPair *)generateKeyRsa:(NSCCryptoRsaHashedKeyGenParamsName)name modulusLength:(unsigned int)modulusLength publicExponent:(nullable void *)exponent size:(unsigned int)size hash:(NSCCryptoHash)hash extractable:(BOOL)extractable keyUsages:(nonnull NSArray *)usages{
+
+ NSData* exp;
+
+ if(exponent != NULL){
+ // todo
+ exp = [NSData dataWithBytesNoCopy:exponent length:size];
+ }
+
+
+ CFMutableDictionaryRef privateKeyAttrs = CFDictionaryCreateMutable(NULL, 0, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks);
+ CFMutableDictionaryRef publicKeyAttrs = CFDictionaryCreateMutable(NULL, 0, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks);
+ CFMutableDictionaryRef keyPairAttrs = CFDictionaryCreateMutable(NULL, 0, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks);
+
+
+ CFDictionarySetValue(keyPairAttrs, kSecAttrKeyType, kSecAttrKeyTypeRSA);
+
+ CFDictionarySetValue(keyPairAttrs, kSecAttrKeySizeInBits, (__bridge CFNumberRef)@(modulusLength));
+ //CFDictionarySetValue(keyPairAttrs, kSecAttrEffectiveKeySize, (__bridge CFNumberRef)@(modulusLength));
+
+
+
+ CFDictionarySetValue(keyPairAttrs, kSecPrivateKeyAttrs, privateKeyAttrs);
+ CFDictionarySetValue(keyPairAttrs, kSecPublicKeyAttrs, publicKeyAttrs);
+
+
+ if(usages != NULL){
+ for (NSUInteger i = 0; i < [usages count]; i++) {
+ NSCCryptoKeyUsages usage = (NSCCryptoKeyUsages)usages[i];
+ switch (usage) {
+ case kNSCCryptoEncrypt:
+ CFDictionarySetValue(keyPairAttrs, kSecAttrCanEncrypt, kCFBooleanTrue);
+ break;
+ case kNSCCryptoDecrypt:
+ CFDictionarySetValue(keyPairAttrs, kSecAttrCanDecrypt, kCFBooleanTrue);
+ break;
+ case kNSCCryptoSign:
+ CFDictionarySetValue(keyPairAttrs, kSecAttrCanSign, kCFBooleanTrue);
+ break;
+ case kNSCCryptoVerify:
+ CFDictionarySetValue(keyPairAttrs, kSecAttrCanVerify, kCFBooleanTrue);
+ break;
+ case kNSCCryptoDeriveKey:
+ CFDictionarySetValue(keyPairAttrs, kSecAttrCanDerive, kCFBooleanTrue);
+ break;
+ case kNSCCryptoWrapKey:
+ CFDictionarySetValue(keyPairAttrs, kSecAttrCanWrap, kCFBooleanTrue);
+ break;
+ case kNSCCryptoUnwrapKey:
+ CFDictionarySetValue(keyPairAttrs, kSecAttrCanUnwrap, kCFBooleanTrue);
+ break;
+ default:
+ // NOOP
+ break;
+ }
+ }
+ }
+
+
+ SecKeyRef publicKey = NULL;
+ SecKeyRef privateKey = NULL;
+ OSStatus status = SecKeyGeneratePair(keyPairAttrs, &publicKey, &privateKey);
+
+ CFRelease(privateKeyAttrs);
+ CFRelease(publicKeyAttrs);
+ CFRelease(keyPairAttrs);
+
+ if (status == errSecSuccess) {
+ NSCCryptoKeyPair* pair = [[NSCCryptoKeyPair alloc] initWithPrivateKey:privateKey andPublicKey: publicKey];
+ return pair;
+ } else {
+ if (publicKey) CFRelease(publicKey);
+ if (privateKey) CFRelease(privateKey);
+ return NULL;
+ }
+}
+
++ (nullable NSData *)encryptRsa:(BOOL)isPrivate key:(nonnull NSCCryptoKeyPair *)key hash:(NSCCryptoHash)hash data:(nonnull void*)data size:(unsigned int) size {
+ NSData* toEncrypt = [NSData dataWithBytesNoCopy:data length:size];
+ NSData *cipherText = nil;
+ CFErrorRef error = NULL;
+ if(isPrivate){
+
+
+ switch (hash) {
+ case kNSCCryptoHashSHA1:
+ {
+ SecKeyAlgorithm algorithm = kSecKeyAlgorithmRSAEncryptionOAEPSHA1;
+
+ cipherText = (NSData *)CFBridgingRelease(SecKeyCreateEncryptedData(key.privateKey, algorithm, (__bridge CFDataRef)toEncrypt, &error));
+ }
+ break;
+ case kNSCCryptoHashSHA256:
+ {
+ SecKeyAlgorithm algorithm = kSecKeyAlgorithmRSAEncryptionOAEPSHA256;
+
+ cipherText = (NSData *)CFBridgingRelease(SecKeyCreateEncryptedData(key.privateKey, algorithm, (__bridge CFDataRef)toEncrypt, &error));
+ }
+ break;
+ case kNSCCryptoHashSHA384:
+ {
+ SecKeyAlgorithm algorithm = kSecKeyAlgorithmRSAEncryptionOAEPSHA384;
+
+ cipherText = (NSData *)CFBridgingRelease(SecKeyCreateEncryptedData(key.privateKey, algorithm, (__bridge CFDataRef)toEncrypt, &error));
+ }
+ break;
+ case kNSCCryptoHashSHA512:
+ {
+ SecKeyAlgorithm algorithm = kSecKeyAlgorithmRSAEncryptionOAEPSHA512;
+
+ cipherText = (NSData *)CFBridgingRelease(SecKeyCreateEncryptedData(key.privateKey, algorithm, (__bridge CFDataRef)toEncrypt, &error));
+ }
+ break;
+ default:
+ break;
+ }
+
+
+ }else {
+ switch (hash) {
+ case kNSCCryptoHashSHA1:
+ {
+ SecKeyAlgorithm algorithm = kSecKeyAlgorithmRSAEncryptionOAEPSHA1;
+
+ cipherText = (NSData *)CFBridgingRelease(SecKeyCreateEncryptedData(key.publicKey, algorithm, (__bridge CFDataRef)toEncrypt, &error));
+ }
+ break;
+ case kNSCCryptoHashSHA256:
+ {
+ SecKeyAlgorithm algorithm = kSecKeyAlgorithmRSAEncryptionOAEPSHA256;
+
+ cipherText = (NSData *)CFBridgingRelease(SecKeyCreateEncryptedData(key.publicKey, algorithm, (__bridge CFDataRef)toEncrypt, &error));
+ }
+ break;
+ case kNSCCryptoHashSHA384:
+ {
+ SecKeyAlgorithm algorithm = kSecKeyAlgorithmRSAEncryptionOAEPSHA384;
+
+ cipherText = (NSData *)CFBridgingRelease(SecKeyCreateEncryptedData(key.publicKey, algorithm, (__bridge CFDataRef)toEncrypt, &error));
+ }
+ break;
+ case kNSCCryptoHashSHA512:
+ {
+ SecKeyAlgorithm algorithm = kSecKeyAlgorithmRSAEncryptionOAEPSHA512;
+
+ cipherText = (NSData *)CFBridgingRelease(SecKeyCreateEncryptedData(key.publicKey, algorithm, (__bridge CFDataRef)toEncrypt, &error));
+ }
+ break;
+ default:
+ break;
+ }
+ }
+
+ if (!cipherText) {
+ NSLog(@"Failed to encrypt message: %@", error);
+ CFRelease(error);
+ }
+
+ return cipherText;
+}
+
+
++ (nullable NSData *)decryptRsa:(BOOL)isPrivate key:(nonnull NSCCryptoKeyPair *)key hash:(NSCCryptoHash)hash data:(nonnull void*)data size:(unsigned int) size {
+ NSData* toDecrypt = [NSData dataWithBytesNoCopy:data length:size];
+ NSData *cipherText = nil;
+ CFErrorRef error = NULL;
+ if(isPrivate){
+
+
+ switch (hash) {
+ case kNSCCryptoHashSHA1:
+ {
+ SecKeyAlgorithm algorithm = kSecKeyAlgorithmRSAEncryptionOAEPSHA1;
+
+ cipherText = (NSData *)CFBridgingRelease(SecKeyCreateDecryptedData(key.privateKey, algorithm, (__bridge CFDataRef)toDecrypt, &error));
+ }
+ break;
+ case kNSCCryptoHashSHA256:
+ {
+ SecKeyAlgorithm algorithm = kSecKeyAlgorithmRSAEncryptionOAEPSHA256;
+
+ cipherText = (NSData *)CFBridgingRelease(SecKeyCreateDecryptedData(key.privateKey, algorithm, (__bridge CFDataRef)toDecrypt, &error));
+ }
+ break;
+ case kNSCCryptoHashSHA384:
+ {
+ SecKeyAlgorithm algorithm = kSecKeyAlgorithmRSAEncryptionOAEPSHA384;
+
+ cipherText = (NSData *)CFBridgingRelease(SecKeyCreateDecryptedData(key.privateKey, algorithm, (__bridge CFDataRef)toDecrypt, &error));
+ }
+ break;
+ case kNSCCryptoHashSHA512:
+ {
+ SecKeyAlgorithm algorithm = kSecKeyAlgorithmRSAEncryptionOAEPSHA512;
+
+ cipherText = (NSData *)CFBridgingRelease(SecKeyCreateDecryptedData(key.privateKey, algorithm, (__bridge CFDataRef)toDecrypt, &error));
+ }
+ break;
+ default:
+ break;
+ }
+
+
+ }else {
+ switch (hash) {
+ case kNSCCryptoHashSHA1:
+ {
+ SecKeyAlgorithm algorithm = kSecKeyAlgorithmRSAEncryptionOAEPSHA1;
+
+ cipherText = (NSData *)CFBridgingRelease(SecKeyCreateDecryptedData(key.publicKey, algorithm, (__bridge CFDataRef)toDecrypt, &error));
+ }
+ break;
+ case kNSCCryptoHashSHA256:
+ {
+ SecKeyAlgorithm algorithm = kSecKeyAlgorithmRSAEncryptionOAEPSHA256;
+
+ cipherText = (NSData *)CFBridgingRelease(SecKeyCreateDecryptedData(key.publicKey, algorithm, (__bridge CFDataRef)toDecrypt, &error));
+ }
+ break;
+ case kNSCCryptoHashSHA384:
+ {
+ SecKeyAlgorithm algorithm = kSecKeyAlgorithmRSAEncryptionOAEPSHA384;
+
+ cipherText = (NSData *)CFBridgingRelease(SecKeyCreateDecryptedData(key.publicKey, algorithm, (__bridge CFDataRef)toDecrypt, &error));
+ }
+ break;
+ case kNSCCryptoHashSHA512:
+ {
+ SecKeyAlgorithm algorithm = kSecKeyAlgorithmRSAEncryptionOAEPSHA512;
+
+ cipherText = (NSData *)CFBridgingRelease(SecKeyCreateDecryptedData(key.publicKey, algorithm, (__bridge CFDataRef)toDecrypt, &error));
+ }
+ break;
+ default:
+ break;
+ }
+ }
+
+ if (!cipherText) {
+ NSLog(@"Failed to encrypt message: %@", error);
+ CFRelease(error);
+ }
+
+ return cipherText;
+}
+
+@end
diff --git a/packages/winter-cg/ios/NSCWinterCG/NSCWinterCG/NSCWinterCG.h b/packages/winter-cg/ios/NSCWinterCG/NSCWinterCG/NSCWinterCG.h
new file mode 100644
index 0000000000..b32d42c7f8
--- /dev/null
+++ b/packages/winter-cg/ios/NSCWinterCG/NSCWinterCG/NSCWinterCG.h
@@ -0,0 +1,20 @@
+//
+// NSCWinterCG.h
+// NSCWinterCG
+//
+// Created by Osei Fortune and Nathan Walker on 07/09/2024.
+// Copyright © 2024 NativeScript. All rights reserved.
+//
+
+#import
+
+//! Project version number for NSCWinterCG.
+FOUNDATION_EXPORT double NSCWinterCGVersionNumber;
+
+//! Project version string for NSCWinterCG.
+FOUNDATION_EXPORT const unsigned char NSCWinterCGVersionString[];
+
+// In this header, you should import all the public headers of your framework using statements like #import
+
+#import "NSCCrypto.h"
+#import "NSString+WinterCG.h"
diff --git a/packages/winter-cg/ios/NSCWinterCG/NSCWinterCG/NSString+WinterCG.h b/packages/winter-cg/ios/NSCWinterCG/NSCWinterCG/NSString+WinterCG.h
new file mode 100644
index 0000000000..6bafc8e80f
--- /dev/null
+++ b/packages/winter-cg/ios/NSCWinterCG/NSCWinterCG/NSString+WinterCG.h
@@ -0,0 +1,21 @@
+//
+// NSString+WinterCG.h
+// NSCWinterCG
+//
+// Created by Osei Fortune and Nathan Walker on 07/09/2024.
+// Copyright © 2024 NativeScript. All rights reserved.
+//
+
+#import
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface NSString (WinterCG)
+
++ (NSString*)atob:(nonnull NSString*)data;
+
++ (NSString*)btoa:(nonnull NSString*)stringToEncode;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/packages/winter-cg/ios/NSCWinterCG/NSCWinterCG/NSString+WinterCG.m b/packages/winter-cg/ios/NSCWinterCG/NSCWinterCG/NSString+WinterCG.m
new file mode 100644
index 0000000000..f3ee6232dc
--- /dev/null
+++ b/packages/winter-cg/ios/NSCWinterCG/NSCWinterCG/NSString+WinterCG.m
@@ -0,0 +1,23 @@
+//
+// NSString+WinterCG.h
+// NSCWinterCG
+//
+// Created by Osei Fortune and Nathan Walker on 07/09/2024.
+// Copyright © 2024 NativeScript. All rights reserved.
+//
+
+#import "NSString+WinterCG.h"
+
+@implementation NSString (WinterCG)
+
++ (NSString*)atob:(nonnull NSString*)data {
+ NSData* decodedData = [[NSData alloc] initWithBase64EncodedString:data options:0];
+ return [[NSString alloc] initWithData:decodedData encoding:NSUTF8StringEncoding];
+}
+
++ (NSString*)btoa:(nonnull NSString*)stringToEncode {
+ NSData* encoded = [stringToEncode dataUsingEncoding: NSUTF8StringEncoding];
+ return [encoded base64EncodedStringWithOptions:0];
+}
+
+@end
diff --git a/packages/winter-cg/ios/NSCWinterCG/NSCWinterCGTests/Info.plist b/packages/winter-cg/ios/NSCWinterCG/NSCWinterCGTests/Info.plist
new file mode 100644
index 0000000000..ba72822e87
--- /dev/null
+++ b/packages/winter-cg/ios/NSCWinterCG/NSCWinterCGTests/Info.plist
@@ -0,0 +1,24 @@
+
+
+
+
+ CFBundleDevelopmentRegion
+ en
+ CFBundleExecutable
+ $(EXECUTABLE_NAME)
+ CFBundleIdentifier
+ $(PRODUCT_BUNDLE_IDENTIFIER)
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ $(PRODUCT_NAME)
+ CFBundlePackageType
+ BNDL
+ CFBundleShortVersionString
+ 1.0
+ CFBundleSignature
+ ????
+ CFBundleVersion
+ 1
+
+
diff --git a/packages/winter-cg/ios/NSCWinterCG/NSCWinterCGTests/TNSWidgetsTests.m b/packages/winter-cg/ios/NSCWinterCG/NSCWinterCGTests/TNSWidgetsTests.m
new file mode 100644
index 0000000000..ffe08faca8
--- /dev/null
+++ b/packages/winter-cg/ios/NSCWinterCG/NSCWinterCGTests/TNSWidgetsTests.m
@@ -0,0 +1,39 @@
+//
+// NSCWinterCGTests.m
+// NSCWinterCGTests
+//
+// Created by Osei Fortune on 03/07/2024.
+// Copyright © 2024 NativeScript. All rights reserved.
+//
+
+#import
+
+@interface NSCWinterCGTests : XCTestCase
+
+@end
+
+@implementation NSCWinterCGTests
+
+- (void)setUp {
+ [super setUp];
+ // Put setup code here. This method is called before the invocation of each test method in the class.
+}
+
+- (void)tearDown {
+ // Put teardown code here. This method is called after the invocation of each test method in the class.
+ [super tearDown];
+}
+
+- (void)testExample {
+ // This is an example of a functional test case.
+ // Use XCTAssert and related functions to verify your tests produce the correct results.
+}
+
+- (void)testPerformanceExample {
+ // This is an example of a performance test case.
+ [self measureBlock:^{
+ // Put the code you want to measure the time of here.
+ }];
+}
+
+@end
diff --git a/packages/winter-cg/ios/README.md b/packages/winter-cg/ios/README.md
new file mode 100644
index 0000000000..c54d6f6e21
--- /dev/null
+++ b/packages/winter-cg/ios/README.md
@@ -0,0 +1,8 @@
+### iOS
+
+The `NSCWinterCG` directory contains a Xcode project.
+
+### How to open?
+* In Xcode choose: File -> Open
+* Navigate to `packages/winter-cg/ios/NSCWinterCG/` folder
+* On the left side of the screen choose the Project navigator and select `NSCWinterCG`
diff --git a/packages/winter-cg/ios/build.sh b/packages/winter-cg/ios/build.sh
new file mode 100755
index 0000000000..7c4b117f0c
--- /dev/null
+++ b/packages/winter-cg/ios/build.sh
@@ -0,0 +1,89 @@
+#!/bin/sh
+
+echo "Set exit on simple errors"
+set -e
+
+BUILD_DIR=$(PWD)/NSCWinterCG/build
+rm -rf $BUILD_DIR
+
+echo "Build for iphonesimulator"
+xcodebuild \
+ -project NSCWinterCG/NSCWinterCG.xcodeproj \
+ -scheme NSCWinterCG \
+ -configuration Release \
+ -destination "generic/platform=iOS Simulator" \
+ clean build \
+ BUILD_DIR=$BUILD_DIR \
+ SKIP_INSTALL=NO \
+ BUILD_LIBRARY_FOR_DISTRIBUTION=YES \
+ -quiet
+
+echo "Build for iphoneos"
+xcodebuild \
+ -project NSCWinterCG/NSCWinterCG.xcodeproj \
+ -scheme NSCWinterCG \
+ -sdk iphoneos \
+ -configuration Release \
+ -destination "generic/platform=iOS" \
+ clean build \
+ BUILD_DIR=$BUILD_DIR \
+ CODE_SIGN_IDENTITY="" \
+ CODE_SIGNING_REQUIRED=NO \
+ SKIP_INSTALL=NO \
+ BUILD_LIBRARY_FOR_DISTRIBUTION=YES \
+ -quiet
+
+echo "Build for Mac Catalyst"
+xcodebuild \
+ -project NSCWinterCG/NSCWinterCG.xcodeproj \
+ -scheme NSCWinterCG \
+ -configuration Release \
+ -destination "generic/platform=macOS,variant=Mac Catalyst" \
+ clean build \
+ BUILD_DIR=$BUILD_DIR \
+ CODE_SIGN_IDENTITY="" \
+ CODE_SIGNING_REQUIRED=NO \
+ SKIP_INSTALL=NO \
+ BUILD_LIBRARY_FOR_DISTRIBUTION=YES \
+ -quiet
+
+# Only available with Xcode >= 15.2
+echo "Build for visionOS Simulator"
+xcodebuild \
+ -project NSCWinterCG/NSCWinterCG.xcodeproj \
+ -scheme NSCWinterCG \
+ -configuration Release \
+ -destination "generic/platform=visionOS Simulator" \
+ clean build \
+ BUILD_DIR=$BUILD_DIR \
+ SKIP_INSTALL=NO \
+ BUILD_LIBRARY_FOR_DISTRIBUTION=YES \
+ -quiet
+
+echo "Build for visionOS"
+xcodebuild \
+ -project NSCWinterCG/NSCWinterCG.xcodeproj \
+ -scheme NSCWinterCG \
+ -configuration Release \
+ -destination "generic/platform=visionOS" \
+ clean build \
+ BUILD_DIR=$BUILD_DIR \
+ SKIP_INSTALL=NO \
+ BUILD_LIBRARY_FOR_DISTRIBUTION=YES \
+ -quiet
+
+echo "Creating XCFramework"
+BASE=$BUILD_DIR/Release
+xcodebuild \
+ -create-xcframework \
+ -framework $BASE-iphoneos/NSCWinterCG.framework \
+ -debug-symbols $BASE-iphoneos/NSCWinterCG.framework.dSYM \
+ -framework $BASE-iphonesimulator/NSCWinterCG.framework \
+ -debug-symbols $BASE-iphonesimulator/NSCWinterCG.framework.dSYM \
+ -framework $BASE-maccatalyst/NSCWinterCG.framework \
+ -debug-symbols $BASE-maccatalyst/NSCWinterCG.framework.dSYM \
+ -framework $BASE-xrsimulator/NSCWinterCG.framework \
+ -debug-symbols $BASE-xrsimulator/NSCWinterCG.framework.dSYM \
+ -framework $BASE-xros/NSCWinterCG.framework \
+ -debug-symbols $BASE-xros/NSCWinterCG.framework.dSYM \
+ -output $BUILD_DIR/NSCWinterCG.xcframework
diff --git a/packages/winter-cg/package.json b/packages/winter-cg/package.json
new file mode 100644
index 0000000000..0322c5f40d
--- /dev/null
+++ b/packages/winter-cg/package.json
@@ -0,0 +1,24 @@
+{
+ "name": "@nativescript/winter-cg",
+ "version": "0.0.1",
+ "description": "WinterCG compliance for NativeScript",
+ "scripts": {
+ "test": "echo \"Error: no test specified\" && exit 1"
+ },
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/NativeScript/NativeScript"
+ },
+ "author": "NativeScript team",
+ "license": "Apache-2.0",
+ "bugs": {
+ "url": "https://github.com/NativeScript/NativeScript/issues"
+ },
+ "homepage": "https://nativescript.org",
+ "nativescript": {
+ "platforms": {
+ "ios": "6.0.0",
+ "android": "6.0.0"
+ }
+ }
+}
diff --git a/packages/winter-cg/project.json b/packages/winter-cg/project.json
new file mode 100644
index 0000000000..9978b4e2e0
--- /dev/null
+++ b/packages/winter-cg/project.json
@@ -0,0 +1,17 @@
+{
+ "name": "winter-cg",
+ "$schema": "../../node_modules/nx/schemas/project-schema.json",
+ "sourceRoot": "packages/winter-cg",
+ "projectType": "library",
+ "generators": {},
+ "targets": {
+ "build": {
+ "executor": "nx:run-commands",
+ "options": {
+ "commands": ["./build.sh", "cp -R dist/package/platforms/* ../../packages/core/platforms"],
+ "cwd": "packages/winter-cg",
+ "parallel": false
+ }
+ }
+ }
+}